0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32中断和事件的对比差异分析

电子设计 作者:工程师飞燕 2018-10-11 08:19 次阅读

STM32中断和事件的区别!

事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。

事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。当你只要产生中断而不想触发其它操作时,就可以用事件屏蔽寄存器实现。
在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。

这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制,所以用户可以同时选择上升沿或下降沿,而如果只有一个寄存器控制,那么只能选择一个边沿了.

按下来是编号3的或门,这个或门的另一个输入是软件中断/事件寄存器,从这里可以看出,软件可以优先于外部信号请求一个中断或事件,即当软件中断/事件寄存器的对应位为"1"时,不管外部信号如何,编号3的或门都会输出有效信号.

一个中断或事件请求信号经过编号3的或门后,进入挂起请求寄存器,到此之前,中断和事件的信号传输通路都是一致的,也就是说,挂起请求寄存器中记录了外部信号的电平变化.

外部请求信号最后经过编号4的与门,向NVIC中断控制器发出一个中断请求,如果中断屏蔽寄存器的对应位为"0",则该请求信号不能传输到与门的另一端,实现了中断的屏蔽.

明白了外部中断的请求机制,就很容易理解事件的请求机制了.图中红色虚线箭头,标出了外部事件信号的传输路径,外部请求信号经过编号3的或门后,进入编号5的与门,这个与门的作用与编号4的与门类似,用于引入事件屏蔽寄存器的控制;最后脉冲发生器的一个跳变的信号转变为一个单脉冲,输出到芯片中的其它功能模块.从这张图上我们也可以知道,从外部激励信号来看,中断和事件的产生源都可以是一样的.之所以分成2个部分,由于中断是需要CPU参与的,需要软件的中断服务函数才能完成中断后产生的结果;但是事件,是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件产生的结果,当然相应的联动部件需要先设置好,比如引起DMA操作,AD转换等;

简单举例:外部I/O触发AD转换,来测量外部物品的重量;如果使用传统的中断通道,需要I/O触发产生外部中断,外部中断服务程序启动AD转换,AD转换完成中断服务程序提交最后结果;要是使用事件通道,I/O触发产生事件,然后联动触发AD转换,AD转换完成中断服务程序提交最后结果;相比之下,后者不要软件参与AD触发,并且响应速度也更块;要是使用事件触发DMA操作,就完全不用软件参与就可以完成某些联动任务了。

总结:

可以这样简单的认为,事件机制提供了一个完全有硬件自动完成的触发到产生结果的通道,不要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度(硬件总快于软件),是利用硬件来提升CPU芯片处理事件能力的一个有效方法;


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348733
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41023
  • 事件
    +关注

    关注

    0

    文章

    12

    浏览量

    9881
收藏 人收藏

    评论

    相关推荐

    STM32中断优先级和开关总中断

    STM32中断优先级和开关总中断
    发表于 08-22 10:46

    stm32中断怎样pending

    stm32中断如何挂起?怎么恢复?
    发表于 08-31 07:58

    stm32中断响应时间

    stm32中断响应时间,STM32F103的中断• CM3内核支持256个中断,其中包含了16个内核中断
    发表于 08-05 07:10

    STM32中断分组 精选资料分享

    一、STM32中断分组:  STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。
    发表于 08-13 07:16

    stm32中断的顺序 精选资料分享

    stm32中断的顺序:1)初始化 IO 口。2)开启 AFIO 时钟3)EXTI配置。4)NVIC配置。5)编写中断服务函数。1 NVIC中断优先级管理CM3 内核支持 256 个
    发表于 08-13 09:25

    STM32中断名和中断处理函数

    STM32中断名和中断处理函数名在库函数中有固定命名。中断名其所在位置为stm32fxxx.h
    发表于 08-13 08:09

    STM32中断分组

    1STM32中断分组STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。
    发表于 08-13 06:52

    STM32中断分组

    一、STM32中断分组:   STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。
    发表于 08-16 09:09

    STM32中断到底是什么?

    STM32中断到底是什么?
    发表于 11-16 07:09

    STM32中断如何分组?外部中断配置过程是怎样的?

    STM32中断如何分组?外部中断配置过程是怎样的?
    发表于 11-17 07:54

    什么是STM32中断

    什么是STM32中断
    发表于 11-17 06:06

    STM32中断NVIC/EXTI外部中断是什么?

    STM32中断NVIC/EXTI外部中断是什么?
    发表于 11-17 06:22

    STM32中断函数是什么?

    STM32中断函数是什么?
    发表于 11-29 06:59

    学习stm32中断原理和编程方法

    本文主要介绍学习stm32中断原理和编程方法,利用CubeMX和HAL库实操开关中断点灯、串口通信。
    发表于 01-07 06:28

    STM32中断与DMA通信编程的相关资料下载

    STM32中断与DMA通信编程文章目录STM32中断与DMA通信编程一、题目内容二、CubeMX中断方式点亮LED灯1、CubeMX工程2、
    发表于 01-11 08:01