Introduction to Embedded Systems - Dr. Jeff Jackson

7 downloads 67 Views 331KB Size Report
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