Jiakang -

I know the issue; I've tried to implement this behavior before with similar
results.

The CC2420 has a delay between Rx and Tx switching.  The radio is defaulted
to Rx, so when you transmit, it has to go from Rx->Tx, transmit, then
Tx->Rx.  Basically you see these Tx->Rx->Tx gaps between each transmission,
when CCA is disabled properly.

The solution to this is sort of a hack I implemented with the last rev of
the 2.0.1 CC2420 stack, and it will be removed in the next rev because I
don't want to support it or spend time maintaining it.  The CC2420 has an
option to continuously modulation the channel, resending the contents of the
TXFIFO over and over without any gaps between the transmissions.  This
allows a receiver to perform an extremely small receive check to detect if a
transmitter is nearby in a low power listening scheme.  Because it's
resending only the contents of the TXFIFO with no additional calculations,
the packet's CRC needs to be pre-calculated and loaded onto the chip.  Also,
I'm not sure if a preamble/sync byte is automatically sent for each round of
the TXFIFO transmission, so that may need to be uploaded as part of the
packet too.

Another option is to have your receivers do more complex backoffs.  For
example, sample the channel multiple times instead of once before
transmitting when you know other transmitters in the area are going to be
doing no-CCA packet trains.  This would increase latency, but decrease
collisions.

-David




-----Original Message-----
From: Jiakang Lu [mailto:[EMAIL PROTECTED] 
Sent: Sunday, July 01, 2007 9:24 PM
To: David Moss
Subject: CC2420 Back-by-Back Sending Problem

Hi David,

I'm trying to control the CCA and backoff in CC2420 radio on tinyos-1.x. 
However, I met some unexpected radio performance when sending the 
packets back-by-back. I've been debugging for a long time, but still 
cannot fix the problem. I really hope that you can give me some idea or 
suggestion.

Basically, my scenario is to send one packet train or two: 1. there is 
no CCA and backoff between any pair of packets in the train; 2. for the 
overall train, CCA is required. To do so, I wrote an interface called 
ConfigureMac to control the CCA and backoff part in CC2420RadioM by 
setting some flags. With ConfigureMac, my application is supposed to 
tell MAC layer if it's the first car of the packet train, and whether 
the CCA and backoff should be eliminated or not. And to make sure that 
every and each packet will be sent, I made countRetry not to decrease in 
all cases. Besides, I recorded send time and sendDone time of each 
packet to get a clear view how it actually works. These are all the 
changes I made based on standard CC2420RadioM in tinyos-1.x.

But when I send this packet train as stated above, sometimes I got very 
weird performance: the train is separated for some reason, though each 
part shows back-by-back transmission. This situation doesn't happen all 
the time and the broken pattern is random, which makes me really 
confused. Does the change in countRetry cause something wrong in the 
operation? Does the back-by-back transmission cause some problem in 
TxFIFO buffer?

For your reference, I related files in the mail and snapshot some cases 
in my data plot. I do appreciate your patience and help!

Thank you very much.

Best,
Jiakang




_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to