OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4181|回复: 3

通俗介绍外部中断与外部事件的区别在哪里?

[复制链接]

210

主题

318

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1998
金钱
1998
注册时间
2015-10-27
在线时间
216 小时
发表于 2016-1-21 23:44:05 | 显示全部楼层 |阅读模式
1金钱
那么外部事件是一个什么概念?它与外部中断有什么区别?

最佳答案

查看完整内容[请看2#楼]

我的理解也不是很深,查了一些资料,稍微理解一些。根据网上的资料,复制粘贴总结到咱们论坛上,之后学习使用 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

97

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
17563
金钱
17563
注册时间
2016-1-20
在线时间
63 小时
发表于 2016-1-21 23:44:06 | 显示全部楼层
本帖最后由 YMC 于 2016-1-22 10:03 编辑

我的理解也不是很深,查了一些资料,稍微理解一些。根据网上的资料,复制粘贴总结到咱们论坛上,之后学习使用
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。


你要好好地看看相应的模块框图,参考下图:当你只要产生中断而不想触发其它操作时,就可以用事件屏蔽寄存器实现。




在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。中断只是一个中文简称.实际只存在中断事件和中断服务程序即:

1)中断信号也即中断事件.它往往有寄存器作记录,但也有例外,如AVR的脚的电平变化引起的中断,就没有寄存器记录.]
2)中断服务程序,是一个代码段.

每一个中断事件,都有中断服务程序与之对应(漏写的例外---非法).在实践中,常常将两者混为一谈.

有些cpu设计,可以一个中断服务程序对应几个中断事件(实际上,是一个中断入口,对应若干中断信号或称中断源)

外部中断只是与内部中断相区别.内部中断一般是指定时器之类的中断.外部中断嘛,就不解释了.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      主要的讲,就是在不进入到中断函数的情况下,触发其他的操作。比如,我希望在外部中断的时候,去采集ad。那么其他的做法是,在中断函数中写入adc 采集。而在这里,只需要将事件寄存器置位,然后在其他外设寄存器中设置即可。这样设置,当外部中断被触发时,则可以不用在中断函数中处理adc。直接由事件来驱动adc采集。
      这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志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芯片处理事件能力的一个有效方法。
---------------------------------------------------
个人论坛博客:macian.cn
个人淘宝小店:macian.taobao.com
回复

使用道具 举报

37

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2015-12-31
在线时间
108 小时
发表于 2016-1-22 09:06:19 | 显示全部楼层
中断在中断向量表中有特定的中断入口地址,中断处理有特定的中断处理机制;中断肯定对应着触发事件,但是事件产生并不一定会产生中断;手册上说的很详细还有图例;
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-6-2
在线时间
4 小时
发表于 2020-6-14 20:02:29 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 05:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表