MCU微课堂 | CKS32F107xx系列中断和事件

cathy的头像
cathy 发布于:周一, 06/03/2024 - 16:25 ,关键词:

本章节首先将以MCU开发人员常接触到的“中断”、“事件”和“中断事件”三个名词的概念展开,然后去阐述彼此的主要区别,最后借助MCU的GPIO外部中断/事件控制器(EXTI)的传输路径来加深对上述概念的理解。

概念简介

中断    

为了具化下述概念,特引用MCU运行过程中外设模块的触发和反馈来解释说明。

MCU执行程序时,由于发生了某种特定的事件(外部或内部),引起MCU暂时中断正在运行的程序,转去执行与该事件相关的中断服务程序,该事件处理完后又返回被中断的程序继续执行,这一过程称之为中断或中断响应。

事件

事件是指CKS32F107xx系统中发生的一些特定的状态变化,譬如:外部输入电平变化、定时器溢出、FIFO非空、串口接收/发送数据、AD转换完成、外设使能、初始化等。而事件与中断事件是包含关系,即事件可分为中断事件或非中断事件。比如AD转换并不会导致中断发生,因而归类为非中断事件,但AD转换结束就是一个中断事件。

中断事件

中断事件,顾名思义是指能导致中断发生的事件。值得注意的是中断事件最终是否导致后续中断的正常触发,还需要确保是否开启了该中断事件的中断使能。

中断与事件的主要区别

(1)中断与中断事件属于前后关联的因果关系,二者在时序和行为上不一样,即中断事件是中断的触发源;

(2)事件与中断事件为包含关系;

(3)中断有可能被更高优先级的中断屏蔽,但事件不会;

(4)中断一定要有中断服务函数,但是事件没有;

(5)中断一定要MCU的介入,但事件执行操作,可以不需要MCU干预;

(6)中断是软件级的操作,而事件是硬件级。

外部中断/事件控制器(EXTI)

对于互联型产品CKS32F107xx系列的EXTI,它支持20个软件的事件/中断请求,且每个中断/事件都有独立的触发和屏蔽,每个中断线都有专用的状态位。下图为GPIO的EXTI的框图,同时也是外部中断线或外部事件线的示意图。

1.png

图1 中断/事件线示意图

从上文可知晓,一个能够触发中断的事件在触发配置时就出现两种可能,即允许产生中断或禁止产生中断,这随之引出事件模式和中断模式两个概念。从上图不难看出,每根信号线上划有一条斜线,并标注数字20,表明这样的线路共有20条,图中的蓝色虚线箭头,标出了中断模式下的传输路径,而图中的绿色箭头则标识了事件模式下的传输路径,下文一一说明。

1)中断模式下的传输路径(①-②-③-④-⑤)

①输入线:EXTI控制器具有20个中断/事件输入线,这些输入线可以连接到任意一个 GPIO或一些外设的事件,当这些输入线上的信号发生电平变化时,EXTI控制器会检测到并触发中断或事件。

②边沿检测电路:EXTI控制器允许用户选择触发方式,可通过设置上升沿、下降沿触发选择寄存器中相应的位来控制信号的触发。

③或门电路:一端输入信号线由边沿检测电路提供,另一端由软件中断事件寄存器(可以使用软件来启动中断/事件线)提供,此处软件可以优先于外部信号请求一个中断或事件,即当软件中断事件寄存器的对应位为”1”时,不管外部信号如何,则输出有效信号1,并且输出的信号会被保存到请求挂起寄存器内,当电路输出为1就会把请求挂起寄存器对应位置1。

④与门电路:一端由或门电路的输出提供,另一端由中断屏蔽寄存器提供,只有当两者都为有效信号1,才会输出有效信号1,即向NVIC中断控制器发出一个中断请求。

⑤将请求挂起寄存器的内容输入到NVIC中,从而实现对中断事件的控制。

2)事件模式下的传输路径(①-②-③-⑥-⑦-⑧)

⑥与门电路:此处与门电路与标号④与门电路类似,用于引入事件屏蔽寄存器的控制,只有两个均输入有效电平1时,才会输出有效信号1。

⑦脉冲发生器:当标号⑥与门电路输出有效信号1时,脉冲发生器会输出一个脉冲信号。

⑧脉冲信号:由脉冲发生器产生,通常用于触发定时器、ADC等。

综上所述,从外部激励源来看,无论中断模式还是事件模式的传输路径在标识①~③是一致的,主要区别是中断需要MCU介入,且同时需要有中断处理函数的参与才会形成中断后的结果,但事件是通过脉冲发生器发出的脉冲信号,进而由硬件自行完成该事件并产生响应的结果。所以,从节省MCU开销,提高系统运行效率来看,事件模式不失为一种提高MCU处理能力的快速响应机制。

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 9