1
第 6章 输入 /输出
6.1 输入 /输出概述
6.2 简单的输入 /输出接口芯片
6.3 数据传送的控制方式
6.4 可编程 DMA控制器 8237A
2
6.1 输入 /输出概述
外设接口的功能
接口与端口
I/O端口的编址方式
3
6.1 输入 /输出概述
6.1.1 外设接口的功能
( 1)转换信息的格式
( 2)提供联络信号
( 3)协调定时差异
( 4)进行译码选址
( 5)实现电平转换
( 6)具备时序控制
( 7)最好可编程序
4
6.1.2 接口与端口一个基本的外设接口如图 6-1所示
5
,外设接口”是,CPU”与“外设”之间传递信息的控制电路,
是,CPU”与“外设”之间传送信息的一个
“界面”、一个连接部件。
外设接口一边通过 CPU的三总线(或微机总线)同 CPU连接,一边通过三种信息 —数据信息、控制信息和状态信息同外设连接。
6
数据信息可以有数字量、模拟量和开关量三种类型。
数字量是以二进制码形式提供的信息。
开关量是用 2个状态表示的信息。
模拟量是指由传感器等提供的由物理量转换成的相应的连续变化的电信号。
7
数据信息、状态信息和控制信息通常都以数据形式通过 CPU的数据总线(或微机总线)同
CPU进行传送的,这些信息分别存放在外设接口的不同类型的寄存器中。 CPU同外设之间的信息传送实质上是对这些寄存器进行“读”或
“写”操作。
,接口”中这些可以由 CPU进行读或写的寄存器被称为“端口”( Port)。这些端口可分为
“数据口”、“状态口”与“控制口”。
8
6.1.3 I/O端口的编址方式
I/O端口的编址方式有两种:
独立编址与存储器映象编址。
一、独立编址(专用的 I/O端口编址)
存储器和 I/O端口在两个独立的地址空间中,
I/O端口的读、写操作由硬件信号 和 来实现,访问 I/O端口用专用的 IN指令和 OUT指令。
IOR IOW
9
独立编址方式的优点
I/O端口的地址码较短(一般比同一系统中存储单元的地址码短);
译码电路比较简单,存储器同 I/O端口的操作指令不同,程序比较清晰;
存储器和 I/O端口的控制结构相互独立,可以分别设计。
独立编址方式的缺点
I/O指令的功能一般不如存储器访问指令丰富;
程序设计灵活性较差。
10
11
二、存储器映象编址(统一编址)
这种编址方式的特点存储器和 I/O端口共用统一的地址空间。
I/O端口的读写操作同样由硬件信号 和 来实现,
访问 I/O端口同样用 MOV指令。
所有访问存储器的指令(包括存储器的算术、逻辑运算指令)都可用于 I/O端口。
MEMR MEMW
12
存储器映象编址的优点:
任何对存储器数据的指令都可用于 I/O端口的数据操作,
不需专用 I/O指令,从而使系统编程比较灵活;
存储器映象编址的缺点:
I/O占用了一部分内存空间,
且指令的机器码也长,
执行时间较长。
13
14
6.2 简单的输入 /输出接口芯片
芯片功能简介
芯片的应用举例
15
6.2 简单的输入 /输出接口芯片
6.2.1 芯片功能简介在外设接口电路中,对传输过程中的信息进行放大、隔离以及锁存的就是缓冲器、数据收发器和锁存器。
一、锁存器 74LS373
8D锁存器,具有三态驱动输出,由 8个 D门组成,
8个输入端 1D~ 8D,8个输出端 1Q~ 8Q,2个控制端 — G和 。 74LS373的锁存器功能从表 6-1可见。OE
16
74LS373锁存器逻辑电路和引脚图
17
表 6-1 74LS373的真值表
H为高电平,L为低电平,Q0为原状态,Z为高阻抗,× 为任意值。
74LS373锁存器主要用于锁存地址信息、数据信息以及
DMA页面地址信息等。
常用的锁存器还有 74LS273,573,Intel 8282和 8283等使能 G 输出允许 OE 输入 输出 Q
H L L L
H L H H
L L × Q0
× H × Z
18
二、缓冲器 74LS244
三态输出的八缓冲器和线驱动器;
8个输入端,分为二路 —1A1~ 1A4,2A1~ 2A4;
8个输出端,分为二路 —1Y1~ 1Y4,2Y1~ 2Y4;
分别由 2个门控信号 和 控制; 和 为低,
芯片工作,Y = A;
74LS244缓冲后,输入信号被驱动,输出信号的驱动能力加大了;
常用的缓冲器还有 74LS240和 74LS241等。
G1 G2 G1 G2
19
74LS244缓冲器逻辑电路和引脚图
20
三、数据收发器 74LS245
三态输出的 8总线收发器;
16个双向传送的数据端,A1~A8,B1~B8;
两个控制端 —使能端 和方向控制端 DIR;
芯片的功能见表 6-2。
表 6-2 74LS245的真值表通常用于数据的双向传送、缓冲和驱动。
常用的数据收发器还有 74LS243,Intel 8286,Intel 8287等使能 方向控制 DIR 传送方向
L L B→A
L H A→B
H × 隔开
G
G
G
21
74LS245八总线收发器逻辑电路和引脚图
22
6.2.2 芯片的应用举例一,74LS373,245,244在 PC/XT机中的应用
23
8088发出的地址总线、数据总线和控制总线要经过一些总线接口器件变成系统总线中的对应信号;
8288总线控制器是控制总线的接口器件;
地址总线和数据总线的接口部件为:
1,地址锁存器 74LS373;
2,地址缓冲器 74LS244;
3,数据收发器 74LS245。
24
二、用于一般的总线驱动电路
8086系统中,存储器和 I/O接口较多,须在 CPU
总线和系统总线之间加接总线驱动电路,要求在加接驱动电路后 CPU仍能进行常规的存储器读写,I/O
读写、中断的响应、总线请求响应(即 HLDA有效)
以及在 RESET有效时的相应操作。
25
26
6.3 数据传送的控制方式
程序控制传送方式
DMA(直接存储器存取)传送方式
27
6.3 数据传送的控制方式在数据传送过程中,关键问题是数据传送的控制方式
6.3.1 程序控制传送方式程序控制的数据传送分为无条件传送、查询传送和中断传送;
以 CPU为中心,数据传送的控制来自 CPU,通过预先编制好的输入或输出程序(传送指令和 I/O指令)实现数据的传送。
28
一、无条件传送方式主要用于二种情况:⑴外设随时准备好同 CPU
之间的数据传送;⑵外设的定时(外设处理信息的时间关系)是固定的并且是已知的场合,外设必须在微处理器限定的指令时间内准备就绪,并完成数据的接收或发送。
把 I/O指令插入到程序中,当程序执行到该 I/O
指令时,外设必定已为传送数据作好准备,于是在此指令时间内完成数据传送任务。
29
无条件传送
30
一个同步传送的数据采集系统,U5为继电器
( U5A继电器的 8个控制触点,U5B为继电器的 8
个线圈),继电器线圈 P0,P1……P 7控制 8个触点
K0,K1 ……K 7,逐个接通,对 8个输入模拟量进行采样,采样输入的模拟量送入一个 4位十进制数字电压表 U1测量,把被采样的模拟量转换成 16位
BCD码( 4位十进制数),高 8位和低 8位通过两个
8位端口 U2(端口地址为 11H)和 U3(端口地址为
10H )送上系统的数据总线,CPU通过 IN指令读入转换后的数字量存入 DSTOR变量区。
31
START,MOV DX,0100H
LEA BX,DSTOR
XOR AL,AL
AGAIN,MOV AL,DL
OUT 20H,AL
CALL NEAR DELAY1
MOV AL,DH
OUT 20H,AL
CALL NEAR DELAY2
IN AX,10H
MOV [BX],AX
INC BX
INC BX
RCL DH,1
JNC AGAIN
……
32
二、查询传送方式又称“异步传送方式”。用于外设的定时是不固定的或未知的场合。
CPU必须先对外设进行状态检测。完成一次传送过程的步骤如下:
( 1)通过执行一条输入指令,读取所选外设的当前状态。
( 2)根据该设备的状态决定程序去向,如果外设正处于“忙”或“未准备就绪”,则程序转回重复检测外设状态,如果外设处于“空”或“准备就绪”,
则发出一条输入 /输出指令,进行一次数据传送。
33
一个查询传送的例子如下所示,这是一个采用模 /
数转换器( A/D转换器)对 8位模拟量 IN0~ IN7采样的数据采集系统。
34
START,MOV DL,0F8H
MOV DI,OFFSET DSTOR
AGAIN,MOV AL,DL
AND AL,0EFH
OUT 4,AL
CALL DELAY
MOV AL,DL
OUT 4,AL
POLL,IN AL,2
SHR AL,1
JNC POLL
IN AL,3
STOSB
JNC DL
JNE AGAIN
……
35
三、中断传送方式无条件传送和查询传送的缺点是 CPU和外设只能串行工作,各外设之间也只能串行工作。利用中断来实现
CPU与外设之间的数据传送,这就是中断传送方式。
通常是在程序中安排好在某一时刻启动某一台外设,然后 CPU继续执行其主程序,外设完成数据传送的准备后,向 CPU发出“中断请求”信号,在 CPU可以响应中断的条件下,现行主程序被“中断”,转去执行“中断服务程序”,在“中断服务程序”中完成一次 CPU与外设之间的数据传送,传送完成后仍返回被中断的主程序,从断点处继续执行。在一定程度上实现了主机和外设的并行工作。
36
中断接口电路
37
一个输入接口电路,当输入设备准备好一个数据后,
发出选通信号 STB:
一路送数据锁存器 U1,使 8位数据送入锁存器 U1,
另一路送中断请求触发器 U2,将 U2置,1”,
若系统允许该设备发出中断请求,
则中断允许触发器 U2已置,1”,
通过与门 U7向 CPU发出中断请求信号 INTR。
38
在 CPU开中断的情况,在现行指令结束后,CPU响应该设备的中断请求,
执行中断响应总线周期,发出中断响应信号,
外设把一个字节的中断类型码 (中断识别码 )送上数据总线,
CPU根据该中断识别码转而去执行中断服务程序,
读入数据(通过 IN指令,打开三态缓冲器 U4),
同时复位中断请求触发器 U2,
中断服务完成后,再返回被中断的主程序。
INTA
39
6.3.2 DMA(直接存储器存取)传送方式
DMA( Direct Memory Access)
是一种不需要 CPU干预也不需要软件介入的高速数据传送方式。
CPU只启动而不干预这一传送过程,
整个传送过程由硬件完成而不需软件介入,
在 DMA传送方式中,对这一数据传送过程进行控制的硬件称为 DMA控制器( DMAC)。
40
一,DMA操作的基本方法:
1.周期挪用( Cycle Stealing)
2.周期扩展
41
3,CPU的停机方式(最常用、简单的传送方式)
在这种方式下,当 DMAC要进行 DMA传送时,
DMAC向 CPU发出 DMA请求信号 HOLD,迫使 CPU在现行的总线周期(机器周期)结束后,使其地址总线、
数据总线和部分控制总线处于高阻状态,从而让出对总线的控制权,并给出 DMA响应信号 HLDA。 DMAC
接到信号后,就可对总线进行控制,进行数据传送的控制工作,直到 DMA操作完成,CPU再恢复对总线的控制权,继续执行被中断的程序。
42
二,DMA的传送方式
1.单字节传送方式
①在 DMA响应信号 DACK有效前,DREQ必须保持有效;
② DREQ在传送过程中一直保持有效,在两次传送之间也必须释放总线。
2.成组传送方式一个 DMA请求可传送一组信息,
只要在 DACK有效前 DREQ保持有效即可,一旦 DACK
有效,不管 DREQ是否有效,DMAC一直不放弃总线控制权,直到整个数组传送完。
43
3.请求传送方式又称查询传送方式,
每传送一个字节后,DMAC就检测 DREQ,
若无效,则挂起;
若有效,继续 DMA传送,直到
①一组信息传送结束;
②外加信号强制 DMAC中止操作。
44
三,DMA控制器的基本功能
( 1)能接受外设的 DMA请求信号 DREQ,并能向外设发出
DMA响应信号 DACK;
( 2)能向 CPU发出总线请求信号( HOLD和 BUSRQ),当
CPU发出总线响应信号( HLDA和 BUSAK)后能接管对总线的控制权,进入 DMA方式;
( 3)能发出地址信息,对存储器寻址并修改地址指针;
( 4)能发出读、写等控制信号,包括存储器和 I/O访问信号;
( 5)能决定传送的字节数,并能判断 DMA传送是否结束;
( 6)能发出 DMA结束信号,释放总线,使 CPU恢复正常工作。
45
DMAC工作示意图
46
DMA工作过程波形图
47
6.4 可编程 DMA控制器 8237A
8237A的结构与功能
8237A操作和传送类型
8237A应用举例
48
6.4 可编程 DMA控制器 8237A
6.4.1 8237A的结构与功能一、结构
8237A由 I/O缓冲器、时序和控制逻辑、优先编码器和循环优先级逻辑、命令控制逻辑和内部寄存器组
(或阵列)五部分组成,见图 6-14( a)( b)。
49
( a) 8237A的内部结构框图
50
( b) 8237A四通道示意框图
51
二、内部寄存器组
1,4个独立的 DMA通道都有的寄存器:
基地址寄存器当前地址寄存器基字计数寄存器当前字计数寄存器方式寄存器请求寄存器屏蔽寄存器
52
2,各通道共有的寄存器:
字计数暂存器地址暂存器命令寄存器状态寄存器数据暂存器
53
A3 A2 A1 A0 操作对象
0 0,通道号,0 1 0 写入地址寄存器
0 0,通道号,0 0 1 读当前地址寄存器
0 0,通道号,1 1 0 写入字计数寄存器
0 0,通道号,1 0 1 读当前字计数寄存器无用无用
0 1 0 0 0 0 1 读状态寄存器
0 1 0 0 0 1 0 写命令寄存器
0 1 0 0 1 1 0 写请求寄存器
0 1 0 1 0 1 0 写单个屏蔽寄存器位
0 1 0 1 1 1 0 写方式寄存器
0 1 0 0 0 1 0 清除先 /后触发器
0 1 1 0 1 0 1 读数据暂存器
0 1 1 0 1 1 0 主复位
0 1 1 1 0 1 0 清除屏蔽寄存器
0 1 1 1 1 1 0 写全部屏蔽寄存器位
1 x x x x x x 未选中,DMA工作
CS IOR IOW
54
⑴ 方式寄存器:用来保存 DMA的传送方式和传送类型
8237A的方式控制字格式
55
⑵ 请求寄存器:每个通道 1位,又称为请求触发器。
8237A的请求字格式
⑶屏蔽寄存器:格式同请求寄存器相似。
⑷命令寄存器:用来存放 8237A的操作方式。
56
8237A命令字格式
57
⑸ 状态寄存器
8237A的状态字格式
⑹基地址寄存器:用来保存 DMA传送的起始地址值。
⑺当前地址寄存器:用来保存 DMA传送时存储单元的地址值或者存储器的当前地址值,每传送一个字节的数据,其内容自动加 1或减 1。
58
⑻ 基字计数寄存器:用来存放每次 DMA操作需要传送的数据字节总数。
⑼ 当前字计数寄存器:用来表示本次 DMA操作过程中还需要传送的数据字节数。每传送一个字节,其内容减 1,直到该寄存器的内容由 0000H减为 FFFFH
时,产生终止计数信号,使 变为低电平。
⑽ 地址寄存器和字计数暂存器:两个带有加减 1功能,
供 8237A在 DMA操作时完成当前地址寄存器和当前计数寄存器内容的修改。
⑾ 数据暂存器:用于存储器到存储器传送方式中,暂时存放从源地址存储器读出的数据。
EOP
59
6.4.2 8237A操作和传送类型一,8237A的 DMA操作:
两种主要周期,(空闲周期和有效周期)
1.DMA操作时序
8237A有 7种不同的状态:
SI,S0,S1,S2,S3,S4和 SW
状态 SI是一种无效状态,也称空闲状态状态 S0是服务的第一个状态,当出现一个有效的
DREQ请求信号时,8237A使 HRQ变为有效后就进入 S0状态
60
直到 HLDA变为有效后,将顺序进入 S1,S2,S3,S4
状态,
它们是 DMA服务的工作状态,完成 DMA传送操作,
S1状态用来修改高 8位地址内容,
S2状态用来修改低 8位地址内容,
S3状态使 或 控制信号有效,
S4状态使 或 控制信号有效,
从而完成一个数据字节的传送操作。
MEMW
MEMW IOW
IOW
61
2,空闲周期当没有任何通道请求 DMA服务时,8237A就处于空闲周期,并连续执行 SI状态。
3,有效周期
CPU进入有效周期。 8237A将以以下四种传送方式之一进入 DMA操作。
⑴单字节传送方式
⑵数据块传送方式
⑶请求传送方式
⑷级联方式
62
4,状态流程图
8237A的状态流程图
63
二,8237A的传送类型
⑴ DMA读实现从存储器到 I/O接口器件的传送,
此时 8237A将发出 和 控制信号以实现
DMA读操作。
⑵ DMA写实现从 I/O接口器件到存储器的传送,
此时 8237A将发出 和 控制信号,以实现
DMA写操作。
IOW
IOR
MEMR
MEMW
64
⑶ 校验传送一种伪传送操作用于校验 8237A的内部功能。
⑷ 存储器到存储器传送类型用来实现数据块从一个存储空间快速地传送到另一个存储空间。
仅适用于通道 0和通道 1
通道 0产生源存储器的地址、通道 1产生目的存储器的地址。
65
⑸ 自动预置传送类型,
可在完成 DMA服务出现 有效信号后,
将该通道有关内容重新自动装入。
⑹循环优先传送类型一种采用循环优先级管理方式使 8237A中四个通道的优先级别作动态地循环改变。
EOP
66
⑺ 压缩时序传送类型一种能获得更高的数据传送率的传送类型。
8237A可以允许采用正常时序和压缩时序二种操作时序。
采用正常时序时,一个数据字节的传送需三个时钟周期(由 S2,S3,S4组成)。
采用压缩时序时,完成一个数据字节的传送仅需二个时钟周期,此时删去 S3状态。
67
DMA传输(块字节方式)正常时序
68
6.4.3 8237A应用举例使用一片 8237A- 5的 DMA控制器,
通道 0用于对动态 RAM的再生操作,
通道 2和通道 3分别用于软盘和硬盘(或第二软盘)与存储器之间的快速数据交换,
通道 1用作同步数据链路( SDLC)通信卡与存储器之间的数据交换,
若系统不使用该通信卡,则可供用户使用通道 1。
69
图中除 8237A- 5外,还有:
系统板的 I/O端口地址译码器 74LS138
DMA控制信号形成逻辑四位页面地址寄存器 74LS670
地址 /数据分离器 74LS373
低 8位地址缓冲器 74LS244等部分组成。
70
8237A-5在 IBM-PC机中应用逻辑图