您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第7章 输入输出接口与中断技术
第6章输入输出接口与中断技术7.1输入输出接口概述7.2CPU与外设之间数据传送的方式7.3中断技术7.48086/8088的中断系统和中断处理7.5可编程中断控制器1.掌握理解接口基本结构的特点。2.掌握CPU与外设之间的数据传送方式。3.掌握无条件传送与有条件传送的编程。4.正确理解中断、中断系统及其功能。5.掌握单个中断源的中断的条件与过程。6.正确理解和灵活运用中断向量表。7.掌握中断控制器内部8个部件的功能及其关系。在计算机应用中,必然同各种各样的外设打交道。当它被用于管理、生产过程的检测与控制以及科学计算时,都要求把控制程序和原始数据通过相应的输入设备送入计算机;CPU在程序的控制下,对这些信息进行加工处理,然后把结果以用户所需要的方式通过输出设备予以输出。外设与计算机的连接不能像存储器那样直接连接到总线上,而必须通过各自的接口电路与主机相连。7.1.1CPU与外设间的连接7.1输入输出概述MEMI/O设备不同点品种有限品种繁多功能单一功能多样传送一个字节传送规律不同与CPU速度匹配与CPU速度不匹配易于控制难于控制结论可与CPU直接连接需经过I/O接口电路与CPU连接CPU与外设的输入输出操作类似于存储器的读写操作,即I/O(读/写);但外设与存储器有许多不同点,其比较如下表所示。接口电路传送的信息可分为数据信息、状态信息和控制信息三类:1.数据信息数据信息是最基本的一种信息,包括:(1)数字量:通常为8位二进制数或ASCII码。7.1.2接口电路传送的信息非电量信息传感器电量信号处理A/DCPU(2)模拟量:当计算机用于检测、数据采集或控制时,大量的现场信息是连续变化的物理量(如:温度、压力、流量、位移、速度等),经传感器把非电量转换成电量并经过放大即得到模拟电流或电压,这些模拟量,计算机不能直接接收和处理,必须经过A/D转换,才能输入计算机;而计算机输出的数字量也必须经D/A转换后才能去控制执行机构。(3)开关量:具有“0”和“1”两个状态的量,用一位二进制数表示。例如电机的启与停,开关的合与开等。2.状态信息反映外设当前所处工作状态的信息,以作为CPU与外设间可靠交换数据的条件。输入时,它告知CPU有关输入设备的数据是否准备好(Ready=1?);输出时,它告知CPU输出设备是否空闲(Busy=0?)。CPU是通过接口电路来掌握I/O设备的状态,以决定可否输入或输出数据。3.控制信息用于控制外设的启停。CPUI/O设备I/O接口123ABDBCBDATASTATUSCONTROLCPU与外设之间的接口信息接口电路基本结构及其连接如图所示。接口电路根据传送不同信息的需要,其基本结构安排有其特点。(1)3种信息的性质不同,应通过不同的端口分别传送。如,数据输入/输出寄存器、状态寄存器与命令控制寄存器各占1个端口,每个端口都有自己的端口地址,故能用不同的端口地址来区分不同性质的信息。(2)在用输入输出指令寻址外设的CPU中,外设的状态作为一种输入数据,而CPU的控制命令是作为一种输出数据的,从而可通过数据总线来分别传送。(3)端口地址由CPU地址总线的低8位或低16位地址信息来确定,CPU根据I/O指令提供的端口地址来寻址端口,然后同外设交换信息。在微型计算机系统中,主要的输入输出方法有以下3种:①程序传送②中断方式③直接存贮器存取(DMA)方式这些方式不仅要实现主机与外设之间数据的传输,还要实现状态信息、命令信息的传输。7.2CPU与I/O设备之间的数据传送方式一般,这些外设随时做好了数据传送的准备,而无须检测其状态。这里先要弄清有关输入缓冲与输出锁存的基本概念。输入数据时,因简单外设输入数据的保持时间相对于CPU的接收速度来说较长,故输入数据通常不用加锁存器来锁存,而直接使用三态缓冲器与CPU数据总线相连即可。输出数据时,一般都需要锁存器将要输出的数据保持一段时间,其长短和外设的动作相适应。锁存时,在锁存允许端CE=1(为无效电平)时,数据总线上的新数据不能进入锁存器。只有当确知外设已取走CPU上次送入锁存器的数据,方能在CE=0(为有效电平)时将新数据再送入锁存器保留。输入输出(无条件程序传送)原理图如图所示。在输入时,假定来自外设的数据已输入至三态缓冲器,于是当CPU执行IN指令时,所指定的端口地址经地址总线的低16位或低8位送至地址译码器,CPU进入了输入周期,选中的地址信号和M/IO(以及RD)相“与”后,去选通输入三态缓冲器,把外设的数据与数据总线连通并读入CPU。显然,这样做必须是当CPU执行IN指令时,外设的数据是已准备好的,否则就会读错。在输出时,假定CPU的输出信息经数据总线已送到输出锁存器的输入端;当CPU执行OUT指令时,端口的地址由地址总线的低8位地址送至地址译码器,CPU进入了输出周期,所选中的地址信号和M/IO(以及WR信号)相“与”后,去选通锁存器,把输出信息送至锁存器保留,由它再把信息通过外设输出。显然,在CPU执行OUT指令时,必须确信所选外设的锁存器是空的。例:一个采用同步传送的数据采集系统如图所示。这是一个16位精度的数据采集系统。被采集的数据是8个模拟量,由继电器绕组P0、P1、…P7分别控制触点K0、K1…K7逐个接通。每次采样用一个4位(每位为一个十进制数)数字电压表测量,把被采样的模拟量转换成16位BCD代码(即对应4位十进制数的4个BCD码),高8位和低8位通过两个不同的端口(其地址分别为10H和11H)输入。CPU通过端口20H输出控制信号,以控制某个继电器的吸合,实现采集不同通道的模拟量。采集过程要求:(1)先断开所有的继电器线圈及触头,不采集数据。(2)延迟一段时间后,使K0闭合,采集第1个通道的模拟量,并保持一段时间,以使数字电压表能将模拟电压转换为16位BCD码。(3)分别将高8位与低8位BCD码存入内存,完成第1个模拟量的输入与存。(4)利用移位与循环实现8个模拟量的依次采集、输入与转存。数据采集程序如下:START:MOVDX,0100H;01H→DH,置吸合第1个继电器代码;00H→DL,置断开所有继电器代码LEABX,DSTOR;置输入数据缓冲器的地址指针XORAL,AL;清AL及进位位CFAGAIN:MOVAL,DLOUT20H,AL;断开所有继电器线圈CALLNEARDELAY1;模拟继电器触点的释放时间MOVAL,DHOUT20H,AL;先使P0吸合CALLNEARDELAY2;模拟触点闭合及数字电压表的转换时间INAX,10H;输入MOV[BX],AX;存入内存INCBXINCBXRCLDH,1;DH左移(大循环)1位,为下一个触点吸合作准备JNCAGAIN;8位都输入完了吗?没有,则循环DONE:;输入已完,则执行别的程序段。程序传送是指CPU与外设之间的数据交换在程序控制(即IN或OUT指令控制)下进行.这种输入输出方式可以归纳为以下特点:①数据的传输靠执行指令实现。对于一个输入设备,要用两条指令:INAL(AX),PORTMOV[MEM],AL(AX)对于一个输出设备,至少包括这样两条指令:MOVAL(AX),[MEM]OUTPORT,AL(AX)7.2.1程序传送②外部设备的状态信息用IN指令输入,然后测试;主机用OUT指令向外设提供状态信息,从而达到联络的目的。③这种输入输出方式的优点简单、实现容易。但存在明显的缺点:第1,为了测试和等待外部设备作好传输数据的准备,常常要花费大量的时间,在这段时间内,程序不能完成其它任务,所以使系统的时间利用率大大降低。第2,CPU在一段时间里只能和一个外部设备之间传输数据,其它设备只能等待。第3,不能发现和处理预先无法估计的错误和异常现象。所以这种输入输出方式只适用于CPU数据处理任务不繁忙,而且外部设备数较少的情况。程序传送方式可分为无条件传送和有条件传送两种:1、无条件传送(又称同步传送)这种传送方式只对固定的外设(如开关、继电器、7段码显示器、机械式传感器等简单外设)在规定的时间用IN或OUT指令来进行信息的的输入或输出,其实质是用程序来定时同步传送数据。对少量数据传送来说,它是最省时间的一种传送方法,适用于各类巡回检测和过程控制。一般的说,这些外设随时做好了数据传送的准备,而无需检测其状态。2、条件传送(又称程序查询传送,异步传送)它是一种程序查询,但与前述的无条件的同步传送不同,是有条件的。此条件是:在执行输入或输出指令前,要先查询接口中状态寄存器的状态。输入时,由其指示要输入的数据是否“准备就绪”;而输出时,又由它指示输出设备是否“空闲”,由此条件来决定执行输入或输出。图6.3查询工作方式示意图(1)单一外设的查询工作数据输出口和状态输入口共用一个地址。(2)多个外设查询方式工作CPU逐个外设进行查询,若发现哪个外设准备就绪,就对该外设实施数据传送。1)程序查询输入当输入装置的数据已准备好后发出一个STB选通信号,一边把数据送入锁存器,一边使D触发器为“1”,给出“准备”READY的状态信号.而数据与状态必须有不同的端口分别输入至CPU数据总线。当CPU要由外设输入数据时,CPU先输入状信息,检查数据是否已准备好;当数据已准备好后,才输入数据。读入数据的命令,使状态信息清0(通过先使D触发器复位),以便为下次输入一个新数据做准备。其方框图如图6.5所示读入的数据是8位,而读入的状态信息往往是1位,如图6.6所示。所以,不同的外设其状态信息可以使用同一个端口,但只要使用不同的位就行。这种查询输入方式的程序流程图如图6.7所示。查询输入部分的程序:POLL:INAL,STATUSPORT;读状态端口的信息TESTAL,80H;设“准备就绪”(READY)信息在D7位JEPOLL;未“准备就绪”,则循环再查INAL,DATA_PORT;已“准备就绪”(READY=1),则读入数据2)程序查询输出同样的,在输出时CPU也必须了解外设的状态,看外设是否有“空闲”(即外设数锁存器已空,或未正处于输出状态),若有“空闲”,则CPU执行输出指令;否则就等待再查。因此,接口电路中也必须要有状态信息的端口,其方框图如图6.8所示。输出过程:当输出装置把CPU输出的数据输出以后,发出一个ACK(Acknowledge)信号,使D触发器置“0”,也即使“BUSY”线为0(Empty=BUSY),当CPU输入这个状态信息后(经G3→D7),知道外设为“空”,于是就执行输出指令。待输出指令执行后,由地址信号和M/IO及WR相“与”,经G1发出选通信号,把在数据总线上的输出数据送至锁存器;同时,触发D触发器为“1”状态,它一方面通知外设:输出数据已准备好,可以执行输出操作,另一方面在数据由输出装置输出以前,一直为“1”,告知CPU(CPU通过读状态端口知道)外设“BUSY”,阻止CPU输出新的数据。查询式输出的端口信与程序流程图分别如图6.9与6.10所示。查询输出部分的程序:POLL:INAL,STATUS_PORT;查状态端口中的状态信息D7TESTAL,80HJNEPOLL;;D7=1即忙线=1,则循环再查MOVAL,STORE;否则,外设空闲,由内存读取数据OUTDATA_PORT,AL;输出到DATA地址端口单元其中,STATUS和TATA分别为状态端口和数据端口的符号址;STORE为待输出数据的内存单元的符号地址。3)一个采用查询方式的数据采集系统一个有8个模拟量输入的数据采集系统,用查询方式与CPU传送信息,电路如图6.11所示。8个输入模拟量,经过多路开关——它由端口4输出的3位二进制码(D2、D1、D0)控制(000—相应于UA0输入…111—相应于UA7输入),每次送出一个模拟量至A/D转换器;同时,A/D转换器由端口4输出的D4位控制启动与停止。A/D转换器的READY信号由端口2的D0输至CPU数据总线;经A/D转换后的数据由端口3输入至数据总线。所以,这样的一个数据采集系统,需要用到3个端口,它们有各自的地址。采集过程要求:(1)初始化。(2)先停止A/D转换。(
本文标题:第7章 输入输出接口与中断技术
链接地址:https://www.777doc.com/doc-3383894 .html