第六章输入输出控制第一讲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 输入输出控制
第一讲
回顾:微机系统的层次结构,CPU、主机、接口电路及外部设备之间的结构关联,输入/输出的一般概念。
本讲重点:微机系统主机与外部设备之间的数据传送,包括I/O端口的寻址方式,输入/输出的传送控制方式。
讲授内容:
6.1输入/输出数据的传输控制方式
CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA 方式。
一.程序方式
指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。
①无条件传送方式
条件:利用程序来控制与外设交换信息时,如果可以确信外设总是处于“准备好”的状态,不需用任何状态查询,就可以直接利用输入/输出指令进行信息的输入/输出操作。
如图6-1,从硬件电路上来看:
输入:加三态缓冲器(控制端由地址译码信号和RD信号选中,CPU用IN指令)输出:加锁存器(控制端由地址译码信号和WR信号选中,CPU用OUT指令)
这种方式下的硬、软件设计都比较简单,但应用的局限性较大,因为很难保证外设在每次信息传送时都处于“准备好”状态,一般只用在一些简单外设的操作上,如开关控制,七段数码管的显示控制等。
图6-1
②条件传送方式(亦称为查询方式)
又称查询方式,即通过程序查询相应设备的状态,若状态不符合,则CPU不能进行输入/输出操作,需要等待;只有当状态信号符合要求时,CPU才能进行相应的输入/输出操作。
一般外设均可以提供一些反映其状态的信号,如对输入设备来说,它能够提供“准备好”(“READY”)信号,“READY”=1表示输入数据已准备好。输出设备则提供“忙”(“BUSY”)信号,“BUSY”=1表示当前时刻不能接收CPU来的数据,只有当“BUSY”=0时,才表明它可以接受来自于CPU的输出数据。
查询式传输,即用程序查询相应设备的状态,(对输入设备就是查询READY,对输出设备查询BUSY),若状态不符合要求则等待,只有当状态信号符合要求时,才进行相应的传输。
过程:
输入操作的程序流程如图6-2所示:
对READY的状态查询,是通过读状态端口的相应位来实现的,输出的情况亦大致相同,这种传送控制方式的最大优点是,能够保证输入/输出数据的正确性。输入接口
以输入设备将数据送入锁存,发选通信号开始,→READY=1→CPU查询(读READY)→读数据→清除READY。见图5-3。
图6-3
输出接口
CPU送数据至锁存器,发选通信号,→a。通知外设取数据;→b。BUSY→输出设备取完数据→ACK→清BUSY→CPU查询。见图6-4
图6-4
例1:假设从某输入设备上输入一组数据送缓冲区,接口电路如图6-3,若缓冲区已满则输出一组信息“BOFFER OVERFLOW”,然后结束。设该设备的启动地址为0FCH,数据端口为0F8H,状态端口为FAH。
程序如下:
DATA SEGMENT
MESS1 DB “BUFFER OVERFLOW”,“$”
BUFF DB 60 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET BUFF;送缓冲区指针
MOV CX,60;送计数初值
OUT 0FCH,AL;启动设备
WAIT:IN AL,OFAH;查询状态,若为0,则等待 TEST AL,01H
JZ WAIT
IN AL,0F8H;输入数据
MOV [BX],AL
INC BX
LOOP WAIT;检测缓冲区是否满,不满再输入
MOV DX,OFFSET MESS1;缓冲区满,输出标志字符串
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
优先级问题
当CPU需对多个设备进行查询时,就出现了所谓的优先级问题,即究竟先为哪个设备服务,一般来讲,在这种情况下都是采用轮流查询的方式来解决,这时的优先级是很明显的,即先查询的设备具有较高的优先级。但这种优先级管理方式,也存在着一个问题,即某设备的优先级是变化的,如当为设备B服务以后,这时即使A已准备好,它也不理睬,而是继续查询C,也就是说A的优先地位并不巩固(即不能保证随时处于优先)。为了保证A随时具有较高的优先级,可采用加标志的方法,当CPU为B服务完以后,先查询A是否准备好,若此时发现A已准备好,立即转向对A的查询服务,而不是为C设备服务。
二.中断传送方式
⑴ 为什么要采用中断传送方式
从查询式的传输过程可以看出,它的优点是硬件开销小,使用起来比较简单。缺点是降低了CPU的工作效率。尤其是当系统中有多台设备时,对某些设备的响应就比较慢,也影响了整个系统响应的实时性。
为了解决这个矛盾,我们提出了中断传送方式,中断传送方式就是外设中断CPU 的工作,使CPU停止执行当前程序,而去执行一个为外设的数据输入/输出服务的程序,即中断服务子程序,中断服务子程序执行完以后,CPU又转回到原来的程序去继续执行,因而在这种方式下,CPU不需花大量的时间去查询外设的工作状态,因为当外设准备好时,它会主动向CPU发请求。CPU只需具有检测中断请求,进行中断响应,并能正确中断返回的功能就行了。
能够向CPU发出中断请求的设备或事件
称为中断源。
微机系统引入中断机制后,使CPU与外设
(甚至多个外设)处于并行工作状态,便
于实现信息的实时处理和系统的故障处
理,可以大大提高CPU的工作效率。
中断方式的原理示意图如图6-6所示。
图5-6
⑵ 中断方式下的接口电路
中断方式提高了CPU的工作效率,但是它同时也提高了系统的硬件开销。因为系统需增加含有中断功能接口电路,用来产生中断请求信号。以输入方式为例,接口电路如图6-7所示。