Introduction To Embedded System
Introduction To Embedded System
A system is a way of working, organizing or doing one or many tasks according to a fixed plan,
program or set of rules.
A system is also an arrangement in which all its units assemble and work together according to the
plan or program.
• Embedded means something that is attached to another thing. An embedded system can be
thought of as a computer hardware system having software embedded in it.
An Embedded System is one that has computer hardware with software embedded in it as one of its
important components.
Its software embeds in ROM (Read Only Memory). It does not need secondary memories as in a
computer.
COMPUTER HARDWARE
It has Hardware
Low or no resource
Constraint constraint Size, power, cost, memory, real time
4.Distributed
6.Power concerns
1. Application and domain specific
• Ex: You can’t replace embedded control unit of microwave oven with airconditioner embedded
control unit.
• Ex: you can’t replace telecom Embedded with any other consumer electronics domain.
• ES are constant interaction with the real world through sensors and user defined I/P devices.
• Any changes in real world captured by the sensors in real time and control algorithm reacts in
designed manner to bring o/p variables in desired level
• ES produces changes in O/P in response to the changes in i/p referred as reactive system.
• Real time system means timing behaviour system should be deterministic: ES should response in
known amount of time.
• Systems placed in such areas should be capable to withstand all these adverse operating system
• The design should take care of the operating conditions where the system going to implement
• Ex: if system is installed in high temp zone then all components used in system should be high
temp. grade
• Power supply fluctuations, corrosion and component aging, etc factors that need to be taken into
consideration for ES to work in harsh environment.
4. Distributed
• Many numbers of such distributed ES from a single large embedded control unit.
• Ex: vending machine contains a card reader vending unit (for pre-paid vending systems).
• Each of them are independent embedded units but they work together to perform overall vending
function.
• Ex: ATM contains card reader embedded unit, transaction unit, currency counter, printer unit. We
can visualize independent Embedded unit but they work together to achieve a common goal.
• Supervisory control and data acquisition SCADA is a system of software and hardware elements
that allows industrial organizations to: Control industrial processes locally or at remote locations.
Monitor, gather, and process real-time data.
• Product aesthetics (a set of principles underlying the work of a particular artist or artistic
movement) is an important factor in choosing a product.
• For ex: when you plan to buy a new mobile phone, may make a comparative study on the pros and
cons of the products available in market.
• The product aesthetics (beauty) will be one of the deciding factors to choose a product (size,
weight, shape, style, etc)
• Most of the application demands small sized and low weight products.
6. Power concerns
• The production of high amount of heat demands cooling requirements like cooling fans which in
turn occupies additional space and make the system bulky.
• The more the power consumption the less is the battery life.
Quality attributes of ES
1. Response
• Measure of quickness of the system
• How fast system is tracking changes in i/p variables
• Most of ES demands fast response which should be almost real time
• Ex: comparing response flight control application with electronic toy
2. Throughput
• Deals with efficiency of system
• Rate of production or operation of a defined process over a stated period of time.
• Ex: in terms of card reader, throughput means how many transactions the reader can perform in a
minute or hour or in a day.
• Benchmark can be a set of performance criteria that product is expected to meet standard product
that can be used for comparing other products of the same product line.
3. Reliability
• Reliability is a measure of how much percentage you rely upon the proper functioning of the
system • Mean Time between failures and Mean Timet To Repair are terms used in defining system
reliability.
• Mean Time between failures can be defined as the average time the system is functioning before a
failure occurs.
• Mean time to repair can be defined as the average time the system has spent in repairs.
4. Maintainability
• Maintainability deals with support and maintenance to the end user or a client in case of technical
issues and product failures or on the basis of a routine system checkup
• It can be classified into two types:-
1. Scheduled or Periodic Maintenance
• This is the maintenance that is required regularly after aperiodic time interval.
Examples: 1. Periodic Cleaning of Air Conditioners
2. Refilling of printer cartridges.
2. Maintenance to unexpected failure
• This involves the maintenance due to a sudden breakdown in the functioning of the system.
• Example:1. Air conditioner not powering on
2. Printer not taking paper in spite of a full paper stack
5. Security
• Confidentiality, Integrity and Availability are three corner stones of information security.
• Confidentiality deals with protection data from unauthorized disclosure.
• Integrity gives protection from unauthorized modification.
• Availability gives protection from unauthorized user
• Certain Embedded systems have to make sure they conform to the security measures.
• Ex. An Electronic Safety Deposit Locker can be used only with a pin number like a password.
Classification of Embedded Systems
All types of embedded systems can be classified into two basic categories and their following
subcategories as follows.
Real-Time Systems
2. Hard real-time embedded system: strictly time-bound operation is necessary for a successful
output, ex: traffic light control.
Stand-Alone Systems
▪ Less complex
Network Systems
Mobile Systems
▪ Hardware and software complexity is very low due to the small size of microcontrollers
▪ Ex: robotic arm controller, electronic toys, automatic coffee vending machines, thermometer.
Sophisticated Systems
▪ Some applications, like satellite systems, also involve real-time operating system (RTOS)
▪ Ex: mobile systems, washing machines, digital watches, LAN cards, multimedia systems
To ensure efficient board development with embedded systems, you need accurate component
footprint data, CAD models, and information about microcontrollers to be used in the application.
• Improved System Performance: Embedded systems are designed to perform specific tasks
and are optimized for efficiency and performance. They can deliver faster response times
and higher accuracy compared to general-purpose computing systems.
• Lower Power Consumption: Embedded systems are optimized for low power consumption,
making them ideal for battery-powered devices or systems that need to operate in remote or
inaccessible locations.
• Increased Reliability: Embedded systems are designed to be reliable and stable, with
minimal downtime or errors. They can operate in harsh environments and withstand
temperature, humidity, and other external factors.
• Compact Size: Embedded systems are designed to be small and compact, making them ideal
for applications where space is limited, such as in cars, aircraft, and medical devices.
• Improved Security: Embedded systems can be designed with built-in security features, such
as encryption and authentication, to protect against cyber attacks and unauthorized access.
While embedded systems offer several advantages, there are also some potential disadvantages,
including:
• Limited Functionality: Embedded systems are designed to perform specific tasks and are
often limited in their functionality. They may not be suitable for applications that require
more complex or varied tasks.
• Limited Upgradability: Embedded systems are often designed with limited upgradability,
which can be a disadvantage in applications where future upgrades or modifications may be
required.
• Limited Connectivity: Some embedded systems may have limited connectivity options,
which can limit their ability to communicate with other devices or systems.
• Difficult to Debug: Embedded systems can be difficult to debug and diagnose when issues
arise, which can be a disadvantage in applications where system downtime is critical.
• Compatibility Issues: Embedded systems may have compatibility issues with other systems
or devices, which can be a disadvantage in applications where interoperability is critical.
• Limited Hardware Resources: Embedded systems are often designed with limited hardware
resources, such as memory and processing power, which can limit their ability to perform
complex tasks or handle large amounts of data.
MICROPROCESSOR Vs MICROCONTROLLER
The following table highlights all the important differences between microprocessors and
microcontrollers −
Circuit The circuit is complex due to external Microcontrollers are present on chip
complexity connection. memory. The circuit is less complex.
Memory and I/O The memory and I/O components are The memory and I/O components are
components to be connected externally. available.
• An embedded processor is used when fast processing fast context-switching & atomic ALU
operations are needed.
• DSP has large number of applications such as image processing, audio, video &
telecommunication processing systems.
• Multiple processors are used when a single processor does not meet the needs of different
task.
• The operations of all the processors are synchronized to obtain an optimum performance.
• An ASSP is used as an additional processing unit for running the application in place of using
embedded software.
ARM processor is a strong option for better performance. But when we consider the power
consumption, in the case of ARM it is around 400mW and the ATmega1031, AVR microcontroller
consumes low power around 16.5mW, but provides low performance.
Texas instruments MSP430 with wide range of operation modes consumes only 1.2mW with
reasonably good performance. So it is always left to the designer to choose a suitable device
according to the requirement
Communication Interfaces
For embedded systems to interact with the external world, a number of communication interfaces
are available.
They are
• Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC and ESSI
An embedded operating system is a specialized operating system (OS) designed to perform a specific
task for a device that is not a computer. The main job of an embedded OS is to run the code that
allows the device to do its job. The embedded OS also makes the device's hardware accessible to
software that is running on top of the OS.
• Power efficient
• Real-time operation
• cellphones
• electric vehicles
• Arduino-based devices
There are various types of Embedded operating systems. Some of them are as follows:
A real-time operating system (RTOS) is a deterministic operating system with limited functionalities
that allows multi-threaded applications by giving processed outputs within set time limitations. Since
some apps are time-critical, they must be executed exactly when they are expected to maintain the
entire system functioning.
The real-time operating system is dependent on clock interruptions. Interrupt Service Routine
(ISR) interruptions are generated by this system. The Priority system was implemented by RTOS for
the execution of all types of processes. The process and the RTOS are synchronized and can
communicate with one another. The RTOS is stored on a ROM (Read Only Memory) chip because
this chip can store data for a long time.
The multitasking operating system may execute multiple tasks at the same time. In a multitasking
operating system, multiple tasks and processes run at the same time. If the system contains more
than one processor, it may perform a wide range of functions.
The multitasking operating system is switched between the multiple tasks. Some tasks are waiting for
events to occur, while others are receiving events and preparing to run. When using a multitasking
operating system, software development is easier since different software components may be made
independent of each other.
A multitasking operating system that interprets task preemption is known as a preemptive operating
system. A task with a higher priority is always defined and executed before a task with a lower
priority. Such multitasking operating systems improve system reaction to events and simplify
software development, resulting in a more dependable system. The system designer may calculate
the time required for service interpreters in the system and the time required by the scheduler to
switch tasks. Such systems can fail to meet a system's deadline, and the program is unaware of the
missed deadline. CPU load can be naturally measured in a preemptive operating system by defining a
lower priority process that does nothing except increment the counter.
Some embedded systems are designed to use a specific task scheduling method known as 'Rate
Monotonic Scheduling'. It is an operating system that assures that tasks in a system may operate for
a specific amount of time and duration of time. It is a priority-based scheduling algorithm. It is used
in operating systems as a preemptive. It means that all tasks can be interrupted or suspended by
other tasks within a short period of time. It is generally used to perform shorter tasks with higher
priority.
It is a very simple type of operating system designed to perform only one function. It is used in
several devices, including smartphones, thermostats or temperature controls, digital controllable
equipment, etc. Users may set any point of temperature variable as desired in this type of OS.
Several sensors are included in this system to determine various temperature points in the
environment.
6. Templated
In the distributed and cloud computing context of an OS, templating refers to creating a single virtual
machine image as a guest operating system, then saving it as a tool for multiple running virtual
machines. The technique is used both in virtualization and cloud computing management, and is
common in large server warehouses.
7. Embedded
Embedded operating systems are designed to be used in embedded computer systems. They are
designed to operate on small machines with less autonomy (e.g. PDAs). They are very compact and
extremely efficient by design, and are able to operate with a limited amount of resources. Windows
CE and Minix 3 are some examples of embedded operating systems.
Mobile OS
• Mobile operating systems combine features of a personal computer operating system with
other features useful for mobile or handheld use, and usually including a wireless inbuilt
modem and SIM tray for telephony and data connection
Types of Mobile OS
1. Android OS: The Android operating system is the most popular operating system today. It is a
mobile OS based on the Linux Kernel and open-source software. The android operating system was
developed by Google. The first Android device was launched in 2008.
2. Bada (Samsung Electronics): Bada is a Samsung mobile operating system that was launched in
2010. The Samsung wave was the first mobile to use the bada operating system. The bada operating
system offers many mobile features, such as 3-D graphics, application installation, and multipoint-
touch.
3. BlackBerry OS: The BlackBerry operating system is a mobile operating system developed
by Research In Motion (RIM). This operating system was designed specifically for BlackBerry
handheld devices. This operating system is beneficial for the corporate users because it provides
synchronization with Microsoft Exchange, Novell GroupWise email, Lotus Domino, and other
business software when used with the BlackBerry Enterprise Server.
4. iPhone OS / iOS: The iOS was developed by the Apple inc for the use on its device. The iOS
operating system is the most popular operating system today. It is a very secure operating system.
The iOS operating system is not available for any other mobiles.
5. Symbian OS: Symbian operating system is a mobile operating system that provides a high-level of
integration with communication. The Symbian operating system is based on the java language. It
combines middleware of wireless communications and personal information management (PIM)
functionality. The Symbian operating system was developed by Symbian Ltd in 1998 for the use of
mobile phones. Nokia was the first company to release Symbian OS on its mobile phone at that time.
6. Windows Mobile OS: The window mobile OS is a mobile operating system that was developed
by Microsoft. It was designed for the pocket PCs and smart mobiles.
7. Harmony OS: The harmony operating system is the latest mobile operating system that was
developed by Huawei for the use of its devices. It is designed primarily for IoT devices.
8. Palm OS: The palm operating system is a mobile operating system that was developed by Palm
Ltd for use on personal digital assistants (PADs). It was introduced in 1996. Palm OS is also known as
the Garnet OS.
9. WebOS (Palm/HP): The WebOS is a mobile operating system that was developed by Palm. It based
on the Linux Kernel. The HP uses this operating system in its mobile and touchpads.
Part 4: Characteristics of Real Time Operating System
Real-time System is a system that is put through real time which means response is obtained within
a specified timing constraint or system meets the specified deadline. Real time system is of two types
– Hard and Soft. Both are used in different cases. Hard real time systems are used where even the
delay of some nano or micro seconds are not allowed. Soft real time systems provide some relaxation
in time expression.
1. Time Constraints: Time constraints related with real-time systems simply means that time
interval allotted for the response of the ongoing program. This deadline means that the task
should be completed within this time interval. Real-time system is responsible for the
completion of all tasks within their time intervals.
3. Embedded: All the real-time systems are embedded now-a-days. Embedded system means
that combination of hardware and software designed for a specific purpose. Real-time
systems collect the data from the environment and passes to other components of the
system for processing.
4. Safety: Safety is necessary for any system but real-time systems provide critical safety. Real-
time systems also can perform for a long time without failures. It also recovers very soon
when failure occurs in the system and it does not cause any harm to the data and
information.
5. Concurrency: Real-time systems are concurrent that means it can respond to a several
number of processes at a time. There are several different tasks going on within the system
and it responds accordingly to every task in short intervals. This makes the real-time systems
concurrent systems.
6. Distributed: In various real-time systems, all the components of the systems are connected
in a distributed way. The real-time systems are connected in such a way that different
components are at different geographical locations. Thus, all the operations of real-time
systems are operated in distributed ways.
7. Stability: Even when the load is very heavy, real-time systems respond in the time constraint
i.e. real-time systems does not delay the result of tasks even when there are several task
going on a same time. This brings the stability in real-time systems.
8. Fault tolerance: Real-time systems must be designed to tolerate and recover from faults or
errors. The system should be able to detect errors and recover from them without affecting
the system’s performance or output.
9. Determinism: Real-time systems must exhibit deterministic behaviour, which means that the
system’s behaviour must be predictable and repeatable for a given input. The system must
always produce the same output for a given input, regardless of the load or other factors.
10. Real-time communication: Real-time systems often require real-time communication
between different components or devices. The system must ensure that communication is
reliable, fast, and secure.
11. Resource management: Real-time systems must manage their resources efficiently, including
processing power, memory, and input/output devices. The system must ensure that
resources are used optimally to meet the time constraints and produce correct results.
13. Scalability: Real-time systems must be scalable, which means that the system must be able
to handle varying workloads and increase or decrease its resources as needed.
14. Security: Real-time systems may handle sensitive data or operate in critical environments,
which makes security a crucial aspect. The system must ensure that data is protected and
access is restricted to authorized users only.
Part 5: Compare different Operating Systems used for embedded system designing
It is a type of embedded system that is bound to perform multiple tasks simultaneously as per the
need of the application. Besides, it is specifically programmed to process between various systems.
And their numerous functions according to the need to make that application.
If multitasking is part of app development, then that one does the scheduling algorithm that can
quickly establish rules for better organizing the tasks. Multitasking OS includes a scheduling
algorithm that can simultaneously set rules for multiple tasks.
Linus Torvalds introduced Linux OS for embedded systems and also made a copy of the Unix kernel.
It is an open-source software code used to create flexible, secure, and safe devices for daily use.
Linux is not intrinsically RTOS but extensions that might make it a viable option to use—well designed
to install in embedded systems of devices.
The most significant example of Linux is smart home devices, car consoles, smart tablets, digital
storage devices, etc.
Linux works on two interfaces only with limited memory space: LED and serial ports.
• Linux is an independent platform.
• The embedded operating system software is cheaper and reduces the cost of hardware.
Moving on to the next OS, more recently, a new breed of embedded operating systems emerged
with a bespoke version of Android. At first impression, an Android embedded system may seem a
little odd as an embedded OS. But the fact is that Android is already a part of embedded Linux and a
popular choice as an embedded operating system.
It is one of the most basic types of embedded OS systems used when the control is over a single
measured variable. The best example of this system is nowadays the intelligent home temperature
control that people use, developed with the help of an embedded OS.
Embedded Android
Linux is an excellent choice for embedded systems in many cases. So, what differentiates the Android
open source embedded operating system from other embedded Linux projects?
The basic definition is that Android sits on top of the Linux kernel, and below are the additional
features that add to its popularity.
• Android is an obvious option for any touch screen product for its rich UI interface.
• Quick Prototyping
With all the above-explained types of embedded operating systems, let us now read which OS tops
the list and why it is the best for embedded systems.
This embedded system is mainly used to accomplish specific tasks per the deadlines; this embedded
OS is available at your rescue. This task monitoring system’s primary purpose is to ensure the job’s
requirements. And there are specific functions that will be required to get special priority, and it will
do the same according to the time constraints.
Besides, the rate tends to assign specific tasks per the necessary guidelines to ensure that the
particular functions are met within the best priority treatment and get the possible jobs done on
time without lag. This OS is best used when the device parts are task-specific, as no other alternative
is available to do this job better.