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