Title: Embedded Systems Software Development
1Embedded Systems Software Development
- Robert Oshana
- National Technological University
2Lecture 1
- Introduction to Embedded Systems
3Agenda
- What is an Embedded System?
- Characteristics of embedded systems
- Requirements for embedded systems
4What is an embedded system?
- Specialized computer system
- Part of a larger system or machine
- Information processing subsystems integrated in a
larger system - As part of a larger system it largely determines
its functionality - An embedded system usually contains an embedded
processor - Some embedded systems include an operating system
5What is an embedded system?
- Some embedded systems are very specialized
resulting in the entire logic being implemented
as a single program - These systems are embedded into some device for
some specific purpose other than to provide
general purpose computing
6Embedded system dominate
Close to 4 billion embedded processors sold each
year
7Embedded system components
(Koopman)
Software
Memory
FPGA/ ASIC
CPU
D/A conversion
Actuators
A/D conversion
Sensors
Aux system (power cooling, etc
User interface
Diagnostic port
Electromechanical Backup and safety
External environment
8Major functions
- Monitor the environment embedded systems read
data from input sensors - This data is then processed and the results
displayed in some format to a user or users - Control the environment embedded systems
generate and transmit commands for actuators - Transform the information embedded systems
transform the data collected in some meaningful
way, such as data compression/decompression
9Sensors and actuators
- A sensor is a device that responds to a physical
stimulus (as heat, light, sound, pressure,
magnetism, or a particular motion) and transmits
a resulting impulse (as for measurement or
operating a control). - An actuator is a mechanical device for moving or
controlling something
10Sensors and Actuators
11Perform meaningful operations
- Embedded systems typically execute applications
such as control laws, finite state machines, and
signal processing algorithms - These systems must also detect and react to
faults in both the internal computing environment
as well as the surrounding electromechanical
systems
12Characteristics of embedded systems
- Application Specific Systems
- Embedded systems are not general-purpose
computers - Optimized for a specific application
- Many of the job characteristics are known before
the hardware is designed - allows the designer to focus on the specific
design constraints of a well defined application
13Characteristics of embedded systems
- Application Specific Systems
- Embedded S/W usually cannot run on other embedded
systems without modification - Hardware tailored to application
- Unnecessary circuitry eliminated
- Resources shared if possible
14Characteristics of embedded systems
- Reactive Systems
- typical embedded systems model responds to the
environment via sensors and control the
environment using actuators - requires embedded systems to run at the speed of
the environment - this characteristic is called reactive.
- Reactive computation means that the system
(primarily the software component) executes in
response to external events - External events can be either periodic or
aperiodic
15Characteristics of embedded systems
- One of the biggest challenges for embedded system
designers is performing an accurate worst case
design analysis on systems with statistical
performance characteristics (e.g., cache memory
on a DSP or other embedded processor) - Accurately predicting the worst case may be
difficult on complicated architectures - Often leads to overly pessimistic estimates
erring on the side of caution
16Characteristics of embedded systems
- Distributed Systems
- communicating processes executing on several CPUs
or ASICs - connected by communication links
- economical 4 8-bit microcontrollers may be
cheaper than a 32-bit processors (even with comm
links)
17Characteristics of embedded systems
- Heterogeneous Architectures
- different processors in the same system solution
- may also be mixed signal systems
- combination of I/O interfaces, local and remote
memories, and sensors and actuators makes
embedded system design unique - heterogeneity provides better design flexibility
in tight design constraints
18Heterogeneous systems
19Characteristics of embedded systems
- Harsh environment
- Many embedded systems do not operate in a
controlled environment - Excessive heat is often a problem, especially in
applications involving combustion (e.g., many
transportation applications) - protection from vibration, shock, lightning,
power supply fluctuations, water, corrosion,
fire, and general physical abuse - challenges to the embedded system designer,
including accurately modeling the thermal
conditions of these systems
20Characteristics of embedded systems
- System safety and reliability
- embedded systems control more and more of the
safety aspects of the overall system - these safety measures may be in the form of
software as well as hardware control - challenges to embedded designers include
designing reliable software and building cheap,
available systems using unreliable components
21Characteristics of embedded systems
- Control of physical systems
- when controlling physical equipment, large
current loads may need to be switched in order to
operate motors and other actuators - embedded systems may need large computer circuit
boards with many non-digital components - must carefully balance system tradeoffs among
analog components, power, mechanical, network,
and digital hardware with corresponding software
22Characteristics of embedded systems
- Small and low weight
- many embedded computers are physically located
within some larger system - form factor for the embedded system may be
dictated by aesthetics - challenge is to develop non-rectangular
geometries for certain solutions - weight can also be a critical constraint
23Other differences from desktop
- Human interface varies
- Flashing light
- Real-time robotic system
- Diagnostic port used for diagnosing the
controlled system not the computer - FPGA and ASIC and non-digital H/W used to
increase performance or safety
24A generic embedded system
25Generic embedded system
- Processor
- Just enough to get the job done
- Register width is important
- General purpose 32- bit and 64- bit
- Embedded processors 8- and 16-bit
- Memory
- ROM (executable program)
- RAM (data to manipulate)
- Register width drives amount of memory
26Generic embedded system
- Development cost
- Dependent of product
- High volume products can stand for a higher
development cost - Smaller volume is more sensitive to development
cost - Number of units
- Expected lifetime
- Drives design decisions
27Generic embedded system
- Reliability
- Children's toys do not always have to work right
- Space shuttle is a different story
28Common design requirements
29Attributes of some embedded systems
30Requirements for embedded systems
31Functional requirements
- Functional requirements describe the type of
processing the system will perform - Data Collection requirements
- Sensoring requirements
- Signal conditioning requirements
- Alarm monitoring requirements
- Direct Digital Control requirements
- Actuator control requirements
- Man-Machine Interaction requirements (Informing
the operator of the current state of a controlled
object for example
32Temporal requirements
- Embedded systems have many tasks to perform, each
having its own deadline - Temporal requirements define the stringency in
which these time-based tasks must complete - Minimal latency jitter
- Minimal Error-detection latency
- Temporal requirements can be very tight (for
example control-loops ) or less stringent (for
example response time in a user interface)
33Dependability requirements
- Reliability
- considered at the system rather than the
individual component level (emergent) - three dimensions to consider
- Hardware reliability probability of a hardware
component failing - Software reliability probability that a software
component will produce an incorrect result - Operator reliability how likely that the
operator of a system will make an error
34Dependability requirements
- Metrics used to determine system reliability
- Probability of failure on demand likelihood that
the system will fail when a service request is
made - Rate of failure occurrence frequency of
occurrence with which unexpected behavior is
likely to occur - Mean Time to Failure the average time between
observed system failures.
35Dependability requirements
- Safety critical failure modes and what types of
certification are required for the system - Maintainability constraints on the system such
as type of Mean Time to Repair (MTTR) - Availability the probability that the system is
available for use at a given time. Availability
is measured as - Availability MTTF / (MTTFMTTR)
- Security unacceptable system behavior
36Embedded processor alternatives
Low cost
Higher
Off the shelf general
Flexibility
Purpose processor
Off the shelf DSP, MCU
Low power
Embedded Core Processors
DSP, MCU
Higher speed
Faster
Time to
market
Hardwired Integrated
Circuit (ASIC)
37Embedded programming languages
- C has become the language of embedded programmers
- Advantages of C
- Small
- Easy to learn
- Wide compiler support
- Large body of experience
- Processor independent
- Low level programming language
38Embedded programming languages
- C gives embedded programmers large degree of
direct hardware control without sacrificing the
benefits of a HLL - Produces relatively compact efficient code for a
wide variety of processors - C and Ada are also good
- No more assembly required (mostly)
39Trends in embedded systems
- Increasing code size
- average code size for embedded systems has been
increasing dramatically - 1992 avg code size - range of 16-64K bytes
- 1996 the average size had grown to 64K-512K
- This trend is continuing
- Migration to higher level language from sssembly
- As applications become more and more complex,
programmers are transitioning to higher level
languages for productivity reasons
40Trends in embedded systems
- Increasing reuse of pre-designed components
- these include DSP chips as well as other
microprocessors and microcontrollers - Migration to a core-based design
- Systems becoming more complex and heterogeneous
- There are more ASIC-based designs with high speed
as well as high integration - Larger microprocessors are used with 32-bit
processors becoming the norm