版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、6.4 中断技术,中断基本概念 中断的一般过程 8086/8088中断系统 8259介绍,一、中断基本概念,1.实现CPU 与外设的并行工作,提高了 CPU 的效率。,查询方式的数据输入,中断方式的数据输入,中断示意图,2 中断定义,引起CPU中断的事件中断源。例如: 数据传送请求输入输出数据,报告故障等 事故处理掉电、硬件故障、软件错误、非法操作、定时时间到等 中断源分为:外部中断、内部中断 内部中断:CPU内部执行程序时自身产生的中断 外部中断:CPU以外的设备、部件产生的中断 8086/8088的外部中断信号:INTR、NMI INTR可屏蔽中断请求,高电平有效,受IF标志的控制。IF=
2、1时,执行完当前指令后CPU对它作出响应。 NMI非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。,中断类型(回顾),二、中断过程,五个步骤: 中断请求 中断判优(有时还要进行中断源识别) 中断响应 中断服务 中断返回 以下以外部中断为主介绍这五个步骤。,1)中断请求,外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚; 中断请求信号:边沿请求,电平请求 例如,NMI为边沿请求,INTR为电平请求 中断请求信号应保持到中断被处理为止; CPU响应中断后,中断请求信号应及时撤销。,2.1)中断源识别,计算机中的中断源有很多,CPU必须识别是哪一个设备产生中断。
3、识别中断源有两个方法:1、软件查询(查询中断)。,IN ALIPORT;从输入接口取中断信息 TEST AL,80H;是0号设备请求吗? JNZ SEVO;是,转0号设备服务程序 TEST AL40H;否,是1号设备请求吗? JNZ SEVl;是,转1号设备服务程序 TEST AL20H;否,是2号设备请求吗? JNZ SEV2;是,转2号设备服务程序 TEST AL10H;否,是3号设备请求吗? JNZ SEV3;是,转3号设备服务程序 条件传送查询中断?查询中断没有浪费CPU资源,缺点:低级别的中断反映慢!,(二)、矢量中断 中断申请信号INTR和中断响应信号INTA是一对握手信号。要求外
4、设提供中断类型号。,中断矢量,8086/8088使用,INTA的第二个总线周期读入中断矢量。教材图6-22,矢量中断,CS,T,INTA信号,2.2)中断判优,多个中断源产生中断,CPU首先为谁服务? 中断优先级排队问题。 中断优先级的控制方法 硬件判优链式判优、并行判优(中断向量法) 软件判优顺序查询中断请求,先查询的先服务(即先查询的优先级别高) 通常将中断判优与中断源识别合并在一起进行处理。 x86系统中,这项任务由PIC8259和CPU共同完成。,链式判优电路原理图(教材图6.18),菊花链逻辑电路,INTAin,IREQ,INTR,&,1,INTAout,DB,三态门,中 断 向 量
5、 码,E,外设接口,中断确认,菊花链 逻辑电路,3)中断响应,在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下条件成立,则CPU响应中断: 对INTR,CPU被允许中断,即IF=1; 当前指令执行完。对INTR,还应满足以下条件 当前指令是STI和IRET,则下条指令也要执行完。 无总线请求。 (HOLD)信号和复位(RESET) 。 -若NMI和 INTR 同时发生,则首先响应NMI。,响应中断的条件,3)中断响应(续),CPU中断响应时,要做下述五项工作: 向中断源发出INTA中断响应信号;获得向量。 硬件现场保护PSW(FLAGS) 关中断IF=0; 断点保护和CS、
6、IP。这主要是保证中断结束后能返回被中断的程序。 获得中断服务程序首地址(入口)。 如何得到中断处理程序的首地址? 固定入口法-单片机 中断向量法常用,4)中断处理(中断服务),中断服务子程序特点 为”远”过程或“过程”(类型为FAR或NEAR) 要用IRET指令返回 中断服务子程序要做的工作 保护现场(PUSH regs) 开中断(STI) 进行中断处理 关中断(CLI) 恢复现场(POP regs) 中断返回(IRET),push ax;1、保护现场 push bx sti;2、开中断 ;3、中断处理 cli;4、关中断 pop bx;5、恢复现场 pop ax sti;6、开中断和中断返
7、回 iret,Int_48H PROC FAR,5)中断返回,执行中断返回指令IRET IRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行。,IPL,IPH,CSL,CSH,FLAGL,FLAGH,SP,IPL,IPH,CSL,CSH,FLAGL,FLAGH,SP,IP,CS,FLAG,进入中断服务程序时,中断返回后,三、8086中断系统,1、中断类型,8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图,8086的中断分类,0,1,2,4,与中断有关的控制线为:NMI、INTR、INTA# 8088系统的
8、中断源 内部中断 除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。 单步中断:类型号1,TF=1时产生(当前指令需执行完) 断点中断:类型号3,这是一个软件中断,即INT 3指令。 溢出中断:类型号4,这是一个软件中断,即INTO指令。 软件中断:即INT n指令,类型号n(0-32)。 外部中断 非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。 可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。,8088系统采用中断类型码来识别不同的中断源,每个中断源都有一个与它相对应的中断类型码 。 溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值 软件中断的
9、类型码由指令给出 可屏蔽中断的类型码由8259给出,中断矢量的获取?,外部中断和 INT n 之间的关系 结合中断指令INT n,我们可以这样理解外部中断:当外部中断源发中断给CPU时,如果CPU满足一定的条件,处于开中断状态,CPU就可以响应中断,这时外设在CPU正在执行指令与其下一个指令之间,等效“插入”了一个INT n指令,这里的n就是外设提供的中断类型号。,中断服务程序调试非常简单!,1、内部中断可以预测(除法中断除外) 、内部中断不受IF的影响 、内部中断不需要执行从外部获得矢量,2、中断向量表:中断服务子程序的入口地址,从00000H到003FFH区域,大小为1K空间,共256个中
10、断向量。 每个入口地址占用4个字节,低字为段内偏移,高字为段基址 根据中断类型号获得中断服务程序入口4n 。,中断向量统一管理,中断类型号和中断服务子程序的入口地址之间的关系:,例 INT 12H在中断矢量表中的物理地址? INT 8中断服务程序首地址在中断矢量表中的物理地址? 48H 20H,中断向量表的初始化,初始化将中断服务程序的入口地址放入向量表 例:中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。,若外设的中断类型号为6BH,设中断服务程序段地址是1000H,偏移地址为2000H。设置中断向量表,CLI MOV AX,,0 M
11、OV DS,AX;置数据段段基地址为0 MOV AX,2000H MOV 6BH*4, AX;对偏移地址为01AC的单元 MOV AX1000H;送双字 MOV 6BH*4+2l, AX STI,例1 若外设的中断类型号为6BH,则此中断类型号对应的中断矢量表地址为从00lACH开始的四个存储单元设中断服务程序段地址是1000H,偏移地址为2000H。,中断向量表的初始化,CLI MOV AX,0 MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV SI,AX MOV AX,SEG int48h MOV SI+2,AX STI,、8086/8088
12、CPU的中断响应过程,内部中断响应过程 无INTA#周期 中断类型码固定或由指令给出 响应过程主要步骤: PUSH FLAG IF=0 PUSH CS、PUSH IP 取中断向量送入IP和CS,中断响应过程(续),外部中断响应过程 非屏蔽中断,与内部中断响应过程类似 可屏蔽中断(时序见教材图6.24) INTA#(1),PIC进行优先级排队判优处理 INTA#(2),PIC把中断类型码放到DB上,CPU读入 PUSH FLAG IF=0 PUSH CS、 PUSH IP 取中断向量送入IP和CS,与内部中断一样,8088系统中各中断的优先级,优先级从高到低顺序如下: 内部中断 NMI INTR
13、 单步中断,8086/8088的中断响应过程,完成当前指令,内部中断,NMI,INTR,TF=1,执行下一条指令,IF=1,响应中断 读类型码,标志入栈,调服务程序,CS、IP入栈,IF、TF=0,令TEMP=TF,又有NMI,TEMP=1,执行服务程序,CS、IP出栈,标志出栈,返回被中断程序,Y,N,N,N,N,Y,Y,Y,Y,N,N,Y,Y,N,单步,当开关的状态为闭合时,在数码管显示“0”;当开关为打开时,数码管显示“1”。 查询方式相应程序段如下: NEST:MOVDX, 0F1H;状态接口的地址为F1H INAL, DX;读入开关状态 TESTAL, 01 ;测试位 MOVAL,
14、06H Jz DISP;断开显示1 MOVAL, 3FH ;闭合显示0 DISP:MOVDX, 0F0H;数据接口的地址为F0H OUTDX, AL JMPNEST,当开关的状态为闭合时,在数码管显示“0”;当开关为打开时,数码管显示“1”。 查询方式相应程序段如下:,当开关的状态为闭合时,在数码管显示“0”;当开关为打开时,数码管显示“1”。 中断方式相应程序段如下:,读取输入口,D0状态,打开输出“1”,闭合输出“0”,IRET,当开关的状态为闭合时,在数码管显示“0”;当开关为打开时,数码管显示“1”。 中断方式相应服务程序段如下: INT1 PRO NEAR MOV AL,3FH MO
15、V DX,0F0H OUT DX,AL LOP:MOVDX, 0F1H; INAL, DX TESTAL, 01 ;测试位 Jnz LOP;闭合循环 MOVAL, 06 ;打开显示1 MOVDX, 0F0H; OUTDX, AL IRET,PUSH AX PUSH DX STI,CLI POP DX POP AX,中断方式相应主程序段如下: CODE SEGMENT ASSUME CS:CODE START: CLI MOV AX, 0 MOV DS,AX MOV SI, 80H*4 MOV AX, OFFSET INT1 MOV SI, AX MOV AX, SEG INT1 MOVSI+2
16、, AX STI JMP $ CODE ENDS END START,中断服务程序 定义,9.53 中断入口地址设置 一、用串指令 二、用伪指令 三、用系统调用 四、用MOV指令 (直接装入法),例2 若外设的中断类型号为N,则此中断类型号对应的中断矢量表地址为从N*4开始的四个存储单元设中断服务程序的名字INT_VCE,习题9 假设中断类型9的中断服务程序首地址为INT_Proc09,写出建立这个中断矢量表的程序段。 习题10 编写程序,使类型1CH的中断矢量指向中断处理程序SHOW_CLOCK。,CLI;关中断 MOV AX,0 MOV DS,AX;置附件段基地址为0 MOV SI, n*
17、4;假设中断类型号为N MOV AX,OFFSET INT_VCE;置中断程序首地址的偏移量到AX MOV SI,AX;填偏移量到中断地址表 MOV AX, SEG INT_VCE;置中断程序的段基地址到AX MOV SI+2,AX ;填段基地址到中断地址表 STI;开中断 ,例2,9.6 8259简介,PIC,Programmable Interrupt Controller 可对8个中断源实现优先级控制,可扩展至对64个中断源实现优先级控制 在中断响应周期,8259A 可提供相应的中断类型号。 每一级中断可以屏蔽或允许。 可编程设置不同工作方式,一、8259A的内部结构,中断服务寄存器,中
18、断请求 寄存器,IR0,IR1,IR7,IR2,IR3,IR4,IR5,IR6,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,000,1 1,(一)、中断控制部分工作原理,从片A标志码:011,从片B标志码:110,1. 中断请求寄存器 IRR,8 位,若IRi 有效(“1”, ),对应位置“1”,直到IRi 得到响应。,因此,IRR记录外中断源IRi的请求信息。,2. 中断服务寄存器 ISR,8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套时,可能多位置“1”。,因此,ISR记录CPU对IRi的响应情况。,3. 中断屏蔽寄存器 IMR,8位
19、,某位置“ 1”,对应IRi 禁止产生中断。,因此,IMR控制是否对IRi进行屏蔽操作。,4. 优先权电路,实现优先权的判断与处理,采用编码器和比较器电路。,5. 控制逻辑,(1)由IRR 和PR 的情况,向8259A 其它部件发出控制信息。,(2)向CPU 发出INT 信号,接收CPU,信号,并提供中断矢量,(二)、 级联缓冲/比较器,可以实现8259A的级联,扩展外中断。, 主8259A: CAS2CAS0 输出,输出被 响应的从片的标志码。,(三)、 读/写控制逻辑,A0:常常与地址信号线A0相连。,8259A的两个端口地址,8259A 的引脚图,二、8259A的中断管理方式和编程,82
20、59A有多种工作方式,这些工作方式可通过初始化命令字或预置命令字(ICW1ICW4) 和操作命令字(OCW1OCW3) 来设置。,低地址,高地址,ICW2中断向量码,ICW1初始化字,ICW3级连控制字,ICW4中断结束方式字,OCW1中断屏蔽字,OCW2中断结束和优先级循环,OCW3屏蔽方式和读出控制字,7个可编程寄存器,ICW2,ICW3,ICW4,OCW1(顺序写入),端口小结: 8255有4个端口,高地址为控制口;2个控制字。 8253有4个端口,高地址为控制口;1个控制字。 8251有2个端口,高地址为控制口;3个控制字(2个写,1个读) 8259有2个端口,都是控制口;7个控制字,
21、ICW1和OCW2/OCW3写入低地址口,其它写入高地址口。,二、8259A的中断管理方式 (一)、中断优先权管理 1完全嵌套方式 8259A的中断请求输入端引入的中断具有固定的优先权排队顺序,IR0为最高优先级,IR1为次高优先级,依次类推,IR7为最低优先级。,2特殊全嵌套方式 特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,那么,也会给予响应,从而实现一种对同级中断请求的特殊嵌套。 特殊全嵌套方式一般用在8259A级连的系统中。,3自动循环方式 从IR0IR7引入的中断轮流具有最高优先权。 初始优先级队列规定为 IR0I
22、R1IR2IR3IR4IR5IR6IR7 如果IR0端正好有中断请求,处理完后 IR1IR2IR3IR4IR5IR6IR7IR0 如果IR4端正好有中断请求,处理完后 IR5IR6IR7IR0IR1IR2IR3IR4,4优先级特殊循环方式 最低优先级是由编程确定的,从而最高优先级也由此而定。,(三)中断屏蔽方式 有两种方法: 第一、普通屏蔽方式。 第二、采用特殊屏蔽方式。,(四)、 8259A中断结束的管理方式 可采用三种中断结束方式: 自动EOI方式 一般EOI方式 特殊EOI方式,三、 8259A编程 (一)、8259A的初始化命令字 ICW1的格式和含义 主要功能是中断信号的触发方式,例
23、如:上升沿触发,级联 0 0 0 1 0 0 0 1,三、 8259A编程 (一)、8259A的初始化命令字 ICW2的格式和含义 功能是中断类型号,例如:中断类型号为080F 0 0 0 0 1 x x x,三、 8259A编程 (一)、8259A的初始化命令字 ICW3的格式和含义 在8259A有级联情况下使用,主 从,三、 8259A编程 (一)、8259A的初始化命令字 ICW4的格式和含义 主要功能是中断嵌套方式选择,使能中断结束方式,D11为自动EOI,Dl0为非自动EOI D4位SFNM为有级联时定义的,D41为特殊完全嵌套方式,D4=0完全嵌套方式 例如: 0 0 0 0 0
24、0 0 1,三、 8259A编程 (二)、8259A的操作命令字 0CW1的格式和含义 主要功能是确定屏蔽位,1表示禁止中断 0 0 0 1 0 0 0 1,三、 8259A编程 (二)、8259A的操作命令字 0CW2的格式和含义 主要功能是控制中断结束,优先权循环等操作,如果采用一般EOI方式 0 0 1 0 0 0 0 0,0,中断服务寄存器,中断请求 寄存器,IR0,IR1,IR7,IR2,IR3,IR4,IR5,IR6,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,000,1 1,MOV AL,20H OUT 端口(A0=0),AL,三、 8259A编程 (二)、8
25、259A的操作命令字 0CW3的格式和含义 主要功能是控制8259A的中断屏蔽和读取寄存器的状态,一般不用,9.7 中断举例,中断传送方式的设计过程是: 一、硬件方面: 设定硬件的中断类型号。 二、软件方面: 1、关中断; 2、填写中断入口地址表; 3、设置8259A及其他编程芯片; 4、开中断; 5、编写中断服务子程序。,举例一:软件中断,INTO中断 执行结果由两个加数决定, 有溢出:BL0FFH; 无溢出:BL00。,INTO1PROC;中断溢出处理 PUSH AX MOV BL,0FFH POP AX IRET;中断返回 INTO1ENDP,DATASEGMENT;定义数据段 ADD1
26、DB ? ADD2DB ? DATAENDS CODESEGMENT;定义代码段 ASSUME CS: CODE,DS:DATA START:MOV AS,DATA MOV DS,AX,MOV AX,0;填写中断地址表 MOV ES,AX MOV DI,04*4 ;存中断程序首地址的偏移量 MOV AX,OFFSET INTO1;可用MOV AX,CS CLD STOSW ;存中断程序首地址的段地址 MOV AX,SEG INTO1 STOSW,MOV BL,0;主程序 MOV AL,ADD1;计算ADD1ADD2 ADD AL,ADDD2 INTO;若有溢出,转溢出处理 MOV AL,BL
27、MOV AX,4C00H INT 21H HLT,INTO1PROC;中断溢出处理 PUSH AX MOV BL,0FFH POP AX IRET;中断返回 INTO1ENDP ; CODEENDS END START,举例二:硬件中断,下图是一个接口电路,用中断传送方式使8255A的A口的发光二极管依次发光,要求每个二极管在一个循环中发光1S。设8255A端口地址为80H86H,8253端口地址为88H8EH,主8259端口地址为90H96H,从8259端口地址为98H9EH,CA0 CA1 CA2,CA0 CA1 CA2,SP,SP,+5V,0V,/INTA,/INTA,/INTA,INT
28、,INT,INTR,IR0 IR7,IR0 IR7,OUT0 GATA0 CLK0,+5V 1KHz,A0 A1 A7,+5V,8259,8259,8255,8253,8255A的A口工作方式可选为方式0的输出,而8253通道0的工作方式可定为方式0,即计数结束产生中断信号。 8255A的方式控制字:10001011B。即A输出,B口输入,C口输入。 8253通道0的方式控制字:00110001B。即工作方式为方式0,BCD码计数。,8259设置特点 1、初始化具有顺序性 2、顺序为 ICW1、ICW2、ICW3、ICW4,主8259设置 ICW1:上升沿触发,级联 端口90H:0001000
29、1B ICW2:中断类型码,端口92H:08H ICW3:主片从片标志,端口92H:00000100B ICW4:完全中断嵌套方式,非自动中断结束方式 端口92H:00000001B,从8259设置 ICW1:上升沿触发,级联 端口98H:00010001B ICW2:中断类型码,端口9AH:30H ICW3:主片从片标志,端口9AH:00000010B ICW4:完全中断嵌套方式,非自动中断结束方式 端口9AH:00000001B, SHIFT_DATDB 0FEH CLI;关中断 CLD;填写中断入口地址表 MOV AX,0 MOV ES,AX MOV DI,4*31H MOV AX,OF
30、FSET INT_31H MOV ES:DI,AX INC DI INC DI MOV AX,SEG INT_31H MOV ES:DI,AX,;设置主8259 MOV AL,11H;设置ICW1 OUT 90H,AL MOV AL,08;设置ICW2 OUT 92H,AL MOV AL,04;设置ICW3 OUT 92H,AL MOV AL,01;设置ICW4 OUT 92H,AL MOV AL,01101011B;设置IOW1,开放IR2,IR4,IR7中断 OUT 92H,AL,;设置从8259 MOV AL,11H;设置ICW1 OUT 98H,AL MOV AL,30H;设置ICW2
31、 OUT 9AH,AL MOV AL,02;设置ICW3 OUT 9AH,AL MOV AL,01;设置ICW4 OUT 9AH,AL MOV AL,00000000B;设置IOW1,开放IR0IR7中断 OUT 9AH,AL,;设置8255和8253 MOV AL,10001011B;设置8255A OUT 86H,AL MOV AL,0 OUT 80H,AL MOV AL,00110001B;设置8253通道0 OUT 8EH,A MOV AL,00 OUT 88H,AL MOV AL,10H OUT 88H,AL STI;开中断 ;执行其他程序,中断服务子程序: 主要是对8255的A口进行操作,使变量SHIFT_DAT的内容左移, 重新设置8253通道0,为下一次中断信号产生作准备, 对8259A传送一个EOI命令,表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年工程勘察设计行业知识管理现状
- 2026年增强现实(AR)广告互动体验设计
- 2026年PMO如何引入并推广项目管理工具
- 胸痹护理应急预案与演练
- 战略地图绘制与战略评估合同协议
- 2026届高考作文话题预测及主题素:诗意的生命
- 2026年平安建设工作基础知识手册
- 聚焦战略2026年数据共享协议
- 2026年民族服饰与特殊面料清洗技术培训
- 线上企业培训平台运营合同
- 【答案】《以案说法》(中南财经政法大学)章节作业慕课答案
- 云南省2025年普通高中学业水平合格性考试历史试题
- 小小科学家《物理》模拟试卷A(附答案)
- 如何加快发展新质生产力
- 四川省安全员《A证》考试题库及答案
- 雷达探测介绍课件
- 易普拉格科研管理系统
- 成品仓年终总结
- GB/T 39844-2021可靠性增长统计试验和评估方法
- GB/T 20641-2014低压成套开关设备和控制设备空壳体的一般要求
- GB/T 13454.2-2013塑料粉状三聚氰胺-甲醛模塑料(MF-PMCs)第2部分:试样制备和性能测定
评论
0/150
提交评论