您好,欢迎访问三七文档
第6章输入输出与中断6.1输入/输出接口概述6.2CPU与外设之间的数据传送方式6.3中断技术6.4中断控制器8259A6.1输入/输出接口概述在CPU与外部设备进行信息交换时至少有两方面的困难:CPU和外设的速度差异非常大;CPU不能和外设直接通过引脚连接。CPU和外设之间必须要设置输入/输出接口(I/O接口),作为CPU与外设进行信息交换的桥梁。6.1.1输入/输出接口的功能6.1.2CPU与输入/输出接口之间的信息6.1.3输入/输出端口的编址方式6.1.1输入/输出接口的功能(1)I/O地址译码与设备选择所有外设都通过I/O接口挂接在系统总线上,在同一时刻,总线只允许一个外设与CPU进行数据传送。(2)信息的输入/输出通过I/O接口,CPU可以从外部设备输入各种信息,也可将处理结果输出到外设;CPU可以通过向I/O接口写入命令字来控制I/O接口的工作,还可以随时监测与管理I/O接口和外设的工作状态;I/O接口还可以通过接口向CPU发出中断请求。6.1.1输入/输出接口的功能(续)(3)命令、数据和状态的缓冲与锁存因为CPU与外设之间的时序和速度差异很大,为了能够确保计算机和外设之间可靠地进行信息传送,要求接口电路应具有信息缓冲能力。接口不仅应缓存CPU送给外设的信息,也要缓存外设送给CPU的信息。以实现CPU与外设之间信息交换的同步。(4)信息转换I/O接口还要实现信息格式变换、电平转换、码制转换、传送管理以及联络控制等功能。6.1.2CPU与输入/输出接口之间的信息1.数据信息数字量:以二进制形式表示的数据信息。模拟量:当计算机处理现场连续变化的非电量的物理量时,需通过传感器把这些非电量的物理量转化为连续变化的模拟电压或电流—模拟量。模拟量再经过A/D转换器转换为数字量,才能输入计算机处理。开关量:是指可用2个状态表示的信息,如开关的开和闭、电机的起和停等。一个开关量只需要一位二进制数表示。2.状态信息表示外设当前所处的状态。输入时,输入设备是否准备好(READY);输出时,输出设备是否处于忙(BUSY)等。3.控制信息由CPU发出、用于控制I/O接口的工作方式以及外设的启动和停止等信息。6.1.2CPU与输入/输出接口之间的信息(续)数据信息、状态信息和控制信息是属于不同性质的信息,需要分别传送。I/O端口包括:数据端口、状态端口和控制端口。CPU通过数据端口从外设读入数据或向外设输出数据。从状态端口读入设备的当前状态,通过控制端口向外设发出控制命令。一个I/O接口可能仅包含其中的一类或两类端口,当然也可能包含全部三类端口。6.1.3输入/输出端口的编址方式在微型计算机系统中,CPU对外设的访问实际上是对外设接口电路中相应的I/O端口进行访问。I/O端口的编址通常有两种不同的方式。一是与内存单元统一编址,二是独立编址。1.I/O端口统一编址又称为存储器映射编址方式,即把每个I/O端口都当作一个存储单元看待,按照存储单元的编址方式统一安排端口的地址。优点:可以用访问内存的方法来访问I/O端口。由于访问内存的指令种类丰富、寻址方式多样,因此这种编址方式为访问外设带来了很大的灵活性。同时,I/O控制信号也可与存储器的控制信号共用,从而给应用带来了很大的方便。缺点:外设占用了一部分内存地址空间,这就减少了内存可用的地址范围。此外从指令上不易区分当前是对内存进行操作还是对外设进行操作。IntelMCS-51等系列的单片微型计算机和Motorola公司的MC6800、MC68000及68HC05等微处理器就采用统一编址方式。2.I/O端口独立编址内存地址空间和外设地址空间是相互独立的。8086/8088系统的内存地址范围为00000H~FFFFFH,共1M空间,而外设端口的地址范围为0000H~FFFFH,共64K空间。这两个地址空间相互独立,互不影响。CPU在寻址内存和外设时,使用不同的控制信号来区分当前是对内存操作还是对I/O端口操作。例如8086的M/IO和8088的IO/M信号。指令系统中单独设置有专用的I/O指令。优点:将输入输出指令和访问存储器的指令明显区分开,使程序清晰,可读性好,而且I/O指令长度短,执行的速度快,也不占用内存空间;I/O地址译码电路较简单,缺点:必须有专门的IN和OUT指令,这些指令的功能没有访问存储器指令强,也增加了指令系统的规模。另外,CPU要能提供区分存储器和I/O的控制信号。6.2CPU与外设之间的数据传送方式CPU与外设之间的数据传送方式主要有以下4种:无条件传送查询传送中断传送直接存储器存取(DMA)方式。其中,无条件传送、查询传送、中断传送这三种传送方式是通过执行程序来完成数据传送的,所以也统称程序控制传送方式。6.2.1无条件方式无条件传送方式主要用于外部控制过程的各种动作是固定的、且是已知的,控制的对象是一些简单的、随时“准备好”的外设。也就是说,在这些设备工作时,随时都可以接收CPU输出的数据,或者它们的数据随时都可以被CPU读出。在与这样的外设交换数据的过程中,数据交换与指令的执行是同步的,因此这种方式也称为同步传送方式。无条件传送的输入方式无条件传送的输出方式无条件传送方式的特点优点:程序简单,所需的硬件和软件都比较少,传送速度快,但必须在确信外设已准备好情况下才能使用,否则就会出错。对于诸如开关、发光二极管等这一类简单设备来说,就是采用无条件的传送方式,因为这类简单设备在任一时刻的状态是固定的,也就是说它们总是准备好的。6.2.2查询方式在实际应用中,大多数的外设并不是总处于“准备好”状态,CPU与它们进行数据交换时,必须要先查询一下外设的状态,若准备好才传送数据,否则CPU就要等待,直到外设准备好为止。采用查询方式进行一次数据传送的工作过程:首先查询外设的状态,执行一条输入指令,读取外设状态。检查外设状态,看数据是否准备好。若外设没有准备好,即外设处于“忙”或“未就绪”状态,则继续查询外设状态。若外设已准备好,即外设处于“空闲”或“就绪”状态,则执行一条输入/输出指令,进行一次数据传送。1.查询式输入1.查询式输入(续)在查询输入的过程中,读入的数据是8位或16位,而读入的状态位是1位,如图所示。设状态口的地址为PORTS1,输入数据口的地址为PORT_IN,传送数据的总字节数为COUNT1,则查询式输入数据的程序段为:MOVBX,0;初始化指针MOVCX,COUNT1;字节数READS1:INAL,PORT_S1;读入状态位TESTAL,01H;数据准备好否?JZREADS1;否,循环检测INAL,PORT_IN;已准备好,读入数据MOV[BX],AL;存到内存缓冲区中INCBX;修改地址指针LOOPREADS1;未传送完,继续传送2.查询式输出2.查询式输出(续)在查询输出的过程中,输出的数据是8位或16位,而读入的状态位是1位,如图所示。设状态口的地址为PORT_S2,输出数据口的地址为PORT_OUT,传送数据的总字节数为COUNT_2,若输出的数据放在2000H开始的一段存储区中,则查询式输出数据的程序段为:MOVBX,2000H;初始化地址指针MOVCX,COUNT_2;字节数READ_S2:INAL,PORT_S2;读入状态位TESTAL,80H;数据准备好否?JNZREAD_S2;否,循环检测MOVAL,[BX];从内存缓冲区中取数据OUTPORT_OUT,AL;输出数据INCBX;修改地址指针LOOPREAD_S2;未传送完,继续传送查询方式的特点利用查询方式进行数据输入输出的过程中,CPU不能再做别的事,将大量时间耗费在读取和检测外设状态上,真正用于传送数据的时间很少,这样大大降低了CPU的效率。6.2.3中断方式当CPU需要输入时,若外设的输入数据已存入寄存器;需要输出时,若外设已把上一个数据输出,输出寄存器已空,这时均可由外设向CPU发出中断请求。CPU在接到请求后若条件允许,则暂停(或中断)正在进行的工作而转去对该外设服务,并在服务结束后回到原来被中断的地方继续原来的工作。这种方式能使CPU在没有外设请求时进行原有的工作,有请求时才去处理数据的输入输出,从而提高了CPU的利用率,而且有了中断,就允许CPU与外设(甚至多个外设)同时工作。中断传送方式的接口电路中断方式的特点利用中断方式进行数据传送,不仅大大提高了CPU效率,还能够对外设的请求做出实时响应。尤其是在外设出现故障,利用中断方式可以及时做出处理,避免不必要的损失。6.2.4DMA方式直接存储器存取(DirectMemoryAccess,DMA)方式是通过特殊的硬件电路(DMA控制器)来控制存储器与外设直接进行数据传送。在这种方式下,CPU放弃对总线的管理,而由DMA控制器来控制。由于CPU只启动而不干预数据传送过程,整个过程只由硬件完成不需要软件介入,所以这种方式的数据传输率很高。DMA的工作过程当外设准备好,可以进行DMA传送时,外设向DMA控制器发出DMA传送请求信号(DRQ)。DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线。CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个方面:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权;另一方面,CPU向DMA控制器发出“总线响应”信号(HLDA)。DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK。DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送。数据传送完成后,DMA控制器撤销对CPU的请求信号,CPU撤销保持响应信号并恢复对总线的控制。6.3中断技术6.3.1中断概述6.3.2中断的处理过程6.3.38086/8088的中断6.3.1中断概述1.中断源及其分类2.中断系统及其功能3.中断优先级的确定1.中断源及其分类引起中断的事件就称为中断源。中断源可分为两大类:一类是来自CPU内部,称为内部中断源;另一类来自于CPU外部,称为外部中断源。内部中断源主要包括:CPU执行指令时产生的异常、特殊操作引起的异常以及由程序员安排在程序中的INTn软件中断指令。外部中断源主要包括:首先是I/O设备,如键盘、打印机等;其次是实时时钟,如定时器时间到等;第三类是故障源,如电源掉电、硬件出错等。对内部中断,中断的控制完全是在CPU内部实现的。对于外部中断,则是利用CPU的两条中断输入信号线INTR和NMI来告诉CPU已发生了中断事件。2.中断系统及其功能实现中断响应及返回实现优先权排队高级中断源能中断低级的中断处理中断的简单过程示意图中断嵌套过程示意图3.中断优先级的确定当系统具有多个中断源时,由于中断产生的随机性,就有可能在某一时刻有两个以上的中断源同时发出中断请求,而CPU往往只有一条中断请求线,并且任一时刻只能响应并处理一个中断,这就要求CPU能识别出是哪些中断源申请了中断并找出优先级最高的中断源并响应之,在其处理完后,再响应级别较低的中断源的请求。要判别和确定各个中断源的中断优先权可以用软件和硬件两种方法。1)软件确定中断优先权在软件查询方式中询问的次序,即是优先权的次序。它实现简单,调整优先权次序方便,但在中断源较多的情况下,由询问转至相应的服务程序的入口时间长。2)硬件优先权排队电路链式优先权排队电路2)硬件优先权排队电路(续)优先权编码电路6.3.2中断的处理过程1.中断请求2.中断响应3.中断处理1.中断请求外设需要CPU服务时,首先要发出一个有效的中断请求信号送到CPU的中断输入端。中断请求信号分为边沿触发和电平触发。一般来说,CPU能够即时予以响应的中断可以采用边沿触发,而不能即时响应的中断则应采用电平触发,否则中断请求信号就会丢失。8088/8086CPU的NMI为边沿触发,而INTR为电平触发。为了保证产生的中
本文标题:输入输出与中断
链接地址:https://www.777doc.com/doc-3982561 .html