0% found this document useful (0 votes)
92 views27 pages

What Are Embedded Systems?

Embedded systems are electronic systems designed to perform specific tasks. An embedded system contains a microprocessor or microcontroller along with other components like memory, converters, sensors and actuators integrated into a device. Some examples of embedded systems are digital cameras, mobile phones, and home automation devices. The first modern embedded systems included the Apollo Guidance Computer and early missile guidance computers. Embedded systems are now ubiquitous and enable many devices in our daily lives.

Uploaded by

nicar190
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views27 pages

What Are Embedded Systems?

Embedded systems are electronic systems designed to perform specific tasks. An embedded system contains a microprocessor or microcontroller along with other components like memory, converters, sensors and actuators integrated into a device. Some examples of embedded systems are digital cameras, mobile phones, and home automation devices. The first modern embedded systems included the Apollo Guidance Computer and early missile guidance computers. Embedded systems are now ubiquitous and enable many devices in our daily lives.

Uploaded by

nicar190
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 27

What are Embedded Systems?

As the term defines embed means “to integrate or incorporate an object into
another” and system can be defined as “a group of interdependent items that
interact with each other to perform a task.”

Thus, an Embedded System can be defined as “a combination of computer


hardware and software designed to perform a specified task or a few tasks.” It
can be either flexible or programmable as per the needs of the end-user.
Sometimes time bound constraints are implemented for a real time based
application.

Examples of such systems are digital cameras, mobile phones, PDAs, MP3 players,
airline systems, home automation etc.

1
History
In the earliest years of computers in the 1940–50s, computers were sometimes
dedicated to a single task, but were far too large and expensive for most kinds of
tasks performed by embedded computers of today.

One of the first recognizably modern embedded systems was the Apollo Guidance
Computer, developed by Charles Stark Draper at the MIT Instrumentation
Laboratory. At the project's inception, the Apollo guidance computer was
considered the riskiest item in the Apollo project as it employed the then newly
developed monolithic integrated circuits to reduce the size and weight.

An early mass-produced embedded system was the Autonetics D-17 guidance


computer for the Minuteman missile, released in 1961. It was built from
transistor logic and had a hard disk for main memory. When the Minuteman II
went into production in 1966, the D-17 was replaced with a new computer that
was the first high-volume use of integrated circuits.

In 1978 National Engineering Manufacturers Association released a "standard" for


programmable microcontrollers, including almost any computer-based
controllers, such as single board computers, numerical, and event-based
controllers. By the mid-1980s, most of the common previously external system
components had been integrated into the same chip as the processor and this
modern form of the microcontroller allowed an even more widespread use, which
by the end of the decade were the norm rather than the exception for almost all
electronics devices.

Ubiquitous Computing
Ubiquitous computing is essentially the term for human interaction with
computers in virtually everything we do. This is future phase beyond the desktop
and notebook environment that we are currently in. Ubiquitous computing would
involve objects interacting all around you providing feedback or adjusting based
upon previously configured settings. It is possible by the use of Embedded
Systems.

2
Classification of ES
 Autonomous systems
They function in standalone mode. Many embedded systems used for
process control in manufacturing units& automobiles fall under this
category.
 Real-time embedded systems
These are required to carry out specific tasks in a specified amount of time.
These systems are extensively used to carry out time critical tasks in
process control.
 Networked embedded systems
They monitor plant parameters such as temperature, pressure and
humidity and send the data over the network to a centralized system for on
line monitoring.
 Mobile gadgets
Mobile gadgets need to store databases locally in their memory. These
gadgets imbibe powerful computing & communication capabilities to
perform real-time as well as non-real-time tasks and handle multimedia
applications.

Structure of ES

3
Components
 Processor / Microcontroller / DSP
 Memory
 Convertors
 Sensors
 Actuators
 Firmware i.e. program instructions
 User interface

Processor
A processor is the logic circuitry that responds to and processes the basic
instructions that drives a computer. In an embedded system there are three types
of processors as following:

 Microprocessor
A microprocessor incorporates most or all of the functions of a computer's
central processing unit (CPU) on a single integrated circuit (IC, or
microchip). It basically consists of the processing core. Embedded systems
use 4 bit or 8 bit microprocessors whereas the 16 bit and 32 bit are used for
general purpose computing.

 Microcontroller
A microcontroller (sometimes abbreviated µC or uC) is a small computer on
a single integrated circuit containing a processor core, memory, and
programmable input/output peripherals. Microcontrollers are designed for
embedded applications, in contrast to the microprocessors used in personal
computers or other general purpose applications. Microcontrollers are
used in automatically controlled products and devices, such as automobile
engine control systems, implantable medical devices, remote controls,
office machines, appliances, power tools, and toys. By reducing the size and
cost compared to a design that uses a separate microprocessor, memory,

4
and input/output devices, microcontrollers make it economical to digitally
control even more devices and processes.

 Digital Signal Processor (DSP)


A digital signal processor (DSP) is a specialized microprocessor with an
optimized architecture for the fast operational needs of digital signal
processing. Digital signal processing (DSP) is concerned with the
representation of signals by a sequence of numbers or symbols and the
processing of these signals. Digital signal processing and analog signal
processing are subfields of signal processing. The Digital Signal Processors
are used to process the signals which are taken as input after processing.

Architectures of processors
Major architectures used by embedded systems are:

 Von Neumann
The von Neumann architecture is a design model for a stored-program
digital computer that uses a central processing unit (CPU) and a single
separate storage structure ("memory") to hold both instructions and data.

5
 Harvard Architecture
The Harvard architecture is computer architecture with physically separate
storage and signal pathways for instructions and data.

 ARM (Advanced RISC Machine)


The ARM is a 32-bit reduced instruction set computer (RISC) instruction set
architecture (ISA) developed by ARM Holdings. It was known as the
Advanced RISC Machine, and before that as the Acorn RISC Machine. It
implements uniform instruction format, identical general purpose registers,
simple addressing modes etc. to provide simple and fast performance.

 VLIW (Very Long Instruction Word)


Very long instruction word or VLIW refers to a CPU architecture designed
to take advantage of instruction level parallelism (ILP). A processor that
executes every instruction one after the other (i.e. a non-pipelined scalar
architecture) may use processor resources inefficiently, potentially leading

6
to poor performance. The performance can be improved by executing
different sub-steps of sequential instructions simultaneously (this is
pipelining), or even executing multiple instructions entirely simultaneously.

Implementation

 ASIC
An application-specific integrated circuit (ASIC) is an integrated circuit (IC)
customized for a particular use, rather than intended for general-purpose
use. For example, a chip designed solely to run a cell phone is an ASIC. As
feature sizes have shrunk and design tools improved over the years, the
maximum complexity (and hence functionality) possible in an ASIC has
grown from 5,000 gates to over 100 million. Modern ASICs often include
entire 32-bit processors, memory blocks including ROM, RAM, EEPROM,
Flash and other large building blocks. Such an ASIC is often termed a SoC
(system-on-a-chip). Designers of digital ASICs use a hardware description
language (HDL), such as Verilog or VHDL, to describe the functionality of
ASICs.

 FPGA
A field-programmable gate array (FPGA) is an integrated circuit designed
to be configured by the customer or designer after manufacturing—hence
"field-programmable". The FPGA configuration is generally specified using a
hardware description language (HDL), similar to that used for an
application-specific integrated circuit (ASIC). FPGAs can be used to
implement any logical function that an ASIC could perform. The ability to
update the functionality after shipping, partial re-configuration of the
portion of the design and the low non-recurring engineering costs relative
to an ASIC design (not withstanding the generally higher unit cost), offer
advantages for many applications.

7
Memory
An embedded system uses a memory for storing the instructions, data, software,
temporary values etc. The types of memories used are as follows:

 ROM (Read Only Memory)


Read-only memory (usually known by its acronym, ROM) is a class of
storage media used in computers and other electronic devices. Because
data stored in ROM cannot be modified (at least not very quickly or easily),
it is mainly used to distribute firmware (software that is very closely tied to
specific hardware, and unlikely to require frequent updates).

 RAM(Random Access Memory)


Random-access memory (RAM) is a form of computer data storage. Today,
it takes the form of integrated circuits that allow stored data to be accessed
in any order (i.e., at random). "Random" refers to the idea that any piece of
data can be returned in a constant time, regardless of its physical location
and whether or not it is related to the previous piece of data.

 Flash Memory
Flash memory is a non-volatile computer storage technology that can be
electrically erased and reprogrammed. It is primarily used in memory cards,
USB flash drives, and solid-state drives for general storage and transfer of
data between computers and other digital products. It is a specific type of
EEPROM (electrically-erasable programmable read-only memory) that is
erased and programmed in large blocks.

8
Converters
 ADC (Analog to Digital Converter)
An analog-to-digital converter (abbreviated ADC, A/D or A to D) is a device
that converts a continuous quantity to a discrete digital number. The
reverse operation is performed by a digital-to-analog converter (DAC). The
input to an analog-to-digital converter (ADC) consists of a voltage that
varies among a theoretically infinite number of values. Examples are sine
waves, the waveforms representing human speech, and the signals from a
conventional television camera. The output of the ADC, in contrast, has
defined levels or states. The number of states is almost always a power of
two -- that is, 2, 4, 8, 16, etc. The simplest digital signals have only two
states, and are called binary. All whole numbers can be represented in
binary form as strings of ones and zeros. Digital signals propagate more
efficiently than analog signals, largely because digital impulses, which are
well-defined and orderly, are easier for electronic circuits to distinguish
from noise, which is chaotic. This is the chief advantage of digital modes in
communications. Computers "talk" and "think" in terms of binary digital
data; while a microprocessor can analyze analog data, it must be converted
into digital form for the computer to make sense of it. A typical telephone
modem makes use of an ADC to convert the incoming audio from a twisted-
pair line into signals the computer can understand. In a digital signal
processing system, an ADC is required if the signal input is analog.

 DAC (Digital to Analog Converter)


In electronics, a digital-to-analog converter (DAC or D-to-A) is a device that
converts a digital (usually binary) code to an analog signal (current, voltage,
or electric charge). Basically, digital-to-analog conversion is the opposite of
analog-to-digital conversion. In most cases, if an analog-to-digital converter
(ADC) is placed in a communications circuit after a DAC, the digital signal
output is identical to the digital signal input. Also, in most instances when a
DAC is placed after an ADC, the analog signal output is identical to the

9
analog signal input. Binary digital impulses, all by themselves, appear as
long strings of ones and zeros, and have no apparent meaning to a human
observer. But when a DAC is used to decode the binary digital signals,
meaningful output appears. This might be a voice, a picture, a musical tune,
or mechanical motion. Both the DAC and the ADC are of significance in
some applications of digital signal processing. The intelligibility or fidelity of
an analog signal can often be improved by converting the analog input to
digital form using an ADC, then clarifying the digital signal, and finally
converting the "cleaned-up" digital impulses back to analog form using a
DAC.

User Interface
In information technology, the user interface (UI) is everything designed into an
information device with which a human being may interact -- including display
screen, keyboard, mouse, light pen, the appearance of a desktop, illuminated
characters, help messages, and how an application program or a Web site invites
interaction and responds to it. In early computers, there was very little user
interface except for a few buttons at an operator's console. The user interface
was largely in the form of punched card input and report output.

Later, a user was provided the ability to interact with a computer online and the
user interface was a nearly blank display screen with a command line, a keyboard,
and a set of commands and computer responses that were exchanged. This
command line interface led to one in which menus (list of choices written in text)
predominated. And, finally, the graphical user interface (GUI) arrived, originating
mainly in Xerox's Palo Alto Research Center, adopted and enhanced by Apple
Computer, and finally effectively standardized by Microsoft in its Windows
operating systems.

The user interface can arguably include the total "user experience," which may
include the aesthetic appearance of the device, response time, and the content
that is presented to the user within the context of the user interface.

10
The different interface devices are as follows:

 Buttons

 Menu System

 LEDs

 Graphics (GUI)

 Character LCDs

Peripheral Devices in an ES
A peripheral is a device attached to a host computer but not part of it, and is
more or less dependent on the host. It expands the host's capabilities, but does
not form part of the core computer architecture.

 SCI (Serial Communication Interface)

A universal asynchronous receiver/transmitter is a type of "asynchronous


receiver/transmitter", a piece of computer hardware that translates data
between parallel and serial forms. A UART is usually an individual (or part
of an) integrated circuit used for serial communications over a computer or
peripheral device serial port. UARTs are now commonly included in
microcontrollers.

 USB (Universal Serial Bus)

Universal Serial Bus (USB) is a specification to establish communication


between devices and a host controller. USB is intended to replace many
varieties of serial and parallel ports. USB can connect computer peripherals
such as mice, keyboards, digital cameras, printers, personal media players,
flash drives, and external hard drives. It has become commonplace on other

11
devices such as smart phones, PDAs and video game consoles, and as a
power cord between a device.

12
 GPIO (General Purpose Input/Output)

General Purpose Input/Output (a.k.a. GPIO) is an interface available on


some devices. A microprocessor, microcontroller or interface device may
have one or more GPIO connections to interface with external devices and
peripherals. These can act as input, to read digital signals from other parts
of a circuit, or output, to control or signal to other devices. GPIOs are often
arranged into groups, typically of 8 pins - a GPIO port - that usually have
individual GPIOs configurable either as input or outputs. In some cases,
GPIOs may be configurable to produce CPU interrupts and be able to use
Direct Memory Access to move large quantities of data efficiently into or
out of the device.

 Timers (PLL – Phase Locked-Loop)

A timer is a specialized type of clock. A timer can be used to control the


sequence of an event or process. Computer systems usually have at least
one timer. These are typically digital counters that either increment or
decrement at a fixed frequency, which is often configurable, and that
interrupt the processor when reaching zero, or a counter with a sufficiently
large word size that it will not reach its counter limit before the end of life
of the system. A PLL is a control system that generates an output signal
whose phase is related to the phase of the input signal.

 Network Controller

A network interface card, network adapter, network interface controller


(NIC), or LAN adapter is a computer hardware component designed to
allow computers to communicate over a computer network. It allows users
to connect to each other either by using cables or wirelessly.

Embedded Debugging
Embedded debugging may be performed at different levels, depending on the
facilities available. From simplest to the most sophisticated they can be roughly
grouped into the following areas:

13
 Interactive resident debugging, using the simple shell provided by the
embedded operating system (e.g. Forth and Basic)

 External debugging using logging or serial port output to trace operation


using either a monitor in flash or using a debug server like the Remedy
Debugger which even works for heterogeneous multicore systems.

 An in-circuit debugger (ICD), a hardware device that connects to the


microprocessor via a JTAG or Nexus interface. This allows the operation of
the microprocessor to be controlled externally, but is typically restricted to
specific debugging capabilities in the processor.

 An in-circuit emulator replaces the microprocessor with a simulated


equivalent, providing full control over all aspects of the microprocessor.

 A complete emulator provides a simulation of all aspects of the hardware,


allowing all of it to be controlled and modified, and allowing debugging on
a normal PC.

For instance, debugging a software- (and microprocessor-) centric embedded


system is different from debugging an embedded system where most of the
processing is performed by peripherals (DSP, FPGA, co-processor). An increasing
number of embedded systems today use more than one single processor core. A
common problem with multi-core development is the proper synchronization of
software execution. In such a case, the embedded system design may wish to
check the data traffic on the busses between the processor cores, which requires
very low-level debugging, at signal/bus level, with a logic analyzer, for instance.

Reliability
Embedded systems often reside in machines that are expected to run
continuously for years without errors and in some cases recover by themselves, if
an error occurs. Therefore the software is usually developed and tested more
carefully than that for personal computers, and unreliable mechanical moving
parts such as disk drives, switches or buttons are avoided.

14
Specific reliability issues may include:

1. The system cannot safely be shut down for repair, or it is too inaccessible to
repair. Examples include space systems, undersea cables, navigational
beacons, bore-hole systems, and automobiles.
2. The system must be kept running for safety reasons. "Limp modes" are less
tolerable. Often backups are selected by an operator. Examples include
aircraft navigation, reactor control systems, safety-critical chemical factory
controls, train signals, engines on single-engine aircraft.
3. The system will lose large amounts of money when shut down: Telephone
switches, factory controls, bridge and elevator controls, funds transfer and
market making, automated sales and service.

A variety of techniques are used, sometimes in combination, to recover from


errors—both software bugs such as memory leaks, and also soft errors in the
hardware:

 Watchdog Timer

A watchdog timer (or computer operating properly (COP) timer) is a


computer hardware or software timer that triggers a system reset or other
corrective action if the main program, due to some fault condition, such as
a hang, neglects to regularly service the watchdog. The intention is to bring
the system back from the unresponsive state into normal operation.

 Redundant Subsystems

Some subsystems have an exact copy of the system. Thus, if one fails then
the other one is present to fulfill the work of the failed one.

 Trusted Computing Base

The trusted computing base (TCB) of a computer system is the set of all
hardware, firmware, and/or software components that are critical to its
security, in the sense that bugs or vulnerabilities occurring inside the TCB
might jeopardize the security properties of the entire system. By contrast,
parts of a computer system outside the TCB must not be able to misbehave

15
in a way that would leak any more privileges than are granted to them in
accordance to the security policy.

16
 Embedded Hypervisor

An Embedded Hypervisor is able to provide secure encapsulation for any


subsystem component, so that a compromised software component cannot
interfere with other subsystems, or privileged-level system software. This
encapsulation keeps faults from propagating from one subsystem to
another, improving reliability. This may also allow a subsystem to be
automatically shut down and restarted on fault detection.

 Immunity Aware Programming

When writing firmware for an embedded system, immunity aware


programming is a set of programming techniques used in an attempt to
tolerate transient errors in the program counter or other that would
otherwise lead to failure. Transient errors in a "victim" device may be
caused by single event upsets, insufficient power, or by strong
electromagnetic signals transmitted by some other "source" device.
Immunity aware programming is one kind of defensive programming.

Firmware
Firmware is a term often used to denote the fixed, usually rather small, programs
and/or data structures that internally control various electronic devices. Typical
examples of devices containing firmware range from end-user products such as
remote controls or calculators, through computer parts and devices like hard
disks, keyboards, TFT screens or memory cards, all the way to scientific
instrumentation and industrial robotics. Also more complex consumer devices,
such as mobile phones, digital cameras, synthesizers, etc., contain firmware to
enable the device's basic operation as well as implementing higher-level
functions.

17
Embedded Software Architectures
There are several different types of software architecture in common use.

 Simple control loop

In this design, the software simply has a loop. The loop calls subroutines,
each of which manages a part of the hardware or software.

 Interrupt controlled system

Some embedded systems are predominantly interrupt controlled. This


means that tasks performed by the system are triggered by different kinds
of events. An interrupt could be generated for example by a timer in a
predefined frequency, or by a serial port controller receiving a byte.

These kinds of systems are used if event handlers need low latency and the
event handlers are short and simple.

Usually these kinds of systems run a simple task in a main loop also, but this
task is not very sensitive to unexpected delays.

Sometimes the interrupt handler will add longer tasks to a queue structure.
Later, after the interrupt handler has finished, these tasks are executed by
the main loop. This method brings the system close to a multitasking kernel
with discrete processes.

 Cooperative multitasking

A non-preemptive multitasking system is very similar to the simple control


loop scheme, except that the loop is hidden in an API. The programmer
defines a series of tasks, and each task gets its own environment to “run” in.
When a task is idle, it calls an idle routine, usually called “pause”, “wait”,
“yield”, “nop” (stands for no operation), etc.

The advantages and disadvantages are very similar to the control loop,
except that adding new software is easier, by simply writing a new task, or
adding to the queue-interpreter.

18
 Preemptive multitasking or multi-threading

In this type of system, a low-level piece of code switches between tasks or


threads based on a timer (connected to an interrupt). This is the level at
which the system is generally considered to have an "operating system"
kernel. Depending on how much functionality is required, it introduces more
or less of the complexities of managing multiple tasks running conceptually
in parallel.

As any code can potentially damage the data of another task (except in
larger systems using an MMU) programs must be carefully designed and
tested, and access to shared data must be controlled by some
synchronization strategy, such as message queues, semaphores or a non-
blocking synchronization scheme.

Because of these complexities, it is common for organizations to buy a real-


time operating system, allowing the application programmers to
concentrate on device functionality rather than operating system services,
at least for large systems; smaller systems often cannot afford the overhead
associated with a generic real time system, due to limitations regarding
memory size, performance, and/or battery life.

Custom Operating System


A small fraction of embedded systems require safe, timely, reliable or efficient
behavior unobtainable with the one of the above architectures. In this case an
organization builds a system to suit. In some cases, the system may be partitioned
into a "mechanism controller" using special techniques, and a "display controller"
with a conventional operating system. A communication system passes data
between the two.

Additional Software Components


In addition to the core operating system, many embedded systems have
additional upper-layer software components. These components consist of
networking protocol stacks like CAN, TCP/IP, FTP, HTTP, and HTTPS, and also
included storage capabilities like FAT and flash memory management systems. If
the embedded devices have audio and video capabilities, then the appropriate

19
drivers and codecs will be present in the system. In the case of the monolithic
kernels, many of these software layers are included. In the RTOS category, the
availability of the additional software components depends upon the commercial
offering.

Development Process of ES
The development phase consists of the following:

1. Requirement Analysis
A thorough study is done for the requirements by the analyst using various
information gathering tools like interview, manuals, questionnaires etc.
2. Specification
During this phase the informal requirements are transformed into the formal
specifications using SDL.
3. System Architecture
The system’s architecture is decided and the architecture of the peripherals and
other devices is also decided.
4. Design
The architected system is designed. Each component is designed. This consists of
the various circuit diagrams, graphs and logic diagrams.
5. Implementation
The designed system is implemented i.e. the SDL specifications are translated into
VHDL (VHSIC hardware description language; VHSIC: very-high-speed integrated
circuit) for hardware modules.
6. Testing
Various testing techniques are used to check whether the system is working
properly or not.
7. Integration
All the designed components are then fabricated into a single unit.
8. Maintenance
The maintenance is to enhance or check for proper working of the system after it
is being used by the end-user.

20
Diagrammatic view of the Development phase

Requirement Analysis

Specification

System Architecture

Design

Implementation

Testing

Integration

Maintenance

21
Requirements of ES
• Reliability
Embedded systems have to work without the need for the rebooting or
resetting typical of many desktop systems. This calls for very reliable hardware
and software. If, for example the embedded system comes to a halt because of
a hardware error, the system should reset itself without the need for human
intervention. Certainly, reliability is critical in any system, but we are used to
resetting our desktop systems once in a while, thanks to the unpredictability of
operating system software. However, embedded software developers must
make the reliability of the hardware, as well as that of the software, of
paramount importance because the system is not readily accessible to human
intervention.

• Cost effectiveness
If an embedded system is designed for a very special purpose, such as for a
deep space probe or for use in a nuclear plant, cost may not be an issue.
However, if the embedded system is for the mass market, such as those used
in CD players, toys, and mobile device cost is a major consideration. Choosing
the right processor, memory device, and peripherals of critical importance. In
such cases, the designers will develop an Application Specific Integrated Circuit
(ASIC) or an Application Specific Microprocessor to reduce the hardware
components and hence the cost. Typically, a developer first creates a
prototype by writing the software for a general purpose processor and
subsequently develops an ASIC to reduce the cost.

22
• Low power consumption
Many embedded systems are powered by batteries, rather than a main supply.
In such cases, the power consumption should be minimized to avoid draining
the batteries. Hardware designers must address this issue-for example, by
reducing the number of hardware components, or by designing the processor
to revert to low power or “Sleep” mode when there is no operation to
perform.

• Effective use of processing power


A wide variety of processors with varying processing powers are available to
embedded systems. Developers must keep processing power, memory and
cost in mind when choosing the right processor. Processor is the term
generally used to refer to a micro controller, a microprocessor or a Digital
Signal Processor (DSP) used in embedded systems. The processing power
requirement is specified in million instructions first, and given this estimate,
the developer can choose the processor. With the availability of many
processors with the same capabilities, choosing a processor has become a
tough task nowadays. Considerations such as the cost of development tools,
support provided by the vendor and previous experience all play a role in the
choice.

• Efficient use of memory


Most embedded systems do not have secondary such as hard disk. The
memory chips available on the embedded system are only Read-Only Memory
(ROM), to hold the program and Random Access Memory (RAM), to hold the
date. Depending on the functionality, the developer many determine the
program size and the data size based on which memory requirements are
more important. The cost of memory is certainly going down, but even one
dollar can make a big difference, particularly with regard to consumer items.
As most embedded systems do not have secondary storage, flash memory is
used to store the program, including the operating system. Micro-controllers
and DSPs come with onboard memory (i.e., the same silicon contains the
23
memory as well). Such processors are used for small-embedded systems, as
the cost generally is low and the execution generally is fast.

• Appropriate execution time


In real-time embedded systems, certain tasks must be performed within a
specified time. Consequently, analyzing the tasks to meet such performance
constraints is of considerable importance. Normally, desktop PCs cannot
achieve real time performance. Therefore special operating systems, known as
real time operating systems, run on these embedded systems. In hard real
time embedded systems, which are subject to very strict to very strict
deadlines for performing specific tasks, the timing analysis is of great
importance. In Soft real-time systems, occasionally the task may not be
performed in a timely manner. The software development needs to ascertain
where the embedded system is a hard real-time system and perform the
performance analysis according. The performance requirement also calls for
code optimization to the maximum possible extent. Though software is
generally developed in a high-level language, some computation intensive
portions of the code may need to be written in assembly language in order for
the desired real-time performance to be realized. In such cases, of course you
need to learn the assembly languages of the target processor.

Embedded Applications
Embedded systems are found in a wide range of application areas. Originally they
are used only for expensive industrial control applications, but as technology
brought down the cost of dedicated processors, they began to appear in
moderately expensive applications such as automobiles, communications and
office equipment and televisions. Today’s embedded systems are so inexpensive
that they are used in almost every electronic product in our life.

24
Application Area Examples

Aerospace Navigation systems, Automatic Landing systems flight


altitude controls, Engine Controls, Space exploration.
Automotives Fuel injection control, Air bag control, Passenger
environmental controls, GPS mapping antilock braking
systems.
Children’s Toys Now we see so many electronic toys.
Communications Satellites, Network routers, Switches, Hubs, Mobile
communications.
Computer Printers, Scanners, Keyboards, Displays,
peripherals MODEMS Hard disks drivers, CD-ROM
Home Dishwashers, Microwave ovens, Televisions, VCR’s
Stereos, Fire/security alarm systems, Lawn sprinkler
controls, Thermostats, Cameras, Clock radios, Answering
machines.
Industrial Elevator controls, Surveillance systems, Robotics.
Instrumentation Date loggers, Oscilloscopes, Signal generators, Signal
analyzers, Power supplies.
Medical Imaging system (X-RAY, ECG and ultrasound), Patient
monitors, Heart pacers.
Office automation FAX machine, Copiers, Telephones, Cash Registers,
Automated teller machine
Personal Personal Digital Assistants (PDAs), Pagers, Cell phones,
Wrist Watches, Video games, Portable MP3players, GPS,
internet appliances.

Problems faced during development


• How can we capture the required behaviour of complex system?
• How do we validate specifications?
• How do we translate specification efficiently into implementation?
• Do software engineers ever consider electric power?
• How can we check that we meet real-time constraints?
• How do we embed real time software?

25
Advantages of ES
1. Design and Efficiency

The central processing core in embedded systems is generally less


complicated, making it easier to maintain. The limited function required of
embedded systems allows them to be designed to most efficiently perform
their functions.

2. Cost

The streamlined make-up of most embedded systems allows their parts to be


smaller less expensive to produce.

3. Accessibility

Embedded systems are difficult to service because they are inside another
machine, so a greater effort is made to carefully develop them. However, if
something does go wrong with certain embedded systems they can be too
inaccessible to repair. This concern is sometimes addressed in the design
stage, such as by programming an embedded system so that it will not affect
related systems negatively when malfunctioning.

4. Maintenance

Embedded systems are easier to maintain because the supplied power is


embedded in the system and does not require remote maintenance.

5. Redundancies

Embedded systems do not involve the redundant programming and


maintenance involved in other system models.

26
Bibliography
 www.about.com
 www.docstoc.com
 www.slideshare.net
 www.ehow.com
 www.howstuffswork.com
 www.studentyogi.com
 www.ercim-news.eu
 www.answers.yahoo.com
 www.wiki.answers.com
 www.wikibooks.org
 www.wikipedia.org
 Fundamentals of Embedded Software
 Architecture of Embedded System

27

You might also like