You are on page 1of 45

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.

You might also like