Andrea Forni wrote: > Hi all, > > for the first: I'm sorry for my english... > > I have linux kernel 2.6.10.0, RTAI 3.1 and rtnet 0.8.3. > > I'm realizing a communication between a node master and a node slave: slave > send > > n (in this case n=200) message to master with a similar code: >
... > > I organise tdma.conf file in this mode: > > > # Primary master > master: > ip 10.0.0.3 > cycle 1000 > slot 0 200 > slot 2 600 > > > # Slave A > slave: > ip 10.0.0.1 > slot 10 0 "slot 0 0" would be fine here as well (it will make the slot succeed the sync frame immediately - and safely). > slot 2 400 > > I would that the slave send two message (RT) to master in one cycle of TDMA. > I hope to read that, for example : > > > > time event > > 0 synchronization TDMA > 10 slave(10.0.0.3) send a message to master(10.0.0.1) > 200 master receive a message from slave > 400 slave send a message to master > 600 master receive a message from slave > 1000 synchronization TDMA > 1010 slave(10.0.0.3) send a message to master(10.0.0.1) > 1200 master receive a message from slave > 1400 slave send a message to master > 1600 master receive a message from slave > 2000 synchronization TDMA > . > . > . > . > . > > in the reality I have this situation: > > time event > > 0 synchronization TDMA > 10 slave(10.0.0.3) send a message to master(10.0.0.1) > 200 master receive a message from slave > 1000 synchronization TDMA > 1010 slave(10.0.0.3) send a message to master(10.0.0.1) > 1200 master receive a message from slave > 2000 synchronization TDMA > . > . > . > . > . > > > I'm searching to do a control in an automation system and I need to send a > message to master very quickly (100-150us for the moment), for this motif I > do the tests above... > I read in old mails (and I verify this) that a cycle of 600us is stressfull > for the network,but for my situation I must to send a message in shorter > time(100-150us), for this > I would to poll a node more than one time in the cycle. If you have a well defined communication pattern, optimisation is feasible. E.g. you don't have to keep the cycle period that low, you could also duplicate the slot pattern several times in a longer cycle. This saves load due the generating and consuming the sync frame. Also, you could consider writing an optimised RTmac discipline if you always have a poll/reply pattern between two nodes. I mean, currently a node is sending time-triggered, but it would also be possible to implement a policy that is message-trigged ("send next frame in slot X after receiving some specific frame"). In order to get informed about application data exchange also at RTmac/discipline level, encapsulating such payload into RTmac frames would be required (just like tunnelled non-RT data gets encapsulated). This may reduce the management overhead by avoiding to schedule a polling reply according to strict time slots. BTW, do you plan to use more than two stations in your final setup? Jan
signature.asc
Description: OpenPGP digital signature