《中断系统》PPT课件 (2).ppt
《《中断系统》PPT课件 (2).ppt》由会员分享,可在线阅读,更多相关《《中断系统》PPT课件 (2).ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.2 中断处理过程中断处理过程 中断处理流程中断处理流程 中断嵌套中断嵌套 中断的应用实例中断的应用实例 图5-3 中断流程图中断处理流程 中断处理过程可分为中断处理过程可分为中断请求、中断响应、中中断请求、中断响应、中断处理和中断返回四个阶断处理和中断返回四个阶段。不同的计算机因其中段。不同的计算机因其中断系统的硬件结构不同,断系统的硬件结构不同,因此,中断响应的方式也因此,中断响应的方式也有所不同。这里仅以有所不同。这里仅以8051单片机为例进行叙述。其单片机为例进行叙述。其主要内容及一般顺序如图主要内容及一般顺序如图5-3所示。所示。1中断请求中断请求中断源发出中断请求信号,相应的中断
2、请求中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器标志位(在中断允许控制寄存器TCON中)置中)置“1”。CPU将不断地及时查询这些中断请求标将不断地及时查询这些中断请求标志,一旦查询到某个中断请求标志置位,志,一旦查询到某个中断请求标志置位,CPU就会响应该中断源中断。就会响应该中断源中断。2.中断响应中断响应CPU的中断响应条件的中断响应条件CPU响应中断必须首先满足以下三个基本条件。响应中断必须首先满足以下三个基本条件。(1)有中断源发出中断请求。有中断源发出中断请求。(2)中断总允许位中断总允许位EA=1,即即CPU开中断。开中断。(3)申请中断的中断源的中断允许位
3、为申请中断的中断源的中断允许位为1,即中断没有被屏即中断没有被屏蔽。蔽。在满足以上条件的基础上,若有下列任何一种情况存在满足以上条件的基础上,若有下列任何一种情况存在,中断响应都会受到阻断。在,中断响应都会受到阻断。(1)CPU正在执行一个同级或高优先级的中断服务程序。正在执行一个同级或高优先级的中断服务程序。(2)正在执行的指令尚未执行完。正在执行的指令尚未执行完。(3)正在执行中断返回指令正在执行中断返回指令 RETI或者对专用寄存器或者对专用寄存器IE、IP进行读进行读/写的指令。写的指令。CPU在执行完上述指令之后,要在执行完上述指令之后,要再执行一条指令,才能响应中断请求。再执行一条
4、指令,才能响应中断请求。中断优先级的判定中断优先级的判定中断优先级的判定中断优先级的判定中断源的优先级别分为中断源的优先级别分为中断源的优先级别分为中断源的优先级别分为高级高级高级高级和和和和低级低级低级低级,通过由软件,通过由软件,通过由软件,通过由软件设置中断优先级寄存器设置中断优先级寄存器设置中断优先级寄存器设置中断优先级寄存器IPIP相关位来设定每个中断相关位来设定每个中断相关位来设定每个中断相关位来设定每个中断源的级别。源的级别。源的级别。源的级别。如果几个同一优先级别的中断源同时向如果几个同一优先级别的中断源同时向如果几个同一优先级别的中断源同时向如果几个同一优先级别的中断源同时向
5、CPUCPU请求请求请求请求中断,中断,中断,中断,CPUCPU通过硬件查询电路首先响应通过硬件查询电路首先响应通过硬件查询电路首先响应通过硬件查询电路首先响应自然优先自然优先自然优先自然优先级较高级较高级较高级较高的中断源的中断请求。的中断源的中断请求。的中断源的中断请求。的中断源的中断请求。中断可实现两级中断可实现两级中断可实现两级中断可实现两级中断嵌套中断嵌套中断嵌套中断嵌套。高优先级中断源可中高优先级中断源可中高优先级中断源可中高优先级中断源可中断正在执行的低优先级中断服务程序,除非执行断正在执行的低优先级中断服务程序,除非执行断正在执行的低优先级中断服务程序,除非执行断正在执行的低优
6、先级中断服务程序,除非执行了低优先级中断服务程序的了低优先级中断服务程序的了低优先级中断服务程序的了低优先级中断服务程序的CPUCPU关中断指令。同关中断指令。同关中断指令。同关中断指令。同级或低优先级的中断不能中断正在执行的中断服级或低优先级的中断不能中断正在执行的中断服级或低优先级的中断不能中断正在执行的中断服级或低优先级的中断不能中断正在执行的中断服务程序。务程序。务程序。务程序。中断响应过程中断响应过程中断响应过程中断响应过程在满足在满足在满足在满足中断响应条件时,中断响应条件时,中断响应条件时,中断响应条件时,CPUCPU响应中断。响应中断。响应中断。响应中断。首先,首先,首先,首先
7、,将相应的优先级状态触发器置将相应的优先级状态触发器置将相应的优先级状态触发器置将相应的优先级状态触发器置1 1,即关闭同,即关闭同,即关闭同,即关闭同级和低级中断。级和低级中断。级和低级中断。级和低级中断。其次,其次,其次,其次,调用入口地址,断点入栈,相当于调用入口地址,断点入栈,相当于调用入口地址,断点入栈,相当于调用入口地址,断点入栈,相当于LCALLLCALL指令,但不保护状态寄存器指令,但不保护状态寄存器指令,但不保护状态寄存器指令,但不保护状态寄存器PSWPSW及其他寄存器内容。及其他寄存器内容。及其他寄存器内容。及其他寄存器内容。保存断点,(保存断点,(保存断点,(保存断点,(
8、PCPC)栈顶单元栈顶单元栈顶单元栈顶单元然后,然后,然后,然后,将中断源对应的将中断源对应的将中断源对应的将中断源对应的中断入口地址装入程序计数中断入口地址装入程序计数中断入口地址装入程序计数中断入口地址装入程序计数器器器器PCPC中,使程序转向该中断入口地址,并执行中中,使程序转向该中断入口地址,并执行中中,使程序转向该中断入口地址,并执行中中,使程序转向该中断入口地址,并执行中断服务程序。断服务程序。断服务程序。断服务程序。硬件自动清除硬件自动清除硬件自动清除硬件自动清除TF0TF0、TF1TF1、IE0IE0、IE1IE1中断标志(串行口中断中断标志(串行口中断中断标志(串行口中断中断
9、标志(串行口中断请求标志请求标志请求标志请求标志 RIRI和和和和 TITI除外)。除外)。除外)。除外)。80C5180C51五个中断入口地址如下:五个中断入口地址如下:五个中断入口地址如下:五个中断入口地址如下:中断入口地址是固定的,其排列顺序按照自然中断入口地址是固定的,其排列顺序按照自然中断入口地址是固定的,其排列顺序按照自然中断入口地址是固定的,其排列顺序按照自然优先权排列,相互之间间隔优先权排列,相互之间间隔优先权排列,相互之间间隔优先权排列,相互之间间隔8B8B。一般来说,。一般来说,。一般来说,。一般来说,8B8B空间安排不下一个中断服务程序,但可安排一空间安排不下一个中断服务
10、程序,但可安排一空间安排不下一个中断服务程序,但可安排一空间安排不下一个中断服务程序,但可安排一条转移指令,跳转到其他合适的区域编写真正条转移指令,跳转到其他合适的区域编写真正条转移指令,跳转到其他合适的区域编写真正条转移指令,跳转到其他合适的区域编写真正的中断服务程序。的中断服务程序。的中断服务程序。的中断服务程序。中断源中断源中断源中断源 中断入口地址中断入口地址中断入口地址中断入口地址 /INT0/INT0 PC=0003H PC=0003H T0 T0 PC=000BH PC=000BH /INT1/INT1 PC=0013H PC=0013H T1 T1 PC=001BH PC=00
11、1BH 串行口串行口串行口串行口 PC=0023H PC=0023H 3.中断处理中断处理 中断处理就是执行中断服务程序,从中断入口地址中断处理就是执行中断服务程序,从中断入口地址开始执行,直到返回指令开始执行,直到返回指令(RETI)为止。此过程一般为止。此过程一般包括三部分内容,一是包括三部分内容,一是保护现场保护现场,二是,二是处理中断源处理中断源的请求的请求,三是,三是恢复现场恢复现场。中断服务程序一般包含以下几个部分。中断服务程序一般包含以下几个部分。(1)现场保护和现场恢复)现场保护和现场恢复为了使中断服务程序的执行不破坏为了使中断服务程序的执行不破坏CPU中寄存器中寄存器或存储单
12、元的原有内容,以免在中断返回后影响或存储单元的原有内容,以免在中断返回后影响主程序的运行,应该把主程序的运行,应该把CPU中有关寄存器或存储中有关寄存器或存储单元的内容推入堆栈中保护起来,这就是所谓的单元的内容推入堆栈中保护起来,这就是所谓的现场保护,通常是指现场保护,通常是指ACC、PSW和和DPTR等。等。中断服务结束后,在返回主程序前,须把保存的中断服务结束后,在返回主程序前,须把保存的现场从堆栈中弹出,以恢复寄存器存储单元的原现场从堆栈中弹出,以恢复寄存器存储单元的原有内容,这就是所谓现场恢复。对于有内容,这就是所谓现场恢复。对于80C51,利,利用堆栈保护和恢复现场需要遵循先进后出、
13、后进用堆栈保护和恢复现场需要遵循先进后出、后进先出的原则。先出的原则。说明:说明:(2)开中断和关中断)开中断和关中断在中断处理进行的过程中,可能又有新的中断在中断处理进行的过程中,可能又有新的中断请求到来,如果禁止被中断,可以先关闭中断系请求到来,如果禁止被中断,可以先关闭中断系统,待任务执行完后再打开中断系统。当然,如统,待任务执行完后再打开中断系统。当然,如系统本身需要中断嵌套,则不能将中断系统关闭,系统本身需要中断嵌套,则不能将中断系统关闭,所有中断的发生按照系统所有中断的发生按照系统“优先级优先级”的设置自动的设置自动“决策决策”行事。行事。(3)中断服务程序主体)中断服务程序主体中
14、断服务程序主体是进行中断处理的具体内容,中断服务程序主体是进行中断处理的具体内容,以子程序的形式存在,任何中断发生并被响应后,以子程序的形式存在,任何中断发生并被响应后,程序将自动进入相关的入口地址,执行中断服务程序将自动进入相关的入口地址,执行中断服务程序。程序。在编写中断服务程序时要注意以下几个方面:在编写中断服务程序时要注意以下几个方面:l一般在这些一般在这些中断入口地址区中断入口地址区存放一条无条件转移指存放一条无条件转移指令,转向中断服务程序的起始地址。令,转向中断服务程序的起始地址。l若要求禁止更高优先级中断源的中断请求,应先用若要求禁止更高优先级中断源的中断请求,应先用软件关闭软
15、件关闭CPU中断或屏蔽更高级中断源的中断,在中断或屏蔽更高级中断源的中断,在中断返回前再开放被关闭或被屏蔽的中断。中断返回前再开放被关闭或被屏蔽的中断。l在保护现场和恢复现场时,为了不使现场数据受到在保护现场和恢复现场时,为了不使现场数据受到破坏而造成混乱,在保护现场之前要关中断,在保破坏而造成混乱,在保护现场之前要关中断,在保护现场之后再开中断;在恢复现场之前关中断,在护现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断。恢复现场之后再开中断。4.中断返回中断返回(1)中断返回)中断返回中断返回是把程序运行从中断服务程序转回到被中中断返回是把程序运行从中断服务程序转回到被中断的主
16、程序上去,中断返回通过执行中断返回指令断的主程序上去,中断返回通过执行中断返回指令RETI来实现,该指令的功能是首先将相应的来实现,该指令的功能是首先将相应的优先级优先级状态触发器置状态触发器置0,以开放同级别中断源的中断请求;,以开放同级别中断源的中断请求;其次,从堆栈区把其次,从堆栈区把断点地址断点地址取出,送回到取出,送回到程序计数程序计数器器PC中。中。因此,因此,不能用不能用RET指令代替指令代替RETI指令,而且这条指指令,而且这条指令必然是中断服务程序的最后一条指令。令必然是中断服务程序的最后一条指令。当当CPU执行执行RETI指令后,自动完成下列操作:指令后,自动完成下列操作:
17、恢复断点地址。将原来压入堆栈的恢复断点地址。将原来压入堆栈的PC断点地址断点地址从堆栈中弹出,送回从堆栈中弹出,送回PC。这样。这样CPU就返回到原断就返回到原断点处,继续执行被中断的原程序。点处,继续执行被中断的原程序。开放同级中断,以便允许同级中断源请求中断。开放同级中断,以便允许同级中断源请求中断。以上响应过程的大部分操作是以上响应过程的大部分操作是CPU自动完成的,自动完成的,用户只需要了解基本原理就可以,需要做的事情用户只需要了解基本原理就可以,需要做的事情是编制中断服务程序,并在此之前完成中断初始是编制中断服务程序,并在此之前完成中断初始化。化。(4)中断请求的撤除)中断请求的撤除
18、中断源发出中断请求,相应中断请求标志置中断源发出中断请求,相应中断请求标志置“1”。CPU响响应中断后,必须清除中断请求应中断后,必须清除中断请求“1”标志;否则中断响应返回标志;否则中断响应返回后,将再次进入该中断,引起死循环出错。如何撤除中断请后,将再次进入该中断,引起死循环出错。如何撤除中断请求标志的说明如下:求标志的说明如下:定时器溢出中断请求的撤除:定时器溢出中断请求的撤除:对于定时器对于定时器0或或1溢出中断,溢出中断,CPU在响应中断后即由硬件自动在响应中断后即由硬件自动清除其中断标志位清除其中断标志位TF0或或TF1,用户无须采取其他措施。,用户无须采取其他措施。串行口中断的撤
19、除:串行口中断的撤除:对于串行口中断,对于串行口中断,CPU在响应中断后,在响应中断后,硬件不能自动清除中硬件不能自动清除中断请求标志位断请求标志位TITI、RIRI,用户必须在中断服务程序中用软件将,用户必须在中断服务程序中用软件将其清除(如其清除(如CLR RICLR RI)。)。对于外中断对于外中断/INT0、/INT1,若采用边沿触发方式,若采用边沿触发方式,CPUCPU响应响应中断时,也由硬件自动清除响应的中断请求标志中断时,也由硬件自动清除响应的中断请求标志IE0IE0或或IE1IE1。外部中断的撤除:外部中断的撤除:l外部中断为外部中断为边沿触发方式边沿触发方式时,时,CPU响应
20、中断后,硬响应中断后,硬件会件会自动清除自动清除中断请求标志中断请求标志IE0或或IEl。l外部中断为外部中断为电平触发方式电平触发方式时,时,CPU响应中断后,硬响应中断后,硬件会自动清除中断请求标志件会自动清除中断请求标志IE0或或IEl,但由于加到,但由于加到INT0或或INT1引脚的外部中断请求信号并未撤除,引脚的外部中断请求信号并未撤除,中断请求标志中断请求标志IE0或或IEl会再次被置会再次被置1,所以在,所以在CPU响应中断后应立即撤除响应中断后应立即撤除INT0或或INT1引脚上的低电引脚上的低电平。一般采用加一个平。一般采用加一个D触发器和几条指令的方法来触发器和几条指令的方
21、法来解决这个问题。解决这个问题。l l由下图可知,外部中断请求信号直接加到由下图可知,外部中断请求信号直接加到由下图可知,外部中断请求信号直接加到由下图可知,外部中断请求信号直接加到D D触发器触发器触发器触发器的的的的CPCP端,当外部中断请求的低电平脉冲信号出现端,当外部中断请求的低电平脉冲信号出现端,当外部中断请求的低电平脉冲信号出现端,当外部中断请求的低电平脉冲信号出现在在在在CPCP端时,端时,端时,端时,D D触发器的触发器的触发器的触发器的QQ端置端置端置端置0 0,INT0INT0或或或或INT1INT1引脚引脚引脚引脚为低电平,发出中断请求。在中断服务程序中开始为低电平,发出
22、中断请求。在中断服务程序中开始为低电平,发出中断请求。在中断服务程序中开始为低电平,发出中断请求。在中断服务程序中开始的三条指令可先在的三条指令可先在的三条指令可先在的三条指令可先在P1.0P1.0输出一个宽度为输出一个宽度为输出一个宽度为输出一个宽度为2 2个机器周个机器周个机器周个机器周期的负脉冲,使期的负脉冲,使期的负脉冲,使期的负脉冲,使D D触发器的触发器的触发器的触发器的QQ端置端置端置端置1 1,然后由软件来,然后由软件来,然后由软件来,然后由软件来清除中断请求标志清除中断请求标志清除中断请求标志清除中断请求标志IE0IE0或或或或IElIEl。外部中断的撤除电路外部中断的撤除电
23、路外部中断的撤除电路外部中断的撤除电路中断优先控制和中断嵌套(补充)中断优先控制和中断嵌套(补充)中断优先控制和中断嵌套(补充)中断优先控制和中断嵌套(补充)1 1中断优先控制中断优先控制中断优先控制中断优先控制80C5180C51中断优先控制首先根据中断优先级,此外,还规定中断优先控制首先根据中断优先级,此外,还规定中断优先控制首先根据中断优先级,此外,还规定中断优先控制首先根据中断优先级,此外,还规定了了了了同一中断优先级之间的中断优先权同一中断优先级之间的中断优先权同一中断优先级之间的中断优先权同一中断优先级之间的中断优先权。其从高到低的顺序。其从高到低的顺序。其从高到低的顺序。其从高到
24、低的顺序为:为:为:为:/INT0/INT0、T0T0、/INT1/INT1、T1T1、串行口。、串行口。、串行口。、串行口。中断优先级是可编程的,而中断优先权是固定的,不能设中断优先级是可编程的,而中断优先权是固定的,不能设中断优先级是可编程的,而中断优先权是固定的,不能设中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。因此置,仅用于同级中断源同时请求中断时的优先次序。因此置,仅用于同级中断源同时请求中断时的优先次序。因此置,仅用于同级中断源同时请求中断时的优先次序。因此80C5180C51中断优先控制的中断优先控制的中断优先控制的中断优先控制
25、的基本原则基本原则基本原则基本原则是:是:是:是:(1 1)高优先级中断可以中断正在响应的低优先级中断,)高优先级中断可以中断正在响应的低优先级中断,)高优先级中断可以中断正在响应的低优先级中断,)高优先级中断可以中断正在响应的低优先级中断,反之则不能。反之则不能。反之则不能。反之则不能。(2 2)同优先级中断不能互相中断。)同优先级中断不能互相中断。)同优先级中断不能互相中断。)同优先级中断不能互相中断。(3 3)同一中断优先级中,若有多个中断源同时请求中断,)同一中断优先级中,若有多个中断源同时请求中断,)同一中断优先级中,若有多个中断源同时请求中断,)同一中断优先级中,若有多个中断源同时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断系统 中断系统PPT课件 2 中断 系统 PPT 课件
限制150内