Embedded Systems
Embedded Systems
Embedded Systems
LECTURE NOTES
ON
EMBEDDED SYSTEMS
Faculty Members
Gandhi Lakavath
Asst.Professor
EEE Dept
NEC EEE ES SYLLABUS
COURSE OBJECTIVES:
For embedded systems, the course will enable the students to:
Core of the embedded system-general purpose and domain specific processors, ASICs, PLDs,
COTs; Memory-ROM, RAM, memory according to the type of interface, memory shadowing,
memory selection for embedded systems, Sensors, actuators, I/O components: seven segment
LED, relay, piezo buzzer, push button switch, other sub-systems: reset circuit, brownout protection
circuit, oscillator circuit real time clock, watch dog timer.
EEE Dept
NEC EEE ES SYLLABUS
Embedded firmware design approaches-super loop based approach, operating system based
approach; embedded firmware development languages-assembly language based development,
high level language based development.
Operating system basics, types of operating systems, tasks, process and threads, multiprocessing
and multitasking, task scheduling: non-pre-emptive and pre-emptive scheduling; task
communication-shared memory, message passing, Remote Procedure Call and Sockets, Task
Synchronization: Task Communication/ Synchronization Issues, Task Synchronization
Techniques
TEXT BOOKS:
REFERENCE BOOKS:
COURSE OUTCOMES:
EEE Dept
ESD UNIT-1 NOTES
E.g. Electronic Toys, Mobile Handsets, Washing Machines, Air Conditioners, Automotive
Control Units, Set Top Box, DVD Player etc…
Unique in character and behavior
With specialized hardware and software
Embedded Systems Vs General Computing Systems: (March-2017)
First Recognized Modern Embedded System: Apollo Guidance Computer (AGC) developed by
Charles Stark Draper at the MIT Instrumentation Laboratory.
It has two modules
First Mass Produced Embedded System: Autonetics D-17 Guidance computer for Minuteman-I missile
Based on deterministic behavior
Based on Triggering
Second Generation: Embedded Systems built around 16-bit microprocessors and 8 or 16-
bit microcontrollers, following the first generation embedded systems
EX.SCADA, Data Acquisition Systems etc.
Third Generation: Embedded Systems built around high performance 16/32 bit
Microprocessors/controllers, Application Specific Instruction set processors like Digital
Signal Processors (DSPs), and Application Specific Integrated Circuits (ASICs).The
instruction set is complex and powerful.
EX. Robotics, industrial process control, networking etc.
Gandhi Lakavath, EEE Page 3
ESD UNIT-1 NOTES
Fourth Generation: Embedded Systems built around System on Chips (SoC’s), Re-
configurable processors and multicore processors. It brings high performance, tight
integration and miniaturization into the embedded device market
EX Smart phone devices, MIDs etc.
Small Scale: The embedded systems built around low performance and low cost 8 or 16
bit microprocessors/ microcontrollers. It is suitable for simple applications and where
performance is not time critical. It may or may not contain OS.
Medium Scale: Embedded Systems built around medium performance, low cost 16 or 32
bit microprocessors / microcontrollers or DSPs. These are slightly complex in hardware
and firmware. It may contain GPOS/RTOS.
Large Scale/Complex: Embedded Systems built around high performance 32 or 64 bit
RISC processors/controllers, RSoC or multi-core processors and PLD. It requires complex
hardware and software. These system may contain multiple processors/controllers and co-
units/hardware accelerators for offloading the processing requirements from the main
processor. It contains RTOS for scheduling, prioritizationand management.
1. Soft Real time Systems: Missing a deadline may not be critical and can be
tolerated to a certain degree
2. Hard Real time systems: Missing a program/task execution time deadline can have
catastrophic consequences (financial, human loss of life, etc.)
1. Event Triggered : Activities within the system (e.g., task run-times) are dynamic and
depend upon occurrence of different events .
2. Time triggered: Activities within the system follow a statically computed schedule (i.e.,
they are allocated time slots during which they can take place) and thus by nature are
predictable.
ESD UNIT-1 NOTES
ESD UNIT-1 NOTES
Household Appliances: Television, DVD players, washing machine, Fridge, Microwave Oven
etc.
Home Automation and Security Systems: Air conditioners, sprinklers, Intruder detection
alarms, Closed Circuit Television Cameras, Fire alarms etc.
Automotive Industry: Anti-lock breaking systems (ABS), Engine Control, Ignition Systems,
Automatic Navigation Systems etc.
Telecom: Cellular Telephones, Telephone switches, Handset Multimedia Applications etc.
Computer Peripherals: Printers, Scanners, Fax machines etc.
Computer Networking Systems: Network Routers, Switches, Hubs, Firewalls etc.
Health Care: Different Kinds of Scanners, EEG, ECG Machines etc.
Measurement & Instrumentation: Digital multi meters, Digital CROs, Logic Analyzers PLC
systems etc.
Banking & Retail: Automatic Teller Machines (ATM) and Currency counters, Point of Sales
(POS)
Card Readers: Barcode, Smart Card Readers, Hand held Devices etc.
Each Embedded Systems is designed to serve the purpose of any one or a combination of the
following tasks.
o Data Collection/Storage/Representation
o Data Communication
o Data (Signal) Processing
o Monitoring
o Control
1. Data Collection/Storage/Representation:-
Performs acquisition of data from the external
world.
The collected data can be either analog or
digital
Data collection is usually done for storage,
analysis, manipulation and transmission
The collected data may be stored directly in the system or may be transmitted to some other
systems or it may be processed by the system or it may be deleted instantly after giving a
meaningful representation
2. Data Communication:-
4. Monitoring:-
The sensors used in ECG are the different Electrodes connected to the patient‟s body
Measuring instruments like Digital CRO, Digital Multi meter, Logic Analyzer etc used in
Control & Instrumentation applications are also examples of embedded systems for
monitoring purpose
5. Control:-
Sensors are connected to the input port for capturing the changes in environmental variable
or measuring variable
The actuators connected to the output port are controlled according to the changes in input
variable to put an impact on the controlling variable to bring the controlled variable to the
specified range
Air conditioner for controlling room temperature is a typical example for embedded system
with „Control‟ functionality
Air conditioner contains a room temperature sensing element (sensor) which may be a
thermistor and a handheld unit for setting up (feeding) the desired temperature
The air compressor unit acts as the actuator. The compressor is controlled according to the
current room temperature and the desired temperature set by the end user.
Requirements may be functional or nonfunctional. We must of course capture the basic functions
of the embedded system, but functional description is often not sufficient. Typical nonfunctional
requirements include:
■ Performance: The speed of the system is often a major consideration both for the usability of
the system and for its ultimate cost. As we have noted, performance may be a combination of soft
performance metrics such as approximate time to perform a user-level function and hard deadlines
by which a particular operation must be completed.
■ Cost: The target cost or purchase price for the system is almost always a consideration. Cost
typically has two major components: manufacturing cost includes the cost of components and
assembly; nonrecurring engineering (NRE) costs include the personnel and other costs of
designing the system.
■ Physical size and weight: The physical aspects of the final system can vary greatly depending
upon the application. An industrial control system for an assembly line may be designed to fit into
a standard-size rack with no strict limitations on weight. A handheld device typically has tight
requirements on both size and weight that can ripple through the entire system design.
■ Power consumption: Power, of course, is important in battery-powered systems and is often
important in other applications as well. Power can be specified in the requirements stage in terms
of battery life—the customer is unlikely to be able to describe the allowable wattage.
A sample requirements form that can be filled out at the start of the project. We can use the form
as a checklist in considering the basic characteristics of the system. Let’s consider the entries in
the form:
■ Name: This is simple but helpful. Giving a name to the project not only simplifies talking about
it to other people but can also crystallize the purpose of the machine.
■ Purpose: This should be a brief one- or two-line description of what the system is supposed to
do. If you can’t describe the essence of your system in one or two lines, chances are that you don’t
understand it well enough.
■ Inputs and outputs: These two entries are more complex than they seem. The inputs and outputs
to the system encompass a wealth of detail:
— Types of data: Analog electronic signals? Digital data? Mechanical inputs?
— Data characteristics: Periodically arriving data, such as digital audio
samples? Occasional user inputs? How many bits per data element?
— Types of I/O devices: Buttons? Analog/digital converters? Video displays?
■ Functions: This is a more detailed description of what the system does. A good way to approach
this is to work from the inputs to the outputs: When the system receives an input, what does it do?
How do user interface inputs affect these functions? How do different functions interact?
Performance: Many embedded computing systems spend at least some time controlling physical
devices or processing data coming from the physical world. In most of these cases, the
computations must be performed within a certain time frame. It is essential that the performance
requirements be identified early
since they must be carefully measured during implementation to ensure that the system works
properly.
■ Manufacturing cost: This includes primarily the cost of the hardware components. Even if you
don’t know exactly how much you can afford to spend on system components, you should have
some idea of the eventual cost range. Cost has a substantial influence on architecture: A machine
that is meant to
sell at $10 most likely has a very different internal structure than a $100 system.
■ Power: Similarly, you may have only a rough idea of how much power the system can consume,
but a little information can go a long way. Typically, the most important decision is
whether the machine will be battery powered or plugged into the wall. Battery-powered machines
must be much more careful about how they spend energy.
■ Physical size and weight: You should give some indication of the physical size of the system
to help guide certain architectural decisions. A desktop machine has much more flexibility in the
components used than, for example, a lapel mounted voice recorder.
GPS MODULE:
Specification
The specification is more precise—it serves as the contract between the customer and thearchitects.
As such, the specification must be carefully written so that it accurately reflects the customer’s
requirements and does so in a way that can be clearly followed during design.
The specification should be understandable enough so that someone can verify that it meets
system requirements and overall expectations of the customer.
A specification of the GPS system would include several components:
Data received from the GPS satellite constellation.
Map data.
User interface.
Operations that must be performed to satisfy customer requests.
Background actions required to keep the system running, such as operating the GPS
receiver.
Architecture Design
The specification does not say how the system does things, only what the system does. Describing
how the system implements those functions is the purpose of the architecture. The architecture is
a plan for the overall structure of the system that will be used later to design the components that
make up the architecture. The creation of the architecture is the first phase of what many designers
think of as design.
This block diagram is still quite abstract—we have not yet specified which operations will be
performed by software running on a CPU, what will be done by special-purpose hardware, and so
on. The diagram does, however, go a long way toward describing how to implement the functions
described in the specification. We clearly see, for example, that we need to search the topographic
database and to render (i.e., draw) the results for the display. We have chosen to separate those
functions so that we can potentially do them in parallel—performing rendering separately from
searching the database may help us update the screen more fluidly.
The hardware block diagram clearly shows that we have one central CPU surrounded by memory
and I/O devices. In particular, we have chosen to use two memories: a frame buffer for the pixels
to be displayed and a separate program/data memory for general use by the CPU. The software
block diagram fairly closely follows the system block diagram, but we have added a timer to
control when we read the buttons on the user interface and render data onto the screen. To have a
truly complete architectural description, we require more detail, such as where units in the software
block diagram will be executed in the hardware block diagram and when operationswill be
performed in time.
The architectural description tells us what components we need. The component design effort
builds those components in conformance to the architecture and specification. The components
will in general include both hardware—FPGAs, boards, and so on—and software modules. Some
of the components will be ready-made. The CPU, for example, will be a standard component in
almost all cases, as will memory chips and many other components .In the moving map, the GPS
receiver is a good example of a specialized component that will nonetheless be a predesigned,
standard component. We can also make use of standard software modules.
System Integration:
Only after the components are built do we have the satisfaction of putting them together and seeing
a working system. Of course, this phase usually consists of a lot more than just plugging everything
together and standing back. Bugs are typically found during system integration, and good planning
can help us find the bugs quickly. By building up the system in phases and running properly
chosen tests, we can often find bugs more easily. If we debug only a few modules at a time, we are
more likely to uncover the simple bugs and able to easily recognize them. Only by fixing the simple
bugs early will we be able to uncover the more complex or obscure bugs that can be identified only
by giving the system a hard workout
Embedded systems possess certain specific characteristics and these are unique to each
Embedded system.
4. Distributed
6. Power concerns
7. Single-functioned
8. Complex functionality
9. Tightly-constrained
10. Safety-critical
• Each E.S has certain functions to perform and they are developed in such a manner to do the
intended functions only.
• Ex – The embedded control units of the microwave oven cannot be replaced with AC‟S
embedded control unit because the embedded control units of microwave oven and AC are
specifically designed to perform certain specific tasks.
• E.S are in constant interaction with the real world through sensors and user-defined input
devices which are connected to the input port of the system.
• Any changes in the real world are captured by the sensors or input devices in real time and
the control algorithm running inside the unit reacts in a designed manner to bring the
controlled output variables to the desired level.
• E.S produce changes in output in response to the changes in the input, so they are referred
as reactive systems.
• Real Time system operation means the timing behavior of the system should be
deterministic ie the system should respond to requests in a known amount of time.
• Example – E.S which are mission critical like flight control systems, Antilock Brake
Systems (ABS) etc are Real Time systems.
• The design of E.S should take care of the operating conditions of the area where the system
is going to implement.
• Ex – If the system needs to be deployed in a high temperature zone, then all the components
used in the system should be of high temperature grade.
• Also proper shock absorption techniques should be provided to systems which are going
to be commissioned in places subject to high shock.
4. Distributed: –
• Many numbers of such distributed embedded systems form a single large embedded
control unit.
• Ex – Automatic vending machine. It contains a card reader, a vending unit etc. Each of
them are independent embedded units but they work together to perform the overall
vending function.
• Product aesthetics (size, weight, shape, style, etc) is an important factor in choosing a
product.
6. Power Concerns:-
• E.S should be designed in such a way as to minimize the heat dissipation by the system.
9. Tightly-constrained:-
10. Safety-critical:-
I. Operational Quality Attributes: The operational quality attributes represent the relevant
quality attributes related to the embedded system when it is in the operational mode or online
mode.
1. Response :-
It tells how fast the system is tracking the changes in input variables.
Most of the E.S demands fast response which should be almost real time.
2. Throughput :-
The rates can be expressed in terms of products, batches produced or any other
meaningful measurements.
Ex – In case of card reader throughput means how many transactions the reader
can perform in a minute or in an hour or in a day.
3. Reliability :-
• It is a measure of how much we can rely upon the proper functioning of the system.
• Mean Time Between Failure (MTBF) and Mean Time To Repair (MTTR) are the
terms used in determining system reliability.
• MTTR specifies how long the system is allowed to be out of order following a
failure.
• For embedded system with critical application need, it should be of the order of
minutes.
4. Maintainability:-
• It deals with support and maintenance to the end user or client in case of technical issues
and product failure or on the basis of a routine system checkup.
• A more reliable system means a system with less corrective maintainability requirements
and vice versa.
5. Security:-
• Confidentiality, Integrity and availability are the three major measures of information
security.
• Integrity deals with the protection of data and application from unauthorized
modification.
• Availability deals with protection of data and application from unauthorized users.
6. Safety :-
Safety deals with the possible damages that can happen to the operator, public and the
environment due to the breakdown of an Embedded System.
The breakdown of an embedded system may occur due to a hardware failure or afirmware
failure.
Safety analysis is a must in product engineering to evaluate the anticipated damages and
determine the best course of action to bring down the consequences of damage to an
acceptable level.
II. Non-Operational Quality Attributes: The quality attributes that needs to be addressed for
the product not on the basis of operational aspects are grouped under this category.
• Testability deals with how easily one can test the design, application and by which means
it can be done.
• For an E.S testability is applicable to both the embedded hardware and firmware.
• Embedded hardware testing ensures that the peripherals and total hardware functions in
the desired manner, whereas firmware testing ensures that the firmware is functioning in
the expected way.
• 1. Hardware level: It is used for finding the issues created by hardware problems.
• 2. Software level: It is employed for finding the errors created by the flaws in the software.
2. Evolvability :-
• For an embedded system evolvability refers to the ease with which the embedded product
can be modified to take advantage of new firmware or hardware technologies.
3. Portability:-
• „Porting‟ represents the migration of embedded firmware written for one target processor
to a different target processor.
• It is the time elapsed between the conceptualization of a product and the time at which
the product is ready for selling.
• The commercial embedded product market is highly competitive and time to market the
product is critical factor in the success of commercial embedded product.
• There may be multiple players in embedded industry who develop products of the same
category (like mobile phone).
• Cost is a factor which is closely monitored by both end user and product manufacturer.
• Any failure to position the cost of a commercial product at a nominal rate may lead to the
failure of the product in the market.
• Proper market study and cost benefit analysis should be carried out before taking a
decision on the per-unit cost of the embedded product.
• The ultimate aim of the product is to generate marginal profit so the budget and total cost
should be properly balanced to provide a marginal profit.
SUMMARY
1. An embedded system is an electronic/electromechanical system designed to perform a
specific function and is a combination of both hardware and firmware (software).
2. A general purpose computing system is a combination of generic hardware and general
purpose operating system for executing a variety of applications, whereas an embedded
3. System is a combination of special purpose hardware and embedded OS/firmware for
executing a specific set of applications.
4. Apollo Guidance Computer (AGC) is the first recognized modern embedded system and
Autonetics D-17, the guidance computer for the Minuteman-I missile, was the first mass
produced embedded system.
5. Based on the complexity and performance requirements, embedded systems are classified
into small-scale, medium-scale and large-scale/complex.
6. The presences of embedded system vary from simple electronic system toys to complex
flight and missile control systems.
7. Embedded systems are designed to serve the purpose of any one or combination of data
collection/storage/representation, data processing, monitoring, control or application
specific user interface.
8. Wearable devices refer to embedded systems which are incorporated into accessories and
apparels. It envisions the bonding of embedded technology in our day to day lives.
OBJECTIVE QUESTIONS
1. Embedded systems are
(a) General Purpose (b) Special Purpose
2. Embedded system is
(a) An electronic system (b) A pure mechanical system
(c)An electro-mechanical system (d) (a) or (c)
3. Which of the following is not true about embedded systems?
(a) Built around specialized hardware (b) Always contain an operating system
(c)Execution behavior may be deterministic (d) All of these (e) none of these
4. Which of the following is not an example of small scale embedded system?
(a) Electronic Barbie doll (b) Simple calculator
(c) Cell Phone (d) Electronic toy car
N.SURESH
Department of ECE
NEC EEE ES UNIT-2 Notes
FPGA/ASIC/DSP/SoC
Embedded
Microprocessor/controller
Firmware
Memory
Communication Interface
System
I/p Ports Core O/p Ports
(Sensors)
(Actuators)
Other supporting
Integrated Circuits &
subsystems
Embedded System
Real World
Embedded systems are basically designed to regulate a physical variable (such Microwave
Oven) or to manipulate the state of some devices by sending some signals to the actuators or
devices connected to the output port system (such as temperature in Air Conditioner), in
response to the input signal provided by the end users or sensors which are connected to the
input ports. Hence the embedded systems can be viewed as a reactive system.
The control is achieved by processing the information coming from the sensors and user
interfaces and controlling some actuators that regulate the physical variable.
Keyboards, push button, switches, etc. are Examples of common user interface input devices
and LEDs, LCDs, Piezoelectric buzzers, etc examples for common user interface output
devices for a typical embedded system.The requirement of type of user interface changes from
application to application based on domain.
Some embedded systems do not require any manual intervention for their operation. They
automatically sense the input parameters from real world through sensors which are connected
at input port. The sensor information is passed to the processor after signal conditioning and
digitization. The core of the system performs some predefined operationson input data with
the help of embedded firmware in the system and sends some actuating signals to the actuator
connect connected to the output port of the system.
The memory of the system is responsible for holding the code (control algorithm and
other important configuration details). There are two types of memories are used in any
embedded system. Fixed memory (ROM) is used for storing code or program. The user
cannot change the firmware in this type of memory. The most common types of memories
used in embedded systems for control algorithm storage are
OTP,PROM,UVEPROM,EEPROM and FLASH
An embedded system without code (i.e. the control algorithm) implemented memory has all
the peripherals but is not capable of making decisions depending on the situational as well as
real world changes.
Memory for implementing the code may be present on the processor or may be
implemented as a separate chip interfacing the processor
In a controller based embedded system, the controller may contain internal memory for
storing code such controllers are called Micro-controllers with on-chip ROM, eg. Atmel
AT89C51.
The Core of the Embedded Systems: The core of the embedded system falls into any one
of the following categories.
General Purpose and Domain Specific Processors
o Microprocessors
o Microcontrollers
Commercial off the shelf Components (COTS)
In general the CPU contains the Arithmetic and Logic Unit (ALU), Control Unit and
Working registers
Microprocessor is a dependant unit and it requires the combination of other hardware like
Memory, Timer Unit, and Interrupt Controller etc for proper functioning.
Intel claims the credit for developing the first Microprocessor unit Intel 4004, a 4 bit
processor which was released in Nov 1971
· Developers of microprocessors.
Intel – Intel 4004 – November 1971(4-bit)
Intel – Intel 4040.
Intel – Intel 8008 – April 1972.
Intel – Intel 8080 – April 1974(8-bit).
Motorola – Motorola 6800.
Intel – Intel 8085 – 1976.
Zilog - Z80 – July 1976
Microcontroller:
A highly integrated silicon chip containing a CPU, scratch pad RAM, Special and General
purpose Register Arrays, On Chip ROM/FLASH memory for program storage, Timer and
Interrupt control units and dedicated I/O ports
Microcontrollers can be considered as a super set of Microprocessors
Microcontroller can be general purpose (like Intel 8051, designed for generic applications
and domains) or application specific (Like Automotive AVR from Atmel Corporation.
Designed specifically for automotive applications)
Since a microcontroller contains all the necessary functional blocks for independent working,
they found greater place in the embedded domain in place of microprocessors
Microcontrollers are cheap, cost effective and are readily available in the market
Texas Instruments TMS 1000 is considered as the world‟s first microcontroller
Microprocessor Vs Microcontroller:
Microprocessor Microcontroller
A silicon chip representing a Central Processing Unit A microcontroller is a highly integrated chip that
(CPU), which is capable of performing arithmetic as contains a CPU, scratch pad RAM, Special and
well as logical operations according to a pre-defined set General purpose Register Arrays, On Chip
of Instructions ROM/FLASH memory for program storage, Timer
and Interrupt control units and dedicated I/O ports
It is a dependent unit. It requires the combination of It is a self contained unit and it doesn’t require
other chips like Timers, Program and data memory external Interrupt Controller, Timer, UART etc for
chips, Interrupt controllers etc for functioning its functioning
Most of the time general purpose in design and Mostly application oriented or domain specific
operation
Doesn‟t contain a built in I/O port. The I/O Port Most of the processors contain multiple built-in I/O
functionality needs to be implemented with the help of ports which can be operated as a single 8 or 16 or 32
external Programmable Peripheral Interface Chips like bit Port or as individual port pins
8255
Targeted for high end market where performance is Targeted for embedded market where performance is
important not so critical (At present this demarcation is invalid)
Limited power saving options compared to Includes lot of power saving features
microcontrollers
General Purpose Processor (GPP) Vs Application Specific Instruction Set Processor (ASIP)
General Purpose Processor or GPP is a processor designed for general computational tasks
GPPs are produced in large volumes and targeting the general market. Due to the high
volume production, the per unit cost for a chip is low compared to ASIC or other specific
ICs
A typical general purpose processor contains an Arithmetic and Logic Unit (ALU) and Control
Unit (CU)
Application Specific Instruction Set processors (ASIPs) are processors with architecture
and instruction set optimized to specific domain/application requirements like Network
processing, Automotive, Telecom, media applications, digital signal processing, control
applications etc.
ASIPs fill the architectural spectrum between General Purpose Processors and Application
Specific Integrated Circuits (ASICs)
The need for an ASIP arises when the traditional general purpose processor are unable to meet the
increasing application needs
Some Microcontrollers (like Automotive AVR, USB AVR from Atmel), System on Chips,
Digital Signal Processors etc are examples of Application Specific Instruction Set
Processors (ASIPs)
ASIPs incorporate a processor and on-chip peripherals, demanded by the application requirement,
program and data memory
Powerful special purpose 8/16/32 bit microprocessors designed specifically to meet the
computational demands and power constraints of today's embedded audio, video, and
communications applications
Digital Signal Processors are 2 to 3 times faster than the general purpose microprocessors
in signal processing applications
DSPs implement algorithms in hardware which speeds up the execution whereas general
purpose processors implement the algorithm in firmware and the speed of execution
depends primarily on the clock for the processors
DSP can be viewed as a microchip designed for performing high speed computational
operations for „addition‟, „subtraction‟, „multiplication‟ and „division‟
Gandhi Lakavath, EEE Page 5
NEC EEE ES UNIT-2 Notes
Computational Engine
I/O Unit
RISC CISC
Lesser no. of instructions Greater no. of Instructions
Instruction Pipelining and increased execution Generally no instruction pipelining feature
speed
Orthogonal Instruction Set (Allows each instruction Non Orthogonal Instruction Set (All instructions
to operate on any register and use any addressing are not allowed to operate on any register and
mode) use any addressing mode. It is instruction
specific)
Operations are performed on registers only, the Operations are performed on registers or
only memory operations are load and store memory depending on the instruction
Large number of registers are available Limited no. of general purpose registers
Programmer needs to write more code to execute a . A programmer can achieve the desired
task since the instructions are simpler ones functionality with a single instruction which in
turn provides the effect of using more simpler
single instructions in RISC
Single, Fixed length Instructions Variable length Instructions
Less Silicon usage and pin count More silicon usage since more additional
decoder logic is required to implement the
complex instruction decoding.
With Harvard Architecture Can be Harvard or Von-Neumann Architecture
The terms Harvard and Von-Neumann refers to the processor architecture design.
Microprocessors/controllers based on the Harvard architecture will have separate data bus
and instruction bus. This allows the data transfer and program fetching to occur
simultaneously on both buses
With Harvard architecture, the data memory can be read and written while the program
memory is being accessed. These separated data memory and code memory buses allow
one instruction to execute while the next instruction is fetched (“Pre-fetching”)
Program
CPU Data Memory
Memory
Single shared Bus
Separate buses for Instruction and Data fetching Single shared bus for Instruction and Data
fetching
Easier to Pipeline, so high performance can be Low performance Compared to Harvard
achieved Architecture
Comparatively high cost Cheaper
No memory alignment problems Allows self modifying codes†
Since data memory and program memory are Since data memory and program memory
stored physically in different locations, no are stored physically in same chip, chances
chances for accidental corruption of program for accidental corruption of program
memory memory
Endianness specifies the order in which the data is stored in the memory by processor
operations in a multi byte system (Processors whose word size is greater than one byte).
Suppose the word length is two byte then data can be stored in memory in two different
ways
Higher order of data byte at the higher memory and lower order of data byte at
location just below the higher memory
Lower order of data byte at the higher memory and higher order of data byte at
location just below the higher memory
Little-endian means the lower-order byte of the data is stored in memory at the lowest
address, and the higher-order byte at the highest address. (The little end comes first)
Big-endian means the higher-order byte of the data is stored in memory at the lowest address,
and the lower-order byte at the highest address. (The big end comes first.)
The RISC processor instruction set is orthogonal and it operates on registers. The memory access
related operations are performed by the special instructions load and store. If the operand is
specified as memory location, the content of it is loaded to a register using the load instruction.
The instruction store stores data from a specified register to a specified memory location
Instruction Pipelining
The „fetch‟ part fetches the instruction from program memory or code memory and the
decode part decodes the instruction to generate the necessary control signals
The execute stage reads the operands, perform ALU operations and stores the result. In
conventional program execution, the fetch and decode operations are performed in
sequence
During the decode operation the memory address bus is available and if it possible to
effectively utilize it for an instruction fetch, the processing speed can be increased
ASIC integrates several functions into a single chip and thereby reduces the system
development cost
Most of the ASICs are proprietary products. As a single chip, ASIC consumes very small
area in the total system and thereby helps in the design of smaller systems with high
capabilities/functionalities.
If the Non-Recurring Engineering Charges (NRE) is born by a third party and the
Application Specific Integrated Circuit (ASIC) is made openly available in the market,the
ASIC is referred as Application Specific Standard Product (ASSP)
Some ASICs are proprietary products , the developers are not interested in revealing the
internal details.
Logic devices can be classified into two broad categories - Fixed and Programmable. The
circuits in a fixed logic device are permanent, they perform one function or set of functions
- once manufactured, they cannot be changed
Programmable logic devices (PLDs) offer customers a wide range of logic capacity,
features, speed, and voltage characteristics - and these devices can be re-configured to
perform any number of functions at any time
Designers can use inexpensive software tools to quickly develop, simulate, and test their
logic designs in PLD based design. The design can be quickly programmed into a device,
and immediately tested in a live circuit
PLDs are based on re-writable memory technology and the device is reprogrammed to
change the design
Field Programmable Gate Arrays (FPGAs) and Complex Programmable Logic Devices
(CPLDs) are the two major types of programmable logic devices
FPGA:
FPGA is an IC designed to be configured by a designer after manufacturing.
FPGAs offer the highest amount of logic density, the most features, and the highest
performance.
Logic gate is Medium to high density ranging from 1K to 500K system gates
These advanced FPGA devices also offer features such as built-in hardwired processors
(such as the IBM Power PC), substantial amounts of memory, clock management systems,
and support for many of the latest, very fast device-to-device signaling technologies
These advanced FPGA devices also offer features such as built-in hardwired processors,
substantial amounts of memory, clock management systems, and support for many of the
latest, very fast device-to-device signaling technologies.
FPGAs are used in a wide variety of applications ranging from data processing and
storage, to instrumentation, telecommunications, and digital signal processing
CPLD:
A complex programmable logic device (CPLD) is a programmable logic device with
complexity between that of PALs and FPGAs, and architectural features of both.
CPLDs, by contrast, offer much smaller amounts of logic - up to about 10,000 gates.
CPLDs offer very predictable timing characteristics and are therefore ideal for critical
control applications.
CPLDs such as the Xilinx CoolRunner series also require extremely low amounts of
power and are very inexpensive, making them ideal for cost-sensitive, battery-operated,
portable applications such as mobile phones and digital handheld assistants.
ADVANTAGES OF PLDs:
• PLDSs do not require long lead times for prototype or production-the PLDs are already
on a distributor‟s self and ready for shipment
• PLDs do not require customers to pay for large NRE costs and purchase expensive mask
sets
• PLDs allow customers to order just the number of parts required when they need them.
allowing them to control inventory.
• The manufacturers able to add new features or upgrade the PLD based products that are
in the field by uploading new programming file
COTS products are designed in such a way to provide easy integration and
interoperability with existing system components
Typical examples for the COTS hardware unit are Remote Controlled Toy Car control unit
including the RF Circuitry part, High performance, high frequency microwave electronics
(2 to 200 GHz), High bandwidth analog-to-digital converters, Devices and components for
operation at very high temperatures, Electro-optic IR imaging arrays, UV/IR Detectors etc
The major advantage of using COTS is that they are readily available in the market,
cheap and a developer can cut down his/her development time to a great extend.
There is no need to design the module yourself and write the firmware .
The major problem faced by the end-user is that there are no operational and manufacturing
standards.
The major drawback of using COTs component in embedded design is that the
manufacturer may withdraw the product or discontinue the production of the COTs at any
time if rapid change in technology
This problem adversely affect a commercial manufacturer of the embedded system which
makes use of the specific COTs
Memory:
Memory is an important part of an embedded system. The memory used in embedded
system can be either Program Storage Memory (ROM) or Data memory (RAM)
Retains its contents even after the power to it is turned off. It is generally known as Non
volatile storage memory
Depending on the fabrication, erasing and programming techniques they are classified into
The primary advantage of MROM is low cost for high volume production.
Different mechanisms are used for the masking process of the ROM, like
Creation of an enhancement or depletion mode transistor through channel implant
By creating the memory cell either using a standard transistor or a high threshold
transistor.
In the high threshold mode, the supply voltage required to turn ON the transistor is
above the normal ROM IC operating voltage.
This ensures that the transistor is always off and the memory cell stores always logic
0.
The limitation with MROM based firmware storage is the inability to modify the
device firmware against firmware upgrades.
The MROM is permanent in bit storage, it is not possible to alter the bit information
PROM/OTP has nichrome or polysilicon wires arranged in a matrix, these wires can be
functionally viewed as fuses.
Fuses which are not blown/burned represents a logic “1” where as fuses which are
blown/burned represents a logic “0”.The default state is logic “1”.
OTP is widely used for commercial production of embedded systems whose proto-typed
versions are proven and the code is finalized.
Erasable Programmable Read Only (EPROM) memory gives the flexibility to re-program
the same chip.
During development phase , code is subject to continuous changes and using an OTP is not
economical.
EPROM stores the bit information by charging the floating gate of an FET
Bit information is stored by using an EPROM Programmer, which applies high voltage to
charge the floating gate
EPROM contains a quartz crystal window for erasing the stored information. If the window
is exposed to Ultra violet rays for a fixed duration, the entire memory will be erased
Erasable Programmable Read Only (EPROM) memory gives the flexibility to re-program
the same chip using electrical signals
The information contained in the EEPROM memory can be altered by using electrical
signals at the register/Byte level
These chips include a chip erase mode and in this mode they can be erased in a few
milliseconds
The only limitation is their capacity is limited when compared with the standard ROM (A
few kilobytes).
FALSH is the latest ROM technology and is the most popular ROM technology used in
today‟s embedded designs
The erasing of memory can be done at sector level or page level without affecting the
other sectors or pages
The typical erasable capacity of FLASH is of the order of a few 1000 cycles.
RAM is a direct access memory, meaning we can access the desired memory location
directly without the need for traversing through the entire memory locations to reach the
desired memory position (i.e. Random Access of memory location)
Read/Write
Memory (RAM)
In typical implementation, an SRAM cell (bit) is realized using
6 transistors (or 6 MOSFETs).
Four of the transistors are used for building the latch (flip-flop)
part of the memory cell and 2 for controlling the access.
Static RAM is the fastest form of RAM available.
SRAM is fast in operation due to its resistive networking and switching capabilities
Dynamic RAM stores data in the form of charge. They are made up of MOS transistor gates
The advantages of DRAM are its high density and low cost compared to
SRAM
The disadvantage is that since the information is stored as charge it
gets leaked off with time and to prevent this they need to be refreshed
periodically
Special circuits called DRAM controllers are used for the refreshing operation. The refresh
operation is done periodically in milliseconds interval
SRAM Vs DRAM:
It contains Static RAM based memory and a minute battery for providing supply to the
memory in the absence of external power supply
The memory and battery are packed together in a single package
NVRAM is used for the non volatile storage of results of operations or for setting up of flags
etc
The life span of NVRAM is expected to be around 10 years
DS1744 from Maxim/Dallas is an example for 32KB NVRAM
• Systems memory requirement depend primarily on the nature of the application that is
planned to run on the system.
• Memory performance and capacity requirement for low cost systems are small, whereas
memory throughput can be the most critical requirement in a complex, high performance
system.
• Following are the factors that are to be considered while selecting the memory devices,
Speed
Data storage size and capacity
Bus width
Power consumption
Cost
Program memory for holding control algorithm or embedded OS and the applications
designed to run on top of OS.
Data memory for holding variables and temporary data during task execution.
Memory for holding non-volatile data which are modifiable by the application.
The memory requirement for an embedded system in terms of RAM (SRAM/DRAM) and
ROM (EEPROM/FLASH/NVRAM) is solely dependent on the type of the embedded
system and applications for which it is designed.
There is no hard and fast rule for calculating the memory requirements.
Lot of factors need to be considered for selecting the type and size of memory for
embedded system.
SOC or microcontroller can be selected based type(RAM &ROM) and size of on-chip
memory for the design of embedded system.
If on-chip memory is not sufficient then how much external memory need to be interfaced.
If the ES design is RTOS based ,the RTOS requires certain amount of RAM for its
execution and ROM for storing RTOS Image.
The RTOS suppliers gives amount of run time RAM requirements and program memory
requirements for the RTOS.
Additional memory is required for executing user tasks and user applications.
On a safer side, always add a buffer value to the total estimated RAM and ROM
requirements.
A smart phone device with windows OS is typical example for embedded device requires
say 512MB RAM and 1GB ROM are minimum requirements for running the mobile
device.
And additional RAM &ROM memory is required for running user applications.
So estimate the memory requirements for install and run the user applications without
facing memory space.
Memory can be selected based on size of the memory ,data bus and address bus size of the
processor/controller.
Memory chips are available in standard sizes like 512 bytes,1KB,2KB ,4KB,8KB,16 KB
….1MB etc.
It is powerful and cost-effective solid state storage technology for mobile electronic
devices and other consumer applications.
NOR FLASH is less dense and slightly expensive but supports Execute in place(XIP).
The XIP technology allows the execution of code memory from ROM itself without the
need for copying it to the RAM.
If the processor/controller of the device supports serial interface and the amount of data to
write and read to and from the device (Serial EEPROM) is less.
The serial EEPROM saves the address space of the total system.
Industrial grade memory chips are used in certain embedded devices may be operated at
extreme environmental conditions like high temperature.
• The changes in the system environment or variables are detected by the sensors
connected to the input port of the embedded system.
• If the embedded system is designed for any controlling purpose, the system will produce
some changes in controlling variable to bring the controlled variable to the desired value.
• It is achieved through an actuator connected to the out port of the embedded system.
Sensor:
A transducer device which converts energy from one form to another for any
measurement or control purpose. Sensors acts as input device
Eg. Hall Effect Sensor which measures the distance between the cushion and magnet in
the Smart Running shoes from adidas
Actuator:
The I/O subsystem of the embedded system facilitates the interaction of the
embedded system with external world
The interaction happens through the sensors and actuators connected to the
Input and output ports respectively of the embedded system
The sensors may not be directly interfaced to the Input ports, instead they
may be interfaced through signal conditioning and translating systems
like ADC, Optocouplers etc
R
indication in any embedded system
For proper functioning of the LED, the anode of it should be connected to +ve terminal
of the supply voltage and cathode to the –ve terminal of supply voltage
The current flowing through the LED must limited to a value below the maximum current
that it can conduct.
A resister is used in series between the power supply and the resistor to limit the current
through the LED
The 7 – segment LED display is an output device for displaying alpha numeric characters
It contains 8 light-emitting diode (LED) segments arranged in a special form. Out of the 8
LED segments, 7 are used for displaying alpha numeric characters
The LED segments are named A to G and the decimal point LED segment is named as
DP
The LED Segments A to G and DP should be lit accordingly to display numbers and
characters
The 7 – segment LED displays are available in two different configurations, namely;
Common anode and Common cathode
In the Common anode configuration, the anodes of the 8 segments are connected
commonly whereas in the Common cathode configuration, the 8 LED segments share a
common cathode line
Based on the configuration of the 7 – segment LED unit, the LED segment anode or
cathode is connected to the Port of the processor/controller in the order „A‟ segment to the
Least significant port Pin and DP segment to the most significant Port Pin.
The current flow through each of the LED segments should be limited to the maximum
value supported by the LED display unit
DPGF ED C B A
Common Anode LED Display Cathode
The typical value for the current falls within the range of 20mA
The current through each segment can be limited by connecting a current limiting resistor
to the anode or cathode of each segment
It differs from the normal dc motor in its operation. The dc motor produces
continuous rotation on applying dc voltage whereas a stepper motor produces discrete
rotation in response to the dc voltage applied to it
M
The paper feed mechanism of a printer/fax makes use C
of stepper motors for its functioning.
Unipolar
Bipolar
Unipolar: A unipolar stepper motor contains two windings per phase. The direction of
rotation (clockwise or anticlockwise) of a stepper motor is controlled by changing the
direction of current flow. Current in one direction flows through one coil and in the
opposite direction flows through the other coil. It is easy to shift the direction of rotation
by just switching the terminals to which the coils are connected
Bipolar: A bipolar stepper motor contains single winding per phase. For reversing the
motor rotation the current flow through the windings is reversed dynamically. It requires
complex circuitry for current flow reversal
The „Relay‟ unit contains a relay coil made up of insulated wire on a metal core and a metal
armature with one or more contacts.
„Relay‟ works on electromagnetic principle.
When a voltage is applied to the relay coil, current flows through the coil, which in turn
generates a magnetic field.
CoilR
Relay
Coil
elay
oi
el
R
l
C
y
a
The Relay is normally controlled using a relay driver circuit connected to the port pin of the
processor/controller
A transistor can be used as the relay driver. The transistor can be selected depending on the
relay driving current requirements.
• The tone can be varied by applying a variable pulse train to the piezoelectric buzzer.
• A Piezo Buzzer can be directly interfaced to the port pin of the processor/Controller.
Push button switch comes in two configurations, namely „Push to Make‟
and „Push to Break‟
The switch is normally in the open state and it makes a circuit contact when
it is pushed or pressed in the „Push to Make‟ configuration.
In the „Push to Break‟ configuration, the switch is
normally in the closed state and it breaks the
circuit contact when it is pushed or pressed
The push button stays in the „closed‟ (For Push
to Make type) or „open‟ (For Push to Break
type) state as long as it is kept in the pushed state
and it breaks/makes the circuit connectionwhen
it is released.
Push button is used for generating a momentary pulse
Text Book:-
UNIT-III
COMMUNICATION INTERFACE
N.SURESH
Department of ECE
Communication Interface:
• Communication interface is essential for communicating with various subsystems of the
embedded system and with the external world
Examples: Serial interfaces like I2C, SPI, UART, 1-Wire etc and Parallel bus interface
Examples for wireless communication interface: Infrared (IR), Bluetooth (BT), Wireless
LAN (Wi-Fi), Radio Frequency waves (RF), GPRS etc.
Examples for wired interfaces: RS-232C/RS-422/RS 485, USB, Ethernet (TCP-IP), IEEE
1394 port, Parallel port etc.
The I2C bus is comprised of two bus lines, namely; Serial Clock – SCL and Serial Data – SDA.
SCL line is responsible for generating synchronization clock pulses and SDA is responsible
for transmitting the serial data across devices.I2C bus is a shared bus system to which many
number of I2C devices can be connected. Devices connected to the I2C bus can act as either
„Master‟ device or „Slave‟ device.
The „Master‟ device is responsible for controlling the communication by
initiating/terminating data transfer, sending data and generating necessary synchronization clock
pulses.
Slave devices wait for the commands from the master and respond upon receiving the
commands. Master and „Slave‟ devices can act as either transmitter or receiver. Regardless
whether a master is acting as transmitter or receiver, the synchronization clock signal is generated
by the „Master‟ device only.I2C supports multi masters on the same bus.
The sequence of operation for communicating with an I2C slave device is:
1. Master device pulls the clock line (SCL) of the bus to „HIGH‟
2. Master device pulls the data line (SDA) „LOW‟, when the SCL line is at logic
„HIGH‟ (This is the „Start‟ condition for data transfer)
3. Master sends the address (7 bit or 10 bit wide) of the „Slave‟ device to which it wants to
communicate, over the SDA line.
4. Clock pulses are generated at the SCL line for synchronizing the bit reception by the
slave device.
5. The MSB of the data is always transmitted first.
6. The data in the bus is valid during the „HIGH‟ period of the clock signal
7. In normal data transfer, the data line only changes state when the clock is low.
8. Master waits for the acknowledgement bit from the slave device whose address is sent on
the bus along with the Read/Write operation command.
9. Slave devices connected to the bus compares the address received with the address
assigned to them
10. The Slave device with the address requested by the master device responds by sending an
acknowledge bit (Bit value =1) over the SDA line
11. Upon receiving the acknowledge bit, master sends the 8bit data to the slave device over
SDA line, if the requested operation is „Write to device‟.
12. If the requested operation is „Read from device‟, the slave device sends data to the
master over the SDA line.
13. Master waits for the acknowledgement bit from the device upon byte transfer complete
for a write operation and sends an acknowledge bit to the slave device for a read operation
14. Master terminates the transfer by pulling the SDA line „HIGH‟ when the clock line SCL
is at logic „HIGH‟ (Indicating the „STOP‟ condition).
During transmission from the master to slave, the data in the master‟s shift register is
shifted out to the MOSI pin and it enters the shift register of the slave device through the
MOSI pin of the slave device.
At the same time the shifted out data bit from the slave device’s shift register enters the
shift register of the master device through MISO pin
1- Wire is a device communications bus system designed by Dallas Semiconductor Corp. that
provides low-speed data, signaling, and power over a single conductor.
1-Wire is similar in concept to I²C, but with lower data rates and longer range. It is typically used
to communicate with small inexpensive devices such as digital thermometers and weather
instruments.
One distinctive feature of the bus is the possibility of using only two wires: data and ground.
To accomplish this, 1-Wire devices include an 800 pF capacitor to store charge, and to power the
device during periods when the data line isactive
There is always one master in overall charge, which may be a PC or a microcontroller. The
master initiates activity on the bus, simplifying the avoidance of collisions on the bus. Protocols
are built into the software to detect collisions. After a collision, the master retries the required
communication.
Many devices can share the same bus. Each device on the bus has a unique 64-bit serial
number. The least significant byte of the serial number is an 8-bit number that tells the type of the
device. The most significant byte is a standard (for the 1-wire bus) 8-bit CRC.
The master starts a transmission with a reset pulse, which pulls the wire to 0 volts for at least 480
µs. This resets every slave device on the bus. After that, any slave device, if present, shows that
it exists with a "presence" pulse: it holds the bus low for at least 60 µs after the master releases the
bus.
To send a "1", the bus master sends a very brief (1– 15 µs) low pulse. To send a "0", the
master sends a 60 µs low pulse.When receiving data, the master start sends a 1–15-µs 0-volt pulse
to slave each bit. If the transmitting does unit wants to send a "1", it to the nothing, and the bus
goes transmitting pulled-up voltage. If the "0", it pulls slave wants to send the data line to ground
for 60 µs.
PARALLEL COMMUNICATION:
In data transmission, parallel communication is a method of conveying multiple binary
digits (bits) simultaneously. It contrasts with communication. The communication channel is the
number of electrical conductors used at the physical layer to convey bits.
Parallel communication implies more than one such conductor. For example, an 8-bit
parallel channel will convey eight bits (or a byte) simultaneously, whereas a serial channel would
convey those same bits sequentially, one at a time. Parallel communication is and always has been
widely used within integrated circuits, in peripheral buses, and in memory devices such as RAM.
1. RS-232C/RS-422/RS 485
2. USB
RS-232C:
RS-232 C (Recommended Standard number 232, revision C from the Electronic Industry
Association) is a legacy, full duplex, wired, asynchronous serial communication interface
RS-232 extends the UART communication signals for external data communication.
UART uses the standard TTL/CMOS logic (Logic „High‟ corresponds to bit value 1 and
Logic „LOW‟ corresponds to bit value 0) for bit transmission whereas RS232 use the EIA
standard for bit transmission.
As per EIA standard, a logic „0‟ is represented with voltage between +3 and +25V and a
logic „1‟ is represented with voltage between -3 and -25V.
In EIA standard, logic „0‟ is known as „Space‟ and logic „1‟ as „Mark‟.
The RS232 interface define various handshaking and control signals for communication
apart from the „Transmit‟ and „Receive‟ signal lines for data communication
RS-232 supports two different types of connectors, namely; DB-9: 9-Pin connector and DB-25:
25-Pin connector.
RS-232 is a point-to-point communication interface and the devices involved in RS-232
communication are called „Data Terminal Equipment (DTE)‟ and „Data Communication
Equipment (DCE)‟.
If no data flow control is required, only TXD and RXD signal lines and ground line (GND)
are required for data transmission and reception.
The RXD pin of DCE should be connected to the TXD pin of DTE and vice versa for proper
data transmission.
If hardware data flow control is required for serial transmission, various control signal lines of
the RS-232 connection are used appropriately.
The control signals are implemented mainly for modem communication and some of them may
be irrelevant for other type of devices.
The Request to Send (RTS) and Clear To Send (CTS) signals co-ordinate the communication
between DTE and DCE.
Whenever the DTE has a data to send, it activates the RTS line and if the DCE is ready to
accept the data, it activates the CTS line.
The Data Terminal Ready (DTR) signal is activated by DTE when it is ready to accept data.
The Data Set Ready (DSR) is activated by DCE when it is ready for establishing a
communication link.
DTR should be in the activated state before the activation of DSR.
The Data Carrier Detect (DCD) is used by the DCE to indicate the DTE that a good signal is
Ring Indicator (RI) is a modem specific signal line for indicating an incoming call on the
telephone line.
As per the EIA standard RS-232 C supports baudrates up to 20Kbps (Upper limit 19.2Kbps).
The commonly used baudrates by devices are 300bps, 1200bps, 2400bps, 9600bps,
11.52Kbps and 19.2Kbps.
The maximum operating distance supported in RS-232 communication is 50 feet at the
highest supported baudrate.
Embedded devices contain a UART for serial communication and they generate signal levels
conforming to TTL/CMOS logic.
A level translator IC like MAX 232 from Maxim Dallas semiconductor is used for converting
the signal lines from the UART to RS-232 signal lines for communication.
On the receiving side the received data is converted back to digital logic level by a converter
IC.
Converter chips contain converters for both transmitter and receiver.
RS-232 uses single ended data transfer and supports only point-to-point communication and
not suitable for multi-drop communication.
There exist two pre-defined connectors in any USB system - Series “A” and Series “B”
Connectors.
Bus Topology:
Four wire cable serves as interconnect of system - power, ground and two differential
signaling lines.
USB is a polled bus-all transactions are initiated by host.
USB HOST: Device that controls entire system usually a PC of some form. Processes data arriving
to and from the USB port.
USB HUB: Tests for new devices and maintains status information of child devices.Serve as
repeaters, boosting strength of up and downstream signals. Electrically isolates devices from one
another - allowing an expanded number of devices.
2.Wireless communication interface : Wireless communication interface is an interface used to
transmission of information over a distance without help of wires, cables or any other forms of
electrical conductors.
1. Infrared
2. Bluetooth
3. Wi-Fi
4. Zigbee
5. GPRS
INFRARED:
Measure of heat
Most of the thermal radiation emitted by objects near room temperature is infrared. Infrared
radiation is used in industrial, scientific, and medical applications. Night-vision devices using
active near-infrared illumination allow people or animals to be observed without the observer
being detected.
IR transmission:
The transmitter of an IR LED inside its circuit, which emits infrared light for every electric pulse
given to it. This pulse is generated as a button on the remote is pressed, thus completing the circuit,
providing bias to the LED.
The LED on being biased emits light of the wavelength of 940nm as a series of pulses,
corresponding to the button pressed. However since along with the IR LED many other sources
of infrared light such as us human beings, light bulbs, sun, etc, the transmitted information can be
interfered. A solution to this problem is by modulation. The transmitted signal is modulated using
a carrier frequency of 38 KHz (or any other frequency between 36 to 46 KHz). The IR LED is
made to oscillate at this frequency for the time duration of the pulse. The information or the light
signals are pulse width modulated and are contained in the 38 KHz frequency.
BLUETOOTH:
Bluetooth is a wireless technology standard for short distances (using short-wavelength UHF
band from 2.4 to 2.485 GHz)for exchanging data over radio waves in the ISM and mobile
devices, and building personal area networks (PANs).Invented by telecom vendor Ericsson in
1994, it was originally conceived as a wireless alternative to RS- 232 data cables.
Bluetooth uses a radio technology called frequency- hopping spread spectrum. Bluetooth
divides transmitted data into packets, and transmits each packet on one of 79 designated Bluetooth
channels. Each channel has a bandwidth of 1 MHz. It usually performs 800 hops per second, with
Adaptive Frequency-Hopping (AFH) enabled
Originally, Gaussian frequency-shift keying (GFSK) modulation was the only modulation
scheme available. Since the introduction of Bluetooth 2.0+EDR, π/4-DQPSK (Differential
Quadrature Phase Shift Keying) and 8DPSK modulation may also be used between compatible
devices. Bluetooth is a packet-based protocol with a master- slave structure. One master may
communicate with up to seven slaves in a piconet. All devices share the master's clock. Packet
exchange is based on the basic clock, defined by the master, which ticks at312.5 µs intervals.
A master BR/EDR Bluetooth device can communicate with a maximum of seven devices
in a piconet (an ad-hoc computer network using Bluetooth technology), though not all devices
reach this maximum. The devices can switch roles, by agreement, and the slave can become the
master (for example, a headset initiating a connection to a phone necessarily begins as master—
as initiator of the connection—but may subsequently operate as slave).
Wi-Fi:
Wi-Fi is the name of a popular wireless networking technology that uses radio waves to
provide wireless high-speed Internet and network connections
Wi-Fi follows the IEEE 802.11 standard
Wi-Fi is intended for network communication and it supports Internet Protocol (IP) based
communication
Wi-Fi based communications require an intermediate agent called Wi-Fi router/Wireless
Access point to manage the communications.
The Wi-Fi router is responsible for restricting the access to a network, assigning IP address to
devices on the network, routing data packets to the intended devices on the network.
Wi-Fi enabled devices contain a wireless adaptor for transmitting and receiving data in the
form of radio signals through an antenna.
Wi-Fi operates at 2.4GHZ or 5GHZ of radio spectrum and they co-exist with other ISM
band devices like Bluetooth.
A Wi-Fi network is identified with a Service Set Identifier (SSID). A Wi-Fi device can
connect to a network by selecting the SSID of the network and by providing the credentials
if the network is security enabled
Wi-Fi networks implements different security mechanisms for authentication and data
transfer.
Wireless Equivalency Protocol (WEP), Wireless Protected Access (WPA) etc are some of
the security mechanisms supported by Wi-Fi networks in data communication.
ZIGBEE:
Zigbee is an IEEE 802.15.4-based specification for a suite of high- level communication protocols
used to create personal area networks with small, low-power digital radios, such as for home
automation, medical device data collection, and other low-power low-bandwidth needs, designed
for small scale projects which need wireless connection.Hence, zigbee is a low-power, low data
rate, and close proximity (i.e., personal area) wireless ad hoc network.The technology
defined by the zigbee specification is intended to be simpler and less expensive than other
wireless personal area networks (WPANs), such as Bluetooth or Wi-Fi . Applications include
wireless light switches, electrical meters with in-home-displays, traffic management systems, and
other consumer and industrial equipment that require short-range low- rate wireless data transfer.
Its low power consumption limits transmission distances to 10– 100 meters line-of-sight,
depending on power output and environmental characteristics. Zigbee devices can transmit data
over long distances by passing data through a mesh network of intermediate devices to reach
more distant ones.
Zigbee Coordinator: The zigbee coordinator acts as the root of the zigbee network. The ZC is
responsible for initiating the Zigbee network and it has the capability to store information about
the network.
Zigbee Router: Responsible for passing information from device to another device or to another
ZR.
Zigbee end device:End device containing zigbee functionality for data communication. It can talk
only with a ZR or ZC and doesn’t have the capability to act as a mediator for transferring data
from one device to another.
Zigbee supports an operating distance of up to 100 metres at a data rate of 20 to 250 Kbps.
General Packet Radio Service (GPRS) is a packet oriented mobile data service on the 2G and
3G cellular communication system's global system for mobile communications (GSM).GPRS was
originally standardized by European Telecommunications Standards Institute (ETSI) GPRS usage
is typically charged based on volume of data transferred, contrasting with circuit switched data,
which is usually billed per minute of connection time. Sometimes billing time is broken down to
every third of a minute. Usage above the bundle cap is charged per megabyte, speed limited, or
disallowed.
Services offered:
GPRS extends the GSM Packet circuit switched data capabilities and makes the
following services possible:
SMS messaging and broadcasting
"Always on" internet access
Multimedia messaging service (MMS)
Push-to-talk over cellular (PoC)
Instant messaging and presence-wireless village Internet applications for smart devices
through wireless application protocol (WAP).
Point-to-point (P2P) service: inter-networking with the Internet (IP).
Point-to-multipoint (P2M) service]: point-to- multipoint multicast and point-to-multipoint
group calls.
Text Book:-
Gandhi Lakavath ,
Department of EEE
Embedded Systems Unit-4 Notes
Embedded Firmware
Introduction:
The product starts functioning properly once the intelligence imparted to the
product by embedding the firmware in the hardware.
The product will continue serving the assigned task till hardware breakdown
occurs or a corruption in embedded firmware.
There exist two basic approaches for the design and implementation of
embedded firmware, namely;
The task listed on top on the program code is executed first and the tasks just
below the top are executed after completing the first task
void main ()
{
Configurations ();
Initializations ();
while (1)
{
Task 1 ();
Task 2 ();
:
:
Task n ();
}
}
Pros:
Doesn’t require an Operating System for task scheduling and monitoring and
free from OS related overheads
Simple and straight forward design
Reduced memory footprint
Cons:
Non Real time in execution behavior (As the number of tasks increases the
frequency at which a task gets CPU time for execution also increases)
Any issues in any task execution may affect the functioning of the product
(This can be effectively tackled by using Watch Dog Timers for task
execution monitoring)
Enhancements:
Combine Super loop based technique with interrupts
Execute the tasks (like keyboard handling) which require Real time attention
as Interrupt Service routines.
Point of Sale (PoS) terminals, Gaming Stations, Tablet PCs etc are examples
of embedded devices running on embedded GPOSs
Mobile Phones, PDAs, Flight Control Systems etc are examples of embedded
devices that runs on RTOSs
o Subset of C (Embedded C)
o Subset of C++ (Embedded C++)
o Any other high level language with supported Cross-compiler
It is not necessary that all opcode should have Operands following them.
Some of the Opcode implicitly contains the operand and in such situation no
operand is required. The operand may be a single operand, dual operand or
more
MOV A, #30
Moves decimal value 30 to the 8051 Accumulator register. Here MOV A is the
Opcode and 30 is the operand (single operand). The same instruction when written
in machine language will look like
01110100 00011110
The first 8 bit binary value 01110100 represents the opcode MOV A and the second
8 bit binary value 00011110 represents the operand 30.
;###############################################################
; SUBROUTINE FOR GENERATING DELAY
; DELAY PARAMETR PASSED THROUGH REGISTER R1
; RETURN VALUE NONE,REGISTERS USED: R0, R1
;###############################################################
##### DELAY: MOV R0, #255 ; Load Register R0 with 255
Each source file can be assembled separately to examine the syntax errors
and incorrect assembly instructions
Assembling of each source file generates a corresponding object file. The
object file does not contain the absolute address of where the generated
code needs to be placed (a re-locatable code) on the program memory
The software program called linker/locater is responsible for assigning
absolute address to object files during the linking process
The Absolute object file created from the object files corresponding to
different source code modules contain information about the address where
each instruction needs to be placed in code memory
A software utility called ‘Object to Hex file converter’ translates the
absolute object file to corresponding hex file (binary file)
Advantages:
Optimized code not only improves the code memory usage but also
improves the total system performance.
Through effective assembly coding, optimum performance can be
achieved for target processor.
3.Low level Hardware Access:
Most of the code for low level programming like accessing external
device specific registers from OS kernel ,device drivers, and low level
interrupt routines, etc are making use of direct assembly coding.
Gandhi Lakavath, EEE Page 9
Embedded Systems Unit-4 Notes
3.Non portable:
The embedded firmware is written in any high level language like C, C++
Library Files
Source File 1
Module
(.c /.c++ etc) Object File 1
Cross-compiler
(Module-1)
Source File 2
Module
(.c /.c++ etc) Object File 2
Cross-compiler
(Module-2)
Machine Code
(Hex File)
Advantages:
Drawbacks:
High Level language and low level language can be mixed in three different
ways
In line Assembly
The passing of parameters and return values between the high level and low
level language is cross-compiler specific
Assembly routines are mixed with ‘C’ in situations where the entire program
is written in ‘C’ and the cross compiler in use do not have built in support for
implementing certain features like ISR.
If the programmer wants to take advantage of the speed and optimized code
offered by the machine code generated by hand written assembly rather than
cross compiler generated machine code.
For accessing certain low level hardware ,the timing specifications may be
very critical and cross compiler generated machine code may not be able to
offer the required time specifications accurately.
The programmer must be aware of how to pass parameters from the ‘C’
routine to assembly and values returned from assembly routine to ‘C’ and how
Assembly routine is invoked from the ‘C’ code.
Passing parameter to the assembly routine and returning values from the
assembly routine to the caller ‘C’ function and the method of invoking the
assembly routine from ‘C’ code is cross compiler dependent.
The entire source code is planned in Assembly code for various reasons like
optimized code, optimal performance, efficient code memory utilization and
proven expertise in handling the assembly.
The functions written in ‘C’ use parameter passing to the function and returns
values to the calling functions.
The programmer must be aware of how parameters are passed to the function
and how values returned from the function and how function is invoked from
the assembly language environment.
Passing parameter to the function and returning values from the function using
CPU registers , stack memory and fixed memory.
3. In line Assembly:
• Inline Assembly avoids the delay in calling an assembly routine from a ‘C’
code.
• Special keywords are used to indicate the start and end of Assembly
instructions
Mov A,#13H
#pragma ensasm
• Keil C51 uses the keywords #pragma asm and #pragma endasm to indicate
a block of code written in assembly.
Text Books:
N.SURESH
Department of ECE
The Kernel:
Kernel acts as the abstraction layer between system resources and user
applications
For a general purpose OS, the kernel contains different services like
Process Management
Protection
Time management
Interrupt Handling
The memory space at which the kernel code is located is known as ‘Kernel
Space’
All user applications are loaded to a specific area of primary memory and this
memory area is referred as ‘User Space’
The partitioning of memory into kernel and user space is purely Operating
System dependent
An operating system with virtual memory support, loads the user applications
into its corresponding virtual memory space with demand paging technique
Most of the operating systems keep the kernel application code in main
memory and it is not swapped out into the secondary memory
Monolithic Kernel:
All kernel modules run within the same memory space under a single kernel
thread
The tight internal integration of kernel modules in monolithic kernel
architecture allows the effective
utilization of the low-level features of
the underlying system Applications
The major drawback of monolithic
kernel is that any error or failure in any
one of the kernel modules leads to the
crashing of the entire kernel
Monolithic kernel with all
application operating system services
running in kernel space
LINUX, SOLARIS, MS-DOS kernels
are examples of monolithic kernel
Microkernel
abstraction.
The kernel is more generalized and contains all the required services to
execute generic applications
May inject random delays into application software and thus cause slow
responsiveness of an application at unexpected times
The Real Time Kernel: The kernel of a Real Time Operating System is referred as
Real Time kernel. In complement to the conventional OS kernel, the Real Time
kernel is highly specialized and it contains only the minimal set of services required
for running the user applications/tasks. The basic functions of a Real Time kernel are
a) Task/Process management
b) Task/Process scheduling
c) Task/Process synchronization
d) Error/Exception handling
e) Memory Management
f) Interrupt handling
g) Time management
Task State: The current state of the task. (E.g. State= ‘Ready’ for a task
which is ready to execute)
Task Type: Task type. Indicates what is the type for this task. The task can
be a hard real time or soft real time or background task.
Task Priority: Task priority (E.g. Task priority =1 for task with priority = 1)
Task Memory Pointers: Pointers to the code memory, data memory and
stack memory for the task
Task Pointers: Pointers to other TCBs (TCBs for preceding, next and
waiting tasks)
The parameters and implementation of the TCB is kernel dependent. The TCB
parameters vary across different kernels, based on the task management
implementation
Memory Management:
The memory allocation time increases depending on the size of the block
of memory needs to be allocated and the state of the allocated memory
block (initialized memory block consumes more allocation time than un-
initialized memory block)
Since predictable timing and deterministic behavior are the primary focus
for an RTOS, RTOS achieves this by compromising the effectiveness of
memory allocation
RTOS kernel uses blocks of fixed size of dynamic memory and the block
is allocated for a task on a need basis. The blocks are stored in a ‘Free
buffer Queue’.
Most of the RTOS kernels allow tasks to access any of the memory blocks
without any memory protection to achieve predictable timing and avoid
the timing overheads
RTOS kernels assume that the whole design is proven correct and
protection is unnecessary. Some commercial RTOS kernels allow memory
protection as optional and the kernel enters a fail-safe mode when an illegal
memory access occurs
Interrupt Handling:
Interrupts which occurs in sync with the currently executing task is known
as Synchronous interrupts. Usually the software interrupts fall under the
Synchronous Interrupt category. Divide by zero, memory segmentation
error etc are examples of Synchronous interrupts.
For synchronous interrupts, the interrupt handler runs in the same context
of the interrupting task.
Priority levels can be assigned to the interrupts and each interrupts can be
enabled or disabled individually.
Time Management:
The ‘Timer tick’ is taken as the timing reference by the kernel. The ‘Timer
tick’ interval may vary depending on the hardware timer. Usually the
‘Timer tick’ varies in the microseconds range
The time parameters for tasks are expressed as the multiples of the‘Timer
tick’
If the System time register is 32 bits wide and the ‘Timer tick’ interval is
1microsecond, the System time register will reset in
232 * 10-6/ (24 * 60 * 60) = 49700 Days =~ 0.0497 Days = 1.19 Hours
If the ‘Timer tick’ interval is 1 millisecond, the System time register will
reset in
The ‘Timer tick’ interrupt is handled by the ‘Timer Interrupt’ handler of kernel.
The ‘Timer tick’ interrupt can be utilized for implementing the following actions.
Increment the System time register by one. Generate timing error and reset
the System time register if the timer tick count is greater than the maximum
range available for System time register
Invoke the scheduler and schedule the tasks again based on the scheduling
algorithm
Delete all the terminated tasks and their associated data structures (TCBs)
Load the context for the first task in the ready queue. Due to the re- scheduling,
the ready task might be changed to a new one from the task, which was pre-
empted by the ‘Timer Interrupt’ task
A Hard Real Time system must meet the deadlines for a task without any
slippage
Missing any deadline may produce catastrophic results for Hard Real Time
Systems, including permanent data lose and irrecoverable damages to the
system/users
Air bag control systems and Anti-lock Brake Systems (ABS) of vehicles
are typical examples of Hard Real Time Systems
As a rule of thumb, Hard Real Time Systems does not implement the
virtual memory model for handling the memory. This eliminates thedelay
in swapping in and out the code corresponding to the task to and from the
primary memory
The presence of Human in the loop (HITL) for tasks introduces un-
expected delays in the task execution. Most of the Hard Real TimeSystems
are automatic and does not contain a ‘human in the loop’
Real Time Operating Systems that does not guarantee meeting deadlines,
but, offer the best effort to meet the deadline
Soft Real Time systems most often have a ‘human in the loop (HITL)’
Gandhi Lakavath, EEE Page 13
ES Unit-5 Notes
An audio video play back system is another example of Soft Real Time
system. No potential damage arises if a sample comes late by fraction of a
second, for play back.
Process
A process, which inherits all
Stack
the properties of the CPU, (Stack Pointer)
When the process gets its turn, its registers and Program counter register
becomes mapped to the physical registers of the CPU
Code Memory
The stack memory usually starts at the highest memory address from the
memory area allocated for the process (Depending on the OS kernel
implementation)
The process traverses through a series of states during its transition from the
newly created state to the terminated state
The cycle through which a process changes its state from ‘newly created’ to
‘execution completed’ is known as ‘Process Life Cycle’. The various states
through which a process traverses through during a Process Life Cycle
indicates the current status of the process with respect to time and also
provides information on what it is allowed to do next
Ready State: The state, where a process is incepted into the memory and
awaiting the processor time for execution, is known as ‘Ready State’. At
this stage, the process is placed in the ‘Ready list’ queue maintained by the
OS
Running State: The state where in the source code instructions corresponding
to the process is being executed is called ‘Running State’. Running state is the
state at which the process execution happens
Created
. Blocked State/Wait State: Refers
to a state where a running process is Incepted into memory
Scheduled for
Interrupted or
blocked state might have invoked by
Preempted
Execution
Blocked
various conditions like- the process
enters a wait state for an event to
occur (E.g. Waiting for user inputs Running
such as keyboard input) or waiting for
getting access to a shared resource Execution Completion
Threads
threads of the process that do not require the event, which the other thread is
waiting, for processing. This speeds up the execution of the process.
Thread Process
Thread is a single unit of execution and is part Process is a program in execution and contains
of process. one or more threads.
A thread does not have its own data memory Process has its own code memory, data memory
and heap memory. It shares the data memory and stack memory.
and heap memory with other threads of the
same process.
A thread cannot live independently; it lives A process contains at least one thread.
within the process.
There can be multiple threads in a process.The Threads within a process share the code, data
first thread (main thread) calls the main and heap memory. Each thread holds separate
function and occupies the start of the stack memory area for stack (shares the total stack
memory of the process. memory of the process).
Threads are very inexpensive to create Processes are very expensive to create. Involves
many OS overhead.
Context switching is inexpensive and fast Context switching is complex and involves lot of
OS overhead and is comparatively slower.
If a thread expires, its stack is reclaimed by the If a process dies, the resources allocated to it are
process. reclaimed by the OS and all the associated
threads of the process also dies.
Advantages of Threads:
1. Better memory utilization: Multiple threads of the same process share the
address space for data memory. This also reduces the complexity of inter
thread communication since variables can be shared across the threads.
3. Speeds up the execution of the process: The process is split into different
threads, when one thread enters a wait state, the CPU can be utilized by other
threads of the process that do not require the event, which the other thread is
waiting, for processing.
‘Context Switching’
Processes
Types of Multitasking :
Task Scheduling:
In a multitasking system, there should be some mechanism in place to share
the CPU among the different tasks and to decide which process/task is to be
executed at a given point of time
Depending on the scheduling policy the process scheduling decision may take
place when a process switches its state to
Process 1
Scheduler
Job Queue
Queue ’
Admitted Process 1
Process
vice
Run Process
to Completion
Move Process to ‘De
Process n
to ‘Ready’ queue Process
Ready Queue
Resource Request
Device
Manager
Process
Process 1
Process 2
Allocates CPU time to the processes based on the order in which they enters
the ‘Ready’ queue
The first entered process is serviced first
It is same as any real world application where queue systems are used; E.g.
Ticketing
Drawbacks:
Favors monopoly of process. A process, which does not contain any I/O
operation, continues its execution until it finishes its task
In general, FCFS favors CPU bound processes and I/O bound processes may
have to wait until the completion of CPU bound process, if the currently
executing process is a CPU bound process. This leads to poor device
utilization.
The average waiting time is not minimal for FCFS scheduling algorithm
EXAMPLE: Three processes with process IDs P1, P2, P3 with estimated
completion time 10, 5, 7 milliseconds respectively enters the ready queue together
in the order P1, P2, P3. Calculate the waiting time and Turn Around Time (TAT) for
each process and the Average waiting time and Turn Around Time (Assuming there
is no I/O waiting for the processes).
0 10 15 22
10 5 7
Assuming the CPU is readily available at the time of arrival of P1, P1 starts
executing without any waiting in the ‘Ready’ queue. Hence the waiting time for P1
is zero.
Waiting Time for P3 = 15 ms (P3 starts executing after completing P1 and P2)
Average waiting time = (Waiting time for all processes) / No. of Processes
Average Turn Around Time= (Turn Around Time for all processes) / No. of
Processes
= (10+15+22)/3 = 47/3
= 15.66 milliseconds
Allocates CPU time to the processes based on the order in which they are
entered in the ‘Ready’ queue
LCFS scheduling is also known as Last In First Out (LIFO) where the process,
which is put last into the ‘Ready’ queue, is serviced first
Drawbacks:
Favors monopoly of process. A process, which does not contain any I/O
operation, continues its execution until it finishes its task
In general, LCFS favors CPU bound processes and I/O bound processes may
have to wait until the completion of CPU bound process, if the currently
executing process is a CPU bound process. This leads to poor device
utilization.
The average waiting time is not minimal for LCFS scheduling algorithm
EXAMPLE: Three processes with process IDs P1, P2, P3 with estimated
completion time 10, 5, 7 milliseconds respectively enters the ready queue together
in the order P1, P2, P3 (Assume only P1 is present in the ‘Ready’ queue when the
scheduler picks up it and P2, P3 entered ‘Ready’ queue after that). Now a new
process P4 with estimated completion time 6ms enters the ‘Ready’ queue after 5ms
of scheduling P1. Calculate the waiting time and Turn Around Time (TAT) for each
process and the Average waiting time and Turn Around Time (Assumingthere is no
I/O waiting for the processes).Assume all the processes contain only CPU operation
and no I/O operations are involved.
Solution: Initially there is only P1 available in the Ready queue and the scheduling
sequence will be P1, P3, P2. P4 enters the queue during the execution of P1 and
becomes the last process entered the ‘Ready’ queue. Now the order of execution
changes to P1, P4, P3, and P2 as given below.
P1 P4 P3 P2
0 10 16 23 28
10 6 7 5
Waiting Time for P4 = 5 ms (P4 starts executing after completing P1. But P4
arrived after 5ms of execution of P1. Hence its waiting time = Execution start time
– Arrival Time = 10-5 = 5)
Waiting Time for P3 = 16 ms (P3 starts executing after completing P1 and P4)
Waiting Time for P2 = 23 ms (P2 starts executing after completing P1, P4 and P3)
Average waiting time = (Waiting time for all processes) / No. of Processes
= (Waiting time for (P1+P4+P3+P2)) / 4
= (0 + 5 + 16 + 23)/4 = 44/4
= 11 milliseconds
Turn Around Time (TAT) for P1 = 10 ms (Time spent in Ready Queue + Execution Time)
Turn Around Time (TAT) for P3 = 23 ms (Time spent in Ready Queue + Execution Time)
Turn Around Time (TAT) for P2 = 28 ms (Time spent in Ready Queue + Execution Time)
Average Turn Around Time = (Turn Around Time for all processes) / No. of Processes
= (Turn Around Time for (P1+P4+P3+P2)) / 4
= (10+11+23+28)/4 = 72/4
= 18 milliseconds
The average waiting time for a given set of processes is minimal in SJF
scheduling
Drawbacks:
A process whose estimated execution completion time is high may not get a
chance to execute if more and more processes with least estimated execution
time enters the ‘Ready’ queue before the process with longest estimated
execution time starts its execution
May lead to the ‘Starvation’ of processes with high estimated completion time
Difficult to know in advance the next shortest process in the ‘Ready’ queue
for scheduling since new processes with different estimated execution time
keep entering the ‘Ready’ queue at any point of time.
The priority is assigned to the task on creating it. It can also be changed
dynamically (If the Operating System supports this feature)
The non-preemptive priority based scheduler sorts the ‘Ready’ queue based
on the priority and picks the process with the highest level of priority for
execution
EXAMPLE: Three processes with process IDs P1, P2, P3 with estimated
completion time 10, 5, 7 milliseconds and priorities 0, 3, 2 (0- highest priority, 3
lowest priority) respectively enters the ready queue together. Calculate the waiting
time and Turn Around Time (TAT) for each process and the Average waiting time
and Turn Around Time (Assuming there is no I/O waiting for the processes) in
priority based scheduling algorithm.
Solution: The scheduler sorts the ‘Ready’ queue based on the priority and schedules
the process with the highest priority (P1 with priority number 0) first and the next
high priority process (P3 with priority number 2) as second and so on. The order in
which the processes are scheduled for execution is represented as
P1 P3 P2
0 10 17 22
10 7 5
Waiting Time for P2 = 17 ms (P2 starts executing after completing P1 and P3)
Average waiting time = (Waiting time for all processes) / No. of Processes
= (0+10+17)/3 = 27/3
= 9 milliseconds
Turn Around Time (TAT) for P1 = 10 ms (Time spent in Ready Queue + Execution Time)
Average Turn Around Time= (Turn Around Time for all processes) / No. of Processes
= (10+17+22)/3 = 49/3
= 16.33 milliseconds
Drawbacks:
The technique of gradually raising the priority of processes which are waiting
in the ‘Ready’ queue as time progresses, for preventing ‘Starvation’,is known
as ‘Aging’.
Preemptive scheduling:
Employed in systems, which implements preemptive multitasking model
Every task in the ‘Ready’ queue gets a chance to execute. When and how often
each process gets a chance to execute (gets the CPU time) is dependent on the
type of preemptive scheduling algorithm used for scheduling the processes
When to pre-empt a task and which task is to be picked up from the ‘Ready’
queue for execution after preempting the current task is purely dependent on
the scheduling algorithm
The non preemptive SJF scheduling algorithm sorts the ‘Ready’ queue only
after the current process completes execution or enters wait state, whereas
the preemptive SJF scheduling algorithm sorts the ‘Ready’ queue when a new
process enters the ‘Ready’ queue and checks whether the executiontime
of the new process is shorter than the remaining of the total estimated
execution time of the currently executing process
If the execution time of the new process is less, the currently executing
process is preempted and the new process is scheduled for execution
Always compares the execution completion time (ie the remaining execution
time for the new process) of a new process entered the ‘Ready’ queue with
the remaining time for completion of the currently executing process and
schedules the process with shortest remaining time for execution.
EXAMPLE: Three processes with process IDs P1, P2, P3 with estimated
completion time 10, 5, 7 milliseconds respectively enters the ready queue together.
A new process P4 with estimated completion time 2ms enters the ‘Ready’ queue
after 2ms. Assume all the processes contain only CPU operation and no I/O
operations are involved.
Solution: At the beginning, there are only three processes (P1, P2 and P3) available
in the ‘Ready’ queue and the SRT scheduler picks up the process with the Shortest
remaining time for execution completion (In this example P2 with remaining time
5ms) for scheduling. Now process P4 with estimated execution completion time 2ms
enters the ‘Ready’ queue after 2ms of start of execution of P2. The processes are re-
scheduled for execution in the following order
P2 P4 P2 P3 P1
0 2 4 7 14 24
2 2 3 7 10
Waiting Time for P2 = 0 ms + (4 -2) ms = 2ms (P2 starts executing first and is
interrupted by P4 and has to wait till the completion of
P4 to get the next CPU slot)
Waiting Time for P4 = 0 ms (P4 starts executing by preempting P2 since the
execution time for completion of P4 (2ms) is less
than that of the Remaining time for execution
completion of P2 (Here it is 3ms))
Waiting Time for P3 = 7 ms (P3 starts executing after completing P4 and P2)
Waiting Time for P1 = 14 ms (P1 starts executing after completing P4, P2 and P3)
Average waiting time = (Waiting time for all the processes) / No. of Processes
= (Waiting time for (P4+P2+P3+P1)) / 4
= (0 + 2 + 7 + 14)/4 = 23/4
= 5.75 milliseconds
Turn Around Time (TAT) for P2 = 7 ms (Time spent in Ready Queue + Execution Time)
Turn Around Time (TAT) for P4 = 2 ms
(Time spent in Ready Queue + Execution Time = (Execution Start Time – Arrival
Time) + Estimated Execution Time = (2-2) + 2)
Scheduling:
When the pre-defined time elapses or the process completes (before the pre-
defined time slice), the next process in the ‘Ready’ queue is selected for
execution.
Once each process in the ‘Ready’ queue is executed for the pre-defined time
period, the scheduler comes back and picks the first process in the ‘Ready’
queue again for execution.
Round Robin scheduling is similar to the FCFS scheduling and the only
difference is that a time slice based preemption is added to switch the
execution between the processes in the ‘Ready’ queue
EXAMPLE: Three processes with process IDs P1, P2, P3 with estimated
completion time 6, 4, 2 milliseconds respectively, enters the ready queue together in
the order P1, P2, P3. Calculate the waiting time and Turn Around Time (TAT) for
each process and the Average waiting time and Turn Around Time (Assuming there
is no I/O waiting for the processes) in RR algorithm with Time slice= 2ms.
Solution: The scheduler sorts the ‘Ready’ queue based on the FCFS policy and picks
up the first process P1 from the ‘Ready’ queue and executes it for the time slice 2ms.
When the time slice is expired, P1 is preempted and P2 is scheduled for execution.
The Time slice expires after 2ms of execution of P2. Now P2 is preempted and P3
is picked up for execution. P3 completes its execution within thetime slice and the
scheduler picks P1 again for execution for the next time slice. This procedure is
repeated till all the processes are serviced. The order in which the processes are
scheduled for execution is represented as
P1 P2 P3 P1 P2 P1
0 2 4 6 8 10 12
2 2 2 2 2 2
Waiting Time for P1 = 0 + (6-2) + (10-8) = 0+4+2= 6ms (P1 starts executing first
and waits for two time slices to get execution back and
again 1 time slice for getting CPU time)
Waiting Time for P2 = (2-0) + (8-4) = 2+4 = 6ms (P2 starts executing after P1
executes for 1 time slice and waits for two time
slices to get the CPU time)
Waiting Time for P3 = (4 -0) = 4ms (P3 starts executing after completing the first
time slices for P1 and P2 and completes its execution in a single time slice.)
Average waiting time = (Waiting time for all the processes) / No. of Processes
= (6+6+4)/3 = 16/3
= 5.33 milliseconds
Turn Around Time (TAT) for P1 = 12 ms (Time spent in Ready Queue + Execution Time)
Average Turn Around Time = (Turn Around Time for all the processes) / No. of Processes
= (12+10+6)/3 = 28/3
= 9.33 milliseconds.
EXAMPLE: Three processes with process IDs P1, P2, P3 with estimated
completion time 10, 5, 7 milliseconds and priorities 1, 3, 2 (0- highest priority, 3
lowest priority) respectively enters the ready queue together. A new process P4 with
estimated completion time 6ms and priority 0 enters the ‘Ready’ queue after 5ms of
start of execution of P1. Assume all the processes contain only CPU operation and
no I/O operations are involved.
Solution: At the beginning, there are only three processes (P1, P2 and P3) available
in the ‘Ready’ queue and the scheduler picks up the process with the highest priority
(In this example P1 with priority 1) for scheduling. Now process P4 with estimated
execution completion time 6ms and priority 0 enters the ‘Ready’ queue after 5ms of
start of execution of P1. The processes are re-scheduled for execution in the
following order
P1 P4 P1 P3 P2
0 5 11 16 23 28
5 6 5 7 5
Waiting Time for P1 = 0 + (11-5) = 0+6 =6 ms (P1 starts executing first and gets
Preempted by P4 after 5ms and again gets the CPU time
after completion of P4)
Waiting Time for P3 = 16 ms (P3 starts executing after completing P1 and P4)
Waiting Time for P2 = 23 ms (P2 starts executing after completing P1, P4 and P3)
Average waiting time = (Waiting time for all the processes) / No. of Processes
= (6 + 0 + 16 + 23)/4 = 45/4
= 11.25 milliseconds
Turn Around Time (TAT) for P1 = 16 ms (Time spent in Ready Queue + Execution Time)
Turn Around Time (TAT) for P4 = 6ms (Time spent in Ready Queue + Execution Time
= (Execution Start Time – Arrival Time) + Estimated Execution Time = (5-5) + 6 = 0 + 6)
Turn Around Time (TAT) for P3 = 23 ms ( Time spent in Ready Queue + Execution Time)
Turn Around Time (TAT) for P2 = 28 ms ( Time spent in Ready Queue + Execution Time)
Average Turn Around Time= (Turn Around Time for all the processes) / No. of Processes
= (16+6+23+28)/4 = 73/4
= 18.25 milliseconds
1. Functional
2. Non-functional requirements.
1. Functional Requirements:
1. Processor support:
It is not necessary that all RTOS’s support all kinds of processor
architectures.
2. Memory Requirements:
• The RTOS requires ROM memory for holding the OS files and it is
normally stored in a non-volatile memory like FLASH.
3. Real-Time Capabilities:
It is not mandatory that the OS for all embedded systems need to be Real-
Time and all embedded OS’s are ‘Real-Time’ in behavior.
The kernel of the OS may disable interrupts while executing certain services
and it may lead to interrupt latency.
For an embedded system whose response requirements are high, this latency
should be minimal.
6. Modularization Support:
The OS kernel may provide stack implementation and driver support for a
bunch of communication interfaces and networking.
Ensure that the OS under consideration provides support for all the
interfaces required by the embedded product.
Certain OS’s include the run time libraries required for running applications
written in languages like JAVA and C++.
2. Non-Functional Requirements:
2. Cost:
The total cost for developing or buying the OS and maintaining it in terms of
commercial product and custom build needs to be evaluated before taking a
decision on the selection of OS.
Certain OS’s may be superior in performance, but the availability of tools for
supporting the development may be limited.
4. Ease of Use:
5. After Sales:
For a commercial embedded RTOS, after sales in the form of e-mail, on-call
services etc. for bug fixes, critical patch updates and support for production
issues etc. should be analyzed thoroughly.
Device Drivers:
• Device driver is a piece of software that acts as a bridge between the
operating system and the hardware
• The user applications talk to the OS kernel for all necessary information
exchange including communication with the hardware peripherals
Device Drivers
Hardware
• The architecture of the OS kernel will not allow direct device access from
the user application
• All the device related access should flow through the OS kernel and the OS
kernel routes it to the concerned hardware peripheral
• Drivers which needs to be installed on the fly for communicating with add-
on devices are known as ‘Installable drivers’
• For installable drivers, the driver is loaded on a need basis when the device
is present and it is unloaded when the device is removed/detached
• Device drivers which run in user space are known as user mode drivers and
the drivers which run in kernel space are known as kernel modedrivers
• If an exception occurs in the kernel mode driver, it may lead to the kernel
crash
• The way how a device driver is written and how the interrupts are handled in
it are Operating system and target hardware specific.
• The whole interrupt processing can be done by the ISR itself or by invoking
an Interrupt Service Thread (IST)
• It is always advised to use an IST for interrupt processing, to make the ISR
compact and short
Reference Books: