A PAPER PRESENTATION ON EMBEDDED
SYSTEMS
Introduction
The world is being
captured by the small devices. These small devices are capturing our life at a
very rapid rate. You will find your day-to-day devices getting smaller and
smaller, yet are capable of outperforming their ancestors in terms of
performance, efficiency.
Embedded
realtime programming was once looked upon as a niche skill that many
programmers can keep themselves away from, but not now anymore. The focus now
is on very intelligent devices. Let us consider the good old washing machine.
The main purpose of a washing machine is to wash clothes. But the modern world
has extended it to include special features and give more control thereby
optimizing actual process of washing clothes. Present day washing machines come
complete with sensors, which maintain optimum water temperature, cloth
dependant spin speed, number of spins, etc. They take care of filling water,
heating it to a particular temperature, mixing the optimum amount of detergent, soaking the clothes in water for
just the right time, the soft tumble for extracting dirt, aggressive tumble for
removing stains, and finally the spin-dry. More necessarily, this happens with
the minimum amount of user intervention. The user just has to select type of
clothes being put inside the machine. (and obviously how dirty they are!☺ ) All this is not magic. This is
because somebody hit upon a brilliant idea that we can use a small
microprocessor to automate a lot of the dreary process of washing.
What Is An Embedded
System?
A rough definition
of an embedded system can be: “A microprocessor based system that does not look
like a computer”. Technically speaking, “An embedded system
is a special-purpose computer system, which is completely encapsulated by the
device it controls”. It is a small computer system that is
generally hidden inside the equipment (machine, electrical appliance,
electronic gadget) to increase the intelligence of the equipment for better or
more efficient functionality. Embedded system involves both the software and
hardware co-development. Embedded systems are often easier to understand in
terms of smart
devices, Intelligent or automated devices.
An embedded system has specific requirements and
performs pre-defined tasks, unlike a general-purpose personal computer.
It can satisfy the strict requirement of functionality, reliability, cost,
volume, and power consumption of the particular application. Embedded systems
are electronic devices, which are integrated into a technical environment. They
are intended to execute internal functions as a response to certain input
values and process technical information data. These functions are usually
executed by a micro-controller (Eg.: 8051), which communicates with the
environment by sensors and actuators. Optionally, there is one interface for
the user and another one for the network. An user of an embedded system is not
able to change the functionality of system through modifying or replacing the
software. He is just able to make choice regarding functionality. Figure shows
a typical embedded system.
Figure:
A
TYPICAL EMBEDDED SYSTEM
Let us consider
the previous example of washing machine. The sensors detect that the quantity
of water inside the machine is at a certain level and indicate this to the
processor. The processor computes the required quantity of water that is
necessary for the number of clothes and based on user settings. It then
generates a control signal to stop the flow of water inside the machine and
switch on the heater. The temperature detector keeps on giving indications
about the current temperature inside the washing compartment. At the optimum
temperature for the kind of clothes to be washed, the processor generates a
control signal to stop the heater. Then it gives a signal to start the soft
tumble action to soak the clothes properly in water and mix the detergent. The
processor will keep a watch on the amount of time the soft tumble action is
going on. At the optimum time, it will stop the soft tumbler and start the
aggressive tumble action to fight the stains. As illustrated, the seemingly
simple task of washing clothes is a big exercise for the processor!!
With rapid
development of IC design and manufacture, CPUs became cheap. Lots of consumer
electronics have embedded CPU and thus became embedded systems. As embedded
systems started progressing, they started becoming more and more complex and
intelligent. But what exactly do we mean by intelligence? Intelligence is one
of the terms that can’t be directly defined.
History of Embedded Systems
The first recognizably modern embedded system was
the Apollo Guidance Computer, developed by Charles Stark Draper at the MIT Instrumentation Laboratory. Each
flight to the moon had two. They ran the inertial guidance systems of both the
command module and LEM. At the project's inception, the Apollo
guidance computer was considered the riskiest item in the Apollo project. The
use of the then new monolithic integrated circuits, to reduce the size and
weight, increased this risk.
The first mass-produced embedded system was the guidance computer for the Minuteman
missile in 1961. It was the Autonetics D-17 guidance computer, built using
discrete transistor
logic and 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 used integrated circuits, and
was the first volume user of them. Without this program, integrated circuits
might never have reached a usable price-point.
The crucial design features of the Minuteman computer were that its
guidance algorithm could be reprogrammed later in the program, to make the
missile more accurate, and the computer could also test the missile, saving
cable and connector weight.
Examples of Embedded Systems
·
automatic
teller machines (ATMs)
·
cellular
telephones and telephone switches
·
computer
network equipment, including routers, timeservers and firewalls
·
computer
printers , copiers
·
disk
drives (floppy disk drives and hard disk drives)
·
engine
controllers and antilock brake controllers for automobiles
·
home
automation products, like thermostats, air conditioners, sprinklers, and
security monitoring systems
·
household
appliances, including microwave ovens, washing
machines, television sets, DVD players/recorders
·
inertial guidance systems, flight control
hardware/software and other integrated systems in aircraft and missiles
·
measurement
equipment such as digital storage oscilloscopes,
logic
analyzers, and spectrum analyzers
·
multifunction
wristwatches
, handheld calculators
·
Multifunctional printers (MFPs)
·
personal digital assistants (PDAs), that
is, small handheld computers with PIMs and other applications
·
mobile
phones with additional capabilities, for example, mobile digital assistants
with cellphone and PDA and Java (MIDP)
·
programmable logic controllers (PLCs)
for industrial automation and monitoring
·
stationary
videogame consoles and handheld game consoles , wearable computer
Characteristics of Embedded Systems
Embedded systems are usually designed to perform selected functions at a
low cost. The system may need to be very fast for some functions, but most of
its other functions will probably not need speed. We can thus define a smart
device by the following attributes.
·
Computational
power : The small amount
of computing power required by these devices is provided by simple 8-bit
controller or by high end 64-bit microprocessor.
PROCESSING POWER
·
Memory: These devices possess some amount of
memory that can be used by the processor and also some to remember the user
data and preferences.
·
Realtime:
These devices have to respond to the user’s input in a specified period
of time.
·
Communication: The device must be able to receive
inputs given by another devices in the environment, process it and provide some
tangible output to other devices or users.
·
Dynamic
decisions: The system
should be able to change its next course of activity based on the change of
input from sensors or surrroundings.
Challenges for Embedded Systems
Each of the attributes
mentioned above is undergoing a major series of transformations. Processors are
getting more and more powerful. Memory is getting cheaper and better. Hence programming for embedded systems offers unique challenges,
not found in PC/ Workstation based applications. Some of these are listed
below:
·
Limited
OS support: Operating
system in embedded systems is a part of the application code and closely
co-ordinates with OS to support a
majority of the features that a desktop OS may provide.
·
Limited
secondary memory: Many
embedded systems do not boot from a hard disk. (A cell phone with hard-disk ?
☺)They depend on nonvolatile memories like FLASH/ROM instead of hard disks and
floppy disks. Hence the code size must be small.
·
Limited
RAM: We do not have virtual memories or swapping
concepts in embedded systems. And as these programs tend to run forever, care
should be taken to avoid memory leaks.
·
Limited
processing power: We
cannot afford to have a Pentium4 2.4 Ghz
processor to power a microwave
oven because of obvious cost considerations. Instead, we have to work with microprocessors
that clock 10-100 Mhz or even with micro-controllers with less powerful
configurations.
·
Interaction
with the hardware: This
the caveat which singularly differentiates a normal application programming
from embedded programming. RTOSes in embedded systems normally do not provide a
high level of abstraction over hardware.
·
Absence
of standard I/O devices:
Many of the embedded systems do not have standard input or output devices like
the mouse or keyboard which a normal PC has.
So there is no direct way of knowing what is happening within the
system. This limits the debugging possible on the embedded system.
No comments:
Post a Comment