TinyOS
description
Transcript of TinyOS
1
TinyOS
Mohammad Rahimi
CSCI599-Spring2002
2
Motivation
The new class of
distributed tiny
devices The new generation
of software
3
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
4
PDA
Keys
Headphones
Pen (Anoto)
Display Watch
Health Monitor
Hearing aid
AuthenticationRing
FixedInfrastructure
5
Dot Mote
6
Rene Mote
7
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
8
A Modular Approach
Components– Wired together– Interface may join different components
Program is Execution Graph & scheduler
9
Component 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
Messaging Component
Internal StateInternal Tasks
Commands Events
Synchronous Asynchronous
10
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
11
Application Application = graph of components + scheduler
RFM
Radio byte
i2c
Tempphoto
Messaging Layer
clocksbit
byte
packet Radio Packet
Routing Layer
sensing applicationapplication
HW
SW
ADC
messaging
routing
UART Packet
UART byte
12
Component DefinitionTOS_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);
};
13
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_EVENTSENS_OUTPUT:SENS_OUTPUT_SUB_CLOCK_INIT CLOCK:CLOCK_INIT
SENS_OUTPUT:SENS_OUTPUT_SUB_OUTPUT_INIT INT_TO_LEDS:INT_TO_LEDS_INITSENS_OUTPUT:SENS_OUTPUT_OUTPUT_COMPLETE INT_TO_LEDS:INT_TO_LEDS_DONESENS_OUTPUT:SENS_OUTPUT_OUTPUT INT_TO_LEDS:INT_TO_LEDS_OUTPUT
SENS_OUTPUT:SENS_DATA_INIT PHOTO:PHOTO_INITSENS_OUTPUT:SENS_GET_DATA PHOTO:PHOTO_GET_DATASENS_OUTPUT:SENS_DATA_READY PHOTO:PHOTO_DATA_READY……..
14
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 !
15
Communication
ApplicationDynamic Network Discovery
Ad hoc multi hop routing
Detail of ImplementLow Power
Little storage
ActiveMessage layer
16
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
17
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
18
FUN! 29 Palms Fixed/Mobile Experiment
1
2
3
4
5
19
Cool
6
20
Fun Again•Largest Tiny Network Yet•Large-Scale Demonstration of Self-Organizing Wireless Sensor Networks
21
22
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/
23
END!