Hi, Jan,
these days I am thinking of how to integrate the Firewire iso into RTnet
stack. To make the work more general/not-firewire-specific, I got an idea to
introduce the channel based broadcasting, where the Firewire iso is one
implementation. 

In channel based broadcasting, active node should choose one channel to put
its packet on fly, while the passive node tunes itself (in hardware or in
software) to that certain channel to receive the packet. One node can listen
to multiple channels at the same time, but may only use one channel to
"radio" its packet. Compared with traditional point-to-point communication,
like on Ethernet, the channel based broadcasting fits better within the
distributed control system. Because in distributed control system, almost
any communication is time-triggered, e.g. the encoder->controller->actuator
in position control. Also some communication is one to many, so really like
a radio, the channel based broadcasting can be used here without any extra
overhead.   

To introduce the channel based broadcasting, one or more extra modules need
to be created in the stack. 
One is the API module, which is to provide to the application a set of high
level primitives and hide all the internal details. (This could be done by
making an extension to the RTDM module.) 
Second is the Packet Management module, which is to (de)multiplex the
messages. There may be several processes on one node, (the process may be
called Server here since they are actively sending some message), hence the
PM module is responsible to put all the messages into one packet with an
index. Also in the receiving side, the PM module should also demultiplex the
incoming packet according to the index. 

It may be asked that where to do the allocation and subscription of
channels. Well, this could be done in PM module also. But since distributed
control system is not that flexible, and normally not need to be, so this
work can also be done during the offline configuration phase. 

Of course, we also need a hardware/fieldbus-specific module to implement all
the high-level primitives. For the hardware, as far as I know, Firewire,
CAN, even Ethernet can be a choice. In my opinion, Firewire fits best, both
on the latency and the convenience (the tuning to multiple channels is
supported in Firewire chip). 

Ok, so far, this is my rough idea. Any correction and addition is
welcome-:).

Best regards,
Zhang Yuchen
MSc Student
Control Engineering Group
University of Twente
The Netherlands
 



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
RTnet-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-developers

Reply via email to