Slide 1:
General Introduction to
Embedded Systems
By:
Dr. Mouaaz Nahas
Embedded Systems
802455
Umm Al-Qura University
Electrical Engineering Department
What is an embedded system?
General-purpose computer, such as a
personal computer (PC), is designed to be flexible
and to meet a wide range of end-user needs (today,
there is a huge number of end-user applications
running on PC).
In contrast, embedded system is a special-purpose
computer which is designed to perform a small
number of dedicated functions (tasks) for a specific
application.
What is the embedded part?
An embedded system might contain one or more
programmable chips such as a microcontroller (C,
uC or MCU), microprocessor or digital signal
processor.
The word embedded indicates that the computer
unit (e.g. microcontroller) is fully surrounded by the
device it controls, and is invisible to the user of the
device.
Components of embedded system
An embedded system usually consists of hardware,
software and perhaps mechanical or other
components, and can be a small part of a larger
system or machine.
Embedded systems combine elements of hardware
and software, semiconductor technology, analog and
digital electronics, computer architecture, sensors
and actuators, and more.
Interfacing with environment
In desktop computer systems, the user usually
interacts with the software application through a set
of highly-capable input / output devices such as
keyboard, mouse, and coloured screen.
In contrast, embedded systems have no
sophisticated interface devices: instead, they interact
with the surrounding environment through a set of
simple components such as switches, small
keypads, light-emitting diodes (LEDs) and so on.
Role of embedded systems
People in the 21st century may not realise that, without
the emergence of embedded technology, their life
would have become harder. This is because most
electrical devices people use nowadays are utilising
embedded systems.
Examples of such devices are: microwave ovens, TVs,
VCRs, DVDs, mobile phones, MP3 players, washing
machines, air conditions, handheld calculators,
printers, digital watches, digital cameras, automatic
teller machines (ATMs) and medical equipments.
Basic examples of embedded
systems
Printer
Automobiles
Telephone
Mobile
phone
ECG
Microwave
oven
The need for embedded systems?
In a publication by ABB Corporate Research (2006),
Christoffer Apneseth reports that the need for
embedded microprocessors arises mainly because:
General-purpose computers, like PCs, generally exceed the
cost of the majority of products that utilise embedded
systems, and
General-purpose systems are not capable of meeting the
requirements that embedded systems should have such as:
reliability, product size limitation, real-time performance and
power-consumption constraints.
What is simply the reliability?
Reliability simply means:
The ability to provide the service to the user whenever
requested.
The ability of a person or system to perform and maintain its
functions in routine circumstances, as well as unexpected
circumstances.
In engineering, reliability is the ability of a system or component
to perform its required functions under stated conditions for a
specified period of time.
Historical Background
10
The first computer system, recognised as an embedded
system, was the Apollo Guidance Computer developed in
1959 to control the Apollo spacecraft.
The first successful commercial minicomputer was the
PDP-8 produced by Digital Equipment Corporation in
1965.
In 1971, Intel released the first commercial single-chip
microprocessor, the Intel 4004, which was primarily used
in calculators and small systems.
Historical Background (Cont.)
11
External memory and support chips were required
with the microprocessor unit until 1980s, when
microcontrollers were developed to integrate all
components of a microprocessor system into a
single chip.
Since then, many commercial companies began the
development of embedded microcontrollers to meet
the increasingly growing demand of modern
technology.
Microcontrollers companies /
families
12
Examples of companies producing microcontrollers
are: Atmel, Philips, Intel, Infineon, Texas
Instruments, Microchip and Motorola.
Examples of microcontroller families used in the
design of embedded systems are: 8051, ARM, PIC,
MIPS, PowerPC, Atmel AVR, MPC555 and C16x.
Embedded Systems Market
13
In 2002, Ludwig D.J. Eggermont (STW
Technology Foundation) estimated the embedded
systems market size as100 times larger than the
size of desktop (PC) market.
In 2003, Bas Graaf (IEEE Software) forecasted this
market size to grow exponentially within the next ten
years.
Global embedded systems
market trend
14
(Source: BBC Research Group, 2005)
Safety-critical systems
Form safety point of view, there are two types of
embedded systems:
Non-critical systems.
Critical systems.
In
safety-critical systems, failures can have very serious
impacts on human safety.
For
example, incorrect operation of such systems may
endanger human lives or cause catastrophic
consequences.
15
Safety-critical systems (Cont.)
16
Safety-critical systems are typically used in the
development of aerospace, automotive, railway,
military and medical applications.
The utilisation of embedded systems in safety-critical
applications requires that the system should have
real-time operations to achieve correct functionality
and/or avoid any possibility for detrimental
consequences.
Real-time systems
17
Real-time systems are computer systems which
must react (respond) to events in the environment
within limited time boundaries.
Real-time behaviour can only be achieved if the
system is able to perform predictable and
deterministic processing.
Real-time systems (Cont.)
18
A given system is described as real-time if it is able
to complete the execution of particular activities
within specific time intervals.
The system should guarantee that a particular set of
activities will always be completed within (for
example) 4 ms or at precisely 3 ms periods (e.g.
calculating the required throttle settings to control
speed in an auto-driver system) .
Real-time systems (Cont.)
In situations where the system is unable to meet
these time constraints (requirements), then the
whole application is not simply slower than would be
expected, it tends to be entirely useless.
As a result, the correct behaviour of a real-time
system depends on:
19
The logical correctness of the output results.
The time at which the results are produced.
Real-time systems (Cont.)
20
Real-time systems are divided into two main classes:
Soft-real-time: where timing constraints should be
generally met, and failure to do so may only result in
reduced system performance but does not cause serious
damages or jeopardise correct behaviour.
Hard-real-time systems: where timing constraints must be
deterministically met in order to achieve correct operations
or avoid harmful consequences.
Brake-by-Wire system
21
The BBW system is a brake system based on
controlling the electric brake system in each wheel
by electric signal.
This BBW system can significantly improve the
brake performance compared with traditional brake
systems using hydraulic power.
This BBW system also helps to increase fuel
efficiency.
Brake-by-Wire system (Cont.)
22
Brake-by-Wire system (Cont.)
23
Brake-by-Wire system is designed for modern
passenger cars.
The brake actuators are required to respond within a
fixed amount of time after the brake pedal is
pressed.
If the system fails to respond within this time frame,
then there could be a danger that the vehicle may
not stop in time before crashing into another vehicle,
causing serious damage and possibly losses in
passenger lives.
Aircraft auto-pilot system
24
In the aircraft auto-pilot system, rapid reactions are
necessarily required to keep the aircraft staying on
its path.
Reactions include: rudder, elevator, aileron and
engine settings.
If the system cannot adjust the rudder setting in
millisecond time-scale (for example), the plane may
oscillate unpleasantly or even crash in more severe
circumstances.
Aircraft auto-pilot system (Cont.)
25
Image courtesy of Bill Harris
Aircraft auto-pilot system (Cont.)
26
Image courtesy of Bill Harris
Aircraft auto-pilot system (Cont.)
27
Image courtesy of Bill Harris
Predictability
In real-time applications, it is important to predict the
timing behaviour of the system to guarantee that:
The system will behave correctly.
Life of the people using the system will be saved.
While
the most important property of a desktop
computing system is its speed, the most
important property in a real-time computing
system is predictability.
28
Predictability (Cont.)
Giorgio Buttazzo states that:
rather than being fast, a real-time computing
system should be predictable .
29
Hence, predictability is an important characteristic in
real-time embedded systems.
Predictability (Cont.)
Predictability is:
In general: the ability to forecast (or anticipate) what will
happen in the future.
For systems: the ability to determine, in advance, exactly
what the system will do at every moment of time in which it
is running, hence, determine whether the system is capable
of meeting all its timing constraints.
Therefore,
30
building an embedded application with
highly predictable system behaviour is a non
straightforward process.
Challenges in building predictable
embedded systems
31
Embedded systems engineering can be viewed as a
branch of systems engineering discipline.
Engineers are concerned with all aspects of the
system development including hardware and
software engineering.
Activities such as specification, design,
implementation, testing, operation and maintenance
are all involved in the development of an embedded
application.
Challenges in building predictable
embedded systems (Cont.)
32
Development Life Cycle (Waterfall Model)
Challenges in building predictable
embedded systems (Cont.)
33
Development Life Cycle
(Waterfall Model)
Challenges in building predictable
embedded systems (Cont.)
Requirements
specifications:
A design of any system usually starts with ideas in
peoples mind.
These ideas need to be captured in requirements
specifications documents that specify:
The
basic functions of the system.
The desirable features of the system.
34
Challenges in building predictable
embedded systems (Cont.)
System
35
and Software Design:
After the requirements specifications are
documented correctly, design process begins.
The design process determines how the system
functions and features can be achieved by the
system components (hardware and software).
Design is usually based on modelling.
Challenges in building predictable
embedded systems (Cont.)
Implementation:
36
Implementation is the process of converting
design elements into a hardware system and / or
software system (executable source code).
If commercial off the shelf (COTS) uCs are
used, then developers will mainly focus on
software implementation.
Selection of the programming language to
program the uC is made in this stage (e.g.
Assembly, Ada, C or many other languages).
Challenges in building predictable
embedded systems (Cont.)
Integration
37
and Testing:
All system units are put together (integrated).
The complete system is tested (verified) to ensure
that it functions as required.
Challenges in building predictable
embedded systems (Cont.)
Operation
38
and Maintenance:
After integration and testing, the system becomes
operational.
In system maintenance, periodic checks are
carried out to ensure high quality and correct
functionality of the system.
Challenges in building predictable
embedded systems (Cont.)
Ensuring predictability, whilst moving between the
various development stages, requires further
techniques to be applied at different stages
throughout the whole development process.
Giorgio Buttazzo states that:
one safe way to achieve predictability is to
investigate and employ new methodologies at every
stage of the development of an application, from
design to testing.
39
Validation and Verification
There are two main processes to evaluate the
operation of any software-based system:
40
Validation: to ensure that the right system is built.
Verification: to ensure that the system is built right.
Validation and Verification (Cont.)
Validation is:
The process of evaluating software at the end of the
development process to ensure compliance with software
requirements.
A general process which checks the consistency of the
system as a whole with its requirements.
Determination of the correctness of the final program or
software produced from a development project with
respect to the user needs and requirements.
41
Validation and Verification (Cont.)
Verification is:
The process of evaluating a system or component to
determine whether the products of a given development
phase satisfy the conditions imposed at the start of that
phase.
The demonstration of consistency, completeness, and
correctness of the software at each stage and between
each stage of the development life cycle.
Verification is a detailed process which must be applied at
each stage in the software development process to check
the conformance of that stage with its predefined
specification.
42
Validation and Verification (Cont.)
43
Validation is a general process which shows that the
software meets the customer needs, while verification
is the process which ensures that the software
conforms to its specification.
Validation usually takes place at the end of the
development cycle, and looks at the complete system
as opposed to verification, which focuses on smaller
sub-systems.
Validation is usually accomplished by verifying each
stage of the software development life cycle.
Validation can be viewed as end-to-end verification
process
Validation and Verification (Cont.)
Requirement
definition
System and
Software
design
Implementation
Integration and
Testing
Operation and
Maintenance
The system development life cycle.
Requirement
definition
Design
Verification
process
Verification
process
Implementation
Verification
process
Integration
and Testing
Verification
process
Operation and
Maintenance
Verification
process
Validation process
44
Integrating validation and verification in the system development life cycle.
Validation and Verification (Cont.)
45
Validation and verification processes are used to check
both the functional and non-functional requirements of
the system.
Functional requirements relate to the behaviour of the
system.
Non-functional requirements relate to the quality
attributes of the system (non-behavioural requirements).
Predictability is classified as non-functional requirement.
Non-functional requirements also include, scalability,
efficiency, reliability, usability, stability, and many others.