您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第6章 微型计算机的中断系统
第6章微型计算机的中断系统教学内容:中断的基本概念,中断的类型,中断向量表,中断源的识别,中断响应和处理过程;8259A中断控制器,功能与结构,8259A的编程,中断优先权的确定,应用举例。教学重点:深刻理解8086CPU的中断结构,中断类型,中断矢量,中断响应过程。了解8259A的编程结构及寄存器的作用,理解8259A工作方式、有关命令和初始化编程及其在PC机和实际中的应用。教学难点:中断嵌套;中断向量表(实模式、保护模式下);8259A的编程26.1中断原理6.28086CPU中断系统6.3可编程中断控制器8259A6.4中断方式输入输出6.58259A在微机系统中的应用6.6*现代微机中断控制36.1中断原理6.1.1中断的基本概念1.中断由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序。这个过程称为中断。42.中断源•引发中断的事件称为中断源•内部中断(在CPU内部的中断源):程序异常(运算溢出等),陷阱中断(例如,单步运行程序等),软件中断(执行特殊指令)等。•外部中断(发生在CPU外部的中断):外部故障(电源故障,存储器读写校验错)外部事件(定时时间到,外部特殊信号)IO事件(外部设备完成一次IO操作,请求数据传输)53.中断识别用若干位二进制表示的中断源的编号。4.中断断点由于中断的发生,某个程序被暂停执行。该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。65.中断服务程序•处理中断事件的程序段称为中断服务程序。如:故障中断服务程序,输入输出中断服务程序。•不同类型的中断需要不同的中断服务程序。•中断服务程序不同于一般的子程序:子程序由某个程序调用,它的调用是由程序设定的,它的执行时间是确定的。中断服务程序由某个事件引发,它的执行一般是随机的,不确定的。76.中断系统为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统。86.1.2计算机采用中断控制技术主要用在以下方面:1.提高并行处理能力实现CPU和多个外设同时工作,提高CPU效率。2.实时处理能力计算机应用于实时控制时,对外部事件及时响应。3.故障处理能力及时处理故障,不影响其他程序的运行。4.多道程序或多重任务的运行在操作系统的调度下,运行多道程序或多重任务。9以下概念是非抢占式、抢占式调度与是非抢占式、抢占式内核,中断及服务程序对任务调度的影响(补充不考试)时间低优先级任务ISRISR使高优先级任务就绪低优先级任务释放CPU高优先级任务1234567非抢占式调度10抢占式调度时间低优先级任务ISRISR使高优先级任务就绪高优先级任务123456711时间低优先级任务ISR高优先级任务12345内核服务非抢占式内核12时间低优先级任务ISR高优先级任务12345内核服务抢占式内核136.1.3中断管理1.对中断全过程的控制•中断源发出中断请求时,CPU能决定是否响应这一中断。•若允许响应这个中断请求,CPU在保护断点后,将控制转移到相应的中断服务程序去•中断处理完,CPU返回到断点处继续执行被中断的程序。142.中断源的识别•软件识别:响应中断后,CPU进入中断处理程序。在这个程序里,CPU逐个查询各中断源的状态,确定是哪一个设备申请了中断。•硬件识别:响应中断后,CPU进入一个“中断响应周期”。在这个周期里,申请中断的设备向CPU发送它的中断类型。153.中断的优先权(级)优先权(级):有多个中断源同时提出中断请求时,CPU响应中断的优先次序。根据中断源提出中断申请的轻重缓急为每个中断源确定CPU对它们响应的优先权。CPU在分配优先权时,一般是按照提出中断的外设的速度和它们在微机系统中所处的地位来进行分配的。在PC机系统中,中断源的优先权由高到低的顺序依次为:除零数、INTn、INT0、NMI、INTR、单步执行中断。16(1)软件查询法(2)分类申请法(3)链式优先权排队——菊花链法(4)可编程中断控制器——“向量”优先权排队17中断程序入口YNYNYN保护现场是A设备是B设备是C设备恢复现场开中断,返回A中断服务程序B中断服务程序C中断服务程序软件查询方法流程图18图6-1设备3接口设备2接口设备1接口+5VCPU以及总线控制逻辑INTAINTRINTAINTR≥1INTA中断请求1=有0=无中断应答菊花链中断优先级排队电路194.中断嵌套•CPU在处理中断过程中,如果出现了级别更高的中断请求,CPU停止执行低级中断的处理程序而去优先处理高级中断。•等高级中断处理完毕后,再接着执行低级的未处理完的程序。•这种中断处理方式称为多重(级)中断或中断嵌套。•CPU在响应中断时已将IF清零,一定要在中断处理程序中加入开中断指令,才有可能进行中断嵌套。20中断嵌套主程序外设1中断服务程序外设2中断服务程序IRETIRET外设1中断请求外设2中断请求①响应中断1②响应中断2③中断返回④中断返回21伪代码main(){….……..;a=0;b=1;c=2;}中断5voidISR5(void){保护现场;……..;a1=0;b1=1;c1=2;中断返回;}PC-自动保存,1234中断0voidISR0(void){保护现场;……..;a2=0;b2=1;c2=2;中断返回;}PC-自动保存,6587226.1.4中断过程1.中断源请求中断(1)外部中断源由外部硬件产生可屏蔽或不可屏蔽中断的请求信号;(2)内部中断源在程序运行过程中发生了指令异常或其他情况。(3)中断屏蔽CPU用程序的方法允许某些中断源发出中断请求,而禁止某些中断源请求中断•在外设的接口内增设一个中断屏蔽触发器•Q=0时,中断请求不能发往INTR;•适当地设定中断屏蔽触发器的状态,可以控制中断请求信号是否能够送到INTR端232.中断响应(1)响应可屏蔽中断必须同时具备以下条件:CPU处于允许中断状态(IF=1);没有不可屏蔽中断请求和总线请求;当前指令执行结束。(2)响应不可屏蔽中断必须同时满足以下条件:没有总线请求;当前指令执行结束。(3)响应内部中断的条件:当前指令执行结束。24CPU接受中断请求后转入中断响应周期:(1)识别中断源,取得中断源的中断类型;(2)将标志寄存器FLAGS和CS、IP(断点)先后压入堆栈保存;(3)清除自陷标志位TF和中断允许标志位IF;(4)获得相应的中断服务程序入口地址,转入中断服务程序。中断响应周期25图6-3中断过程识别中断源FLAGS,CS,IP进栈清TF,IF标志读中断向量表转入中断服务程序保护现场开中断中断处理关中断恢复现场中断返回主程序中断响应周期中断服务程序断点263.中断服务(1)保护现场:保护中断服务时要使用的寄存器(压栈);(2)开中断:中断服务时能响应更高级的中断请求;(3)中断处理:执行输入输出或非常事件的处理;(4)关中断:恢复现场时不被新的中断打扰;(5)恢复现场:将堆栈中保存的内容弹出;(6)中断返回:通过中断返回指令,弹出IP,CS,FLAGS,程序回到被中断的地址,恢复中断前的状态。276.28086CPU中断系统6.2.18086的中断类型中断类型:用8位二进制表示,可以有256个不同的中断;中断请求输入引脚:NMI、INTR;INT0(除法溢出)→溢出中断(INTO)→INTn指令→NMI→INTR→单步中断。28可分为:A外部中断(1)可屏蔽中断INTR、(2)非可屏蔽中断NMIB内部中断(1)除数零中断、(2)单步执行中断、(3)溢出中断、(4)指令中断29图6-48086CPU中断301.可屏蔽中断IF=0时,CPU不响应INTR的中断请求;IF=1时,CPU响应INTR的中断请求。用STI指令使IF=1,称为开中断;用CLI指令使IF=0,称为关中断。系统复位后,或CPU响应了任何一种中断后,都会使IF=0。使用STI指令使IF=1,确保中断开放。可屏蔽中断源由8259A统一管理,每片8259A可以接受8个外部设备的中断请求。312.不可屏蔽中断NMI接收上升沿触发的中断请求信号;输入脉冲应大于两个时钟周期;CPU对NMI中断请求的响应,不受中断允许标志位IF控制;NMI中断类型码固定为2。323.内部中断(1)除法溢出中断(n=0):除数为零或商超过寄存器所能表达的范围。(2)单步中断(n=1):TF=1,每执行完一条指令产生一次中断。用于实现单步操作,是强有力的调试手段。(3)断点中断(n=3):INT3指令产生一个中断类型码为3的断点中断。(4)INTO指令(n=4):OF=1,则INTO指令引起类型码为4的内部中断;OF=0,此指令不起作用,程序顺序执行。(5)INTn指令331实模式(8086)中断向量:中断服务程序的入口地址的指示器;8086的中断向量表从内存00000H开始存放;每个中断服务程序入口地址占用4个字节;中断服务程序入口的偏移地址存入两个低地址字节,入口的段基址存入两个高地址字节;256个中断向量占用00000H~003FFH共1024个字节。6.2.2中断向量表34中断向量表由三部分组成。(1)中断类型号0~4为专用中断指针,占用0000H~0013H的20个字节,并且用户不能对其修改。(2)中断类型号5~13为保留中断指针,占用0013H~007FH的108个字节,这是Intel公司保留的中断指针,用户不应使用。(3)中断类型号32~255为用户使用的中断指针,占用0080H~03FFH的896个字节,它可由用户指定。35图6-58086的中断向量表0000H0004H0008H000CH0010H0014H0080H用户使用的中断指针备用的中断指针除数零中断单步中断NMI中断单字节中断溢出中断专用的中断指针CSIP363738AH=35HAL=中断类型INT21H→把原有的中断向量送ES:BXAH=25HAL=中断类型DS:DX=中断向量INT21H→把新的中断向量送中断向量表392保护模式使用中断描述符表保护模式为32位寻址。中断描述符表IDT每一表项对应一个中断向量号,表项称为中断门描述符、陷阱门(单步运行)描述符。这些门描述符为8字节长,对应256个中断向量号,IDT表长为2KB。由中断描述符表寄存器IDTR来指示IDT的内存地址。以中断向量号乘以8作为访问IDT的偏移,读取相应的中断门/陷阱门描述符表项。门描述符给出中断服务子程序入口地址(段,偏移),其中32位偏移量装入EIP寄存器,16位的段值装入CS寄存器。由于此段值是选择符,还必须访问GDT或LDT,才得到段的基地址。40411.不可屏蔽中断NMI不受CPU内部中断允许标志IF的约束,优先权高于INTR;中断类型号2;采用边沿触发(上升沿)方式(1)标志寄存器压入堆栈(2)清除IF标志和TF标志(3)保存断点,把断点处的CS和IP内容先后压入堆栈(4)取出中断服务程序的入口地址,送入IP和CS(5)进入中断服务程序用途:主板上RAM奇偶错,I/O通道中的奇偶校验错,8087协处理器异常中断。6.2.38086对外部中断的响应422.可屏蔽中断INTR•外设的中断请求首先送到8259A,按照中断优先权排队;•电平触发方式,高电平有效。响应过程:第一个INTA总线周期,通知外部做好准备;第二个INTA总线周期,从外部获取中断类型号;43T1T2T3T4T1T2T3T4中断号CLK(时钟)ALE(地址允许)LOCK(总线锁存)INTA(中断应答)D0~D7(数据)中断响应周期2144执行总线写周期,把FLAGS压入堆栈,并清除IF,TF;执行总线写周期,把CS内容压栈;执行总线写周期,把IP内容压栈;执行总线读周期,中断服务程序入口偏移地址送入IP;执行总线读周期,中断服务程序入口段基址送入CS。456.3可编程中断控制器8259A接收8路外部中断请求,通过级联可以扩展至64级;优先级排队和控制,优先级方式可选;
本文标题:第6章 微型计算机的中断系统
链接地址:https://www.777doc.com/doc-3280557 .html