第六章 输入输出控制

第六章 输入输出控制
第一讲
回顾:微机系统的层次结构,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。
metal dome图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所示。
图6-7
分析:
数据输入的过程:当外设发STB→数据入锁存器,中断请求触发器置1→若没有屏蔽则产生INTR→CPU满足条件(允许中断;指令执行完)发INTA→(进入中断服务子程序)读数据,发RD,和地址→清中断请求触发器,数据送D0~D7。(输出过程请自己思考)
可屏蔽中断的响应和执行的具体中断过程可分为以下步骤:
接口发中断请求;
当前指令执行完,CPU进行回答;
外设送中断类型码;
旧衣服加工设备
保护断点;
查中断向量表;
进行中断服务子程序;
ngd-071中断返回
⑶ 中断优先级
问题的提出:
当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。下面分别介绍:
①软件查询法
只需有简单的硬件电路,如将A、B、C三台设备的中断请求信号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都可以向CPU发中断请求。进入中断服务子程序后,再用软件查询的方式分别对不同的设备的服务,查询程序的设计思想同查询式,查询的前后顺序就给出了设备的优先级,框图如图所示。
②简单硬件方法
以链式中断优先权排队电路为例,

本文发布于:2024-09-23 04:23:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/306268.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:方式   中断   查询   输入   设备   输出
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议