crossbow: smarter sensors in silicon johann ammerlahn
TRANSCRIPT
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
2
Crossbow Platform ReviewCrossbow Platform Review
Overview and GoalsHistoryDesign ApproachCurrent System
– Hardware– Software
Future Directions
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
3
Overview and GoalsOverview and Goals
Big Idea: Ubiquitous sensing How?
– Necessarily “cheap” • This is the military. Cheap is relative.
– Necessarily small• (more survivable, low profile, etc.)
– Necessarily many• (economies of scale, higher measurement
granularity, lower power comms, etc.)
– Necessarily robust• Common case: no maintenance
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
4
Crossbow Mote HistoryCrossbow Mote History
$$ +
Network Embedded Systems Technology
Program
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
5
Hardware Development CycleHardware Development Cycle
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
6
Current Design Analysis: Mica SeriesCurrent Design Analysis: Mica Series
Integrate sensors, computation and communication in single unit– Basic board has radio, processor, memory– Sandwich sensor boards in layers– “Just like the rock…great cleavage”
Open-source hardware/software concept– Software is TinyOS (TOS) and TinyDB (TDB)– Hardware design and Intel networking
technology is licensed to Crossbow Modular design allows fast development
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
7
Available Mote Designs: MICAAvailable Mote Designs: MICA Crossbow 2nd generation wireless sensor, 4th from Berkeley Labs Atmel ATMEGA103/128L
– 4 Mhz 8-bit CPU– 128KB Instruction Memory– 4KB SRAM and EEPROM
4 Mbit flash (AT45DB041B)– SPI interface– 1-4 uj/bit r/w
RFM TR1000 Radio (916/433 MHz)– 50 kb/s – ASK– Focused hardware acceleration– 1 to 300 ft. range, RSSI
51-pin connector– Analog ADC & comparators, I2C, SPI, interrupts, PWM, ext.
SRAM, UART $100-400 depending upon configuration
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
8
Available Mote Designs: MICAAvailable Mote Designs: MICA
Atmega103 Microcontroller
TR 1000 Radio Transceiver4Mbit External Flash
51-Pin I/O Expansion Connector
Power Regulation MAX1678 (3V)
DS2401 Unique ID
8 Analog I/O8 Programming
Lines
SP
I Bus CoprocessorTransmission
Power ControlHardware
Accelerators
Digital I/O
Three low-power modes– Idle: Processor is turned off– Power Down: Everything but the
watch-dog is turned off– Power Save: Only asynchronous
timer powered on
100 mW power consumption– Processors, radio, typical sensor load
30 uW power consumption– All components asleep
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
9
Available Mote Designs: MICA2Available Mote Designs: MICA2
Crossbow 3rd generation wireless sensor Design changes to MICA: Processor now offers standalone boot-loader New radio (Chipcon 1000)
– 500 to 1000 ft. range, 38.4 Kbaud– Better noise immunity, linear RSSI – FM modulated (vs Mica AM)– Digitally programmable output power– Built-in Manchester encoding– Software programmable freq. – hopping within bands
Tiny OS v. 1.0 - improved network stack, debugging Wireless remote programming 512 Kb serial flash
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
10
Available Mote Designs: MICA2DOTAvailable Mote Designs: MICA2DOT
Crossbow 3rd generation wireless sensor Similar feature set to MICA2 Degraded I/O capabilities: 18 pins vs. 51
– 6 analog inputs, digital bus,
serial or UART Integrated temperature and battery
voltage sensors, status LED Battery is 3V coin cell instead of AA x 2 25 mm diameter, 6 mm height Compatible with MICA2
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
11
Next Generation Mote: SpecNext Generation Mote: Spec
Single-chip mote 2 mm x 2.5 mm RISC core 3k Memory 8-bit on-chip ADC FSK 19.2 kbps RF transmitter Paged memory SPI, RS232 compatible UART 4-bit input/4-bit output port Hardware support for comms encryption Hardware OEM costs: Under $1 in quantity (w/o antenna
and sensors)
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
12
Next Generation Mote: Spec (Cont.)Next Generation Mote: Spec (Cont.)
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
13
Sensor & External ModulesSensor & External Modules
Each sensor has individual power control MTS300
– Light, temperature, acoustic, sounder MTS310
– 2-axis accelerometer, 2-axis magnometer, MTS300 feature set MTS101
– Thermistor, light sensor/photocell, 24-point general prototyping area
MDA500– Connects MICA2DOT I/O signals to thru holes
WSC100– Four-channel “analog” (12-bit digital, 100hz) Bluetooth radios– Single module dedicated to either input or output– 100 ft range
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
14
Operating System: TinyOSOperating System: TinyOS
Tiny Microthreading Operating System– Tiny - 4k OS + program memory limit– Microthreading - processor directly handles
almost all data (radio, sensors, etc.)– OS - allows platform for future development
- convenient abstractions for hardware
Designed to do the job fast and then turn off everything allowed
Open source
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
15
Design ConsiderationsDesign Considerations
Make best use of most constrained asset: battery power Network self-configuration
– Manage complexity, respond to unplanned events Sensor self-configuration (?)
– “Glue and go” Real-time
– Limited buffering available Network robustness and maintenance
– Multiple points of failure, self-healing ability Heterogeneous end environments
– Application specific rather than general purpose (?)– Fast creation of efficient, specific applications w/o too much
HW-specific nastiness
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
16
Example Software Layer StructureExample Software Layer Structure
RFM
Radio byte
i2c
Tempphoto
Messaging Layer
clocksbit
byte
packet Radio Packet
Routing Layer
sensing applicationapplication
HW
SW
ADC
messaging
routing
UART Packet
UART byte
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
17
Example Memory AllocationExample Memory Allocation
0
500
1000
1500
2000
2500
3000
3500
4000
Multihop Router
AM light
AM Temp
AM
Packet
Radio Byte
RFM
Photo
Temp
UART Packet
UART
i2c
Init
TinyOS Scheduler
C Runtime
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
18
Example Utilization: Radio Receive Example Utilization: Radio Receive
ComponentsPacket reception work breakdown
Percent CPU Utilization Energy (nj/Bit)
AM 0.05% 0.20% 0.33
Packet 1.12% 0.51% 7.58
Radio handler 26.87% 12.16% 182.38
Radio decode thread 5.48% 2.48% 37.2
RFM 66.48% 30.08% 451.17
Radio Reception - - 1350
Idle - 54.75% -
Total 100.00% 100.00% 2028.66
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
19
TinyOS: Programming TinyOS: Programming
Structural VHDL puts the pieces together– Schematics are (usually) easier to put
together and understand than code– Industry standard design model– Scripts take VHDL description and
compile the resultant code base Components are aggregated and
easily reused Low-level component software written
In C and/or assembly– But, this is largely hidden from view for
standard modules
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
20
TinyOS: Example Code TinyOS: Example Code
/* Messaging Component Declaration *///ACCEPTS:char TOS_COMMAND(AM_SEND_MSG)(char addr,char type, char* data);void TOS_COMMAND(AM_POWER)(char mode);char TOS_COMMAND(AM_INIT)();
//SIGNALS:char AM_MSG_REC(char type, char* data);char AM_MSG_SEND_DONE(char success);
//HANDLES:char AM_TX_PACKET_DONE(char success);char AM_RX_PACKET_DONE(char* packet);
//USES:char TOS_COMMAND(AM_SUB_TX_PACKET)(char* data);void TOS_COMMAND(AM_SUB_POWER)(char mode);char TOS_COMMAND(AM_SUB_INIT)();
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
21
TinyDB: Overview TinyDB: Overview
•Imposes SQL-like querying ability on nodes•Treats distributed network like a database (!)•Allows specification of which data should be sent, update rate, etc.•Filters and aggregates before displaying on PC screen (Java interface)•Saves bandwidth and power by allowing nodes to only transmit requested data•Graphical query-builder •Download self-configuring runtime to motes,
no C coding
04/18/23Graphics Courtesy Crossbow
Technologies, Inc. and Berkeley Labs
22
Crossbow Motes ConclusionCrossbow Motes Conclusion
Crossbow motes are very cool Probably cheap enough for us to buy a
couple for playing with?– Otherwise, maybe just TinyOS emulation?
Sensor Hardware– Cheap, publicly-available, modular, integrated,
power-efficient, extensible, tiny Sensor Software
– Free, open-source, modular, abstract, power-efficient, extensible, small