TinyOS - USC Robotics Research Lab
Download
Report
Transcript TinyOS - USC Robotics Research Lab
TinyOS
Mohammad Rahimi
CSCI599-Spring2002
1
Motivation
The new class of
distributed tiny
devices
The new generation
of software
2
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
3
Hearing aid
Headphones
Fixed
Infrastructure
PDA
Pen (Anoto)
Health Monitor
Authentication
Ring
Display Watch
Keys
4
Dot Mote
5
Rene Mote
6
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
7
A Modular Approach
Components
– Wired together
– Interface may join different components
Program is Execution Graph & scheduler
8
Component
Synchronous Asynchronous
Component interface
Messaging Component
– Commands that it accepts
Internal State
Internal Tasks
– Events that it signals
– Commands that it uses
– Events that it handles
Commands
Events
Component Frame
– Maintain internal state
Event
– Initiate at lowest level by hardware
– Make a FSM model
Task
– Tasks: internal concurrency
– Non Preemptive
9
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
10
Application
Application = graph of components + scheduler
sensing application
application
Routing Layer
routing
Messaging Layer
messaging
packet
byte
bit
Radio Packet
UART Packet
Radio byte
UART byte
RFM
photo
clocks
ADC
Temp
SW
i2c
HW
11
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);
};
12
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
……..
13
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 !
14
Communication
Application
Dynamic Network Discovery
Ad hoc multi hop routing
Active
Message layer
Detail of Implement
Low Power
Little storage
15
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
16
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
17
FUN!
29 Palms Fixed/Mobile Experiment
1
2
3
5
4
18
Cool
6
19
Fun Again
•Largest Tiny Network Yet
•Large-Scale Demonstration of Self-Organizing
Wireless Sensor Networks
20
21
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/
22
END!
23