Wireless Embedded InterNetworking Foundations of Ubiquitous Sensor Networks Triggers and Sensing - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Wireless Embedded InterNetworking Foundations of Ubiquitous Sensor Networks Triggers and Sensing

Description:

Foundations of Ubiquitous Sensor Networks Triggers and Sensing David E. Culler University of California, Berkeley – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: Wireless Embedded InterNetworking Foundations of Ubiquitous Sensor Networks Triggers and Sensing


1
Wireless Embedded InterNetworkingFoundations of
Ubiquitous Sensor Networks Triggers and Sensing
  • David E. Culler
  • University of California, Berkeley

2
An Analog World
  • Everything in the physical world is an analog
    signal
  • Sound, light, temperature, gravitational force
  • Need to convert into electrical signals
  • Transducers converts one type of energy to
    another
  • Electro-mechanical, Photonic, Electrical,
  • Examples
  • Microphone/speaker
  • Thermocouples
  • Accelerometers
  • And digitize
  • Then manipulate

3
An Analog World
  • Transducers
  • Allow us to convert physical phenomena to a
    voltage potential in a well-defined way.

I
V
R ohm ?
4
Simplest Analog Device
  • Often think of it as an actuator, rather than a
    sensor
  • But thats because of the circuit we put it in
  • It is binary (two states) but why is it not
    digital?

5
To Sample a switch, make it digital
VD
VtH
VtL
  • Many sensor are switches
  • Two states but not digital
  • Open gt no current
  • Closed gt no voltage drop
  • Cap charges to Vacc when open
  • Cap discharges to GND when closed

D
switch
GND
6
EPIC I/F Board - Digital Inputs
7
Getting Input into the MCU
8
MCU a system on a chip
9
Programmed IO
10
Interrupts
MCU Hardware
11
Getting a hold of the event
event void Boot.booted() atomic P2IE
PIN7 / Disable interrupt / P2IFG PIN7
/ Clear interrupt flag / P2DIR PIN7 /
Configure as input / P2IES PIN7 / Select
Hi-gtLo / P2IE PIN7 / Enable interrupts
/
async event void HplSignalPort2.fired() if (
P2IFG PIN7 ) P2IFG PIN7 post
fired()
Software
Transport
Kernel
Network
Driver Code
Link
Handler dispatch
HplSignal
Phy
Memory Mapped IO registers
Radio
Ports
ADC
Timers
Hardware
Flash
MCU
Hardware Interrupt
12
Making Sense of Physical Information
  • Digital representation of physical phenomenon
  • Transducer gt Signal Conditioning gt ADC gt
  • Conversion to physical units
  • Calibration and correction
  • Here 0 / 1, True / False
  • Associating meaning to the reading
  • Open / Closed
  • Empty / Full
  • In Position / Not
  • Depends on the specific device taking the reading
  • The Context of the device

13
Analog to Digital
  • What we want
  • How we have to get there

Physical Phenomena
Engineering Units
14
Ratiometric sensor
  • Va Vacc Rsens / (Rcomp Rsens)
  • use Vref Vacc
  • D M Rsens / (Rcomp Rsens)

15
Sampling Basics
  • How do we represent an analog signal?
  • As a time series of discrete values
  • ? On the MCU read the ADC data register
    periodically

V
Counts
16
Sampling Basics
  • What do the sample values represent?
  • Some fraction within the range of values
  • ? What range to use?

17
Sampling Basics
  • Resolution
  • Number of discrete values that represent a range
    of analog values
  • MSP430 12-bit ADC
  • 4096 values
  • Range / 4096 Step
  • Larger range ? less information
  • Quantization Error
  • How far off discrete value is from actual
  • ½ LSB ? Range / 8192
  • Larger range ? larger error

18
Sampling Basics
  • Converting ADC counts ? Voltage
  • Converting Voltage ? Engineering Units

19
Sampling Basics
  • Converting values in 16-bit MCUs
  • vtemp adccount/4095 1.5
  • tempc (vtemp-0.986)/0.00355
  • ? tempc 0
  • Fixed point operations
  • Need to worry about underflow and overflow
  • Avoid divide and (to a lesser degree) multiply
  • Floating point operations
  • They can be costly on the node, but not
    ridiculous
  • Pay attention to overall all contribution to error

command uint16_t TempInt.get() uint16_t tval
(uint32_t)760(uint32_t)val/4096 468 return
tval
20
Sampling Basics
  • What sample rate do we need?
  • Too little we cant reconstruct the signal we
    care about
  • Too much waste computation, energy, resources
  • Example
  • 2-bytes per sample, 4 kHz ? 8 kB / second
  • But the mote only has 10 kB of RAM

21
Shannon-Nyquist Sampling Theorem
  • If a continuous-time signal contains no
    frequencies higher than , it can be
    completely determined by discrete samples taken
    at a rate
  • Example
  • Humans can process audio signals 20 Hz 20 KHz
  • Audio CDs sampled at 44.1 KHz
  • Need to ensure there is no appreciable energy
    above 2x sample.

22
Sampling Basics
  • Aliasing
  • Different frequencies are indistinguishable when
    they are sampled.
  • Condition the input signal using a low-pass
    filter
  • Removes high-frequency components
  • (a.k.a. anti-aliasing filter)

23
Sampling Basics
  • Dithering
  • Quantization errors can result in large-scale
    patterns that dont accurately describe the
    analog signal
  • Introduce random (white) noise to randomize the
    quantization error.

24
Analog-to-Digital Basics
  • So, how do you convert analog signals to a
    discrete values?
  • A software view
  • Set some control registers
  • Specify where the input is coming from (which
    pin)
  • Specify the range (min and max)
  • Specify characteristics of the input signal
    (settling time)
  • Enable interrupt and set a bit to start a
    conversion
  • When interrupt occurs, read sample from data
    register
  • Wait for a sample period
  • Repeat step 1

25
Block Diagram (MSP430)
26
ADC Features
Texas Instruments MSP430 Atmel ATmega 1281
Resolution 12 bits 10 bits
Sample Rate 200 ksps 76.9 ksps
Internally Generated Reference Voltage 1.5V, 2.5V, Vcc 1.1V, 2.56V
Single-Ended Inputs 12 16
Differential Inputs 0 14 (4 with gain amp)
Left Justified Option No Yes
Conversion Modes Single, Sequence, Repeated Single, Repeated Sequence Single, Free Running
Data Buffer 16 samples 1 sample
27
ADCs Resources or Computation
  • OS provides a convenient and safe abstraction of
    physical resources
  • Operating systems deal with devices, not ADCs.
  • TinyOS has strived to provide uniform,
    easy-to-use common abstraction of the ADC.
  • Should it?
  • ADC and how sampling is performed in on the
    datapath of the application.

28
ADC Core
  • Input
  • Analog signal
  • Output
  • 12-bit digital value of input relative to voltage
    references
  • Linear conversion

29
SAR ADC
  • SAR Successive-Approximation-Register
  • Binary search to find closest digital value

30
SAR ADC
  • SAR Successive-Approximation-Register
  • Binary search to find closest digital value

1 Sample ? Multiple cycles
31
SAR ADC
1 Sample ? Multiple cycles
32
Sample and Conversion Timing
  • Timing driven by
  • TimerA
  • TimerB
  • Manually using ADC12SC bit
  • Signal selection using SHSx
  • Polarity selection using ISSH

33
Voltage Reference
Internal External
Vref 1.5V, 2.5V, Vcc VeRef
Vref- AVss VeRef-
  • Voltage Reference Generator
  • 1.5V or 2.5V
  • REFON bit in ADCCTL0
  • Consumes energy when on
  • 17ms settling time
  • External references allow arbitrary reference
    voltage
  • Want to sample Vcc, what Vref to use?

34
Sample Timing Considerations
  • Port 6 inputs default to high impedance
  • When sample starts, input is enabled
  • But capacitance causes a low-pass filter effect
  • ? Must wait for the input signal to converge

35
Software Configuration
  • How it looks in code
  • ADC12CTL0 SHT0_2 REF1_5V
  • REFON ADC12ON
  • ADC12CTL1 SHP

36
Inputs and Multiplexer
  • 12 possible inputs
  • 8 external pins (Port 6)
  • 1 Vref (external)
  • 1 Vref- (external)
  • 1 Thermistor
  • 1 Voltage supply
  • External pins may function as Digital I/O or ADC.
  • P6SEL register
  • What sort of a MUX is this?

37
Conversion Memory
  • 16 sample buffer
  • Each buffer configures sample parameters
  • Voltage reference
  • Input channel
  • End-of-sequence
  • CSTARTADDx indicates where to write next sample

38
Conversion Modes
  • Single-Channel Single-Conversion
  • Single channel sampled and converted once
  • Must set ENC (Enable Conversion) bit each time
  • Sequence-of-Channels
  • Sequence of channels sampled and converted once
  • Stops when reaching ADC12MCTLx with EOS bit
  • Repeat-Single-Channel
  • Single channel sampled and converted continuously
  • New sample occurs with each trigger (ADC12SC,
    TimerA, TimerB)
  • Repeat-Sequence-of-Channels
  • Sequence of channels sampled and converted
    repeatedly
  • Sequence re-starts when reaching ADC12MCTLx with
    EOS bit

39
Software Configuration
  • How it looks in code
  • Configuration
  • ADC12CTL0 SHT0_2 REF1_5V
  • REFON ADC12ON
  • ADC12CTL1 SHP
  • ADC12MCTL0 EOS SREF_1
  • INCH_11
  • Reading ADC data
  • m_reading ADC12MEM0

40
A Software Perspective
command void Read.read() ADC12CTL0 SHT0_2
REF1_5V REFON ADC12ON ADC12CTL1
SHP ADC12MCTL0 EOS SREF_1 INCH_11 call
Timer.startOneShot( 17 ) event void
Timer.fired() ADC12CTL0 ENC ADC12IE
1 ADC12CTL0 ADC12SC task void
signalReadDone() signal Read.readDone(
SUCCESS, m_reading ) async event void
HplSignalAdc12.fired() ADC12CTL0 ENC
ADC12CTL0 0 ADC12IE 0 ADC12IFG
0 m_reading ADC12MEM0 post
signalReadDone()
41
A Software Perspective
command void Read.read() ADC12CTL0 SHT0_2
REF1_5V REFON ADC12ON ADC12CTL1
SHP ADC12MCTL0 EOS SREF_1 INCH_11 call
Timer.startOneShot( 17 ) event void
Timer.fired() ADC12CTL0 ENC ADC12IE
1 ADC12CTL0 ADC12SC task void
signalReadDone() signal Read.readDone(
SUCCESS, m_reading ) async event void
HplSignalAdc12.fired() ADC12CTL0 ENC
ADC12CTL0 0 ADC12IE 0 ADC12IFG
0 m_reading ADC12MEM0 post
signalReadDone()
42
A Software Perspective
command void Read.read() ADC12CTL0 SHT0_2
REF1_5V REFON ADC12ON ADC12CTL1
SHP ADC12MCTL0 EOS SREF_1 INCH_11 call
Timer.startOneShot( 17 ) event void
Timer.fired() ADC12CTL0 ENC ADC12IE
1 ADC12CTL0 ADC12SC task void
signalReadDone() signal Read.readDone(
SUCCESS, m_reading ) async event void
HplSignalAdc12.fired() ADC12CTL0 ENC
ADC12CTL0 0 ADC12IE 0 ADC12IFG
0 m_reading ADC12MEM0 post
signalReadDone()
43
A Software Perspective
command void Read.read() ADC12CTL0 SHT0_2
REF1_5V REFON ADC12ON ADC12CTL1
SHP ADC12MCTL0 EOS SREF_1 INCH_11 call
Timer.startOneShot( 17 ) event void
Timer.fired() ADC12CTL0 ENC ADC12IE
1 ADC12CTL0 ADC12SC task void
signalReadDone() signal Read.readDone(
SUCCESS, m_reading ) async event void
HplSignalAdc12.fired() ADC12CTL0 ENC
ADC12CTL0 0 ADC12IE 0 ADC12IFG
0 m_reading ADC12MEM0 post
signalReadDone()
44
A Software Perspective
command void Read.read() ADC12CTL0 SHT0_2
REF1_5V REFON ADC12ON ADC12CTL1
SHP ADC12MCTL0 EOS SREF_1 INCH_11 call
Timer.startOneShot( 17 ) event void
Timer.fired() ADC12CTL0 ENC ADC12IE
1 ADC12CTL0 ADC12SC task void
signalReadDone() signal Read.readDone(
SUCCESS, m_reading ) async event void
HplSignalAdc12.fired() ADC12CTL0 ENC
ADC12CTL0 0 ADC12IE 0 ADC12IFG
0 m_reading ADC12MEM0 post
signalReadDone()
45
Interrupts and Tasks
command void Read.read() ADC12CTL0 SHT0_2
REF1_5V REFON ADC12ON ADC12CTL1
SHP ADC12MCTL0 EOS SREF_1 INCH_11 call
Timer.startOneShot( 17 ) event void
Timer.fired() ADC12CTL0 ENC ADC12IE
1 ADC12CTL0 ADC12SC task void
signalReadDone() signal Read.readDone(
SUCCESS, m_reading ) async event void
HplSignalAdc12.fired() ADC12CTL0 ENC
ADC12CTL0 0 ADC12IE 0 ADC12IFG
0 m_reading ADC12MEM0 post
signalReadDone()
Application
Kernel
Driver
MCU
ADC
46
Interrupts and Tasks
  • Tasks are run-to-completion
  • Used to signal application events
  • Break up computation in the application
  • Interrupts
  • Generated by the hardware
  • Preempt execution of tasks
  • Interrupts and tasks can schedule new tasks

Task
Task
Task
Handler
Interrupt
Hardware
47
TinyOS Generic Components
  • Multiple instances of a component
  • Type polymorphism
  • Compile-time configuration
  • All of the above

48
TinyOS Parameterized Interface
  • Logically related array of interfaces
  • Improved code by handling all interfaces
    collectively
  • Compile time sizing across module boundaries
  • Basis fo discovery
Write a Comment
User Comments (0)
About PowerShow.com