Embedded Systems: Introduction Prof. Santanu Chaudhury Prof. Wajeb Gharibi
Syllabus Overview of Embedded Systems; Embedded System Architecture: Processor Examples - ARM, PIC, etc.; features of digital signal processor; SOC, memory sub-system, bus structure (PC-104, I2C etc.), interfacing protocols (USB, IrDA etc), peripheral interfacing; testing & debugging, power management; Embedded System Software: Program Optimization, Concurrent Programming, Real-time Scheduling and I/O management; Networked Embedded Systems: special networking protocols (CAN, Bluetooth); Applications.
Books Computers as components: Principles of Embedded Computing System Design, Wayne Wolf, Morgan Kaufman Publication, 2000 ARM System Developer’s Guide: Designing and Optimizing System Software, Andrew N. Sloss, Dominic Symes, Chris Wright, , Morgan Kaufman Publication, 2004. Design with PIC Microcontrollers, John B. Peatman, Pearson Education Asia, 2002 The Design of Small-Scale embedded systems, Tim Wilmshurst, Palgrave2003 Embedded System Design, Marwedel, Peter, Kluwer Publishers, 2004.
Definition Embedded system: any device that includes a computer but is not itself a general-purpose computer. Hardware and Software - part of some larger systems and expected to function without human intervention Respond, monitor, control external environment using sensors and actuators Typically, a embedded system will be targeted for a specific purpose and need to interact with external environments. This is the key distinguishing feature. Although some of the embedded systems can require some degree of general purpose functionality.
Embedding a computer Simplest model output analog input analog CPU mem This provides a very abstract, simplified view of the embedded systems. However, interfacing with the analog outside world is a critical component. mem Embedded computer
Examples Personal digital assistant (PDA). Printer. Cell phone. Automobile: engine, brakes, dash, etc. Television. Household appliances. Surveillance Systems.
Product: Palm Vx handheld Product: Palm Vx handheld. Microprocessor: 32-bit Motorola Dragonball EZ.
Product: Motorola i1000plus iDEN Multi-Service Digital Phone Product: Motorola i1000plus iDEN Multi-Service Digital Phone. Microprocessor: Motorola 32-bit MCORE.
Application examples Simple control: front panel of microwave oven, etc. Camera: Canon EOS 3 has three microprocessors. 32-bit RISC CPU runs auto-focus Analog TV: channel selection, etc. Digital TV: Decompression, Descrambling, etc.
Automotive embedded systems Today’s high-end automobile may have 100 microprocessors: 4-bit microcontroller checks seat belt; microcontrollers run dashboard devices; 16/32-bit microprocessor controls engine.
Example:Automobile sensor sensor brake brake hydraulic pump Automated Braking System brake brake sensor sensor
Characteristics of embedded systems Sophisticated functionality. Real-time operation (always?). Low manufacturing cost. Application dependent Processor (?) Restricted Memory Low power. Power consumption is critical in battery-powered devices. Excessive power consumption increases system cost even in wall-powered devices. Manufacturing cost has different components. Non-recurring Engineering cost for design and development; cost of production and marketing each unit; best technology choice will depend on the number of units we plan to produce.
Manufacturing Cost Manufacturing cost has different components. Non-recurring Engineering cost for design and development; cost of production and marketing each unit; Best technology choice will depend on the number of units we plan to produce
Real-time operation Must finish operations by deadlines. Hard real time: missing deadline causes failure. Soft real time: missing deadline results in degraded performance. Many systems are multi-rate: must handle operations at widely varying rates. Operating Systems handle these components
Application dependent requirements Fault-tolerance Continue operation despite hardware or software faults Safe Systems to avoid physical or economic damage to person or property
More Features Dedicated systems Predefined functionality – accordingly hardware and software designed Programmability rarely used during lifetime of the system Real-time, fault-tolerant, safe
More Examples
Product: Programmable Digital Thermostat. Microprocessor: 4-bit
Product: Vending machine. Web-enabled Cash-less Vending machine Motient Corp. and USA Technologies Microprocessor: 8-bit Motorola 68HC11.
Product: Automatic toothbrush. Microprocessor: 8-bit Zilog Z8.
Product: NASA's Mars Sojourner Rover. Microprocessor: 8-bit Intel 80C85.
Product: GPS Receiver. Microprocessor: 16-bit.
Product: MP3 Player. Microprocessor: 32-bit RISC.
Product: DVD player. Microprocessor: 32-bit RISC.
Product: Sony Aibo ERS-110 Robotic Dog Product: Sony Aibo ERS-110 Robotic Dog. Microprocessor: 64-bit MIPS RISC.
Types of Embedded System Similar to General Computing PDA, Video games, Set-top boxes, automatic teller machine Control Systems Feed-back control of real time systems Vehicle engines, flight control, nuclear reactors Signal Processing Radar, Sonar, DVD players Communication and Networking Cellular phones, Internet appliances
Nature of System Functions Control laws Sequencing Logic Signal Processing Application Specific Interfacing Fault Response
More Complete Model Architecture
Implementing Embedded System Hardware Processing Element Peripherals Input & Output Devices Interfacing Sensors & Actuators Interfacing Protocols Memory Bus Software System Software Application Hardware Software Partitioning of tasks
Higher Degree of Integration Hardware Evolution Systems-on-Chip Application Specific Processors DSP General Purpose Microprocessors & Micro-controllers Faster Clock Rate Higher Degree of Integration
Software Programs must be logically and temporally correct Must deal with inherent physical concurrency Reactive systems Reliability and fault-tolerance are critical issues Application Specific and single purpose
Multi-Tasking and Concurrency Embedded systems need to deal with several inputs and outputs and multiple events occurring independently. Separating tasks simplifies programming, but requires somehow switching back and forth among different tasks (multi-tasking). Concurrency is the appearance of simultaneous execution of multiple tasks.
Example: Concurrency in Temperature Controller
Challenges in embedded system design How much hardware do we need? What is word size of the CPU? Size of Memory? How do we meet our deadlines? Faster hardware or cleverer software? How do we minimize power? Turn off unnecessary logic? Reduce memory accesses?
Embedded System Design
Design goals Performance. Functionality and user interface. Overall speed, deadlines. Functionality and user interface. Manufacturing cost. Power consumption. Other requirements (physical size, etc.)
Functional vs. non-functional requirements output as a function of input. Non-functional requirements: time required to compute output; size, weight, etc.; power consumption; reliability; etc.
Design & Development Process requirements specification architecture component design system integration
Top-down vs. bottom-up Top-down design: Bottom-up design: start from most abstract description; work to most detailed. Bottom-up design: work from small components to big system. Real design uses both techniques.
Stepwise refinement At each level of abstraction, we must: analyze the design to determine characteristics of the current state of the design; refine the design to add detail.
Concluding Remarks Embedded computers are all around us. Many systems have complex embedded hardware and software. Embedded systems pose many design challenges: design time, deadlines, power, etc. Design methodologies help us manage the design process.