[Tinyos-help] TOSSIM in TinyOS2.x
Philip Levis
pal at cs.stanford.edu
Mon Dec 18 13:53:54 PST 2006
On Dec 18, 2006, at 12:17 PM, ipark at ncsu.edu wrote:
> Dear Mr. Philip Levis,
>
> I'm doing simulation with TOSSIM in TinyOS 2.x.
> I have a question about variable "receiving" in
> UseGainInterferenceModelC.nc.
> The command putOnAirTo calls sim_gain_put() as many as the number
> of links
> which source node has. Eventually, enqueue_receive_event() sets the
> variable "receiving" to 1 if there is no receiving packet. I'm
> wondering
> how the variable "receiving" still has 0 for second link, when
> sim_gain_put() for first link set the variable "receiving" to 1. I
> know "receiving" is a global variable.
> I beg your explanation. Thank you.
The variable "receiving" is for a specific node, not a link. It
denotes the reception state at that node.
The variable "receiving" is intended to capture whether or not the
radio is searching for a packet preamble. If receiving is 0, then the
simulation is looking for preambles. If receiving is 1, then it
thinks it is receiving a packet and so does not look for preambles.
This logic is based on the observed behavior of the CC2420 radio and
default TinyOS CC1000 stack.
The logic matters when a node starts successfully hearing packet A
and during packet A starts to hear a much stronger packet B. While
B's preamble could be detected, the radio stack just sees it as a
corruption of packet A. Therefore A is lost and B is not received.
Once A ends, however (based on the length field), the radio starts
looking for preambles again. There are radio stacks (e.g., the Ember
version of the CC2420, and Kamin Whitehouse's experimental CC1000
capture-aware stack) which detect the stronger preamble and reset
packet reception. But since in the case of 802.15.4 the current
hardware TinyOS platforms use and in the case of the CC1000 the
software stack doesn't support this, the simulation discards the packet.
Phil
More information about the Tinyos-help
mailing list