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
    +关注

    关注

    2266

    文章

    10877

    浏览量

    355000
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41406
  • 事件
    +关注

    关注

    0

    文章

    12

    浏览量

    9921
收藏 人收藏

    评论

    相关推荐

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

    STM32中断优先级和开关总中断 教程
    发表于 11-23 18:03 0次下载

    STM32中断与嵌套快速入门(NVIC)

    STM32中断与嵌套快速入门(NVIC),喜欢的朋友可以下载来学习。
    发表于 01-15 17:45 41次下载

    STM32中断管理函数

    STM32中断管理函数,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-02 19:13 15次下载

    6410中断分析,我的是tiny6410,的资料

    6410中断分析,我的是tiny6410,的资料
    发表于 10-27 14:37 11次下载
    6410<b class='flag-5'>中断</b><b class='flag-5'>分析</b>,我的是tiny6410,的资料

    中断是什么?STM32中断系统介绍和中断配置步骤资料免费下载

    本文档的主要内容详细介绍的是中断是什么?STM32中断系统介绍和中断配置步骤资料免费下载。
    发表于 10-11 08:00 5次下载
    <b class='flag-5'>中断</b>是什么?<b class='flag-5'>STM32</b><b class='flag-5'>中断</b>系统介绍和<b class='flag-5'>中断</b>配置步骤资料免费下载

    STM32中断及FreeRTOS中断优先级配置

    STM32中断,及FreeRTOS中断优先级配置
    的头像 发表于 03-04 11:45 8847次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>中断</b>及FreeRTOS<b class='flag-5'>中断</b>优先级配置

    STM32关全局中断的方法 STM32中断类型

    STM32中断很强大,STM32中断可以嵌套,任何外设都可以产生中断,其中中断和异常是等价的。
    的头像 发表于 07-22 10:52 2.8w次阅读

    stm32f103中断总结很详细

    stm32f103中断总结很详细
    发表于 11-24 17:06 28次下载
    <b class='flag-5'>stm32</b>f103<b class='flag-5'>中断</b>总结很详细

    STM32中断与DMA通信编程

    一、STM32中断使用NVIC 中断优先级管理Nested Vectored Interrupt Controller,嵌套向量中断控制器。CM3支持256个
    发表于 12-07 10:51 7次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>中断</b>与DMA通信编程

    STM32中断与DMA通信编程

    STM32中断与DMA通信编程中断模式编程CubeMx创建项目Keil修改代码串口中断cubeMX创建项目Keil修改代码DMA方式Keil修改代码总结参考
    发表于 12-24 19:06 10次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>中断</b>与DMA通信编程

    STM32中断原理

    STM32CubeMX中断串口通信3.1 项目内容3.2 工程设置3.3 代码实操3.4 效果展示四、参考文献本篇博客内容包括 :1.介绍STM32
    发表于 12-24 19:11 17次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>中断</b>原理

    stm32中断初识与实践(上)

    stm32中断的讲解我分为两部分,即两篇文章,上半部分做一个总结性的概览,有一个初步认识,下半部分会通过一个实例来讲解中断的应用。本文即为上半部分的总结性概览。 所谓“中断”,通俗地讲
    发表于 02-11 15:26 4次下载
    <b class='flag-5'>stm32</b><b class='flag-5'>中断</b>初识与实践(上)

    STM32中断系统的工作流程

    管理核心的STM32中断系统有一个初步的了解,明白中断的一些基本概念以及STM32中断系统的一个大致的工作流程。 这一篇主要对
    的头像 发表于 06-22 09:17 2485次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>中断</b>系统的工作流程

    为什么有些STM32中断没有子优先级?

    看到一个交流群在讨论关于【关于STM32中断优先级的话题】,其中就有小伙伴提到:为什么有些STM32中断没有【子优先级】?
    的头像 发表于 10-17 15:50 835次阅读
    为什么有些<b class='flag-5'>STM32</b><b class='flag-5'>中断</b>没有子优先级?

    stm32中断怎么处理的

    STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断STM32非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细介绍
    的头像 发表于 01-02 17:35 2492次阅读