230 likes | 347 Views
TinyOS. Mohammad Rahimi CSCI599-Spring2002. Motivation. The new class of distributed tiny devices The new generation of software. Characteristic. Highly distributed Dynamic and Self Organizing Communication centric Adaptive Concurrency intensive
E N D
TinyOS Mohammad Rahimi CSCI599-Spring2002
Motivation • The new class of distributed tiny devices • The new generation of software
Characteristic • Highly distributed • Dynamic and Self Organizing • Communication centric • Adaptive • Concurrency intensive • Sudden burst of network activity and sleep • General Purpose • As opposed to traditional tailor made system programming • Not only control oriented anymore
Headphones Hearing aid FixedInfrastructure PDA Pen (Anoto) Health Monitor AuthenticationRing Keys Display Watch
Hardware • 4Mhz, 8bit MCU (ATMEL) 512 bytes RAM, 8K ROM • 900Mhz Radio RF Monolithic 10-100 ft. range • Temperature Sensor • Light Sensor • LED outputs • Serial Port 5mA Active and 5uA sleep
A Modular Approach • Components • Wired together • Interface may join different components • Program is Execution Graph & scheduler
Messaging Component Internal State Internal Tasks Commands Events Component Synchronous Asynchronous • Component interface • Commands that it accepts • Events that it signals • Commands that it uses • Events that it handles • Component Frame • Maintain internal state • Event • Initiate at lowest level by hardware • Make a FSM model • Task • Tasks: internal concurrency • Non Preemptive
scheduler • Shared stack, static frames • Events preempt tasks, tasks do not • Events can signal events or call commands • Commands don’t signal events • Either can post tasks
UART Packet Radio Packet Application • Application = graph of components + scheduler sensing application application Routing Layer routing Messaging Layer messaging packet Radio byte UART byte Temp byte photo SW HW RFM ADC i2c bit clocks
Component Definition TOS_MODULE PHOTO; ACCEPTS{ char PHOTO_INIT(void); char PHOTO_GET_DATA(void); char PHOTO_PWR(char mode); }; SIGNALS{ char PHOTO_DATA_READY(int data); }; USES{ char SUB_ADC_INIT(void); char SUB_ADC_GET_DATA(char port); }; HANDLES{ char PHOTO_ADC_DONE(int data); };
Description include modules{ MAIN; SENS_OUTPUT; INT_TO_LEDS; CLOCK; PHOTO; }; MAIN:MAIN_SUB_INIT SENS_OUTPUT:SENS_OUTPUT_INIT MAIN:MAIN_SUB_START SENS_OUTPUT:SENS_OUTPUT_START SENS_OUTPUT:SENS_OUTPUT_CLOCK_EVENT CLOCK:CLOCK_FIRE_EVENT SENS_OUTPUT:SENS_OUTPUT_SUB_CLOCK_INIT CLOCK:CLOCK_INIT SENS_OUTPUT:SENS_OUTPUT_SUB_OUTPUT_INIT INT_TO_LEDS:INT_TO_LEDS_INIT SENS_OUTPUT:SENS_OUTPUT_OUTPUT_COMPLETE INT_TO_LEDS:INT_TO_LEDS_DONE SENS_OUTPUT:SENS_OUTPUT_OUTPUT INT_TO_LEDS:INT_TO_LEDS_OUTPUT SENS_OUTPUT:SENS_DATA_INIT PHOTO:PHOTO_INIT SENS_OUTPUT:SENS_GET_DATA PHOTO:PHOTO_GET_DATA SENS_OUTPUT:SENS_DATA_READY PHOTO:PHOTO_DATA_READY ……..
Communication • Active messaging • The name of on the handler on the target • Payload to pass as argument (data) • Transmit • Acknowledge • It looks like a light weight RPC !
Communication Application Dynamic Network Discovery Ad hoc multi hop routing Active Message layer Detail of Implement Low Power Little storage
Challenges • Tight memory • Although Each component has its own stack communication messages pass by changing ownership • Adaptive and dynamic • Code migration • direct connection of micro controller to physical layer • Event driven model • Low Power • Sleep at two different granularity • Low granularity maintain the original capacity
Network Discovery and Ad hoc routing • Root with ID Zero advertise • Nodes select the lowest ID they hear as Parent • To route a node determines its parent as multi hop forwarding handler • Optimizations • Clustering • Piggy backing
FUN! • 29 Palms Fixed/Mobile Experiment 5 3 1 2 4
Cool 6
Fun Again • Largest Tiny Network Yet • Large-Scale Demonstration of Self-Organizing • Wireless Sensor Networks
Links • http://today.cs.berkeley.edu/800demo/ • http://tinyos.millennium.berkeley.edu/29Palms.htm • http://tinyos.millennium.berkeley.edu/#demos • http://today.cs.berkeley.edu/tos/