Thanks David for this info, I think it will be quiet useful for us.

regards,
Avinash

On 9/13/06, David Moss < [EMAIL PROTECTED]> wrote:
I am in the final stages of implementing a CC2420 low power listening library for TinyOS 2.x.  I'm not intending it to be compliant with any kind of standard; instead, I want it to be functional.  This does not require long preambles, and does not require peer-to-peer synchronization.
 
Initial results on a tmote indicate 5.09 mAh/day at 2-second receive check intervals.  This will probably get lower.
 
Since it's not quite finished and I'm not sure if/when I'll contribute it, I'll explain how I have implemented this in case you want to try it yourself:
 
Summary: On the Rx end, it's a periodic channel energy check.  On the Tx end, it's a repetitively transmitting message.
 
1. Edited CC2420TransmitP to provide a "CC2420Cca" interface that allows external components to sample the status of the CCA pin when the radio is on and not doing anything.  The "getCca()" command simply verifies the state is good to go, then sets the backoff timer to the CC2420_BACKOFF_PERIOD.  The backoff timer fires, ensuring the Rx mode has been set for enough symbol periods for the CCA pin to be valid, and then sends back the reading in an event.
 
2. Built a CC2420DutyCycle component that duty cycles the CC2420 radio on and off.  After the radio turns on, the CCA is checked three times in a row.  If one of these checks indicates that the channel is *not* clear, then someone is transmitting.  The radio is left on indefinitely at this level, only to be turned back off again by higher levels of this architecture after packets are done receiving.  If nobody is transmitting, turn the radio off immediately.  Total time the radio is on (in the current version): 3.7 ms from start to finish, but most of that time is spent at a lower power (<5mA) starting up the radio.
 
3. Built a low power listening module that provides send/receive interfaces and sits on top of the duty cycling component.  When low power listening is enabled, the duty cycling is turned on.  When a message is detected and received at this level, the message is passed up to the application level and leaves the radio on for a brief period of time in case other messages are coming.  If this time expires, the radio turns off and continues duty cycling.  Ideally, an ack is returned as well.
 
On the transmitting end, the send event in this LPL module actually retransmits the message over and over again up to the length of the duty cycle period, and adjusts the backoff period to be very short so there is not much space between messages.  If an ack is heard, it quits transmitting early (an advantage over the long preamble method!) and signals sendDone. Otherwise, sendDone gets signaled after the duty period expires.
 
 
There you have it, low power CC2420 duty cycling, very similar to CC1000's BMAC. 
 
The new TinyOS 2.x CC1000 low power listening does energy checks on the channel as well, instead of preamble checks, only firing up the bias of the radio and leaving the rest of the radio off.  This receive check ("RSSI Pulse Check") scheme does not require long preambles if your message (with short preambles) is being sent over and over again for a full receive period.  By sending repeating messages, you can also cut the transmission length short if you receive an ack in the middle, saving on Tx energy and decreasing transmission latency.  I've tested this.
 
-david
 
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Diego Bartolomé Arquillo
Sent: Wednesday, September 13, 2006 8:24 AM
To: [EMAIL PROTECTED]
Cc: tinyos-help@Millennium.Berkeley.EDU
Subject: RE: [Tinyos-help] low power listening in tinyos-2.x for CC2420 ?

Hi Avinash,
Low power listening have not sense using CC2420 because this chip is compliant with the standard IEEE 802.15.4. This standard defines a 4 bytes preamble length and LPL needs a long preamble in order to work properly. The CC1000 is not compliant with 802.15.4 and allows you to change the preamble length. When you send a packet using LPL, a long preamble is transmitted. The recipient of the packet is idle and periodically it scans the channel to look for a packet. If the preamble and the period are adapted, the recipient can receive the useful information of the packet.
Best regards,
Diego

De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] En nombre de Avinash Sridharan
Enviado el: miércoles, 13 de septiembre de 2006 2:35
Para: tos
Asunto: [Tinyos-help] low power listening in tinyos-2.x for CC2420 ?

Hi,
 I am working with the tmote sky platform and running tinyos-2.x (beta 2) on it. I wanted to check with the community if there is low power listening support existing for CC2420 based platforms in tinyos-2.x. Low power listening was introduced as BMAC by Joe Polaster in tinyos-1.x for the CC1000 chips, but I could not find reference implementations of BMAC for CC2420 in tinyOS-2.x. Also if BMAC is not available for tinyOS-2.x (atleast in the near future) is it available as part of the Boomerang distribution.

Thanks,
Avinash
--
Phd Dept. of Electrical Engineering
University of Southern California
http://www-scf.usc.edu/~asridhar



--
Phd Dept. of Electrical Engineering
University of Southern California
http://www-scf.usc.edu/~asridhar
_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to