Top Banner
Programming Embedded Programming Embedded Sensor Networks Sensor Networks Feng Zhao PARC (formerly known as Xerox PARC) www.parc.com/zhao ACM CODES+ISSS 2003, Oct 1, 2003
23

Programming Embedded Sensor Networks

Sep 12, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming Embedded Sensor Networks

Programming Embedded Programming Embedded Sensor NetworksSensor Networks

Feng ZhaoPARC (formerly known as Xerox PARC)www.parc.com/zhao

ACM CODES+ISSS 2003, Oct 1, 2003

Page 2: Programming Embedded Sensor Networks

AcknowledgementAcknowledgement

PARC CoSense team:– Patrick Cheung, Maurice Chu, Leo Guibas, Qingfeng Huang,

Jie Liu, Julia Liu, Jim Reich– Student Interns: Jaewon Shin, Judy Liebman, Soham

Mazumdar, Dragan Petrovic

External collaborations: – Diffusion: Deborah Estrin, John Heidemann, Fabio Silva

(UCLA/USC/ISI)– DOA Estimation: Kung Yao (UCLA)– TinyGALS: Elaine Cheong (Berkeley)

Funded in part by the DARPA SensIT Program under contract F30602-00-C-0175

Page 3: Programming Embedded Sensor Networks

PARC Smart Matter ResearchPARC Smart Matter Research

Sensor networks Actuator networks

• Collaborative processing

• Embedded software design

• Scalable Information architecture

• MEMS signal processing

• Energy harvesting

• Large-area sensor/actuator arrays

• Modular reconfiguration

• Constraint based control

• Adaptive optimization

• Smart Matter Research since 1994• Collaborative Sensing since 1997

MEMS devices

Page 4: Programming Embedded Sensor Networks

Smart, Networked SensorsSmart, Networked SensorsOf 9.6 billion uP to be shipped in 2005, 98% will be embedded processors!Intel plans to put a radio on every uP

Riding on Moore’s law, smart sensors get

Sensoria WINSNG 2.0CPU: 300 MIPS 1.1 GFLOP FPU32MB Flash32MB RAMSensors: external

More powerful

Crossbow MICA mote4 MIPS CPU (integer only)8KB Flash512B RAMSensors: on board stack

Inexpensive & simple

Smart Dust (in progress)CPU, Memory: TBD (LESS!)Sensors: integrated

Super-cheap & tinyEasy to use

HP iPAQ w/802.11CPU: 240 MIPS32MB Flash64MB RAMBoth integrated and off-board sensors

Page 5: Programming Embedded Sensor Networks

Embedded software are difficult to writeEmbedded software are difficult to write

Hardware challenges• Limited processing capabilities• Limited power resources• Limited memory• Limited bandwidth

Small programs on small devices

Page 6: Programming Embedded Sensor Networks

Sample Sensor Hardware: Berkeley motesSample Sensor Hardware: Berkeley motes• CPU:

• 8-bit, 4 MHz Atmel processor• No floating-point arithmetic support

• Radio: • 916 MHz RFM @10Kbps• Distance 30-100ft• Adjustable strength for RF

transmission & reception• Storage:

• 8 KB instruction flash• 512 bytes data RAM• 512 bytes EEPROM (on processor)

• OS: • TinyOS, event driven (3.5KB code

space)• Sensors:

• 10-bit ADC mux’d over 7 analog input channels

• Sensing: light, sound, temperature, acceleration, magnetic field, pressure, humidity, RF signal strength

Photodiode and hood

MicrophoneTemperature sensor

Five other sensor inputs

Antenna 916MHz

Hardware

Page 7: Programming Embedded Sensor Networks

Power Breakdown… Power Breakdown…

003 mAEE-Prom

0

0

0

4.5 mA (RX)

2 mA

Idle

0200 µATemperature

0200 µAPhoto Diode

04 mALED’s

5 µA7 mA (TX)Radio

5 µA5 mACPU

SleepActive

Rene motes data, Jason Hill

Communication/computation ratio:

• Rene motes:

• Comm: (7mA*3V/10e3)*8=16.8µJ per 8bit

• Comp: 5mA*3V/4e6=3.8 nJ per instruction

• Ratio: 4,400 instruction/hop

• Sensoria nodes:

• Comm: (100mW/56e3)*32=58µJ per 32bit

• Comp: 750mW/1.1e9=0.7nJ per instruction

• Ratio: 82,000 instruction/hop

Panasonic CR2354560 mAh

This means– Lithium Battery runs for 35

hours at peak load and years at minimum load, a three orders of magnitude difference!

Page 8: Programming Embedded Sensor Networks

Embedded software are difficult to writeEmbedded software are difficult to write

Hardware challenges• Limited processing capabilities• Limited power resources• Limited memory• Limited bandwidth

Networking challenges• Ad hoc/dynamic system formation• Unreliable links, competing media access• No universal routing protocols• No central name and registry services• Simultaneously application host and routers

Limited infrastructure support

Page 9: Programming Embedded Sensor Networks

An application of wireless sensor network: An application of wireless sensor network: fire monitoringfire monitoring

Page 10: Programming Embedded Sensor Networks

Embedded software are difficult to writeEmbedded software are difficult to write

Hardware challenges• Limited processing capabilities• Limited power resources• Limited memory• Limited bandwidth

Networking challenges• Ad hoc/dynamic system formation• Unreliable links, competing media access• No universal routing protocols• No central name and registry services• Simultaneously application host and routers

Application challenges• Dynamic collaboration among nodes• Global property from local execution• Competing events/tasks• Real-time missions

Massively distributed multitasking

Page 11: Programming Embedded Sensor Networks

A central problem: define and manage A central problem: define and manage collaborative sensor groups dynamically collaborative sensor groups dynamically based on their relevance to the current based on their relevance to the current task and available network resourcestask and available network resources

Page 12: Programming Embedded Sensor Networks

PARC Building

PanningCamera

Fixed Camera x2

Parking Lot

Alco

ve

3D

7D10D

15D

1D

4

65 8

917

1116

14

13

2

12D

Tracking EventsTracking Events

• 17 nodes (6 DOA, 11 amplitude)• Scale: 1 square=5 ft.• 0.5 sec update interval• Packet loss significant

Page 13: Programming Embedded Sensor Networks

Rethinking the network infrastructureRethinking the network infrastructure

In wireless ad hoc networks, networking is intimately coupled with sensing, interaction, and control needs and hence application semantics

• Break down traditional barriers of OSI model• IDSQ considers both communication cost and

information utility using algorithms and dynamic data evaluated at the application level

• Implemented the node selection in network, via routing decision

• Data-centric and ad-hoc• Address nodes based on geography and capability,

not by name• Peer-to-peer, mesh topology; dynamic and highly

mobile connectivity• Group management vital to scalability

• Limit data propagation to sensors relevant to measurement at hand

OSI Model

Application

OSI ModelPSTNDP

Page 14: Programming Embedded Sensor Networks

NodeNode--Level Programming ArchitectureLevel Programming Architecture

ModularityComponent reusabilityCorrectness by constructionMaintainability

POT

Clock logic

CLOCK

Get sensor data

PHOTO

sensing

clock Send local data

GENERIC_COMM

Send BLESS mesgBLESS send

Receive packets

GENERIC_COMM

receivingUpdate local data

init

init

initinit

start

global_nodedata;global_parent_id;

BLESS receiveGENERIC_COMM

BLESS forwardGENERIC_COMM

Update Routing Table

Routing Table

MAIN

TARGET_TRACKING

CLOCK

GENERIC_COMM

BLESSInit

Clock

SendSend

done

LEDS

Send

Send done

Receive channel 8

Send

Send done

Receive channel 7

InitInit Start

e event

On Off

PHOTO

Init

Get data

Data ready

Network-centric OS (TinyOS)

Init

Fir

General purpose OS (Linux)

TinyGALS: Globally Asynchronous Locally Synchronous Synthesizing an application-specific OS

Page 15: Programming Embedded Sensor Networks

Before and After…Before and After…

POT

Clock logic

CLOCK

Get sensor data

PHOTO

sensing

clock Send local data

GENERIC_COMM

Send BLESS mesg

BLESS send

Receive packets

GENERIC_COMM

receiving

Update local data

init

init

initinit

start

global_nodedata;global_parent_id;

BLESS receive

GENERIC_COMM

BLESS forward

GENERIC_COMM

Update Routing Table

Routing Table

TinyGALSTinyOS

MAIN

TARGET_COUNTING

CLOCK

GENERIC_COMM

BLESS

InitC

lockS

endSend done

LEDS

Send

Send done

Receive channel 8S

end

Send done

Receive channel 7

Init

Init Start

InitFire event

On Off

PHOTO

InitG

et dataD

ata ready

8 method call interfaces that handles 3 threads ofexecution using pending locks extensively.

Every module is single threaded. Components arecompletely sequential.

Page 16: Programming Embedded Sensor Networks

Programming embedded sensor networks: Programming embedded sensor networks: a comparisona comparisonOS/Network-centric view

Spend more time designing application-level abstractions

Information-centric viewSpend more time designing

component-level abstractions

hardware

layers ofabstraction

application

algorithms

levels ofrefinement

common substratessoftwaresynthesis

compilation

Page 17: Programming Embedded Sensor Networks

The PIECES ApproachThe PIECES Approach

Raise the abstraction level beyond individual nodes– Provide high-level primitives that act on application “states”– Shield programmers from handling low-level events

Models of collaboration– Abstract out common patterns of collaborative processing– Mix and match communication protocols from library– Modularize software through well-structured interfaces

application

sensorsprocessor

sensorsprocessor

sensorsprocessor

collaboration groupscollaboration groups

networking

Page 18: Programming Embedded Sensor Networks

Examples of Collaboration GroupsExamples of Collaboration Groups

N-hop neighbor group

Geographically constrained group– Defined by geographic extent

Publish-subscribe group– Defined by producers and

consumers of shared interests

Acquaintance group– Roaming members keep

persistent connectivity

Page 19: Programming Embedded Sensor Networks

StateState--Centric ProgrammingCentric Programming

Principals:– Create and maintain states of physical phenomena– are triggered by events or time to update these states– can be mobile to achieve optimal use of resources

Agents– recruited by one principal to obtain information from other principals

through collaboration groups.

SensingPrincipal

SensingPrincipal Sensing

Principal

SensingPrincipal

PrincipalA

PrincipalB

PrincipalC

collaboration groups

agents

Page 20: Programming Embedded Sensor Networks

A Demo: tracking multiple, interacting eventsA Demo: tracking multiple, interacting events

Page 21: Programming Embedded Sensor Networks

CoCo--design information and software architecturesdesign information and software architectures

Information Technologies• scalable informationarchitecture

• semantics/ontology • abstraction• uncertainty management• attention• adaptation• learning• …

Software Technologies• scalable softwarearchitectures

• formal methods• software reuse• software synthesis• networking• compilers • operating systems• …

Page 22: Programming Embedded Sensor Networks

As untethered sensors, actuators, embedded processors become ubiquitous, we need new ways to program and organize them

sensorsprocessor processor processor

Networking

Nex

t-ge

nera

tion

Em

Soft

OS OS OS

Collaboration group managementStorage, time, location services

sensors sensors

ApplicationsQuery interface/data management

Information fusion

Page 23: Programming Embedded Sensor Networks

To Probe FurtherTo Probe Further

PARC Cosense Project: www.parc.com/eccaOther centers: UCLA CENS, Intel Berkeley Lablet, CAL(IT)2, …Conferences:– IEEE/ACM IPSN04, Berkeley, April 2004– ACM Sensys03, Los Angeles, November 2003– ACM WSNA03, Sept 2003 (already taken place)– EWSN04, Berlin, Jan. 2004

Journals:– New ACM Trans. Sensor Networks, to be launched in 2004– A dozen special issues

Books:– Morgan Kaufmann textbook– CRC Press book