2. 2
Introduction
•Definition of Computer system
•Definition of Embedded system
•How are embedded systems designed?
(Hardware and Software)
•Critical Design challenges
3. 3
Definition of a Computer System
A Computer is a system that has following
or more hardware Components:
• A microprocessor
• Large memory comprising
(i) Primary Memory (ROM, RAM, Cache)
(ii) Secondary memory (HDD, CDROM, FDD,
Cartridge tapes)
• Input devices (KB, Mouse, Digitizer,
Scanner)
• Output devices (Video Monitor, Printer)
• Networking Card (Ethernet LAN)
• I/O Units (Modem, Fax cum Modem)
4. 4
Definitions of Embedded System
• An Embedded System has computer
hardware with Software embedded in it as
one of its most important components.
• Dedicated computer based system for a
given application or product.
• It might be either an Independent System
or
• Part of a larger System.
• Software embeds in ROM. Does not need
any Secondary Memory.
5. 5
Definitions Continued……….
• Todd D. Morton: Author - Embedded
µC(s)
• Embedded Systems are electronic
systems that contains a µP or µC. But, we
do not think of them as computers.
• The computer is hidden or embedded in a
system.
6. 6
Definitions Continued……….
• Tim Wilmshrust: Author – An Introduction to
design of small scale Embedded Systems.
• An Embedded System is a system whose
principal function is not computational, But
which is controlled by a computer
embedded with-in it.
• The Computer is likely to be a µP or µC.
7. 7
Definition of Embedded System
(Continued)
• An Embedded System is a µC based,
• Software driven, Reliable, Real time
control system,
• Autonomous or Human or Network
interactive,
• Operating on diverse physical variables
and in diverse / hostile environments
• Sold into a competitive & Cost conscious
market
8. 8
Embedded World!
• Embedded processors account for 99% of
world-wide microprocessor production !
• Embedded : desktop = 99 : 1
9. 9
Embedded Systems
• The embedded
system is
completely enclosed
in the main system.
• It does not interact
directly with the
environment.
• For example – a
micro-computer in a
car ignition control.
10. 10
What is an Embedded System?
• Embedded systems are more limited in
hardware and/or software functionality than a
personal computer.
• An embedded system is designed to perform
a dedicated function.
• An embedded system is a computer system
with higher quality and reliability
requirements than other types of computer
systems.
11. 11
A Real Embedded (Indeed)
• Simple, not much overhead
• Robust, reliable, ready
• Protocol sensitive
• Ubiquitous (Ever-present)
• Acts within the system
• Does not react directly with
environment
• Works real time
• Senses the sensors, processes
the input, actuates the
actuators.
12. 12
Embedded System?
• Computational
– but not first-and-foremost a computer
• Integral with physical processes
– sensors, actuators
• Reactive
– at the speed of the environment
• Heterogeneous
– hardware/software, mixed architectures
• Networked
– shared, adaptive
13. 13
Embedded Systems: Common Situation
• Different hardware devices and architectures
• Increased complexity
• Non-standard tools and design processes
• Redundant development efforts
• Increased R&D and sustaining costs
• Lack of standardization results in greater quality
risks
14. 14
Embedded Systems and their Markets
Market Embedded Device
Automotive Ignition System, Engine Control, Brake System
Consumer
Electronics
Digital and Analog Televisions, Set-Top Boxes,
Kitchen Appliances, Toys/Games, Telephones/Cell
Phones/Pagers, Cameras, GPS
Industrial
Controls
Robotics and Manufacturing Controls
Medical Infusion Pumps, Dialysis Machines, Prosthetic
Devices, Cardiac Monitors
Networking Routers, Hubs, Gateways
Office
Automation
Fax Machine, Photocopier, Printers, Monitors,
Scanners
15. 15
Components of Embedded System
• It has Hardware
• Main Application Software-may perform
concurrently the series of tasks or multiple tasks
• Real Time Operating System (RTOS)
Supervises the Application Software,
Provides a mechanism to let the processor run a
process as per scheduling and
do the context switch between the various
processes (tasks).
16. 16
Components of an Embedded System Hardware
Power Supply, Reset and Oscillator Circuits
System Application Specific Circuits
InputDevicInterfacing/
DriverCircuits
OutputInterfa
DriverCircuits
Processor
Program
Memory &
Data
Memory
Timers
Interrupt
Controller
Parallel
Ports
Serial
Comm
Ports
17. 17
RTOS in an Embedded System
• Has a Kernel. Kernel coordinates the use of
Processor for multiple tasks that are in ‘Ready’
State such that only one task is in ‘Running’ State
• Kernel schedules the transition of a task from
– ‘Ready’ to ‘Running’ state
– Also, from ‘Blocked’ to ‘Running’ state
(Preemptive scheduling)
• Kernel schedules and dispatches a task to different
State than the present State
18. 18
RTOS in an Embedded System
• Kernel Controls the inter-process (task)
messaging and sharing of variables, queues and
pipes.
• It schedules their working and execution by
following a plan to control the latencies and Meet
hard deadlines.
• RTOS has to be scalable. Memory is optimized by
including only those parts of the “code” which are
needed in the final software
19. 19
Hard / Soft Real-Time Systems
• Soft Real-Time System
– Compute output response as fast as possible,
but no specific deadlines to be met.
• Hard Real-Time System
– Output response must be computed by specified
deadline or system fails
20. 20
Selection of RTOS
• Requirements
• Latencies
• Tool Support
• Processor Support
• Type of Delivery
• Inter Process Communication
• Memory Management
• Power Management
21. 21
Design of Embedded Systems
• Task partitioning between hardware and
software
• Hardware design and integration
• Software development
• System integration
• Test strategies
22. 22
Hardware-Software Partitioning
Some tasks could be performed using
hardware or software.
Example:
A system receiving data packets needs to
calculate a Cyclic Redundancy Check (CRC)
value. If the packet is OK, an ACK signal
should be sent within a specified time.
CRC could be calculated in S/W or by
dedicated H/W.
23. 23
Criteria for choice between
H/W and S/W
• Hardware adds a “per unit” cost.
• Software adds a “fixed cost”.
• Hardware provides speed.
• Software provides flexibility.
• Software solution can reduce cost – at
least when production is in high
volume.
• Hardware solution used when fast
response is required.
24. 24
Example of CRC check
Choice depends on how much time we have for
sending the ACK signal.
If S/W is too slow, we have no choice – H/W
must be used.
If S/W can meet the timing spec., we could
use S/W.
S/W solution needs Real Time guarantee.
25. 25
Hardware Design
• Since a micro-controller in an embedded
system will run just one program all the
time, hardware resources must be
matched to needs of the application.
• Modern technology has made it possible
to put the entire electronics – inclusive
of sensors, analog circuits, digital
circuits, DSP etc. on a single chip.
(System On a Chip or SoC).
26. 26
Hardware Design Challenges
• Compatibility of the entire system
• Interface design (linear to digital,
asynchronous to synchronous etc.)
• Low power design
• Modularity and ability to upgrade the system
in the field.
• Time to market
27. 27
Low Power Design
Especially important in 3 cases:
1. Battery operated and mobile systems – e.g.
a portable MP3 music player
2. Systems with a limited power source –
such as a smart public call booth which
derives power from phone lines.
3. High complexity and speed systems –
where heat dissipation is a problem
28. 28
Low Power Design Techniques
• Power smart blocks which go to a low
power or off mode when not in use.
• Reduced voltage swing on loaded
buses.
• Coding schemes which minimize the
number of transitions on signal lines.
• Reduced activity (toggling) .
• Reduced capacitances.
• Superior device engineering.
29. 29
Software Design
• Software must provide the algorithms etc.
needed for implementing the applications.
• These algorithms often have an impact on
the choice of hardware as well.
For example, whether a DSP processor
should be used or not.
• Most embedded system software needs to
be real time software.
30. 30
Generic Requirements
• Software must be
– Modular
– Should be reusable, adaptable
– Well documented
• In embedded systems, hardware and
software design must go hand in hand
31. 31
Considerations in
Software Development
• Choice of assembly language versus
high level languages
Most systems use high level languages these
days.
However, embedded system software needs to
be much more “hardware aware” than generic
software.
It is not uncommon to find assembly language
inserts in high level language software.
32. 32
Real Time Systems
• Real time systems have to guarantee that
they will respond to an external event within
a specified amount of time.
• Real Time systems don’t have to be “real
fast”. They do have to be reliably “on time”.
34. 34
Type of Real Time Systems
Based on the type of timing guarantee
they provide, real time systems are
classified as
“soft real time”
or
“hard real time”.
35. 35
Soft Real Time Systems
• Soft real time systems provide a time
guarantee, but missing an event is not
catastrophic.
• For example, image decoding used during
satellite TV reception must be completed
within a “frame time”.
• If this guarantee is missed, there will be a
visible glitch.
• Annoying – but not catastrophic!
36. 36
Hard Real Time Systems
• Hard real time systems are used when
missing a timing deadline will lead to
catastrophic results.
• For example, a missile guidance system
should not miss any events!
37. 37
So why use soft real time
systems at all?
• Both soft and hard real time systems
provide a real time guarantee. But if we can
afford to miss a few events, this guaranteed
response time can be much shorter.
• Soft real time systems would be used in
non-critical applications which need to be
very fast.
38. 38
Hard and Soft
Real Time Systems
The time guarantee provided by soft real
time systems is statistical in nature –
whereas that provided by hard real time
systems is absolute.
Design of soft real time systems optimizes
average case response – whereas hard real
time systems must be designed for worst
case situations.
39. 39
Is real time software any different?
• Interrupt handling has to be specially
careful.
• Since interrupt handling and task
scheduling is done at the operating system
level, special real time compliant operating
systems should be used.
40. 40
Constraints in Embedded Applications
(1) Functionality: with-in available System Memory
and Processor Speed
(2) Complex Algorithms: As in an Automobile
Engine - Performs complex filtering functions to
optimize performance of the car while
minimizing pollution & Fuel utilization.
(3) User Interface: Multiple GUI Menus / Options,
Moving Maps in Global Positioning System,
Navigation needs sophisticated User Interface
User inputs from front panel / Remote LAN port
41. 41
Constraints in Embedded Applications
(4) Meet hard deadlines: Missing deadlines in Real
time
(i) Could break a system (if data is not ready)
(ii) Could cause unsafe operation, endanger lives
(iii) Results in unhappy customers: Missed
deadline in Printer printing a Scrambled Page
42. 42
Constraints in Embedded Applications
(5) Multi-Rate: Several activities having slow and
high rates being processed simultaneously.
Example: Audio and Video portions of a
multimedia stream run at different rates. But, they
must remain closely synchronized with-in 160 mS
Failure to meet deadline on either the audio or
video portion spoils the perception of entire
presentation.
43. 43
Constraints in Embedded Applications
(6) Manufacturing Cost: Total cost of building
system is important.Cost is determined by the type
of processor, memory size and peripherals
devices.
(7) Limited Power consumption: Large Power
increases thermal rise, cost and size of product.
If Battery powered, may affect battery life.
44. 44
Software Components
• Device drivers
• Schedulers
• Real time routines
• Non real time routines
• Inter process communications
– Pipes
– Semaphores etc
• Watchdog timers
It is any device that includes a programmable computer, but is not itself intends to be a general purpose computer. Fax Machine or a Clock built from a μP is an Embedded System.
The word Embedded implies that it lies inside the overall system, hidden from View, forming an integral part of greater whole.
Latency is the waiting period between running the code of a task and the instance at which the need for the task arises. RTOS sets the rules during the execution of software. A small scale embedded system may not need a RTOS.