Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan...
-
Upload
pablo-fulcher -
Category
Documents
-
view
221 -
download
1
Transcript of Frank Vahid, UC Riverside 1 First Results with eBlocks: Embedded Systems Building Blocks Susan...
Frank Vahid, UC Riverside
1
First Results with eBlocks: Embedded Systems Building Blocks
Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh
Department of Computer Science and EngineeringUniversity of California, Riverside
*Also with the Center for Embedded Computer Systems at UC Irvinehttp://www.cs.ucr.edu/~vahid
This work is being supported by the National Science Foundation and a Department of Education GAANN Fellowship
Frank Vahid, UC Riverside 2
Introduction – A Typical Problem
Garage door
Frank Vahid, UC Riverside 3
Introduction – A Typical Problem
Oops!
Garage doorleft openat night
Frank Vahid, UC Riverside 4
Introduction – Solution: Simple Embedded System
Blink LED in the bedroom if garage door is open at night
Homeowner sees LED before sleep
Components needed Light sensor Contact switch Logic (no light AND switch
open) Wireless transmitter Wireless receiver LED
light sensor
contact switch
AND
tx
rx
LED
Frank Vahid, UC Riverside 5
Introduction – Solution is not so easy
Find components Parts catalogs, from
different vendors, many varieties
Intended for specialists Read datasheets to
understand components 10’s to 100’s of pages Intended for specialists
Light sensor – no “light sensor” listing, it’s a photoresistor
Light – not a light bulb but an LED (light emitting diode)
There are over 80+ listing in a single catalog
Use a wireless transmitter/receiver or a transceiver?
Do we need a antenna or amplifier?
AM or FM?
Which MHz can we use given FCC regulations?
What does the instruction set look like?
Which pins/ports can I use?
How do I specify if a pin is output or input?
What are the connections – power, ground, data transmitted, data received, interface to hardware?
How does transmitter/receiver work?
Who does encoding/decoding?
What does the encoding look like?
Timing Issues?
What are the connections – ground, power, data, address?
Frank Vahid, UC Riverside 6
Introduction – Solution is not so easy
Program microcontrollers Software Tool Interfacing/
communication Debug
Hardware Breadboard or PCB Debug
Other Issues... Battery drains in 2 days Need packets - requires
networking skills
How do I program the PIC?
Which compilers can I use?
How do I download/install/configure the tools?
How do I interface with other components?
How do I debug my program if it doesn’t work?
How do I read a schematic?
My circuit doesn’t work, now what?
How do I use a multimeter or logic analyzer to debug a circuit?
How do I test the circuit to ensure correctness?
Am I missing other components – voltage regulators, capacitors, resistors?
Frank Vahid, UC Riverside 7
Introduction – Solution is not so easy
We gave this as a project in an upper-division embedded systems university course, several years in a row
Three week project Students already took courses, from various universities, involving
digital design, microcontrollers, electronics, and interfacing with sensors/displays
Overall, 50 students attempted the project Only 20 completed the project
Problems Misunderstanding (or vague) data sheets Interfacing errors Debugging difficulties
No way a regular person could build this seemingly simple, useful system
Not Completed 71%
Completed 29%
Frank Vahid, UC Riverside 8
Introduction – Not Just Garage Doors
Home monitoring Garage door open, side fence open, visitor at front door, pool occupied
Inventory Restaurants, stores, storehouses
Assistance for disabled Hard of hearing (vibration when sound), vision impaired, object locators
“Doorbell” type applications Proximity doorbell (carpoolers), temporary building usage, silent
doorbells, customer detection Logging/tracking applications
Log temperature, humidity, customer traffic, car speeds Ad-hoc security Voting systems Countless more applications that today either don’t exist, or are too
costly Low volume, or custom designed
Frank Vahid, UC Riverside 9
Introduction – Solution: Mass-produced easy-to-use monitor/control system building blocks
Shrinking processor cost and size enables new solution
Put intelligence in every sensor, in every output device, etc.
Proposed solution Define matchbox-sized
building blocks with accompanying standards, protocols, etc.
Easily connected, no programming/electronics experience, battery powered
Like connecting LEGOs
light sensor
LED
contact switch logic
tx
rx
LEDlight sensor
light sensor tx
light sensor logic tx
rx LED
“Smart dust”Getting awfully
small...
Courtesy of Joe Kahn
Frank Vahid, UC Riverside 10
Design Issues
Categories of blocks Sensors, Outputs, Communication, Logic/Timing
Presently Boolean only (yes/no); now extending to integers Presently about 10 items in each category
Enough to build huge variety of systems Working iteratively with users to refine and create new blocks
Definition of compute and communicate protocols Main constraints: good response, but 2-3 year battery Everything is inter-related, difficult problem
Traditional separation of concerns (compute/comm., and networking layers) too inefficient
Need tools to automate exploration
Frank Vahid, UC Riverside 11
Defining Basic eBlocks – Partial Catalog
eBlock Diagram Description InterfaceMagnetic Contact Switch
Determines when contact between two sensors is made.
yes = contact between sensors
no = no contact between sensors
Light Sensor Sensor detects presence of light. yes = light detected
no = no light detected
Button Indicates whether button is pressed or not. yes = button pressed
no = button not pressed
LED Device blinks a light when input is a yes. Device emits no light when input is no.
yes = blink LED
no = turn LED off
Splitter Device receives a signal and replicates that signal on each output.
yes = output yes signal
no = output no signal
Toggle An input of yes toggles (inverts) the current value outputted by the device.
yes = toggle previous output value
no = do nothing
2-Input Logic Block
Configurable logic block programmed by the user via DIP switch.
For each of the possible outcomes of a and b, there is a corresponding switch which can be set so the resulting output is a yes or no for that particular combination.
2-Input Logicyes/noyes/no
yes/no
Toggleyes/noyes/no
Splitter yes/noyes/noyes/no
yes/no
yes/no
Button yes/no
Magnetic Contact Switch yes/no
Light Sensor yes/no
yes/no LED
Frank Vahid, UC Riverside 12
Defining Basic eBlocks – How to Implement Logic?
Logic to detect motion at night Motion sensor output A = yes, light
sensor output B = no Motion at night = A AND (NOT B) =
A * B’ Equations too hard for regular
person, plus how to enter it? In general, regular people very weak
with logic Can’t create unique eBlock for
every unique 2-input logic function Create one 2-input logic block
User must configure that block Solution: print truth table on block,
user sets switches for each possible input
Not ideal, but sufficient for now
LogicA
B
From motion sensor
From light sensor
no
no
no
no
yes
yes
yes
yes
A B Output
no no
no yes
yes no
yes yes
Frank Vahid, UC Riverside 13
Building eBlocks Systems
Build the Garage Door Open at Night System Using eBlocks
Plug pieces together and the system is done!
Light Sensoryes/no
We want to detect night – use light sensor
Light Sensoryes/no
Magnetic Contact Switch yes/no
We want to know if garage door open – use contact switch
Magnetic Contact Switch yes/no
Need a function of light sensor output and contact switch output – use Logic Block
2-Input Logicyes/noyes/no
yes/no
Configure Logic Block to turn led on when it’s night and when door is open
2-Input Logicyes/noyes/no
yes/no
2-Input Logicyes/noyes/no
yes/no LEDyes/no
Need something to indicate garage open at night – use led
LEDyes/no
Frank Vahid, UC Riverside 14
Current Status: Working Prototypes
Garage Door Open at Night(wired solution)
At garage door
Outside Inside house
Light Sensor
Magnetic Contact Switch
LED
2-Input Logic Inside house
LEDwireless RX
At garage door
Outside
Light Sensor
Magnetic Contact Switch
2-Input Logic
wireless TX
Garage Door Open at Night(wireless solution)
Frank Vahid, UC Riverside 15
eBlock System Implementations
Cafeteria Food Alert
2-Input Logic
Splitter
ToggleButton
LED
Button
LED
KitchenService Line
Frank Vahid, UC Riverside 16
Battery Lifetimes
Off the shelf 9V battery Power down PIC when it
is idle Use sampling techniques
to reduce HW energy cost
eBlocks Energy/day (J/day)
Lifetime
PIC HW
Button 2.722 0 20 years
Light Sensor 2.722 44.5 1 year
LED 2.678 14.4 3 years
Green/Red LED 2.678 28.8 2 years
Beeper 2.678 27 2 years
2-Input Logic Block
2.766 0 19 years
Toggle 2.722 0 20 years
Prolonger 2.722 0 20 years
Frank Vahid, UC Riverside 17
eBlock Design Experiment
Gave garage door project in embedded systems course 3-page eBlock catalog that included basic examples (30 minutes to read) All 22 students successfully designed the system
In less than one hour Students built numerous additional designs during remaining two hours
Not complete
d0%
Completed
100%With eBlocks, 1 hour
Completed 100%
Without eBlocks, and 3 weeks
Not Completed 71%
Completed 29%
Frank Vahid, UC Riverside 18
Conclusions and Future Work eBlocks
Can be used by regular people to construct useful class of embedded systems No programming or electronics experience
Can be mass produced to be cost effective Boolean eBlock prototypes shown to be effective
Essentially creating higher-level digital components Illusion of continuous time, but event-based packet network underneath Only recently made possible due to low-cost, low-power, tiny processors
Will be useful with complementary efforts Intelligent homes, UPnP, IEEE smart sensor standard
All need sensors that people can actually use Sensor networks
Can serve as basic sensor input system (most research focuses on networking infrastructure)
Future work Timing model definition; wireless protocol definition; power sharing methods Extend to integer eBlocks, with arithmetic blocks too; Usage experience Automatic synthesis of eBlock systems from specifications Optimization of eBlock systems; use of eBlocks as a form of spatial
programming eBlocks for those with programming experience