STM32-外部中断浅析

本篇解释了STM32中断原理

MCU为什么需要中断

中断,是嵌入式系统中很重要的一个功能,在系统运行过程中,当出现需要立刻处理的情况时,暂停当前任务,转而处理紧急任务,处理完毕后,恢复之前的任务。

中断的优势:

在MCU和外设之间进行平衡

MCU的处理速度远高于外设,如果没有中断机制,系统将不得不定期检查外部设备状态,这是一种资源浪费。中断机制避免了不必要的轮询,仅在设备就绪时才进行处理。

快速响应外部事件:

在实时系统中,中断机制使得计算机能够即时响应外部事件,很多场景下,信号不会等待MCU处理完才消失,如果单个时间窗口没有对信号进行采集,原始信号就被新的信号覆盖了,因此中断对于实时数据处理至关重要。

STM32 如何实现中断



外部中断控制器框图

上图为STM32的外部中断控制器框图,可以从右至左来理解这个框图,从输入线为起点,信号从IO口到达边沿检测电路,边沿检测电路可以通过两个寄存器进行配置。

这两个寄存器用于设置中断的触发条件(上升沿触发,下降沿触发,上升沿下降沿同时触发),可以理解为这里就是设置条件,一旦输入满足条件,边沿检测电路就放行信号,否则不做任何动作。

接着往左,软件中断寄存器和边沿检测电路的输出通过OR门连接在了一起,这也意味着可以通过软件来触发这条输入线的中断。即使外部条件未满足,软件中断事件寄存器被设置,也能触发中断。这个经常被用于通过软件实现故障注入,以测试系统的功能是否满足需求。

接着往左,触发的中断信号会指向请求挂起寄存器,这里就等于高速NVIC,我要中断,请批准。

而它左侧的中断屏蔽寄存器则是用于设置,要不要开启对中断的响应。

当中断屏蔽寄存器没有被开启时,即使有对应的中断,NVIC也不会响应这个中断请求。

如果一路畅通无阻,信号就会进入NVIC中断控制器,在经过优先级排序后被MCU进行处理了。

往下看,会看到中断请求信号与事件屏蔽寄存器通过AND门连接在一起,这里是用于以中断触发事件。即可以通过脉冲发生器快速的去控制其他外设,比如点亮LED灯,拉低某个PIN脚的电平。

至此,中断信号的输入到中断请求的输出就梳理清楚了。

接下来看看在处理中断信号输入中STM32做了哪些设计,

AFIO

外部中断/事件线路映像(AFIO)

AFIO在STM32中主要完成选择中断引脚和引脚功能的重映射两种功能。由于芯片空间有限,为了更好的提高效率节省资源,并不是每一根引脚都有其对应的中断线,他们是共用的关系。
1.中断引脚选择

在MCU无法将每一个外部引脚都连接至内核的情况下,PIN脚以组的形式共用中断线(图中的EXTI0),可以看到PA0-PG0都连接至EXTI0,AFIO通过配置寄存器来选择具体哪个引脚连接至中断线。

2.引脚功能的重映射

STM32中,部分引脚能够通过AFIO进行重定义,以实现当前引脚下所能配置的其他功能,这一部分内容暂且不表。

NVIC

嵌套向量中断控制器(NVIC)是外设和MCU之间的桥梁,负责接收来自外设的中断,并根据中断优先级交给MCU进行处理

相关推荐
LongRunning1 小时前
【BLE】STM32WB55_低功耗(十一)
stm32
芯片人0072 小时前
纯硬件一键开关机ASIC芯片,为什么比 MCU 方案更适合更可靠
人工智能·单片机·嵌入式硬件·物联网·芯片
染予3 小时前
Ka 阵面星历下发与执行逻辑说明
stm32·嵌入式硬件
芯片人0074 小时前
武汉广昇科技的GMUX1308A模拟开关芯片成功导入中国台湾上市企业联昌电子,助力汽车电子供应链自主可控
科技·嵌入式硬件·物联网·汽车·芯片
恒锐丰科技林技术员7 小时前
EG2181D 半桥栅极驱动芯片详解:高压 MOS/IGBT 驱动实用器件
经验分享·嵌入式硬件·硬件工程
国科安芯7 小时前
面向卫星测控应答机的抗辐射MCU信号采集与定时控制研究
单片机·嵌入式硬件·mcu·架构·卫星·商业航天·抗辐射
CC城子7 小时前
EtherNet/IP I/O 丢包排查(linux系统)
linux·单片机·tcp/ip·ethernetip
新晨单片机设计8 小时前
S010A-基于STM32单片机水温控制系统(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件
事界见闻8 小时前
高性能电机控制MCU选型对比:精度、功耗与实时性如何兼得?
单片机·嵌入式硬件
Brilliantwxx8 小时前
【STM32】 初认识USART串口
linux·stm32·单片机·嵌入式硬件·架构