Title: Slide 1: General Introduction to Embedded Systems
1Slide 1 General Introduction to Embedded Systems
- By
- Dr. Mouaaz Nahas
- Embedded Systems
- 802455
Umm Al-Qura University Electrical Engineering
Department
2What 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.
3What 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.
4Components 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.
5Interfacing 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.
6Role 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.
7Basic examples of embedded systems
8The 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.
9What 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.
10Historical Background
- 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.
11Historical Background (Cont.)
- 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.
12Microcontrollers companies / families
- 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.
13Embedded Systems Market
- 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.
14Global embedded systems market trend
(Source BBC Research Group, 2005)
15Safety-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.
16Safety-critical systems (Cont.)
- 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.
17Real-time systems
- 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.
18Real-time systems (Cont.)
- 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) .
19Real-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 - The logical correctness of the output results.
- The time at which the results are produced.
20Real-time systems (Cont.)
- 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.
21Brake-by-Wire system
- 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.
22Brake-by-Wire system (Cont.)
23Brake-by-Wire system (Cont.)
- 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.
24Aircraft auto-pilot system
- 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.
25Aircraft auto-pilot system (Cont.)
Image courtesy of Bill Harris
26Aircraft auto-pilot system (Cont.)
Image courtesy of Bill Harris
27Aircraft auto-pilot system (Cont.)
Image courtesy of Bill Harris
28Predictability
- 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.
29Predictability (Cont.)
- Giorgio Buttazzo states that
- rather than being fast, a real-time computing
system should be predictable . - Hence, predictability is an important
characteristic in real-time embedded systems.
30Predictability (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, building an embedded application with
highly predictable system behaviour is a non
straightforward process.
31Challenges in building predictable embedded
systems
- 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.
32Challenges in building predictable embedded
systems (Cont.)
Development Life Cycle (Waterfall Model)
33Challenges in building predictable embedded
systems (Cont.)
Development Life Cycle (Waterfall Model)
34Challenges 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.
35Challenges in building predictable embedded
systems (Cont.)
- System 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.
36Challenges in building predictable embedded
systems (Cont.)
- Implementation
- 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).
37Challenges in building predictable embedded
systems (Cont.)
- Integration and Testing
- All system units are put together (integrated).
- The complete system is tested (verified) to
ensure that it functions as required.
38Challenges in building predictable embedded
systems (Cont.)
- Operation 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.
39Challenges 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.
40Validation and Verification
- There are two main processes to evaluate the
operation of any software-based system - Validation to ensure that the right system is
built. - Verification to ensure that the system is built
right.
41Validation 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.
42Validation 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.
43Validation and Verification (Cont.)
- 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
44Validation and Verification (Cont.)
The system development life cycle.
Integrating validation and verification in the
system development life cycle.
45Validation and Verification (Cont.)
- 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.