Intr Embedded System

Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

Introduction

EE8205: Embedded Computer Systems


http://www.ee.ryerson.ca/~courses/ee8205/
Dr. Gul N. Khan
http://www.ee.ryerson.ca/~gnkhan
Electrical and Computer Engineering
Toronto Metropolitan University
Overview
• Embedded Software Systems: Course Management
• Real-time and Embedded Systems
• Embedded System Applications
• Characteristics of Embedded Systems
Text by Wolf: part of Chapter 1, Text by Navabi: part of Chapters 8 and 9

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 1


Computer Engineering

EE8205: Embedded Computer Systems


http://www.ee.ryerson.ca/~courses/ee8205/

Instructor: Dr. Gul N. Khan


Email: gnkhan@ee.ryerson.ca
URL: http://www.ee.ryerson.ca/~gnkhan/
Telephone: 416 979-5000 ext. 556084, Office: ENG448
Office Hours: Tuesday 2:00-3:00PM and by appointment

Department of Electrical and Computer Engineering


Toronto Metropolitan (Ryerson) University

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 2


Lectures and Projects
Lecture Material
• You will need to take notes from lectures and also require text-
reference books and some research articles identified by the instructor.

Labs and Projects


• Aimed at concept reinforcement and practical research experience.
Lecture, Labs, Projects, and other Material is available at
the course website: http://www.ee.ryerson.ca/~courses/ee8205/

Assessment and Evaluation


Labs: 20%
Project: 40%
Final Exam: 40%

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 3


Course Text-Reference Books and other Material
• M. Wolf, Computers as Components:
Principles of Embedded Computing System Design, 4th Edition,
Morgan Kaufman/Elsevier Publishers 2016, ISBN 978-0-12-805387-4
• Daniel W. Lewis, Fundamental of Embedded Software with ARM Cortex M3,
2nd Edition, Pearson 2013, ISBN 978-0-13-291654-7
• Z. Navabi, Embedded Core Design with FPGAs, McGraw-Hill, 2007,
ISBN-13: 9780071474818 (ISBN-10: 0071474811)
• D. C. Black, J. Donovan, B. Bunton & A. Keist, SystemC: From the Ground
Up, 2nd Edition, 2010, ISBN 978-0-387-69958-5
• F. Vahid & T. Givargis, Embedded System Design, 1st Edition John Wiley
2002, ISBN 0-471-38678-2
• Alan Burns and Andy Wellings, Real-time Systems & Programming
Languages, Addison-Wesley 2001, ISBN 0 201 72988 1
Embedded Processors and Micro-controllers Data Sheets are available at the
Course Website http://www.ee.ryerson.ca/~courses/ee8205/

In addition to the text/reference books, lectures may contain material from research articles
to be identified by the instructor.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 4


Course Content and Topics
• Introduction to Embedded Computer Systems
Text by Wolf: part of Chapter 1, Text by Navabi: part of Chapters 8, 9
• Hardware Software Codesign of Embedded Systems
Text by Wolf Chapter 8 and Support Material from the course web page
• SystemC and Embedded System Co-design
Text by Wolf: part of Chapter 7, Research & SystemC Articles
• Embedded CPU and IP Cores
Text by Wolf: part of Chapters 2, 3 and 4
• ARM Cortex M3 Microcontroller & its Embedded Applications
Text by Lewis: part of Chapters 5-8, Wolf: Chapter 2
• Real-time Operating System and Scheduling
Textbooks by Lewis Chap 9 and 10, Wolf: Chap 6, Burns & Wellings: part of Chap 13
• Hardware Software Co-synthesis of Embedded Systems
Text by Wolf: Chapter 8 and Support Material from the course web page
• Fault-tolerant Embedded Systems
Text by Burns and Wellings, part of Chapter 5 and Support Material at the Webpage
• Introduction to Embedded SoC & Embedded System on Programmable Chips (FPGA)
Text by Navabi: part of Chapters 6, 7. Articles and Support Material at course web page
(if time permits)
• Digital Camera and other Embedded System Case Studies
Text by Vahid & Givargis: Chapter 7, Text by Wolf: part of Chapter 8

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 5


Introduction
• What are Embedded Systems?
• Challenges in Embedded Computing System Design
• Design Methodologies
Main Aim of the Course
• To introduce embedded computer systems
▪ Software and hardware components of an embedded system
• To understand real-time operating systems
• Embedded Computer Architecture
• Hardware Software Codesign
Ideally Student should have the knowledge of:
• Basics of Programming C or C++ and Computer Architectures
• Introduction to Operating Systems

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 6


What is an Embedded/Real-time System?
Most real-time systems (RTS) are also embedded systems.
• An embedded system is an information processing system
that responds to externally generated input stimuli within a
finite and specified period.
▪ The correctness depends not only on the logical result but also
the time it was delivered
▪ Failure to respond is as bad as the wrong response!
• Embedded system: any device that includes a programmable
computer but is not itself a general-purpose computer.
• Take advantage of application characteristics to optimize the
design:

Don’t need all the general-purpose bells and whistles.


© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 7
Embedding a Computer

Digital
Output Analog

Analog
Input
CPU Digital

Embedded Mem
Computer

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 8


Embedded Systems
• Electronic devices that incorporate a computer (usually a
microprocessor) within their implementation.
• A computer is used in such devices primarily as a means to
simplify the system design and to provide flexibility.
• Often the user of the device is not even aware that a
computer is present.
• Embedded Systems Rule the World
▪ Embedded processors account for 100% of worldwide
microprocessor production.
▪ Embedded:desktop = 100:1
▪ 99% of all processors are for the embedded systems market.
▪ Number of embedded processors in a typical home is
estimated at 50-60.
(A recent ACURA Model has more than 50 processors)
© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 9
Embedded CPU Applications

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 10


Some Embedded and PC Systems

▪ Cell phones, PCs and


TVs manufactured
and shipped per year.
▪ More than 1 billion
cell phones shipped
in 2006 as compare
200 million PCs.
▪ A 2006 survey of
U.S. families found
that they owned on
average 12 gadgets

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 11


Early History of Embedded Systems
• First microprocessor was Intel 4004 in early 1970’s.
• HP-35 calculator used several chips to implement a
microprocessor in 1972.
• Automobiles used microprocessor-based engine
controllers starting in 1970’s.
▪ Control fuel/air mixture, engine timing, etc.
▪ Multiple modes of operation: warm-up, cruise, hill climbing, etc.
▪ Provides lower emissions, better fuel efficiency.
• Microcontroller: includes I/O devices, on-board memory.
• Digital signal processor (DSP): microprocessor optimized
for digital signal processing.
Typical embedded word sizes: 8-bit, 16-bit, and 32-bit.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 12


A Typical Embedded System

Real- Engineering
Time
Algorithms for Interface
Clock Digital Control System

Data Logging Remote


Monitoring System

Database

Data Retrieval Display


and Display Devices

Operator Operator
Console Interface

Embedded Computer

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 13


Real Time Systems
• Real-time systems (RTS) process events.
• Events occurring on external inputs cause other events to
occur as outputs.
• Minimizing response time is usually a primary objective, or
otherwise the entire system may fail to operate properly.
Types of Real Time System
• Hard real-time — e.g. Flight control systems.
• Soft real-time — e.g. Data acquisition system.
• Real real-time — e.g. Missile guidance system.
• Firm real-time

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 14


Types of Real Time System
• Hard real-time — systems where it is absolutely imperative that
responses occur within the required deadline.
For example: Flight control systems.
• Soft real-time — systems where deadlines are important, but
which will still function correctly if deadlines are occasionally
missed. For example: Data acquisition system.
• Real real-time — systems which are hard real-time and which
the response times are very short.
For example: Missile guidance system.
• Firm real-time — systems which are soft real-time but in which
there is no benefit from late delivery of service.
A single system may have all hard, soft, and real real-time subsystems.
In reality many systems will have a cost function associated with
missing each deadline.
© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 15
Multi-Tasking and Concurrency
• Most real-time systems are also embedded systems with several
inputs and outputs and multiple events occurring independently.
• Separating tasks simplifies programming but requires somehow
switching back and forth among the three tasks (multi-tasking).
• Concurrency is the appearance of simultaneous execution of
multiple tasks.
Concurrent Tasks for a Thermostat
/* Monitor Temperature */ /* Monitor Time of Day */ /* Monitor Keypad */
do forever { do forever { do forever {
measure temp ; measure time ; check keypad ;
if (temp < setting) if (6:00am) if (raise temp)
o
start furnace ; setting = 72 F ; setting++ ;
else if (temp > else if (11:00pm) else if (lower temp)
o
setting + delta) setting = 60 F ; setting-- ;
stop furnace ; } }
}

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 16


Embedded System Applications
Aerospace Navigation systems, automatic landing
systems, flight attitude controls, engine
controls, space exploration
(e.g., the Mars Pathfinder).
Automotive Fuel injection control, passenger environmental
controls, anti-lock braking, air bag controls,
GPS mapping.
Children's Nintendo's "Game Boy", Mattel's "My
Toys Interactive Pooh", Tiger Electronics’ "Furby".

Communi- Satellites; network routers, switches, hubs.


cations
© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 17
Embedded System Applications

Computer Printers, scanners, keyboards, displays,


Peripherals modems, hard disk drives, CD/DVD-ROM
drives.
Home Dishwashers, microwave ovens, VCRs,
televisions, stereos, fire/security alarm
systems, lawn sprinkler controls, thermostats,
cameras, clock radios, answering machines.

Industrial Elevator controls, surveillance systems,


robots.
Instrumen- Data collection, oscilloscopes, signal
tation generators, signal analyzers, power supplies.
© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 18
Embedded System Applications

Medical Imaging systems (e.g., XRAY, MRI, and


ultrasound), patient monitors, and heart
pacers.
Office FAX machines, copiers, telephones, and
Automation cash registers.

Personal Personal Digital Assistants (PDAs),


pagers, cell phones, wristwatches, video
games, portable MP3 players, GPS.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 19


Embedded Real-Time Software Examples
Property FAX Machine CD/DVD Player
Microprocessor: 16-bit 16-bit
Number of Threads: 6 9-12
Read-Write Memory 2048 Bytes 512 Bytes
(RAM):
Total RAM Actually Used: 1346 Bytes (66%) 384 Bytes (75%)
Amount Used by Kernel: 250 Bytes (19%) 146 Bytes (38%)
Read-Only Memory 32.0 KB 32.0 KB
(ROM):
Total ROM Actually Used: 28.8 KB (90%) 17.8 KB (56%)
Amount Used by Kernel: 2.5 KB (8.7%) 2.3 KB (13%)

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 20


Embedded System Examples
• Aircraft and jet engine control
• Satellites, Space crafts
• Nuclear reactor and power system control
• Networking devices like routers, switches etc.
• Personal digital assistant (PDA).
• Printer, Plotters etc.
• Cell phone
• Television and other Consumer Electronics
• Household appliances
• Automobile: engine, brakes, dash, etc.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 21


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

BMW 850i brake and stability control system


• Anti-lock brake system (ABS): Pumps brakes to reduce
skidding.
• Automatic Stability Control (ASC+T): Controls engine to
improve stability.
• ABS and ASC+T communicate.
ABS was introduced first---needed to interface to existing
ABS module.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 22


Embedded Systems and Automobile

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 23


Anti-lock Brake System (ABS)

Sensor Sensor

Wheel Wheel

Brake Brake

Hydraulic
ABS Pump

Brake Brake
Wheel Wheel

Sensor Sensor

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 24


Electrohydraulic Brake

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 25


Embedded System Application
Fluid Control System Interface

Pipe

Input flow Flow meter


reading

Processing

Valve
Output valve
angle
Time
Computer

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 26


Embedded System Applications
Programmable Digital Thermostat
Uses: 4-bit Microprocessor

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 27


Embedded System Applications
Miele Dishwashers
Microprocessor: 8-bit Motorola 68HC05

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 28


DVD Player

Microprocessor:
32-bit RISC

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 29


IBM Research’s Linux Wristwatch Prototype

Microprocessor
32-bit ARM RISC

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 30


Vitality’s GlowCap

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 31


Vitality’s GlowCap

• GlowCap has a
tiny Amtel 8-bit
picoPower AVR
Processor
• Help People to take
their medication on-
time.
• Sense when the
bottle is opened.
• Connect to Vitality
server and transmit
information
wirelessly.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 32


Intel WISP RFID

TIMSP430F1232: Low
Power Micro-controller

• 16-bit CPU
• 8 Kbytes of flash
memory
• 256 bytes of RAM
• 10-bit –ADC with
200 kilo-samples/second
• CPU can run at 8MHz
with 3.3V supply voltage

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 33


MAR’s Rovers
Pathfinder-1997, Spirit/Opportunity-2003 and Curiosity-2012

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 34


2003 MAR’S Rover
Spirit/Opportunity
• Use BAE Systems
RAD6000 32-bit
RISC Processor
• Radiation
hardened IBM
POWER series
6000 CPU
• Employ VxWorks
Embedded Real-
time Operating
System
from Wind River.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 35


Mars Rover RAD6000 Flight Computer
FPGA-based

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 36


MARS Rover 2020 - Perseverance Rover
Landed February 2021

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 37


Comparison of embedded Computer Systems
for Mars Rovers
Operating
Rover (mission,year) CPU RAM Storage
system
Sojourner Rover 2MHz Intel
512KB 176 KB Custom cyclic
(Pathfinder 1997) 80C85
executive
Pathfinder Lander (1997) 20MHz IBM 128 6 MB VxWorks
(Base station for Sojourner rover) RAD6000 MB (EEPROM) (multitasking)

20 MHz IBM 128 VxWorks


Spirit and Opportunity RAD6000 MB
256 MB
(multitasking)
(Mars Exploration Rover, 2004)

Curiosity (Mars Science 200 MHz IBM 256 VxWorks


2GB
Laboratory, 2011) RAD750 MB (multitasking)

Perseverance 200 MHz IBM


256 2GB VxWorks
2 Compute Elements RAD750 Flash Memory
MB 256KB EEPROM (multitasking)
(Mars Rover, 2020) Landed 2021 PowerPC 750

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 38


Characteristics of an RTS
• Large and complex — vary from a few hundred lines of assembler
or C to 20 million lines of Ada code estimated for the Space
Station Freedom
• Concurrent control of separate system components — devices
operate in parallel in the real world; better to model this
parallelism by concurrent entities in the program.
• Facilities to interact with special purpose hardware — need to be
able to program devices in a reliable and abstract way
• Extreme reliability and safe — embedded systems typically
control the environment in which they operate; failure to control
can result in loss of life, damage to environment or economic loss.
• Guaranteed response times — we need to be able to predict with
confidence the worst-case response times for systems; efficiency is
important, but predictability is essential

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 39


Characteristics of Embedded Systems
• Sophisticated functionality.
• Real-time operation.
• Low manufacturing cost.
• Low power.
• Designed to tight deadlines by small teams.

Functional complexity
• Often have to run sophisticated algorithms or multiple
algorithms.
Cell phone, laser printer.
• Often provide sophisticated user interfaces.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 40


Design goals
• Performance.
Overall speed, deadlines.
• Functionality and user interface.
• Manufacturing cost.
• Power consumption.
• Other requirements
(physical size, etc.)

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 41


Non-functional Requirements
• Many embedded systems are mass-market items that must
have low manufacturing costs.
• Limited memory, microprocessor power, etc.
• Power consumption is critical in battery-powered devices.
• Excessive power consumption increases system cost even in
wall-powered devices.
Power
• Custom logic is a clear winner for low power devices.
• Modern microprocessors offer features to help control
power consumption.
• Software design techniques can help reduce power
consumption.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 42


Power and Clock
Intel x86 Power Requirements
• Pentium-4 made a dramatic jump in power.
• Core-2 reverts to simpler pipeline with lower power.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 43


Platforms

Embedded computing platform: hardware architecture +


associated software.
Many platforms are multiprocessors.

Examples:
• Single-chip multiprocessors for cell phone base band.
• Automotive network + processors.

Heterogeneous systems:
• Some custom logic for well-defined functions
• CPUs+software for everything else

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 44


The Performance Paradox
Microprocessors use much more logic to implement a
function than does custom logic.

But microprocessors are often at least as fast:


• Heavily pipelined
• Large design teams
• Aggressive VLSI technology

In general-purpose computing, performance often means


average-case, may not be well defined.
In real-time systems, performance means meeting deadlines.
• Missing the deadline by even a little is bad.
• Finishing ahead of the deadline may not help.
© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 45
Characterizing Performance
We need to analyze the system at several
levels of abstraction to understand
performance:
• CPU
• Platform
• Program
• Task
• Multiprocessor

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 46


Design Goals
Reliability
• Mission Critical
• Life-Threatening Application
• 24/7/365 and cannot reboot!
Performance
• Multitasking and Scheduling
• Optimized I/O, Assembly Language
• Limits, Inaccuracies of Fixed Precision
Cost
• Consumer Market: Minimize Manufacturing Cost.
• Fast Time to Market Required
• No chance for future modification

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 47


Challenges in Embedded System Design
• How much hardware do we need?
▪ How big is the CPU? Memory?
• How do we meet our deadlines?
▪ Faster hardware or cleverer software?
• How do we minimize power?
▪ Turn off unnecessary logic? Reduce memory accesses?
Does it really work?
• Is the specification correct?
• Does the implementation meet the spec?
• How do we test for real-time characteristics?
• How do we test on real data?
How do we work on the system?
• What is our development platform?

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 48


Design Methodologies
• A procedure for designing a system.
• Understanding your methodology helps you ensure you didn’t
skip anything.
• Compilers, software engineering tools, computer-aided design
(CAD) tools, etc., can be used to:
▪ Help automate methodology steps;
▪ Keep track of the methodology itself.

Top-down 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

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 49


Summary

• 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.

© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 50


Where are we heading?
• Embedded Computer Systems
• Hardware Software Co-design of Embedded System
• Embedded CPUs and ARM Cortex M3/M4 Processors
• Cortex M3 Programming for Embedded Applications
• Real-time Operating System (RTX) and Scheduling
• SystemC and Hardware Software Co-design
• Embedded System Co-synthesis
• Embedded System on Programmable Chips
(if time permits)
• Fault-tolerant Embedded Computer Systems
• Embedded System Case Studies
• A Typical Embedded System Example
© G.N. Khan Embedded Computer Systems – EE8205: Introduction-to-Embedded Systems Page: 51

You might also like