2. WHAT IS AN EMBEDDED SYSTEM?
An embedded system is a special-purpose computer
system designed to perform one or a few dedicated
functions. It is usually embedded as part of a
complete device including hardware and mechanical
parts
words:
In more simpler words:
Information processing systems embedded into a
larger product
3. GENERAL CHARACTERISTICS
Embedded systems:
perform a single or tightly knit set of functions;
not usually general purpose.;
high-performance and real-time constrained;
power, cost, reliability and security are important;
Application-
Application-specific processor design:
Advantages:
lower area, power, cost, better security...
Disadvantages:
Higher development overheads
design, compilers, debuggers may delay time to market!
4. DRIVING FORCES
Computing technologies are proliferating to
non-computing domains
portable units with significant data & control ops.
medical instrumentation & imaging, information
appliances...
Increasing need for product personalization
Application domains and user differentiation
Device programmability
Competitive pressures of "commodity markets“
Time to market (TTM), Time to money (TT$),
Product lines, Product differentiation, etc.
8. APPLICATION AREAS (CONTD.)
Medical systems
For example:
Artificial eye: several
approaches, e.g.:
Camera attached to glasses;
computer worn at belt; output
directly connected to the
brain, “pioneering work by
William Dobelle”. Previously at
[www.dobelle.com]
– Translation into sound; claiming
much better resolution.
[http://www.seeingwithsound.com/etumble.htm]
9. APPLICATION AREAS (CONTD.)
Robotics
One of the premier
areas of usage of
embedded
technologies
Nano Technology
11. SMART BEER GLASS
Integrates several technologies:
Capacitive sensor
Radio transmissions
for fluid level
Sensor technology
Magnetic inductance for
8-bit processor power
Computer used for
calibration
Impossible without the computer
Contact less Meaningless without the
electronics
transmission of
power and
readings
Inductive coil for RF ID
activation & power
CPU and reading coil in the table. Reports the level
of fluid in the glass, alerts servers when close to
empty
12. SMART BEER GLASS
Typical embedded solution
Integrates several technologies:
Radio transmissions
Sensor technology
Magnetic inductance for power
Computer used for calibration
Impossible without the computer
Meaningless without the electronics
13. PEDOMETER
Obvious computer work:
Count steps
Keep time
Averages
etc.
Hard computer work:
Actually identify when a step is
taken
Sensor feels motion of device,
not of user feet
14. MOBILE PHONES
Multiprocessor
8-bit/32-bit for UI
DSP for signals
32-bit in IR port
32-bit in Bluetooth
8-100 MB of memory
All custom chips
Power consumption & battery life
depends on software
15. MOBILE BASE STATION
Massive signal processing
Several processing tasks per
connected mobile phone
Based on DSPs
Standard or custom
100s of processors
16. TELECOM SWITCH
Rack-based
Control cards
IO cards
DSP cards
...
Optical & copper connections
Digital & analog signals
17. SMART WELDING MACHINE
Electronics control voltage & speed of
wire feed
Adjusts to operator
kHz sample rate
1000s of decisions/second
Perfect weld even for quite clumsy
operators
Easier-to-use product, but no obvious
computer
18. SEWING MACHINE
User interface
Embroidery patterns
Touch-screen control
”Smart”
Sets pressure of foot depending on
task
Raise foot when stopped
New functions added by upgrading
the software
19. FORESTRY MACHINES
Networked computer
system
Controlling arms &
tools
Navigating the forest
Recording the trees
harvested
Crucial to efficient
work
Processors
16-bit processors in a
network
20. OPERATOR PANEL
Embedded PC
Graphical display
Touch panel
Joystick
Buttons
Keyboard
But tough enough to be “out
in the woods”
21. CARS
Functions by embedded processing: Multiple networks
ABS: Anti-lock braking systems Body, engine, telematics,
ESP: Electronic stability control
Airbags
media, safety
Efficient automatic gearboxes Multiple processors
Theft prevention with smart keys Up to 100
Blind-angle alert systems
... etc ... Networked together
22. CARS
Large diversity in processor types:
8-bit – door locks, lights, etc.
16-bit – most functions
32-bit – engine control, airbags
Form follows function
Processing where the action is
Sensors and actuators distributed all over the vehicle
23. INSIDE YOUR PC
Custom processors
Graphics, sound
32-bit processors
IR, Bluetooth
Network, WLAN
Harddisk
RAID controllers
8-bit processors
USB
Keyboard, mouse
24. IF YOU WANT TO PLAY
Lego mindstorms robotics kit
Standard controller
8-bit processor
64 kB of memory
Electronics to interface to
motors and sensors
Good way to learn embedded
systems
28. Characteristics of Embedded Systems
Must be dependable
dependable,
• Reliability R(t) = probability of system working correctly provided that it was
working at t=0
• Maintainability M(d) = probability of system working correctly d time units after
error occurred.
• Availability A(t): probability of system working at time t
• Safety no harm to be caused
Safety:
• Security confidential and authentic communication
Security:
Even perfectly designed systems can fail if the assumptions about the workload
and possible errors turn out to be wrong.
Making the system dependable must not be an after-thought, it must be
considered from the very beginning
29. CHARACTERISTICS OF EMBEDDED SYSTEMS
Must be efficient
Energy efficient
Code-size efficient
(especially for systems on a chip)
Run-time efficient
Weight efficient
Cost efficient
Dedicated towards a certain application
Knowledge about behavior at design time can be
used to minimize resources and to maximize
robustness
Dedicated user interface
(no mouse, keyboard and screen)
30. CHARACTERISTICS OF EMBEDDED SYSTEMS
Many ES must meet real-time constraints
real-
A real-time system must react to stimuli from the
controlled object (or the operator) within the time
interval dictated by the environment.
For real-time systems, right answers arriving too late
are wrong.
real-
„A real-time constraint is called hard, if not meeting
that constraint could result in a catastrophe“ [Kopetz,
1997].
All other time-constraints are called soft
soft.
A guaranteed system response has to be explained
without statistical arguments
31. REAL-TIME SYSTEMS
Embedded and Real-
Time Synonymous?
Most embedded
systems are embedded
real-time
Most real-time embedded
systems are
embedded real-
real-time
real-
real-time
32. CHARACTERISTICS OF EMBEDDED SYSTEMS
Frequently connected to physical environment
through sensors and actuators,
Hybrid systems
(analog + digital parts).
Typically, ES are reactive systems
systems:
„A reactive system is one which is in continual
A
interaction with is environment and executes at a
pace determined by that environment“ [Bergé, 1995]
Behavior depends on input and current state
state.
automata model appropriate,
model of computable functions inappropriate.
33. CHARACTERISTICS OF EMBEDDED SYSTEMS
ES are underrepresented in teaching and public discussions:
„Embedded chips aren‘t hyped in TV and magazine ads ... [Mary
Ryan, EEDesign, 1995]
Not every ES has all of the above characteristics.
Def.:
Def Information processing systems having most of the
above characteristics are called embedded systems.
Course on embedded systems makes sense because of
the number of common characteristics.
34. CHALLENGES FOR IMPLEMENTATION IN
HARDWARE
Lack of flexibility (changing standards).
Mask cost for specialized HW becomes very expensive
Trend towards
implementation
in Software
[http://www.molecularimprints.com/Technology/tech_articles/MII_COO_NIST_2001.PDF9]
35. IMPORTANCE OF EMBEDDED SOFTWARE
AND EMBEDDED PROCESSORS
“... the New York Times has
estimated that the average Mostaverage American
The of the functionality
American comes into contact with about will be implemented in
does not drive a BMW!
60 micro-processors every day....” software
[Camposano, 1996]
Latest top-level BMWs
contain over 100 micro-
processors
[Personal communication]
36. CHALLENGES FOR IMPLEMENTATION IN SOFTWARE
If embedded systems will be implemented mostly in
software, then why don‘t we just use what software
engineers have come up with?
37. SOFTWARE COMPLEXITY IS A CHALLENGE
Exponential increase in software complexity
In some areas code size is doubling every 9
months [ST Microelectronics, Medea
Workshop, Fall 2003]
... > 70% of the development cost for complex
systems such as automotive electronics and
communication systems are due to software
development
[A. Sangiovanni-Vincentelli, 1999]
Rob van Ommering, COPA Tutorial, as cited by: Gerrit Müller:
Opportunities and challenges in embedded systems,
Eindhoven Embedded Systems Institute, 2004
38. CHALLENGES FOR EMBEDDED SOFTWARE
Dynamic environments
Capture the required behaviour!
Validate specifications
Efficient translation of specifications into
implementations!
How can we check that we meet real-time
constraints?
How do we validate embedded real-time software?
(large volumes of data, testing may be safety-critical)
39. IT IS NOT SUFFICIENT TO CONSIDER ES JUST AS A SPECIAL CASE OF
SOFTWARE ENGINEERING
EE knowledge must be available,
Walls between EE and CS must be torn down
CS EE
41. EMBEDDED SOFTWARE
Firmware
Middleware
OS / RTOS Development
Device Drivers
42. FIRMWARE – NOT A CORE FIELD FOR CS/IT PROS
In computing, firmware is a computer
program that is embedded in a hardware
device, for example a microcontroller. It can
also be provided on flash ROMs or as a
binary image file that can be uploaded onto
existing hardware by a user.
Example FLASH BIOS, IPOD, PSP, PSP3,
Open Firmware in Sun’s & Apple Comps etc.
it is also an intimate and vital part of a piece
of hardware, and has little meaning outside
of that particular hardware.
43. MIDDLEWARE
Middleware is computer software that connects software
components or applications.
Elaborative - Middleware is the enabling technology of
Enterprise application integration. It describes a piece of
software that connects two or more software applications so
that they can exchange data.
System Process and services.
Common Examples web servers, application servers &
content management systems.
Inter-operatibility - XML, SOAP, Web services, and service-
oriented architecture
It is a layer of software that lies between the application
code and the Run-Time Infrastructure (RTI)
44. TYPES OF MIDDLEWARE
Transaction Processing(TP) Monitors - This provides the tools and an
environment to develop and deploy the Distributed Applications.
Remote Procedure Call (RPCs) — Client makes calls to procedures running
on remote systems. Can be asynchronous or synchronous.
Message Oriented Middleware (MOM) — Messages sent to the client are
collected and stored until they are acted upon, while the client continues
with other processing.
Object Request Broker (ORB) — This type of middleware makes it possible
for applications to send objects and request services in an object-oriented
system.
SQL-oriented Data Access — middleware between applications and database
servers.
Application servers — software installed on a computer to facilitate the
serving (running) of other applications.
Enterprise Service Bus — An abstraction layer on top of an Enterprise
Messaging System.
45. OS/RTOS
A real-time operating system (RTOS) is a
multitasking operating system intended for
real-time applications.
Used in embedded systems (programmable
thermostats, household appliance controllers,
mobile telephones), industrial robots,
spacecraft, industrial control, and scientific
research equipment.
Real Time Computing still under debate.
46. REAL TIME OPERATING SYSTEMS
Design Types
Real time system is the system which complete the
tasks within the deadline.
Event-driven (priority scheduling) designs switch tasks
only when an event of higher priority needs service,
called preemptive priority.
Time-sharing designs switch tasks on a clock interrupt,
and on events, called round robin.
1st example of a large-scale real-time operating
real-
system was the so-called "control program"
developed by American Airlines and IBM for the
Sabre Airline Reservations System.
47. DEVICE DRIVERS
A device driver, or software driver is a computer
program allowing higher-level computer programs
to interact with a computer hardware device.
A device driver simplifies programming by acting
as a translator between a device and the
applications or operating systems that use it.
The higher-level code can be written independently
of whatever specific hardware device it may
control. (Embedded C# programming, Micro .Net
Framework)
48. DEVICE DRIVER EXAMPLES
Linux device drivers are built into the OS kernel.
Windows(TM) .sys files and Linux .ko modules are
loadable device drivers.
The device drivers can either be built as parts of
the kernel or can be built separately as loadable
modules. ( Example USB Mass storage type
drivers).
New age Device Drivers works in User & System
modes.
Printers: CUPS, Scanners: SANE & Video: Vidix
49. DEVICE DRIVER DEVELOPMENT
Microsoft’s new framework for driver
development, called Windows Driver
Foundation (WDF).
User-Mode Driver Framework (UMDF).
The Kernel-Mode Driver Framework (KMDF).
Apple’s open-source framework for developing
drivers on Mac OS X called the I/O Kit.
Linux Device Drivers are developed in C using
OEM Specification.
50. DD IMPLEMENTATION
Drivers are used for interfacing with:
Printers
Video adapters
Network cards
Sound cards
Local buses of various sorts - in particular, for bus mastering on
modern systems
Low-bandwidth I/O buses of various sorts (for pointing devices
such as mice, keyboards, USB, etc.)
computer storage devices such as hard disk, CD-ROM and floppy
disk buses (ATA, SATA, SCSI)
Implementing support for different file systems
Implementing support for image scanners and digital cameras
51. VIRTUAL DEVICE DRIVERS
used in virtualization environments.
MS-DOS program is run on a Microsoft Windows
computer
CoLinux on Windows
Xen on Linux
Virtual Machines (e.g. JVM over embedded devices)
Attempts by the guest operating system to access the
hardware are routed to the virtual device driver in the
host operating system as e.g. function calls.
virtual device driver can also send simulated processor-
level events like interrupts into the virtual machine.
52. DRIVER API’S
Advanced Linux Sound Architecture (ALSA) - The standard modern Linux
sound driver interface
I/O Kit - an open-source framework from Apple for developing Mac OS X
device drivers
Installable File System (IFS) - a filesystem API for IBM OS/2 and Microsoft
Windows NT
Network Driver Interface Specification (NDIS) - a standard network card
driver API
Open Data-Link Interface (ODI) - a network card API similar to NDIS
Scanner Access Now Easy (SANE) - a public domain interface to raster
image scanner hardware
Uniform Driver Interface (UDI) - a cross platform driver interface project
Windows Display Driver Model (WDDM) - the new graphic display driver
architecture for Windows Vista
Windows Driver Foundation (WDF)
Windows Driver Model (WDM)