微机原理及应用
主讲:谢维成
http://xweicheng.ys168.com
scxweicheng@yahoo.com.cn
第7章 输入和输出
7.1 输入与输出概述
输入和输出是计算机系统的重 要组 成部 分, 程
序、原始数据和各种现场采集到的信息都要通过 输
入设备输入到计算机,计算结果和控制信号需要 输
出到各种输出设备。
CPU与外设之间传送的信息有 数据、状态信息 、
控制信息 三大类。
7.1 输入和输出概述
输
入
装
置
计
算
机
输
出
装
置
程序
结果
信息
原始数据
控制
信号
信息
7.1.1 输入输出的寻址方式
CPU寻址外设的两种方式
1、存储器对应输入输出方式(M与I/0统一编地址)
2、端口寻址的输入输出方式(I/0独立编地址)
7.1.1 输入输出的寻址方式
1、存储器对应输入输出方式
I/0统一编地址: 把一个外设端口当 作存 储器 的
一个单元来看待, 每个外设端口占有存储器的一个地
址。
从外设输入一个数据,看作存储器一次读操作;
向外设输出一个数据,看作存储器一次写操作;
7.1.1 输入输出的寻址方式
存储器对应输入输出方式的优点和缺点
优点: 内存和外设的地址由一个译码器解决,不
需专门的I /O指令,全部存储器指令 都可 用, 指令 多 ,
使用方便(输入,输出不只局限于累加器);
缺点: 占用内存空间,寻址的地址字节增加,增
加了指令的执行时间。
目 前 的 IBM-PC系列计算机,存储器和端口寻址是
分开的。
7.1.1 输入输出的寻址方式
2、端口寻址的输入输出方式
I/0独立编地址: 端口寻址方式,有专门的I /O指
令。
IN AL,n IN AL,DX
IN AX,n IN AX,DX
OUT n,al OUT DX,AL
OUT n,AX OUT DX,AX
直接寻址,可寻址 间 接寻址,可寻址
0~255个端口 64K个端口
注意是以端口作为地址单元,因一个外设可 能有
一个或一个以上的端口。
7.1.1 输入输出的寻址方式
判断:
IN AL,0A00H
IN AL,40H
OUT DX,AL
7.1.2 CPU与I/O设备之间的接口信息
CPU与外设之间的接口信息
⒈数据
(1)数字量
如键盘输入的以ASCII码表示的数或字 符;CRT显
示等。
(2)模拟量
非电量 电量 A/D
(3)开关量
例:开关的合与断;电机的运转与停止.
7.1.2 CPU与I/O设备之间的接口信息
数据
I/0
装置
状态
CPU
控制
7.1.2 CPU与I/O设备之间的接口信息
2.状态信息
输入设备,用READY表示准备好否?
READY=1,准备好;
READY=0,未准备好。
输出设备,常用BUSY表示忙否? BUSY=1忙。
例:打印机若不忙,可送数
3.控制信号
(0或1)控制继电器的吸合与断开或外设的启动
与停止等。 状态信息、控制信号与数据是不同性 质
的信息 ,必须区分开来,但微机只有通用的I N/OUT指
令
7.1.2 CPU与I/O设备之间的接口信息
状态信息、控制信息
CPU 状态信息当作数据
CPU 控制信号当作数据
为了不和数据信号混起来,须用不同的端口把
它 们 区分开来,如图7-2所示。这就是一个外设为什
么要几个端口地址的道理。
数据端口一般为8位,而实际应用中,状态与控
制可能只用一位或两位,故二者可合用一个端口。
OUT
IN
7.1.2 CPU与I/O之间的接口信息
接口信号如下图所示:
端口地址
8086/8088
数据
IOW
8
I/O端口 1
I/O端口 2
I/O端口 3
数据
8
状态
控制
I/O装置
IOR
8
图7-2 CPU与I/O之间的接口
7.3 CPU与外设之间数据的传送方式
CPU与外设之间传送的信息
前面的内容我们知道C PU与外设之间传送的信
息有 数据、状态信息、控制信息 三大类,下边探讨
CPU是如何与外设传送数据的。
CPU与外设传送数据主要考虑两个方面的问题:
第一.CPU的工作状态
第二.外设的状态
7.3 CPU与外设之间数据的传送方式
? 无条件传送方式
? 查询传送方式
? 中断传送方式
? 直接数据通道传送(DMA)方式
重点:四种方式的实现技术细节
难点:为什么有这四种输入输出方式?
7.2.1 无条件传送
最简单的传送方式是不管外设是否准备好,C PU
直接对外设进行数据转送。
?1.无条件传送输入方式
过程: 当CPU执行
IN AL,port
IO/M=1
RD=0
地址译码=1
CE=0,则CPU从缓冲器经数据总线获取输入数据。
7.2.1 无条件传送
无条件传送输出
过程:当CPU执行
OUT port,AL
IO/M=1
WR=0
地址译码=1
CE=0,则CPU 输出的数据通过数据总线传送到缓冲
器,最终传送到外设。
7.2.1 无条件传送
应用举例: 打印机的走纸电机和字车电机均采用步
进电机,它的运转就是采用程序改变其正反转。
原理: 通过改变锁
存器的低四位的值,
从而驱动电机。
b1=1,b2=1;AB相加电
b2=1,b3=1;BC相加电
b3=1,b4=1;CD相加电
b4=1,b1=1;DA相加电
7.2.1 无条件传送
程序:
START:MOV DX,port; 送锁存器地址到DX
MOV AL,03H
OUT DX,AL ;AB相加电
CALL delay
MOV AL,06H
OUT DX,AL ;BC相加电
CALL delay
7.2.1 无条件传送
程序续:
MOV AL,0CH
OUT DX,AL ;CD相加电
CALL delay
MOV AL,09H
OUT DX,AL ;DA相加电
CALL delay
JMP START
7.2.2 查询传送方式
无条件传送的问题: 若外设未准备 好, 数据 传
送失效,关键是浪费了C PU工作时间,于是产生了查
询传送方式。
?1.查询方式输入
7.2.2 查询传送方式
过程: 输入设备准备好,数据送到锁存器;D触发器=1;
CPU读状态,若READY=1则输入数据, 若 READY=0则继续
读状态。
7.2.2 查询传送方式
程序:
数据端口:
data_port
状态端口:
status_port
POLL: IN AL,status_port;读输入设备状态
TEST AL,80H ;检查READY
JE POLL ;未READY则读状态
IN AL,data_port ;READY则输入数据
7.2.2 查询传送方式
2.查询方式输出
7.2.2 查询传送方式
例2:采用查询方式的数据采集系统 : 8个模拟量输
入的数据采集系统,用查询方式与CPU传送信息。
程序: [略 ]课后仔细分析原理以及程序!
7.2.3 中断传送方式
查询方式讨论
查询方式中C PU要不断地查询外设,当外设 没有
准备好时,C PU要等待(循环读状态),浪费了C PU的
时间;
而且许多外设速度比较低,在输入输出时,C PU
可以执行大量的时 间, 为了 提高 CPU的 效 率 , 于 是 产
生了中断传送方式。
7.2.3 中断传送方式
过程: 当CPU需要
输入或输出时,由
外设向CPU发出中
断申请,CPU暂停
原来执行的程序,
转入输入输出操作 ,
等操作结束后返回 ,
CPU继续执行原来
的程序。
7.2.3 中断传送方式
中断传送方式
采用中断方式就大大提高了 CPU的 效 率,且
CPU可与多个外设同时工作,从而实现了多任务。
事实上 PC机上的键盘输入、打印任务的管理等
都是采用中断方式进行输入输出的。
7.2.4 直接数据通道传送(DMA)方式
中断传送方式讨论
利用中断进行传送,可大大节约C PU时间, 但中
断传送仍然由C PU通过程序来传送,每次要保护断点,
现场信息,都需要花多条指令的时间。
对于高速的I /O设备,比如磁盘与内存之间交换
数据,就显得速度太慢了。
因此 希望用硬件在外设与内存之间直接进行数
据交换, 而不 通过 CPU,这就是D MA方式,这个硬件
就是DMAC(DMA控制器)。
DMA( Direct Memory Access)
7.2.4 直接数据通道传送(DMA)方式
DMA传送过程
采用D MA方式传送的速度上限取决于存储器的工
作速度 , 可以单字节和数据块传送,过程如下:
HOLD
DMAC → CPU
HLDA
CPU → DMAC
7.3节将详细讲解DMA控制器
的工作原理及使用方法。
小结以及习题
为什么有这四种传送方式?
目的是提高C PU的利用率,使输入输出
数据有效。
习题
教材(第3版) 题6.3A-6.5B
回答问题
?