On 2014-11-03 09:03, Jeroen Van den Keybus wrote:
>> I try to write a hard real time usb driver. I communicate my device  using
>> open(), read() etc. My device is a gpio module.
> 
> 
> I assume you want to control an USB host controller using a GPIO interface ?
> 
> 
>> I am coding a kernel module
>> to communicate the device using xenomai on real time. But I am not sure
>> that this way is reasonable. If I should going on this way, what should I
>> implement? Could you give me some example or link to write hard real time
>> usb driver for* physical* device?
> 
> 
> I cannot help you with that, but one important issue to consider is that
> the USB protocol itself operates with small, hardware controlled time slots
> of 1 ms (USB1.x) or 125 usec (USB2.0). You may therefore need a significant
> amount of software to properly distribute real-time traffic in these -
> essentially asynchronous - slots. The latency of a real-time process
> waiting for USB data can therefore also be as large as the time slot
> duration. If your real-time requirements are modest, you may be able to
> live with that. Still, count on a major software effort: just have a look
> at the Linux USB driver framework.
> 
> Alternatively, you could check if you can synchronize your real-time
> process with the USB controller frame rate.
> 

FWIW, we still don't have USB 2.0 support (though I vaguely remember
previous efforts in that direction), but at least a framework for 1.1
devices with Xenomai 2.6.x. It is in successful use for industrial
sensors. Code is available here:

http://git.kiszka.org/?p=usb4rt.git;a=summary

As the targeted sensors generate data streams only with 1 ms period, the
1.1 limitation was not an issue so far.

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to