Title: TinyOS 2.0 Network Stack Enhancements
1TinyOS 2.0Network Stack Enhancements
- Joseph Polastre Phil Levis
- UC Berkeley UC BerkeleyMoteiv Corporation
2Need for changes
- Cross-platform common radio/MAC
- micaZ, Telos, imote2
- Currently each platform implements routines for
accessing radio and timer - Support different TOSMsg structures for different
radios/MACs - Difficult to build different underlying MAC and
Radio implementationsCSMA/TDMA/slotted
3Summary of Changes
- New TOSMsg format
- Defined by each radio
- External typesnetwork structures
- Abstract typefields provided by components
- New Interfaces to AM Layer
- Supports CSMA and slotting MAC protocols
- New Bus Protocol Abstraction
4TOSMsg
- Abstract type defined by each MAC protocol
- Similar to S-MAC TinyOS implementation
Radio/MAC specific header
typedef nx_struct TOSMsg TOSRadioHeader
header nx_uint8_t dataTOSH_DATA_LENGTH
TOSRadioFooter footer TOSRadioMetadata
metadata TOSMsg
Application data payload
Radio/MAC specific footer
Radio/MAC metadatanot sent over the radio
5Global TOSMsg Fields
- Interface RadioPacket
- Length
- Address
- Group/PAN
- Data
- Time
- Acknowledgement
6Accessing TOSMsg Fields
- For Global Fields
- Platform and MAC independent
- All MAC required to implement
- Wire to RadioC.RadioPacket
- Access fields through Radio Packet interface
length call RadioPacket.getLength(msg)
7Moving up the stack
- RadioPacket accesses the lowest primitive fields
at the link protocol - AM exports fields throughAMPacket
- Likewise, standard MultiHopfields through
MultiHopPacket - Provides separation of messagefield
implementation and accessto those fields
MultiHop
AM
Radio
8Accessing TOSMsg Fields
- For MAC-dependent applications
- Use structures defined by MAC protocol
- Example CC2420 radio
void myfunc() if (msg.lqi gt 100) //
perform action
typedef nx_struct TOSRadioMetadata nx_uint8_t
strength nx_uint8_t lqi nx_bool crc
nx_bool ack nx_uint16_t time
TOSRadioMetadata
9Protocol Bus Abstraction
- All protocol busses provide Bus Arbitration
- SPI, I2C, UART
- HIL Protocol Access
- Bus must be acquired before use, even if only a
single user - Token granted to bus user, all accesses must use
token
Bus Arbitration
HIL SPI
StdControl
SPIC
SPI Configuration
10Component OrganizationExample CC2420 Radio
Stack for Telos
Platform Independent
Platform Specific
All radios provide
RadioC
CSMARadioC
Adds CSMA interfaces
CC2420RadioM
CC2420ControlM
CC2420 Logic
HPLCC2420
Rd/Wr CC2420 Registers
TelosCC2420
Wiring to SPI bus/Ints
HIL SPI
SPI Bus Interface
MCU Implementation
HAL Interrupts Pins
HAL SPI
HPL MCU
MCU Registers
Hardware
MCU Radio
11Questions?
- More information
- See TEP 105
- Radio Link Layer