Network Architecture for General-purpose Sensor Networks Omprakash Gnawali gnawali@usc.edu http://enl.usc.edu/ CSSE March 17, 2009
Sensor Network Network of small form-factor sensors Resource constraints CPU (<10 MHz) RAM (<10 KB) Low power Embedded in the physical world Wireless communication
Building Vibrations Forced Vibration Testing at the Four Seasons Building in Los Angeles
Bridge Vibrations
Pursuit Evasion
Habitat Imaging James Reserve, Riverside, CA
Sensor Network Applications Examples Industrial space Environment Infrastructure Hardware and Software Optimizations Components Scenarios
Outline Sensor Network Programming a Sensor Network Tenet: A General-purpose Sensor Network
Programming a SensorNet Programming Abstraction Services
Programming Abstraction Node-level API “Node x: execute program y” Reasoning and Debugging Challenging Program the network “Network: Collect light readings” No fine-grained control Network and Node Services
Collection Routing Collect data from the network Challenges From all the nodes To a small number of “sinks” Challenges Link estimation Dynamics Tree Routing CTP, MultihopLQI
Collection
Reliable Transport Prevent data-loss End-to-end retransmission Used with Collection Challenges Limited RAM Congestion
Congestion Collapse Four Seasons building deployment Some packets took more than an hour to recover while collecting 10 minutes worth of data Loss recovery latency 14
Dissemination Delivers data to every node in a network Challenges Rate “Broadcast storm” Many uses Reconfiguring a network Injecting queries and tasks Substrate for more complex protocols
Timing Timestamps for sensor readings Globally synchronized time Challenges Different clock rates on the nodes Wireless Approaches Hardware: GPS Software: FTSP
Sensing and Actuation Sensors Actuators Portable abstraction Light, Temperature, Accelerometer Actuators LED, Relays Portable abstraction
Data Processing Services Raw data not always needed Data filters Specify (un)wanted data Data processing Statistics Transforms, Coefficients
General-purpose API Provides Services Collection routing Reliable transport Dissemination Timing Sensing and Actuation Data processing Allows flexible composition of services
Outline Sensor Network Programming a Sensor Network Tenet: A General-purpose Sensor Network
repeat(1s)->sense(LIGHT)->send(RELIABLE) Tenet Masters and Motes Tasks and Responses Linear data-flow programs repeat(1s)->sense(LIGHT)->send(RELIABLE)
Tenet Services
Tenet Programs Linear data flow language natural choice for sensor data processing Tasklets specify elementary actions sense(), set_leds(), avg() Tasklets can be composed to form a task sense(LIGHT,10 samples)avg(LIGHT)send() repeat(10 mins)get(ROUTING_PARENT)send() No branches
Executing Tenet Programs Applications run on masters, and masters task motes Motes produce, process data, and return responses 24
Tenet Performance Tenet applications perform comparably with software optimized for a particular application.
Deployments
Conclusion Deployments Looking ahead Software reuse No performance penalty Looking ahead General-purpose radio duty-cycling