Embedded System
Introduction:
A system is a way of
working, organizing or doing one or many tasks according to afixed Plan,
program, or set of rule.
An embedded system is a
system that has embedded software and computer hardware, which makes it a
system dedicated for an application or specific part of an application or
product or a part of a larger system.
It is not easy to give
precise definition of embedded system as it is complex system but in simple words we can say that:
“It is the system which is
on a single chip or employs a combination of hardware (computational engine)
and software to perform a specific function.”
It is one type of computing
device but not like PC. We can better understand such systems by examining
common examples and common characteristics. Embedded system is found in a
variety of common electronic devices such as consumer electronics, home
appliances, office automation, business equipment and automobiles.
Characteristics of embedded system:
- It
acts as single functioned or has tightly bound set of functions means it
is not used as general purpose.
- It
is very reactive and real time constrained.
- Increasingly
high performance.
- Application
specific processor design can be a significant component of some embedded
system.
Requirements
of embedded systems:
Types of requirements imposed by embedded
applications:
1 Functional requirement
2 Temporal requirements
3 Dependability requirements
1. Functional
Requirements
Ø Data Collection
Ø Direct Digital Control
Ø Man-Machine Interaction
2. Temporal Requirements
Ø Tasks may have deadlines
Ø Minimal latency jitter
Ø Minimal error detection
latency
Ø Timing requirements due to
tight software control loops
Ø Human interface
requirements.
3. Dependability
Requirements.
Ø Reliability
Ø Safety
Ø Maintainability
Ø Availability
Ø Securit
Classification
There are three types of embedded
system are classify.
1). Small scale embedded system:
These
system are designed with a single 8 or 16 bit microcontroller; they have little
hardware and software
complexities and involve board-level design. They may even be battery
operated. When developing
embedded software for these, an editor, assembler and cross
assembler, an integrated
development environment tool specific to the microcontroller or
processor used, are the main
programming tools
2) Medium scale embedded system :
These
system are usually designed with a single or a few 16 or 32 bit
microcontrollers,
DSPs or RISCs.These system may
also employ the readily available single purpose processors
and IPs for the various function
–for example, bus interfacing.Mediam scale embedded system
have both hardware and software
complexities.
3) Sophisticated embedded systems:
Sophisticated
embedded system have enormous hardware and software complexities and
may need several IPs, ASIPs,
scalable processors or configurable processors and programmable
logicarrays.They are used for
cutting edge application that need hardware and software co-
design and components that have
to be integrated in the final system .They are constrained by
the processing speeds available
in their hardware units.
Block
diagram of embedded system
An embedded system typically
comprises the embedded hardware, embedded RTOS, device drivers, communication
stacks and embedded application software.
- Hardware: processors, ASICs (application specific ics), memory.
It is used for performance and sometimes.
- Software: C or Assembly language is used as software. It is used
for providing features and flexibilities.
Major Components in Embedded
Systems
Ø Data acquisition and
processing
Ø Communication
Ø System logic and control
algorithm
Ø Interface
Ø Auxiliary units
§ Display
§ Storage
§ Monitoring and protection
§ Test and diagnosis.
ARCHITECTURE
Embedded hardware
Functioning of
any embedded system is depended on three aspects processing, storage, and
communication. We use processor to implement processing, memory to implement
storage and buses to communicate.
- Processor:
A processor is a digital
circuit designed to perform computation tasks. A processor consists of data
lines capable of storing and manipulating data and controller capable of moving
data through the data lines.
|
In many applications we use micro controllers in place of
processors.” A micro controller is a device that includes microprocessor,
memory and I/O signal lines on a chip.”e.g.families of MC68HC11,MC68HC12 .
- ASICs: (Application Specific Integrated Circuits)
It is the silicon chip with
an array of unconnected transistors. It includes gate arrays and standard cell
ICs. It is the basic part of embedded system. It is a semi custom device. The
function is defined by the designer for particular application but not defined
by the manufacture.
- Memory:
A fixed size volatile memory such as DRAM or SRAM & non-volatile memory such as flash or EPROM, connected to
microprocessor or micro controller, is used. So the range of memory is depend
upon the application means according to microprocessor or micro controller
Memory access refers to either read or write. Some types of memory write
ability refers to the manner & speed. Depending upon various memory types
of writing that particular memory.
At the high end of the range, we have types of memory where we simply or
quickly write. At the middle range, we can slowly write. At the lower end of range, we have types memory
that can be only written by programmer. In some cases the available memory is
larger then needed this becomes easy to deal with but if the available memory
is smaller than needed, then we must imposed several smaller memories to behave
as a large memory.
4. Peripherals:
According to the
block diagram of embedded system as shown in the figure above analog I/O
consists of the several peripherals according to the requirement or the
application. Some of the peripherals are listed below:
·
Timer, counter
Timer is the most common peripheral device that measures time intervals.
It can be used to either generate events at specific times or to determine the
duration between two external events. As for the example, keeping the traffic
light green for a specific duration, etc.
Counter is a more general version of timer. For example, counter can be
used to count the number of cars that pass over road sensor or the number of
people passing through the turnstile.
- UART (universal asynchronous receiver/transmitter)
It is used in serial communication. It is needed to communicate bytes of
data between devices that are separated by long distances or when those devices
have few available I/O pins. Internal construction of UART includes some
registers and two independent operating processors one for receiving and other
for transmitting.
- Pulse width modulators
Pulse width modulation is used to generate clock like signals to another
devices. This approach is beneficial for single purposes by simplicity and
efficiency
For example,
pulse width modulation can be used to blink a light at a specific rate.
- DMA controller (direct memory access)
It is used for transferring data between memories and peripherals. We
have IC 8257 for DMA controller. We can easily interface it with microprocessor.
It can transfer a full block of data, hence is used in CD ROM or disk
controllers.
- LCD controllers (liquid crystal display)
It is the display or output device. It is a very low cost power device.
It can display text and images. For example, watches, fax and copy machines,
calculators.
- Keypad controllers
It is the input device and is used to give the input to the embedded
system.
- Stepper motor controllers
It rotates a fixed number of degrees whenever step signal is applied. We
can directly give DC signal to it. Stepper motors are common in embedded
systems with moving parts like disk drivers, printers, photocopy and fax
machines, robots, camcorders, etc.
- ADC
converters
It is most useful as embedded systems deal with digital signals but its
surroundings consist of many analog signals, which are the input to the
embedded system like temperature, speed.
- Real time clocks (RTC)
It keeps the time and date in an embedded system.
Depending on the targeted
application of the device the peripherals can include communication devices
such as serial controllers, Ethernet controller or wireless communication
controller and other application specific ICs.
Other blocks of ES:
Major functional block decisions must be made under this,
such as the selection of real time kernel, major algorithms and data structures
in software, or the power source or networking protocol used in hardware.
For micro controller –
based designs we require MCU resources such as GPIO ports, timers and ADCs.
Interfacing schemes
One
factor that makes an ES different from a regular computer is the special I/O
devices we interface to our ES. Interfacing includes both the physical
connections of the hardware devices & software routines that affect
information exchange. We can use many interfacing schemes like: parallel I/O
interface, memory interface, high speed I/O interface, analog interface.
Embedded Software
|
Programming is
the design and debugging of a sequence instruction. Basically software contains
programming of processor of the embedded system. Two types of programming
languages are mainly used:
- Assembly language
- C
programming language
The selection of language affects the selection
of processor, memory and development tools and is driven by portability,
reliability and readability.
Assembly language
It is made up of a set of
mnemonics each mnemonics corresponds directly to a processor machine instruction
code. So for translating assembly language we need assembler and in embedded
system we use cross assembler. Nearly every embedded system requires that at
least some portion of the program be written in assembly language, which may
deal with low-level I/O operations. But assembly language is not widely used.
C language
As it is the high level
language it is shorter and easier to write. It is independent of the processor,
but we need a compiler to translate high level language to machine code. Using
C language has two important advantages, because of which it is much easier for
programmer to write quality programs that are easier to read, revise, and port
to a different system. This advantages are- 1.built in structure.
2.type checking
& abstraction.
If the embedded device is capable of
communicating total eternal world, it has a software-communicating stack
running on the top of the operating system. In order to connect the Internet
the embedded device needs a TCP/IP stack. Hence it is used more frequently
thanassembly language. In many application user used this language.
OPERATING SYSTEM
All intelligent devices that
perform complex functions have an embedded OS inside it. This OS is typically
real time in nature i.e., it is capable of responding to time critical external
events.
The concept of real-time
operating system (RTOS) is inseparable when we talk about embedded systems.
RTOS is built for specific applications and guarantees response to an external
event within a specified time constrain. It responds to inputs immediately. for
example, when u suddenly apply breaks of yr car to avoid an accident, the
“intelligent gadget” responds immediately. Vxworks is the most widely adopted
RTOS in the embedded industry.
OS is larger software that
provides low-level services to large applications. OS is responsible for
deciding what program is to run next on the processor and for how long. This is
called task scheduling. OS provides various software hardware interrupts.
Device drivers are the lowest level software that acts as glue between the
operating system and the peripheral device that is connected to the
microcontroller. Best example of OS is Linux. It is used in many applications.
In recent times, Linux has migrated from servers and workstations to be used in
diverse embedded applications.
Real time ES
Ø
All Virtually embedded
systems require real-time response while running more than one task.
Ø
A Real-time system is
the system that must respond to signals within explicit and bounded time
requirements.
Ø
To coordinate the
process of sharing the CPU between multiple tasks, we use a program called a
kernel. A kernel is the part of an operating system that schedules and
dispatches tasks. For most ES we need a real time kernel because deterministic
response time is required. In new ES real time kernels are used, e.g., Digital
camera
ATM, Battery charger,
Camcorders, Cell phones, etc.
Application:
- Military
and aerospace embedded software applications
From in-orbit embedded systems to jumbo jets to vital
battlefield networks, designers of mission-critical aerospace and defense
systems requiring real-time performance, scalability,
and high-availabilityfacilities consistently turn to the
LynxOS® RTOS and the LynxOS-178 RTOS for software certification
to DO-178B.
Rich in system resources and networking services, LynxOS
provides an off-the-shelf software platform with hard real-time response backed
bypowerful distributed computing (CORBA), high reliability, software
certification, and long-term support options.
Medical devices can now have the best of both worlds, with
hard real-time applications running alongside commercial desktop operating
systems on the same industry-standard Intel® processors.
Communication is essential to achieving a dependable
distributed embedded system.An example of an event based communication system
is the typical office network. Messages are generated by users whenever they
send data to printers, access data on shared network drives, run applications
that exist on other machines or send email to others in the network.
Various classes of embedded systems such as home media
systems, portable players, smart phones, embedded medical devices and sensors,
automotive embedded systems have surrounded us and with continued convergence
of communications and computing functions within these devices, embedded
systems are transforming themselves into really complex systems, thus
creating newer opportunities and challenges to develop and market more
powerful, energy efficient processors, peripherals and other accessories.
Industrial automation (IA) is the vast area of embedded
computing devoted to industrial applications. Apart from many tailored
solutions (numerical controllers, hardware controllers, etc.) the scene is
dominated by programmable logic controllers, widely known by the abbreviation
PLC, which represent the most wide-spread class of embedded computing
platforms.
Advantages:
Ø Customization yields lower
area means compact size
Ø Lower power
Ø Lower cost
Creating computer hardware
requires precise engineering design & when it is an embedded system, it has
to be more than reliable. Besides being low in cost & sufficiently high on
performance.
Disadvantages:
Ø Higher hardware/software
Ø Need designer, compilers,
debuggers
Ø May result in delayed time.
Conclusion:
From what we saw
above we conclude that embedded systems are very much advantageous. More &
more developments are taking place in embedded systems. Even in INDIA software
called mistral has developed text to speech and speech to text recognition
technologies to give the car occupants the ultimate comfort. A DSP based biomedical card developed by
mistral allows remote monitoring of up
to 32 patients at a given time through central computer. This system is capable
of acquiring ECG data from patient 7 analyzing it.
Tata InfoTech has done many remarkable projects in embedded application.
Now a days readymade chip of micro controllers which are already programmed for
specific functions, are available. It is very cheap also.
Finally
we can say that embedded systems are electronic devices that incorporate a
computer (usually a microprocessor) within their implementation. A computer is used in such devices primarily
as a means to simplify the system design and to provide flexibility.Often the
user of the device is not even aware that a computer is present.
The day is not far when
almost all automobiles would interact with computers on dashboards from
ordering a pizza to booking tickets at nearest theater. Things would be as easy
as giving orders to your servant.
Bibliography
1. Embedded system : by – Raj Kamal
2. Embedded system : Wikipedia.com
3. www.lynuxworks.com
4. Embedded Systems Design
by Arnold S. Berger,