首页 理论教育 中断处理的过程:《微机原理及接口技术》中的关键步骤

中断处理的过程:《微机原理及接口技术》中的关键步骤

时间:2023-11-16 理论教育 版权反馈
【摘要】:图7-2 中断处理过程2.中断优先级判断当多个中断源同时提出中断请求时,判断响应的先后顺序就是中断优先级判断的过程。中断返回指令的作用实际上就是恢复断点,也就是保护断点的逆过程。

中断处理的过程:《微机原理及接口技术》中的关键步骤

不同微机的中断系统存在差异,同样的微机不同中断操作的处理过程也可能完全不同,但是中断处理的基本过程应该包括中断请求、中断优先级判断、中断响应、中断服务和中断返回五个基本阶段,其中的操作如图7-2所示。

1.中断请求

中断请求是中断源向CPU发出请求中断的要求,是中断过程的第一步。中断源产生中断请求的条件因中断源不同而不同。软件中断源是在CPU内部由中断指令或程序出错直接引发中断;而硬件中断源必须通过专门的电路将中断请求信号传送给CPU,CPU也有专门的引脚接收中断请求信号。

978-7-111-42233-4-Chapter07-2.jpg

图7-2 中断处理过程

2.中断优先级判断

当多个中断源同时提出中断请求时,判断响应的先后顺序就是中断优先级判断的过程。微机系统一般根据中断源所对应情况的轻重缓急确定每个中断源的优先级,在中断优先级判断中CPU能够识别出优先级别最高的中断源并首先响应,在处理完后再根据优先级的高低,从高到低依次处理每一个中断请求。常用的中断优先级判断方法有三种:软件查询、硬件排队和可编程中断控制器。

(1)软件查询

软件查询只需有简单的硬件电路,以A、B、C三台外部设备为三个不同的中断源为例。软件查询就是将三个中断源产生的中断请求信号“或”后输入给CPU,由于0表示没有中断请求,1表示有中断请求,只要A、B、C三台外部设备中有一台提出中断请求,CPU都会接到中断请求。CPU进入中断服务子程序后,再通过软件查询的方式分别查看不同设备是否有中断请求。显然CPU响应中断时都要对各中断源进行逐一查询,中断源的优先级是由查询顺序决定的。

(2)硬件排队

相对软件查询方式,硬件排队方式可以缩短中断优先级判断时间。硬件排队方式的中断优先级判断电路常用的有链式中断优先权排队电路和中断优先权编码电路。(www.xing528.com)

链式中断优先权排队电路的基本设计思想是:将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备,使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。中断优先权编码电路则是通过硬件编码器和比较器构成优先排队电路。

(3)可编程中断控制器

当前微机中解决中断优先权判优最常用的方法是采用可编程中断控制器。中断控制器由以下几个部分组成:中断请求寄存器、中断屏蔽寄存器、中断优先权管理逻辑、中断类型寄存器、当前中断服务寄存器。其中中断类型寄存器、中断屏蔽寄存器可以通过编程使用,中断服务寄存器也可以用软件控制,而且优先级的排列也可通过指令设置。

3.中断响应

中断源向CPU发出中断请求,若优先级别最高,CPU在满足一定条件的情况下,可以中断当前程序的运行,保护好被中断的主程序的断点后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。

4.中断服务

中断服务的过程实际上就是CPU执行中断服务程序的过程,中断服务程序是用户根据CPU中断源进行中断处理完成不同功能的服务程序。通常为保证执行相关任务前后寄存器的内容一致,不因中断而改变,需在执行中断服务程序前后分别进行保护现场和恢复现场。保护现场一般是用入栈指令把服务程序中用到的寄存器内容压入堆栈,恢复现场是在中断任务完成后用出栈指令恢复保存的相关寄存器内容。

5.中断返回

执行完中断服务程序后,CPU返回到原先被中断的程序,这个过程称为中断返回。通常在中断返回前,一般要求先用指令打开中断,以便CPU再次响应中断。在打开中断后一般通过放置在中断服务程序最后的中断返回指令返回原程序的断点处。中断返回指令的作用实际上就是恢复断点,也就是保护断点的逆过程。

中断返回中值得注意的是中断嵌套的情况。所谓中断嵌套,是指执行中断处理过程中有优先级更高的中断源发出中断请求,CPU暂停当前中断服务程序的执行转而响应更高级别的中断,处理结束后再返回优先级较低的中断服务程序。在中断嵌套中,中断返回执行打开中断和中断返回都是针对本层的中断。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈