收藏 分享(赏)

第7章 中断系统.ppt

上传人:gnk289057 文档编号:8010256 上传时间:2019-06-04 格式:PPT 页数:83 大小:1.95MB
下载 相关 举报
第7章  中断系统.ppt_第1页
第1页 / 共83页
第7章  中断系统.ppt_第2页
第2页 / 共83页
第7章  中断系统.ppt_第3页
第3页 / 共83页
第7章  中断系统.ppt_第4页
第4页 / 共83页
第7章  中断系统.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

1、1,第7章 微型计算机中断系统,2,概要,1. 中断和中断系统 2. 中断的处理过程 3. 中断优先级和中断嵌套 4. 可编程中断控制器Intel 8259A,3,中断和中断系统,中断的概念 CUP在正常执行程序的过程中,由于某种原因,使CPU暂停当前程序的执行,转去处理临时发生的事件,处理完毕再返回继续执行暂停的程序。该过程称中断,4,中断的概念,中断源 引起程序中断的事件 外部中断 内部中断 中断响应 CPU在每条指令的最后一个周期检测中断信号引脚,当条件满足时,CPU响应中断,向外设发中断响应信号,并保护断点,转向中断服务程序。,5,中断的概念,中断向量 指出中断来源 中断向量表 中断服

2、务程序的入口地址存放处 中断优先级 为每个中断源分配一个优先级,CPU总是优先响应优先级高的中断 中断屏蔽 通过软件设置,使CPU不能响应中断源的申请,6,中断的分类,中断类型号 8086/8088可以处理256种中断,每一种中断都规定一个唯一的中断类型号N,即中断向量 256种中断分为两类 外部中断由外部硬件的请求产生的中断,又称硬件中断 内部中断是由指令的执行所引起的中断,又称软件中断,7,中断的分类,8,外部中断,非屏蔽中断请求 由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效,中断类型号N2 不受中断标志位IF影响 引起原因 RAM奇偶校验错误 I/O通道扩展板奇偶校验

3、错误 协处理器8087中断请求,9,外部中断,可屏蔽中断请求 引脚INTR引入,电平触发,高电平有效 中断标志位IF1时允许中断;IF0时禁止中断 可用STI指令置位IF状态(开中断) CLI指令复位(关中断) 引起原因 外部设备的中断请求,10,内部中断,INT n 指令中断 CPU执行INT n 指令后,产生中断类型号Nn 的中断 中断向量表地址4n 例如:INT 21H,产生中断类型号为21H的中断,并从中断向量表的4*21H(即0:84H)单元取出中断服务程序的入口地址,转去执行,中断向量表,0000,0004,0008,中断类型号,11,内部中断,除法错中断 除数为0或商超出寄存器范

4、围。中断类型号N=0 溢出中断指令INTO 在算术运算指令之后紧跟INTO指令,可检查溢出标志OF 。中断类型号N4 例如:测试加法的溢出MOV AX,0009H MOV AX,9000H ADD AX,0080H ADD AX,8000HINTO INTO: : 无溢出,不中断,顺序 溢出,中断,转移,12,内部中断,单步中断 当标志位TF1时,每执行一条指令,CPU便产生中断类型号N1的单步中断。单步中断用于 Debug调试程序 断点中断 当程序设置了断点时,CPU执行到断点处便产生中断类型号N3的断点中断,并显示寄存器及单元内容,供Debug调试程序使用,CPU开中断时,CPU自动关中断

5、,弹出IP,CS,及标志,自动开中断,可屏蔽中断处理流程,14,CPU响应中断过程,可屏蔽中断请求INTR CPU响应可屏蔽中断 CPU转入中断服务过程,15,CPU响应中断过程,CPU响应可屏蔽中断 当中断屏蔽触发器未被屏蔽时,外设发出中断请求信号 CPU在每条指令的最后一个机器周期的最后一个T状态采样中断请求INTR引脚,若有中断请求信号且CPU内部中断允许触发器是开放的(IF1),则CPU响应中断 CPU向外设接口发两个中断响应信号INTA 外设收到第二个INTA,往数据线送中断类型号,16,CPU响应中断过程,CPU转入中断服务过程 从数据总线读取由外设输入的中断类型号 标志寄存器PS

6、W的值入栈 PSW中的中断允许标志IF和单步标志TF清0 保护断点,下一条指令的段地址CS和指令指针IP的值入栈 取中断向量表的中断入口地址,转入中断服务子程序 中断处理程序结束后,从堆栈依次弹出IP、CS和PSW,返回主程序断点处继续执行,17,CPU响应中断过程,非屏蔽中断请求NMI CPU检测有NMI,不必判断IF标志,内部自动产生中断类型号N2,并转入相应中断服务过程软件(内部)中断INT n 由软件设定,不受IF标志影响,CPU内部形成中断类型号Nn ,并转入相应中断服务过程,18,中断向量表,中断向量表 也称中断服务程序入口地址表 中断向量表安排在内存的前1KB,即00000H00

7、3FFH 每个服务程序入口地址CS:IP占用4个字节(256*41KB),高字节存放段地址CS,低字节存放段内偏移IP,按中断类型号顺序存放,0000,0004,0008,中断类型号,19,中断向量表,中断向量表,中断服务程序0,中断服务程序1,中断服务程序2,中断服务程序3,0000,0004,0008,000c,8086/8088中断向量表,256种中断类型的分配 04为专用中断 531为系统使用中断 08H0FH:8259A中断 向量 10H1FH:BIOS中断 向量 32255由用户定义中断 20H3FH:DOS中断 调用 40HFFH:用户使用,21,中断操作过程示例,指令INT 6

8、8H执行过程取中断类型号68H计算中断向量地址取中断入口地址低地址IP 高地址CS 转中断服务程序中断返回到INT 68H的下一指令,1A4,1A2,1A0,0:19C,INT 68H,A000:2050,中断处理程序,22,为中断类型号N 设置中断向量,用指令设置中断向量MOV AX, 0MOV ES, AXMOV DI, N*4 ;中断类型号*4MOV AX, OFFSET INTRAD ;中断子程序偏移地址AXCLDSTOSW ;偏移地址4n,4n+1MOV AX, CSSTOSW ;段地址4n+2,4n+3STI: INTRAD: ;中断服务子程序:IRET,23,为中断类型号N 设置

9、中断向量,利用DOS功能调用INT 21H设置中断向量 设置中断向量 预置:AL中断类型号DS:DX中断服务程序入口地址AH25H 执行:INT 21H 结果:把由AL中指定中断类型号的中断向量DS:DX,放置在中断向量表中。 取中断向量 预置:AL中断类型号AH35H 执行:INT 21H 返回:ES:BX中断服务程序入口地址 结果:把由AL中指定中断类型号的中断向量,从中断向量表中取到ES:BX中。,24,中断类型号的获取(中断识别),除数出错,单步断点,NMI,断点中断和溢出中断 中断类型号04 用户自己确定的软件中断INT n 中断类型号由n决定 外部可屏蔽中断INTR 中断类型号由硬

10、件电路设计产生 外部可屏蔽中断INTR 中断类型号由可编程控制器8259A获得,25,8259A的中断源分配(IBM PC),26,中断主程序,主程序中的初始化 设置中断向量 设置8259A的中断屏蔽寄存器的中断屏蔽位 设置CPU中断允许位标志IF(开中断STI),27,硬件和CPU自动完成的动作,硬件(外设接口)和CPU自动完成 外设向CPU INTR端发中断请求 执行完当前指令CPU发两个中断响应信号INTA CPU取中断类型号n CPU将当前PSW、CS、IP入栈保护 清IF、TF,禁止外部中断和单步中断 从中断向量表取4nIP,4n2CS 转向中断服务子程序,28,中断服务子程序,中断

11、服务子程序的编写 保护现场,用PUSH指令将各寄存器值入栈; 若允许中断嵌套,则用STI开中断(置IF1); 执行中断处理程序; 用CLI关中断(清IF0); 给中断命令寄存器送中断结束命令EOI,使当前正在处理的中断请求标志位被清除; 恢复现场,用POP指令将各寄存器值退栈恢复; 用中断返回指令IRET返回主程序,此时堆栈中保存的断点值和标志值分别装入IP、CS和falgs。,29,注意:,进入中断服务程序时,TF和IF被清除,不再响应其它外设的中断请求,所以要设置开中断,以允许中断进入,实现中断嵌套; 恢复寄存器内容时,为了防止有中断进入破坏其内容,要执行关中断,然后在中断返回时,原来的f

12、algs返回,使IF=1,又再开中断,这样返回主程序后,中断请求能得到允许。 中断结束命令EOI一般在中断处理结束前发出,使一次中断处理的过程是完整的。,30,中断响应时序,8086/8088中断响应总线周期时序图,31,中断优先级和中断嵌套,在实际系统中,经常有多个中断源同时向CPU请求中断,CPU响应哪个中断源的中断请求,由中断优先级排队决定,CPU先响应中断优先级高的中断请求。 当CPU正在处理中断时,有更高优先级别的中断请求,并且IF=1,CPU能响应更高级别的中断请求,而屏蔽掉低级的中断请求,形成了中断嵌套,或称为多重中断。,32,单中断源与多中断源的中断流程,开中断以便响应更高优先

13、级中断,33,多中断源的中断,多个中断源相比单个中断源,流程图中增加了 屏蔽本级与较低级中断请求; 中断服务前要开中断,以允许中断嵌套; 恢复现场前要关中断,使恢复现场不受干扰; 中断返回后自动开中断,以允许其它中断能被CPU响应。,34,中断优先级,中断优先级高 低 内中断(除法错、INTO、INT n)非屏蔽中断(NMI)可屏蔽中断(INTR)低 单步中断,35,软件查询中断优先级 硬件查询优先方式菊花链法 矢量中断优先级,可屏蔽中断的优先级设定,36,软件查询中断优先级,软件查询中断方式,是将各个外设的中断请求信号通过或门相或后,送到CPU的INTR端,同时把几个外设的中断请求状态位组成

14、一个端口,赋以端口号。 任一外设有中断请求,CPU响应中断后进入中断处理子程序,用软件读取端口内容,逐位查询端口的每位状态,查到哪个外设有中断请求,就转入哪个外设的中断服务程序。 查询程序的次序,决定了外设优先级别的高低,先测试的中断源优先级别最高。 在软件查询程序中,可以用移位或者屏蔽法来改变端口各位的测试顺序,从而改变中断优先级。,37,可屏蔽中断的优先级设定,软件查询中断优先级 软件查询状态位的次序决定外设中断优先权,38,硬件查询优先方式菊花链法,菊花链法是采用硬件查询优先的方式,它是在每个外设的对应接口上连接一个逻辑电路构成一个链,控制了中断响应信号的通路。 当任一外设申请中断后,中

15、断请求信号送到CPU的INTR端,CPU发出INTA中断响应信号: 当前一组的外设没有发出中断申请时,INTA信号会沿着菊花链线路向后传递,传送到发出中断请求的接口; 当某一级的外设发出了中断申请,此级的逻辑电路就阻塞了INTA的通路,后面的外设接口不能接收到INTA信号。 此级接口收到INTA信号后撤销中断请求信号,向总线发出中断类型号,从而CPU可以转入中断处理。,39,可屏蔽中断的优先级设定,硬件查询优先方式菊花链法 越靠近CPU的外设,优先级越高,40,矢量中断优先级,矢量中断优先级的设置是采用中断优先级控制器。 外设可以有8个中断请求IR0IR7送入中断请求寄存器,中断屏蔽寄存器可由

16、用户设置屏蔽某几位的中断请求; 中断优先级管理逻辑电路判别出最高优先级中断请求,将其中断级转换成3位码,送到中断类型寄存器的低3位及当前中断服务寄存器; 此后,中断优先级控制器向CPU发出中断请求信号,当CPU开中断时,CPU发出中断响应信号,开始一个中断处理过程。中断处理结束引起中断服务寄存器对应位清0,级别较低的中断请求才能得到响应。,41,可屏蔽中断的优先级设定,矢量中断优先级 由优先级管理逻辑判别最高优先级中断请求,42,中断嵌套,高优先级的中断源能中断低优先级的中断处理,IR2和IR4中断请求,IR1中断请求,IR3中断请求,43,中断嵌套,主程序必须有开中断指令,使IF=1才能响应

17、中断。进入中断处理程序时,系统自动关中断,在中断服务程序中必须有STI开中断指令,这样才可以允许其它中断进入实现中断嵌套。 中断结束返回前要有EOI中断结束命令,用来清除中断服务寄存器中的对应位,允许低级中断进入。最后有中断返回指令IRET,使程序返回到被中断的程序的断点处。 中断处理程序中如果没有STI指令,那么中断处理中不会受其它中断影响,在执行IRET指令后,因为自动返回中断断点及中断标志寄存器falgs的内容,当IF的值为1,系统便能开放中断。 一个正在执行的中断处理程序,中断服务寄存器相应位置1,在开中断的情况下,能够被优先级高于它的中断源中断。但如果中断处理中提前发出了EOI命令,

18、则清除了正在执行的中断服务,中断服务寄存器置1位被清0,允许响应同级或低级的中断申请。,44,可编程中断控制器Intel 8259A,中断控制器是专门用来处理中断的控制芯片。 它的功能是在有多个中断源的系统中,协助CPU实现对外部中断请求的管理,对它们进行优先权排队后选中当前优先权最高的中断请求向CPU发出中断请求信号;并且,当CPU响应中断请求进入中断服务子程序之后,如果有某个新的外部中断请求的优先权高于当前正在处理的最低优先权时, 中断控制器还能让此中断通过而到达CPU的可屏蔽中断请求信号INTR端,从而实现中断嵌套。 8259A就是一个可编程的输入端中断控制器,其功能很强,也很灵活,但使

19、用时比较复杂。,45,可编程中断控制器Intel 8259A,8259A的功能 单片8259A能管理8级中断。若采用级联工作方式,可用9片8259A构成64级主从式中断系统(主从式中断系统)。 每一级中断都可以单独屏蔽或允许。 可提供中断类型号传送给CPU,从而能迅速地转至中断服务程序。 可通过编程选择多种不同的工作方式。,46,8259A的内部结构及引脚,47,8259A的引脚,D0D78位双向数据线。它们直接和CPU的数据总线相连;CPU将控制字经数据线传给8259控制字寄存器;外部中断源IR0 IR7状态经数据线传给CPU;8259内部寄存器与CPU的数据传送。 WR :写控制信号,低电

20、平有效。它用来通知8259A准备从数据线上接收数据,这些数据实际上就是CPU发往8259A的命令字。 RD:读控制信号,低电平有效。它用来通知8259A将其内部某个寄存器的内容读到CPU的数据总线上。 CS:片选信号端,低电平有效。它通过地址译码逻辑电路与地址总线相连,用于选通8259A。,48,8259A的引脚,A0片内地址线。它用来指出当前8259A的两个端口中被访问的是奇地址还是偶地址。 IR0IR78级中断请求输入端。它用于接收来自I/O设备的外部中断请求。在主从级联方式的复杂系统中,主片的IR0IR7端分别与各从片的INT端相连,用来接收来自从片的中断请求。,49,8259A的引脚,

21、INT中断请求信号(输出)。它连至CPU的INTR端,用来向CPU发中断请求信号。 INTA中断应答线(输入)。它连至CPU的INTA端,用于接收来自CPU的中断应答信号。当接收CPU的应答信号后,8259A就把中断向量类型号送到数据总线。并且,CPU将在中断应答信号的第2个INTA负脉冲结束时,读取数据总线上的中断类型号。,50,8259A的引脚,缓冲方式 8259A通过数据总线缓冲器和数据总线相连 SP/EN作输出端 EN0,数据:8259ACPU EN1,数据:CPU8259A 非缓冲方式 8259A直接与数据总线相连 SP/EN作输入端 SP1,主片 SP0,从片,51,8259A的引

22、脚,CAS0CAS2级联控制信号。系统中最多可以把8级中断请求扩展为64级主从式中断请求。对于“主”8259A:CAS0CAS2为输出信号;对于“从”8259A:CAS0CAS2为输入信号。在主从级联方式系统中,将根据“主” 8259A的这3根引线上的信号编码来具体指明是哪一个8259A“从”片。,52,8259A内部结构框图,53,8259A的读写控制电路,54,8259A中断过程的执行步骤,(1) 当外部中断源使8259A的一条或几条中断请求线(IR0IR7)变成高电平时,则先使IRR的相应位置“1”。 (2) 系统是否允许某个已锁定在IRR中的中断请求进入ISR寄存器的对应位,可用IMR

23、对IRR设置屏蔽或不屏蔽来控制。如果已有几个未屏蔽的中断请求锁定在ISR的对应位,还需要通过优先级判别器即PR进行裁决,才能把当前未屏蔽的最高优先级的中断请求从INT输出,送至CPU的INTR端。,55,8259A中断过程的执行步骤,(3)若CPU是处于开中断状态,则它在执行完当前指令,就用INTA作为响应信号送至8259A的INTA。8259A在收到CPU的第1个中断应答INTA信号后,先将ISR中的中断优先级最高的那一位置“1”,再将IRR中刚才置“1”的相应位复位成“0”。 (4)8259A在收到第2个INTA信号后,将把与此中断相对应的一个字节的中断类型n从一个名为中断类型寄存器的内部

24、部件中送到数据线,CPU读入该中断类型号n,并根据它从中断向量表中取得相对于该中断类型号n的中断向量及其指定的中断入口地址,随即可转入执行相应的中断服务子程序。,56,8259A中断过程的执行步骤,(5) 当CPU对某个中断请求做出的中断响应结束后,8259A将根据一个名为方式控制器的结束方式位的不同设置,在不同时刻将ISR中置1“的中断请求位复“0”。具体地说,在自动结束中断(AEOI)方式下,8259A会将ISR中原来在第1个INTA负脉冲到来时设置的“1”(即响应此中断请求位),在第2个INTA脉冲结束时,自行复位成“0”。若是非自动结束中断方式(EOI),则ISR中该位的“1”状态将一

25、直保持到中断过程结束,由CPU发EOI命令才能复位成 “0”。,57,8259A的中断管理方式,优先级设置方式 中断结束方式 循环优先级的循环方法 中断源屏蔽方式 中断请求引入方式,58,优先级设置方式,完全嵌套方式 固定优先级 IR0IR7,IR0最高,IR7最低 设置:初始化命令字ICW4中SFNM0 响应中断后ISR对应位置1 特殊全嵌套方式 用于级联方式 主片对相同级别的中断请求开放 固定优先级 IR0最高,IR7最低 主片为特殊全嵌套方式,从片为其他方式 设置:ICW4中SFNM1,AEOI0 响应中断后ISR对应位置1,59,优先级设置方式,优先级自动循环方式 优先级可变,初始优先

26、级次序规定为IR0、IR1、IR7,当任一级中断处理完,它的优先级变为最低,原来比它低一级的中断变为最高 设置:操作命令字OCW2中R、SL10 优先级特殊循环方式 与优先级自动循环方式类似 最低优先级由程序指定 软件可动态改变中断优先级 设置:操作命令字OCW2中R、SL11, L2L0 指定最低优先级,R: 循环 SL: 特殊循环,60,中断结束方式,自动中断结束方式 不需要中断结束命令EOI 8259A在第二个/INTA后自动清除ISR对应位 自动EOI结束方式(AEOI):置ICW4中AEOI1 非自动中断结束方式 在中断服务程序返回之前,需要发中断结束命令EOI 使ISR对应位复位

27、普通EOI结束方式:中断结束时将ISR中级别最高的1置0。设置:OCW2中R、SL、EOI001 特殊EOI结束方式:中断结束时将ISR中指定级别的对应位清0。置OCW2中R、SL、EOI011,低三位L2L0 指定对应的IRi复位。,61,循环优先级的循环方法,普通EOI循环方式,62,循环优先级的循环方法,特殊EOI循环方式L2L0指定最低优先级011,63,中断源屏蔽方式,普通屏蔽方式 利用OCW1命令字使屏蔽寄存器IMR中的位置1或清0 屏蔽或开放某一级中断 例:11110000 特殊屏蔽方式 屏蔽本级中断,而允许优先级比它高或低的中断进入 总是在中断处理程序中使用 用于改变中断优先级

28、 由OCW3的ESMM、SMM11来实现,64,中断请求引入方式,边沿触发方式上升沿 电平触发方式高电平 得到响应后撤销触发电平 中断查询方式 CPU用查询程序确定中断源 系统关中断 CPU用OUT指令送OCW3查询命令字 8259A组成查询字 CPU用IN指令读取8259A查询字,65,中断查询方式,OCW3命令字构成的查询命令格式8259A组成的查询字格式 CPU读取的查询字,当前中断请求的最高优先级,1:有设备请求中断 0:无设备请求中断,P:查询方式位,66,8259A的编程方法,67,8259A的编程方法,初始化命令字 设定中断请求信号触发形式 高电平或上升沿 设定8259A工作方式

29、 单片或级联 设定8259A中断类型号基值 IR0的中断类型号 设定优先级设置方式 设定中断结束方式,68,初始化命令字,8259A有4个初始化命令字 ICW1 、ICW2 、ICW3 、ICW4 8259A有两个端口地址 一个偶地址,一个奇地址,69,ICW1芯片控制,写偶地址端口,8086/8088系统不用,标志位,例:单片方式, 边沿触发, 需设ICW4MOV AL, 13HOUT 20H, AL,70,ICW2设置中断类型号,写奇地址端口,中断类型号的前5位 中断类型号被8整除,例:中断类型号基值为08H(08H0FH)MOV AL, 8HOUT 21H, AL,71,ICW3配置级联

30、模式,1:IRi输入端有从属设备芯片 0:IRi输入端无从属设备芯片,主片格式,从设备芯片识别地址,从片格式,72,ICW3配置级联模式,主片 MOV AL, 88H ;IR3和IR7端接从片 OUT 21H, AL ;主片端口地址20H, 21H 从片1 MOV AL, 03H ;接IR3端 OUT A1H, AL ;从片1端口地址A0H, A1H 从片2 MOV AL, 07H ;接IR7端 OUT B1H, AL ;从片2端口地址B0H, B1H,73,ICW4方式控制,1:8086/8088 0:8080/8085,74,ICW4方式控制,BUF、M/S、SP/EN关系,75,初始化命

31、令字设置次序,初始化命令字设置次序固定,端口地址明确规定初始化命令字ICW是由初始化一次性写入,不再改变,A00 (20H),A01 (21H),A01 (21H),A01 (21H),76,8259A的编程方法,操作命令字 决定8259A工作方式,如中断屏蔽法,中断结束,中断优先级次序等 由操作命令字OCW1、 OCW2 、 OCW3 的设置实现 OCWi可以在应用程序中任何时间多次写入,用于对中断处理过程实现动态控制,77,OCW1中断屏蔽操作命令字,1:屏蔽由IRi引入的中断请求 0:允许IRi端中断请求引入,写奇地址端口,78,OCW2优先权循环和中断结束,写偶地址端口,标志位,000

32、:IR0 001:IR1 010:IR2 011:IR3 100:IR4 101:IR5 110:IR6 111:IR7,001:普通EOI方式 011:特殊EOI方式 101:普通EOI循环方式 111:特殊EOI循环方式 000:自动EOI循环(复位) 100:自动EOI循环(置位) 110:置位优先权命令 010:无效,79,OCW3特殊屏蔽和查询方式,写偶地址端口,标志位,0x:无效 10:特殊屏蔽方式复位 11:特殊屏蔽方式置位,1:查询8259A状态 0:不查询,80,8259A的中断级联,主片CAS0-2作为输出端,从片CAS0-2作为输入端,主,从,从片的INTR接主片的IRi,81,PC/AT机中的8259A级联,82,中断级联的优先级次序,设一个8259A主片连两片8259A从片,分别经IR3和IR6引脚接入,则系统优先级的排列次序为:高 低主片的IR0、IR1、IR2从片1的IR0、IR1、 、IR7主片的IR4、IR5从片2的IR0、IR1、 、IR7低 主片的IR7,83,作业,7-2、7-4、7-7、7-9、7-11,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报