中断优先级设置(中断优先级设置及响应)

中断优先级设置(中断优先级设置及响应)

1. 中断优先级设置及响应

CPU的现场保护和恢复必须由被响应的相应中断服务程序去完成,当执行RETI中断返回指令后,断点值自动从栈顶2字节弹出,并装入PC寄存器,使CPU继续执行被打断了的程序。

中断系统有两个控制寄存器IE和IP,它们分别用来设定各个中断源的打开/关闭和中断优先级。

2. 默认中断优先级

CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。

为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。

其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。

3. 中断优先级设定

对8086/8088系统,中断类型码的大小与中断优先级高低无关。

一般情况下,i8259A总是响应优先级最高的中断请求,而且使CPU暂停对低优先级中断的服务,转而服务高优先级的中断,即中断嵌套。

中断优先级的高低,不是由中断类型码决定的。优先级高低,和输入引脚有关。

4. 中断响应的优先级

当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不一样的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不一样的中断,我们要在不一样的地点处理,而这个地点常常还是固定的。计算机中也是采用的这种办法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。具体地说,中断响应能分为以下几个步骤:

1、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。

2、寻找中断入口,根据5个不一样的中断源所产生的中断,查找5个不一样的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。

3、执行中断处理程序。

4、中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。

5. 中断响应优先次序

1.CPU同时接收到几个中断时,首先响应优先级最高的中断请求;

2、正在进行的中断过程不能被新的同级或低行优优先级的中断请求所中断;

3、正在进行的低行优优先级中断服务,能被高行优优先级中断请求中断;

若:同一执行优先级中的中断申请不止一个时,则有一个中断优先权排队问题。同一执行优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,优先权自高到低的顺序即:

外部中断0>定时/计数0>外部中断1>定时/计数1>串行接口

6. 中断处理优先级和中断响应优先级

在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。

解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority ),又称优先权,先响应优先级最高的中断请求。

另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。

7. 中断优先级的设置

中断响应后,就由软件(中断处理程序)进行相应处理。中断处理过程大致分为4个阶段:保存被中断程序的现场,分析中断原因,转入相应处理程序进行处理,恢复被中断程序现场(即中断返回)。

如果有多个中断源发出了中断请求。则需要根据中断优先级选择优先级高的中断请求先进行响应。中断默认优先级是由一个硬件排队器来实现的。但是中断屏蔽字可以动态改变中断优先级。

8. 中断优先级如何设置

中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;

而中断优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为‘0’,对新中断开放),如果是的话,就中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止的中断继续处理。

9. 中断优先级怎么设置

1. PWM的测量放到主程序循环中去做,在中断程序中仅仅完成定时修正,把PWM设定为高优先级,这样可以提高中断的响应速度,使得程序的实时性较高; 2. 串口一般是属于较慢的中断,它的响应时间只要满足能够在接收一个字节的时间内响应一次即可,因此可以设为低等级中断,并且在串口程序中不要进行数据处理,只要完成接收数据转移到接收缓存池中即可,在主程序中去完成数据的分析处理工作。

10. 什么叫中断优先级,如何设置

51单片机有程控优先级和自然优先级两个中断优先级。

所谓程控优先级,就是通过ⅠP和ⅠPH寄存器设置每一个中断源的优先级,ⅠP和IP成对使用,两个寄存器器的同位对应一个中断源,所以每个中断源的优先级可以设置为四级。

所谓自然优先级是指两个程控优先级同级的中断源,中断向量较小的那个中断具有较高优先级。

11. 中断响应优先级和处理优先级

51 单片机有 5 个中断源,两个中断优先级: INT0 、T0、 INT1 、T1、串行口中断(包括串行接收中断 RI 和串行发送中断 TI) 。这 5 个中断源的中断入口地址分别是 0003H、000BH、0013H、001BH、0023H。中断 优先级是由片内的中断优先级寄存器 IP(特殊功能寄存器)控制的。 PS:串行口中断优先级控制位。PS=1,串行口定义为高优先级中断源;PS=0,串行口定义为低优先级中断源; PT1:T1 中断优先级控制位。PT1=1,定时器/计数器 1 定义为高优先级中断源;PT1=0,定时器/计数器 1 定义 为低优先级中断源; PX1:外部中断 1 中断优先级控制位。PX1=1,外中断 1 定义为高优先级中断源,PX1=0,外中断 1 定义为低 优先级中断源; PT0:定时器/计数器 0(T0)中断优先级控制位,功能同 PT1; PX0:外部中断 0 中断优先级控制位,功能同 PX1;在同一优先级中,循环轮流排队。不分级别高低,所有中 断源优先级都一律平等,CPU 轮流响应各个中断源的中断请求。

推荐阅读