Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations

Presentation on theme: "TinyOS Programming Boot Camp Part III: Hardware Tour David Culler, Jason Hill, Rob Szewczyk, Alec Woo U.C. Berkeley 2/9/2001."— 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 –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 I 2 C 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 I 2 C 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 doesnt 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 –I 2 C EEPROM

14 Rene Schematics

15 AVR Processor Core Clock speed: 4 MHz Memory –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 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) Active6 mA-- Idle2 mA41 Power save5 uA4122

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 TR MHz radio –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 1s and 0s 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 –OrCAD – capture and layout tools Complete designs –Rene –Basic –Vibes –2xMAG –Base board

30 Resources Datasheets –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 David Culler, Jason Hill, Rob Szewczyk, Alec Woo U.C. Berkeley 2/9/2001."

Similar presentations

Ads by Google