tinyos radio stacks joe polastre, phil buonadonna, etc monday, october 20 2003

Post on 10-Dec-2015

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

TinyOS Radio Stacks

Joe Polastre, Phil Buonadonna, etc

Monday, October 20 2003

Radio Stacks

Mica (Old) Mica (MicaHighSpeedRadio) Mica2 (CC1000) Future?

Typical Radio Stack

Generic Comm

AM

Packet Layer

Byte Layer

Bit Layer

Mica and Rene

Mica2

New Radios (CC2.4K)

Rad

io C

ontr

ol

Mica (Old)

Generic Comm

AM

CRCPacketObj

SecDedRadioByte

RFM

Mica (MicaHighSpeedRadio)

Generic Comm

AM

RadioCRCPacket

ChannelMon

SpiByteFifo

RadioTiming

SecDedEncoding

SlavePin

RandomLFSR

MicaHighSpeedRadioM

CSMAPreamble DetectStart Sym Detect

Captures radio timing and syncs

receiver to sender

Encoding

Mica2 (CC1000)

Generic Comm

AM

CC1000Control

SpiByteFifo RandomLFSR ADC

CSMAEncoding

DataPreamble DetectSynchronization

Control(Freq,Power,etc)

CC1000RadioIntM

Wires the control and data paths:Implementation hidden from app

CC1000RadioC

Mica2 Radio Stack

Phil B

Radio Packets

Mica

Mica2

MAC Delay Preamble Sync Packet Transmission

Switch to TX Mode

Switch to RX Mode

1-128 18 2 36

56

250s 250s

Comparison

Mica Mica2

Preamble Bytes 12 (4) 18*

Sync Bytes 0 2

Packet Length 36 36

Acks Yes No

Encoding SecDed (3:1) Manchester (2:1)

Eff Data Rate 13.3kbps 19.2kbps

Max Packets/sec 42 43

Packet Time 24ms 23.3ms

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

Settling(setting)

Lock

00 23

01 34

10 55

11 98 (17)

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

Synchronous ACKs

Mica Switch from Transmit to Receive mode

instantly. No need to resynchronize ack sender.

Mica2 Switch from Transmit to Receive mode in

250s CC1K requires that each receiver lock to the

incoming signal (~18 bytes = 7.5ms) Almost as expensive as sending a packet!

CSMA

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

Mica2 Release

Set a fixed noise floor threshold On transmission:

Take RSSI readingIf reading > floor, transmit on next

byte boundary from radio

With a few months in the lab, what happens?

0 10 20 30 40 50 60 70 80 90 100

0

0.2

0.4

0.6

0.8

1

Raw

sig

nal s

tren

gth

(V)

Time (ms)

Collisions Oh My!Channel Clear

1

2

34

0 10 20 30 40 50 60 70 80 90 1000

0.5

1R

aw s

igna

l str

engt

h (V

)

Time (ms)

0 10 20 30 40 50 60 70 80 90 100-1

0

1

2

OK

to

tran

smit

Time (ms)

0 10 20 30 40 50 60 70 80 90 100-1

0

1

2

OK

to

tran

smit

Time (ms)

0 10 20 30 40 50 60 70 80 90 100-1

0

1

2

OK

to

tran

smit

Time (ms)

CC1000 Radio MAC

Radio RSSI sampled at 5kHz

Current MAC

Adjusted Threshold

Adjusted Threshold with Averaging

Incoming Packet

Channel Considered Clear

Periodic Errors

Channel Busy during Xmit

0 10 20 30 40 50 60 70 80 90 1000

0.5

1R

aw s

igna

l str

engt

h (V

)

Time (ms)

0 10 20 30 40 50 60 70 80 90 100-1

0

1

2

OK

to

tran

smit

Time (ms)

0 10 20 30 40 50 60 70 80 90 100-1

0

1

2

OK

to

tran

smit

Time (ms)

0 10 20 30 40 50 60 70 80 90 100-1

0

1

2

OK

to

tran

smit

Time (ms)

CC1000 Radio MAC

Radio RSSI sampled at 5kHz

Median over 5 sample window

Average over 5 sample window

Max over 5 sample window

False Positives

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

Comparison

Mica Mica2 Rel Mica2 Joe

Init MAC Backoff 16 (5.3)3.2ms

36+12868.3ms

6426.6ms

Congest Backoff 16 (5.3)3.2ms

29*16193ms

36+12868.3ms

Noise Floor AGC

(Hardware)

Fixed AGC

(Software)

Results

Results

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 s) 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 2500s!

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.

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…

webs.cs.berkeley.edutinyos-1.x/beta/CC1000Radio/

top related