On Tue, Jul 3, 2012 at 7:25 AM, Xiaohui Liu <[email protected]> wrote:
> Hi, > > Thanks for your reply. > > Doesn't the Alarm interface run at interrupt level, > and AMSenderC$AMSend$send at sync level? The issue is that there is > potentially long and non-deterministic delay when going from interrupt > level (i.e., async) to sync level. > That is correct but the Sender stack is at sync level and there it is. So you either reimplement and there are significant stability problems if you put a major component at strictly interrupt level or you figure out a way (larger time slots) to make it work. It is a significant structural design issue. > > > On Mon, Jul 2, 2012 at 11:02 PM, Eric Decker <[email protected]> wrote: > >> sync will always have some jitter (unless you aren't really doing >> anything else besides the one task). >> >> so you will have to so the TDMA slotting at interrupt level and kick the >> transmitter stuff at sync level. >> >> >> On Mon, Jul 2, 2012 at 7:51 PM, Xiaohui Liu <[email protected]> wrote: >> >>> Hi everyone, >>> >>> I'm implementing a TDMA protocol, in which each slot lasts 10 ms. At the >>> beginning of each slot, a node sends a packet (using >>> AMSenderC$AMSend$send) if it captures the channel through some contention >>> resolution algorithm. For the protocol to function, each slot duration has >>> to be as close to 10 ms as possible. I tried the following two methods: >>> >>> 1. setup a periodic Timer with period 10 ms. But Timer interface >>> works in synchronous context and the interval between two consecutive >>> firing can be much larger than 10 ms as also mentioned in this >>> thread<http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2007-May/024953.html> >>> . >>> 2. setup an Alarm to fire every 10 ms. The timing is precise. >>> However, Alarm$fired event is asynchronous and AMSenderC$AMSend$send is >>> synchronous and thus cannot be called directly from Alarm$fired. If a >>> task >>> is post in in Alarm$fired to call AMSenderC$AMSend$send indirectly, it >>> suffers from the same issue as Timer interface does. >>> >>> FTSP is also used in the protocol, which transmits >>> via AMSenderC$AMSend$send. That's why packet transmission is >>> through AMSenderC$AMSend$send in my TDMA protocol, to be compatible with >>> FTSP. >>> >>> If you have any suggestion, please do not hesitate to share. Your help >>> would be sincerely appreciated. >>> >>> -- Cheers >>> -Xiaohui Liu >>> >> >> >> >> -- >> Eric B. Decker >> Senior (over 50 :-) Researcher >> >> >> > > > -- > -Xiaohui Liu > -- Eric B. Decker Senior (over 50 :-) Researcher
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
