system architecture directions for networked sensors
DESCRIPTION
System Architecture Directions for Networked Sensors. Qiuhua Cao (qc9b@cs) Computer Science Department University of Virginia. Outline. Hardware Organization of Berkeley Motes Critical Issues of Sensor Networks Does an OS for the Motes exsit? Design Goals of TinyOS Concepts in TinyOS - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/1.jpg)
System Architecture Directions for Networked Sensors
Qiuhua Cao (qc9b@cs)
Computer Science Department
University of Virginia
![Page 2: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/2.jpg)
Outline Hardware Organization of Berkeley Motes Critical Issues of Sensor Networks Does an OS for the Motes exsit? Design Goals of TinyOS Concepts in TinyOS Examples Evaluation and Critiques
![Page 3: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/3.jpg)
Hardware Platform-Motes
Assembled from off-the-shelf components 4Mhz, 8bit MCU (ATMEL 90LS8535)
– 512 bytes RAM, 8K ROM 900Mhz Radio (RF Monolithics)
– 10-100 ft. range Temperature & Light Sensor LED outputs Serial Port
![Page 4: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/4.jpg)
![Page 5: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/5.jpg)
Critical Issues for Sensor Networks Highly Limited Device
power, memory, bandwith Inherently Distributed
large number of nodes coordinate, cooperate with each other to fulfill an job
Devices themselves are the infrastructure ad hoc, self-organized
Highly Dynamic failure in common variation in connectivity over time
![Page 6: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/6.jpg)
Does an OS for the Motes exist?
Traditional OS design wait request, act, respond loop monolithic event processing full thread/socket POSIX regime
Alternative concurrency and modularity never poll, never block data flows, events, power management interact
![Page 7: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/7.jpg)
Design Goals of TinyOS
Concurrency-Intensive Operations flow information from place to place on-the-fly Example: simultaneously capture data from
sensors, processing the data, then send out to the network
![Page 8: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/8.jpg)
Design Goals of TinyOS (cont.)
Limited Physical Parallelism and Controller Hierarchy Less independent controllers Less processor-memory-switch level Sensor and Actuator directly interact with the
single-chip micro controller
![Page 9: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/9.jpg)
Design Goals of TinyOS (cont.)
Diversity in Design and Usage Sensor network application specific design But wide range potential applications deep modularity of software needed
![Page 10: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/10.jpg)
Design Goals of TinyOS (cont.)
Robust Operations Cross devices redundancy prohibitive Individual reliable devices desired Application tolerant individual device failures
![Page 11: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/11.jpg)
Concepts in TinyOS Application = graph of components +
scheduler Example: INT_TO_LEDS
MIAN
COUNTER
CLOCKINT_TO_LEDS
LED
![Page 12: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/12.jpg)
Concepts in TinyOS (cont.)
Component Implementation (.c file)
Frame a set of commands a set of handlers a set of tasks
Interface (.comp) Description file (.desc)
![Page 13: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/13.jpg)
Concepts in TinyOS (cont.) Frame
Contains all permanent state for component (lives across events, commands, and threads)
Threads, events, and commands execute inside the component’s frame
Only one per component • Like static class variables, not internal class
variables. Fixed size Statically allocated at compile time
![Page 14: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/14.jpg)
Concepts in TinyOS Frame example:
Frame declaration
#define TOS_FRAME_TYPE AM_obj_frameTOS_FRAME_BEGIN(AM_obj_frame) { int addr; char type; char state; char* data; char msgbuf[30];}TOS_FRAME_END(AM_obj_frame);
VAR(state) = 0;
Use of frame Variables:
![Page 15: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/15.jpg)
Commands: Commands deposit request parameters into its frame Commands can call lower level commands Commands can post tasks Commands no-blocking Commands needed to return status Declaration TOS_COMMAND(cmd_name)(cmd_args_list); USE: TOS_CALL_COMMAND(cmd_name)(cmd_args_list);
![Page 16: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/16.jpg)
Events Deposit information into frame Events can call lower level commands Post tasks and fire higher level events. Events can not be signaled by commands, Declaration
char TOS_EVENT(evnt_name)(evnt_arg_list);
Use TOS_SIGNAL_EVENT(evnt_name)(evnt_arg_list);
![Page 17: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/17.jpg)
Tasks Tasks perform work that is computationally intensive. FIFO scheduler Run-to-completion Non-preemptable among tasks (concurrent) Preemptable by events Task declaration:
TOS_TASK(task_name){….} Posting a task:
– Asynchronous call to schedule the task for later execution
– USE: TOS_POST_TASK(avg_task);
![Page 18: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/18.jpg)
Commands, Events, Tasks
Relationship Graph
Higher Level Component
Lower Level Component
Signal events
Issue cmds
Commands can not signal Events
Both event and cmd can schedule tasks
Tasks preemptive by Envents
Tasks non preemptive by Tasks
![Page 19: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/19.jpg)
An Component Example
Messagin
g Com
pon
ent
init
Power(mode)
TX_packet(buf)
TX_packet_done (success)
RX_packet_done (buffer)
Intern
al State
init
power(mode)
send_msg(addr, type, data)
msg_rec(type, data)
msg_send_done (success)
send
_msg_th
read
Cmd Issued
Cmd accepted
Events handled
Eventssignaled
![Page 20: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/20.jpg)
An Component Example (cont. ) .comp file interface definition TOS_MODULE name;
ACCEPTS{ command_signatures };
HANDLES{ event_signatures };
USES{ command_signatures };
SIGNALS{ event_signatures };
![Page 21: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/21.jpg)
An Component Example (cont. )
.comp file interface definition//ACCEPTS:char TOS_COMMAND(AM_send_msg)(int addr,
int type, char* data);void TOS_COMMAND(AM_power)(char mode);char TOS_COMMAND(AM_init)();
//SIGNALS: char AM_msg_rec(int type, char* data);char AM_msg_send_done(char success);
![Page 22: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/22.jpg)
An Component Example (cont.)
//HANDLES:char AM_TX_packet_done(char success);char AM_RX_packet_done(char* packet);
//USES:
char TOS_COMMAND(AM_SUB_TX_packet)(char* data);
void TOS_COMMAND(AM_SUB_power)(char mode);
char TOS_COMMAND(AM_SUB_init)();
![Page 23: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/23.jpg)
An Component Example (cont.) .c file frame, commands, events implementation #define TOS_FRAME_TYPE AM_obj_frame
TOS_FRAME_BEGIN(AM_obj_frame) { char state; TOS_MsgPtr msg; }TOS_FRAME_END(AM_obj_frame);
// This task schedules the transmission of the Active MessageTOS_TASK(AM_send_task){ //construct the packet to be sent,fill in dest and type if(!TOS_CALL_COMMAND(AM_SUB_TX_PACKET)(VAR(msg)))
{ VAR(state) = 0; TOS_SIGNAL_EVENT(AM_MSG_SEND_DONE)(VAR(msg)); return; }}
![Page 24: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/24.jpg)
.c file frame, commands, events implementation // Command to be used for power management
char TOS_COMMAND(AM_POWER)(char mode){ TOS_CALL_COMMAND(AM_SUB_POWER)(mode); VAR(state) = 0; return 1; } // Handle the event of the completion of a message transmission char TOS_EVENT(AM_TX_PACKET_DONE)(TOS_MsgPtr msg){ //return to idle state. VAR(state) = 0; //fire send done event. TOS_SIGNAL_EVENT(AM_MSG_SEND_DONE)(msg); return 1; }
![Page 25: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/25.jpg)
An Component Example (cont. )
.desc file component modules specified the wiring of commands and events across
component interfaces Example:
include modules{ module list }; connection list
![Page 26: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/26.jpg)
Storage Model One frame per component, shared stack
Previous frame
Current frame
Next frame
%sp
%fp(old %sp)
variable
data
Stack Growth
![Page 27: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/27.jpg)
Storage Model (cont.) Message Buffer
Strict alternating ownership protocol Only TOS_MSG type pointer across component
AM
send_msgAM is owner of message buffer, the requesting component can not access this message buffer
send_done
AM gives up the owner of message buffer,
![Page 28: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/28.jpg)
Storage Model (cont.)char TOS_COMMAND(INT_TO_RFM_OUTPUT)(int val){
... if (!VAR(pending)) { VAR(pending) = 1; message->val = val; message->src = TOS_LOCAL_ADDRESS; if (TOS_COMMAND(INT_TO_RFM_SUB_SEND_MSG)(TOS_BCAST_ADDR, AM_MSG(INT_READING), &VAR(data))) { return 1; } else { VAR(pending) = 0; /* request failed, free buffer */ } } return 0; }
![Page 29: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/29.jpg)
Scheduler
Two-level scheduling structure– Tasks, Events
FSM execution model– Each task is like a state in the state machine,
which the events are like input signals
Events model– When there is no event, CPU is put in idle
![Page 30: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/30.jpg)
An example of Execution Model
Get_Light
Send_MsgSleep
Light done event / Msg send command
Msg sent event / Power down command
Clock Event / Light Request Command
![Page 31: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/31.jpg)
Add a task
Get_Light
Send_MsgSleep
Clock Event / Light Request Command
Thread Schedule / Msg send command
Msg sent event / Power down command
Calc. AverageLight done event / Post Task
![Page 32: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/32.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocksbit
byte
packet
Routing Layer
sensing application
HW
SW
ADC
routing
Temp
![Page 33: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/33.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
Send_message
![Page 34: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/34.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
TX_Packet
![Page 35: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/35.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
TX_byte
![Page 36: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/36.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
TX_Bit_Event
![Page 37: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/37.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
TX_Bit_Done
![Page 38: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/38.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
TX_Byte_Done
![Page 39: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/39.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
TX_Packet_Done
![Page 40: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/40.jpg)
An Composition Example
RFM
Radio Byte
Radio Packet
I2C
photo
Messaging Layer
clocks
Routing Layer
sensing application
HW
SW
ADC
Temp
Msg_Send_Done
![Page 41: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/41.jpg)
Evaluation
meet power constraints?
Active Idle Sleep
CPU 5 mA 2 mA 5 μA
Radio 7 mA (TX) 4.5 mA (RX) 5 μA
EE-Prom 3 mA 0 0
LED’s 4 mA 0 0
Photo Diode 200 μA 0 0
Temperature 200 μA 0 0
![Page 42: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/42.jpg)
Evaluation meet power save?
Battery Lifetime for sensor reporting every minute
Duty Cycle
Estimated Battery Life
Full Time Listening 100% 3 Days
Full Time Low Power Listening
100% 6.54 Days
Periodic Multi-Hop Listening
10% 65 Days
No Listening 0.01% Years
![Page 43: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/43.jpg)
Evaluation meet memory constraints?
![Page 44: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/44.jpg)
Evaluation
Meet concurrent-intensive operations? Event-driven architecture Efficient interrupts/events handling (function
calls, no user/kernel boundary)
Modularity? Function call (event, command) interface
between components
![Page 45: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/45.jpg)
Critique Real-time not addressed
Non-preemptable FIFO task scheduling NO real-time guarantees or overload protection
Tasks are dispatched to either software or hardware to best utilize the whole system resources but in TinyOS, all tasks go into software.
Adding event queues at the lowest layers can reduce the external event losses
The OS should collect runtime profiles and statistics, perform periodic system maintenance operations and maintain system level power state
No opposite argument
![Page 46: System Architecture Directions for Networked Sensors](https://reader036.vdocuments.site/reader036/viewer/2022062315/5681585f550346895dc5bc4c/html5/thumbnails/46.jpg)
Thanks!!
Any Question??