第六章输入/输出接口技术第六章输入/输出和中断技术第十四讲6.1输入/输出接口基本概念6.2主机与外设间数据传送控制方式6.3中断技术第六章输入/输出接口技术6.1输入/输出接口基本概念一个简单的微机系统需要CPU、存储器、基本的输入/输出系统以及将它们连接在一起的各种信号线和接口电路。微机与外界交换信息称为输入或输出,凡是受计算机控制并能与计算机交换信息的设备称为输入/输出设备(I/O设备),或称为外设。外设不能直接与微机相联,需通过接口电路协调它们之间的工作。接口是系统中一个部件和另一个部件的相互连接。接口电路的作用是把计算机输出的信息变成外设能够识别的信息,把外设输入的信息转换成计算机所能接受的信息。返回本章首页第六章输入/输出接口技术I/O接口的功能:(1)I/O地址译码与设备选择。(2)信息的输入输出。(3)命令、数据和状态的缓冲与锁存。(4)信息转换。为了完成上述功能,CPU与I/O接口进行通信实际上是通过I/O接口内部的一组寄存器来实现的,这些寄存器统称为I/O端口:第六章输入/输出接口技术一般接口有一组输入/输出端口寄存器:数据端口寄存器、状态端口寄存器、控制端口寄存器。数据端口寄存器:为输入/输出CPU和存储器的数据提供缓冲。对应传送的是数据信息,其可以是:数字量、模拟量、开关量等。状态端口寄存器:保存外设和接口状态信息,供CPU查询。对应传送的是状态信息,如:忙、就绪、满、空等。控制端口寄存器:保存CPU发出的命令,以控制接口和外设所执行的动作。对应传送的是控制信息,如:控制外设启动和停止等。第六章输入/输出接口技术所有与外设的信息交换都是通过I/O端口进行的,目前有通用的可编程接口电路(即可编程接口芯片)。一、输入/输出(I/O)端口寻址方式在微机中,CPU与存储器、I/O设备间通过数据总线交换信息,如何区分现在访问的是I/O设备还是存储器?即对外设的寻址问题。目前主要有两种方式:外设与存储器独立编址;外设与存储器统一编址。第六章输入/输出接口技术又称专用I/O指令寻址方式,I/O端口地址与存储器地址是分开的。CPU对端口寄存器的访问通过IN和OUT指令完成,并有直接寻址方式和间接寻址方式两种。它们寻址空间不同。直接寻址:INAL,PORT;端口PORT的一个;字节送AL。INAX,PORT;PORT和PORT+1;连续两个端口16位数据送AX,其;中PORT口数据给AL,PORT+1;口数据给AH。1、外设与存储器独立编址第六章输入/输出接口技术OUTPORT,ALOUTPORT,AX直接寻址方式端口地址号的范围是00H~FFH。间接寻址:MOVDX,PORTOUTDX,AL;(PORT)ALINAX,DX;AX(PORT,PORT+1)间接寻址方式端口地址号的范围是0000H~FFFFH。M/IO=0(8086):低8位(16位)地址作为端口地址指向I/O端口;M/IO=0(8088);读写控制信号RD和WR控制I/O设备和存储器的读和写操作。第六章输入/输出接口技术8086/8088系列构成的微机系统均采用此寻址方式。且用专用的I/O指令。二、外设与存储器统一编址又称存储器映象寻址。此时每个I/O端口看作存储器中的一个单元,并赋以存储器地址。当CPU要访问I/O端口时,如同访问存储器一样,所有访问存储器的指令同样适合于I/O端口,通常把存储器中最后一小部分地址分配给各个I/O接口。优点:简化指令系统设计,可使用全部存储器指令。缺点:减少一定量的内存容量,数据存取时间长(MOV需20个以上时钟周期,专用I/O指令10个时钟周期。第六章输入/输出接口技术(a)存储器映射方式示意图(b)I/O端口独立编址方式示意图图6-1I/O端口独立编址方式和存储器映射方式的示意图I/O空间0000HFFFFH00000H内存空间FFFFFH1M00000H供I/O接口使用内存空间FFFFFH第六章输入/输出接口技术6.2主机与外设间数据传送控制方式微机系统中主机与外设传送数据控制方式:一、程序传送控制方式二、中断传送方式三、直接存储器存取(DMA)传送方式第六章输入/输出接口技术一、程序传送控制方式是指完全靠程序来控制信息在CPU与I/O设备之间的传送,又分为:无条件(同步)传送方式、条件(查询)传送方式。1、无条件传送指外设已准备好,而又不必检查它们的状态情况下,可直接采用输入/输出指令同外设传送数据。是最简单的一种,所需硬软件较少,但必须已知外设已准备好发送数据或能接收数据才能使用,否则会出错。很少使用。第六章输入/输出接口技术2、条件传送也称查询传送或异步传送方式。CPU在传送前,利用程序不断询问外设的状态,若外设准备好,CPU就立即与外设进行数据交换;若没有准备好,则CPU就处于循环查询状态,直到外设准备好为止。查询输入假设状态寄存器,用Status_port表示其地址;数据寄存器,用Data_port表示其地址;设状态口最高位为1表示数据准备好,为0表示数据没准备好。第六章输入/输出接口技术查询输入流程图读状态信息准备好?输入数据NY第六章输入/输出接口技术查询工作方式连接示意图CPU接口外设系统总线状态数据控制第六章输入/输出接口技术AGAIN:INAL,Status_portAND80H;测状态口最高位JZAGAININAL,Data_port第六章输入/输出接口技术查询输出假设状态寄存器,用Status_port表示其地址;数据寄存器,用Data_port表示其地址;设状态口最高位为1表示输出设备忙,为0表示输出设备空闲。第六章输入/输出接口技术查询输出流程图读状态信息Busy?输出数据NY准备输出数据第六章输入/输出接口技术AGAIN:INAL,Status_port;读状态信息TESTAL,80HJNZAGAIN;最高位=1时,忙MOVAL,STORE;最高位=0时,闲OUTData_port,AL第六章输入/输出接口技术二、中断传送方式中断是外设(或其它中断源)中止CPU当前正在执行的程序,转向该外设服务的程序,即完成外设与CPU间传送一次数据,一旦服务结束,又返回主程序继续执行。这样,在外设处理数据期间,CPU同时可以处理其它事务,外设处理完时主动向CPU提出服务请求,而CPU在每条指令执行的结尾阶段均检查是否有中断请求(这种检查由硬件完成,故不占CPU时间)。第六章输入/输出接口技术返回本节入口主程序中断服务程序中断源断点图6-8中断过程中断过程第六章输入/输出接口技术三、直接存储器存取(DMA)传送方式数据传送执行的时间小于完成中断过程所需时间;大量数据在高速外设与存储器之间传送—采用DMA方式。DMA方式是利用专门的硬件电路,让外设接口可直接与内存进行高速的大批量数据传送,而不经过CPU,这专门硬件就是DMA控制器—DMAC。目前有可编程大规模集成电路芯片:Intel8237-5,Intel8257/8257-5,MotorolaMC6844等。1、DMA的工作过程第六章输入/输出接口技术接口提出传送请求DMACDMACCPU发总线请求CPUDMAC发总线允许发送存储器地址传送数据传送结束?DMAC撤消DMA请求,结束DMA传送修改地址指针和字节计数器的值NY第六章输入/输出接口技术2、DMA操作的基本方法周期挪用:是当CPU不访问存储器的那些周期“挪用”来进行DMA操作。DMAC不用通知CPU有它来控制总线;DMAC必须能识别出可挪用的周期,此电路较复杂;传送的数据不连续不规则。周期扩展:使用专门时钟发生器/驱动电路,当需要DMA操作时,DMAC发请求信号给时钟电路,使供给CPU的时钟周期加宽,而DMA和存储器的时钟周期不变。这加宽的时钟周期用来DMA操作。DMA操作结束后,CPU恢复正常时钟继续操作。使CPU处理速度降低;CPU时钟加宽有限度,从而每次传送只能是一个字节。第六章输入/输出接口技术CPU停机方式是最简单、最常用的DMA操作方法。DMAC向CPU发出请求信号进行DMA传送,CPU在当前总线周期结束后,下一个总线周期开始让出总线控制权由DMA来控制,传送完后CPU收回总线控制权,继续执行被中断的程序。DMA操作时,CPU空闲,降低了CPU的利用率;影响CPU对中断响应和动态RAM的刷新。使用时应注意。3、DMA传送方式单字节传送方式:每次DMA请求只传一个字节数据。字节组传送方式:每次DMA请求传送一个数据块。第六章输入/输出接口技术6.3中断技术6.3.1中断系统基本概念在微机中,中断是指当CPU执行程序过程中,由于随机的事件(包括CPU内部的和CPU外部的事件)引起CPU暂时停止正在执行的程序,而转去执行一个用于处理该事件的程序----称为中断服务程序(或中断处理程序),中断处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。第六章输入/输出接口技术通常在计算机的有关部件内,如CPU、外设接口等,添加一些硬件逻辑,构成中断控制逻辑,还在指令系统中,设有一些管理中断的指令,以实现中断功能,此类软硬件的配置称为中断系统。主要实现如下功能:1、分时操作2、故障处理3、实时处理第六章输入/输出接口技术引起中断的原因,或发出中断请求的来源称为中断源。1.外部设备请求中断:是指系统中外设所发生的中断请求,如键盘、打印机、A/D转换器。2.实时请求中断:实时中断用于实时系统中,在工业控制中经常使用。3.故障请求中断:同机器硬件错误有关的中断系统称谓硬件故障中断。在计算机一些关键部位设有故障自动检测装置。如:运算出错、存储器读写出错、外设故障、电源掉电报警等。4.程序性中断:与用户程序错误有关的中断,统称为程序性中断。主要是使用户调试程序时,能检测中间结果或寻找错误所在而采用的检查手段。第六章输入/输出接口技术6.3.2中断的一般处理过程这里以外设中断处理过程为例。一个完整的中断处理过程应包括:中断请求、中断排队、中断响应、中断处理、中断返回。一、中断请求中断源向CPU发出中断请求:外设准备好,想信息交换;当前执行程序允许中断请求;CPU有中断允许触发器。第六章输入/输出接口技术二、中断优先级开中断指令STI和关中断指令CLI。CPU复位时,自动关中断。CPU响应中断后自动关中断。中断请求是随机的,有时会出现多个中断源同时提出中断请求,响应哪个中断源?安排中断优先级顺序—中断排队。有硬件和软件方法。最紧急和速度最高的设备排在最优先位置上。软件法:软件查询;硬件排队:硬件逻辑电路代替程序查询。第六章输入/输出接口技术中断优先级:当CPU正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求。单级中断处理和多级中断处理:单级中断处理不允许其他设备再中断CPU的程序;多级中断处理允许优先级高的中断打断优先级低的中断服务程序。第六章输入/输出接口技术程序查询识别中断方法YYYNNN保护现场检查IRQ1的中断状态是否为“1”检查IRQ2的中断状态是否为“1”检查IRQ3的中断状态是否为“1”IRQ1的服务程序IRQ2的服务程序IRQ3的服务程序恢复现场中断返回中断处理入口第六章输入/输出接口技术I/ODATABUS中断请求IRQSYNPOL1号设备接口2号设备接口n号设备接口CPU硬件排队第六章输入/输出接口技术三、中断响应CPU在执行每条指令的最后一个机器周期的最后一个时钟周期采样INTR端,若发现有中断请求,下一机器周期不再进入取指周期,而进入中断响应周期,CPU发出中断响应信号INTA,外设根据INTA提出中断服务程序入口地址(或部分地址),CPU转向该中断服务程序执行。第六章输入/输出接口技术中断响应的条件1)设置中断请求触发器;2)设置中断屏蔽触发器,当此触发器为“1”或“0”时,允许外设的中断请求被送出至CPU;3)CPU处于开中断状态;4)CPU在执行完现行指令后响应中断。第六章输入/输出接口技术中断响应的过程1)发