Transcript Document
First Results with eBlocks:
Embedded Systems Building Blocks
Susan Cotterell, Frank Vahid*, Walid Najjar and Harry Hsieh
Department of Computer Science and Engineering
University of California, Riverside
*Also with the Center for Embedded Computer Systems at UC Irvine
http://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
1
Introduction – A Typical Problem
Garage door
Garage door left open at night
Oops!
Frank Vahid, UC Riverside
2
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
LED
rx
tx
AND
light contact
sensor switch
Frank Vahid, UC Riverside
3
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
no “light sensor” listing,
it’s a photoresistor
How does transmitter/receiver work?
Who does encoding/decoding?
What does the encoding look like?
Timing Issues?
Use a wireless tx/rx or a
transceiver?
Do we need a antenna or
amplifier?
Which MHz can we use given
FCC regulations?
What are the connections – ground, power,
data, address?
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?
4
Frank Vahid, UC Riverside
Introduction – Solution is not so easy
Program microcontrollers
Hardware
Software
Tool
Interfacing/communication
Debug
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
5
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
Overall, 50 students attempted the project
Only 20 completed the project
Problems
Three week project
Students already took courses, from various universities, involving digital
design, microcontrollers, electronics, and interfacing with sensors/displays
Misunderstanding (or vague) data sheets
Interfacing errors
Debugging difficulties
Completed
29%
Not
Completed
71%
No way a regular person could build this seemingly simple, useful system
Frank Vahid, UC Riverside
6
Introduction – Not Just Garage Doors
Home monitoring
Inventory
Proximity doorbell (carpoolers), temporary building usage, silent doorbells,
customer detection
Logging/tracking applications
Hard of hearing (vibration when sound), vision impaired, object locators
“Doorbell” type applications
Restaurants, stores, storehouses
Assistance for disabled
Garage door open, side fence open, visitor at front door, pool occupied
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
7
Introduction – Solution: Mass-produced easy-touse 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
Getting awfully
small...
Courtesy of Joe Kahn
light
sensor
Define matchbox-sized
building blocks with
accompanying standards,
protocols, etc.
“Smart dust”
Easily connected, no
programming/electronics
experience, battery powered
Like connecting LEGOs
contact
switch
light
sensor
LED
light
sensor
tx
light
sensor
logic
LED
logic
rx
tx
rx
Frank Vahid, UC Riverside
tx
LED
8
Design Issues
Categories of blocks
Sensors, Outputs, Communication, Logic/Timing
Presently about 10 items in each category
Presently Boolean only (yes/no); now extending to integers
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
9
Defining Basic eBlocks – Partial Catalog
eBlock
Diagram
Magnetic
Contact Switch
Magnetic
Contact Switch
yes/no
Light Sensor
Light Sensor
Button
yes/no
Toggle
2-Input Logic
Block
yes/no
Determines when contact between two
sensors is made.
yes = contact between sensors
no = no contact between sensors
Sensor detects presence of light.
yes = light detected
no = no light detected
Indicates whether button is pressed or not.
yes = button pressed
no = button not pressed
Device blinks a light when input is a yes.
Device emits no light when input is no.
yes = blink LED
no = turn LED off
Device receives a signal and replicates that
signal on each output.
yes = output yes signal
no = output no signal
An input of yes toggles (inverts) the current
value outputted by the device.
yes = toggle previous output value
no = do nothing
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.
yes/no
LED
yes/no
Interface
yes/no
Button
Splitter
Description
Splitter
LED
yes/no
yes/no
yes/no
yes/no
Toggle
yes/no
yes/no
yes/no
yes/no
2-Input Logic
Frank Vahid, UC Riverside
10
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
From motion
sensor
A
From light
sensor
B
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
Frank Vahid, UC Riverside
A
B
no
no
yes
yes
no
yes
no
yes
Logic
Output
no
no
no
no
yes
yes
yes
yes
11
Building eBlocks Systems
Build the Garage Door Open at Night System Using eBlocks
We want to detect night –
use light sensor
Configure Logic Block to
Need something to indicate
turn led on when it’s night
garage open at night – use
and when door is openled
Light Sensor
yes/no
Magnetic
Contact Switch
yes/no
yes/no
yes/no
yes/no
LED
2-Input Logic
yes/no
We want to know if garage
door open – use contact
switch
Need a function of light
sensor output and contact
switch output – use Logic
Block
Plug pieces together and the
system is done!
Frank Vahid, UC Riverside
12
Current Status: Working Prototypes
Garage Door Open at Night
(wired solution)
Light Sensor
LED
Outside
Magnetic
Contact
Switch
At garage
door
2-Input Logic
Inside
house
Garage Door Open at Night
(wireless solution)
Light Sensor
wireless
TX
Outside
Magnetic
Contact
Switch
2-Input Logic
wireless
RX
LED
Inside house
At garage
door
Frank Vahid, UC Riverside
13
eBlock System Implementations
Cafeteria Food Alert
LED
LED
Splitter
2-Input Logic
Toggle
Button
Button
Service Line
Kitchen
Frank Vahid, UC Riverside
14
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
15
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
d
0%
Completed
29%
Completed
100%
Not
Completed
71%
Without eBlocks, and 3 weeks
Complete
d
100%
With eBlocks, 1 hour
Frank Vahid, UC Riverside
16
Conclusions and Future Work
eBlocks
Can be used by regular people to construct useful class of embedded systems
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
No programming or electronics experience
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
Frank Vahid, UC Riverside
17