Introductions to Sensor Network Hardware
Download
Report
Transcript Introductions to Sensor Network Hardware
2010/10/1
Wireless Sensor Network And Labs fall 2010
1
Outline
Platforms and microcontrollers
Software
Electronics, schematics and datasheets
2010/10/1
Wireless Sensor Network And Labs fall 2010
2
WSN Platform
A hardware device that enable wireless sensor
network research
Typical components
Microcontroller
Radio
Power supply
Sensors and/or actuators
Peripherals
2010/10/1
USB interface
Storage
Wireless Sensor Network And Labs fall 2010
3
What Do We Have
TelosB (Taroko/TmoteSky/TIP700CM)
Original design: UC Berkeley
CHNDS Taroko
Crossbow TelosB
Moteiv Tmote Sky
2010/10/1
Wireless Sensor Network And Labs fall 2010
Maxfor TIP700CM
4
Crossbow
Original design: UC Berkeley
Commercial product: Crossbow
Mica2
Other products from Crossbow
Cricket
Imote2
IRIS
Cricket
2010/10/1
MicaZ
Imote
Wireless Sensor Network And Labs fall 2010
IRIS
5
Others (Research)
BTnode (ETH Zurich)
Commercialized
XYZ (Yale University)
MSB (Freie Universitat Berlin)
Modular Sensor Board (MSB)
2010/10/1
Wireless Sensor Network And Labs fall 2010
6
Others (Commercial)
Dustnetworks (spun out of UC Berkeley)
iDwaRF – NodeBoard
Worldsens – WSN430
2010/10/1
Wireless Sensor Network And Labs fall 2010
7
Others (Industrial Control)
Accsense
MicroStrain
Sensicast
2010/10/1
Wireless Sensor Network And Labs fall 2010
8
Taroko
Original design version TelosB
by UC Berkeley
Modified version
Taroko (CHNDS, Taiwan)
TelosB (Crossbow, USA)
Tmote Sky (Moteiv, USA)
TIP700CM (Maxfor, Korea)
2010/10/1
Wireless Sensor Network And Labs fall 2010
9
On Taroko
Microcontroller
TI (Texas Instruments) MSP430F1611
Radio
TI Chipcon CC2420
250kbps, 2.4GHz
USB interface
8M-bit flash memory
Extension connectors
Optional sensors
Light, Humidity and Temperature
2010/10/1
Wireless Sensor Network And Labs fall 2010
10
Microcontroller (MCU)
The heart of the WSN platform
Control everything
It is all about programming this chip
2010/10/1
Wireless Sensor Network And Labs fall 2010
11
What Is A Microcontroller
No general definition
Common features
low speed
Microcontroller -> ARM/DSP -> Pentium/AMD
no hierarchical Memory
Bits – usually 8-bit, or 16-bit
Power – consume less power
Cost – usually it is much cheaper
Input/Output (I/O) peripherals
2010/10/1
many on chip peripherals available
Wireless Sensor Network And Labs fall 2010
12
List of MCU
Texas Instruments (TI): MSP430
Silabs: C8051Fxxx
There are many other companies making 8051 architecture
microcontrollers
including Intel, Atmel, Dallas Semiconductor, and etc.
Microchip Technology: PIC
Atmel: ATmega128
Freescale Semiconductor (Motorola): 68HCxx
Many others
AMCC (IBM), Altera, Cypress MicroSystems, Infineon, Holtek, National
Semiconductor, Parallax, Rabbit Semiconductor, NEC, STMicroelectronics,
Analog Devices, Xemics, ZiLOG, NXP, OKI semiconductor, Renesas
Technology, Samsung, and etc.
2010/10/1
Wireless Sensor Network And Labs fall 2010
13
Today’s Personal Computer
Motherboard
Storage
(Harddisk)
>120GB
Peripherals
IDE
SATA
Audio
VGA
CPU
Memory
(DRAM)
>1GB
Ethernet
Keyboard, Mouse,
Monitor, Printer,
etc
Firewire
DMA
Wifi
USB
ComPort
2010/10/1
Wireless Sensor Network And Labs fall 2010
14
Microcontroller Block Diagram
Microcontroller
Clock System
Peripherals
GPIO
Timer
Sensors and
actuators
ADC
ALU
Memory
(RAM)
10KB
Storage
(Flash)
48KB
2010/10/1
UART
SPI
DMA
External storage,
other ICs, other
circuits
I2C
DAC
Host PC, PDA, etc.
USB
Ethernet
Wireless Sensor Network And Labs fall 2010
15
Pins
Light Sensors
Temp/Humidity
Sensor
Infrared Sensors
Motor
Clock System
USB Chip
PC
Radio Chip
Switches
2010/10/1
Wireless Sensor Network And Labs fall 2010
LEDs
16
MSP430 Family
16-bit Reduced Instruction Set Computer
(RISC) CPU
1K to 128K bytes Flash
128 bytes to 10K bytes RAM
14- to 100-pin I/O
Ultra-low Power
2010/10/1
Wireless Sensor Network And Labs fall 2010
17
Clock Signal
An oscillate signal generated by some hardware
All processors, as well as many peripherals require
clocks
Clock frequency is the speed of the processor
Usually, higher speed consume large energy
2010/10/1
Wireless Sensor Network And Labs fall 2010
18
Crystals
A small block of quartz
Apply a voltage, it will vibrate
For a block of given size, it will vibrate at a given and
fixed frequency
They require a drive circuit to make them go
2010/10/1
Wireless Sensor Network And Labs fall 2010
19
Generate Clock
Oscillator module
include crystal and drive circuit
Internal drive circuit + crystal
most common case
Digitally Controlled Oscillator
an oscillator circuit constructed by
some electrical components
can control its frequency
frequency varies with temperature,
voltage, and from device to device
2010/10/1
Wireless Sensor Network And Labs fall 2010
20
MSP430 Clock system
Flexible clock sources
Always-on low frequency crystal (eg. 32.768KHz)
On-demand high speed DCO (up to 25MHz)
DCO on and stable in < 1μs
2010/10/1
Wireless Sensor Network And Labs fall 2010
21
Flexible Clock Sources in MSP430
Oscillator consume energy
Higher the speed, larger the energy consumption
Use high speed DCO
for CPU
for high speed peripherals
wake up and get things done, go to sleep as soon as
possible
Use low frequency crystal oscillator
for peripherals that require always on
Save energy
2010/10/1
Wireless Sensor Network And Labs fall 2010
22
An Example: RTC
Real-Time clock (RTC)
software routine that records second, minute, and hour
Calendar clock
second, minute, hour, day, month, year.
Implementation
configure a timer (counter), use low frequency osc.
(32.768KHz) as clock source
when the timer counts to 32768 (exactly 1 second), it
generates an interrupt
processor wake-up, execute the RTC routines
2010/10/1
Wireless Sensor Network And Labs fall 2010
23
Low Power RTC
• Watch Battery CR2032
•Capacitor: 230 mAh
• Lifetime
= 230 mAh / 0.83 μA
= (230000 / 0.83) hours
= 277108 hours (approx.31 years)
2010/10/1
Wireless Sensor Network And Labs fall 2010
24
Memory
RAM (Random Access Memory)
volatile storage
store variables, stack, and etc.
Flash
non volatile storage
store program code, and data
Info Segments (on MSP430)
A special segment in flash
Usually use to store parameters
2010/10/1
Wireless Sensor Network And Labs fall 2010
Memory Map of MSP430
25
Peripherals
To communicate with the external world
Sensors
switches, light, temperature, accelerometer, infrared,
humidity, pressure, acoustic, camera, and etc.
Actuators and output controls
motor, on/off control, LEDs, LCD display, and etc.
Other ICs or circuit
flash memory IC, SD card, USB flash disk, DSP
processor, and etc.
Host PC, PDA, Industry PC, and etc.
2010/10/1
Wireless Sensor Network And Labs fall 2010
26
Ways to Communicate
Programmed I/O
The processor accepts or delivers data at times
convenient to it
Interrupt-driven I/O
External events control the processor by requesting the
current program be suspended and the external event be
serviced
Direct Memory Access (DMA)
DMA allows data to be transferred from I/O devices to
memory directly without the continuous involvement of
the processor
2010/10/1
Wireless Sensor Network And Labs fall 2010
27
Microcontroller Block Diagram
Microcontroller
Clock System
Peripherals
GPIO
Timer
Sensors and
actuators
ADC
ALU
Memory
(RAM)
10KB
Storage
(Flash)
48KB
2010/10/1
UART
SPI
DMA
External storage,
other ICs, other
circuits
I2C
DAC
Host PC, PDA, etc.
USB
Ethernet
Wireless Sensor Network And Labs fall 2010
28
GPIO
General purpose input/output
A pin on the Microcontroller
Function
Set as input or output
When input
Read the “value” on the pin (high/low)
Generate an interrupt when transition occur
When output
Set the output of the pin to high/low voltage
Usage
Control LEDs, read switches input, communication, etc
2010/10/1
Wireless Sensor Network And Labs fall 2010
29
Timer
It is a counter
Measures time intervals
Generate
Interrupt
(ex. 32.768kHz Crystal)
Internal
Clock Source
Timer
External
Source
Setting
(ex. count to 32768)
2010/10/1
PWM
Wireless Sensor Network And Labs fall 2010
Other Outputs
30
Analog to Digital Converter(ADC)
Convert Voltage to a digital number
Signal Path
Signal Conditioning
Sensors
• Light
• Temperature
• Acceleration
• Humidity
• Pressure
• etc.
Produce a
proper output
voltage level
(if necessary)
• Resistance
• Capacitance
• Current
• Voltage
• etc.
• Amplification
• Filtering
Convert to
voltage
Analog to
Digital
Conversion
(ADC)
10011101
Converts
voltage to
digital number
2010/10/1
Wireless Sensor Network And Labs fall 2010
31
Digital Communications
Sending bits between each other
10011101
A
B
Serial communication
Our focus
10011101
Sending bits one by one
A
UART, SPI, I2C, USB, etc.
Parallel communication
1
0
Sending multiple bits at one time
0
1
1
A
Ethernet
1
B
B
0
1
2010/10/1
Wireless Sensor Network And Labs fall 2010
32
TI Embedded Processors
TI Embedded
Processing
Portfolio
ARM®-Based Processors
Microcontrollers (MCUs)
16-bit ultralow power
MCUs
MSP430™
32-bit
real-time
MCUs
C2000™
Delfino™
Piccolo™
32-bit ARM
Cortex™-M3
MCUs
Stellaris®
ARM®
Cortex™-M3
ARM
Cortex-A8
MPUs
Sitara™
ARM® Cortex™-A8
& ARM9
40MHz to
300 MHz
Up to
100 MHz
300MHz to
>1GHz
Flash
1 KB to 256 KB
Analog I/O, ADC
LCD, USB, RF
Flash, RAM
16 KB to 512 KB
Flash
8 KB to 256 KB
Measurement,
Sensing, General
Purpose
PWM, ADC,
CAN, SPI, I2C
Motor Control,
Digital Power,
Lighting, Ren. Enrgy
USB, ENET
MAC+PHY CAN,
ADC, PWM, SPI
Cache,
RAM, ROM
USB, CAN,
PCIe, EMAC
$1.50 to $20.00
DSP
DSP+ARM
C6000™
DaVinci™
Connectivity, Security,
Motion Control, HMI,
Industrial Automation
$1.00 to $8.00
Industrial computing,
POS & portable
data terminals
$5.00 to $20.00
Multi-core
DSP
C6000™
Ultra
Low power
DSP
C5000™
video processors
OMAP™
Up to
25 MHz
$0.25 to $9.00
Digital Signal Processors (DSPs)
300MHz to >1Ghz
+Accelerator
Cache
RAM, ROM
USB, ENET,
PCIe, SATA, SPI
Floating/Fixed Point
Video, Audio, Voice,
Security, Conferencing
$5.00 to $200.00
24.000
MMACS
Up to 300 MHz
+Accelerator
Cache
RAM, ROM
Up to 320KB RAM
Up to 128KB ROM
USB, ADC
McBSP, SPI, I2C
SRIO, EMAC
DMA, PCIe
Telecom test & meas,
media gateways,
base stations
$40 to $200.00
Audio, Voice
Medical, Biometrics
$3.00 to $10.00
Software & Dev. Tools
2010/10/1
Wireless Sensor Network And Labs fall 2010
33
MSP430F1xx
2010/10/1
Wireless Sensor Network And Labs fall 2010
34
MSP430F4xx
2010/10/1
Wireless Sensor Network And Labs fall 2010
35
MSP430F2xx
2010/10/1
Wireless Sensor Network And Labs fall 2010
36
What Has Changed?
1xx
2xx
4xx
5xx
Basic Clock System
Basic Clock System +
FLL, FLL +
Unified Clock System
UCS
Core voltage same as
supply voltage
Core voltage same as supply
voltage
Core voltage same as
supply voltage
Programmable Core
Voltage with integrated
PMM
16-bit CPU
16-bit CPU, CPUX
16-bit CPU, CPUX
16-bit CPUXV2
GPIO
GPIO w/ pull-up and
pull-down
GPIO
GPIO w/pull-up
and pull-down,
drive strength
N/A
N/A
N/A
CRC16
Software RTC
Software RTC
Software RTC with Basic
Timer, Basic Timer + RTC
True 32-bit RTC
w/Alarms
USART
USCI, USI
USART, USCI
USCI, USB, RF
DMA up to 3-ch
DMA up to 3-ch
DMA up to 3-ch
DMA up to 8-ch
MPY16
MPY16
MPY16, MPY32
MPY32
ADC10,12
ADC10,12
ADC12
ADC12_A
4-wire JTAG
4-wire JTAG, some devices
with Spy-Bi-Wire
4-wire JTAG
4-wire JTAG and Spy-BiWire
2010/10/1
Wireless Sensor Network And Labs fall 2010
37
F5xx vs. Prior MSP430 Generations
2xx
4xx
5xx
CPU Clock (max)
16MHz
8MHz
25MHz
*Active Current
(3.0V, typ)
515uA @ 1MHz
4.2mA @ 8MHz
9.1mA @ 16MHz
600uA @ 1MHz
4.8mA @ 8MHz
N/A
290uA @ 1MHz
1.84mA @ 8MHz 230 uA/MHz
8.90mA @ 25MHz
120KB / 8KB (Flash / RAM)
120KB / 8KB (Flash / RAM)
256KB / 16KB (Flash / RAM)
Wake-up Time From LPM3
1us
6us
5us
Standby LPM3 Current
0.9 – 1.1uA
1.1 – 2.5uA
2.6uA (with active true RTC)
LPM4 Current
0.1uA
0.1uA
1.6uA (LPM4) / 0.1uA (LPM5)
Flash ISP Minimum DVCC
2.2V
2.7V
1.8V
Port I/O Interrupt Capability
P1/P2
P1/P2
P1/P2
Some devices also P3/P4
Prog. Port Pin Drive Strength
N/A
N/A
All port pins
Prog. Pull-ups/-downs
All port pins
N/A
All port pins
Available MCLK Sources
DCO
LFXT1
XT2 (if available)
VLO
FLL
LFXT1
XT2 (if available)
N/A
LFXT1
Available FLL Reference
Clocks
2010/10/1
UCS
FLL
LFXT1
XT2 (if available)
VLO
REFO
LFXT1, REFO, & XT2 (if
available)
Wireless Sensor Network And Labs fall 2010
38
MSP430 Roadmap
FR57xx
BGM, Catalog
Production
F53xx
Development
F51x2
16 MIPS
120 kB Flash
8 kB RAM
500 nA Standby
1.8 – 3.6V
G = Value Line
F = Flash
FR = FRAM
F23x0
F23x0
G2xx2
1xx-Catalog
•
•
•
•
8MIPS
60 kB Flash
10 kB RAM
1.8 – 3.6 V
•
•
•
•
•
•
•
F543xA
F541x
F15x-F16x
F13x-F14x
G2xx5
75+ devices
5xx-6xx
F21x2
F20xx
G2xx1
The New Generation
RF
USB
F22xx
F21x1
0.9V Native
CC430
F552x
F12xx
FG461x
Fx43x
F44x
F11xx
Fx42x
Fx42x0
F41x
FE42x2
F41x2
Wireless Sensor Network And Labs fall 2010
25MIPS
256 kB Flash
16 kB RAM
1.8 – 3.6V
FRAM, USB, RF
6xx: LCD Controller
160 uA/MIPS
F471xx
F43x
Fx47x
F47x4
USB
L092
Lighting
F261x
F241x
F23x-F24x
2xx-Catalog
•
•
•
•
•
F550x
Gen Purpose
100+ devices
2010/10/1
FRAM
F6/563x
Device
100+ devices
4xx: LCD
•
•
•
•
16 MIPS
120 kB Flash
8 kB RAM
LCD Controller, 160
segments
• 1.8 – 3.6V
39
The eZ430 Family of MSP430 Tools
The eZ430 is a tradition of low-cost,
easy-to-use tools for MSP430
Options include RF, energyharvesting, RFID, even a wireless
sports watch development kit!
2010/10/1
Wireless Sensor Network And Labs fall 2010
40
Programming Tools
Parallel FET
Supports ALL MSP430 devices
Supports 4-Wire JTAG mode only
Fixed output voltage of 2.8V
No JTAG fuse blow
Simple hardware circuit, possible
to implement as part of a product
USB FET
Supports ALL MSP430 devices
Supports 4-Wire and 2-Wire (Spy-
Bi-Wire) JTAG
Adjustable output voltage:
1.8 - 3.6V, 100mA
JTAG fuse blow
Fast operation
2010/10/1
Wireless Sensor Network And Labs fall 2010
41
Gang Programmer GANG430
2010/10/1
Wireless Sensor Network And Labs fall 2010
42
Target Boards for Device Programming
100-pin target board exclusive to the
2010/10/1
F543x(A) / F541x(A) devices
Development board with 100-pin
TSSOP (PW) ZIF socket (MSPTS430PZ5x100)
All pins brought out to pin headers for
easy access
Programming via JTAG,
Spy-bi-wire or BSL
A FET board exists for most variants of
MSP430
Only $49
Wireless Sensor Network And Labs fall 2010
43
MSP-EXP430FG4618 Experimenter Board
Connector for CC1100/CC1101/
CC2500/CC2420 EMs
Includes support for the
CC2480 ZigBee Processor
SW examples and function
library available at
www.ti.com/ccmsplib
2010/10/1
Wireless Sensor Network And Labs fall 2010
44
MSP430 Software Tools
Wireless Networking Protocols
Z-Stack (CC2520 + MSP430F5438 ZigBee)
TI-MAC
SimpliciTI (on MSP430 MediaWiki)
DASH7
Wireless M-Bus
6LoPAN
Example Code for the MSP-EXP430F5438 Experimenter
Board (www.ti.com/msp430tools)
Drivers for hardware peripherals, LCD, USB conn.
Operating Systems
uC-OSII
IAR PowerPac
Salvo
2010/10/1
FreeRTOS
Wireless Sensor Network And Labs fall 2010
45
www.ti.com/msp430
User’s Guides
Datasheets
Code Libraries
100+ Application Reports
1000+ Code Examples
Product Brochure
Latest Tool Software
3rd Party Listing
Silicon Errata
2010/10/1
Wireless Sensor Network And Labs fall 2010
46
2010/10/1
Wireless Sensor Network And Labs fall 2010
47
Typical PC Program
# include
# define
…….
1. Other sub-functions ()
main ()
{
do something;
wait for input;
terminate;
}
2010/10/1
External response
(mouse/keyboard)
Wireless Sensor Network And Labs fall 2010
48
Typical Structure of Our Program
# include
# define
…….
main ()
{
System and Peripherals
initialization
for(;;) // forever loop
{
1. wait for interrupt(sleep)
2. do something after
return from
interrupt
}
1. Peripherals initialization
routines ()
2. Other sub-functions ()
Internal/External Events
(ISR) Interrupt Service
Routines ()
{
1. Quickly do something
or Setting flags
}
}
2010/10/1
Wireless Sensor Network And Labs fall 2010
49
Initialization
Configure hardware into a proper state
How to configure
set registers
Registers
each hardware subsystem has its own registers
store configuration, status, buffer, and etc.
set these registers properly in order to get it works
How to set the registers properly
MSP430x1xx family user ‘s guide
2010/10/1
Wireless Sensor Network And Labs fall 2010
50
Interrupt
A specific internal/external event occur that suspend
current program
Mostly, it is defined by you
some exceptions, for example – reset
Usually, you have to handle it immediately
You have to define how to react while this event occur
2010/10/1
Wireless Sensor Network And Labs fall 2010
51
maskable/non-maskable
Non-maskable interrupts
Interrupts that cannot be disable
eg. reset, oscillator fault
Maskable interrupts
Interrupts that can be disable in the program
Most of the interrupts you need to handle is maskable
2010/10/1
Wireless Sensor Network And Labs fall 2010
52
What happen when it occur
1.
2.
3.
4.
main()
{
for(;;)
{
MCU is executing
or sleeping
}
}
Set interrupt flag
Main program suspended
Store state variables
Jump to ISR
(ISR) Interrupt Service Routines ()
{
1. Quickly do something
or setting flags
}
2. Restore state variables
3. Return to main program, resume
process
Interrupt flag: a special register indicates a particular interrupt occur
State variables: information CPU will need to resume to normal processing
2010/10/1
Wireless Sensor Network And Labs fall 2010
53
Where to Jump
Memory Map of MSP430
Interrupt vector
a special segment in the memory
store the address of the ISR
by following code
Address of
Interrupt Vector
#progma vector=0xFFFA
__interrupt void Timer_B0 (void)
where is the interrupt vector
2010/10/1
specified in datasheet
Wireless Sensor Network And Labs fall 2010
54
More than one
More than one interrupts occur simultaneously
serve higher priority first
When one interrupt is being serve, it will disable the
other interrupts
means the other ISR cannot execute before this one
finish
if more than one occur while serving one interrupt
wait until it finish, serve the highest priority one first
You can enable interrupt in the ISR
not recommended
2010/10/1
Wireless Sensor Network And Labs fall 2010
55
Masked twice
While interrupt A is being serve, interrupt B occurred,
twice
when interrupt A is finished, the ISR of interrupt B will
be serve, only once
you miss one event!!
KEEP YOUR ISR SHORT!!!!
2010/10/1
Wireless Sensor Network And Labs fall 2010
56
Protect Your Data
Example:
Packet receive interrupt occurred
{
1. packet stored in a receive buffer
2. copy receive buffer to temporal buffer
3. return
}
In main program
{In main program
{ 1. disable global interrupt
1. copy temporal buffer to some data structure
2.
2. enable
processglobal
data interrupt
3.
} 4. process data
}
2010/10/1
Wireless Sensor Network And Labs fall 2010
Another packet receive
interrupt occurred in the
middle of copying data
57
Software Architectures
Round Robin with Interrupts
for(;;) // forever loop
{
1. wait for interrupt(sleep)
if( Event 1 occurred) {
do something
}
if( Event 2 occurred) {
do something
}
if( Event 3 occurred) {
do something
}
}
Problem: no proirity
2010/10/1
(ISR) Interrupt Service Routines 1 ()
{
1. do critical things
2. set event 1 occurred flag
}
(ISR) Interrupt Service Routines 2 ()
{
1. do critical things
2. set event 2 occurred flag
}
(ISR) Interrupt Service Routines 3 ()
{
1. do critical things
2. set event 3 occurred flag
}
Wireless Sensor Network And Labs fall 2010
58
Software Architectures
Function-Queue-Scheduling
for(;;) // forever loop
{
1. wait for interrupt(sleep)
While (function queue is not empty)
{
call first function on queue
}
}
(ISR) Interrupt Service Routines 1 ()
{
1. do critical things
2. put function_1 on queue
}
(ISR) Interrupt Service Routines 2 ()
{
1. do critical things
2. put function_2 on queue
}
(ISR) Interrupt Service Routines 3 ()
{
1. do critical things
2. put function_3 on queue
}
Worst wait for highest priority task
bounded by the longest function
2010/10/1
Wireless Sensor Network And Labs fall 2010
59
Software Architectures
Real-Time Operating System (RTOS)
load an operating system into the MCU
there are many RTOS available
it is beyond the scope of this class
2010/10/1
Wireless Sensor Network And Labs fall 2010
60
How To Program
FET (Flash Emulation Tool)
A tool that allow you to program and debug MSP430
Connects to the JTAG port on MSP430
A generic term used in MSP430 world
JTAG (Joint Test Action Group)
IEEE 1149.1 standard: “standard Test Access Port and
Boundary-Scan Architecture”
A standard interface defined for testing and debugging
2010/10/1
Wireless Sensor Network And Labs fall 2010
61
Video
2010/10/1
Wireless Sensor Network And Labs fall 2010
62
TinyOS
“System architecture directions for network
sensors”, Jason Hill, Robert Szewczyk, Alec Woo, Seth
Hollar, David Culler, Kristofer Pister . ASPLOS 2000,
Cambridge, November 2000
System software for networked sensors
Tiny Microthreading Operating System: TinyOS
Component-based
Event-driven
TinyOS is written in nesC programming language
2010/10/1
Wireless Sensor Network And Labs fall 2010
63
Why TinyOS?
TinyOS is very powerful
Modern operating system and language techniques in an
embedded system
A lot of libraries, support code, and community
development
“TinyOS has a steep learning curve”
It can take time to use all of its capabilities
2010/10/1
Wireless Sensor Network And Labs fall 2010
Slides from TinyOS-IPSN2009
nesC
nesC programming language
An extension to C
Designed for sensor network nodes
Basic concepts behind nesC
Separation of construction and composition
Many components, “wired”(link) those you want
Component provide a set of interfaces
Interfaces are bidirectional
Command (down call), event (up call)
nesC compiler signals the potential data races
2010/10/1
Wireless Sensor Network And Labs fall 2010
65
Support Multiple Platforms
Hardware platforms
eyesIFXv2, ETH Zurich
TI MSP430F1611, Infineon TDA5250
Intelmote2, Intel
PXA271 XScale Processor, TI (Chipcon) CC2420
Mica2, UCB
Atmel128, TI (Chipcon) CC1000
Mica2dot, UCB
Atmel128, TI (Chipcon) CC1000
Micaz, UCB
Atmel128, TI (Chipcon) CC2420
Telosb, UCB (Taroko)
MSP430F1611, TI (Chipcon) CC2420
Tinynode, EPFL Switzerland
MSP430F1611, Semtech radio transceiver XE1205
Three different microcontrollers, four different radio transceivers and many
other peripheral ICs
2010/10/1
Wireless Sensor Network And Labs fall 2010
66
Contiki
Contiki – a dynamic operating system for networked
embedded systems
Loadable modules, multiple network stacks, multiple
threading models
Open source; 3-clause BSD licence
Small memory footprint
Designed for portability
14 platforms, 5 CPUs in current CVS code
Many pioneering features
Provides IP communication, both for IPv4 and IPv6.
2010/10/1
Wireless Sensor Network And Labs fall 2010
67
Demo
http://www.youtube.com/watch?v=ievpE6nkj0Q
2010/10/1
Wireless Sensor Network And Labs fall 2010
68
2010/10/1
Wireless Sensor Network And Labs fall 2010
69
Something To Note
You won't get very far without at least a very
rudimentary understanding of electronics
But electronics is a vast and complex field
What we provide here is just some very basic
principles
We assume you have some common sense about
electronics
We will try to make it as simple as possible
2010/10/1
Wireless Sensor Network And Labs fall 2010
70
Voltage, Current and Power
Voltage
Symbol: V
Unit: Volt, (V)
Current
Symbol: I
Unit: Ampere, (A)
Power
P=V*I
Unit: Watt, (W)
2010/10/1
Wireless Sensor Network And Labs fall 2010
71
DC and AC
DC: Direct Current
Definition: current that travels in one direction
we usually refer to constant voltage
AC: Alternating Current
Definition: opposed to DC
we usually refer to varying voltage
DC component vs AC component
DC component: average of signal
AC component: the varying signal
2010/10/1
Wireless Sensor Network And Labs fall 2010
72
Relationship between V and I
Ohm’s Law
V=I*R
Resistor
Most widely used element
Symbol: R
Unit: Ohm (Ω)
Schematic symbol:
Variable resistor
2010/10/1
Wireless Sensor Network And Labs fall 2010
73
Resistors in series
Resistors in series
R = R1 + R2
=
I1
I
2010/10/1
V1
I2
V
V2
R1
V1 V
R1 R 2
R2
V2 V
R1 R 2
I I1 I 2
Wireless Sensor Network And Labs fall 2010
74
Resistors in parallel
Resistor in parallel
R
=
I1
I2
I
2010/10/1
V1
V2
V
1
1
R1
1
R2
R1 R 2
R1 R 2
V V1 V2
V
R2
I1 I
R
1
R
1
R
2
V
R1
I2
I
R
2
R
1
R
2
I I1 I 2
Wireless Sensor Network And Labs fall 2010
75
Capacitors
Capacitor store charge
Symbol: C
Unit: Farads (F)
Typical range we use is from μF to pF
Circuit symbols
Bipolar: no polarity
Unipolar: has a positive and a negative lead
2010/10/1
Wireless Sensor Network And Labs fall 2010
76
Charge and discharge
Apply a voltage charging
Remove voltage discharging
Provide a temporary voltage and current source
Decoupling
Stable the DC voltage source
2010/10/1
Wireless Sensor Network And Labs fall 2010
77
Diodes
Pass a current in one direction, block it from another
Symbol: D
Forward voltage drop
Vanode
Vcathode
A voltage different between anode and cathode
Example
For a typical voltage drop of 0.7V
If Vanode is 3.3V, than Vcathode is 2.6V
This value will be specified in datasheet
2010/10/1
Wireless Sensor Network And Labs fall 2010
78
LEDs
Light-emitting diode (LED)
Limited amount of current can pass through
Will damage if current is too large
Need a current-limiting resistor
I
R
3.3V
Vanode
Vcathode
Ground
Vcathode 3.3V Vvoltage _ drop 1.7V
R V 1.7
85
I
0.02
If voltage drop of this LED is 1.6V, and we want 20mA
pass through
2010/10/1
Wireless Sensor Network And Labs fall 2010
79
Other components
Crystals
Symbol: X, Y
Switches
symbols: SW
Inductors
symbol: L
2010/10/1
Wireless Sensor Network And Labs fall 2010
80
Understanding Schematic
Net Labels
Component
Power Ports
2010/10/1
Nets Crossing
Wireless Sensor Network And Labs fall 2010
Nets Cross
Multiple Sheet
81
Real Schematic -- Taroko
2010/10/1
Wireless Sensor Network And Labs fall 2010
82
Reading Datasheet
Every component should have a datasheet
Contain every information about the component
If you are designing you own embedded system
Read it thoroughly and feel you understand
Go back and reread it
Get the latest datasheets and errata
Lets take a look at the MSP430F1611 datasheet
2010/10/1
Wireless Sensor Network And Labs fall 2010
83
Next Two Labs
Lab 1: GPIO
Control LEDs
Reading switches, keypads input
Lab 2: Timer
Generate different time interval
Generate PWM signal, control servo motor
2010/10/1
Wireless Sensor Network And Labs fall 2010
84
LEDs
This is a typical connection
When P1.1 set to high
DVcc = VP1.1
no current flow
DVcc
Vanode Vcathode
When P1.1 set to low
VP1.1 = 0
Current flow through, turn on the LED
R
GPIO can use as an On/Off control
2010/10/1
Wireless Sensor Network And Labs fall 2010
85
Switches
A
B
Operation
Open: A and B are not connected in normal state
Close: When you press the button, A and B are
connected
Typical circuit
When the switch is open, voltage of
USERINT stay at high
When the switch is close, voltage of
will be low
2010/10/1
Wireless Sensor Network And Labs fall 2010
86
Keypad
This is a 3x4 matrix
keypad
When you press a
button, a pin in X and
a pin in Y is
connected
How to interface to
MSP430?
2010/10/1
Wireless Sensor Network And Labs fall 2010
87
Next Two Labs
Lab 1: GPIO
Control LEDs
Reading switches, keypads input
Lab 2: Timer
Generate different time interval
Generate PWM signal, control servo motor
2010/10/1
Wireless Sensor Network And Labs fall 2010
88
Time Intervals
Generate different time intervals
Flash different LED with different time interval
2010/10/1
Wireless Sensor Network And Labs fall 2010
89
Robot Car
Servo
motors
Robot Power
(Vcc) Red
Robot Ground
(GND) Black
Robot Signal
White
Battery Ground
Black
Battery Power
Red
2010/10/1
Wireless Sensor Network And Labs fall 2010
90
Pulse Width Modulation
Pulse width
Pulse
Period
Pulse Width Modulation (PWM)
varying the pulse width
Usage of PWM
Control motor, telecommunication, voltage regulation,
and etc.
2010/10/1
Wireless Sensor Network And Labs fall 2010
91
Servo Motor
A PWM input controls it angular position
Pulse width = 1.5 ms; position = 90o (neutral)
Pulse
Example
Pulse width
pulse width = 1.25 ms; position = 0o
pulse width = 1.75 ms; position = 180o
Varies between brands and models
The servo motor we used is Continuous
Period ≈ 20 ms
Rotation model
Other models will just move to the
programmed position and stop
2010/10/1
Wireless Sensor Network And Labs fall 2010
92
Control Servo Motor
Pulse width
Pulse
Period ≈ 20 ms
The servo motors we used are 1.5 ms neutral
If pulse width = 1.5 ms stop
If pulse width > 1.5 ms rotate in one direction
If pulse width < 1.5 ms rotate in another direction
2010/10/1
Wireless Sensor Network And Labs fall 2010
93
Install IAR
We will begin our labs next week
Install the programming software ahead
Go to www.ti.com
Click Microcontroller
In MSP430 menu, click Tools & Software
Find IAR-KICKSTART and click on it
Download software and install
2010/10/1
Wireless Sensor Network And Labs fall 2010
94