Let me welcome you to this course that will
be conducted jointly by myself and Dr. Kamalika
Datta.
In this course we shall be talking about various
aspects of Embedded System Design, in particular
we shall be emphasizing on some hands-on design
examples.
As the vehicle of demonstration we shall be
primarily working with two different embedded
system platforms; one is based on an ARM based
board and the other one will be a standard
Arduino Uno based board.
Now before we proceed with the actual experimentation,
it is always good to have some theoretical
background and some motivation behind why
we need an embedded system, what are the main
characteristics of an embedded system and
what are the design alternatives.
So, in this context the first lecture of this
course, is titled Introduction to Embedded
Systems.
Here we shall be primarily talking about embedded
systems, what it is basically and some typical
applications, and inside an embedded systems
what kind of typical subsystems we normally
get to see.
These are a few things that we shall be discussing
as part of this course.
The first thing I want to emphasize is that,
we have been very lucky that we have been
born and brought up in an age of computing.
Since our birth many of you have seen computer
systems around you, but of course, the scenario
was not the same maybe 4 or 5 decades back.
There has been a fantastic proliferation of
electronics, computing systems, low power
devices, and there are various kinds of advancements
that have taken place over the years.
The first thing I want to emphasize is that
computer systems are everywhere today.
If you look around you; well I am not talking
about in a technical environment, not in your
laboratory, not in your college well even
in your residence when you wake up from your
sleep.
If you look around you, you will find several
instances of some computational devices that
will be sitting somewhere.
This is the kind of environment where we have
all grown up.
Traditionally speaking, we have become familiar
with computers that are either desktops, laptops,
servers etc. that are more conventional in
some sense.
Desktop computers are typically machines where
you have learnt your computing on.
Today laptops have become very much affordable,
most of us own our personal laptops.
So, laptops are replacing the role that desktops
used to have earlier.
Talking about mobile phones this is a very
underestimated computing device.
Whatever is inside a mobile phone today, if
you think of the computational capability
of the computers that existed 30 to 35 years
back, believe me the processes that are inside
a mobile phone are of the tune of 1 million
times more powerful as compared to what you
used to see in the large computer systems
in those days.
But mobile phones we use for some specific
applications, for its use as a phone, sending
messages.
And of course, for recreational purposes we
can watch video, we can browse internet, and
there are so many new applications that you
can run on mobile phones today.
But what I want to say is that, there is another
kind of computing system that is often hidden
from us.
Hidden means we cannot see those computing
systems.
Like we know desktop can compute, a laptop
can compute, a mobile phone can also compute
in some sense.
But if you look at a refrigerator, if we look
at our air conditioning machine, do they look
like a computing machine?
No.
But inside those machines there is some computing
brain hidden, that is what I am referring
to as this hidden thing.
These are far more common in our daily life
and pervasive, as they are everywhere, and
the point I want to make is that, they are
hidden in the environment for which they were
created.
Now, such systems are traditionally referred
to as embedded systems.
We mean these are computing systems, but they
are embedded inside the environment.
By the term environment we mean the surroundings
or actually the scenario for which the system
was designed.
Let me take the example of an air conditioning
machine again.
An AC machine is supposed to be housed inside
a room normally.
Now this computing system that is sitting
inside an AC machine, for that computing system
the AC machine is the environment.
It does not interact with anybody outside
that AC machine.
It is responsible for controlling the AC machine,
it is responsible for responding to whatever
you are pressing on your remote control, you
are given giving some commands to the ac machine
and so on.
These are the kind of commands that those
computing machines inside are responsible
to respond to.
Talking about embedded systems again, what
are these embedded systems?
I already gave an example.
So, now it must be somewhat clear to you.
Embedded systems are computers they are embedded
within other systems.
Now on the right side I have given some pictures.
You see these examples, here you see a washing
machine, this is a refrigerator, this is a
laser printer, this is a digital camera, this
is an automobile and here you can see a missile
that is flying through the sky.
These are all examples of embedded systems,
they are fairly powerful computing systems
or devices inside them of course, the power
of these computing systems depend on the specific
application.
For some applications you do not need too
much computation power, but for a system like
missile lot of computations need to take place
in real time.
As the missile flows in its trajectory, there
is continuous feedback from the environment
and there are some corrective actions that
need to be taken such that the missile can
follow the correct path and hit the target
in a precise way.
So, it depends on the environment.
Now this “other systems” can refer to
anything, it is very hard to define in a very
specific way.
But broadly speaking you can say that these
other systems are any computing system, which
are not our conventional computers like desktop,
laptop, servers etc.
Any computing system that is not one of these,
they are sitting somewhere and working with
the environment, they can be classified as
embedded systems.
Some typical examples are given here.
And again just as I said depending on the
application, processor can be very simple
and inexpensive.
Because there are many devices, let me take
an example again.
Suppose you have gone to the market to buy
a microwave oven, they are available for prices
ranging for Rs. 3000 and more.
They are pretty cheap in comparison.
There are embedded processors inside micro
ovens also.
Now if I say that I need a very powerful Pentium
processor to be sitting inside a microwave
oven, the price of that Pentium processor
itself will be 5000 rupees including all accessories
and peripherals, then this will be economically
not viable.
They have to be very cheap depending on
the applications.
Today a very large number of embedded systems
are being used all over the world in various
applications, billions of them versus millions
of conventional computing units.
So, the number of such embedded computing
devices far outnumber the number of conventional
computing devices today.
There are some common features that are present
in most embedded systems, let us look at some
of them.
First thing is that they are special purpose
or single functional.
Like an air conditioning machine, there is
a processor inside, the sole purpose of that
processor is to ensure that the ac machine
is working properly, and nothing else.
So, it is not trying to help you in calculation
in doing some maths, and so on.
So, it is very special purpose in that sense.
It typically it executes a single program
related to the application for which it was
built, and it can take inputs from the environment.
You think of an ac machine; the inputs from
the environment means, well the user can send
some commands via the remote control.
The ac machine itself can have some sensors
inside it, can sense what is the current room
temperature, what is the current humidity
level.
Accordingly it can activate the various subsystems
inside in a very optimum way.
You think of a refrigerator there normally
there are some control panels.
You can set the temperatures and other factors
there.
It depends again on the application, through
the environment you can send some commands
to the processor, and the processor will respond
accordingly.
Some examples I have given, like microwave
oven, washing machine, ac machine.
And for most of these embedded systems there
are very
tight constraints on cost, energy and also
form factor.
The processor has to be low cost otherwise
the system will not be economically viable.
The processor must not consume too much energy
from the power source or from the battery
wherever it is working.
Because the processor is hidden from you and
it is expected that the user should not worry
too much about energy.
Form factor; you think of an ac machine nowadays
that are very sleek, now you cannot afford
to have a computer inside which is very bulky
and big because that will make your system
also bulky and big.
So, depending again on the system, your computing
system must be made very compact and should
fit inside without any appreciable increase
in area.
So, low cost, low power, small size, relatively
fast these are some of the characteristics,
and another important thing is that it should
have real time response.
You think of ac machine, suddenly due to some
reason the temperature of the room has gone
up.
It must turn on the compressor at high power
to bring down the temperature.
So, it must respond to these external inputs
in real time, it cannot say that well I shall
respond to this after 10 minutes.
Real time means, whenever an input comes,
within some specified time the system should
respond to that input.
Most embedded systems respond in real time.
They take inputs from the system environment
and should carry out the computations; the
tolerable delay varies from application to
application.
So, these are some of the common features.
Now, there are some design constraints as
well; some of these are pretty obvious.
The processor should be a low cost thing.
You should not make it too expensive because
that will also make your system inside which
it is embedded, it will make that also quite
expensive.
You cannot afford to use a very sophisticated
processor inside such a machine; like inside
a microwave you cannot afford to put a sophisticated
processor like the Pentium, because the cost
of the Pentium itself is pretty high.
Low energy consumption is another property
which is pretty common.
Well even for machines which operate from
electric power, like a refrigerator if you
put it on and go away, it is expected that
it will consume very low power.
And secondly, there are many gadgets which
also operate on battery.
For them obviously, energy consumption is
a big issue.
And because these processors are very simple,
the amount of memory they have is also pretty
small.
So, whatever program you write, whatever computation
you do they must fit inside that limited memory
space.
I mentioned many applications demand real
time response; within a specified time, the
system should respond to the inputs.
Now, how can we define an embedded system
based on whatever we talked about so, far?
Well embedded system can be loosely defined
as a microcontroller based system.
This is true for most of the embedded systems.
The processor that is inside has to be low
cost it has to be low power, it has to be
small in size.
There is some kind of processor called microcontroller
that we shall be talking about throughout
this course, they satisfy all these criteria.
Most of the embedded systems have microcontrollers
inside them, they are like a complete computer
in a single chip.
Whatever you need, processor, memory, IO everything
is inside a single chip and therefore, it
is very low cost.
So, it should be a microcontroller based system
and not general purpose.
It should control a function or a range of
limited set of functions.
And another point is that, this is not meant
to be programmed by the user.
Like a laptop or a desktop you can write a
program, well you can write a program to compute
the factorial of a number, to find the sum
of n numbers etc.
But whenever you think of an embedded system
inside a device like your ac machine.
You normally do not use it for your day to
day computation, you cannot program it yourself.
It comes to you factory programmed, you cannot
modify the program, it is a fixed program
system -- you are only using that program.
The user can give inputs for example, through
the remote controls, but cannot change the
functionality.
You cannot change an ac machine to something
else like a room heater for example.
The user normally cannot make any modifications
to the software, but of course, nowadays systems
are becoming more sophisticated; you think
of a set top box that you use with your TV
sets.
Set top box are also embedded systems, there
are quite powerful processors inside them.
Now sometimes you may have noticed that while
watching some programs or when you are switching
it on, it says downloading updates.
Well the software that is running inside the
set top box also gets periodically updated
by the service provider.
That facility is provided inside that set
top box.
Just like your standard operating systems
like windows that frequently needs some updates
to be installed.
That means, you need some modifications to
your existing software to make it better in
some sense.
So, normally you cannot program your washing
machine or refrigerator or a car, but maybe
tomorrow with the next generation embedded
systems coming, you may be able to program
them also.
Like when you drive a vehicle you may program
it and customize it according to your need,
but as of today the systems come with very
limited choice to the users; may be a few
things user can specify, but not all.
This is a schematic diagram of an embedded
system.
The embedded computer is sitting in the middle,
which has some hardware, the microcontroller
and some program which is running on its software.
It takes inputs through some sensors, and
it can control something through some outputs,
and there are typically some user interfaces
like some switches, some small keyboards,
like some touch sensors maybe a remote control,
these are all user interfaces and it can also
have some links to other subsystems.
This is a general schematic of an embedded
system.
Now, what embedded system is not?
Well it is not a microprocessor sitting inside
a traditional computing system.
We call it a computer, we do not call it an
embedded system.
Well it is a microprocessor used to control
another piece of technology like ac machine,
like microwave, like refrigerator and so on,
this is what an embedded system is.
It is embedded inside some other system.
Now as I had said for low cost microcontrollers,
that they are single chip devices.
You see here I have shown a picture of a microcontroller
that belongs to the PIC family.
This is a PIC microcontroller, this is a layout
diagram where processor, memory, IO subsystems
everything is embedded inside the same chip.
Now talking about some applications of embedded
systems, you can summarize some of them, but
they are limited by imagination, there is
no limit to what you can imagine.
And the number of such applications will only
increase day by day.
Today we are talking about IoTs, tomorrow
IoT will be everywhere, maybe some of those
devices will be inside your body, you will
be carrying those devices along with you.
In the consumer segment you can think of refrigerator,
washing machine, AC machine, camera, this
already we have talked about.
Even in your office you use printers and fax
machines, photocopying machines, scanners,
biometric scanner, cameras for surveillance,
they are all examples of embedded systems.
You think of automobiles; today all automobiles
are intelligent in some sense, there are some
computational devices that try to utilize
the infrastructure inside those automobiles
in an efficient way.
So, airbags, anti-lock braking systems, engine
control, door lock, GPS, everything here these
are controlled by embedded processors.
For communication the mobile phones is the
biggest example; you think of the network
switches that we use for communication routers,
switch, Wi-Fi hotspots, telephones there are
processors inside each of them today.
Then you can have automatic door locking systems
we see it many places; automatic baggage screenings
in airports and railway stations, surveillance
systems, intelligent toilets, where there
are some embedded systems inside toilets that
can respond to users’ needs automatically
these are all examples of embedded systems.
Again talking about that diagram, this is
what embedded system looks like.
We have to have an embedded computer with
some hardware, you have to write some software
to do it, and of course there has to be a
proper user interface to make it usable.
And user interface has to be simple enough,
it should not be a full big large keyboard
where you can type anything and everything.
It will be very specific to a particular application.
This is just like a cartoon I am showing.
This rectangular box is a processor.
Inside the processor you can see so many things.
You can see a digital to analog converter,
you can see analog to digital converter, counters,
timers, pulse width modulator, so many subsystems.
In addition to processor, memory, IO ports
etc. a typical microcontroller today that
forms the heart of an embedded system can
contain analog to digital interfaces, because
most of the inputs from the outside world
are analog in nature, they are continuous
in nature, like temperature, humidity, pressure,
etc.
With this we come to the end of this lecture.
We shall be continuing with our discussion
in our next lecture.
Thank you.