Embedded Systems Basics and Applications
Embedded Systems Basics and Applications
Applications
Embedded Systems
Embedded system was first used in “Building Apollo Guidance System” by Charles Stark
Draper at MIT (Massachusetts Institute of Technology) in the year 1960; it is one of the
modern embedded systems, which is used for navigation and control of the respective
crafts. Usage of the Apollo Guidance System is a risk because it is developed by using a
keypad and numeric display. It was frequently used and refined in a lot of NASA’s space
missions. Then, the Autonetics D-17 Guidance Computer has come for the Minuteman
Missile- an ICBM (Intercontinental Ballistic Missile) is used by the United States Air Force.
Let’s look at an overview of the advanced embedded system basics and applications.
The embedded systems basics include the components of embedded system hardware,
embedded system types and several characteristics. An embedded system has three
main components: Embedded system hardware, Embedded system software and
Operating system.
Power Supply
Processor
Memory
Timers
Serial communication ports
Output/Output circuits
System application specific circuits
Availability of system memory
Availability of processor’s speed
When the system runs continuously, there is a need to limit power dissipation for
events like stop, run and wake up.
A system is said to be real time, if it is essential to complete its work and deliver its service
on time. Real time operating system manages the application software and affords a
mechanism to let the processor run. The Real Time operating system is responsible for
handling the hardware resources of a computer and host applications which run on the
computer.
An RTOS is specially designed to run applications with very precise timing and a high
amount of reliability. Especially, this can be important in measurement and industrial
automation systems wherein downtime is costly or a program delay could cause a safety
hazard.
Memory:
In an embedded system, there are different types of memories. The various forms of
memories are presented in the below chart.
Memory
Processors:
Different processors used in embedded systems are microprocessor, (DSP) Digital Signal
Processor, microcontroller, RISC processor, ASIP processor, Arm processor and ASSP
processor.
Embedding a Microprocessor
Embedding a Microprocessor
Embedding a Microcontroller:
The different streams of Microcontrollers used in embedded systems are usually among
the five streams of families given in the table.
Embedding a Microcontroller
Embedding a DSP:
Embedding a DSP
Medium scale embedded systems are designed with a single or few 16 or 32 bit
microcontrollers, DSPs or RISCs. These systems have both hardware and software
complexities. When developing embedded software for these types of systems, the
following programming tools are available.
They are C, C++, Visual C++, Java, and RTOS, source code engineering tool, debugger,
simulator and integrated development environment.
Sophisticated embedded systems have huge hardware and software complexities and
may need PLAs, IPs, ASIPs, scalable processors or configurable processors. They are
used for cutting-edge applications that need hardware and software co-design &
components which have to combine in the final system.
Mobile computing
Networking
Wireless Communications
Banking
Telephone
Security Systems
Defense
Aerospace
Communication
Networking Systems
Image Processing
Printers
Networks Cards
Monitors and Displays
DVDs
Set top Boxes
High Definition TVs
Digital Cameras
This is about embedded systems basics with its applications. We all know that embedded
systems are incredibly fabulous systems that play an essential role in many
devices, industrial instrumentation, equipments and appliances irrespective of circuit
complexity. Considering the huge significance of embedded systems, this embedded
systems article deserves readers’ feedback, queries, suggestions and comments.
Therefore, readers can post their comments below.
COMPONENTS OF
v
EMBEDDED SYSTEM
Embedded Systems are everywhere but what are the components of embedded
systems?. Embedded systems are amazing if we are into programming and making
circuits, boards and robots.
The embedded system’s components are basically divided into two parts:
Hardware Components
Software Components
Contents [hide]
1 Embedded Systems Hardware Components
o 1.1 Power Supply
1.1.1 Characteristics of Good Power Supply
o 1.2 Processor
1.2.1 What are the criteria for selecting the processor?
o 1.3 Memory
o 1.4 Timers-Counters
o 1.5 Communication Ports
1.5.1 Different communication ports in embedded systems
o 1.6 Input and Output
o 1.7 Application Specific Circuits
2 Software Components
o
2.0.1 How is software embedded into a system?
o 2.1 Assembler
o 2.2 Emulator
o 2.3 Debugger
o 2.4 Compiler
3 Read Also
It is a very common circuit that produces 5 Volt at the output. You can change the voltage
regulator to 7808,7812 depending upon the output required.
Characteristics of Good Power Supply
Stable & Smooth Output
Proper Output Current to Drive the Load
Perfect Power Efficiency
Stable in Different Temperature Range
Proper Noise Filtering
Proper Decoupling
Line Regulation – Fluctuation in output while input changes
Load Regulation – Fluctuation in output voltage when load current changes
Efficiency
Input/Output Ripple Voltage
Transient Response
Allowable Dissipation
Processor
A processor is the main brain inside any embedded systems. This is a major factor that affects
the performance of the system. There are different processors available in the market. An
embedded system may use microprocessor or microcontroller.
The processor comes in different architecture like 8-bit, 16-bit and 32-bit. The 8-bit processor is
generally used in a small application where we need some basic computation like input and
output no heavy processing.
For higher-end application where performance matters and need some graphical user interface,
we use 16 or 32-bit processor.
What are the criteria for selecting the processor?
Speed
Unit Price
Packaging
Performance
Peripheral Set
Timer on the Chip
Operating Voltage
Number of I/O Pins
Power Consumption
Amount of RAM and ROM
Specialized Processing Units
Architecture 8-bit, 16-bit, or 32-bit
Availability of Supplier for a given core
Easy to upgrade to higher or lower power consumption mode
Availability of Software tools like assembler, debugger, compiler, emulator and technical
support
Memory
If we are using a microcontroller like AT89s51, AT89s52 or ATmega. The memory is available
on-chip. We generally talk about two types of memory in the embedded systems
Read-Only memory(RAM)
Random Access Memory(ROM)
Electrically Erasable Programmable Read-Only Memory (EEPROM)
RAM memory is volatile memory and used for temporary storage of the data. And the selection
of it depends on the user need and the application.
The ROM memory or Code Memory. This is used for the storage of the program. Once system
powered, the system fetches the code from the ROM memory.
The EEPROM is a unique memory. The content can be erased and reprogrammed by a high
voltage pulse input. This is used to store the data by the program itself. Suppose we have a
temperature data logger. And it needs to store the data every one hour. It means we need the data
at runtime after the system is started.
The system will read temperature and store in the EEPROM memory. And it will be permanent.
And you can retrieve the data later.
So an embedded system developer decide which memory to use for its application.
Timers-Counters
If you are working in embedded systems you must have heard about
In some application, we need to generate some delay. Like for blinking an LED, we need a
delay. For making square pulse we need a delay.
But there is some issue when we generate the delay from the normal coding style by making any
loop running for a particular time. Definitely, this will give you some delay but the code after
this loop remains in waiting for state and delayed.
So it is not the best approach to generate the delay. For such kind of application where we need a
delay for a specific time interval without affecting the normal code execution, we use timer and
counter.
By setting some register for timer and counter using the programming we get the desired delay.
The amount of delay depends on the system frequency and crystal oscillator.
Communication Ports
Embedded systems hardware has different types of communication ports to communicate with
the other embedded devices.
Different communication ports in embedded systems
UART
CAN
SPI
I2C
USB
Ethernet
RS-232
RS-423
RS-485
But for a small level of embedded systems microcontroller has on-chip communication ports.
For example, popular Arduino UNO board has ATmega328 IC and it has following
communication port:
UART
I2C
SPI
For sending data from one board to other we can use these serial protocols. But for that, we need
to program it.
Input and Output
To interact with the embedded systems we need input. The input may be provided by the user or
by some sensor. Sometimes some systems need more input or output. So the processor selection
will be based on I/O.
These input and output are generally divided into ports like P0, P1, P2 and P3 in
8051microcontrollersr. And PA, PB, PC and PD in ATmega series of the microcontroller.
The I/O need to be configured for input or output based on the provided register. And for that,
we need to refer the datasheet of the manufacturer.
Application Specific Circuits
Some hardware components are common while designing the embedded systems. But some are
different and depends on the application need. Like a temperature sensor need a temperature
sensor for sensing the temperature. While others hand an alcohol detector has a sensor to detect
the alcohol level.
But the remaining hardware components might be the same like
Power Supply
Processor
Display Device
Buzzer for Alert
Software Components
Once the hardware is completed we need to build the software for the embedded devices. There
are different software tools for programming and coding. These software tools are referred to
as software components.
How is software embedded into a system?
We need a program written in assembly or in embedded c language. And then we compile it.
This compiled code converted into HEX code. This hex code is programmed or burned into the
ROM of the system using some programmer.
These are the tools that are generally used in embedded system development
Assembler
Emulator
Debugger
Compiler
Assembler
When you program in assembly language. This assembly language program is converted into the
HEX code using this utility. Then using some hardware called as a programmer we write the
chip.
Emulator
An emulator is hardware or software tool that has a similar functionality to the target system or
guest system. It enables the host system to execute the functionality and other components. It is a
replica of the target system. And used for debugging the code and issues.
Once program or code is fixed at the host system. It is transferred to the target system.
Debugger
Sometimes we are not getting expected results or output due to errors or bug. There are certain
tools that are specifically used for the debugging process. Where we can see the controls flow
and register value to identify the issue.
Compiler
A compiler is a software tool that converts one programming language into target code that a
machine can understand. The compiler basically used for translating the high-level language into
the low-level language like machine code, assembly language or object code.
What is an Embedded Operating System?
An embedded operating system is simply an operating system designed for embedded
systems. The main characteristics of the embedded operating system are resource
efficiency and reliability. The existence of embedded operating system comes into
existence because we have a very limited amount of hardware like RAM, ROM, timer-
counters and other on-chip peripherals.
So, in this case, we need some operating system that can manage all the hardware
resource by leaving some unimportant features. Embedded systems generally
have Real Time Operating System(RTOS) to perform the task in a given time frame.
The hardware in the embedded systems depends on the application need. So some
time for getting the best results we need to customize the embedded operating system.
As we know the assembly language is more near to hardware and code are written in
assembly perform better. So sometime to get the better result and speed some code or
modules are programmed in assembly language. To get the response from the system.
The embedded operating systems are generally written in the c language because c
language can interact better with the hardware.
Symbian
Embedded Linux
Palm OS
Windows Mobile
iOS
BlackBerry OS
Proprietary RTOS
QNX
VxWorks
INTEGRITY
ThreadX
MicroC/OS2
embOS
SafeRTOS
What is Embedded Systems – You may have seen nowadays there are so
many small gadgets are available around us. These gadgets are intelligent, they
have some programming, some processing unit and more.
They all come under the categories of embedded systems. But if you are finding the
exact Definition of embedded systems then you will get lots of different views and you
may be confused.
Contents [hide]
1 Definition of Embedded Systems
2 What are the applications of embedded systems?
o 2.1 Examples of Embedded System
o 2.2 Embedded System Application Area
3 What are the different types of embedded systems?
4 Characteristics of Embedded System
o 4.1 Single Functioned
o 4.2 Tightly Constrained
o 4.3 Reactive and Real Time
5 Why do we use embedded systems?
6 What is embedded system in simple words?
7 Is laptop is an embedded system?
8 What is the difference between a microcontroller and a microprocessor?
o
8.0.1 What are the different types of microcontrollers?
9 What is embedded firmware?
10 Read Also
Low Cost
Small Size
Performance
Battery Operated
Customizable
Easy to upgrade
What is embedded system in simple
words?
A microcontroller or microprocessor-based system performing the dedicated, single
function and time-critical task.
Contents [hide]
1 Stand Alone Embedded Systems
2 Real-Time Embedded Systems
o 2.1 Soft Real-Time Embedded Systems
o 2.2 Hard Real-Time Embedded Systems
3 Networked Embedded Systems
4 Mobile Embedded Systems
5 Small Scale Embedded System
o 5.1 Examples of Small Scale Embedded Systems
6 Medium Scale Embedded Systems
7 Sophisticated or Complex Embedded Systems
8 Read Also
Ready-Made Boards
We know that embedded system is using the microcontroller or microprocessor as a
processing unit. For a particular application, we need to go through the different design
cycles to complete the embedded board for a particular application. And it needs some
expert to carry all the technical task.
But now, there are different embedded boards are available from simple to advanced
level. According to the application need and complexity, we may use these board and
reduce the development time. These boards are like
Arduino Board
Raspberry Pie
Banana Pi
Intel Galileo
Beaglebone
You may have seen toys, calculators, the digital wristwatch, game cassettes and there
is a small Chip on Board(COB). This is the best example of ASIC.