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