1
第 6章输入输出及中断技术
2
主要内容:
I/O端口及其编址方式
简单接口芯片及其应用
基本输入输出方法
中断的基本概念及工作过程
中断控制器 8259
3
§ 6.1 输入输出接口主要内容:
I/O接口与 I/O端口的概念
I/O端口的编址方式
端口地址译码
数据传送方式
4
一,I/O接口与端口
I/O接口:
将外设连接到总线上的一组逻辑电路的总称。
实现外设与主机之间的 信息交换。
I/O端口:
接口中的寄存器
5
I/O接口要解决的问题
速度匹配 (Buffer)
信号的驱动能力 (电平转换器、驱动器 )
信号形式和电平的匹配 (A/D,D/A)
信息格式 (字节流、块、数据包、帧 )
时序匹配 (定时关系 )
总线隔离 (三态门 )
6
接口的功能
数据的缓冲与暂存
信号电平与类型的转换
增加信号的驱动能力
对外设进行监测、控制与管理,中断处理
7
二,I/O端口的编址方式数据端口状态端口控制端口端 口
8
I/O端口
CPU
数据状态控制外设
9
I/O端口的编址方式统一编址独立编址
10
端口与内存的统一编址特点:
指令及控制信号统一
内存地址资源减少内存地址
960KB
I/O地址
64KB
00000H
F0000H
FFFFFH
11
端口的独立编址特点:
内存地址资源充分利用
能够应用于端口的指令较少内存地址
I/O
地址
00000H
FFFFFH
FFFFH
0000H
12
端口的独立编址
8
0
8
8
总线
A19-A0
A15-A0
MEMR,MEMW
IOR,IOW,AEN
存储器输入 /输出
13
8088/8086的 I/O端口编址
采用 I/O独立编址方式 (但地址线与存储器共用 )
地址线上的地址信号用 IO/M来区分
I/O操作只使用 20根地址线中的 16根,A15~ A0
可寻址的 I/O端口数为 64K(65536)个
I/O地址范围为 0~ FFFFH
IBM PC只使用了 1024个 I/O地址 (0~ 3FFH)
14
三,I/O地址的译码目的:
确定端口的地址参加译码的信号:
IOR,IOW,A15 ~ A0
OUT指令将使总线的 IOW信号有效
IN指令将使总线的 IOR信号有效
15
I/O地址的译码
当接口只有一个端口时,16位地址线 一般 应 全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则 16
位地址线的高位 参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。
16
I/O地址的译码
某外设接口有 4个端口,地址为 2F0H~
2F3H,则其基地址为 2F0H,由 A15~ A2
译码得到,而 A1,A0用来确定 4个端口中的某一个。连接

17
四,I/O数据的传送方式并行 一个数据单位同时传送串行 数据按位传送
18
§ 6.2 简单接口电路掌握:
接口电路的分类及特点;
两类简单接口芯片的应用
19
一、接口的基本构成数据线控制线状态线
DB
CB
AB
数据输入寄存器
(or 三态门 )
数据输出寄存器
(锁存器 )
状态寄存器
(or 三态门 )
命令寄存器译码电路控制逻辑
20
接口的基本构成
数据输入 /输出寄存器 —— 暂存输入 /输出的数据
命令寄存器 —— 存放控制命令,用来设定接口功能、工作参数和工作方式。
状态寄存器 —— 保存外设当前状态,以供 CPU读取。
21
接口的基本构成
CPU I/O
接口外设数 据端口地址控 制数 据状 态控 制
22
二、接口的类型及特点输入接口输出接口接 口
23
接口特点输入接口:
要求对数据具有控制能力(常用三态门实现)
输出接口:
要求对数据具有锁存能力(常用锁存器实现)
24
三、三态门接口
高电平、低电平,高阻态
25
三态门接口
三态门的工作波形:
A0~A15
IOR
译码输出
D0~D7 开关状态地址有效
26
74LS244
含 8个三态门的集成电路芯片
在外设具有数据保持能力时用来输入接口
74LS244应用例 教材 p252
P251图
27
三态门接口应用例
利用三态门作为输入接口( 接口地址 380H) 接到 地址范围为 70000H----71FFFH的 EEPROM
芯片的 READY/BUSY端,当三态门输出高电平时,可向 98C64A写入一个字节数据,输出低电平时则不能写入。画芯片与系统的连接图
28
三态门接口应用例
D0~D7
A0
A12

WE
OE
READY/BUSY

A0
A12
MEMW
MEMR
高位地址信号
D0~D7
D0
380H
CE译码
IOR
29
四、锁存器接口
通常由 D触发器构成;
特点:
具有对数据的锁存能力;
不具备对数据的控制能力
30
常用锁存器芯片
74LS273
不具备数据的控制能力
74LS373
具有对数据的控制能力
P254图
31
锁存器芯片 74LS374
D0~D7
Q0
Q7
..
.
OE
CP译码器
D0~D7
Q0
Q7
..
.
OE
CP
译码器做输出口,做输入口,
外设自外设
32
I/O接口综合应用例
根据开关状态在 7段数码管上显示数字或符号
设输出接口的地址为 F0H
设输入接口地址为 F1H
当开关的状态分别为 0000~ 1111时,在
7段数码管上对应显示 ’0’~ ’F’
33
符号 形状 7段码.gfedcba 符号 形状 7段码.gfedcba
’0’ 00111111 ’8’ 01111111
’1’ 00000110 ’9’ 01100111
’2’ 01011011 ’A’ 01110111
’3’ 01001111 ’B’ 01111100
’4’ 01100110 ’C’ 00111001
’5’ 01101101 ’D’ 01011110
’6’ 01111101 ’E’ 01111001
’7’ 00000111 ’F’ 01110001
34
O1 I1
O2 I2
O3 I3
O4 I4
E1
K0~ K3
+5V
G
G2A
G2B
C
B
A
≥1
74LS244
D0 Q0
| Q1
D7 Q2
Q3
Q4
CP Q5
Q6
Q7
a
b
c
d
e
f
g
DP
7406
反相器
74LS273 Rx8
≥1
74LS138
D0~ D7
IOW#
IOR#
Y0
Y1
F0H = 0000 0000 1111 0000
F1H = 0000 0000 1111 0001
&
≥ 1
A7~ A4
A15~ A8
A3
A2
A1
A0
D0
D1
D2
D3
译码器
35
I/O接口综合应用例 程序段
……
Seg7 DB 3FH,06H,
5BH,4FH,66H,6DH,
7DH,07H,7FH,67H,77H,
7CH,39H,5EH,79H,71H
……
LEA BX,Seg7
MOV AH,0
GO,MOV DX,0F1H
IN AL,DX
AND AL,0FH
MOV SI,AX
MOV AL,[ BX+SI]
MOV DX,0F0H
OUT DX,AL
JMP GO
36
§ 6.3 基本输入 /输出方法无条件传送查询式传送中断方式传送直接存储器存取 (DMA)
37
一、无条件传送
适用于总是处于准备好状态的外设
优点:软件及接口硬件简单
缺点:只适用于简单外设,适应范围较窄
38
无条件传送例
读取开关的状态;
当开关闭合时,输出编码使发光二极管亮
39
D
CP
Q
D0
D1
输出口地址 38F3H
输入口地址 38F0H
+5V
1
40
二、查询工作方式适用场合:
外设并不总是准备好
对传送速率和效率要求不高对外设及接口的要求:
外设应提供设备状态信息
接口应具备状态端口
41
查询工作方式
优点:软件比较简单
缺点,CPU效率低,数据传送的实时性差,速度较慢单一外设时的工作流程
42
超时?
READY?
与外设进行数据交换超时错读入并测试外设状态
Y
N
Y
N
传送完?
防止死循环复位计时器
N
Y
43
查询工作方式例
外设状态端口地址为 03FBH,第 5位 (bit5)为状态标志( =1忙,=0准备好)
外设数据端口地址为 03F8H,写入数据会使状态标志置 1 ;外设把数据读走后又把它置 0。
试画出其电路图,并将 DATA下 100B数输出
44
D5
D7-D0
A9
|
A3
≥1
&
A15
|
A10
≥1
IOW
D7-D0
3F8H
外设
D7
D6
D5
D4
D3
D2
D1
D0
BUSY
CP
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
状态端口
G
G2A
G2B
C
B
A
A2
A1
A0
74LS138
Y0
≥1
IOR
Y3
OE
74LS374
3FBH
程序段?
45
三、中断控制方式特点:
外设在需要时向 CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序
优点,CPU效率高,实时性好,速度快。
缺点:程序编制较为复杂。
46
以上三种 I/O方式的共性均需 CPU作为中介:
软件,外设与内存之间的数据传送是通过 CPU执行程序来完成的( PIO方式);
硬件,I/O接口和存储器的读写控制信号、地址信号都是由 CPU发出的。
缺点:程序的执行速度限定了传送的最大速度(约为几十 KB/秒)
47
四,DMA控制方式特点:
外设直接与存储器进行数据交换,CPU
不再担当数据传输的中介者;
总线由 DMA控制器( DMAC)进行控制
( CPU要放弃总线控制权),内存 /外设的地址和读写控制信号均由 DMAC提供。
48
DMA控制方式
DMAC 外设接口CPU
QRD
MEM
DACK
HOLD
HLDA

BUS
控制信号
49
DMA控制方式的工作过程
外设向 DMA控制器发出,DMA传送请求”信号 DRQ;
DMA控制器收到请求后,向 CPU发出“总线请求”信号 HOLD;
CPU在完成当前总线周期后会立即发出 HLDA
信号,对 HOLD信号进行响应;
DMA控制器收到 HLDA信号后,就开始控制总线,并向外设发出 DMA响应信号 DACK
50
DMA控制方式的工作过程
DMA控制器送出地址信号和相应的控制信号,
实现外设与内存或内存与内存之间的直接数据传送;
例:从外设向内存传送一个字节
DMAC向 I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和 AEN
信号。
51
DMA控制方式的工作过程
DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往 CPU的
HOLD信号。 CPU检测到 HOLD失效后,紧接着撤销 HLDA信号,并在下一时钟周期重新开始控制总线。
52
DMA的三种传送方式
连续传送(块传送):
DMAC在申请到总线后,将一块数据传送完后才释放总线,而不管中间 DREQ是否有效。
单次传送(每次传送一个字节):
每个 DMA周期只传送一个字节就立即释放总线。
按需传送(猝发传送):
只要 I/O接口的数据缓冲可用,就可进行传送。
此时 I/O接口需要有一定大小的 FIFO缓冲区。
53
数据块传送:
Y
N
允许 DMA
DMA请求?
DMAC请求总线
CPU响应,DMAC获总线控制权
DMA传送一个字节块结束?
地址增量,计数器减量
DMAC释放总线
Y
N
54
每次传送一个字节:
N
Y
N
允许 DMA
DMAC请求总线
CPU响应,DMAC获总线控制权
DMA传送一个数据块结束?
释放总线至少一个总线周期地址增量,计数器减量
DMAC释放总线
Y
测试 I/O的 DREQ
DMA请求?
55
按需传送:
N
Y
CPU响应,DMAC获总线控制权
DMA传送一个字节块结束?
测试 I/O的 DREQ
有效?
地址增量,计数器减量释放总线,请求中断无效,释放总线允许 DMA
DMA请求?
DMAC请求总线
Y
N
Y
N
56
DMA控制方式优点:
数据传输 由 DMA硬件来控制,数据 直接在内存和外设之间交换,可以达到很高的传输速率(可达几 MB/秒)
57
§ 6.4 中断技术掌握:
中断的基本概念
中断响应的一般过程
中断向量表及其初始化
8088/8086中断系统
58
一、中断的基本概念中断:
CPU执行程序时,由于发生了某种随机的事件
(外部或内部 ),引起 CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序 (称为中断服务程序或中断处理程序 ),以处理该事件,
该事件处理完后又返回被中断的程序继续执行,
这一过程称为中断。
59
中断源
引起 CPU中断的事件,发出中断请求的来源内部中断外部中断异常中断软件中断可屏蔽中断非屏蔽中断异常事件引起中断指令引起
INTR中断
NMI中断
60
引入中断的原因
提高数据传输率;
避免了 CPU不断检测外设状态的过程,
提高了 CPU的利用率。
实现对特殊事件的实时响应。
61
二、外部中断响应的一般过程
中断请求
中断判优及中断源识别
中断响应
中断处理(服务)
中断返回
62
中断请求
中断请求信号应保持到中断被处理为止;
CPU响应中断后,中断请求信号应及时撤销。
NMI
INTR
63
中断源识别
软件查询法
中断矢量法。由中断源提供中断类型号,
CPU根据类型确定中断源。
64
中断判优 要解决的问题
对同时产生的中断:
首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则
对非同时产生的中断:
低优先级的中断程序允许被高优先级的中断源所中断中断嵌套
65
中断判优 控制方法软件判优顺序查询中断请求,先查询的先服务
(即先查询的优先级别高)
硬件判优链式判优、并行判优(中断向量法)
66
菊花链逻辑电路
INTAin
IREQ
INTR
&
=1
≥1
INTAout
DB
三态门 中断向量码
E
外设接口中断确认菊花链逻辑电路
67
中断响应
向中断源发出 INTA中断响应信号;
保护断点。包括 FLAGS,CS和 IP
获得中断服务程序入口地址固定入口法中断向量法
68
中断处理中断服务子程序的特点:
为“远过程”
用 IRET指令返回
69
中断服务子程序完成的工作
保护现场
开中断( STI)
中断处理
关中断( CLI)
恢复现场
中断返回
70
中断返回
执行 IRET指令,使 IP,CS和 FLAGS从堆栈弹出
71
三,8088/8086中断系统内部中断外部中断除法错中断溢出中断单步中断软件中断非屏蔽中断可屏蔽中断
256
个中断源
72
NMI
INTR
中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器
8259A
PIC
8086/8088CPU内部逻辑断点中断 可屏蔽中断请求
n
4
3
0
1
2
8086/8088中断源类型:
73
中断向量表


00000H
003FFH
1KB
74
中断向量表
存放各类中断的中断服务程序的入口地址
每个入口占用 4 Bytes,低字为段内偏移,
高字为段基址
表的地址位于内存的 00000H~ 003FFH,
大小为 1KB,共 256个入口
75
中断向量表的初始化
将用户自定义的中断服务程序入口地址放入向量表
例:将中断向量码为 48H的服务程序入口地址放入向量表
p290
76
中断向量表的初始化
MOV AX,0000H
MOV DS,AX
MOV SI,0120H
MOV BX,OFFSET INT1
MOV [SI],BX
MOV BX,SEG INT1
MOV [SI+2],BX
77
8088内部中断响应过程特点:
无 INTA周期
中断类型码固定或由指令给出
78
8088内部中断响应过程响应过程步骤:
① PUSH FLAG
② LET TEMP = TF
③ CLEAR IF,TF
④ PUSH CS
⑤ PUSH IP
⑥ ( I P) =( TYPE*4+1),( TYPE*4+0)
⑦ ( CS) =( TYPE*4+3),( TYPE*4+2)
79
8088外部中断响应过程可屏蔽中断:
① 第 1个 INTA,PIC进行优先级排队判优处理
② 第 1个 INTA,PIC把中断类型码放到 DB上,由 CPU读入
③ PUSH FLAG
④ LET TEMP = TF
⑤ CLEAR IF,TF
⑥ PUSH CS
⑦ PUSH IP
⑧ ( I P) =( TYPE*4+1),( TYPE*4+0)
⑨ ( CS) =( TYPE*4+3),( TYPE*4+2)
NMI中断响应过程与内部中断类似时序

p273
80
8088/8086中断系统的优先级
优先级从高到低的顺序为:
–内部中断
–NMI中断
–INTR中断
–单步中断中断响应和处理流程 p274
81
中断处理过程
当 NMI,INTR、单步和除法错中断同时产生时,响应顺序为:
响应除法错中断响应 NMI中断响应 INTR中断响应单步中断级别高的中断可以中断级别低的中断服务程序
82
§ 6.5 中断控制器 8259
了解:
8259的主要引线及结构掌握:
8259的各种工作方式
8259的初始化编程
中断程序设计的一般过程和方法
83
作业:
6.1
6.3
6.5
6.10