微机原理与嵌入式接口技术 第5章 中断技术

  • 格式:pptx
  • 大小:2.15 MB
  • 文档页数:93

下载文档原格式

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

第5章 中断技术
对于 STM32 的外部中断来说, 当发生了选择的触发请 求时, 图 5.2 中的请求挂起寄存器(EXTI_PR)对应位会 置 1, 完成对外部中断挂起功能。 还可以对软件中断事件 寄存器(EXTI_SWIER)写 1, 设置 EXTI_PR 中相应的 挂起位, 产生一个软的外部中断。 在中断服务程序中, 应 该通过对 EXTI_PR 的对应位写 1, 清除中断源触发产生的 中断挂起位, 避免CUP 重复响应同一个中断请求。
5.2.1 中断源的分类 最初的中断技术是作为处理器与外设交换信息的一种控
制方式而提出的, 中断全部来自外设, 称为外部中断或硬 件中断。
第5章 中断技术
1. 硬中断 硬中断(外中断)是由外部电路在 CUP 引脚上产生的 中断请求。 根据 CUP 的不同, 这样的请求信号可以是电平 信号, 也可以是脉冲信号。 CUP 收到这样的信号, 就知道 有外部的中断请求到来, 准备开始一个新的中断过程。 连 接到 CUP 的硬中断源可以不止一个, 这取决于 CUP 有多 少个可以接受硬中断请求的引脚。
第5章 中断技术
5.1 中断系统概述
1. 中断的请求—响应工作机制 为保证快速响应各种随机事件, CUP 通常在每条指令 执行结束时, 都会查询是否有中断请求, 并根据相应的中 断请求编号调用预先编写好的中断服务子程序。 由于计算 机运行速度非常快, 在宏观上形成了“请求—响应”的中 断工作机制, 如图 5.1 所示。
第5章 中断技术
5.2.2 STM32 的中断源 CM3 内核共支持 256 个中断/ 异常源, 其中外部中断 最多 240 个。 系统异常是 CM3 内核支持的基本异常, 与 具体的芯片无关, 而外部中断则是与芯片相关的。 芯片厂 商会根据需要和用途设计中断源数目(1~240), STM32 目前支持的中断共 84 个(16 个内部+68 个外部), 而同 样内核的NXP公司的 lPC1700 系列支持 35 个外部中断。 表 5.1 列出了 STM32的中断源, 表格最后有阴影的部分表示 的是外部中断。
第5章 中断技术
STM32 的中断功能主要由 NVIC完成, 图 5.2 是 STM32 的 EXTI(外部中断/ 事件)控制器框图, 在后续 内容中将对STM32 外部中断/ 事件控制器进行详细讲解。
第5章 中断技术
图 5.2 外部中断/ 事件控制器框图
第5章 中断技术
5.2 中断源及其管理
第5章 中断技术
2. 外部中断源的屏蔽 中断系统通过中断允许/ 屏蔽功能决定响应哪些中断 请求, 或不响应哪些请求。 一般来说, 中断允许/ 屏蔽功 能分多级实现。 如图 5.2 所示, EXTI 的中断屏蔽寄存器 (EXTI_IMR)在每个 EXTI 的输入线上, 通过一个与门 来控制是否屏蔽某个具体的外部中断, 决定某个外部中断 是否能通过 EXTI 向 CM3 内核的 NVIC 发出中断请求。
第5章 中断技术
第5章 中断技术
第5章 中断技术
5.2.3 STM32 中断源的输入管理 1. 外部中断的请求与挂起 外部设备可以电平或脉冲方式发出中断请求。 电平触
发的中断在得到响应后, 还需要撤销外部设备请求电平, 这种方式下外部中断源的电路较复杂。 因而 STM32 不接收 电平触发信号。
第5章 中断技术
图 5.3 STM32 外部中断通用 Iຫໍສະໝຸດ BaiduO 映像
第5章 中断技术
在 STM32 中, 中断服务程序和中断通道相对应, 这 样连在同一个通道上的不同中断源都会调用相同的中断服务 程序, 必须在中断服务程序中查询中断源的状态, 明确具 体的中断来源, 以执行与该中断源对应的程序代码, 确保 服务与中断源的一一对应关系。
第5章 中断技术
作为一款应用于高实时场合的 MCU, STM32 的外部 中断(EXTI)资源是十分丰富的,它的每一个 GPIO 引脚 都可以设置成一个中断源, 这也是 STM32 的强大之处。 不过 80 个外部中断源似乎又太多了, 为此 STM32 引入了 中断线(中断通道)的概念。 如图 5.3 所示,STM32 的 80 个通用 I/O 端口中断源连接到 CM3 内核 16 个中断通道上。
第5章 中断技术
图 5.1 中断系统功能结构示意图
第5章 中断技术
2. 中断的管理 在“请求—响应”机制下, 必须对众多的中断来源实 施管理, 决定中断源是否有权请求以及有效的请求方式。 还要考虑到中断是用来处理各种随机事件, 那么这些事件 可能先后产生, 也可能同时产生, 另外事件的轻重缓急不 同, 而 CUP 在同一时间只能响应其中一个请求, 各中断来 源之间必然存在竞争关系, 要依靠优先级管理来协调好这 种竞争关系, 这是中断系统需要解决的核心问题之一。 最 后, 必须为“请求”寻找到正确的服务程序地址,使其能 得到正确的“响应”。
第5章 中断技术
第5章 中断技术
5.1 中断系统概述 5.2 中断源及其管理 5.3 中断优先级 5.4 中断服务程序与中断向量表 5.5 中断的处理过程 5.6 中断延迟及其改善 5.7 STM32中断应用 组习题5
第5章 中断技术
本章要点 ☆ 中断的基本概念 ☆ 中断的处理过程 ☆ 嵌套向量中断控制器(NVIC)的功能 ☆ 中断嵌套、 咬尾中断、 晚到异常
第5章 中断技术
2. 软中断 软中断不是由外部电路产生的, 是在 CUP 执行程序过 程中产生的中断请求。 软中断可以由一条软中断指令产生, 也可以是程序运行出现某种问题而导致的, 由于来自 CUP 内部, 也称为内部中断或内部异常。
第5章 中断技术
外部中断和内部中断的区别在于, 外部中断请求信号 来自 CM3 内核的外面, 来自各种片上外设和外扩的外设, 产生时刻与 CM3 的工作时钟是异步的, 在 CM3 中它们被 称为“中断”; 而内部中断则是因 CM3 内核的活动产生的, 即在执行指令或访问存储器时产生的,因此对 CM3 来说是 同步的, 在 CM3 中它们被称为“异常”。 在 STM32 中, 把所有能打断正常执行流的事件都称为异常, 不细致地区 别到底是外部中断还是内部异常。 如不加说明, 则强调的 都是它们对主程序所体现出来的中断性质。