[Tinyos-help] LPL on Telos
cristian.dealti at saee.com
Tue Sep 27 06:34:03 PDT 2005
To those (few) interested in Low Power Listening on telos. I followed the hint by Joe Polastre about a LPL implementation on telos platform.
I first set TX_MODE = 2 which lets you send TXFIFO contents cyclically. When you issue a TXON (or TXONCCA) strobe the
radio first inserts automatically a SHR like in TX_MODE = 0 (the default transmission mode) and then TXFIFO contents (128 bytes)
are sent. No processing (I believe) is done by CC2420 on TXFIFO contents. In particular no FCS is computed and added at the end.
When the 128th byte of TXFIFO has gone the process restarts itself by sending the first byte in the FIFO.
I write to TXFIFO a 128 byte buffer made by repeating twice the sequence:
21 /* 802.15.4 length */
CC2420_DEF_FCF_HI, CC2420_DEF_FCF_LO, 0, TOS_BCAST_ADDR, 0xFFFF, 0x0A, 0x7D,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, /* A message */
FCS, /* Computed-by-me FCS */
0x00, 0x00, 0x00, 0x00, 0xA7 /* A synchronization header */
whose length is 64 byte.
The initial part of the sequence is a 802.15.4 compliant frame. The FCS is computed on MAC header and MAC payload. FCS is not
computed and inserted automatically by CC2420 in TX_MODE = 2 test mode.
Then many 0s are written to the sequence and finally a SHR is appended.
I set one node to periodically send this sequence for 200 ms (+20%). Another node is programmed to wake up every 200 ms to
listen to the channel.
This node first performs a CCA. If CCA is successful it stays on and waits to receive a frame otherwise it goes back to sleep.
It has to wait at least twice the buffer duration to be sure to catch at least one frame.
I succeded in this experiment, the frames are correctly received by the sleeping node.
There are, as far as I can see, two major problems:
1) A test mode is used. Maybe this test mode won't be available in future steps of the chip.
2) Since the sleeping node starts listening at a random point of the incoming bit stream and a SHR can be present as part of the
frame e.g. in the data field of the frame, a false start of frame detection may occur. A stuffing/encoding mechanism would be needed
at least to escape the SFD.
Any comments and suggestions are greatly welcome.
Cristiano De Alti
Amaro, Udine, Italy
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Tinyos-help