资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,掌握:,中断的基本概念,中断响应的一般过程,中断向量表及其初始化,8088/8086,中断系统,6-4,中断技术,中断过程,中断请求,中断优先级排队,中断响应,中断处理(服务),中断返回,请看下页流程图,中断服务,入口,中断请求,中断返回,主程序,6-4,中断技术,CPU,#1,中断源,中断,系统,中断请求,INTR,#2,中断源,#3,中断源,转中断服务程序,A,保护现场,中断服务,恢复现场,开中断,返回,A,取下一条指令,INTR=1,?,INTA=0,IF=0,堆栈,FLAGS,堆栈,CS,:,IP,STI,IFF=1,I,RET,CS,:,IP,入口,中,断,处,理,6-4,中断技术,有中断?,关中断,保存,FLAGS,保护断点,取得入口地址,N,当前指令结束,开中断?,N,开中断,关中断,中,断,响,应,中,断,判,优,中断返回,中断请求,NMI,中断,逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控,制器,8259A,PIC,8086/8088CPU,内部逻辑,断点中断,可,屏,蔽,中,断,请,求,n,4,3,0,1,2,内外中断共计,256,个中断源,6-5 80X86,中断系统,一、,8086/8088,中断源类型,:,中断优先级原则:,单步最低,内部高于外部、类型码越小优先级越高,INTR,INTA,查询中断的顺序,,决定了各种中断源的优先权,软件中断,除法错中断,指令中断,溢出中断,非屏蔽中断,可屏蔽中断,单步中断,6-5 80X86,中断系统,二、中断向量与中断向量表,中断向量:,中断程序的入口地址,中断向量表:,存放中断向量的内存区域,从内存,00000H,到,003FFH,,共计,1KB,0,入口,0000,:,000,0H,0000,:,03FF,H,中断向量表,1,入口,2,入口,255,入口,00H04H,08H0FH,10H1FH,20H3FH,40HFFH,专用,硬件专用,BIOS,专用,DOS,专用,用户,结论:,中断向量在中断向量表中的地址确定:,=0000,:中断类型码,4,INT 0,INT 1,1000,:,2050H,0000,:,0000H,0000,:,0004H,类型,0,入口,类型,1,入口,中断程序,0000,:,0120H,0121H,0122H,0123H,INT 48H,INTPROC,6-5 80X86,中断系统,问题:已知中断类型码,48H,,中断向量为,INTPROC,则该中断向量在中断向量表中的地址为:,(中断类型,48H,),48H4,0120H,50,20,00,10,6-5 80X86,中断系统,三 中断向量表的初始化,INT 0,INT 1,1000,:,2050H,0000,:,0000H,0000,:,0004H,类型,0,入口,类型,1,入口,中断程序,50,20,00,10,0000,:,0120H,0121H,0122H,0123H,INT 48H,INTPROC,MOV AX,,,0000H,MOV DS,,,AX,MOV BX,,,OFFSET INTPROC,MOV ,0120H,,,BX,MOV BX,,,SEG INTPROC,MOV,0122H,,,BX,(中断类型,48H,),(,将中断向量放到中断向量表中,),例,2,:,若中断类型号为,3,,则由中断类型号取得中断服务入口地址的过程如下图所示:,00000H,00001H,0000CH,(0000:000CH),1EA00H,(1E00:0A00H),FFFFFH,低地址,内存,高地址,1E00 0 H,+0A0 0 H,1EA0 0 H,中断类型号,34,000CH,.,00(IP,L,),0A(IP,H,),00(CS,L,),1E(CS,H,),.,中断服务程序,四、,8086,中断响应过程:,6-5 80X86,中断系统,1,、,CPU,响应中断需要得到中断类型码,2,、不同类型的中断 提供中断类型码的方式不同;,NMI,及内部中断的类型码由,CPU,自动提供,没有中断响应周期;,INTR,的类型码由中断控制器提供,中断,控制器,外设,中断,传送,程序,5,、,CPU,:中断向量码,4,;,找到中断入口地址;,执行中断服务程序。,1,、中断产生;,2,、中断申请;,3,、,CPU,中断响应;,4,、,CPU,读取中断类型码;,DB,INTR,CPU,INTA,6-5 80X86,中断系统,INTR,中断响应过程:,中断响应时序(可屏蔽中断),INTA,CLK,通知外设中断请求已被接受,,CPU,读取外设送出的中断类型码,当外设 使,INTR=1,时:,若,CPU,开中断(,IF=1,)则响应,发出,INTA,若,CPU,关中断(,IF=0,)则,CPU,不响应。,6-5 80X86,中断系统,8259A,8086,CPU,中断控制电路,中断,类型码,INTR,INTA,IR0,IR1,IR7,6-6,可编程中断控制器,8259A,一、功能,1,、单片,8259A,可对,8,个中断源控制,,9,片级联可扩展到,64,级;,2,、能向,CPU,提供中断类型码;,3,、可通过编程选择多种工作方式,6-6,可编程中断控制器,8259A,二、内部结构,IR,0,IR,1,IR,7,INT INTA,D,7,D,0,RD,WR,A,0,CS,CAS,0,CAS,1,CAS,2,SP/EN,数据总线缓冲器,读,/,写逻辑,级连缓冲,/,比较器,在服务寄存器,ISR,(,8,),优先权电路,PR,(,8,),中断请求寄存器,IRR,(,8,),中断屏蔽寄存器,IMR,(,8,),控制逻辑,IRRi=1,表示外设中断请求,IMRi=0,该位允许中断,,IMRi=1,,该位被屏蔽,ISRi=1,该位正在服务,该位中断处理结束,ISRi=0,IR,0,IR,1,IR,7,INT INTA,D,7,D,0,RD,WR,A,0,CS,CAS,0,CAS,1,CAS,2,SP/EN,数据总线缓冲器,读,/,写逻辑,级连缓冲,/,比较器,在服务寄存器,ISR,(,8,),优先权电路,PR,(,8,),中断请求寄存器,IRR,(,8,),中断屏蔽寄存器,IMR,(,8,),控制逻辑,三、常用引脚介绍,6-6,可编程中断控制器,8259A,1,、,A,0,-,端口选择,接,CPU,低位地址线。,A,0,0,-,偶端口地址;,A,0,1,-,奇端口地址。,IR,0,IR,7,译,码,器,A,1,A,0,A,14,A,13,8088,CPU,A,15,DB 8,位,8259A,CS,A,0,6-6,可编程中断控制器,8259A,2,、,CAS,2,CAS,0,-,级联信号线,用作主片时,为输出线;用作从片时,为输入线;,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,主,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,从,INTR,INTA,DB,问题:,5,片级连可允许接收多少个中断源?,6-6,可编程中断控制器,8259A,3,、,SP/EN-,主从控制,/,允许,双向;,输入方向,:,SP=1,,则为主片,SP=0,,则为从片,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,主,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,从,SP/EN,+5V,SP/EN,地,CPU,的,INTR,端,INTA,DB,6-6,可编程中断控制器,8259A,输出方向,:用于缓冲器方式,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,主,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA DB,INT,从,SP/EN,SP/EN,INTR,INTA,DB,B,T,OE,A,B,T,OE,A,8286,8286,SP/EN,输出方向,缓冲器方式,1,1,6-6,可编程中断控制器,8259A,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,IRR,ISR,IMR,1,DB,中断类型码,1,四、,8259A,的工作流程,CPU,INTR,INTA,ISRi,复位:在,AEOI,方式,当第二个,INTA,结束时;,其它情况,在,IRET,前,发,EOI,命令,使,ISRi,复位。,6-6,可编程中断控制器,8259A,中断服务程序,0,五、,8259A,的中断方式,3,、屏蔽中断源的方式,1,、设置优先级的方式,2,、中断结束方式,4,、中断触发方式,6-6,可编程中断控制器,8259A,1,、设置优先级的方式,1,)全嵌套方式(缺省),固定优先级,,IR,0,最高,,IR,7,最低,IR,7,IR,6,IR,5,IR,4,IR,3,IR,2,IR,1,IR,0,最高,最低,DB IR,0,IR,1,IR,2,INT IR,3,IR,4,IR,5,INTA IR,6,IR,7,时钟,键盘,用户,异步通讯,COM1,硬盘,软盘,打印机,6-6,可编程中断控制器,8259A,2,)特殊全嵌套方式:(级连时用于主片)与完全嵌套方式类似,但允许高级或同级中断;同级指来自同一从片上的中断请求,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA,INT,8259A,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,CAS,2,CAS,0,INTA,INT,8259A,主,从,6-6,可编程中断控制器,8259A,中断结束:,只有从片所有的中断结束时,才能向主片发中断结束命令,3,)优先级自动循环方式:初始队列,IR,0,最高,,IR,7,最低,当任何一级中断被处理后则其优先级变为最低,,IR,0,IR,1,IR,2,IR,3,IR,4,IR,5,IR,6,IR,7,IR,4,IR,5,IR,6,IR,7,IR,0,IR,1,IR,2,IR,3,中断被响应,则级别变最低,4,)优先级特殊循环方式:,编程指定初始队列最低优先级,其它依次排列,(级别最高),(级别最低),(级别最低),(级别最高),6-6,可编程中断控制器,8259A,2,、,8259A,中断结束方式,ISRi“1”,表示 I,S,Ri被响应,使ISRi“0”,表示8259A中断结束;,分为:自动中断结束,正常中断结束,特殊中断结束,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,ISR,1,0,ISR,中断服务寄存器,6-6,可编程中断控制器,8259A,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,ISR,1,0,1,2,1,)中断自动结束方式(,AEOI,命令方式):,第二个,INTA,的后沿使,8259A,优先级最高的,ISRi=0,。适用于无中断嵌套的系统,CPU,INTR,INTA,6-6,可编程中断控制器,8259A,2,)正常中断结束方式(,EOI,命令方式):,中断返回,IRET,之前 向,8259A,发出,中断结束,命令,分为 正常,EOI,命令和特殊,EOI,命令:,:,中断,服务,程序,MOV AL,,,20H,OUT 20H,,,AL,IRET,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,ISR,1,0,EOI,命令,6-6,可编程中断控制器,8259A,正常,EOI,命令:,使优先级最高的,ISRi,0,(最后一次响应和处理的中断),适用于普通全嵌套方式下的中断结束。,特殊,EOI,命令:,指定所清除的,ISR,位,处于从片的,8259A,没有工作在全嵌套方式时使用。,R SL EOI 0 0 L,2,L,1,L,0,OCW2,特殊方式,IR,编码,000,对应,IR,0,端,001,对应,IR,1,端,010,对应,IR,2,端,011,对应,IR,3,端,100,对应,IR,4,端,101,对应,IR,5,端,110,对应,IR,6,端,111,对应,IR,7,端,1=,正常,EOI,1=,特殊,6-6,可编程中断控制器,8259A,普通屏蔽方式:,IMRi=1,,该位被屏蔽;,IMRi=0,,且该位优先级高,则允许中断,特殊屏蔽方式:,IMRi=1,,该位被屏蔽;而置,0,的位无论优先级高低均可以中断。,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,IMR,1,IMR,:,中断屏蔽寄存器,3,、屏蔽中断源的方式,:,6-6,可编程中断控制器,8259A,1,)边沿触发:,IRi,从低电平变为高电平,表示中断请求;,2,)电平触发:,IRi,为高电平,表示中断请求,,IRRi,置,1,IRR,中断请求寄存器,4,、中断触发方式,IR,0,IR,4,IR,6,IR,7,IR,1,IR,2,IR,3,IR,5,INTA,INT,8259A,IRR,3,)中断查询方式,:,超过,64,个中断请求信号时使用。,6-6,可编程中断控制器,8259A,
展开阅读全文