1
全译码示例 — 求 2764的地址范围
A15
A14
A13
A16
C
B
A
E3 138
2764A
19
A18
A17
A12~ A0
CEY6
E2
E1
IO/M
1C000H
1DFFFH
全 0
全 1
0 0 0 1 1 1 0
0 0 0 1 1 1 0
地址范围A12~ A0A19A18A17A16A15A14 A13
2
第 7章 输入 /输出系统(一)
第 7章 基本输入输出接口教学重点
I/O接口电路的典型结构
无条件传送方式
查询传送方式
中断工作过程
4
7.1 输入 /输出接口概述为什么需要 I/O接口 ( 电路 )?
微机的外部设备多种多样
工作原理,驱动方式,信息格式,以及工作速度方面彼此差别很大
它们不能与 CPU直接相连
必须经过中间电路再与系统相连
这部分电路被称为 I/O接口电路多种外设
5
7.1 I/O接口概述 (续 1)
什么是 I/O接口 ( 电路 )?
I/O接口是位于系统与外设间,用来协助完成数据传送和控制任务的逻辑电路
PC机系统板的可编程接口芯片,I/O总线槽的电路板 ( 适配器 ) 都是接口电路
CPU 接口电路
I/O
设备
6
7.1 I/O接口概述 (续 2)
什么是微机接口技术?
处理微机系统与外设间联系的技术
注意其软硬结合的特点
根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备
7
4.1.1 I/O接口的主要功能
⑴ 对输入输出数据进行缓冲和锁存输出接口有 锁存环节输入接口有 缓冲环节
⑵ 对信号的形式和数据的格式进行变换微机直接处理,数字量,开关量,脉冲量
⑶ 对 I/O端口进行寻址
⑷ 与 CPU和 I/O设备进行联络
8
4.1.2 I/O接口的典型结构控制总线 CB
地址总线 AB
I/O接口电路数据控制状态数据总线 DB
CPU 外设控制寄存器状态寄存器数据寄存器
1,接口电路的内部结构
2,接口电路的外部特性
3,接口电路芯片的分类
4,接口电路的可编程性
9
1,接口电路的内部结构
CPU与外设主要有数据,状态和控制信息需要相互交换,于是从应用角度看内部:
⑴ 数据寄存器
保存外设给 CPU和 CPU发往外设的数据
⑵ 状态寄存器
保存外设或接口电路的状态
⑶ 控制寄存器
保存 CPU给外设或接口电路的命令理解端口
10
2,接口电路的外部特性
主要体现在引脚上,分成两侧信号面向 CPU一侧的信号:
用于与 CPU连接
主要是数据,地址和控制信号面向外设一侧的信号:
用于与外设连接
提供的信号五花八门
功能定义,时序及有效电平等差异较大
11
3,接口电路芯片的分类
接口电路核心部分往往是一块或数块大规模集成电路芯片 ( 接口芯片 ),
通用接口芯片
支持通用的数据输入输出和控制的接口芯片
面向外设的专用接口芯片
针对某种外设设计,与该种外设接口
面向微机系统的专用接口芯片
与 CPU和系统配套使用,以增强其总体功能
12
4,接口电路的可编程性
许多接口电路具有多种功能和工作方式,
可以通过编程的方法选定其中一种
接口需要进行物理连接,还需要编写接口软件
接口软件有两类:
初始化程序段 —— 设定芯片工作方式等
数据交换程序段 —— 管理,控制,驱动外设,
负责外设和系统间信息交换
13
7.1.3 I/O端口的编址接口电路占用的 I/O端口有两类编排形式
I/O端口单独编址
I/O地址空间独立于存储地址空间
如 8086/8088
I/O端口与存储器统一编址
它们共享一个地址空间
如 M6800
14
I/O端口单独编址
优点:
I/O端口的地址空间独立
控制和地址译码电路相对简单
专门的 I/O指令使程序清晰易读
缺点:
I/O指令没有存储器指令丰富内存空间
I/O
空间
FFFFF
0
FFFF
80x86采用 I/O端口独立编址
15
I/O端口与存储器统一编址
优点:
不需要专门的 I/O指令
I/O数据存取与存储器数据存取一样灵活
缺点:
I/O端口要占去部分存储器地址空间
程序不易阅读 ( 不易分清访存和访问外设 )
内存部分
I/O
部分存储器空间
00000
FFFFF
16
7.1.4 8088/8086的输入输出指令
输入指令
IN AL,i8/DX ;字节输入
IN AX,i8/DX ;字输入
输出指令
OUT i8/DX,AL ;字节输出
OUT i8/DX ;字输出功能演示功能演示
17
7.1.5 I/O地址的译码
I/O地址的译码方法与存储器地址的译码方法一样,但有它的特点:
部分译码时,通常是中间地址线不连接
部分译码也有最低地址线不连接的情况
每个接口电路通常只占用几个 I/O地址,这时可以利用基本逻辑门电路进行地址译码
除采用译码器,门电路进行译码外,I/O地址译码还经常采用可编程逻辑器件 PLD
为了给系统一定的选择余地,有些接口电路利用比较器,开关或跨接器等进行多组 I/O地址的译码给几个译码实例
19
IBM PC/XT主机板的 I/O译码电路
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A5
A6
A7
A8
A9
AEN
IOW
A
B
C
G2B
G2A
G1
74LS138
DMA CS( 8237)
INTR CS( 8259)
T/C CS( 8253)
PPI CS( 8255)
WRTDMAPG
(写 DMA页面寄存器)
WRTNMIREG
(写 NMI屏蔽寄存器)
20
逻辑门电路进行 I/O地址译码
A9
A8
A7
A6
A5
A2
A4
A3
AEN
A1
A0
74LS03
3E7H
21
4.2CPU与输入 /输出交换信息方式
无条件
查询
中断
DMA
22
4.2.1 数据传送方式
程序控制下的数据传送 —— 通过 CPU执行程序中的 I/O指令来完成传送,又分为:无条件传送,
查询传送,中断传送
直接存储器存取 ( DMA) —— 传送请求由外设向 DMA控制器 ( DMAC) 提出,后者向 CPU
申请总线,最后 DMAC利用系统总线来完成外设和存储器间的数据传送
I/O处理机 —— CPU委托专门的 I/O处理机来管理外设,完成传送和相应的数据处理
23
4.2.2 无条件传送方式及其接口
在 CPU与慢速变化的设备交换数据时,
可以认为它们总是处于,就绪,状态,
随时可以进行数据传送,这就是无条件传送,或称立即传送,同步传送
适合于简单设备,如 LED数码管,按键或按纽等
无条件传送的接口和操作均十分简单
这种传送有前提:外设必须随时就绪传送流程接口实例
24
无条件传送:输入示例
I O R
三态缓冲器
OE
I / O
装置地址译码器
CS
D 7 ~D 0
A 1 5 ~A 1
A0
0 1 6 0 H
MOV DX,160H
IN AL,DX
25
无条件传送:输入实例
MOV DX,160H
IN AL,DX
74LS244
+5V10K x 8
G1 G2
数据总线
CS
RD
26
无条件传送:输出示例地址译码器数据锁存器A 1 5

A1
I O W
A0
CS
0 1 6 0 H
输出设备
D7

D0
MOV DX,160H
MOV AL,[BX]
OUT DX,AL
27
无条件传送:输出实例
MOV DX,160H
MOV AL,[BX]
OUT DX,AL
+5V
74LS373
300 x 8
LE OE
数据总线
CS
WR
28
无条件传送:输入输出接口
K7
K1
K0
+5V
D0~ D7
A0~ A15
CLK
LS06
反相驱动器
LS273
8D
锁存器
LS244
三态缓冲器
8000H
译码
+5V
LED0
LED7


G
IOW
IOR
next,mov dx,8000h ;DX指向数据端口
in al,dx ;从输入端口读开关状态
not al ;反相
out dx,al ;送输出端口显示
call delay ;调子程序延时
jmp next ;重复
29
7.2.3 查询传送方式及其接口
CPU需要选了解 ( 查询 ) 外设的工作状态,然后在外设可以交换信息的情况下
( 就绪 ) 实现数据输入或输出
对多个外设的情况,则 CPU按一定顺序依次查询 ( 轮询 ) 。 先查询的外设将优先进行数据交换
查询传送的特点是:工作可靠,适用面宽,但传送效率低就绪?
30
查询传送的两个环节
⑴ 查询环节
寻址状态口
读取状态寄存器的标志位
若不就绪就继续查询,直至就绪
⑵ 传送环节
寻址数据口
是输入,通过输入指令从数据端口读入数据
是输出,通过输出指令向数据端口输出数据输入状态就绪?
数据交换
Y
N
传送流程接口实例
31
4.2.4 查询输入接口
IOR
+5V
8D
锁存器
8位三态缓冲器译码
1位三态缓冲器
RQ A
0~ A15
8000H
8001H
D0~ D7
D0D
输入设备
IOR
STB
mov dx,8000h ;DX指向状态端口
status,in al,dx ;读状态端口
test al,01h ;测试标志位 D0
jz status ;D0= 0,未就绪,继续查询
inc dx ;D0= 1,就绪,DX指向数据端口
in al,dx ;从数据端口输入数据
32
4.2.5 查询输出接口
8D
锁存器译码
1位三态缓冲器
R
Q
A0~ A15
8000H
8001H
D0~ D7
D7
D
+5V输出设备
ACK
IOW
IOR
mov dx,8000h ;DX指向状态端口
status,in al,dx ;读取状态端口的状态数据
test al,80h ;测试标志位 D7
jnz status ;D7= 1,未就绪,继续查询
inc dx ;D7= 0,就绪,DX指向数据端口
mov al,buf ;变量 buf送 AL
out dx,al ;将数据输出给数据端口
34
4.2.7 中断传送方式断点主程序中断服务程序中断请求 对外设进行处理继续执行 返回断点
CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序传送流程
35
4.2.7.1 中断传送与接口
中断传送是一种效率更高的程序传送方式
进行传送的 中断服务程序是预先设计好的
中断请求是外设随机向 CPU提出的
CPU对请求的检测是有规律的,一般是在每条指令的最后一个时钟周期采样中断请求输入引脚
本书主要论述中断在输入和输出方面的应用
中断还有着非常广泛的应用
37
4.2.7.3 中断工作过程
中断请求? 中断响应
关中断? 断点保护
中断识别? 现场保护
中断服务? 恢复现场
开中断? 中断返回中断服务是进行数据交换的实质性环节
38
4.2.7.4 中断优先权问题 1:系统有多个中断请求,
CPU如何识别中断源?
解答 1,向量中断解答 2,中断查询中断源的识别
39
中断查询接口
A0~ A15
锁存器
INTR
三态缓冲器译码
8001H
D0~ D7
中断 A
中断 B
中断 C… …
IOR
40
4.2.7.5 中断优先权 (续 1)
问题 2:有多个中断同时请求,
CPU如何应对?
解答 1,链式优先权排队电路解答 2,优先权编码电路中断优先权排队
41
链式中断优先权排队电路
A2
A1
C2
C1
D2
D1
B2
B1
中断源 A
触发器中断源 B
触发器中断源 C
触发器中断矢量 D中断矢量 C中断矢量 B
中断矢量 A
中断源 D
触发器缓冲器缓冲器缓冲器缓冲器
INTA
42
中断优先权编码电路比较器失效信号比较器 8,3
优先权编码器优先权寄存器 D0~ D7
2
1 A< B
中断请求 0
中断请求 1
中断请求 2A0A1
A2INTR
B0
B1
B2

43
4.2.7.6 中断优先权 (续 2)
问题 3:中断处理过程中,
又有中断提出请求,怎么办?
解答 1,链式优先权排队电路解答 2,优先权编码电路中断嵌套
44
4.2.8 DMA传送方式
希望克服程序控制传送的不足:
外设 → CPU→ 存储器外设 ← CPU← 存储器
直接存储器存取 DMA:
外设 → 存储器外设 ← 存储器
CPU释放总线,由 DMA控制器管理
45
DMA传送的工作过程
⑴ CPU对 DMA控制器进行初始化设置
⑵ 外设,DMAC和 CPU三者通过应答信号建立联系,CPU将总线交给 DMAC控制
⑶ DMA传送
DMA读存储器:存储器 → 外设
DMA写存储器:存储器 ← 外设
⑷ 自动增减地址和计数,判断传送完成否传送流程
46
DMA传送流程
HLDA
发存储器地址传送数据传送结束?
DMA结束修改地址指针
47
传送方式的比较
无条件传送,慢速外设需与 CPU保持同步
查询传送,简单实用,效率较低
中断传送,外设主动,可与 CPU并行工作,
但每次传送需要大量额外时间开销
DMA传送,DMAC控制,外设直接和存储器进行数据传送,适合大量,快速数据传送
48
作业:
P283:7.4,7.5( s0,s1功能,按 ESC退出 )
第 4章 总 结 (续)
4,理解中断,中断源,中断工作过程,中断源识别,优先权排队和中断嵌套
5,理解 DMA传送的工作过程
59
就绪 ( Ready)
在输入场合
,就绪,说明输入接口已准备好送往 CPU的数据,
正等着 CPU来读取
该状态也可用接口中数据缓冲器已,满,来描述
在输出场合
,就绪,说明输出接口已做好准备,等待接收 CPU
要输出的数据
该状态也可用接口数据缓冲器已,空,,或者用接口 ( 外设 ),闲,或不,忙 ( Busy),来描述就绪:满,空、闲、不忙