Title: First Results with eBlocks: Embedded Systems Building Blocks
1First 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
2Introduction A Typical Problem
Garage door
3Introduction A Typical Problem
Garage door left open at night
Oops!
4Introduction 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
5Introduction Solution is not so easy
- Find components
- Parts catalogs, from different vendors, many
varieties - Intended for specialists
- Read datasheets to understand components
- 10s to 100s of pages
- Intended for specialists
6Introduction 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
7Introduction 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
Completed 29
Not Completed 71
8Introduction 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
dont exist, or are too costly - Low volume, or custom designed
9Introduction 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
tx
tx
10Design 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
11Defining Basic eBlocks Partial Catalog
eBlock Diagram Description Interface
Magnetic 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.
12Defining 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
- Cant 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
13Building eBlocks Systems
- Build the Garage Door Open at Night System Using
eBlocks
Plug pieces together and the system is done!
14Current Status Working Prototypes
Garage Door Open at Night (wired solution)
15eBlock System Implementations
16Battery Lifetimes
eBlocks Energy/day (J/day) Energy/day (J/day) Lifetime
eBlocks PIC HW Lifetime
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
- Off the shelf 9V battery
- Power down PIC when it is idle
- Use sampling techniques to reduce HW energy cost
17eBlock 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
18Conclusions 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