中断与中断系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华东师范大学 电子系 马 潮 7-1

第7章 中断系统与基本应用

中断是现代计算机必备的重要功能。尤其在嵌入式系统和单片机系统中,中断扮演了非常重要的角色。因此,全面深入的了解中断的概念,并能灵活掌握中断技术的应用,成为学习和真正掌握单片机应用非常重要的关键问题之一。

7.1 中断的基本概念

中断是指计算机(MCU )自动响应一个“中断请求”信号,暂时停止(中断)了当前程序的执行,转而执行为外部设备服务的程序(中断服务程序),并在执行完服务程序后自动返回原程序执行的过程。

单片机一般都具有良好的中断系统,它的优点有:

✓ 实现实时处理。利用中断技术,MCU 可以及时响应和处理来自内部功能模块或外部

设备的中断请求,并为其服务,以满足实时处理和控制的要求。

✓ 实现分时操作,提高了MCU 的效率。在嵌入式系统的应用中可以通过分时操作的方

式启动多个功能部件和外设同时工作。当外设或内部功能部件向MCU 发出中断申请

时,MCU 才转去为它服务。这样,利用中断功能,MCU 就可以“同时”执行多个服

务程序,提高了MCU 的效率。

✓ 进行故障处理。对系统在运行过程中出现的难以预料的情况或故障,如掉电,可以

通过中断系统及时向MCU 请求中断,做紧急故障处理。

✓ 待机状态的唤醒。在单片机嵌入式系统的应用中,为了减少电源的功耗,当系统不

处理任何事物,处于待机状态时,可以让单片机工作在休眠的低功耗方式。通常,恢复到正常工作方式往往也是利用中断信号来唤醒。

7.1.1 中断处理过程

在中断系统中,通常将MCU 处在正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断源向MCU 所发出的申请中断信号称为中断请求信号,MCU 接受中断申请停止现行程序的运行而转向为中断服务称为中断响应,为中断服务的程序称为中断服务程序或中断处理程序。现行程序打断的地方称为断点,执行完中断处理程序后返回断点处继续执行主程序称为中断返回。这一整个的处理过程称为中断处理过程(图7-1)。

在整个中断处理过程中,由于MCU 执行完中断处理程序后仍然要返回主程序,因此,在执行中断处理程序之前,要将主程序中断处的地址,即断点处(实际为程序计数器PC 的当前值――即将执行的主程序的下一条指令地址,图7-1中的

k+1点)保存起来,称为保护断点。又由于MCU 在执行中断处理程序时,可能会使用和改变主程序使用过的寄存器、标志位,甚至内存单元,因

此,在执行中断服务程序前,还要把有关的数据保护起来,称为中断现场保护。在MCU 执行主程序 中断服务程

序 K K+1 中断响应 中断返回

中断请求 图7-1 中断过程示意图

完中断处理程序后,则要恢复原来的数据,并返回主程序的断点处继续执行,称为恢复现场和恢复断点。

在单片机中,断点的保护和恢复操作,是在系统响应中断和执行中断返回指令时由单片机的内部硬件自动实现的,简单的说,就是在响应中断时,MCU的硬件系统会自动将断点地址压进系统的堆栈保存,而当执行中断返回指令时,硬件系统会自动又将压入堆栈的断点地址弹出到程序计数器PC中。

但对于中断现场的保护和恢复,则需要程序员在设计中断处理程序时编程实现。在使用中断时,要认真和仔细考虑中断现场的保护和恢复。

7.1.2 中断源、中断信号、中断向量

1.中断源

中断源是指能够向MCU发出中断请求信号的部件和设备。在一个系统中,往往存在多个中断源。对于单片机讲,中断源一般可分为内部中断源和外部中断源。

在单片机内部集成的许多功能模块,如定时器、串行通讯口、模/数转换器等,它们在正常工作时往往无需CPU参与,而当处于某种状态或达到某个规定值需要程序控制时,会通过发出中断请求信号通知CPU。这一类的中断源位于单片机内部,称作内部中断源。其典型例子有定时器溢出中断、ADC完成中断等。如8位的定时器在正常计数过程中无需CPU的干预,一旦计数到达0xff产生溢出时便产生一个中断申请信号,通知CPU进行必要的处理。内部中断源在中断条件成立时,一般通过片内硬件会自动产生中断请求信号,无须用户介入,使用方便。内部中断是CPU管理片内资源的一种高效的途径。

系统中的外部设备也可以用作中断源,这时要求它们能够产生一个中断信号(通常是高(低)电平或者电平跳变的上升(下降)沿),送到单片机的外部中断请求引脚供CPU检测。这些中断源位于单片机外部,称为外部中断源。通常用作外部中断源的有输入输出设备、控制对象、以及故障源等。例如,打印机打印完一个字符时可以通过中断请求CPU为它送下一个打印字符;控制对象可以通过中断要求CPU及时采集参量或者对参数超标做出反应;掉电检测电路发现掉电时可以通过中断通知CPU,以便在短时间内对数据进行保护。

2. 中断信号

中断信号是指内部或外部中断源产生的中断申请信号,这个中断信号往往是电信号的某种变化形式,通常有以下几种类型:

✓脉冲的上跳沿或下降沿(上升沿触发型或下降沿触发型)

✓高电平或低电平(电平触发型)

✓电平的变化(状态变化触发型)

对于单片机来讲,不同的中断源,产生什么类型的中断信号能够触发申请中断,取决于芯片内部的硬件结构,而且通常也可以通过用户的软件来设定。

单片机的硬件系统会自动对这些中断信号进行检测。一旦检测到规定的信号出现,将会把相应的中断标志位置“1”(在I/O空间的控制或状态寄存器中),通知CPU进行处理。

3.中断向量

中断源发出的请求信号被CPU检测到之后,如果单片机的中断控制系统允许响应中断,CPU会自动转移,执行一个固定的程序空间地址中的指令。这个固定的地址称作中断入口地址,也叫做中断向量。中断入口地址往往是由单片机内部硬件决定的。

通常,一个单片机会有若干个中断源,每个中断源都有着自己的中断向量。这些中断向量一般在程序存储空间中占用一个连续的地址空间段,称为中断向量区,如表7.1所示。由于一个中断向量通常仅占几个字节或一条指令的长度,所以在中断向量区一般不放置中断服

相关文档
最新文档