Microprocessor Interfacing
Download
Report
Transcript Microprocessor Interfacing
Chapter 2
Number conversion (BCD)
8086 microprocessor
Internal registers
Making of Memory address
Instruction Execution (MOV A, X)
RAM
MOV A, X
Control Bus
Code
Address Bus
Data Bus
3
Decode Instruction
Decoding MOV A, X
Data
8088
Execute
Instruction
Fetch Instruction
Issue
IssueAddress
AddressofofX
MOV A, X
8088 Processor
Address Lines
Data Lines
Control Lines
Power/GND Lines
Clock (33% Duty cycle)
Reset
Pin held high for min.
of 4 clk cycles
Executes instruction at
FFFF0 H
Disables interrupts
Address & Data Bus
Address Bus Size
Size of Memory accessible by Processor
20 bit = 1 MByte
8088 A0 - A19 Address Lines
Data Bus Size
Chunk of Data accessible
8088 D0 – D7 Data Lines
8086 D0 – D15 Data Lines
8088 Address and Data Bus Multiplexed
Multipurpose/General Purpose
Registers
AX Accumulator 16-bit register
AH and AL 8-bit Registers AX
Used for Arithmetic & logical operations
Used specifically for multiplication, division
and adjustment instructions
Holds offset address of a location in memory
BX Base Index 16-bit register
BH and BL 8-bit Registers
Used for Arithmetic and Data operations
Holds offset address of a location in memory
Multipurpose/General Purpose
Registers
CX Count 16-bit register
CH and CL 8-bit Registers
Used for Arithmetic and data operations
Holds count value for various instructions
Counts the number of characters in string
operations
Multipurpose/General Purpose
Registers
DX Data 16-bit register
DH and DL 8-bit Registers
Used for Arithmetic and Data Operations
Holds the high 16-bits of the product in
multiplication operations
Holds remainder for 16-bit division
Holds I/O addresses
Base Registers
Base Pointer BP 16-bit Register
Points to a memory location
Holds an offset or displacement from Stack
Segment (SS) Register
Used by subroutines to locate variables
passed on stack by calling program
BX Base Index 16-bit register
BH and BL 8-bit Registers
Used for Arithmetic and Data operations
Holds offset address of a location in memory
Index Registers
Destination Index DI 16-bit Register
Addresses string destination for string
instructions
Holds an offset or displacement from ES
register
Source Index SI 16-bit Register
Addresses string source for string instructions
Holds an offset or displacement from DS
register
Stack Pointer Registers
Stack Pointer SP 16-bit Register
Addresses Stack memory
Holds an offset or displacement from SS
Register
Contents are combined with contents of SS
Register to give address of top of stack
Special Registers
Instruction Pointer IP 16-bit Register
Points to the next instruction in the Code Segment
Contents are combined with contents of Code
Segment (CS) Register to give address of next
instruction to be fetched
Flag 16-bit Register
Contents of this register are neither data nor address
Individual bits in this register indicate different status
information
Individual bits are set (1) or cleared (0) as a result of
an operation by the microprocessor
Special Registers
Bit 0: Carry Flag
Set to indicate occurrence of Carry
Bit 2: Parity Flag
Set to indicate even Parity
Bit 4: Auxiliary Flag
Set to indicate occurrence of Aux. carry
Bit 6: Zero Flag
Set to indicate Zero result
Special Registers
Bit 7: Sign Flag
Set to indicate a negative number
Bit 8: Trap Flag
Set to enable Debug mode
Bit 9: Interrupt Flag
Set to indicate interrupt enabled
Bit 10: Direction Flag
Set to 1 automatically decrements DI & SI
Set to 0 automatically increments DI & SI
Special Registers
Bit 11: Overflow Flag
Set to indicate an overflow
DC Characteristics
Input Characteristics
Input current and voltage requirements
Logic 0
0.8 Vmax
±10 Amax
Logic 1
2 Vmin
±10 Amax
Inputs gate connections of MOSFETs
Leakage currents
Lecture 02
16
DC Characteristics
Output Characteristics
Output current and voltage requirements
Logic 0
0.45 Vmax 2.0 mAmax
Logic 1
2.4 Vmin
-400 Amax
Reduced noise immunity 350 mV
Avoid long connections
Avoid too many loads
Max. 10 loads without Buffering
Lecture 02
17
How to make address.
CHAPTER 8
Bus Buffering & Latching
Bus should be buffered for large systems
Multiplexed Address & Data Buses should be
De-multiplexed
Why De-multiplexed Buses?
Address on the Address Bus has to remain
constant throughout a read and write cycle
Read and Write Cycle?
8088/8086 read/write operation is completed
in a minimum period of 4 clocks
Lecture 02
20
Bus De-Multiplexing
During T1 clock of Read/write cycle
8088 issues address AD0 to AD7 & A8 to A19
8088 activates ALE signal (Address Latch
Enable)
Lecture 02
21
373 Latch
Lecture 02
22
Bus Buffering
Address Lines A0 – A19 have to be buffered
A0 – A7 & A16 – A19 have been buffered by 373
Logic 0 sinks 32 mA
Logic 1 sources 5.2 mA
A8 – A15 have to be buffered
74LS244 Octal Buffer used for Buffering
Lecture 03
23
De-multiplexed Bus
GND
OE*
A16 – A19
373
LE
A8 – A15
A0 – A7
8088
LE
ALE
373 Latch
AD0 – AD7
OE*
GND
D0 – D7
Clock Circuitry
Clock Generator 8284
Clock Signals
Reset Synchronization
READY Synchronization
TTL-level peripheral clock
Lecture 03
25
Clock Generator 8284
Lecture 04
26
Processor RESET
RESET pin needs to remain high for min. of 4
clocks and must not go low for at least 50 s
+5V
10K
RESET
8284
RES*
10F
Lecture 04
27
Bus Timing
Memory & I/O is slow
Rate of data transfer depends on access time
of Memory & I/O
Processor Read/Write cycles have to be
extended to allow transfer from slow devices
Basic Bus Operation
Address, Data and Control Buses are
involved in reading and writing of data
Address, Data and Control Bus operations are
carried out in a sequence
Lecture 04
28
Bus Timing
8086/8088 use the Memory/IO in periods
called Bus Cycles
Each Bus Cycle equals 4 system clocking
periods (T states)
Pentium has 2 T state Bus cycle
At 5 MHz, one Bus cycle is completed at 0.8
sec or 800 nsec
Processor can read/write at a max. rate of
1.25 million times a sec.
Lecture 04
29
Bus Timing
With internal queue processor can execute
2.5 million instructions per sec. [MIPS] in
bursts
Pentium operates at much higher rates due to
higher clock rates, shorter Bus cycle and
internal queuing
Lecture 04
30
Bus Timing T1 Clock
Address of the Memory/IO is issued via the
Address/Data Multiplexed Bus
Following Signals are also issued
ALE Address Latch Enable signal
DT/R* Data Transmit/Receive signal
IO/M* IO/Memory signal
Lecture 04
31
Bus Timing T2 & T3 Clocks
RD* or WR* Read or Write Signal is issued
Incase of Write the Data to be written also
appears on the Data Bus
DEN* Data Bus Enable signal is issued
READY signal is sampled at the end of T2
If READY is low T3 becomes a Wait State TW
READY is again sampled in the middle of Wait
State
If the Bus Cycle is Read Cycle, Data Bus is
sampled at the end of T3
Lecture 04
32
Bus Timings T4 Clock
All Bus signals are deactivated in preparation
for the next Bus Cycle
During a Read Cycle the processor continues
to sample the Data Bus during T4 cycle
During a Write Cycle the trailing edge of the
Write signal transfers the data to Memory or
IO
Lecture 04
33
Minimum Vs. Maximum Mode
8088/8086 has two Modes of operation
Minimum Mode
Maximum Mode
Minimum Mode
Operation similar to 8085 (8 bit processor)
MN/MX* pin connected to +5 V
8-bit peripherals can be used with 8088/8086
Minimum Vs. Maximum Mode
Maximum Mode
Enhanced Operation used whenever a
coprocessor is used with 8088/8086
MN/MX* pin connected to GND
8288 Bus Controller required to generate extra
signals
Summary
Memory Interface
Memory Pin
Connections
Address Pins
Data Pins
Control Pins
Selection Pins
Data Lines
Address Lines
WE
Write*
Select*
CS
OE
Read*
Memory Interface
Address Pins
Number of locations
in memory
determine the
number of Address
Pins
4 K = 12 lines
1 M = 20 lines
Data Lines
Address Lines
WE
Write*
Select*
CS
OE
Read*
Memory Interface
Data Pins
Width of memory
determines the
number of Data Pins
8 bit width = 8 lines
1 bit width = 1 line
Data Lines
Address Lines
WE
Write*
Select*
CS
OE
Read*
Memory Interface
ROM Control Pins
OE* or G* allows
data to flow out
RAM Control Pins
WE* allows data to
be written
OE*allows data to
be read
Can have a single
R/W* pin
Data Lines
Address Lines
WE
Write*
Select*
CS
OE
Read*
Memory Interface
Selection Pins
CE* or CS* allows
the RAM/ROM chip
to be selected
Sometimes there
are more than one
CS* signal
Data Lines
Address Lines
WE
Write*
Select*
CS
OE
Read*
ROM
Read Only ROM
Permanently stores program/data
Does not allow write (read Only)
2764 (8 KB) EPROM
Address Decoding
Processors have very large address space
Pentium 4 has a 64 GB memory space
Entire memory space is not used
Processor memory space is used for specific
purpose
Operating System
Program Code
Data
Interrupt Vector Table
Address Decoding
RAM, ROM and I/O devices are mapped in
the processor memory space
More memory can be added in the vacant
memory space
Memory Mapping
Least significant lines of the processor
address bus always connected to the address
lines of the Memory chip (A0 – A18)
Most significant line(s) of the processor
address bus always used for mapping
memory chip in the address space and
connected to the chip select (A19)
First 512 KB Ram chip selected when A19 = 0
Second 512 KB Ram chip selected when A19
=1
Memory Mapping
A19
CS*
A0 – A18
512 KB
D0 – D7
RD*
WR*
A19*
CS*
A0 – A18
512 KB
D0 – D7
Memory Mapping
256 KB RAM chip (A0 – A17)
Four 256 KB RAM chips should be connected
to completely map the 1 MB processor
memory space
Address Lines A18 & A19 used for chip
selection
Gate Decoder
1st 256 KB RAM chip selected when A19 = 0 & A18 = 0
A two input OR gate
2nd 256 KB RAM chip selected when A19 = 0 & A18 = 1
A two input OR gate with A18 input inverted
3rd 256 KB RAM chip selected when A19 = 1 & A18 = 0
A two input OR gate with A19 input inverted
4th 256 KB RAM chip selected when A19 = 1 & A18 = 1
A two input NAND gate
Designing Address Decoders
Flexible Design
can be easily modified
Allow for future expansion
Should introduce minimum gate delay
Low chip count
Lecture 08
50
Address Decoding
Full Address Decoding
Entire address space is fully decoded
More decoding circuitry is required
Partial Address Decoding
Address space is not fully decoded
Less decoding circuitry is required
Address clashes occur
Block Address Decoding
Memory space divided into blocks of equal
sizes
Lecture 08
51
Address Decoding example
00000 H
OS 8K ROM1
Vector Table 4K RAM1
02000 H
10000 H
Program Memory 64K
RAM2
20000 H
Data Memory 32K RAM3
Ports 256 B
A0000 H
Buffer 2K RAM4
B0000 H
Stack 64K RAM5
F0000 H
Lecture 08
52
Address Decoding example
A15
A14
A13
ROM1 CS*
A19
A16
A15
A14
RAM1 CS*
A12
A13
Lecture 08
53
Address Decoding example
A19
A18
RAM2 CS*
A17
A16
A19
A18
A17
A16
RAM3 CS*
A15
Lecture 08
54
Address Decoding example
A15
A12
A11
A19
A18
A08
PORTS CS*
A17
A16
A19
A18
RAM4 CS*
A11
A17
A16
A19
RAM5 CS*
A16
Lecture 08
55
Types of Address Decoders
Logic Gate Decoders
Simple
Irregular structure
No future expansion allowed
M x N Decoders
Regular structure
Future expansion allowed
Divides address space into equal sized blocks
Lecture 08
56
Types of Address Decoders
ROM based Decoders
Very flexible
New decoding scheme implemented by
reprogramming the ROM
PLDs based Decoders
Very flexible have replaced PROM based
Decoders
Lecture 08
57
Block-Address Decoding example
ROM1 CS*
RAM1 CS*
A13
A19
A18
A17
A16
0
1
2
4 X 16
Decoder
10
11
15
RAM2 CS*
RAM3 CS*
A15
PORTS CS*
RAM4 CS*
RAM5 CS*
Lecture 09
58
Address Decoding Example
Map the memory chips in contiguous memory
locations starting from address 0000 H with
minimal empty slots
2K ROM1, 4K RAM1, 1K RAM2, 2K RAM3
How should it be done?
Start by sketching an Address Decoding Table
Lecture 09
59
Address Decoding Example
A15 – A12 A11 – A8 A7 – A4 A3 – A0
ROM1 2K 0000
0XXX
XXXX
XXXX
RAM1 4K 0001
XXXX
XXXX
XXXX
RAM2 1K 0010
00XX
XXXX
XXXX
RAM3 2K 0010
1XXX
XXXX
XXXX
Lecture 09
60
Types of Address Decoders
Logic Gate Decoders
Simple
Irregular structure
No future expansion allowed
High chip count
High decoding speed
Lecture 10
61
Types of Address Decoders
M x N Decoders
Regular structure
Future expansion allowed
Divides address space into equal sized blocks
Low chip count
Lecture 10
62
Types of Address Decoders
ROM based Decoders
Very flexible
New decoding scheme implemented by
reprogramming the ROM
PLDs based Decoders
Very flexible have replaced PROM based
Decoders
Lecture 10
63
8088 Processor
Address Lines
Data Lines
Control Lines
Power/GND Lines
Clock (33% Duty cycle)
Reset
Pin held high for min.
of 4 clk cycles
Executes instruction at
FFFF0 H
Disables interrupts
8288 bus controller
8288 bus controller
8155 chip