270 likes | 283 Views
This thesis defense explores eBlocks, which are single-function electronic blocks that can be snapped together to build simple systems. The eBlocks have their own microcontroller and can be interfaced with external systems through Internet, telephone, and PDA connections. The eBlock Software Tools include a simulator and programmable eBlocks for easy construction and customization of systems.
E N D
External Interfaces and Software Tools for Electronic Blocks Shawn Nematbakhsh University of California, Riverside Thesis Defense Dr. Frank Vahid, Chairman Dr. Harry Hsieh Dr. Walid Najjar
eBlocks • WhatareeBlocks? • Single-function blocks that snap together to build useful simple systems. • Each block contains its own microcontroller to process data. • Three types of blocks: Input, output, computation. • Current protocol completely binary: YES/NO. • eBlock Project Goals • Allow construction of simple monitor/control systems in a short period of time. • Allow inexperienced users to build simple systems that would otherwise be impossible.
Overview • eBlock External Interfacing • Internet • Telephone • PDA • eBlock Software Tools • eBlock Simulator • Programmable eBlock • Sample Application • Parking Lot Monitor
eBlock External Interfacing • eBlock systems designed to be entirely self-contained. • Sensors, buttons, lights, buzzers, etc all implemented as stand-alone eBlocks • Would be useful to interface with external non-eBlock systems. • Devices and technologies already exist to perform tasks that would be inefficient to implement as stand-alone eBlocks. • Three interfaces created: Internet, Telephone, PDA.
Network eBlock • Intended for long-range monitoring of eBlock systems. • Takes input from eBlock system, output to ethernet interface. • On startup gets IP of listening host + gateway networking information from user. • Constantly streams UDP packets with eBlock status to listening host. Network eBlock
Network eBlock • Listening socket program on host defines behavior. • “Ships” with application outputting date/time of input change to web page. • Users can define own behavior with C API. • Many possible applications • Record and display every packet received. • Send email when “YES” packet is received. • Output packet data to IRC chat channel. • Any network application required – completely customizable.
Phone Dialer eBlock • Takes eBlock input, on startup is configured with a target telephone number. Connects to telephone line. • When ‘YES’ packet is received dialer opens line and calls target number, waits 30 seconds, and hangs up. • Intended for remote emergency alerts such as intrusion or disaster detection. Dialer eBlock
Phone Relay eBlock • “Reverse” of phone dialer block – takes a telephone input and outputs to an eBlock system. • User dialing in enters code to stream ‘YES’ or ‘NO’ packets to system. Packets sent continuously until next call. • Intended for remote control of eBlock systems • Sample application: toggling lights in house while on vacation to deter theft. Phone Relay eBlock
Palm Logger • Palm PDA application used to record history of input changes. • Data saved on Palm system in text file for later analysis. • eBlock input fed through converter device to translate TTL to RS232 for Palm use. • Solves problem of automatic monitoring of eBlock status.
eBlock Software Tools • eBlock External Interfacing • Internet • Telephone • PDA • eBlock Software Tools • eBlock Simulator • Programmable eBlock • Sample Application • Parking Lot Monitor
eBlock Simulator • eBlock simulator allows drag-and-drop layout and testing of eBlock systems. • Simulation-based testing of eBlock systems without physical construction, saving construction time. • Input, computation, and output blocks supported. • Input blocks simulated with user input toggling state. • Output blocks simulated with visual alerts. • Computation blocks display current state. • Stepwise simulation or real-time.
eBlock Simulator • As design is layed out, table keeps track of blocks and connections. Cycles disallowed. • Simulation algorithm: • Evaluate() produces block output based on inputs + block type. UpdateDisplay() changes display to reflect output. • Running time: O(V+E) (V=blocks,E=wires) because of topological sort • Simulate(table T[n]): • Ordered=TopologicalSort(T). • for i = 1 to n do • Evaluate(Ordered[i]) UpdateDisplay(Ordered[i]))
eBlock Simulator • eBlock Simulator widely used. • Basis for current version in use by over 500 people. • Allows worldwide eBlock use without distributing sets of physical blocks. • Simulator useful for testing and feedback. • Allows eBlock designers to judge user understanding of blocks. • Able to test and change block customization without physical construction. Ex: 2-input logic user interface. • Lack of cycles a limitation – certain systems cannot be simulated. • Software simulator generally well-liked by users. • What if physical systems could be built using the simulator interface?
Programmable eBlock Programmable eBlock • Idea: Use simulator to layout eBlock system. Replace multiple computation blocks with a single custom block synthesized to perform the same exact function for implementation.
Programmable eBlock Tool • Design laid out using simulator drag-and-drop interface. • Different input blocks replaced with “INPUT” point. • Output blocks replaced with “OUTPUT” point. • Represent input and output points into programmable block. • Once design completed, “SYNTHESIS” button is clicked. • Ordered table created from user’s design. • C struct representation copied into code file along with static code to step through table. • File is compliable using PICC to program onto a microcontroller without any code needing to be written by user. • Usable by advanced users or engineers without programming experience.
Programmable eBlock Tool • Algorithm: • GetOrdered runs on PC, produces ordered representation in C. • Step runs on microcontroller once each time a packet is received or timeout occurs. Both O(V+E). GetOrdered(table T[n]) Call Simulate(T) Keep Ordered array and output to C code Step (table Ordered[m]) for i=1 to m do eval[i] = Evaluate(Ordered[i]) output = eval[m] const struct block blocks[NUMBLOCKS]={{-1,-1,INPUT,0,0,0,0},{0,-1,SPLITTER,0,0,0,0},{1,-1,TOGGLE,0,0,0,0},{1,-1,INVERTER,0,0,0,0},{3,2,OR,0,0,0,0},{4,-1,OUTPUT,0,0,0,0}};
Programmable eBlock • After C code generation, PIC microcontroller can be programmed. • Zero programming knowledge required by user – simply compile and download to chip. • Programmable block implemented as enclosure with ZIF socket. • Allows easy chip placement after programming. • Problem: One UART per microcontroller. • Separate microcontroller needed for each set of inputs and outputs included. • Extra microcontrollers serve only to receive input and send output. • Communicate with single master microcontroller to perform all computation.
Virtual Blocks • Blocks in programmable eBlock tool do not necessarily have to exist at physical level. • Blocks implemented in C code for programmable block. • No need for stand-alone eBlock implementing the same function. • Size of virtual eBlock library does not have to be limited. • Selecting a virtual block from library as simple as selecting from menu and dragging. • Fine-grained functional blocks can be created without worry of bloat. • Certain blocks requiring user customization are easier to set by computer. Ex: dial-switch timer. • Programmable blocks can be a mix of actual physical blocks and “virtual blocks” which exist only in software.
Virtual Blocks • Two additional blocks created for programmable eBlock tool. • Sequencer block used for pattern matching of previous input. • Eight previous inputs represented with {‘1’, ‘0’, ‘*’}. • Ex: “*****101” outputs ‘YES’ only if previous input was ‘YES’, previous to that ‘NO’, previous to that ‘YES’. • Replaces gate-level pattern matching. • N-Timer block used to monitor time with continuous ‘YES’ packets received. • Value N from 1-59,999 specified by user • If only “YES” packets have been received for N continuous seconds then “YES” is outputted for one timeout period (2 secs).
Virtual Block Applications • Sequencer • Can be used for passcode systems. • Also useful for error correction – don’t sound alarm unless motion sensor detects several consecutive YES inputs. First input may be false alarm. • N-Timer • Useful for systems that perform long-range timing. • Difficult for users to easily specify large periods of time on-block: Dial and DIP switches don’t work well for customizing large values. • Best solution is to specify using computer – simply type desired value in.
Sample Application • eBlock External Interfacing • Internet • Telephone • PDA • eBlock Software Tools • eBlock Simulator • Programmable eBlock • Sample Application • Parking Lot Monitor
Parking Lot Monitor • Meter-free time-limited spaces usually monitored manually. • Chalk tire marks used to determine time elapsed. • Labor-intensive: Monitor must constantly walk around lots. • Automate parking lot monitoring using electronics. • Keep track of time elapsed in parking space. • Wirelessly alert car driver several minutes before expiration. • Wirelessly alert lot monitor at expiration.
Parking Lot Monitor from Traditional eBlocks • Infrared receiver / transmitter placed across parking space. • Logic blocks set to trigger when pulse goes low (time exceeded) and infrared beam is broken (car still in space). • Two extended pulse generators performing timing of deadline time and deadline time minus 5 minutes so driver gets chance to move car before time expires. Buzzer Buzzer IR Beam Tx Wireless Rx Block (to attendant) Pulse Gen. Block (deadline) 2-IN Logic Block (01) Wireless Tx Block Wireless Rx Block (to user) Pulse Gen. Block (deadline--) 2-IN Logic Block (01) Wireless Tx Block IR Rx Block Splitter Block
Parking Lot Monitor with Dialer • Dialer used to send alerts to user and monitor. • Advantage: Replaces six wireless receiver, transmitter, and buzzer blocks with two dialer blocks. • Advantage: Not range-limited like wireless eBlocks. • Advantage: Doesn’t require external buzzer to carry around. • Disadvantage: Requires user to have mobile phone. • Disadvantage: Requires phone line near parking space. IR Beam Tx Pulse Gen. Block (deadline) 2-IN Logic Block (01) Phone Dialer Pulse Gen. Block (deadline--) 2-IN Logic Block (01) Phone Dialer IR Rx Block Splitter Block
Parking Lot Monitor with Programmable eBlock • Replaces five blocks used for timing with a single programmable eBlock. • Programmable block created with splitter and two N-Timers. • Advantage: Five to one block reduction. • Advantage: Easier to design and understand for user. N- Time IR Beam Tx Split N- Time Phone Dialer Programmable eBlock IR Rx Block blocks[NUMBLOCKS]={{-1,-1,INPUT,0,0,0,0},{0,-1,SPLITTER,0,0,0,0},{1,-1,NCOUNTER,14,16,0,0},{1,-1,NCOUNTER,12,128,0,0},{2,-1,OUTPUT,0,0,0,0},{3,-1,OUTPUT,0,0,0,0}}; Phone Dialer
Parking Lot Monitor from Components • Parking lot monitoring system also implemented with traditional components. • With schematic from web, construction required 8.5 hrs compared to 1.25 hrs for traditional eBlock construction. • Microcontroller programming required for component version, but not necessary for eBlock construction. Component version not buildable for non-programmers. • Component version allows more flexibility, but eBlock design meets all requirements in this case.
Conclusion and Future Work • Conclusion • eBlocks have been expanded to use external interfaces, allowing a wide range of powerful new systems to be created. • eBlock software tools were created that are being built on and improved today. These tools allow large scale use and experiment on eBlocks, and are the basis for eBlock synthesis. • Future Directions • Expand the library of virtual blocks to include many more functions useful for systems. • Improve the synthesis tool to perform advanced optimizations such as design minimization and partitioning across multiple blocks.