您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第9章 微型计算机中断技术
第1页第9章微型计算机中断技术9.1中断的基本概念9.28086的中断结构9.3可编程中断控制器8259A第2页9.1中断的基本概念9.1.1中断及中断源9.1.2中断系统的功能9.1.3中断工作过程第3页9.1.1中断及中断源1.中断在CPU正常运行程序时,由于内部事件、外部事件或由程序预先安排的事件所引起的CPU暂时停止正在运行的程序,而转去执行请求CPU服务的内部/外部事件或预先安排事件的服务程序,待服务程序处理完毕后又返回去继续执行被暂停的程序。2.中断源发出中断请求的外部设备或引起中断的内部原因称为中断源。中断源有以下几种:①外设中断源。②故障中断源。③软件中断源。④为调试而设置的中断源。⑤定时时钟。第4页9.1.2中断系统的功能1.中断的实现与返回2.能实现优化级排队3.能实现中断的嵌套主程序中断请求B中断服务程序B中断请求A中断服务程序A中断返回中断返回第5页9.1.3中断工作过程YYNN中断源发出中断请求选择当前优先级最高的中断请求保护现场CPU开放中断中断服务CPU关中断恢复现场中断返回IRET中断请求中断判优中断处理中断返回CPU执行完当前指令有中断请求?允许中断?关中断断点保护获取中断向量取下一条指令中断响应第6页9.28086的中断结构9.2.18086中断类型9.2.2中断向量和中断向量表9.2.38086的中断响应过程第7页9.2.18086中断类型8086采用向量中断,每个中断对应一个中断类型号0~255,共256个。图9.38086中断结构图。8086/8088CPU中断逻辑指令中断断点中断溢出中断除法错单步中断N43012NMI非屏蔽中断请求INTR中断控制器8259A可屏蔽中断请求第8页9.2.18086中断类型1.外部中断:由外部硬件引起的中断,也叫硬件中断,是CPU外部中断请求信号引脚上输入有效的中断请求信号引起的,分为非屏蔽中断和可屏蔽中断两种。①非屏蔽中断NMI。用户不能用软件屏蔽的中断。②可屏蔽中断INTR。8086的INTR中断请求信号来自中断控制器8259A,是电平触发方式,高电平有效。2.内部中断:由CPU内部事件引起的中断,内部中断也称软件中断,包括溢出中断、除法出错中断、单步中断、断点中断和指令设置的中断。第9页IRQ标准应用IRQ标准应用PC/XTNMIRAM、I/O校验错、8087运算错0定时/计数器0通道的时钟4异步通信1(COM1)1键盘中断5硬磁盘控制器2保留(网络适配器)6软磁盘控制器3异步通信2(COM2)7并行打印机(LPT1)PC/ATNMIRAM、I/O校验错、8087运算错0系统时钟(18.2HZ)8日历实时钟1键盘中断9改向INT0AH(以IRQ2出现)2接收从片8259A的中断请求INT10保留3异步通信2(COM2)11保留4异步通信1(COM1)12PS/2鼠标器5并行口2(LPT2)13协处理器6软磁盘控制器14硬磁盘控制器7并行口1(LPT1)15保留表9.1IBMPC/XT和IBMPC/AT系统外部中断第10页2.内部中断①溢出中断:INTO指令,条件:OF=1。②除法出错中断:在执行除法指令时,若除数为0或商大于目的寄存器所能表达的范围,产生一个向量号为0的内部中断。③单步中断:单步中断标志TF为1时,在每条指令执行结束后,产生一个向量号为1的内部中断。单步中断为系统提供了一种方便的调试手段,能够逐条地执行指令。④断点中断:INT3指令中断,执行一个INT3指令,产生一个向量号为3的内部中断。断点中断常用于设置断点,停止正常程序的执行,转去执行某种类型的特殊处理,用于调试程序。⑤指令中断:中断指令INTn。8086的中断优先级由高到低依次为软件中断(单步中断除外)、非屏蔽中断NMI、可屏蔽中断INTR、单步中断。第11页9.2.2中断向量和中断向量表8086/8088CPU采用向量中断,向量中断首先根据中断类型号获得中断向量,中断向量包含中断服务程序的入口地址信息。①中断类型号:每个中断的编号,0~255,共256个中断。②中断向量:中断服务程序的入口地址信息,共4个字节,段地址及偏移地址(CS:IP)。③中断向量表:把系统中所有的中断向量集中起来放到存储器的某一区域内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表。④中断向量地址:中断向量在表中的位置称为中断向量地址。中断向量地址=中断类型号×4第12页表9.28086CPU中断向量表存储器地址(中断向量地址)存储器内容(中断向量)对应中断类型号00000H中断服务程序入口偏移地址低8位000001H中断服务程序入口偏移地址高8位00002H中断服务程序入口段地址低8位00003H中断服务程序入口段地址高8位00004H中断服务程序入口偏移地址低8位100005H中断服务程序入口偏移地址高8位00006H中断服务程序入口段地址低8位00007H中断服务程序入口段地址高8位………………003FCH中断服务程序入口偏移地址低8位255003FDH中断服务程序入口偏移地址高8位003FEH中断服务程序入口段地址低8位003FFH中断服务程序入口段地址高8位第13页例:假设在实地址方式下,内存00140H到00147H中存放的数据如右图所示,求51H号中断的中断服务程序入口地址。解:1、求中断向量地址首地址=51H×4=144H(左移两位方法)末地址=51H×4+3=147H2、确定中断向量,即00144H到00147H单元中的内容。段地址=4540H偏移地址=3430H,所以中断服务程序入口地址为段地址×16+偏移地址=45400H+3430H=48830H第14页9.2.38086的中断响应过程1.内部中断响应过程2.外部中断响应过第15页1.内部中断响应过程①将类型号乘4,计算出中断向量的地址;②CPU的标志寄存器入栈,以保护各个标志位,此操作类似于PUSHF指令。③清除IF和TF标志,屏蔽新的INTR中断和单步中断。④保存断点,即把断点处的IP和CS值压入堆栈,先压入CS值,再压入IP值。⑤根据第一步计算出来的地址从中断向量表中取出中断服务程序的入口地址(段和偏移),分别送至CS和IP中。⑥转入中断服务程序执行。第16页内部中断的特点①内部中断是由指令或程序运行时标志位状态的改变引起的,因此是可以预测的,这有点类似于子程序调用。②内部中断由CPU内部引起,中断类型号的获得与外部无关,CPU不需要执行中断响应周期去获得中断类型号。③除单步中断外,内部中断无法用软件禁止,不受中断允许标志IF的影响。第17页2.外部中断响应过程①非屏蔽中断响应:NMI中断不受IF标志的影响,也不用外部接口给出中断类型号,CPU响应NMI中断时也没有中断响应周期。②可屏蔽中断响应:当INTR信号有效时,如果中断允许标志IF=1,则CPU就在当前指令执行完毕后,产生两个连续的中断响应总线周期。第18页图9.48086对INTR的中断响应时序CLKT1T2T3T4T1T2T3T4ALELOCKINTAD0~D7中断类型号第一个INTA总线周期第一个INTA总线周期第19页可屏蔽中断的响应过程①处理器接到中断申请,处理完当前指令即进入响应周期。②第二阶段即中断响应周期,在其间CPU向外部中断控制器发送两个响应脉冲信号INTA#。第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,CPU取走中断类型号。③将标志寄存器中的内容压入堆栈保护,然后清IF和TF标志,以禁止INTR引脚以及陷井和单步中断。④将断点地址压入堆栈(CS:IP)。断点地址:指中断时CPU待执行的下一条指令对应的逻辑地址。顺序:先压入断点地址CS,后压入偏移地址EIP(或IP)。⑤CPU得到中断类型号码n后,通过中断类型号与中断服务程序入口地址的关系找出该类型对应的段基地址和偏移地址,从而转入中断服务程序入口地址。完成中断响应任务。第20页图9.5可屏蔽中断的响应和处理过程INTIR0IR1IR2IR3IR4IR5IR6IR7外设中断请求INTR①中断请求②中断响应③中断类型NCSIPPSWPSWCSIP堆栈4×N+24×N④保护断点和PSW⑤IF=0 TF=0⑥IP=(4×N),CS=(4×N+2)转中断服务程序保护现场开中断中断服务程序关中断恢复现场中断返回主程序⑦开中断中断向量表⑧返回主程序⑧弹出断点地址,返回主程序INTAINTAD7~D0D7~D08259A8086CPU第21页第22页9.3可编程中断控制器8259A9.3.18259A的功能9.3.28259A的内部结构与引脚信号9.3.38259A的工作方式9.3.48259A编程方法第23页9.3.18259A的功能1.具有8级优先级,并可通过级联最多扩展至64级;2.可通过编程屏蔽或开放接于其上的任一中断源;3.在中断响应周期能自动向CPU提供可编程的标识码,如8086的中断类型号;4.可编程选择各种不同的工作方式。第24页9.3.28259A的内部结构与引脚信号D7~D0数据总线缓冲器RDWRA0读写控制逻辑CSCAS0CAS1CAS2级联缓冲/比较器控制逻辑INTINTA中断屏蔽寄存器IMR中断服务寄存器ISR优先级比较器PR中断请求寄存器IRRSP/ENIR0IR1IR2IR3IR4IR5IR6IR7第25页第26页数据总线缓冲器是一个三态、双向的8位缓冲器,是8259A与CPU系统数据总线的接口。数据总线缓冲器的主要功能有:①通过数据总线缓冲器,CPU向8259A内部发送命令。②CPU接收8259A状态信息。③在中断响应周期,CPU从中获得中断类型号。数据总线缓冲器第27页读/写逻辑接收CPU送来的读/写控制信号、片选信号以及地址选择信号,对内部各个寄存器进行读写操作。第28页级联缓冲/比较器级联缓冲/比较器在级联方式的主从结构中(两个以上的8259A组成的系统),用来存放和比较系统中各8259A的从设备标志(ID)。第29页中断请求寄存器IRRD7D6D5D4D3D2D1D0IRR7IRR6IRR5IRR4IRR3IRR2IRR1IRR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚功能:记录外部中断源的中断申请的状态。状态:1=对应引脚有中断请求且还未被响应。0=对应引脚无中断请求或有但已经被响应。第30页中断服务寄存器ISRD7D6D5D4D3D2D1D0ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚功能:记录外部中断源的中断申请被服务的状态。状态:1=对应引脚的中断请求已被响应(服务)且服务还没有结束。0=对应引脚的中断请求未被响应。第31页中断屏蔽寄存器IMRD7D6D5D4D3D2D1D0IMR7IMR6IMR5IMR4IMR3IMR2IMR1IMR0IR7IR6IR5IR4IR3IR2IR1IR0寄存器位引脚功能:设置外部中断源的中断屏蔽状态。状态:1=对应引脚的中断被屏蔽。0=对应引脚的中断未被屏蔽。注意:只有IMRi相应位为0且IF=1,CPU才有可能响应可屏蔽中断。第32页中断优先权分辨器PR优先权分辨器PR用来确定存放在IRR中各个中断请求信号对应中断源的优先级。并总是选出当前最高优先中断源的中断申请通知控制逻辑,以便控制逻辑发送中断请求信号INT给CPU。第33页控制逻辑控制逻辑是控制8259A内部各个部件的主要逻辑电路。主要功能包括:(1)根据CPU对8259A编程设定的工作方式来产生内部控制信号。(2)如果中断请求寄存器IRR有未被屏蔽的位,则控制逻辑对应于当时最高优先的中断源,向CPU发中断请求信号INT。(3)接收CPU送来的中断响应信号,并置位中断服务寄存器ISR的相应位(ISRi)。(4)控制发出相应的中断类型号,以供CPU读取。第34页第35页9.3.28259A的内部结构与引脚信号第36页D7~D0:为8位双向的数据线A0:端
本文标题:第9章 微型计算机中断技术
链接地址:https://www.777doc.com/doc-3972392 .html