Electrical & Computer Engineering – Embedded Systems. Embedded Systems ...
Early Embedded Systems History [1]. • One of the first recognizably modern ...
Embedded Systems Introduction to Embedded Systems
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-1
What is an Embedded System? • A computing system designed to perform one or more specific functions with specific system constraints • Example constraints may include: – Physical • Size – limited space for electronic or mechanical components • Weight – flight-based systems as an example
– Power – limited power supply (battery, solar only, zero power footprint, energy harvesting only systems, etc.) – Time – time constraints on code execution, system response – Cost
• It is embedded in the sense that it is part of a larger system often including both electronic and mechanical components Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-2
1
Embedded Systems Processor Characteristics • Embedded systems are controlled by one or more main processing cores [1]: – Microcontrollers – Digital signal processors (DSP)
• A key characteristic is being dedicated to handle a particular task – May require a single, very simple microcontroller • A 4-bit microcontroller acting as the window control unit in an automobile
– May require many, very powerful processors • Avionics control system for jet aircraft
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-3
Design Opportunities in Embedded Systems • Since embedded systems are dedicated to specific tasks: – Design engineers can optimize it to: • Reduce the size and cost of the product and • Increase the reliability and performance
1983 Cell Phone Electrical & Computer Engineering – Embedded Systems
2010 Cell Phone Dr. Jeff Jackson Lecture 1-4
2
Embedded Systems Physical Characteristics • Physically, embedded systems range from: – Portable devices like digital watches, cell phones and MP3 players, to – Large stationary installations like traffic lights, factory controllers, or the systems controlling nuclear power plants
• Complexity varies from: – Low, with a single microcontroller chip, to – Very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-5
Example Embedded Systems •
Consumer electronics – Personal digital assistants (PDAs), mp3 players, cell phones, videogame units, digital cameras, DVD players, EBook readers
•
Household appliances – Stoves, microwave ovens, refrigerators, washing machines and dishwashers – Typically include embedded systems to provide flexibility, efficiency and features
•
Home automation – Uses wired- and wirelessnetworking to control lights, climate, security, audio/visual, surveillance, etc. – All use embedded devices for sensing and controlling
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-6
3
Example Automotive Embedded Systems • Automobiles, electric vehicles, and hybrid vehicles are increasingly using embedded systems to: – Maximize efficiency and reduce pollution
• Other automotive systems include: – – – – – – – –
Anti-lock braking system (ABS) Electronic Stability Control (ESC/ESP) Traction control (TCS) Automatic four-wheel drive Tire pressure sensing system Automatic parallel parking system Entertainment system OnStar ® systems
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-7
Example Anti-lock Braking System Architecture [2]
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-8
4
Example Embedded Systems and the Processor Architecture Used
NASA Mars Sojourner Rover (1997) – Intel 8085 8-bit microprocessor
Vendo Vending Machine – M68HC11
Sonicare Plus Toothbrush – Zilog Z8 8-bit microprocessor
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-9
Early Embedded Systems History [1] • One of the first recognizably modern embedded systems was the Apollo Guidance Computer – Developed by Charles Stark Draper at the MIT Instrumentation Laboratory – Employed the then newly developed monolithic integrated circuits to reduce the size and weight
• An early mass-produced embedded system was the Autonetics D17 guidance computer for the Minuteman missile, released in 1961 – Built from transistor logic and had a hard disk for main memory – When the Minuteman II went into production in 1966, the D-17 was replaced with a new computer that was the first high-volume use of integrated circuits – This program alone reduced prices on quad NAND gate ICs from $1000/each to $3/each, permitting their use in commercial products
• The first microprocessor, the Intel 4004, was designed for calculators and other small systems but still required many external memory and support chips. Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-10
5
Embedded Systems Performance Requirements • Embedded systems are designed to do some specific task, rather than be a general-purpose computer for multiple tasks • Some also have real-time performance constraints that must be met, for reasons such as safety and usability • Others may have low or no performance requirements, allowing the system hardware to be simplified to reduce costs • A broad range of performance requirements – impossible to classify as a single group Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-11
Embedded Systems Programs • The program instructions written for embedded systems are often referred to as firmware – Various programming languages • C, C++, JAVA, assembly, etc.
• Usually stored in read-only (ROM) memory or flash memory, or other non-volatile storage • They execute with limited computer hardware resources – Little memory – Hard disk support (maybe) – Small or non-existent keyboard and/or screen Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-12
6
Processors in Embedded Systems • Embedded processors can be broken into two broad categories – Ordinary microprocessors (μP) and – Microcontrollers (μC), which have many more peripherals on chip, reducing cost and size
• Contrasting to the personal computer and server markets, a fairly large number of basic CPU architectures are used – Von Neumann as well as various degrees of Harvard architectures – RISC as well as non-RISC and VLIW
• Word lengths vary from 4-bit to 64-bits and beyond (mainly in DSP processors) although the most typical remain 8/16-bit • Most architectures come in a large number of different variants and shapes, many of which are also manufactured by several different companies Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-13
Typical Embedded Systems Peripherals • Embedded Systems talk with the outside world via peripherals – – – – – – – – –
Serial Communication Interfaces (SCI): RS-232, RS-485 etc. Synchronous Serial Communication Interface: I2C, SPI Universal Serial Bus (USB) Multi Media Cards (SD Cards, Compact Flash etc.) Networks: Ethernet, Controller Area Network, etc. Timers: PLL(s), Capture/Compare and Time Processing Units Discrete IO: General Purpose Input/Output (GPIO) Analog to Digital/Digital to Analog (ADC/DAC) Debugging: JTAG, BDM Port, etc
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-14
7
Embedded System Development Tools • Use of compilers, assemblers, and debuggers to develop embedded system software (ours will be GNU-based) • More specific tools might include: – In circuit debuggers – A checksum or CRC added to a program or data (validity check) – For DSP systems, developers may use a math workbench such MATLAB/Simulink to simulate the mathematics – Custom compilers and linkers for optimization for the particular hardware (C2H, etc.) – An embedded system may have its own special language or design tool, or add enhancements to an existing language – Another alternative is to add a real-time operating system or embedded operating system – Modeling and code generating tools often based on state machines
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-15
Embedded System Reliability • Embedded systems are commonly expected to run continuously for years without errors, and possibly recover by themselves if an error occurs • Software is usually developed and tested more carefully than that for personal computers • Specific reliability issues may include: – The system cannot safely be shut down for repair, or it is too inaccessible to repair • Space systems, undersea cables, navigational beacons, and automobiles.
– The system must be operational for safety reasons • Aircraft navigation, reactor control systems, safety-critical chemical factory controls, train signals, engines on single-engine aircraft
– The system will lose large amounts of money when shut down: • Telephone switches, factory controls, bridge and elevator controls, funds transfer Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-16
8
Basic Techniques to Improve Reliability • A variety of techniques are used, sometimes in combination, to recover from errors -- both software bugs such as memory leaks, and also soft errors in the hardware: – Watchdog timer that resets the computer unless the software periodically notifies the watchdog – Subsystems with redundant spares that can be switched over to – Software "limp modes" that provide partial function
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-17
Embedded Software Architectures • Software structure and complexity for an embedded system can vary significantly according to the application • Commonly used software architectures include: – – – –
Simple control loops Interrupt Controlled System Non-preemptive multitasking system Preemptive multitasking or multi-threading (includes real-time operating systems – RTOS) – Microkernels (a step up from an RTOS to include memory allocation, file system, etc.) – Monolithic Kernel (a relatively large kernel with sophisticated capabilities adapted to suit an embedded environment). Embedded Linux [3] and Windows CE [4], Mobile, and Embedded are examples Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-18
9
References 1. 2. 3. 4.
http://en.wikipedia.org/wiki/Embedded_system http://www.ireference.ca/search/brake-by-wire/ http://en.wikipedia.org/wiki/Embedded_Linux http://en.wikipedia.org/wiki/Windows_CE
Electrical & Computer Engineering – Embedded Systems
Dr. Jeff Jackson Lecture 1-19
10