当前位置:首页 > 嵌入式 > 嵌入式分享

嵌入式系统中的中断类型多样,按 “事件来源”“可屏蔽性”“处理机制” 等维度可分为不同类别,不同类型的中断在硬件实现、软件配置与应用场景上存在显著差异,理解这些差异是中断选型与配置的基础。

(一)按事件来源:外部中断与内部中断

外部中断的事件来源是 MCU 外部的外设或引脚,通常与 “外部输入信号” 相关,需要通过 GPIO 引脚或专用接口接收外部事件触发。最典型的外部中断是 “GPIO 外部中断”—— 当 GPIO 引脚的电平发生预设变化(高电平触发、低电平触发、上升沿触发、下降沿触发、双边沿触发)时,触发中断,如按键按下(引脚电平从高变低,下降沿触发)、传感器检测到目标(引脚从低变高,上升沿触发)。GPIO 外部中断的优势是灵活,可通过配置不同引脚与触发方式,适配多种外部设备;缺点是需要占用 GPIO 资源,且多个外部设备可能共享同一中断线(如 STM32 GPIO 端口按组共享中断,PA0-PG0 共享 EXTI0 中断),需在 ISR 中判断具体是哪个引脚触发的中断。

除了 GPIO 外部中断,还有 “专用外部设备中断”—— 由外部专用芯片(如触摸屏控制器、ADC 芯片)通过特定总线(如 SPII2C、中断线)向 MCU 发送中断请求,例如触摸屏检测到触摸时,通过中断线通知 MCU 读取触摸坐标;ADC 芯片完成一次采样时,通过中断线通知 MCU 读取采样结果。这类中断的优势是无需 MCU 持续轮询外部芯片状态,降低功耗与算力消耗。

内部中断的事件来源是 MCU 内部的模块,无需外部信号触发,通常与 “内部状态变化” 相关,如定时器中断、外设中断、异常中断。定时器中断是最常用的内部中断 —— 当定时器的计数达到设定值(如定时 1ms)或计数溢出时,触发中断,用于实现精准定时(如 LED 闪烁、电机 PWM 控制、数据采样周期控制)。例如,STM32 TIM2 定时器可配置为定时 1ms 中断,每 1ms 触发一次 ISR,在 ISR 中更新系统时间或检查传感器状态。

外设中断是内部中断的另一重要类别,由 MCU 内部的通信或功能外设(如串口 USARTSPII2CDMAUSB)触发,用于处理外设的状态变化,如串口接收数据就绪、SPI 发送完成、DMA 传输完成、USB 设备连接。例如,串口 USART 的接收中断(RXNE)在接收缓冲区有数据时触发,确保 MCU 及时读取数据,避免缓冲区溢出导致数据丢失;DMA 传输完成中断在 DMA 将数据从内存传输到外设(如 SPI 发送)后触发,通知 MCU 进行后续处理(如更新发送缓冲区)。

异常中断(Exception)是一类特殊的内部中断,通常与 “系统故障” 或 “特殊指令” 相关,优先级高于普通中断,部分异常甚至不可屏蔽。例如,ARM Cortex-M 系列的 “HardFault” 异常(硬件故障)在发生内存访问错误(如空指针访问)、未定义指令、总线错误时触发,用于故障诊断与系统保护;“SysTick” 异常(系统滴答定时器)是内核自带的定时器中断,常用于生成操作系统的时间片,实现任务调度;“SWI” 异常(软件中断)由执行 SWI 指令触发,用于用户程序调用内核函数或操作系统服务。

(二)按可屏蔽性:可屏蔽中断与不可屏蔽中断

可屏蔽中断(Maskable Interrupt) 是指可通过软件配置(如中断使能位、全局中断使能位)禁止或允许的中断,占嵌入式中断的绝大多数,如 GPIO 中断、定时器中断、串口中断。可屏蔽中断的核心特点是 “灵活性”—— 用户可根据需求开启或关闭特定中断,例如在处理重要数据(如传感器校准参数写入 Flash)时,关闭所有可屏蔽中断,避免中断打断写入过程导致数据损坏;在数据处理完成后,重新开启中断,恢复正常响应。

不可屏蔽中断(NMI, Non-Maskable Interrupt) 是指无论全局中断使能位是否置位,都能强制触发的中断,优先级最高,仅用于处理 “危及系统安全” 的紧急事件,如电源欠压、硬件故障、外部紧急复位。NMI 的硬件设计通常具有 “不可屏蔽性”—— 中断请求信号直接连接到 MCU 内核,绕过常规的中断屏蔽逻辑;软件上也无法通过常规指令禁止 NMI(部分芯片支持 NMI 屏蔽,但需特殊权限且不推荐使用)。例如,工业控制系统中,当检测到电源电压低于阈值时,触发 NMI,在 NMI ISR 中紧急保存关键数据(如生产进度、设备状态)到 Flash,避免数据丢失;汽车电子中,当检测到安全气囊触发信号时,触发 NMI,立即执行安全气囊展开控制,无需等待其他中断处理。

(三)按处理机制:向量中断与非向量中断

向量中断(Vectored Interrupt) 是指每个中断都有独立的 “中断向量”(即 ISR 入口地址),中断控制器可直接根据中断类型找到对应的 ISR 地址,无需 MCU 查询判断,响应速度快,是现代嵌入式 MCU 的主流中断机制。向量中断的核心是 “中断向量表”—— 在 MCU 的存储空间中,有一块专门的区域存储所有中断的 ISR 入口地址,每个中断对应一个固定的向量地址(如 STM32 的中断向量表中,EXTI0 中断对应 0x00000010 地址,TIM2 中断对应 0x0000002C 地址)。当中断触发时,中断控制器会自动根据中断类型,从向量表中读取对应的 ISR 地址,直接跳转执行,无需额外的查询代码,响应延迟可控制在微秒级。

非向量中断(Non-Vectored Interrupt) 是指多个中断共享一个 ISR 入口地址,中断触发后,MCU 需要在 ISR 中通过查询 “中断状态寄存器”,判断具体是哪个中断事件触发,再执行对应的处理逻辑。非向量中断的优势是硬件实现简单(无需独立向量表),但响应速度慢 —— 查询过程会增加中断延迟,且中断数量越多,查询时间越长,仅在早期 8 MCU(如 Intel 8051)或简单控制场景中使用。例如,8051 单片机的外部中断 0 与外部中断 1 共享部分查询逻辑,ISR 中需通过查询 TCON 寄存器的 IT0IE0 位,判断是否为外部中断 0 触发。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭