[etherlab-users] real-time possible ?
peter.pastor at gmail.com
Fri Aug 7 16:40:45 CEST 2009
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 188.8.131.52-ipipe.
On Fri, Aug 7, 2009 at 4:31 PM, Robert Schwebel
<r.schwebel at pengutronix.de>wrote:
> 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.
> 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...
More information about the Etherlab-users