1 / 28

TinyOS Radio Stacks

TinyOS Radio Stacks. Joe Polastre, Phil Buonadonna, etc Monday, October 20 2003. Radio Stacks. Mica (Old) Mica (MicaHighSpeedRadio) Mica2 (CC1000) Future?. Mica and Rene. Typical Radio Stack. Generic Comm. AM. Packet Layer. New Radios (CC2.4K). Byte Layer. Radio Control. Mica2.

niel
Download Presentation

TinyOS Radio Stacks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TinyOS Radio Stacks Joe Polastre, Phil Buonadonna, etc Monday, October 20 2003

  2. Radio Stacks • Mica (Old) • Mica (MicaHighSpeedRadio) • Mica2 (CC1000) • Future?

  3. Mica and Rene Typical Radio Stack Generic Comm AM Packet Layer New Radios (CC2.4K) Byte Layer Radio Control • Mica2 Bit Layer

  4. Mica (Old) Generic Comm AM CRCPacketObj SecDedRadioByte RFM

  5. Mica (MicaHighSpeedRadio) CSMA Preamble Detect Start Sym Detect Generic Comm AM RadioCRCPacket Encoding Captures radio timing and syncs receiver to sender MicaHighSpeedRadioM ChannelMon RadioTiming SlavePin SpiByteFifo SecDedEncoding RandomLFSR

  6. Mica2 (CC1000) Wires the control and data paths: Implementation hidden from app Generic Comm AM CSMA Encoding Data Preamble Detect Synchronization Control (Freq,Power,etc) CC1000RadioC CC1000Control CC1000RadioIntM SpiByteFifo RandomLFSR ADC

  7. Mica2 Radio Stack Phil B

  8. Radio Packets

  9. Mica

  10. Mica2 Switch to TX Mode Switch to RX Mode MAC Delay Preamble Sync Packet Transmission 1-128 18 2 36 56 250ms 250ms

  11. Comparison

  12. Mica2 Preamble • CC1000 must “sync” its clock to incoming signal • With manchester encoding, 17 sync bytes are required for longest range • an extra byte is added for offset in receiving

  13. Strength • Mica • sends two strength bytes to measure high amplitude via RSSI pin • Mica2 • with FSK, both ‘0’ and ‘1’ contain energy • measure energy at any point during packet reception, no need for extra bytes

  14. Synchronous ACKs • Mica • Switch from Transmit to Receive mode instantly. • No need to resynchronize ack sender. • Mica2 • Switch from Transmit to Receive mode in 250ms • CC1K requires that each receiver lock to the incoming signal (~18 bytes = 7.5ms) • Almost as expensive as sending a packet!

  15. CSMA

  16. Mica • Hardware sets automatic gain control (AGC) using a capacitor in ASK mode • Channel Monitor looks for ‘1’ bits on the radio while waiting to send • start symbol/preamble detection

  17. Mica2 Release • Set a fixed noise floor threshold • On transmission: • Take RSSI reading • If reading > floor, transmit on next byte boundary from radio • With a few months in the lab, what happens?

  18. Collisions Oh My! Channel Clear 1 2 4 3

  19. Radio RSSI sampled at 5kHz CC1000 Radio MAC Current MAC Incoming Packet Adjusted Threshold Adjusted Threshold with Averaging Channel Considered Clear Periodic Errors Channel Busy during Xmit

  20. False Positives CC1000 Radio MAC Radio RSSI sampled at 5kHz Median over 5 sample window Average over 5 sample window Max over 5 sample window

  21. Mica2 Joe • Use calibrated ADC • Adjust noise floor: • After each packet transmission, sample RSSI and add to 10 sample FIFO queue • Select median(Q) and add to EWMA • On transmit: • Take <=5 RSSI samples • If one reading > floor, transmit on next byte boundary from radio • Downside: can take up to 10 packets for the noise floor to settle

  22. Comparison

  23. Results

  24. Results

  25. Brief Low Power Operation • Mica • Snooze: Node is either on or off • Radio: Can detect channel activity in microseconds • Radio startup time is negligible (10s of ms) • Mica2 • HPLPowerManagement: check the state of the mote and shut down if appropriate • Radio: Currently can detect channel activity in 7.5ms (18 bytes) • Using RSSI and MAC noise floor estimation, can reduce this time to ~1ms. • Radio start up time is up to 2500ms!

  26. ACKs Revisited • If we can now reliably detect channel activity, can we do ACKs? • Answer: Hopefully. • How? • By switching modes and sending data (or pulse sending data), the receiver can detect this signal • Think amplitude shift keying • May be able to detect hidden terminals too • If ACK doesn’t have pattern but instead is constant energy, then someone didn’t detect the original transmitter and transmitted over him • Can be done in 4-5 bytes and doesn’t require the receiver to synchronize! • … but it hasn’t been tried yet.

  27. Open Questions • Allow Application to control MAC backoff? • Is TOS_Msg the right networking abstraction for building sensor network apps and services? • OSI? S-MAC? • What does a stack look like where you can change MAC layers, security models, and encodings? Mica and Mica2 stacks are close, but not quite there…

  28. webs.cs.berkeley.edu tinyos-1.x/beta/CC1000Radio/

More Related