《第七章 微型计算机的中断系统课件》由会员分享,可在线阅读,更多相关《第七章 微型计算机的中断系统课件(44页珍藏版)》请在金锄头文库上搜索。
1、第七章 微型计算机的中断系统,7.1 中断的基本概念 7.2 8086微处理器的中断方式 7.3 可编程中断控制器8259A,7.1 中断的基本概念,一、中断 在CPU正常运行程序时,由于内部或外部某个非预料 事件的发生,使CPU暂停正在运行的程序,而转去执行处 理引起中断事件的程序,然后再返回被中断了的程序, 继续执行。这个过程就是中断。,早期中断概念的引入,是为解决CPU与外设间的速度匹配问题,提高CPU 的工作效率。中断源主要是由外部硬件产生。当今的中断技术,不再限于外部硬件产生中断(称硬件中断或外中断 ),还可由CPU内部产生。 软件中断(或内中断) 因内部意外条件而改变程序执行流程以
2、报告出错情况和非正常状态的过程或者由程序预先安排,即由指令INT n调用中断服务程序产生的中断。,二、中断原理(外中断) 1、中断过程 1)中断请求 2)中断判优 3)中断响应 响应条件: 无总线请求和非屏蔽中断请求; 中断允许控制位IF=1; CPU执行完当前指令; 当前中断级别最高。 响应时自动完成以下工作: 发送两个INTA负脉冲,获取中断类型号N; 将FLAGS入栈,关中断,即IF=0、TF=0; 保护断点,将CS、IP入栈; 根据中断类型号N取得中断向量送入IP、CS; 进入中断服务子程序。,4)中断处理 保护现场; 开中断,以允许嵌套,也可不开中断; 中断服务; 关中断,保证无干扰
3、恢复现场; 恢复现场。 5)中断返回 开中断; 中断返回。,2、中断优先级的识别 当有多个中断源同时提出中断申请时,究竟应该先响应哪个中断源的申请;当CPU正在执行中断服务程序时,又接收到新的中断申请,是否应该响应这个中断请求,这些问题都应当通过设置与判断中断的优先级来得以解决。 1)软件查询法 2)硬件处理法,3、中断嵌套 指当CPU因响应某一中断源的中断请求而正在执行其中断服务程序时,若此时中断是开放的,那必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先级更高的中断请求,等到处理完后再转回来继续执行原来的中断服务程序。,一、中断分类 8086/8088系统中,可以处理256个
4、不同类型的中断,其编号从00H0FFH,称为中断类型号。 内部中断: 除法出错 类型号0 自动产生 单步中断 类型号1 DEBUG执行T命令 断点中断 类型号3 DEBUG执行G命令 溢出中断 类型号4 执行INTO INT n 类型号n (05H 0FFH),7.2 8086微处理器的中断方式,外部中断: 不可屏蔽中断 类型号2 自动产生 可屏蔽中断 类型号(32 255) 由8259管理,当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,再响应优先级较低的中断源。,二、8086(8088)CPU的中断优先级,优先级 高 低 内部中断 ( 除法出错,INT 指令,断点,INT
5、O指令 ) 非屏蔽中断 可屏蔽中断 低 内部中断( 单步 ),三、中断向量与中断向量表,中断向量:中断服务程序入口地址。 中断向量表:用于存放256个中断向量的存储区域,共占1KB存储空间。 中断向量指针:在向量表中存放每个中断向量的地址。,例:NMI中断,为2号中断 中断向量存于 IP 0000H:0008H 0000H:0009H CS 0000H:000AH 0000H:000BH 中断响应后CPU根据CS和IP内容进入中断子程序。 例:中断类型号30H (30H4=C0H) 中断向量存于IP 0000H:00C0H 10H 0000H:00C1H 20H CS 0000H:00C2H
6、30H 0000H:00C3H 40H 则中断所对应的中断向量为4030H:2010H,也即该中 断服务程序的入口地址。,四、设置中断向量,前面提到8086/8088利用向量中断的方法,一旦响应中 断便可方便地找到中断服务程序的入口地址。它是在规定 的内存区域中,每4个连续字节存放一个中断向量,可建立 一个1KB大小的中断向量表。尽管表规定了内存区域,但 表中的内容,除已被系统定义的中断类型的中断向量以 外,其他新增加的中断类型要在中断向量表中由用户建立 相应的中断向量。为了让CPU响应中断后正确转入中断服 务程序,中断向量表的建立是非常重要的。,1、直接装入法 PUSH DS XOR AX,
7、 AX MOV DS, AX MOV BX, N*4 MOV AX, OFFSET NEWINT MOV WORD PTRBX, AX MOV AX, SEG NEWINT MOV WORD PTRBX+2, AX POP DS NEWINT PROC IRET NEWINT ENDP,2、使用串存储指令装入法 MOV AX, 0 MOV ES, AX MOV DI, N*4 MOV AX, OFFSET NEWINT CLD STOSW MOV AX, SEG NEWINT STOSW,3、使用DOS功能调用设置中断向量 预置: AH=25H 功能号 AL=N 中断类型号 DS:DX=中断向
8、量 执行: INT 21H 例如: PUSH DS MOV AX, SEG NEWINT MOV DS, AX MOV DX, OFFSET NEWINT MOV AL, N MOV AH, 25H INT 21H POP DS,7.3 可编程中断控制器8259A,1.具有8级优先级控制,通过级联可扩充到64级; 2.每一级中断可由程序单独屏蔽或允许; 3.可提供中断类型号传送给CPU; 4.可通过编程选择多种不同的工作方式。,D7D0 RD WR A0 CS CAS0 CAS1 CAS2 SP/EN,数据缓冲器,读写逻辑,级联 比较/缓冲,控制逻辑,中断屏蔽寄存器IMR,ISR,PR,IRR
9、,INT INTA IR0 IR7 Vcc GND,一、 8259A的结构及引脚功能 1、内部结构,级联比较/缓冲器 CAS0CAS2是级联信号 SP/EN 控制电路 是8259A的内部控制器 根据IRR的置位情况和IMR的设置情况,通过PR判定优先级,向8259A内部及其它部件发控制信号和INT,接收INTA使ISR相应位置1,并使IRR相应位置0,同时送中断类型号。,主片 输出 从片 输入,非缓冲方式 缓冲方式 控制数据缓冲器 输出,单片结构 输入接“1” 少量级联结构 输入,主片 接“1” 从片 接地,数据缓冲器 双向8位三态缓冲器与系统数据总线接口 与CPU交换的信息包括 注:通常连接
10、低8位数据总线 读写逻辑 控制数据传送方向及选择数据端口,写入8259A的编程控制字 8259A状态信息的读出 中断响应时送出的中断类型号,IRR 中断请求寄存器 用来存放由外部输入的中断请求信号IR0IR7,允许多位置1。 ISR 中断服务寄存器 保存、记录正在处理中的中断请求,当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR相应位置1。 PR 优先级判别器 对保存在IRR中的中断请求进行优先级识别,送出最高级别中断请求到ISR中;当出现多重中断时,PR判定是否允许所出现的中断去打断正在处理的中断。 IMR 中断屏蔽寄存器 实现对各级中断的有选择的屏蔽,当某位为1,表示禁止这一
11、级中断请求进入系统,2、引脚功能及与CPU连接,8259A,WR,A1,CS,A0,数 据 线,RD,RD,WR,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,A6 A5 A4 A3 A2,D0 D7,D0 D7,Vcc,SP/EN CA0 CA1 CA2 GND,+ 5V,用于多片 8259A 级连情况,INTA,INT,INTA,INTR,8086最小模式,+ 5V,M/IO,G G2A G2B C B A,Y2,多片8259A连接,主片8259A端口地址 20H 22H 从片1端口地址 24H 26H 从片2端口地址 28H 2AH,D0 D7,A1,G1 G2A Y2
12、 G2B Y1 C Y0 B A,A0 M/IO,A6 A5 A4 A3 A2,8086 最 小 模 式,RD,INTA,WR,INT,主片8259A,从片1,从片2,A0 CS,INT IR7 IR0,IR7 IR2 IR1IR0,INT IR7 IR0,+5V,1,二、8259A的工作方式,1、中断优先级方式 全嵌套方式 这是8259A的默认方式,也是最基本最常用的工作方式。该方式下8259A的中断优先级是从IR0IR7,优先级依次降低。 特殊全嵌套方式 中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。 注: 特殊全嵌套仅用于多个8259A级连时的主8259A
13、,而不能用于从属8259A或单8259A系统。 自动循环方式 该方式下中断的优先级队列随时发生变化,当某个外设的中断请求得到CPU响应后,其中断的优先级自动降为最低。(初始的优先级队列规定为IR0 IR7) 特殊循环方式 与自动循环方式不同之处是:特殊循环方式下的初始优先级队列可由编程决定。,2、中断结束的管理方式(固定优先级的中断结束) 中断结束的管理就是用不同的方式使ISR中相应位清零。 普通结束方式EOI 8259A每得到一次EOI命令,就将ISR中已置位的各位中优先级最高的位复位。 特殊结束方式SEOI 该方式的特殊性在于,除了普通EOI方式的功能外,将明确指明本次复位的ISR位。 自
14、动结束方式AEOI 自动EOI方式是利用响应中断时最后一个响应脉冲的后沿执行一次普通EOI,而不需要CPU发送EOI指令。,3、循环优先级的循环方法 在循环优先级方式中,与中断结束方式联合,有三种循环结束,结束时并确定下面的优先权排队。 普通EOI循环方式 特殊EOI循环方式 自动EOI循环方式,4、中断源屏蔽方式,普通屏蔽方式 中断屏蔽寄存器IMR的8个位与中断请求IR0IR7一一对应。对IMR编程,指定某些位为1,则屏蔽掉相应的中断请求。,特殊屏蔽方式 提供了允许较低优先级的中断能够得到响应的特殊手段。 原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。 特殊屏蔽方式中只能用SEOI命令结束中断。,5、中断请求引入方式,电平触发方式 8259A依靠IR引脚上的有效高电平信号来触发,而与有效电平出现的方式和时间无关。,边沿触发方式 利用IR输入信号由低电平跳向高电平时触发。当IR产生上升沿后,应保持高电平直到中断被响应为止。,查询方式 允许8259A不工作于中断方式,而是以查询方式工作。因为CPU中的IF=0,CPU要使用软件查询来确定中断源,才能实现对外设的中断服务。因此既有中断的特点,又有查询的特点。,6、连接系统总线方式,缓冲方式 多片级连时,8259A通过8288与系统总线相连。,非缓冲方式