Lecture 3

advertisement
Sensing Platforms and Microcontroller
Architecture Tutorial
Lecture 3
September 9, 2004
EENG 460a / CPSC 436 / ENAS 960
Networked Embedded Systems &
Sensor Networks
Andreas Savvides
andreas.savvides@yale.edu
Office: AKW 212
Tel 432-1275
Course Website
http://www.eng.yale.edu/enalab/courses/eeng460a
Today
 Overview Sensing Platforms
 Embedded Processor Study Case: OKI
ARM Processor
 Supplementary reading for this lecture
• Kaiser & Pottie Chapter 13
• Zhao & Guibas Chapter 7
Need for Sensing Platforms
Close coupling between fundamental research questions and
the physical world
In situ data collection
Fundamental
Problems
Experimental
Systems
Architectural requirements
Numerous unknown factors and conditions with no prior knowledge
• Sensing channels not well characterized - very complex environment
dynamics
• Power consumption hard to characterize – need to understand
battery behaviors and how SW & HW components affect power
consumption
Wide Spectrum of Devices
 Sensors with inplantable RFIDs
 Smart-dust size nodes
• Typically they act as data-collectors or “trip-wires”
• Cannot afford to have massive processing and
communication
 Mote-size devices
 More powerful gateway nodes etc
 For some applications, form factor is also dictated
by the size of individual sensors
 Many designs out there, each design has its own
philisophy
Some platforms & applications
 Seismic monitoring, personal exploration rover, mobile
micro-servers, networked info-mechanical systems,
hierarchical wireless sensor networks
[NIMS, UCLA]
[Robotics, CMU]
[CENS, UCLA]
[Intel + UCLA]
[Intel + UCLA]
[Slide from V. Ragunanthan]
A Generic Sensor Network Architecture
SENSING
SUB-SYSTEM
ACTUATION
SUB-SYSTEM
PROCESSING
SUB-SYSTEM
COMMUNICATION
SUB-SYSTEM
POWER MGMT.
SUB-SYSTEM
Base Case: The Mica Mote
(The most popular sensing platform today)
51-PIN I/O Connector
Digital I/O
DS2401
Unique ID
Analog I/O
Programming
Lines
AVR 128, 8-bit MCU
Transmission
Power Control
Hardware
Accelerators
Co-processor
External Flash
Radio Transceiver
(CC1000 or CC2420)
Power Regulation MAX1678(3V)
For more information refer to the TinyOS Website http://www.tinyos.net
What is Stargate?


A single board, wireless-equipped computing platform
• Developed at Intel Research
Leverages advances in computation, communication and storage to facilitate wireless
systems research
System architecture
Computation sub-system
 PXA255 processor based on the XScale
microarch.
• Successor to the StrongARM family
• Variable clock (100 - 400 MHz), less than 500 mW
power
• Several sleep modes, rich set of peripherals
Wireless DPM: Hierarchical radios
 Three vastly different wireless radios supported
 Combined to form power-efficient, heterogeneous
communication subsystem
• Hierarchical device discovery and connection setup scheme leads to up to
40X savings in discovery power
Mote
Energy
per bit
Bluetooth
Startup
time
Idle
current
IEEE 802.11
Technolog
Tx
Data Rate
y
Current
Energy per
bit
Idle
Current
Startup
time
Mote
76.8 Kbps
10 mA
430 nJ/bit
7 mA
Low
Bluetooth
1 Mbps
45 mA
149 nJ/bit
22 mA
Medium
11 Mbps 300 mA
90 nJ/bit
160 mA
High
802.11
Other power management features
 Wake on wireless: Bluetooth based remote wakeup
•
•
•
•
BT module awake, rest of the system is shutdown
Incoming BT packet causes wakeup
On-demand power management (event-driven apps)
BT module in “wake on wireless” mode draws ~ 3mA
 Motion detection for wake up
• Passive small-bead mercury switch connected to GPIO
• Movement causes switch to close and wakeup system
• Can also be used to trigger wireless scanning for APs
UCLA iBadge
iBadge Functional Units
 Main Processing Unit
• ATMega128L Microcontroller from Atmel
• Responsible for power management, localization, and interfaces
different functional units
 Localization Unit:
• Relative and absolute positioning
• responsible for obtaining precise 3D location of iBadge in the
classroom
• estimates its 3D location using an ad-hoc localization process
 Speech Processing Unit:
• Consists of TI DSP and CODEC
• Performs speech codec and front end processing of the real time
speech of the children
• Two modes (Simple Coding or Front End Processing) of operation
based on power requirements and user request.
iBadge Functional Units (Continued)
 Power Management/Tracking Unit:
• Battery Monitors (DS2438) keep track of energy usage
of various functional units
• CMOS switches provides control to turn on/off
different part of the circuits
 Orientation/Tilt Sensing Unit
• Accelerometer combined with magnetometer provides
the orientation of the children with earth’s magnetic
field
 Environment Sensing Unit
• Temperature, Humidity, Atmospheric Pressure, and
Light Intensity
Medusa MK-2
ARM/THUMB 40MHz
Running Palos
PALOS
RS-485 &
External Power
ADXL 202E
MEMS Accelerometer
MCU I/F
Host Computer, GPS, etc
UI: Pushbuttons
Ultrasonic Ranging Subsystem
RF TX Start
4ms
USND TX Start
4ms
RF Signal
Start Symbol Detected
(start timer)
RF Reception Complete
15ms
Ultrasound Signal
(for max range)
Ultrasound Detected
Transmitter
Receiver
Telos: New OEP Mote*

Single board philosophy
•
•

First platform to use 802.15.4
•
•
•

•
Lower power consumption, 1.8V operation,
faster wakeup time
40 MHz CPU clock, 4K RAM
Package
•
•
•
•
•



CC2420 radio, 2.4 GHz, 250 kbps (12x mica2)
3x RX power consumption of CC1000, 1/3 turn on time
Same TX power as CC1000
Motorola HCS08 processor
•

Robustness, Ease of use, Lower Cost
Integrated Humidity & Temperature sensor
Integrated onboard antenna +3dBi gain
Removed 51-pin connector
Everything USB & Ethernet based
2/3 A or 2 AA batteries
Weatherproof packaging
Support in upcoming TinyOS 1.1.3 Release
Codesigned by UC Berkeley and Intel Research
Available February from Moteiv (moteiv.com)
*D. Culler, UC Berkeley
ENALAB XYZ Sensor Node

Sensor node created for
experimentation
•
•

Uses an IEEE 802.15.4 protocol
•

•

Chipcon 2420 radio
OKI ARM Thumb Processor
•
•

Low cost, low power, many
peripherals
Integrated accelerometer, light and
temperature sensor
256KB FLASH, 32KB RAM
Max clock speed 58MHz, scales
down to 2MHz
Multiple power management
functions
Powered with 3AA batteries & has
external connectors for attaching
peripheral boards
Designed at Yale Enalab and
Cogent computer systems, will be
used as the main platform for the
course
Manufacturers of Sensor Nodes
 Millenial Net (www.millenial.com)
• iBean sensor nodes
 Ember (www.ember.com)
• Integrated IEEE 802.15.4 stack and radio on a single chip
 Crossbow (www.xbow.com)
• Mica2 mote, Micaz, Dot mote and Stargate Platform
 Intel Research
• Stargate, iMote
 Dust Inc
• Smart Dust
 Cogent Computer (www.cogcomp.com)
• XYZ Node (CSB502) in collaboration with ENALAB@Yale
 Mote iv – Telos Mote
 Sensoria Corporation (www.sensoria.com)
• WINS NG Nodes
 More….
Other Sensor Node Projects
 Augmented off-the-shelf systems
• PC104 computers (used in some habitat monitoring applications)
• iPAQ PDAs (used for prototypes @ UCLA/CENS)
 Networked Infomechanical Systems (NIMS)
• www.cens.ucla.edu
 Dedicated embedded sensor nodes and SOCs
• MIT uAMP nodes
(http://www-mtl.mit.edu/research/icsystems/uamps/)
• Berkeley BWRC picoradio node
(http://bwrc.eecs.berkeley.edu/Research/Pico_Radio)
• ISI Pasta node (http://pasta.east.isi.edu)
Power Perspective
Comparison of Energy Sources
Power (Energy) Density
Source of Estimates
3
Batteries (Zinc-Air)
1050 -1560 mWh/cm (1.4 V)
Published data from manufacturers
Batteries(Lithium ion)
300 mWh/cm3 (3 - 4 V)
Published data from manufacturers
2
15 mW/cm - direct sun
Solar (Outdoors)
2
0.15mW/cm - cloudy day.
Published data and testing.
.006 mW/cm2 - my desk
Solar (Indoor)
Vibrations
2
0.57 mW/cm - 12 in. under a 60W bulb
3
0.001 - 0.1 mW/cm
Testing
Simulations and Testing
3E-6 mW/cm2 at 75 Db sound level
Acoustic Noise
Passive Human
Powered
9.6E-4 mW/cm2 at 100 Db sound level
1.8 mW (Shoe inserts >> 1 cm )
Published Study.
Thermal Conversion
0.0018 mW - 10 deg. C gradient
Published Study.
2
Direct Calculations from Acoustic Theory
3
80 mW/cm
3
Nuclear Reaction
1E6 mWh/cm
3
300 - 500 mW/cm
Fuel Cells
~4000 mWh/cm
3
Published Data.
Published Data.
With aggressive energy management, ENS might
live off the environment.
Source: UC Berkeley & CENS
Typical Operating Characteristics
for 4 classes of Sensor Nodes
Source: J. Hill, M. Horton, R. King and L. Krishnamurthy,”The Platforms Enabling Wireless Sensor
Networks”, Communications of the ACM June 2004
Many ways to Optimize Power Consumption
 Power aware computing
• Ultra-low power microcontrollers
• Dynamic power management HW
o Dynamic voltage scaling (e.g Intel’s PXA, Transmeta’s Crusoe)
o Components that switch off after some idle time
 Energy aware software
• Power aware OS: dim displays, sleep on idle times, power aware
scheduling
 Power management of radios
• Sometimes listen overhead larger than transmit overhead
 Energy aware packet forwarding
• Radio automatically forwards packets at a lower level, while the
rest of the node is asleep
 Energy aware wireless communication
• Exploit performance energy tradeoffs of the communication
subsystem, better neighbor coordination, choice of modulation
schemes
XYZ Node:why build a new node?
Research and education node to do tasks not doable with
existing nodes
• Need for 32 bit computation for distributed signal processing
protocols
o E.g Localization protocol stacks and optimizations
• Need to be closer to the Sensors
o Do fast sampling and processing close to the sensors
– E.g real-time acceleration or gyro measurements
– Acoustic sampling and correlation – need memory, peripherals
and processing to be close to the computation resource –
simplifies programming
• Accommodate custom form factors and interfaces for
experimenting with mobile computing applications
o Mobility support interfaces (stronger connectors, output for
motor contollers)
o Wearable applications – small package
• Very low power, long term sleep modes
XYZ’s Architecture
XYZ: Communication Subsystem
 Chipcon CC2420 Zigbee RF Transceiver
•
•
•
•
•
•
2.4 GHz IEEE 802.15.4 @ 250Kbps
Programmable output power
RX/TX data buffering
Digital RSSI support
DSSS modulation
Security features
o
o
o
o
CTR encryption/decryption
CBC-MAC authentication
CCM encryption and authentication
All security operations are based on AES encryption using 128
bits
XYZ: Supervisor Circuitry & Low Power Sleep
2.5V
Voltage Regulator
3.3V
Enable
Interrupt (SQW)
3 x AA
batteries
RTC
DS1337
OKI μC
WAKEUP
I2C
 Step 1: The μC selects the total time that wants to be turned off and
programs the DS1337 accordingly, through the 2-wire serial interface.
 Step 2: The DS1337 turns-off the μC and uses its own crystal to keep
the notion of time.
 Step 3: The DS1337 wakes up the μC after the programmed amount of
time has elapsed.
 Note that the DS1337 RTC can disable the voltage regulator and
completely turn-off the sensor node!
DS1337 Real Time clock datasheet: http://pdfserv.maxim-ic.com/en/ds/DS1337.pdf
XYZ: On Board Sensors
AIN0
Light
Accelerometer
A
X
AIN1
Y
AIN2
D
C
OKI μC
Temperature
PIOE5(EXINT0)
Light Sensor datasheet (TSL251R): http://www.goblack.de/desy/digitalt/sensoren/tsl-250/tsl250r.pdf
Temperature Sensor datasheet (TMP05):
http://www.analog.com/UploadedFiles/Data_Sheets/192632828TMP05_6_prk.pdf
2-axis accelerometer datasheet (ADXL202E): http://www.rotomotion.com/datasheets/ADXL202E_a.pdf
Current Efforts on XYZ Peripheral Boards
 Ragobots @ UCLA
 Suspended nodes and camera support @
Yale, ENALAB
Operating System: SOS – Dynamic Software Reconfiguration(NESL UCLA)
Dynamic Loadable
Binary Modules
Dynamic Loadable
Binary Modules
Static SOS Kernel
Hardware
Abstraction
Msg Passing
Scheduler
Memory
Manager
 Remotely insert binary modules into a running kernel
•
•
•
Partial system reconfiguration without interrupting system operation
Superior performance than virtual machines
No stop and re-boot unlike differential patching
 Design challenges
•
•
Dealing with severe resource constraints
Reliable operation of the dynamically evolving system
[Slide from Simon Han, Nesl, UCLA]
Computation: OKI ML67Q5002
 OKI ML67Q5002
• 32-bit ARM7TDMI core (16-bit THUMB mode)
• Built-in memory:
o SRAM 32Kbytes
o Boot ROM 4Kbytes
o FLASH memory 256Kbytes
• Provided interfaces:
o
o
o
o
o
o
4 channels of 10-bit resolution ADC.
DMA support.
SPI, SIO, I2C, UART, PWM interfaces
42 configurable GPIO pins
Variety of external and internal configurable interrupts
6 hardware timers
XYZ Computation:
The OKI ARM ML675001/67Q5002/67Q5003
Features
• ARM7TDMI
• ROM-less (ML675001)
256KB MCP Flash (ML67Q5002)
512KB MCP Flash (ML67Q5003)
• 8KB Unified Cache
• 32KB RAM
• Interrupts 25 + 1 FIQ
• I2C (1-ch x master)
• DMA (2-ch)
• Timers (7 x 16-bit)
• WDT (16-bit)
• PWM (2 x 16-bit)
• UART (2-ch)/ SIO (1-ch)
• GPIO (5 x 8-bit)
• ADC (4-ch x 10-bit)
• up to 66MHz
• -40 ~ +85 C
• Package 144 LFBGA
144 QFP
[Slide from OKI Semiconductor]
OKI ARM ML675001/67Q5002/67Q5003
ARM7TDMI
What does ARM7TDMI Mean?
 Based on an ARM7 core
• Von Neuman Architecture
o Same address and data bus
• Approximately 1.9 Clock cycles per instruction
• T – Thumb architecture extension – 2 instruction sets
o ARM 32-bits
o Thumb 16-bits
• D – Core has debug extensions
• M – Core had an enhanced multiplier (32x8) with
instructions for 64-bit results
• I – Core has EmbeddedICE Logic Extensions
CPU States
 CPU can be either in ARM or THUMB states
• User can implicitly change the processor state from
ARM to THUMB
• All exception handling happens in ARM mode
• If an exception happens during Thumb mode, the the
processor transitions to ARM to execute the instruction
and returns to THUMB at the end of the exception
handler
 THUMB mode trades-off performance for code
density
• Cheaper memory and lower power consumption for
embedded systems
External SRAM
starts here
Internal RAM
starts here
FLASH Starts here
MCU Basics: What are interrupts?
 Asynchronous breaks in the program execution
• Press of a button, expiration of a timer, DMA interrupt indicating the
completion of a memory transfer
 When an interrupt occurs, the processor will transition to the
corresponding interrupt handler to service the interrupt and then
resume execution
 The OKI processor has an 8-level interrupt priority mechanism
• Total of 24 types of interrupts that can happen during instruction
execution
o 1 fast external interrupt
o 4 external interrupts
o 19 Internal interrutps
– E.g System timer, watchdog timer, DMA interrupts etc
 The chip has mechanisms for dealing with interrupts
• Interrupts are enabled and disabled through registers for each peripheral
MCU Basics:Many flavors of Microcontrollers
 From embedded x86 processors 16 and 32-bit
processors all the way down to tiny 4-bit
processors
 Some of the popular 8-bit families
• AVR, 8051, Z80, 6502, PIC, Motorola HC11
 16-bit families
• Hitachi, Dragon
 Many embedded Java controllers are also
emerging
Hardware Timers(16-bit)
Holds the value that initializes the timer at
startup
Holds value to compare against
Controls the mode (interval or one-shot)
Starts and stops the timer
Enables/disables the interrutps for this timer
Clock Divider
Steps in Setting up a Hardware Timer
Example using hardware TIMER0
1.
2.
3.
4.
Stop timer & disable interrupts by writing to control register
(TIMECNTL0)
Write the timer starting value to the base register (TIMEBASE0)
Write the stop value in the compare register (TIMECOMP0)
Start the timer by writing to the control register (TIMECNTL0)
This will start the timer. An interrupt will occur when the counter register
reaches the value of the compare register
Note: After the interrupt is handled, the status register
(TIMESTAT0)needs to be cleared to use the timer again.
How to you access peripherals?
 You can access peripherals and GPIO by
reading/writing registers
 Typically one would write device drivers
and then use higher level abstractions
 You will need this knowledge to write
device drivers for different peripherals and
to assess the real-time capabilities of your
software
How do you program the OKI ARM?
 Use the JTAG
 Use Micromonitor with a serial connection
to write to FLASH
• Works well, be careful not to over-ride
micromonitor
 Use the programmer utility from OKI
• Least reliable method
Projects Discussion
look at the handout…
Download