您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 72第6章输入输出和中断
1第六章:输入/输出和中断目标:了解接口的一般结构;掌握CPU与外设数据传送方式;了解中断的基本概念数量掌握8086/8088的中断系统了解8259A和8237•6.1外设接口的一般结构•6.2CPU与外设交换数据的方式•6.3中断•6.48086/8088的中断系统•6.58259A可编程中断控制器•6.68237DMA控制器26.1外设接口的一般结构CPU为了能区分开外设接口中的各个寄存器(I/O端口),对每个寄存器都有一个I/O地址编号——称I/O端口地址。相应地,数据寄存器又称数据口;状态寄存器又称状态口;控制寄存器又称控制口。数据寄存器状态寄存器控制寄存器地址译码数据缓冲控制电路外设ABDBCBCPU图6-1一个简单的外设接口I/O接口36.1.1数据信息数据信息的种类——三类1、数字量—以二进制形式表示的数或以ASCII码表示的数或字符。2、模拟量—连续变化的电量。3、开关量—对应于开关的通断。6.1.2状态信息—用来指示外设的工作状态。例如:某一外设,当其为CPU准备好数据后,I/O口地址2的D0位为1;当数据未准备好时,该位为0。CPU则可:WAIT:INAL,2TESTAL,1JZWAIT;未准备好,CPU继续查询;若准备好,CPU可读入数据6.1.3控制信息CPU写出的数据,用于控制外设的工作方式或设置外设的工作状态。46.2CPU与外设交换数据的方式一、无条件传送方式二、条件传送方式(查询方式)三、中断传送方式四、DMA传送方式(直接存储器存取)56.2.1无条件传送方式(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令完成与外设的数据传送。特点1.适用于外设动作时间固定且已知的情况,在CPU与外设进行数据传送时,外设保证已准备好,如开关,发光二极管等2.软件及接口硬件简单,但要求严格的时序配合。缺点:只适用于简单外设,适应范围较窄6无条件传送举例电路的功能:可对8个模拟输入分别进行采样,结果存入内存缓冲区域。各器件说明:U1—4位十进制数字电压表U2、U3、U4—8位I/O端口:U2、U3读入数据,U4输出控制信号U5—继电器U5b线圈,U5a触点工作原理:依次控制P0~P7导通,从而使得K0~K7依次闭合,取得8个输入模拟量,再经U1数字电压表做A/D转换后,输入端口10H,11H808811H10H8位8位K7K1K0输入数据1模拟量88IO/M.RD.11IO/M.RD.10U1U3U220HIO/M.RD.20缓冲寄存器功率放大器U5a…P7P1P0…U5bU4888876.2.1无条件传送方式(同步传送方式)START:MOVDX,0100H;用意是DH=01,DL=00LEABX,DSTOR;BX指向数据区开始(用于存放A/D结果)XORAL,AL;AL=0,CF=0AGAIN:MOVAL,DLOUT20H,AL;P0—P7全断电CALLNEARDELAY1;调延时子程序,等待继电器触点动作MOVAL,DHOUT20H,AL;P0吸合(设P0对应为20H口的D0位)CALLNEARDELAY2;等待A/D完成INAL,11HMOVAH,ALINAL,10HMOV[BX],AXINCBXINCBXRCLDH,1;DH左移一位,为下一触点闭合作准备JNCAGAIN;CF=0,未完,去AGAIN,继续进行下一路A/D;直到CF=1,表示上次已将P7接通过,A/D进行一遍86.2.2查询传送方式—又称异步传送方式实现方法:传送数据前先检查外设状态,在状态满足条件时才可传送数据,否则等待。缺点:CPU花大量的时间进行状态查询,CPU效率较低NY从状态端口读入状态信息从数据端口传送一个数据外设准备好?96.2.2查询传送方式举例例:以查询方式工作的数据采集系统(P181图6—3)CPU32A/D转换器41个模拟量启动READYD0U1U3U2U4U5DBD4D2D1D0IN0IN7…数据电路的功能:完成8个模拟输入信号的采集。工作过程:①向口地址4写入一个字节,其D2—D0加到U5上,将IN0—IN7之一送到A/D转换器的入口。同时由D4位启动A/D转换器工作。②A/D是否已转换完成,可通过口地址2读入判断。③READY=1则可从端口3读入A/D转换结果,存入指定区域。10查询传送方式——又称异步传送方式START:MOVDL,0F8HLEADI,DSTOR;存A/D结果的数据区指针AGAIN:MOVAL,DLANDAL,0EFH;使D4=0OUT4,AL;停止A/DCALLDELAY;等待停止A/D动作的完成MOVAL,DLOUT4,AL;接通IN0,启动A/DPOLL:INAL,2SHRAL,1;将AL的D0位移入CF中,以便判断JNCPOLL;即若READY不为1,则循环等待INAL,3;直到A/D完成,将A/D结果读入AL中STOSB;存入指定内存区域INCDL;进行下一路JNEAGAIN116.2.3中断传送方式实现方法:1.在程序中安排好某一时刻启动外设,然后CPU继续执行其主程序2.当外设准备好,向CPU发出中断请求3.CPU在满足响应中断的条件下,发出中断响应信号;4.CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送;5.CPU从中断服务程序返回,继续执行被中断的程序优点:大大提高CPU的利用率,实时性好,速度快,并且能够实现对特殊事件的实时响应。缺点:程序编制较为复杂。126.2.4DMA传输前面三种I/O方式都需要CPU作为中介:外设←→CPU←→内存缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)解决:DMA传输DMA实现方法:1.由专用接口芯片DMA控制器(称DMAC)控制传送过程,2.当外设需传送数据时,通过DMAC向CPU发出总线请求;3.CPU发出总线响应信号,释放总线;4.DMAC接管总线,控制外设、内存之间直接数据传送,内存/外设的地址和读写控制信号均由DMAC提供。DMA传送方式的特点1.外设和内存之间,直接进行数据传送。传送效率高,可以达到很高的传输速率(可达几MB/秒)。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。2.电路结构复杂,硬件开销较大。13能接收外设的请求,向CPU发出总线请求信号HOLD(高电平)。当CPU向DMA发出响应信号HLDA(高电平)以后,DMA能接管对总线的控制,进入DMA方式。能寻址存储器,即能输出地址信息和修改地址。能向存储器或外设发读/写控制信号。能决定传送字节数,并判断DMA传送是否结束。DMA过程结束,能向CPU发出DMA结束信号,HOLD变低,将总线控制权还给CPU,CPU恢复正常工作。DMA控制器的基本功能146.3中断6.3.1概述1.什么是中断?中断请求1INTR中断请求2INTR中断服务程序1中断服务程序2主程序IRETIRET断点中断源使用堆栈保护断点2.引起中断的事件称中断源I/O设备、故障源、软件中断3.中断应具有的功能•能实现中断响应、中断服务和中断返回•能实现中断优先级排队•能实现中断嵌套中断有关的指令:CLI、STIIRETINTn、INTO156.3.2中断处理过程与中断管理1.中断处理过程一个完整的中断处理过程包括5个步骤:1)中断请求中断请求信号:边沿请求(NMI),电平请求(INTR)2)中断优先级的判别3)中断响应保护断点:SP←SP-2,[SS:SP]←FRSP←SP-2,[SS:SP]←CSSP←SP-2,[SS:SP]←IP关中断:IF←0TF←0形成中断服务程序的入口地址4)中断处理—执行中断服务程序5)中断返回开中断、IRET(完成从栈中弹出IP、CS值以及FR值)。162.中断优先权1.软件查询方式(书P186图6-5)顺序查询中断请求,先查询的先服务(即先查询的优先级别高)特点:电路简单,CPU效率低(查询时间)。2.硬件优先权排队电路(1)链式优先级排队电路(一种简单的硬件方式):链式优先权电路如下:INTAinCPUINTAINTR外设1外设2外设接口1菊花链逻辑电路外设接口2外设3外设接口3≥1菊花链逻辑电路菊花链逻辑电路┇IREQIREQIREQ中断确认INTAinINTAin中断确认中断确认172.中断优先权(2)专用硬件方式—可编程中断控制器8259AINTAinIREQINTR&1≥1INTAoutDB三态门中断向量码E外设接口中断确认菊花链逻辑电路菊花链逻辑电路186.48086/8088的中断系统6.4.18086/8088的中断结构1.中断分类:8086/8088可以处理256个中断源。内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断INTR——可屏蔽中断请求,高电平有效,受IF标志的控制。NMI——非屏蔽中断请求,上升沿有效。类型号为2中断请求1INTR中断请求2INTR中断服务程序1中断服务程序2主程序IRETIRET断点中断源使用堆栈保护断点192.中断向量表(矢量表)8086/8088CPU将00000H—003FFH的1KB内存空间用作中断向量表,顺序存放中断类型码0~255,共256个中断的的中断向量(入口地址)。每个中断向量占用4个连续的字节存放。偏移地址在前,段地址在后。00000H00004H00008H0000CH00010H00014H……0007FH00080H……003FCH类型0中断入口(除法出错)类型1中断入口(单步中断)类型2中断入口(NMI)类型3中断入口(断点中断)类型4中断入口(溢出中断)类型5中断入口(系统备用)类型31中断入口类型32中断入口(供用户使用)类型255中断入口中断向量地址指针=中断类型码n×4假设INT20H的中断服务子程序入口地址为4030:2010H,则中断向量表中:20H的中断向量应存放在0000:0080H开始的4个单元中,所以:0000:0080H中为10H;0000:0081H中为20H;0000:0082H中为30H;0000:0083H中为40H。图6-8中断向量表206.4.2内部中断—软中断1.内部中断的类型1)0号中断——除法出错中断2)1号中断——单步中断3)3号中断——断点中断(2号中断为NMI占用)4)4号中断——溢出中断INTO5)INTn指令中断CPU执行该指令即产生类型号为n的中断。(n可取0—255)2.8086/8088CPU对于内部中断的处理过程专用中断:中断类型码是自动形成的。对于INTn指令,中断类型码n是在指令代码中。CPU取得中断类型码后,CPU的处理过程如下:①将类型码乘4作为向量表指针。②FR入栈。③IF清0,TF清0。④保存断点,CS入栈,IP入栈。⑤从中断向量表中取中断矢量送入IP和CS。⑥按CS:IP执行中断服务程序。中断服务子程序的最后一条指令是IRET,从栈中弹出IP,CS以及FR。216.4.3外部中断—硬件中断1.外部中断的响应及中断响应周期时序非屏蔽中断请求:自动生成中断类型号2,之后处理过程同内部中断。可屏蔽中断请求:INTR有效,且IF=1,进入可屏蔽中断响应周期,CPU从DB获得中断类型码。8086/8088可屏蔽中断响应周期时序如下图:第二个中断响应周期向量类型INTACLKAD7~AD0T1T2T3T4第一个中断响应周期T1T2T3T4第一个INTA周期:接口芯片把中断类型号准备好;同时ISRi=1,IRRi=0。第二个INTA周期:接口芯片将中断类型号送至数据总线上;CPU从数据总线获取中断类型号。222.外部中断处理过程CPU对于一个可屏蔽中断请求的响应要执行7个总线周期:①执行第一个INTA周期。②执行第二个INTA周期,CPU得到类型码后将其乘4,形成中断向量表指针③执行一个写存储器总线周期,将FR压栈。之后CPU将IF置0,TF置0。④执行一个写存储器总线周期,将CS压栈。⑤执行一个写存储器总线周期,将IP压栈。⑥执行一个读存
本文标题:72第6章输入输出和中断
链接地址:https://www.777doc.com/doc-3486894 .html