Notes - ESD - Embedded Systems
Notes - ESD - Embedded Systems
Email ID : [email protected]
Webpage : https://sites.google.com/view/dr-surya-prakash
* Some figures and content referred from internet resources in this document
INTRODUCTION
Definition
Embedded System: Examples
• Any device that include a computer but is not itself a • Personal Digital Assistant (PDA)
general-purpose computer which contain Hardware • Printer
and Software – part of some larger system and • Cell Phone
expected to function without human intervention and • Automobile: Engine, Brakes, Dash, etc.
expected to respond, monitor, control external • Television
environment using sensor and actuators. • Household Appliances
• Surveillance Systems
Input
CPU Output
Memory
Embedded Computer
Other Examples
Characteristics
• Sophisticated Functionality Examples:
• Real Time Operation - Must finish operations by deadlines • Web enabled cash-less Vending Machine – up 8-bit Motorola 68HC11
• Hard real time: missing deadline causes failure (e.g. Nuclear • NASA;s Mars Sojourner Rover – up 8-bit intel 80C85
Reactor) • GPS Receiver – up 16-bit
• Soft real time: missing deadline results in degraded performance • MP3 Player – up 32-bit RISC
(e.g. Videogames Graphics) • DVD Player – up 32-bit RISC
• Many systems are multi-rate: must handle operations at widely • Sony Aibo ERS – 110 Robotic Dog – up 64-bit MIPS RISC
varying rates (Inputs at different rates)
• Low Manufacturing Cost
• Manufacturing cost has different components
• Non recurring engineering cost for design and development
• Cost of production and marketing each unit
• Best technology choice will depend on the number of units we
plan to produce
• Application Dependent Processor
• Restricted Memory
• Low Power (Battery Operated Mostly)
• Application Dependent Requirements (like Aircraft, Medical, etc.)
• Fault-Tolerance - Continue operation despite hardware or software
faults
• Safe - Systems to avoid physical or economic damage to person or
property
• Dedicated Systems - Real-time, fault-tolerant, and safe
• Predefined Functionality – Accordingly hardware and software
designed
• Programmability rarely used during lifetime of the system
Embedded Systems
Types of Embedded Systems Nature of System Functions
• Similar to General Computing • Control Laws (Sensing and Actuation)
• PDA, Video Game, Set-top boxes, Automatic • Sequential Logic (Task specific not general
Teller Machine purposes)
• Control Systems • Signal Processing
• Feed-back control of real time systems • Application Specific Interfacing (sensor and
• Vehicle engine, flight control, nuclear reactors actuators communication, IoT, etc.)
• Signal Processing • Fault Response (Low battery notification)
• RADAR, SONAR, DVD Players
• Communications and Networking
• Cellular Phones, Internet Appliances
Detailed Architecture
Software
FPGA/ASIC Memory
Electromechanical
Backup & Safety
External
Environment
Implementing Embedded System
• Hardware Hardware Evolution
• Processing Element • System on chip - ARM
• Peripherals • Application Specific Processors
• Input and output Devices • DSP – Digital Signal Processor
• Interfacing Sensors and Actuators • General Purpose Microprocessors & Micro Controllers
• Interfacing Protocols – Faster Clock Rate, Higher Degree of Integration
• Memory
• Bus Software
• Programs must be logically and temporally correct
• Software • Must deal with inherent physical concurrency
• System Software – OS, Compiler, Emulator • Reactive Systems
• Application – Driver Laser Printer • Reliability and Fault Tolerance and Critical issue
• Application specific and single purpose
Multi-Tasking and Concurrency
• Embedded systems need to deal with several inputs and outputs and multiple events occurring independently
• Separating tasks simplifies programming, but required somehow switching back and forth among different task (multi-
tasking)
• Concurrency is a property of systems in which several computations are executing simultaneously, and potentially
interacting with each other.
Multitasking Concurrency
Embedded Systems Goal, Challenges & Design
Goal: Challenges:
• Performance • How much hardware do we need?
• Overall speed, Deadlines • What is the word size of the CPU?
• Functionality and user interface • What is the size of the Memory?
• Manufacturing cost
• Power consumption • How do we meet our deadlines?
• Other requirements (Physical size, etc.) • Faster hardware and/or cleverer software
Design:
Multi-Objective Multi-Descipline Life Cycle
Dependability Electronic Hardware Requirement
Affordability Software Design
Safety Mechanical Hardware Manufacturing
Security Control Algorithm Deployment
Scalability Humans Logistics
Timeliness Society/Institution Retirement
Requirement & Development Process
Functional & Non-Functional Requirements: Top-Down Vs. Bottom-Up: Stepwise Refinement:
• Functional Requirements: • Top-Down Design: At each level of abstraction, we
• Output as a function of input • Start from the most must:
abstract description • Analyze the design to
• Non-functional requirements • Work to most detailed determine characteristics of
• Time required to compute output • Bottom-Up Design the current state of the
• Size, weight, etc. • Work from small design;
• Power consumption components to big system • Refine the design to add detail
• Reliability
• Etc. Note: Real design uses both
techniques
General
I/O Serial
Purpose RAM ROM Timer
Port Port
Micro-
Processor
Address Bus
Microprocessor
• A controller is used to control some process. At one
time, controllers were built exclusively from logic
components, and were usually large, heavy boxes.
Later on, microprocessors were used and the entire
controller could fit on a small circuit board. This is still
common–one can find many controllers powered by
one of the many common microprocessors (including
Zilog Z80, Intel 8088, Motorola 6809, and others).
• As the process of miniaturization continued, all of the
components needed for a controller were built right
onto one chip.
• A one chip computer, or microcontroller was born. A
CPU built into a single VLSI chip is called
microprocessor. The simplified block diagram of the
CPU is shown in the Figure. It contains arithmetic and
logic unit (ALU), Instruction decode and control unit,
Instruction register, Program counter (PC), clock circuit
(internal or external), reset circuit (internal or General Block Diagram of CPU (Microprocessor)
external) and registers. For example, Intel 8085 is 8-bit
microprocessor and Intel 8086/8088 is 16-bit
microprocessor.
• Microprocessor is general-purpose digital computer central processing unit (CPU). The microprocessor is general-purpose device and
additional external circuitry are added to make it a microcomputer.
Microcomputer
• A digital computer with a
microprocessor as the CPU
along with I/O devices,
and memory is known as a
microcomputer. The block
diagram in the Figure
shows a microcomputer.
• EMBEDDED MICROCONTROLLERS
• When an embedded system has a microcontroller unit that has all the functional blocks (including program as well
as data memory) available on a chip is called an embedded microcontroller. For example, 8051 has Program &
Data Memory, I/O Ports, Serial Communication, Counters and Timers and Interrupt Control logic on the chip is an
embedded microcontroller.
Harvard Architecture:
• Separate program bus and data bus: can be
different widths Program Data
• Instruction pipelining easy Memory
Bus CPU Bus
Memory
12/14/16-bit 8-bit
Microcontroller Types : Architecture : Von-Neuman
• There are mainly two categories of processors, namely, Von-Neuman (or Princeton) architecture and Harvard
Architecture. These two architecture differ in the way data and programs are stored and accessed.
VON-NEUMAN ARCHITECTURE
• Microcontrollers based on the Von-Neuman architecture have a
single data bus that is used to fetch both instructions and data.
Program instructions and data are stored in a common main
memory. When such a controller addresses main memory, it
first fetches an instruction, and then it fetches the data to
support the instruction. The two separate fetches slows up the
controller’s operation. Figure shows the Von-Neuman
Architecture. The Von-Neuman architecture’s main advantage is
that it simplifies the microcontroller design because only one
memory is accessed. In microcontrollers, the contents of RAM
can be used for data storage and program instruction storage.
For example, the Motorola 68HC11 microcontroller Von-
Neuman architecture.
Example : An Instruction “Read a byte from memory and store it in the accumulator” as follows:
Cycle 1 :- Read instruction
Cycle 2 - Read data out of RAM and put into Accumulator
Microcontroller Types : Architecture : Harvard
• There are mainly two categories of processors, namely, Von-Neuman (or Princeton) architecture and Harvard
Architecture. These two architecture differ in the way data and programs are stored and accessed.
HARVARD ARCHITECTURE
• Microcontrollers based on the Harvard Architecture have separate
data bus and an instruction bus. This allows execution to occur in
parallel. As an instruction is being “pre-fetched”, the current
instruction is executing on the data bus. Once the current
instruction is complete, the next instruction is ready to go. This pre-
fetch theoretically allows for much faster execution than Von-
Neuman architecture, on the expense of complexity. Figure shows
the Harvard Architecture. The Harvard Architecture executes
instructions in fewer instruction cycles than the Von-Neuman
architecture.
For example, the intel MCS-51 family of microcontrollers and PIC microcontrollers uses Harvard Architecture. The same
instruction (as shown under Von-Newman architecture) would be executed as follows:
Cycle 1: - Complete previous instruction
- Read the “Move Data to Accumulator” instruction
Cycle 2: - Execute “Move Data to Accumulator” instruction
- Read next instruction
Hence each instruction is effectively executed in one instruction cycle.
Microcontroller Types : Instruction Set
CISC – Complex Instruction Set Computer:
• A large number of instructions each carrying out a different permutation of the same operation
• Instructions provide for complex operations
• Different instructions for different format
• Different instructions of different length
• Different addressing modes
• Requires multiple cycles for execution
• E.g. – Pentium, 8085 etc.
• Registers are therefore memory locations whose role is to help with performing various mathematical operations or
any other operations with data wherever data can be found. Look at the current situation. We have two independent
entities (memory and CPU) which are interconnected, and thus any exchange of data is hindered, as well as its
functionality. If, for example, we wish to add the contents of two memory locations and return the result again back to
memory, we would need a connection between memory and CPU. Simply stated, we must have some "way" through
data goes from one block to another.
Microcontroller : Bus
• That "way" is called "bus". Physically, it represents a group of
8, 16, or more wires
• There are two types of buses: address and data bus. The first
one consists of as many lines as the amount of memory we
wish to address, and the other one is as wide as data, in our
case 8 bits or the connection line. First one serves to transmit
address from CPU memory, and the second to connect all
blocks inside the microcontroller.
Microcontroller : Input-Output Unit
• As far as functionality, the situation has
improved, but a new problem has also appeared:
we have a unit that's capable of working by itself,
but which does not have any contact with the
outside world, or with us! In order to remove this
deficiency, let's add a block which contains
several memory locations whose one end is
connected to the data bus, and the other has
connection with the output lines on the
microcontroller which can be seen as pins on the
electronic component.
• Those locations we've just added are called "ports". There are several types of ports : input, output or bidirectional
ports. When working with ports, first of all it is necessary to choose which port we need to work with, and then to
send data to, or take it from the port.
• When working with it the port acts like a memory location. Something is simply being written into or read from it, and
it could be noticed on the pins of the microcontroller.
Microcontroller : Serial Communication
• Beside stated previously we've added to the already existing unit the possibility of communication with an outside world. However, this way of
communicating has its drawbacks. One of the basic drawbacks is the number of lines which need to be used in order to transfer data. What if it is being
transferred to a distance of several kilometers? The number of lines times number of kilometers doesn't promise the economy of the project. It leaves us
having to reduce the number of lines in such a way that we don't lessen its functionality. Suppose we are working with three lines only, and that one line
is used for sending data, other for receiving, and the third one is used as a reference line for both the input and the output side. In order for this to work,
we need to set the rules of exchange of data. These rules are called protocol. Protocol is therefore defined in advance so there wouldn't be any
misunderstanding between the sides that are communicating with each other. Let's suppose we have the following protocol. The logical unit "1" is set up
on the transmitting line until transfer begins. Once the transfer starts, we lower the transmission line to logical "0" for a period of time (which we will
designate as T), so the receiving side will know that it is receiving data, and so it will activate its mechanism for reception. Let's go back now to the
transmission side and start putting logic zeros and ones onto the transmitter line in the order from a bit of the lowest value to a bit of the highest value.
Let each bit stay on line for a time period which is equal to T, and in the end, or after the 8th bit, let us bring the logical unit "1" back on the line which
will mark the end of the transmission of one data. The protocol we've just described is called in professional literature NRZ (Non-Return to Zero).
START
REGISTER1=MEMORY LOCATION_A
REGISTER2=MEMORY LOCATION_B
PORTA=REGISTER1 + REGISTER2
END
• The program adds the contents of two memory locations, and views their sum on port A. The first line of the program stands for moving the contents of
memory location "A" into one of the registers of central processing unit. As we need the other data as well, we will also move it into the other register of
the central processing unit. The next instruction instructs the central processing unit to add the contents of those two registers and send a result to port
A, so that sum of that addition would be visible to the outside world. For a more complex problem, program that works on its solution will be bigger.
• Programming can be done in several languages such as Assembler, C and Basic which are most commonly used languages. Assembler belongs to lower
level languages that are programmed slowly, but take up the least amount of space in memory and gives the best results where the speed of program
execution is concerned. As it is the most commonly used language in programming microcontrollers. Programs in C language are easier to be written,
easier to be understood, but are slower in executing from assembler programs. Basic is the easiest one to learn, and its instructions are nearest a man's
way of reasoning, but like C programming language it is also slower than assembler. In any case, before you make up your mind about one of these
languages you need to consider carefully the demands for execution speed, for the size of memory and for the amount of time available for its assembly.
• After the program is written, we would install the microcontroller into a device and run it. In order to do this we need to add a few more external
components necessary for its work. First we must give life to a microcontroller by connecting it to a power supply (power needed for operation of all
electronic instruments) and oscillator whose role is similar to the role that heart plays in a human body. Based on its clocks microcontroller executes
instructions of a program. As it receives supply microcontroller will perform a small check up on itself, look up the beginning of the program and start
executing it. How the device will work depends on many parameters, the most important of which is the skillfulness of the developer of hardware, and
on programmer's expertise in getting the maximum out of the device with his program.
THANK YOU
Q UESTIONS/ S UGGESTIONS