第 05 章 输入输出与接口技术
description
Transcript of 第 05 章 输入输出与接口技术
第 05 章 输入输出与接口技术5.1 I/O接口概述
• 5.1.1 接口 使用接口电路的原因1.接口可起到 CPU 与不同外设进行串行、
并行信息的之间转换作用2.接口可起到模数 / 数模转换作用
非数字式信号必须经过转换,使其成为对应的数字信号才能送到计算机总线。这种 A/D , D/A转换是通过接口来完成的。
3.接口对 I/O过程起到缓冲和联络作用 解决外设存取速度和 CPU速度不匹配的现象
接口是计算机与输入输出设备或其他系统之间进行数据通讯的逻辑控制部件,也称输入输出控制器。输入输出设备有时简称为“外设”或“ I/O 设备”。
P137图 5.1
5.1.2 I/O 设备和 I/O 接口
P138 学生自学
5.2 I/O接口的基本功能5.2.1 I/O接口的基本功能
1. 数据格式转换2. 数据缓冲3. 信号转换4. 译码选址5. 提供联络信号6. 具备时序控制7. 可编程功能8. 错误检测功能
5.2 I/O接口的组成一、接口硬件1. 数据缓冲寄存器2. 控制寄存器3. 状态寄存器4. 数据总线和地址总线缓冲器5. 端口地址译码器6. 内部控制逻辑7. 对外联络控制逻辑
5.2 I/O接口的组成• 二、接口软件1. 初始化程序段2. 传送方式处理程序段3. 主控程序段4. 程序终止与退出程序段5. 辅助程序段
5.3 CPU 和外设之间的数据传送方式
接口电路控制数据信号的传送,这种传送操作是在 CPU 的监控下实现的。对于 CPU 而言,数据传送就是输入输出操作,控制接口的传送操作有三种方式:
• 程序方式– 无条件传送方式– 条件传送方式(查询方式传送)
• 中断方式(程序中断控制 I/O 方式)• DMA 方式( DMA 控制 I/O 方式)• 专用 I/O 方式
一 . 程序方式 程序方式传送是指在程序控制下进行信息
传送,又可分为无条件传送和条件传送方式。1. 无条件传送方式• 若程序员能够确信一个外设已经准备就绪,
那就不必查询外设的状态而进行信息传输,这称为无条件传送方式。
• 在无条件传送方式下,程序设计较简单。这种方式用得较少,只用在对一些简单外设的操作,如开关、七段显示管等。
① 无条件传送输入的例子:
MOV DX, 160HIN AL, DX
IOR
三态缓冲器OE
I/O
装置地址译码器
CS
D7 D0~
A15 A1~
A00160H
② 无条件传送输出的例子
MOV DX, 160H
MOV AL, [BX]
OUT DX, AL
地址译码器
数据锁存器A15
~A1
IOW
A0 CS0160H
输出设备
D7~D0
2. 条件传送方式(查询方式传送) CPU 通过执行程序不断读取并测试外设
的状态,根据外设的工作状态控制外设的输入 / 输出,即查询方式。
对于条件传送方式来说,一个数据传送到哪接口其过程由 3 个环节组成:
• CPU 从接口中读取状态字• CPU 检测状态字的对应位是否满足“就
绪”条件,如果不满足,则回到前一步读取状态字。
• 如状态字表明外设已处于“就绪”状态,则传送数据。
① 查询式传送输入的例子:
三态缓冲器OE
0160H
D7~D0 D0
IOW
地址译码器
A15~A1
CSA0
IOR
0162H
0164H
C
EOCADC
DB锁存器
RQ C
D+5V
查询输入接口电路原理图
电路原理分析:
启动 ADC 以后,转换结束时产生 EOC 信号,把转换结果锁存至锁存器,把状态触发器置为 1 ,表示数据已经准备好。
1. 控制端口——写 164H 端口,译码器输出和 IOW信号同时有效,启动 ADC 转换。
2. 状态端口——读 162H 端口,译码器输出和 IOR 信号同时有效,打开通过 D0 读取状态信息。
3. 数据端口——读 160H 端口,译码器输出和 IOR 信号同时有效,打开三态缓冲器,从 D7~D0 读入数据,同时清除状态信息。
负脉冲
程序示例:从 ADC 读取一个数据到 AL 。READ : MOV DX, 160H
IN AL, DX ;清状态MOV DX, 164H
OUT DX, AL ;启动 ADC
READ1 : MOV DX, 162H
IN AL, DX ;查询状态TEST AL, 1
JZ READ1
MOV DX, 160H
IN AL, DX ;读取数据RET
② 查询式传送输出的例子:
D7~D0 D0
0160H
IOW
地址译码器
A15~A1
CSA0
0162H
0164H
RDY
DB锁存器
QCD
+5V R
CACKIOR
外设
电路原理说明:
1 、写到 164H 端口,产生一个负脉冲来启动外设开始工作。
2 、写数据到 160H 端口, CPU 输出数据到锁存器,同时置“ 1” 状态触发器,为外设提供状态信息:“数据已准备好”。
3 、读取 162H 端口, CPU 查询状态,看外设是否取走数据。(外设取走数据,则将发出ACK 信号,清除状态触发器)
程序示例:将 AL 中的数据输出。
WRITE : MOV DX, 164H
OUT DX, AL ;启动外设MOV DX, 160H
OUT DX, AL ;输出数据MOV DX, 162H
WRITE1: IN AL, DX ;查询状态TEST AL, 1
JNZ WRITE1
RET
查询方式流程图
主程序
启动外设
I/O 准备就绪否?
执行 I/O 操作
数据传送完否 ?
数据传送完否 ?
忙 N
Y 空闲
Y
N
多个外设的查询方式流程图主程序
启动外设A、 B、 C
查询 A
操作结束否 ?
查询 B
查询 C
继续主程序
设备 A 服务Y
N
设备 B 服务Y
设备 C 服务Y
N
N
N
Y
查询方式特点
• 通过查询实现 CPU 与外设间的同步联络• CPU 和外设串行工作• 接口电路简单• CPU 使用率不高,用 CPU 的等待实现与
外设的同步
二 . 中断方式(程序中断控制 I/O 方式)
中断方式:当外设作好传送准备后,主动向 CPU 请求中断, CPU 响应中断后在中断处理程序中与外设交换数据。若外设未准备好, CPU 可以执行其他程序,提高了 CPU 的利用率。每条指令完成后, CPU 均可响应中断,因此当设备准备好时,可及时与 CPU 交换数据,提高了实时性。
被外界中断时,程序中下一条指令所在处称为断点。
中断传送方式就是外部设备中断 CPU 的工作,使 CPU停止执行当前程序,而去执行一个数据输入 / 输出的程序(该程序称为中断处理子程序或中断服务子程序)。中断子程序执行完毕后, CPU 又转回来执行原来的程序。
中断 I/O 的一般过程a. 数据传送
b. 中断响应
c. 中断请求
CPU 接口外
设
DMA=Direct Memory Access—— 直接存储器访问
什么是 DMA 方式?
DMA 方式是一种由专门的硬件电路执行I/O 的数据传送方式,它可以让外设与外设之间、外设与内存之间直接进行高速的数据传送,而不必经过 CPU 。这种专门的硬件电路称为 DMA 控制器,简称 DMAC 。
三 . DMA 方式( DMA 控制 I/O 方式)
三种传送方式比较• 在查询方式下,通过程序来检测接口中状态寄存器
中的 READY 位,以确定当前是否可以进行数据传输。
• 在中断方式下,当接口中已经有数据要往 CPU 输入或者准备好接收数据时,接口会向 CPU 发一个中断请求, CPU 在接到中断请求后,如果响应中断,便通过运行中断处理程序来实现输入 / 输出。
• 在 DMA 方式下,外设要求传输数据时,接口会向DMA 控制器发 DMA 请求信号, DMA 控制器转而往 CPU 发送一个总线请求信号,以请求得到总线控制权,如果得到 DMA允许,那么,就可以在没有 CPU参与的情况下实现 DMA 传输。
5.4 I/O 端口地址译码技术一、 I/O 端口和 I/O 操作1.I/O 端口:接口电路中能被 CPU 直接访问
的寄存器的地址。 有的接口有多个端口,可对其进行发送命
令、读取状态、传送数据 访问端口就是访问电路中的寄存器2. I/O 操作:对 I/O 端口的操作,而不是 I/O
设备的操作
5.4 I/O 端口地址译码技术二、端口地址编址方式 1. 统一编址 优缺点见 P146 2. 独立编址 优缺点见 P146
三、独立编址方式的端口访问1.I/O 指令中端口地址的宽度 就是我们说的长格式和短格式2.I/O 端口访问 就是对端口的读写
1. 接口电路的作用是什么 ?按功能可分为几类 ?
2. 接口电路的基本结构是什么?3. 试述 CPU 与外设交换数据的方式及其
特点?4. 什么叫端口 ? 通常有哪几类端口 ?
5. 在 8086/ 8088系统中,用哪种方法对 I/O 端口进行编址 ?
6. 为什么有时候可以使两个端口对应一个地址 ?
第五章作业
7. 无条件传送方式用在哪些场合 ?画出无条件传送方式的工作原理因并说明。
8. 条件传送方式的工作原理是怎样的 ? 主要用在什么场合 ?画出条件传送 ( 查询 ) 方式输出过程的流程图。
9. 设一个接口的输入端口地址为 0100H ,而它的状态端口地址为 0104H ,状态端口中第5 位为 1 表示输入缓冲区中有一个字节准备好,可输入。设计具体程序实现查询式输入。
10. 查询式传送方式有什么优缺点 ? 中断方式为什么能弥补查询方式的缺点 ?
11. 和 DMA 方式比较,中断传输方式有什么不足之处 ?
12. 叙述用 DMA 方式传输单个数据的全过程。