System Architecture Directions for Networked Sensors - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

System Architecture Directions for Networked Sensors

Description:

Commands and Events are function calls. Applicaton: linking/glueing interfaces (events, ... cygwin (http://www.cygwin.com) WinAVR (http://winavr.sourceforge.net) ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 23
Provided by: eng75
Learn more at: http://www.eng.uah.edu
Category:

less

Transcript and Presenter's Notes

Title: System Architecture Directions for Networked Sensors


1
System Architecture Directions for Networked
Sensors
J.Hill, R.Szewczyk, A.Woo, S.Hollar, D.Culler,
K.Pister
  • CS 851 - Radu Stoleru

2
TinyOS
  • application scheduler graph of components
  • event-driven architecture
  • single shared stack
  • NO kernel, process/memory management, virtual
    memory

3
Components
  • A component has
  • Frame (internal state)
  • Tasks (computation)
  • Interface (events, commands)
  • Frame
  • one per component
  • statically allocated
  • fixed size
  • Commands and Events are function calls
  • Applicaton linking/glueing interfaces (events,
    commands)

4
Commands/Events
  • commands
  • deposit request parameters into the frame
  • are non-blocking
  • need to return status gt postpone time consuming
    work by posting a task
  • can call lower level commands
  • events
  • can call commands, signal events, post tasks, can
    not be signaled by commands
  • preempt tasks, not vice-versa
  • interrupt trigger the lowest level events
  • deposit the information into the frame

5
Scheduler
  • two level scheduling events and tasks
  • scheduler is simple FIFO
  • a task can not preempt another task
  • events preempt tasks (higher priority)

main while(1) while(more_tasks)
schedule_task sleep
6
Tasks
  • FIFO scheduling
  • non-preemptable by other task, preemtable by
    events
  • perform computationally intensive work
  • handling of multiple data flows
  • a sequence of non-blocking command/event through
    the component graph
  • post task for computational intensive work
  • preempt the running task, to handle new data

7
Application
sensing application
application
Routing Layer
routing
Messaging Layer
messaging
Radio Packet
UART Packet
packet
Radio byte
Temp
UART byte
byte
photo
SW
HW
RFM
i2c
ADC
bit
clocks
8
Programming Environment
  • download, install and build
  • cygwin (http//www.cygwin.com)
  • WinAVR (http//winavr.sourceforge.net)
  • nesC (http//nesc.sourceforge.net)
  • Java JDK (http//java.sun.com/j2se/1.4.1)
  • tinyOS distribution (http//sourceforge.net/projec
    ts/tinyos)
  • build your application
  • code your components
  • make mica2 install.1
  • debug your application with TOSSIM simulator
  • make pc
  • build/pc/main.exe 25

9
nesC
  • the nesC model
  • interfaces
  • uses
  • provides
  • components
  • modules
  • configurations
  • application graph of components

Application
Component D
Component A
Component C
Component B
Component F
Component E
configuration
configuration
10
nesC
  • naming conventions
  • nesC files suffix .nc
  • C stands for Configuration (Clock, ClockC)
  • M stands for Module (Timer, TimerC, TimerM)
  • clarifications
  • C distinguishes between an interface and the
    component that provides it
  • M when a single component has both a
    configuration, a module

11
Interfaces
  • used for grouping functionality, like
  • split-phase operation (send, sendDone)
  • standard control interface (init, start, stop)
  • describe bidirectional interaction
  • interface provider must implement commands
  • interface user must implement events

TimerM
ClockC
12
Interfaces
  • examples of interfaces

interface StdControl command result_t init
() command result_t start () command
result_t stop ()
interface Timer command result_t start (char
type,
uint32_t interval) command result_t stop ()
event result_t fired ()
StdControl.nc
Timer.nc
interface SendMsg command result_t send
(uint16_t addr,
uint8_t len,
TOS_MsgPtr p) event result_t sendDone
()
interface ReceiveMsg event TOS_MsgPtr
receive (TOS_MsgPtr m)
ReceiveMsg.nc
SendMsg.nc
13
Modules
  • implements a components specification with C
    code
  • a thread of control crosses components only
    through their specifications

module MyComp provides interface X
provides interface Y uses interface
Z implementation // C code
MyComp.nc
14
Modules
  • parameterised interfaces
  • i.e., it provides 256 instances of SendMsg and
    RecvMsg interfaces
  • they are not strictly necessary the handler ID
    can be passed as an argument to the send method

module GenericComm provides interface
SendMsg uint8_t id provides interface
ReceiveMsg uint8_t id implementation

GenericComm.nc
15
Modules
  • implementing the specification
  • simple interfaces, (e.g. interface Std of type
    StdControl)

module DoesNothing provides interface
StdControl as Std implementation command
result_t Std.init() return SUCCESS
command result_t Std.start() return
SUCCESS command result_t Std.stop()
return SUCCESS
DoesNothing.nc
16
Modules
  • calling commands and signaling events
  • simple interface

module TimerM provides interface StdControl
provides interface Timeruint8_t id uses
interface Clock implementation command
result_t StdControl.stop() call
Clock.setRate(TOS_I1PS, TOS_S1PS)
TimerM.nc
17
Modules
  • posting tasks

module BlinkM implementation task
void processing () if(state) call
Leds.redOn() else call Leds.redOff()
event result_t Timer.fired () state
!state post processing() return
SUCCESS
BlinkM.nc
18
Configurations
  • implements a component by wiring together
    multiple components
  • wiring connects interfaces, commands, events
    together

configuration MyComp provides interface X
provides interface Y uses interface
Z implementation // wiring code
MyComp.nc
19
Configurations
  • connected elements must be compatible
    (interface-interface, command-command,
    event-event)
  • 3 wiring statements in nesC
  • endpoint1 endpoint2
  • endpoint1 -gt endpoint2
  • endpoint1 lt- endpoint2 (equivalent endpoint2 -gt
    endpoint1)

20
Configurations
  • wiring example

configuration GenericComm provides
interface StdControl as Control command
result_t activity() implementation
components AMStandard, LedsC Control
AMStandard.Control AMStandard.Leds -gt
LedsC.Leds activity AMStandard.activity
AMStandard
LedsC
GenericComm.nc
GenericComm
21
Configurations
  • other examples

configuration C provides interface X as
Xprovider uses interface X as Xuser
implementation Xuser Xprovider
C
C.nc
configuration D provides interface X
implementation components C1, C2 X
C1.X X C2.X
C1
C2
D
D.nc
22
Future
  • abstract components allow components to be
    instantiated several times
  • automatic wiring
  • threadlets

23
Example
  • Blink application

Blink
Main
configuration Blink implementation
components Main, BlinkM, ClockC, LedsC
Main.StdControl-gtBlinkM.StdControl
BlinkM.Clock-gtClockC BlinkM.Leds-gtLedsC
BlinkM
Blink.nc
ClockC
LedsC
24
Example
  • BlinkM module

module BlinkM provides interface
StdControl uses interface Clock uses
interface Leds implementation bool
state command result_t StdControl.init()
state FALSE call Leds.init()
return SUCCESS
command result_t StdControl.start()
return call Clock.setRate(128, 6)
command result_t StdControl.stop() return
call Clock.setRate(0, 0) event result_t
Clock.fire() state !state if
(state) call Leds.redOn() else call
Leds.redOff()
Blink.nc
Blink.nc
25
Summary/Discussion
  • small memory footprint
  • concurrency intensive application, event-driven
    architecture
  • power conservation
  • modular, easy to extend
  • simplistic FIFO scheduling -gt no real-time
    guarantees -
  • bounded number of pending tasks -
  • no process management -gt resource allocation
    problems -
  • software level bit manipulation. HW
    implementation can provide speed up and power
    saving. -
  • no hardware timer support. It is done in
    software, which is lost during sleep. -
  • better OS race conditions support. -

26
References
  • 1 E.Brewer et al. nesC Overview (and Summary
    of Changes), 06/2002
  • 2 D.Gay, D.Culler, P.Levis nesC Language
    Reference Manual, 9/2002
  • 3 D.Gay nesC A Programming Language for
    Motes, 06/2002
  • 4 D.Culler Welcome to the WeBS Retreat,
    06/2002
  • 5 E.Brewer et al. Macroprogramming, 06/2002
  • 6 http//webs.cs.berkeley.edu
  • 7 http//www.cens.ucla.edu
  • 8 http//www.rsc.rockwell.com
  • 9 http//www-mtl.mit.edu/research/icsystems/uamp
    s/uAMPS-1
Write a Comment
User Comments (0)
About PowerShow.com