第6章 输入输出与中断

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章输入输出与中断输入/输出接口概述6.1CPU与外设之间的数据传送方式6.2中断技术6.3中断控制器8259A6.46.1输入/输出接口概述在CPU与外部设备进行信息交换时至少有两方面的困难:CPU和外设的速度差异非常大CPU不能和外设直接通过引脚连接CPU和外设之间必须要设置输入/输出接口(I/O接口),作为CPU与外设进行信息交换的桥梁。CPU接口电路I/O设备输入/输出接口的功能6.1.1CPU与输入/输出接口之间的信息6.1.2输入/输出接口的编址方式6.1.36.1.1输入/输出接口的功能I/O地址译码与设备选择(1)信息的输入/输出(2)命令、数据和状态的缓冲与锁存(3)信息转换(4)(1)I/O地址译码与设备选择所有外设都通过I/O接口挂接在系统总线上,在同一时刻,总线只允许一个外设与CPU进行数据传送。(2)信息的输入/输出通过I/O接口,CPU可以从外部设备输入各种信息,也可将处理结果输出到外设;CPU可以通过向I/O接口写入命令字来控制I/O接口的工作,还可以随时监测与管理I/O接口和外设的工作状态;I/O接口还可以通过接口向CPU发出中断请求。(3)命令、数据和状态的缓冲与锁存因为CPU与外设之间的时序和速度差异很大,为了能够确保计算机和外设之间可靠地进行信息传送,要求接口电路应具有信息缓冲能力。接口不仅应缓存CPU送给外设的信息,也要缓存外设送给CPU的信息。以实现CPU与外设之间信息交换的同步。(4)信息转换I/O接口还要实现信息格式变换、电平转换、码制转换、传送管理以及联络控制等功能。6.1.2CPU与输入/输出接口之间的信息数据信息1状态信息2控制信息3注意★1.数据信息①数字量:以二进制形式表示的数据信息。②模拟量:当计算机处理现场连续变化的非电量的物理量时,需通过传感器把这些非电量的物理量转化为连续变化的模拟电压或电流—模拟量。模拟量再经过A/D转换器转换为数字量,才能输入计算机处理。③开关量:是指可用2个状态表示的信息,如开关的开和闭、电机的起和停等。一个开关量只需要一位二进制数表示。2.状态信息表示外设当前所处的状态:输入时,输入设备是否准备好(READY)输出时,输出设备是否处于忙(BUSY)3.控制信息由CPU发出、用于控制I/O接口的工作方式以及外设的启动和停止等信息。注意数据信息、状态信息和控制信息是属于不同性质的信息,需要分别传送。I/O端口包括:数据端口、状态端口和控制端口。CPU通过数据端口从外设读入数据或向外设输出数据从状态端口读入设备的当前状态通过控制端口向外设发出控制命令一个I/O接口可能仅包含其中的一类或两类端口,当然也可能包含全部三类端口。6.1.3输入/输出端口的编址方式在微型计算机系统中,CPU对外设的访问实际上是对外设接口电路中相应的I/O端口进行访问。I/O端口的编址通常有两种不同的方式:统一编址1独立编址21.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与外设之间的数据传送方式无条件方式6.2.1查询方式6.2.2中断方式6.2.3DMA方式6.2.46.2.1无条件方式无条件传送方式主要用于外部控制过程的各种动作是固定的、且是已知的,控制的对象是一些简单的、随时“准备好”的外设。也就是说,在这些设备工作时,随时都可以接收CPU输出的数据,或者它们的数据随时都可以被CPU读出。在与这样的外设交换数据的过程中,数据交换与指令的执行是同步的,因此这种方式也称为同步传送方式。优点是程序简单,所需的硬件和软件都比较少,传送速度快,但必须在确信外设已准备好情况下才能使用,否则就会出错。对于诸如开关、发光二极管等这一类简单设备来说,就是采用无条件的传送方式。图6.3图6.4无条件传送的输入方式当CPU从外部设备输入数据时,来自外设的数据已输入至三态缓冲器,CPU执行一条IN指令,将地址信号组成的端口地址送上地址总线,经过译码,选中对应的端口,然后在读信号RD=0期间将数据读入。无条件传送的输出方式当CPU向外部设备输出数据时,CPU只执行一条OUT指令,输出的过程类似,只是必须在写信号有效时将数据写入输出锁存器,由它再把信息通过外设输出。6.2.2查询方式查询方式的工作过程分为:查询式输入查询式输出特点:利用查询方式进行数据输入输出的过程中,CPU将大量时间耗费在读取和检测外设状态上,真正用于传送数据的时间很少,这样大大降低了CPU的效率。查询传送的两个环节⑴查询环节寻址状态端口读取状态寄存器的标志位若不就绪就继续查询,直至就绪⑵传送环节寻址数据端口是输入,通过输入指令从数据端口读入数据是输出,通过输出指令向数据端口输出数据输入状态就绪?数据传送YN1.查询式输入程序段查询式输入程序段在查询输入的过程中,读入的数据是8位或16位,而读入的状态位是1位,如图所示。设状态口的地址为PORTS1,输入数据口的地址为PORT_IN,传送数据的总字节数为COUNT1,则查询式输入数据的程序段为:MOVBX,0;初始化指针MOVCX,COUNT1;字节数MOVDX,PORT_S1READS1:INAL,DX;读入状态位TESTAL,01H;数据准备好否?JZREADS1;否,循环检测MOVDX,PORT_ININAL,DX;已准备好,读入数据MOV[BX],AL;存到内存缓冲区中INCBX;修改地址指针LOOPREADS1;未传送完,继续传送2.查询式输出程序段查询式输出程序段在查询输出的过程中,输出的数据是8位或16位,而读入的状态位是1位,如图所示。设状态口的地址为PORT_S2,输出数据口的地址为PORT_OUT,传送数据的总字节数为COUNT_2,若输出的数据放在2000H开始的一段存储区中,则查询式输出数据的程序段为:MOVBX,2000H;初始化地址指针MOVCX,COUNT_2;字节数MOVDX,PORT_S2READ_S2:INAL,DX;读入状态位TESTAL,80H;外设准备好否?JNZREAD_S2;否,循环检测MOVAL,[BX];从内存缓冲区中取数据MOVDX,PORT_OUTOUTDX,AL;输出数据INCBX;修改地址指针LOOPREAD_S2;未传送完,继续传送6.2.3中断方式当CPU需要输入时,若外设的输入数据已存入寄存器;需要输出时,若外设已把上一个数据输出,输出寄存器已空,这时均可由外设向CPU发出中断请求。CPU在接到请求后若条件允许,则暂停(或中断)正在进行的工作而转去对该外设服务,并在服务结束后回到原来被中断的地方继续原来的工作。特点:利用中断方式进行数据传送,不仅大大提高了CPU效率,还能够对外设的请求做出实时响应。尤其是在外设出现故障,利用中断方式可以及时做出处理,避免不必要的损失。图6.10中断流程中断流程断点主程序中断服务程序中断请求对外设进行处理继续执行返回断点中断传送方式的接口电路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.28086/8088的中断6.3.36.3.1中断概述中断源及其分类1中断系统及其功能2中断优先级的确定31.中断源及其分类引起中断的事件就称为中断源。分为两大类:内部中断源:来自CPU内部,如:CPU执行指令时产生的异常、特殊操作引起的异常以及由程序员安排在程序中的INTn软件中断指令。中断的控制完全是在CPU内部实现的。外部中断源:来自CPU外部,如:如键盘、打印机、定时器时间到、电源掉电、硬件出错等。利用CPU的两条中断输入信号线INTR和NMI来告诉CPU已发生了中断事件。2.中断系统及其功能实现中断响应及返回★实现优先权排队★高级中断源能中断低级的中断处理★1)实现中断响应及返回当某个中断源发出中断请求时,CPU能根据条件决定是否响应该中断请求。若允许响应,则CPU必须在执行完现行指令后:保护断点和现场(即把断点处的断点地址和各寄存器的内容与标志位的状态推入堆栈);转到需要处理的中断服务程序的入口;清除中断请求触发器。当处理完中断服务程序后,再恢复现场和断点地址,使CPU返回断点,继续执行主程序。2)实现优先权排队在实际系统中有多个中断源时,有可能出现两个或两个以上中断源同时提出中断请求的情况,而CPU同一时刻只能接受一个中断申请。这样就必须要设计者事先根据轻重缓急,给每个中断源一个中断优先权。当多个中断源同时发出中断申请时,CPU能找到优先级别最高的中断源,响应它的中断请求。在优先权级别最高的中断源处理了以后,再响应级别较低的中断源。3)高级中断源能中断低级的中断处理当CPU响应某一中断源的请求,在进行中断处理时,若有优先级别更高的中断源发出中断申请,则CPU要能中断正在进行中的中断服务程序,保留这个程序的断点和现场(类似于子程序嵌套),响应高级中断,在高级中断处理完以后,再继续执行被中断的中断服务程序。这就形成了中断嵌套,如图6.12所示。两个中断形成的是两重中断(或两级嵌套),还可以进行多重中断(或多级嵌套)。图6.12中断嵌套过程3.中断优先级的确定当系统具有多个中断源时,就有可能在某一时刻有两个以上的中断源同时发出中断请求,而CPU往往只有一条中断请求线,并且任一时刻只能响应

1 / 112
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功