您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第五章输入输出和中断介绍
1微机原理与接口技术第五章输入/输出和中断技术25.1输入/输出系统概述一、I/O系统的特点二、I/O接口的基本功能三、I/O端口的编址方法四、I/O端口地址的译码5.2简单接口电路一、接口电路的基本构成二、三态门接口三、锁存器接口四、简单接口应用举例35.3基本输入/输出方式一、无条件传送方式二、查询方式三、中断方式四、直接存储器存取(DMA)方式5.4中断技术一、中断基本概念二、中断处理的一般过程三、8086/8088的中断系统5.58259A可编程中断控制器45.58259A可编程中断控制器一、8259A的结构二、8259A的工作过程二、8259A的工作方式二、8259A的工作初始化编程五、中断服务程序设计概述5I/O系统通常包括I/O设备,I/O接口和I/O软件一、I/O系统的特点复杂性:输入输出设备的复杂性;处理器本身和操作系统产生的一系列随机事件也要调用输入/输出系统进行处理,比如中断等异步性:外设与CPU时序的不一致实时性:CPU能为外设提供及时的服务与设备无关性:CPU与外设之间不直接互连,而是通过I/O接口互连。CPU通过通过软件和IO接口管理各种外设5.1输入/输出系统概述61、I/O接口要解决的问题速度匹配问题信号电平和驱动能力问题信号形式匹配问题信息格式问题时序匹配问题2、I/O接口功能I/O地址译码和设备选择信息的输入输出命令、数据和状态的缓冲与锁存信息格式转换二、I/O接口的基本功能三、I/O端口的编址方法1、I/O端口独立编址优点:I/O端口地址不占用存储器空间,有专门的I/O指令,使程序清晰易读且控制和译码电路简单缺点:访问端口的手段相对较少2、I/O端口与内存单元统一编址(存储器映像方式)优点:端口寻址手段丰富,有利于输入输出程序设计缺点:在程序中不易分清存储器和端口;减少了内存可用的地址范围788088CPU使用了地址总线的低16位(A0~A15)寻址端口,译码方法与内存类似当CPU工作于最大模式时,对存储器的读写要求#MEMR和#MEMW有效,对I/O端口的读写要求#IOR和#IOW有效四、I/O端口地址的译码5.2简单接口电路一、接口电路的基本构成9CPUI/O接口电路外设数据信号地址信号控制信号I/O接口的典型结构数据信号控制信号状态信号二、三态门接口74LS244由8个三态门构成。两个控制端#E1和#E2分别控制4个三态门。控制端有效时(低电平)对应的三态门导通,否则三态门呈高阻态。74LS244通常用作输入接口和输出驱动10I0D0~D7I1I2I3#E1I4#E2I5I6I7&A2A3A4A5A6A7A8A9A151A10A11A12A13A141#IORD0~D7+5VK0K1K2K3K4K5K6K774LS244地址空间:83FCH~83FFH例如:编写程序段,若开关全部闭合,程序转向NXT1,否则转向NXT2MOVDX,83FCHINAL,DXANDAL,0FFHJZNXT1JMPNXT2三、锁存器接口三态门器件不具备数据的保存(或称锁存)能力,而很多信源都要求能够将信号保持住,直至被CPU读走,所以它一般只用作输入接口,而不能直接用作输出接口。数据输出接口通常采用具有信息存储能力的器件来实现,比如D触发器。(74LS273:8路锁存器)1213#MRCPDiQi011XX0100174LS273CP:时钟输入D0~D7:数据输入#MR:复位输入Q0~Q7:寄存器输出真值表14地址空间:0FFFFHD0~D7Q0Q1Q2CPQ3Q4Q5Q6Q7&A0A1A2A3A4A5A6A7&A8A9A10A11A12A13A14A151#IOWD0~D774LS273+5V1+5V1例如:编写程序段,使接到Q0和Q6的LED灯亮,其他灭MOVDX,0FFFFHMOVAL,01000001BOUTDX,AL74LS273是二态门输出,因此它无法直接用作输入接口,即它的Qi端绝对不允许直接与系统的数据总线相连。74LS373,74LS374:带有三态输出的锁存器1516#OECPDiQi100XX01高阻0174LS374CP:时钟输入D0~D7:数据输入#OE:输出允许输入Q0~Q7:寄存器输出真值表#OE1774LS374作输出口:0FFF8HD0~D7Q0Q1…CPQ6Q7#OE&A3A4A5A6A7&A8A9A10A11A12A13A14A151#IOWD0~D774LS374A0A1A2174LS374作输入口D0~D7Q0Q1…#OEQ6Q7CP译码电路#IOWD0~D774LS374A0~A15外设数据外设提供选通脉冲四、简单接口应用举例1、LED数码管18124567810edcDPbafg39abcdefgDP12345109876共阳极LED数码管2、应用与连接191…111#G2BG#G2ACBAA2A1A0#Y01#IOR#Y1D0~D7Q0Q1Q2CPQ3Q4Q5Q6Q7&A3A4A5A6A71A8A9A10A11A12A13A14A151#IOWD0~D774LS273+5V7406K10k5108D0输入端口地址:F1H输出端口地址:F0H编写程序段,当开关K闭合时,LED数码管显示“0”,当开关K断开时,LED数码管显示“1”,FOREVER:INAL,0F1H;读入开关状态TESTAL,1;判断开关状态MOVAL,3FH;显示0JZDISPMOVAL,6;显示1DISP:OUT0F0H,AL;输出显示JMPFOREVER205.3基本输入/输出方式一、无条件传送方式用于LED数码管,按键或按钮等简单设备,它们一直处于“就绪”状态。即对输入设备,已准备好送数据给CPU,对输出设备,已准备好从CPU接收数据。例如上节的内容2122在实际应用时,大部分外设并不总是处于“准备好”状态。对于这类外设,CPU在数据传输前必须要先查询一下外设的状态:若外设准备好才传输数据,否则CPU要等待,直到外设准备好。二、查询方式取外设状态传送数据外设准备就绪否?传送完否?YNYN开始查询传输流程图三、中断方式无条件传送和查询传送都由CPU管理外设,在管理过程中CPU不能做别的事,这对具有多外设且实时性要求较强的计算机控制系统是不合适的。中断:CPU不主动介入外设的数据传输工作,而是由外设在需要进行数据传送时向CPU发出中断请求,CPU在接到请求后若条件允许,则暂停正在进行的工作而转去对该外设服务,并在服务结束后回到原来被中断的地方继续原来的工作。中断传送可以大大提高CPU的效率,并对外设实时响应2324中断传送的缺点:8088CPU传输一个字节通常需要约几十到几百us与其他两种方式一样,中断的数据传送过程需要CPU执行程序来实现,即首先将数据从内存(或外设)读到累加器,在写入到接口(或内存)中。(因此前面三种方式被统称为程序控制输入/输出方式。)采用中断方式每进行一次数据传输,都需要保护断点、保护现场等修改内存地址、判断数据块是否传输完毕这种速度对于一些高速外设及批量数据交换(比如磁盘与内存的数据交换)不能满足要求,而DMA传送可以满足四、直接存储器存取(DMA)方式25DMA传送通过特殊的硬件电路来控制存储器与外设直接进行数据交换。此时,CPU放弃对总线的管理,而由DMA控制器(DMAC)实施对总线的管理。存储器CPUDMA控制器外设HLDADMAACKDRQHOLDDMA传送示意图③①④②DMA传送过程:1)若外设有传送要求,其向DMAC发出DMA传送请求信号DRQ2)DMAC收到请求后,向CPU发出总线请求信号HOLD,表示希望占用总线26存储器CPUDMA控制器外设HLDADACKDMAREQHOLDDMA传送示意图③①④②3)CPU在完成当前总线周期后立即对HOLD信号响应:一方面CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,放弃对总线的控制权;另一方面,CPU向DMAC发出总线响应信号HLDA4)DMAC收到HLDA后接管对总线的控制,并向外设发出DMA响应信号DACK275)DMAC送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送。比如,DMAC向外设送I/O地址、#IOR和AEN信号,同时向存储器送存储单元地址和#MEMW信号,即可从外设向内存传送一个字节6)DMAC自动修改地址和字节计数器,并据此判断任务是否完成,如果传送尚未完成,它会重复5)继续传送;若传送完成,它将使HOLD信号无效,通知传送结束。CPU检测到HOLD失效后,紧接着撤销HDLA信号,并在下一时钟周期重新开始控制总线,继续执行原来的程序DMA传送注意事项DMA传送前,CPU必须告诉DMAC传送是在哪两个部件之间进行的,以及传送的内存首地址以及字节数是多少在DMA传送时,DMAC只负责送出地址及控制信号,而数据传送是直接在接口和内存间进行的,并不经过DMAC。对于内存与内存间的DMA传送,是先用一个DMA的存储器读周期将数据由内存读出,放在DMAC的内部数据暂存器中,再利用一个DMA的存储器写周期将该数据写到内存的另一区域285.4中断技术一、中断基本概念中断:CPU在程序运行过程中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序。中断源:引起中断的事件或原因。包括内部中断源:除0,溢出,断点,单步操作,存储器越界,缺页,INTn指令等。内部中断的控制完全在CPU内部实现外部中断源:键盘,鼠标、打印机,磁盘,数据采集装置,网络,实时钟,故障(掉电、硬件错,存储器奇偶校验错)等。外部中断利用CPU的INTR(可屏蔽中断请求线)和NMI(不可屏蔽中断请求线)来告诉CPU已发生了中断请求29一个完整的中断处理过程应包括:中断请求中断判优中断响应中断服务中断返回中断服务程序原程序中断请求二、中断处理的一般过程1、中断请求外设需要CPU服务时,首先要发出一个有效的中断请求信号送到CPU的中断输入端。中断请求信号包括:沿触发:CPU根据中断请求端有无上升沿或下降沿来决定中断请求信号是否有效。一般用于CPU能及时响应的中断请求,比如8086/8088CPU的NMI电平触发:CPU根据中断请求端有无稳定的电平信号(高电平或低电平)来决定中断请求信号是否有效。一般用于CPU不能及时响应的中断请求,比如8086/8088CPU的INTR312、中断判优当有多个中断请求时,CPU识别其优先权并按优先权处理,同时实现中断嵌套功能。1)软件判优并行接口2)硬件判优中断控制器(见6.5)菊花链法菊花链法菊花链法当链上任何一个接口有中断请求时,都会产生中断请求信号送往CPU的INTR引脚。如果CPU允许中断,则发出中断响应信号,该信号在菊花链中传递。如果某接口中无中断请求信号,则信号可以通过该接口的菊花链逻辑电路原封不动地向后传递;如果该接口中有中断请求信号,则该接口中的逻辑电路就使得信号不再向后传递。这样,CPU发出的信号可以从最靠近CPU的接口开始沿着菊花链逐级向后传递,直至被一个有中断请求信号的接口封锁为止。显然,在有多个中断请求同时发生时,最靠近CPU的接口最先得到中断响应,所以它的优先权最高,离CPU越远的接口,其优先权就越低。菊花链法当某接口有中断请求且收到了CPU的中断响应信号,该接口一方面清除它的中断请求,同时把它的中断类型号送上数据总线。CPU接收到该中断类型号就执行与它对应的中断服务程序。因优先权较低申请了中断而未接收到的接口将保持中断请求信号。CPU处理完高一级的中断,开中断返回后,再来响应这个接口的中断请求。353、中断响应对可屏蔽中断请求,CPU向中断源发出中断响应信号,并同时完成下面的工作;对不可屏蔽中断请求,CPU直接完成下面的工作保护硬件现场,即将FLAGS入栈保护断点,即将CS和IP的值入栈获得并跳转至中断服务程序入口364、中断服务保护软件现场:把中断服务程序中要用到的寄存器的内容入栈保持①开中断:
本文标题:第五章输入输出和中断介绍
链接地址:https://www.777doc.com/doc-3239594 .html