收藏 分销(赏)

微机原理 第8章 中断系统.ppt

上传人:pc****0 文档编号:13229138 上传时间:2026-02-07 格式:PPT 页数:47 大小:2.80MB 下载积分:10 金币
下载 相关 举报
微机原理 第8章 中断系统.ppt_第1页
第1页 / 共47页
微机原理 第8章 中断系统.ppt_第2页
第2页 / 共47页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,8,章 中断系统,第,8,章 中断系统,8.1,概 述,8.2 80X86,中断系统,8.3,中断控制器,8259A,8.1,概 述,8.1.1,中断的基本概念,1,中断和中断源,所谓,“,中断,”,是指,CPU,中止正在执行的程序,转去执行请求,CPU,为之服务的内、外部事件的服务程序,待该服务程序执行完后,又返回到被中止的程序中继续运行的过程。,引起,CPU,中断的事件称为,“,中断源,”,。常见的中断源有:,外部设备的请求,如,CRT,终端、键盘、打印机等;,由硬件故障引起的,如电源掉电,硬件损坏等;,实时时钟,如定时器芯片等;,由软件引起的,如程序错、运算错、为调试程序而设置的断点等。,8.1.2,中断处理过程,1,中断请求,2,中断判优,3,中断响应,2,中断系统的功能:,能实现中断响应、中断服务及中断返回。,能实现中断优先权排队,能实现中断嵌套,通常中断响应的操作过程应包括(由硬件实现):,保留断点地址,关闭中断允许(关中断),转入中断服务程序,4,中断处理,(由中断服务程序完成,),开中断*(弱允许中断嵌套),保护现场,完成中断服务,恢复现场,5.,中断返回,8.1.3,中断优先级,(,优先权,),1,软件查询方式,2,链式优先权排队(菊花链法),3,可编程中断控制器,中断控制器是集中断请求、中断屏蔽、中断判优、中断源类型码提供等功能于一身的专用大规模集成芯片。,采用可编程中断控制器是当前微型计算机中解决中断的最常用方案。,Intel,公司的,8259A,,,就是具有上述功能的可编程中断控制器。,8.2 80 x86,中断系统,80 x86,的中断系统可处理,256,种个中断源。这些中断源可分为两大类:,外部中断(硬件中断),内部中断(软件中断),8.2.1,外部中断(硬件中断),1,、可屏蔽中断,INTR,受,CPU,中断允许标志位,IF,的控制,即,IF=1,时,,CPU,才能响应,INTR,引脚上的中断请求。,复习:,CLI,功能:,IF 0,STI IF 1,当可屏蔽中断被响应,,CPU,需执行,7,个,总线周期,才转入中断服务程序。即,:,(1),在第一个总线周期内通知外部中断系统,CPU,已响应;,(2),在第二个总线周期,从中断源读取中断类型号;,(3),执行一个总线写周期,将标志寄存器内容压栈,同时使,IF,为,0,,,TF,为,0,;,(4),执行一个总线写周期,把,CS,内容压栈;,(5),执行一个总线写周期,把当前,IP,内容压栈;,(6),执行一个总线读周期,从中断向量表中读取中断服务程序的偏移地址并送,IP,;,(7),执行一个总线读周期,从中断向量表中读取中断服务程序的段地址并送,CS,。,2,、非屏蔽中断,非屏蔽中断,NMI,信号连到,CPU,的,NMI,引脚,它不受,CPU,中断允许标志位,IF,的控制;,中断类型号为,2,;,PC,机系统中,,NMI,被用于检查系统,RAM,的奇偶错,或,I/O,通道中扩展选件板上的奇偶校验错等。,8.2.2,内部中断(软件中断),除法错中断:,执行除法指令时,若除数为,0,或商超过寄存器所能表达的范围,则,CPU,立即产生一个中断类型号为,0,的中断。,溢出中断:,如果上一条指令使溢出标志位,OF,为,1,,则执行,INTO,指令产生中断,溢出中断的中断类型号为,4,。,INT n,指令中断:,在执行中断指令,INT n,时产生的一个中断类型号为,n,的内部中断。,单步中断:,当单步标志(陷阱标志),TF,置,“,1,”,时,,80 x86,处于单步工作方式。在单步工作时,每执行完一条指令,,CPU,自动产生中断类型号为,1,的中断。,断点中断:,断点中断是,80 x86,提供的一种调试程序的手段。用于设置程序中的断点,中断类型号为,3,。,中断优先级(,由高到低,):,除法错、溢出、,INT n,指令、断点中断,非屏蔽中断,可屏蔽中断,INTR,单步中断,8.2.3,中断向量表,中断向量表是存放中断服务程序入口地址的表格。它存放于系统内存的最低端,共,1024,个字节,每,4,个字节存放一个中断服务程序的入口地址。,CPU,响应中断后,将中断类型号,4,,在中断向量表中,“,查表,”,得到中断服务程序入口地址,分别送,CS,和,IP,,,从而转入中断服务程序。,设置中断向量的方法:,1,、将中断服务程序的入口地址直接写入中断向量表中的相应单元,MOV AX,0000H,MOV DS,AX,MOV SI,中断类型号,*,4,MOV AX,中断服务程序偏移地址,MOV SI,AX,MOV AX,中断服务程序段地址,MOV SI+2,AX,2,、二是利用,DOS,功能调用完成中断向量的设置,中断向量设置,(DOS,功能调用,INT 21H),功能号:,AH=25H,入口参数:,AL=,中断类型号,,DS:DX=,中断向量,(,段地址,:,偏移地址,),获取中断向量,(DOS,功能调用,INT 21H),功能号:,AH=35H,入口参数:,AL=,中断类型号,出口参数:,ES:BX=,中断向量,(,段地址,:,偏移地址,),8.2.4 80 x86,中断响应过程,8.3,中断控制器,8259A,在,PC/XT,微机系统中使用了一片,8259A,,在,PC/AT,微机系统中使用了两片,8259A,。,目前的,PC,系列微机,其外围接口芯片(如,80C286,),都集成有与两片,8259A,相当的中断控制电路。,8.3.1 8259A,的功能,具有,8,级优先权控制,通过级联可扩展至,64,级。,每一级均可通过编程实现屏蔽或开放。,能向,CPU,提供相应的中断类型号。,可通过编程选择不同的工作方式。,8.3.2 8259A,的内部结构和引脚特性,1.,重要的寄存器,中断请求寄存器(,IRR,),:,用于寄存外部设备提出的中断请求,当,IR,0,IR,7,中任何一个变为高电平,,IRR,中的相应位置,“,1,”,。,中断服务寄存器(,ISR,):,用于寄存所有正在被服务的中断请求,,8259A,在接收到第一个信号后,使当前被响应的中断请求所对应的,ISR,置,“,1,”,,而相应的,IRR,复位。在中断嵌套时,,ISR,中有多个位为,“,1,”,。,中断屏蔽寄存器(,IMR,):,用于寄存要屏蔽的中断。某位为,“,1,”,,表示屏蔽相应中断请求,为,“,0,”,,表示开放相应中断请求。,2.,需要说明的引脚:,A,0,:,地址线,输入,在使用中,8259A,占用相邻两个端口地址,,A,0,与 配合,,A,0,=1,选中奇地址端口,,A,0,=0,选中偶地址端口。在,80X86,的,PC,系列机中,主片,8259A,的端口地址为,20H,和,21H,。,CAS,2,CAS,0,:,级联信号线,对主片,8259A,,,它为输出;对从片,8259A,,,它为输入。主、从片,8259A,的,CAS,2,CAS,0,对应相连,主片,8259A,在第一个响应周期内通过,CAS,2,CAS,0,送出识别码,而和此识别码相符的从片,8259A,在接收到第二个信号后,将中断类型码发送到数据总线上。,/,:从编程,/,缓冲器允许信号,双向。,/,作为输入还是输出,取决于,8259A,是否采用缓冲方式,若采用缓冲方式,,/,作为输出,反之,作为输入。作为输入的 使用时,用于区分主、从片,8259A,。,主片,8259A,的,=1,,从片,8259A,的,=0,。作为输出的 使用时,作为数据总线缓冲器的使能信号。,INT,:,中断请求信号,输出。与,CPU,的,INTR,引脚连接。,:中断响应信号,输入。与,CPU,的 引脚连接。,8.3.3 8259A,的工作方式,1.,中断嵌套方式,(,1,)全嵌套方式。全嵌套方式是,8259A,最常用的一种工作方式,中断优先级别固定,,IR,0,最高,,IR,7,最低。当,IR,i,中断请求响应时,相应的,ISR,i,位置,1,,在中断服务过程中禁止同级和优先级低于本级的中断请求。,(,2,)特殊全嵌套方式。特殊全嵌套方式与全嵌套方式基本相同,只是在特殊全嵌套方式下,可响应同级的中断请求。特殊全嵌套方式一般用于,8259A,的级联情况。,2.,循环优先方式,(,1,)优先级自动循环方式。初始时,优先次序为,IR,0,IR,7,,,IR,0,最高,,IR,7,最低。当某级中断响应后,则优先级降为最低。而其后的与之相邻的优先级升为最高。如,,IR,3,响应后的优先级次序变为,IR,4,,,IR,5,,,IR,6,,,IR,7,,,IR,0,,,IR,1,,,IR,2,,,IR,3,。,(,2,),优先权特殊循环方式。优先权特殊循环方式与优先权循环方式相比仅有一点不同,就是在优先权特殊循环方式下,一开始的最低优先权是由编程确定的。,3,中断屏蔽方式,(,1,)普通屏蔽方式。这种屏蔽方式是通过编程将中断屏蔽字写入,IMR,而实现的。若写入某位为,1,,则对应的中断请求被屏蔽;为,0,,则对应的中断请求被开放。,(,2,)特殊屏蔽方式。,在执行较高级的中断服务时,希望开放较低级的中断请求。,采用普通屏蔽方式是不能实现这一要求的,因为用普通方式时,即使把较低级的中断请求开放,但由于,ISR,中当前正在服务的较高中断级的对应位仍为,“,1,”,,它会禁止所有优先级比它低的中断请求。采用特殊屏蔽方式,可在中断服务程序中用中断屏蔽命令字来屏蔽当前正在服务的中断级别(即设置,IMR,的相应位为,“,1,”,),同时使,ISR,中对应位清,“,0,”,,这样就不但屏蔽了当前正在服务的中断级,同时真正开放了其它优先级较低的中断请求。,4,结束中断处理方式,8259A,有两种不同的结束中断处理方式:,(,1,)自动中断结束方式(,AEOI,)。,此种方式只能用于单片,8259A,的系统中,,8259A,在第二个,信号的上升沿,自动清除,ISR,的相应位。,显然,AEOI,只能用于不允许中断嵌套的情况下。,(,2,)非自动中断结束方式(,EOI,)。,在这种工作方式下,,中断服务程序返回前,必须向,8259A,发送中断结束命令,清除,ISR,的相应位,,表示该中断处理的结束。,5,程序查询方式,(,1,)边沿触发方式,(,2,)电平触发方式,6,中断请求触发方式,设置查询方式的过程为:写入查询方式命令字,然后读取,8259A,的查询字(,IRR,寄存器)。,I=1,(,D,7,),表示有中断请求,,W,2,W,1,W,0,表示,8259A,请求服务的最高优先级编码,。,8.3.4 8259A,的编程,1,8259A,的初始化命令字,(,1,)初始化命令字,ICW,1,D,3,(,LTIM,),表示中断请求信号起作用的触发方式。,D,3,=1,为电平触发,,D,3,=0,为边沿触发。,D,1,(,SNGL,),表示系统是使用单片,8259A,还是多片,8259A,。,D,1,=1,为单片,,D,1,=0,为多片。,D,0,(,ICW,4,),表示是否需要,ICW,4,。,D,0,=1,为需要,,D,0,=0,为不需要。,D,2,(,ADI,)在,8080,8085CPU,模式下用,,80 x86 CPU,模式下不用。,(,2,)初始化命令字,ICW,2,设定,8259A,的中断类型号,D,7,D,3,为中断类型号的高,5,位,由用户给出。低,3,位由,8259A,按,IR,0,IR,7,三位编码值自动填入。,(,3,)初始化命令字,ICW,3,(,多片时需要),8259A,作为主片的格式:,(,D,i,=1,表示,IR,i,接有从片),8259A,作为从片的格式:,表示从片的,INT,输出与主片,8259A,中的哪一个,IR,i,相连接,(,4),初始化命令字,ICW,4,D,0,(,PM,):,D,0,=1,为,80 x86,系统,,D,0,=0,为,8080,8085,系统。,D,1,(,AEOI),:,表示是否采用自动结束中断方式,,D,1,=1,为自动中断结束方式,,D,1,=0,为非自动中断结束方式。,D,2,(,M/S,):,D,2,=1,为主片,,D,2,=0,为从片。,D,3,(,BUF,):,D,3,=1,表示有缓冲器,D,3,=0,表示没有缓冲器。,(,决定,8259A,和系统数据总线之间是否有缓冲器,),D,4,(,SFNM,):,D,4,=1,为特殊全嵌套方式,,D,4,=0,为全嵌套方式。(用于设定级联方式下的优先权管理方式),写入初始化命令字的流程:,2,8259A,的操作命令字,(,1,)操作命令字,OCW,1,(,屏蔽操作命令字),M,i,=1,表示,IR,i,上的中断请求被屏蔽,(,2,)操作命令字,OCW,2,(,中断方式命令字),D,7,(,R,):,中断排队是否循环的标志。,R=1,为优先级循环方式,,R=0,为固定优先级方式。,D,6,(,SL,):,选择,L,2,L,1,L,0,编码是否有效的标志。若,SL=1,,则,L,2,L,1,L,0,编码有效,若,SL=0,,,则无效。,D,5,(,EOI,):,中断结束命令。,D,5,=1,时,则使现行的,ISR,中最高优先级的相应位复位(一般中断结束方式),或由,L,2,L,1,L,0,指定的,ISR,相应位复位(特殊中断结束方式)。,D,2,D,1,D,0,(,L,2,L,1,L,0,):,对应,8,个二进制编码,有两个作用:一是用在特殊,EOI,命令中,表示清除的是,ISR,的哪一位;另一是用在优先权特殊循环方式中,表示系统中最低优先级编码。,(,3,)操作命令字,OCW,3,(,状态操作命令字),D,6,D,5,:,决定,8259A,是否工作于特殊屏蔽方式。,D,6,D,5,为,11,时,,8259A,为特殊屏蔽方式;,D,6,D,5,为,10,时,,8259A,为一般屏蔽方式。,D,1,D,0,:,两位规定随后读取的寄存器。,D,1,D,0,为,11,时,表示要读,ISR,;,D,1,D,0,为,10,时,表示要读,IRR,。,D,2,(P),:,决定,8259A,是否处于程序查询方式。,D,2,=1,时,,8259A,处于程序查询方式。当,8259A,发出查询命令后,随后从偶地址读出的数据即为中断请求状态字,其格式见,7.3.3,中的程序查询方式。,3,8259A,编程举例,8259A,在,IBM-PC/XT,中的应用,IBM-PC/XT,微机,8259A,的初始化程序:(,8259A,的,I/O,端口地址为,20H,和,21H,),MOV AL,,,00010011B,;,ICW1,,,边沿触发,单片,8259A,,需,ICW4,OUT 20H,,,AL,MOV AL,,,00001000B,;,设置,ICW2,,,中断类型号高,5,位为,00001,OUT 21H,,,AL,MOV AL,,,00001101B,;,设置,ICW4,,,非自动中断结束方式,,;完全嵌套方式,缓冲方式,OUT 21H,,,AL,【,例题,8.1】,读中断请求寄存器,IRR,内容。设,8259A,偶地址端口为,20H,,,奇地址端口为,21H,。,若要对,IRR,或,ISR,读出时,则必须先写一个,OCW,3,命令字,以便,8259A,处于被读状态,然后再从偶地址端口读出,IRR,或,ISR,中的内容。程序段如下:,MOV AL,,,0EH,OUT 20H,,,AL,;,设置,OCW,3,NOP,IN AL,,,20H,;读,IRR,内容,【,例题,8.2】,试编程实现主机每次响应,8259A,的,IR,2,中断请求,显示字符串,“,This is a 8259A interrupt!,”,,,中断,10,次结束。,8259A,偶地址端口为,20H,,,奇地址端口为,21H,,,IR,2,的中断类型号为,0AH,。,程序流程如图,程序如下:,DATA SEGMENT,MESS DB,This is a 8259A interrupt!,0Ah,0Dh,$,DATA ENDS,CODE SEGMENT,ASSUME CS:CODE,DS:DATA,START:MOV AX,DATA,MOV DS,AX,CLI,;,关中断,PUSH DS,MOV AX,SEG DISPLAY,;,取中断服务程序入口段地址,MOV DS,AX,MOV DX,OFFSET DISPLAY,;,取中断服务程序入口偏移地址,MOV AX,250AH,;,设置中断向量,INT 21H,POP DS,MOV AL,13H,;,设置,ICW,1,,,边沿触发,单片,8259A,,需,ICW,4,OUT 20H,AL,MOV AL,08H,;,设置,ICW,2,,,中断类型号的高,5,位为,00001,OUT 21H,AL,MOV AL,05H,;,设置,ICW,4,,非,AEOI,方式,完全嵌套方式,OUT 21H,AL,IN AL,21H,;,读取,IMR,AND AL,0FBH,;,开放,IR,2,OUT 21H,AL,MOV BL,10,;,初始化中断次数,STI,WAIT1:CMP BL,0,NOP,JNZ WAIT1,CLI,IN AL,21H,OR AL,04H,;,禁止,IR,2,OUT 21H,AL,STI,MOV AH,4CH,;,返回,DOS,INT 21H,DISPLAY PROC NEAR,LEA DX,MESS,;,显示字符串,MOV AH,09H,INT 21H,DEC BL,MOV AL,20H,;,发送中断结束命令,OUT 20H,AL,IRET,DISPLAY ENDP,CODE ENDS,END START,8.3.5 8259A,的级联,在一个中断系统中,可以使用多片,8259A,,,采用级联方法,使中断优先级从,8,级可扩展到,64,级。在级联时,只能有一片,8259A,作为主片,其余的,8259A,均作为从片。,主,8259A,的三条级联线,CAS,0,CAS,2,作为输出线,通过驱动器连接到每个从片的,CAS,0,CAS,2,的输入端。如只有一个从片,也可不加驱动器。,图,8-9,为,80 x86,微机系统中,使用,2,片,8259A,构成的级联中断系统。系统分配给主片,8259A,的端口地址为,20H,和,21H,,,从片,8259A,的端口地址为,A0H,和,A1H,,,系统加电后,,BIOS,对它们的初始化程序如下:,8259A,在,80X86,系统中的应用,;主片,8259A,MOV AL,11H,;,设置,ICW,1,,,边沿触发,需,ICW,4,OUT 20H,AL,MOV AL,08H,;,设置,ICW,2,,,中断类型号的高,5,位为,00001,OUT 21H,AL,MOV AL,04H,;,设置,ICW,3,,,从片连到主片的,IR,2,上,OUT 21H,AL,MOV AL,15H,;设置,ICW,4,,,非缓冲,非自动,EOI,,,特殊全嵌套方式,OUT 21H,AL,;从片,8259A,MOV AL,11H,;,设置,ICW,1,,,边沿触发,需,ICW,4,OUT 0A0H,AL,MOV AL,70H,;,设置,ICW,2,,,中断类型号的高,5,位为,01110,OUT 0A1H,AL,MOV AL,02H,;,设置,ICW,3,,,设定从片级联于主片的,IR,2,OUT 0A1H,AL,MOV AL,01H,;,设置,ICW,4,,,非缓冲,非自动,EOI,,,全嵌套方式,OUT 0A1H,AL,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服