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