[etherlab-users] real-time possible ?

Peter Pastor peter.pastor at gmail.com
Fri Aug 7 16:40:45 CEST 2009


Hey,

THANKS so much for your response! That is good news. Well, not that I cannot
use etherCAT, but that there is hope for real-time performance. The
controller boards answer to udp packages that have a message ID and a
payload (for setting and getting data). Using static ARP I can establish a
communication in which I don't loose packages. However, at this point, I
notice a mode switch (from the xenomai domain into the linux domain) which
most likely is caused by having a non-real-time capable stack.
Is there a way to avoid this ?

The application uses the xenomai POSIX skin, so your first point is under
control :) However, I would be really happy if you could elaborate on the
other points a little more:

> (1) get the priorities and other realtime things right
> (2) fix kernel locking bugs which might turn up during that process etc.

I use xenomai 2.4.91 and linux kernel 2.6.24.2-ipipe.

Thanks,
 peter


On Fri, Aug 7, 2009 at 4:31 PM, Robert Schwebel
<r.schwebel at pengutronix.de>wrote:

> Peter,
>
> On Fri, Aug 07, 2009 at 10:45:09AM +0900, Peter Pastor wrote:
> > I am writing an application that sends and receives UDP packages over
> > ethernet to several digital controller cards. I need this application
> > to run in real-time. I do not have influence on whatever is running on
> > these cards.
>
> I assume that with "whatever is running on these cards" is the non-RT
> userspace software which is running on these Linux systems?
>
> > I established communication using regular sockets. I am running
> > xenomai and need this communication to run in real-time. So, I was
> > wondering whether etherCAT allows me to do so without touching the
> > client stack, or do I have to do the communication in a separate
> > process and read/write from the xenomai real-time process through
> > shared memory?
>
> EtherCAT is a dedicated realtime network with ASICs instead of normal
> ethernet cards in the slave devices, so it's only useful if you really
> have an EtherCAT based network.
>
> However, sending network packets under hard realtime conditions from
> Linux userspace is easily possible, we have done it for example while
> porting PowerLink stacks to Linux userspace (using raw sockets under
> RT-Preempt). All you have to do is writing a proper POSIX realtime
> application, get the priorities and other realtime things right, fix
> kernel locking bugs which might turn up during that process etc.
>
> rsc
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20090807/c481e989/attachment-0004.htm>


More information about the Etherlab-users mailing list