本章节首先将以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 中断/事件线示意图
从上文可知晓,一个能够触发中断的事件在触发配置时就出现两种可能,即允许产生中断或禁止产生中断,这随之引出事件模式和中断模式两个概念。从上图不难看出,每根信号线上划有一条斜线,并标注数字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
+关注
关注
146文章
16608浏览量
347187 -
控制器
+关注
关注
112文章
15842浏览量
174907 -
中断
+关注
关注
5文章
889浏览量
41211 -
GPIO
+关注
关注
16文章
1166浏览量
51447
原文标题:MCU微课堂|CKS32F107xx系列中断和事件
文章出处:【微信号:中科芯MCU,微信公众号:中科芯MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
MCU微课堂|CKS32F4xx系列产品时钟配置
基于CKS32F4xx系列的MCU互补PWM方案
![基于<b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>的<b class='flag-5'>MCU</b>互补PWM方案](https://file1.elecfans.com/web2/M00/B2/4C/wKgaomVqkziAQHJYAAAPr857xR4112.png)
CKS32F4xx系列产品NVIC中断优先级管理单元讲解
CKS32F4xx系列产品串口DMA传输
CKS32F4xx系列RNG功能设置
![<b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG功能设置](https://file1.elecfans.com/web2/M00/A3/86/wKgaomT6gH2AHojwAAAPwIIu7n0544.jpg)
CKS32F4xx系列FSMC功能简介
![<b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC功能简介](https://file1.elecfans.com/web2/M00/C9/52/wKgaomYbgNeAYwUKAABKakV6wDo253.png)
CKS32F107xx系列MCU中ADC介绍
CKS32F107xx系列MCU的GPIO内部硬件结构和工作模式
![<b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的GPIO内部硬件结构和工作模式](https://file1.elecfans.com/web2/M00/FE/85/wKgaomadtLiAf3NtAAHFLEhMVU8538.jpg)
评论