Presentation is loading. Please wait.

Presentation is loading. Please wait.

TinyOS Programming Boot Camp Part III: Hardware Tour

Similar presentations

Presentation on theme: "TinyOS Programming Boot Camp Part III: Hardware Tour"— Presentation transcript:

1 TinyOS Programming Boot Camp Part III: Hardware Tour
David Culler, Jason Hill, Rob Szewczyk, Alec Woo U.C. Berkeley 2/9/2001

2 Hardware Tour

3 Outline Design overview Connector bus Sensor motherboard Sensor boards
Supporting hardware Resources

4 Design Rationale Want to experiment with a wide variety of sensors
Need a wide variety of interfaces, analog and digital Sensor platforms should be easy to design Want to preserve processor and communication module Major investment in SW and programming environment Want interoperability between the various types of sensors Every sensor node needs communication to be useful Need a fixed interface to match the sensor modules with processor and communication

5 Design Rationale Main board requirements Sensor requirements
Easy to program and debug Need an easy access to most signals in the system Need standard interfaces Basic self-monitoring and maintenance capability Ability to reprogram remotely Ability to control radio cell size Ability to monitor signal strength Other self monitoring added on sensor packs Sensor requirements Digital serial interfaces Analog sensor support Ability to control on/off state of individual sensors

6 Mote Connector Schematics

7 Mote Expansion Connector
Documented hardware interface Swap components on either side of the connector while preserving investment in sensors or main boards Sensor interfaces 4 lines dedicated to switching components on and off 7 analog voltage sensing lines 2 I2C busses SPI UART lines Debugging aids All radio-related signals: RX, TX, base band, control signals, signal strength Programming interfaces SPI and reset signals for the main processor and the coprocessor Ground, Vcc for both analog and digital circuits 12 lines reserved for future use

8 Power Lines Need to control on/off state of individual sensors
Independently switched, used as outputs Capability Sink up to 20 mA, source a bit less If more current is required by a sensor circuit, use MOSFETs No higher level protocol attached The place to implement functionality not provided by standard interfaces

9 Analog Lines and AD Conversion
Most sensors provide an analog interface Simple voltage dividers with photo resistors, thermistors, etc. Whetstone bridges, condenser microphones, etc. Need analog voltage sensing lines 10 bit ADC,  2 LSB=> 8 usable bits  3 mV error Rail-to-rail range Sampling rate Max 15.4 ksps in continuous sampling mode Max 4 ksps in a single sampling mode 8 multiplexed channels One dedicated to sampling BBOUT Sampling rate high enough for most environmental phenomena Interrupt driven, or polling version

10 I2C Bus 2-wire serial bus: clock and data
Clock is an “or” of all clock generators, the slowest clock generator dictates the speed Bi-directional data line Higher level protocol than UART or SPI Defines a protocol for multiple device access, up to 128 devices per bus Defines a multiple master arbitration Allows for multi-byte transactions Speed: up to 400 kbps Software implementation Soft timing constraints mean that the use of timers is not mandatory, use tasks instead Either 1 bit or 1 byte per task Many slave devices available EEPROM used for logging and other permanent storage IO extenders, ADC converters, sensors, etc.

11 SPI 3-wire, full duplex serial bus: clock, MISO, MOSI
Connector bus defines 2 SPI busses Speed: up to 1 mbps Hardware support on the main processor, software implementation on the coprocessor Low-voltage programming interface to ATMEL microcontrollers Interaction with coprocessor Cyclic 16 bit distributed register

12 UART A standard way for exchanging information with a PC
Voltage conversion and connector required, provided by the programming board Available speed: 2400 bps to 115 kbps Most reliable for communication with PC: 19.2 kbps Large clock rate errors at high sending rates 1 byte FIFOs Hardware doesn’t buffer multiple bytes of either input or output Operate in either polling or interrupt driven mode TinyOS uses UARTs in interrupt driven mode

13 Rene: the Motherboard Main components Processor: ATMEL AVR 90LS8535
Reprogramming coprocessor Short range radio LEDs I2C EEPROM

14 Rene Schematics

15 AVR Processor Core Clock speed: 4 MHz Memory IO capabilities
8 Kbytes of program memory (flash) 512 bytes of data RAM 512 bytes of EEPROM on chip (write: 4 ms/byte) 32 8 bit registers IO capabilities 32 general purpose IO lines Some lines also serve more specialized purposes, e.g. UART 10-bit 8-channel ADC Connector interface means that the IO lines serve a more specific purposes Interrupts No external interrupts available No interrupt queuing

16 Wakeup latency (cycles) Wakeup granularity (cycles)
AVR Processor Core Timers 8 bit timer/counter – unused in current applications 16 bit counter – one comparator used for radio sampling, other functions unused 8 bit, externally clocked timer/counter – used for periodic sampling of sensors and sleep control More advanced timer features (input capture, PWM output) are available, through not explicitly allocated on the connector, use at your own risk Power consumption Restrictions No truly general purpose registers Limited arithmetic/logic instructions Current Wakeup latency (cycles) Wakeup granularity (cycles) Active 6 mA - Idle 2 mA 4 1 Power save 5 uA 122

17 Programming the Processor
Program the runtime memory image into a flash No loader, no dynamic linker Programming steps Extract the code and data segments from an executable into an SREC file Erase the current contents of the flash Reset the processor Download the program Serial download protocol Each download command contains the address, and the contents of to be stored 10 ms delay per byte of code Verify the program: read the flash, match it against the source image After reset, start executing C runtime No ability to write the flash on the fly Requires a coprocessor for reprogramming

18 Coprocessor Circuit Coprocessor: ATMEL AVR AT90S2343
2 Kbytes of code space 1 MHz internal clock Required connections SPI for programming the main microcontroller RESET for the main controller I2C for accessing EEPROM storage Insufficient pins – I2C and SPI clock lines are shared Minimal capability Software SPI Software I2C

19 Radio Circuit RFM Monolithics TR1000 916 MHz radio Processor interface
On/off keying at 10 kbps (max kbps) Capable of 115 kbps using amplitude shift keying Capable of turning on in 30 us Low-power listening by switching on and off on a sub-bit granularity Processor interface RFM CNTRL 0 and 1 – switch between transmit, receive, and sleep Raw, unbuffered access to transmit (RFM TX) and receive (RFM RX) Requires DC balanced signal – an equal number of 1’s and 0’s in the signal Sampling on reception and modulating on transmission done is software Too much noise in received signal to use UART for sampling too little flexibility offered by UART Imposes real time constraints on the system Power usage Transmit current: 7 mA Receive current: 4.5 mA Sleep: 5 uA

20 Radio Signal Strength Measuring the quality of reception from a node is useful Aid in multihop routing decisions Help with location estimation Signal strength measurement Based on base band sampling Demodulated and amplified analog signal, fed into ADC channel 0 Raw samples further processed in TinyOS Empirical evaluation* *Klemmer, Waterson, Whitehouse, 2000

21 Radio Transmission Strength Control
Useful in networking experiments Control the cell size Allow for power savings Principles of operation Radiated power is proportional to the square of the current on RFM TX pin Signal strength control Controlled through a digital potentiometer (DS 1804), 0-50 kOhms Currently no observable effects on power usage Evaluation Optimal transmission at the pot setting of 10 kOhms Changing the range from 45 to 90 feet in an indoor environment Changing the transmit strength has no effect on power usage Effects secondary to shape/length of the antenna

22 LEDs Basic mote UI and a great debugging tool Power consumption: 6mA
LED consumes as much power as the main microcontroller If power is a concern, turn them off! LED 1 and LED 2 multiplexed with the signal strength potentiometer control Use them for controlling any other DS 1804 pots, one at a time

23 Matching SW and HW: hardware.h
Define a hardware.h for each motherboard Map motherboard abstractions onto physical pins RFM RX, TX, and control pins Allocate the connector pins onto the motherboard resources: PW lines, I2C busses, UARTs, etc. Define a header file for each sensor board Assign symbolic names (e.G. PHOTO_PWR) to the connector signals Attempt to maintain a consistent convention in hardware design Photo and temperature on the same signals in both basic and advanced boards

24 Mote Connector Caveats
Multipurpose lines LED1 and LED2 are used to control the signal strength potentiometer. They can also be used to control digital pots on sensor boards PW3 can be used as a PWM output PW4 can be used as a timer input capture, useful for PWM inputs Other restrictions Relationship between the main processor and the coprocessor dictates that their SPI busses are permanently connected Shortage of pins on the coprocessor dictates that the SPI SCK is shared with the I2C BUS 2 CLK Cannot use this bus when the board is plugged into the programming port Cannot use the logging component when a board is set up for programming

25 Basic Sensor Board Sensors Photo resistor – PW1 and ADC1
Thermistor – PW2 and ADC2 Prototyping area

26 Vibes Sensor Board Vibes Photo resistor: PW1 and ADC1
Thermistor: PW4, ADC6 2 axis accelerometer: ADC2 and 3, PW2 Digital temperature: I2C Bus 1

27 2xMAG Board Sensor 2 axis magnetometer optimized for vehicle detection
Resources: PW2, 3, and 4, ADC 6 and 7

28 Programming Board SPI interface through the parallel port
Programming either the main microcontroller or the coprocessor with a flip of the switch RS232 connector Voltage conversion CTS/RTS signal grounded Program the serial port accordingly

29 Building Your Own Tools Complete designs
OrCAD – capture and layout tools Complete designs Rene Basic Vibes 2xMAG Base board

30 Resources Datasheets Schematics ATMEL 8535 datasheet
RFM TR1000 datasheet 24WC256 EEPROM ADXL202 2 axis accelerometer HMC axis magnetometer Schematics Rene motherboard Basic sensor board Vibration sensor board Vehicle detection board Base board Debugging board

31 Exercise Basic sensor modification
Add a buzzer to the basic sensor board Connect buzzer to Vcc and to an unused PW line. The buzzer should turn on when pulled PW is pulled low Write a component to interface with a buzzer Use a similar component as a template Using the previous application as a template, create an application which beeps when the average light level drops below some threshold (audience choice)

Download ppt "TinyOS Programming Boot Camp Part III: Hardware Tour"

Similar presentations

Ads by Google