ES Unit 1 (A) 2023-1
ES Unit 1 (A) 2023-1
ES Unit 1 (A) 2023-1
Embedded Networking: Introduction, I/O Device Ports & Buses– Serial Bus
communication protocols RS232 standard – RS422 – RS 485 - CAN Bus -Serial
Peripheral Interface (SPI) – Inter Integrated Circuits (I2C) –need for device
drivers.
What is Embedded System?
Embedded System
any device that includes a computer but is not itself a
general purpose computer
h/w and s/w - part of some larger systems and
expected to function without human intervention
respond, monitor, control external environment using
sensors and actuators
embedding a computer - but not for general purpose
Applied Computer System
Includes analog interface to the external world
Characteristics of Embedded System
RT operation
finish operations by deadlines
many systems are multi rate - inputs from external world comes at different rates
Constraints in Embedded Systems
Tightly constrained than traditional software systems
• Cost
• Cannot have high end or fast processor
• Cannot have more memory – processor footprint should be less
• Size
• Processor footprint should be less
• Ex: gun stabilization control for Arjuna Tank in Defence
• Cooling requirements + Processor should take less space
• Performance
• Ex: Digital camera snaps, Mobile phone address book contact list etc.,
• Power
• Battery power products – Mobile phones
• Optimized power saving algorithms and operating modes – reduce power dissipation
• SW Program size + # of instructions – affect processor’s energy consumption
• Available System Memory and Processor Speed
• Limited power dissipation when running system continuously
• Reactive and Real Time – Adaptive cruise control and radar missile detection systems
Types of Embedded System
similar to general computing
PDA, video games, STP box, ATM
Since the functionalities is subset of PC functionalities
i/0 based
no sensing of ext environment and no control of actuators
more like general purpose
respond to users input
Control systems
sensing and actuating - is a specific job
feed back control of RT systems
vehicle engines - fuel injection control
flight control
nuclear reactors
Types of Embedded System
signal processing
core job is processing of signals
radar
sonar
DVD players
Processors in a System
Program Flow Control Unit (CU)
Execution Unit (EU)
Buses• Internal and external buses interconnect the processor internal units
with the external system memories, I/O devices and all other system
elements
• Address, data and control buses
• Address bus carries the address from the MAR to memory as well as
to the IO devices and the other units
• Data bus carries the bytes of an instruction or data from or to an
address. Address is determined by the MAR.
• Control bus carries the control signals to or between the processor
and memory
• Bus Interface Unit interface the processor’s internal units with
external buses
MDR, MAR
• MDR - holds the byte or word to be fetched from external memories or IO
address.
• MAR - holds the address of the byte or word to be fetched from ext.
memories.
• Processor issues the address of instruction or data to MAR before it initiates a
fetch cycle
PROGRAM COUNTER
ALU, FLPU
ALU and FLPU (Arithmetic and Logic operations Unit and
Floating Points operations Unit). FLPU associates a FLP register
set for operations.
Caches
• Instruction, Data and Branch Target Caches and associated PFCU (Prefetch
control unit) for pre-fetching the instructions, data and next branch target
instructions, respectively.
• Multi-way Cache – Example- 16 kB, 32-way Instruction cache with 32 byte block
for data and 16 kB in ARM
• Cache block – Enables simultaneous caching of several memory locations of a
set of instructions
AOU (Atomic Operations Unit )
An instruction is broken into number of processor-instructions called
atomic operations (AOs), AOU finishes the AOs before an interrupt of
the process occurs - Prevents problems arising out of incomplete
processor operations on the shared data in the programs
Features in advanced architectures
• Instruction, Branch Target and Data Cache
• Memory-Management unit (MMU)
• Floating Point Processing unit
• System Register Set
Increasing
address
values
Reference
to data
Data
Current top
of stack
Stack
overlaying allows
various modules to
be assigned the
same region of
memory but is time
consuming to
program
DMA
• During any given bus cycle, one of the system
components connected to the system bus is given
control of the bus.
• This component is said to be the master during that
cycle and the component it is communicating with is
said to be the slave.
• The CPU with its bus control logic is normally the master,
but other specially designed components can gain
control of the bus by sending a bus request to the CPU.
• After the current bus cycle is completed the CPU will
return a bus grant signal and the component sending
the request will become the master.
DMA
• Taking control of the bus for a bus cycle is called cycle stealing.
• Just like the bus control logic, a master must be capable of placing
addresses on the address bus and directing the bus activity during a
bus cycle.
• The components capable of becoming masters are processors (and
their bus control logic) and DMA controllers.
• Sometimes a DMA controller is associated with a single interface, but
they are often designed to accommodate more than one interface.
DMA
• The 8086 microprocessor receives bus requests through its HOLD
pin and issues grants from the hold acknowledge (HLDA) pin.
• A request is made when a potential master sends a 1 to the
HOLD pin.
• Normally, after the current bus cycle is complete the 8086 will
respond by putting a 1 on the HLDA pin.
• When the requesting device receives this grant signal it becomes
the master.
• It will remain master until it drops the signal to the HOLD pin, at
which time the 8086 will drop the grant on the HLDA pin.
• ne exception to the normal sequence is that if a word, which
begins at an odd address is being accessed, then two bus cycles
are required to complete the transfer and a grant will not be
issued until after the second bus cycle.
DMA
• When a DMA controller becomes master it places an
address on the address bus and sends the interface the
necessary signals to cause it to put data on, or receive
data from, the data bus.
• Since the DMA controller determines when the bus
request is dropped, it can return control to the CPU
after each data byte is transferred and then request
control again when the next data byte is ready, or it
can retain control until the entire block is moved.
• The former is the usual case because this allows the
CPU to continue its work until the next data byte is
available.
DMA
DMA
1. The interface sends the DMA controller a request for DMA service.
2. A Bus request is made to the HOLD pin (active High) on the 8086 microprocessor and
the controller gains control of the bus.
3. A Bus grant is returned to the DMA controller from the Hold Acknowledge (HLDA) pin
(active High) on the 8086 microprocessor.
4. The DMA controller places contents of the address register onto the address bus.
5. The controller sends the interface a DMA acknowledgment, which tells the interface to
put data on the data bus. (For an output it signals the interface to latch the next data
placed on the bus.)
6. The data byte is transferred to the memory location indicated by the address bus.
7. The interface latches the data.
8. The Bus request is dropped, the HOLD pin goes Low, and the controller relinquishes the
bus.
9. The Bus grant from the 8086 microprocessor is dropped and the HLDA pin goes Low.
10. The address register is incremented by 1.
11. The byte count is decremented by 1.
12. If the byte count is non-zero, return to step 1, otherwise stop.
Direct Memory Access Controller (DMAC) options for data
transfer
1) Cycle Steal:
A read or write signal is generated by the DMAC, and the I/O device either generates
or latches the data. The DMAC effectively steals cycles from the processor in order to
transfer the byte, so single byte transfer is also known as cycle stealing.
2) Burst Transfer:
To achieve block transfers, some DMAC's incorporate an automatic sequencing of the
value presented on the address bus. A register is used as a byte count, being
decremented for each byte transfer, and upon the byte count reaching zero, the DMAC
will release the bus. When the DMAC operates in burst mode, the CPU is halted for the
duration of the data transfer.
3) Hidden DMA:
It is possible to perform hidden DMA, which is transparent to the normal operation of
the CPU. In other words, the bus is grabbed by the DMAC when the processor is not
using it. The DMAC monitors the execution of the processor, and when it recognises
the processor executing an instruction which has sufficient empty clock cycles to
perform a byte transfer, it waits till the processor is decoding the op code, then grabs
the bus during this time. The processor is not slowed down, but continues processing
normally. Naturally, the data transfer by the DMAC must be completed before the
processor starts
Timer
Works even if system ROM is broken
Generally the best solution
Disadvantage
• The ICE hardware must be physically connected to the MCU. As chips get
smaller, adapters can help in connecting tiny surface mounted chips to the
ICE.
• ICE devices come with a learning curve, especially if there will be complex
debugging functions, for example, flagging when a register holds a specific
value after a conditional branch is taken, etc.
• As high-performance chips have come down in price, the accessibility for
debugging with ICE has faded to the point where ICE hardware has become
rare for anyone who is not still using an 8051-era MCU.
• ICE require fast connectivity and loads of memory, so lower level MCUs (8-,
-16-bit and MHz, not GHz) are more likely to have an ICE option available.
• highly integrated chips may create fewer bugs versus off-chip, board-
mounted EEPROMS and interfaces, for example.
Target Hardware Debugging
Software debugging:
HW debugging tools
• Lens
• Multimeter
• Digital CRO
• Logic Analyzer
• Function generator