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

Reply via email to