Hey,<br><br>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.<br>
Is there a way to avoid this ?<br><br>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:<br><br>
> (1) get the priorities and other realtime things right<br>> (2) fix kernel locking bugs which might turn up during that process etc.<br>
<br>I use xenomai 2.4.91 and linux kernel 2.6.24.2-ipipe. <br><br>Thanks,<br> peter<br><br><br><div class="gmail_quote">On Fri, Aug 7, 2009 at 4:31 PM, Robert Schwebel <span dir="ltr"><<a href="mailto:r.schwebel@pengutronix.de">r.schwebel@pengutronix.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Peter,<br>
<div class="im"><br>
On Fri, Aug 07, 2009 at 10:45:09AM +0900, Peter Pastor wrote:<br>
> I am writing an application that sends and receives UDP packages over<br>
> ethernet to several digital controller cards. I need this application<br>
> to run in real-time. I do not have influence on whatever is running on<br>
> these cards.<br>
<br>
</div>I assume that with "whatever is running on these cards" is the non-RT<br>
userspace software which is running on these Linux systems?<br>
<div class="im"><br>
> I established communication using regular sockets. I am running<br>
> xenomai and need this communication to run in real-time. So, I was<br>
> wondering whether etherCAT allows me to do so without touching the<br>
> client stack, or do I have to do the communication in a separate<br>
> process and read/write from the xenomai real-time process through<br>
> shared memory?<br>
<br>
</div>EtherCAT is a dedicated realtime network with ASICs instead of normal<br>
ethernet cards in the slave devices, so it's only useful if you really<br>
have an EtherCAT based network.<br>
<br>
However, sending network packets under hard realtime conditions from<br>
Linux userspace is easily possible, we have done it for example while<br>
porting PowerLink stacks to Linux userspace (using raw sockets under<br>
RT-Preempt). All you have to do is writing a proper POSIX realtime<br>
application, get the priorities and other realtime things right, fix<br>
kernel locking bugs which might turn up during that process etc.<br>
<br>
rsc<br>
<font color="#888888">--<br>
Pengutronix e.K.                           |                             |<br>
Industrial Linux Solutions                 | <a href="http://www.pengutronix.de/" target="_blank">http://www.pengutronix.de/</a>  |<br>
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |<br>
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |<br>
</font></blockquote></div><br>