170 likes | 283 Views
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
E N D
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
Introduction – A Typical Problem Garage door Garage door left open at night Oops! Frank Vahid, UC Riverside
LED rx tx AND light sensor contact switch 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 Frank Vahid, UC Riverside
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? What are the connections – ground, power, data, address? Use a wireless tx/rx or a transceiver? Do we need a antenna or amplifier? 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? Frank Vahid, UC Riverside
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? 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 Frank Vahid, UC Riverside
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 Completed 29% Not Completed 71% Frank Vahid, UC Riverside
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
tx contact switch light sensor logic rx “Smart dust” Getting awfully small... light sensor Courtesy of Joe Kahn light sensor tx LED LED LED light sensor logic tx rx 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 Frank Vahid, UC Riverside
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
Magnetic Contact Switch yes/no Light Sensor yes/no yes/no Button yes/no LED yes/no Splitter yes/no yes/no yes/no yes/no yes/no yes/no Toggle yes/no yes/no yes/no 2-Input Logic Defining Basic eBlocks – Partial Catalog Frank Vahid, UC Riverside
Output B A A Logic From motion sensor no no no yes B From light sensor no yes no yes yes no no yes yes yes no yes 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 Frank Vahid, UC Riverside
yes/no yes/no yes/no 2-Input Logic Configure Logic Block to turn led on when it’s night and when door is open We want to detect night – use light sensor Need something to indicate garage open at night – use led Light Sensor Light Sensor yes/no yes/no LED LED yes/no yes/no yes/no yes/no yes/no yes/no yes/no yes/no 2-Input Logic 2-Input Logic Magnetic Contact Switch Magnetic Contact Switch yes/no yes/no Need a function of light sensor output and contact switch output – use Logic Block We want to know if garage door open – use contact switch Building eBlocks Systems • Build the Garage Door Open at Night System Using eBlocks Plug pieces together and the system is done! Frank Vahid, UC Riverside
Garage Door Open at Night (wireless solution) wireless TX Light Sensor wireless RX Outside LED 2-Input Logic Magnetic Contact Switch Light Sensor LED Inside house Outside Inside house 2-Input Logic Magnetic Contact Switch At garage door At garage door Current Status: Working Prototypes Garage Door Open at Night (wired solution) Frank Vahid, UC Riverside
LED LED Splitter Toggle 2-Input Logic Button Button Service Line Kitchen eBlock System Implementations • Cafeteria Food Alert Frank Vahid, UC Riverside
Battery Lifetimes • Off the shelf 9V battery • Power down PIC when it is idle • Use sampling techniques to reduce HW energy cost Frank Vahid, UC Riverside
Completed 29% Not Completed 71% Completed 100% Without eBlocks, and 3 weeks With eBlocks, 1 hour 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 Frank Vahid, UC Riverside
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 Frank Vahid, UC Riverside