OpenEdv-开源电子网

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

STM32 中断与事件关系的解剖

  [复制链接]

18

主题

158

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
400
金钱
400
注册时间
2011-11-23
在线时间
0 小时
发表于 2012-8-3 08:50:26 | 显示全部楼层 |阅读模式



这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套。

      图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断“挂起请求寄存器”,最后经过编号4的与门输出到NVIC中断控制器;在这个通道上有4个控制选项,外部的信号首先经过边沿检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制,所以用户可以同时选择上升沿或下降沿,而如果只有一个寄存器控制,那么只能选择一个边沿了。
      接下来是编号3的或门,这个或门的另一个输入是“软件中断/事件寄存器”,从这里可以看出,软件可以优先于外部信号请求一个中断或事件,既当“软件中断/事  件寄存器”的对应位为“1”时,不管外部信号如何,编号3的或门都会输出有效信号。 一个中断或事件请求信号经过编号3的或门后,进入挂起请求寄存器,到此之前,中断和事件的信号传输通路都是一致的,也就是说,挂起请求寄存器中记录了外部信号的电平变化。 外部请求信号最后经过编号4的与NVIC中断控制器发出一个中断请求,如果中断屏蔽寄存器的对应位为“0”,则该请求信号不能传输到与门的另一端,实现了中断的屏蔽。 明白了外部中断的请求机制,很容易理解事件的请求机制了。图中红色虚线箭头,标出了外部事件信号的传输路径,外部请求信号经过编号3的或门后,进入编号5的与门,这个号4的与门,用于引入事件屏蔽寄存器的控制;最后脉冲发生器把一个跳变的信号转变为一个单脉冲,输出到芯片中的其它功能模块。
     在这张图上我们也可以知道,从外部激励信号来看,中断和事件是没有分别的,只是在芯片内部分开,一路信号会向CPU产生中断请求,另一路信号会向其它功能模块发送脉冲触发信号,其它功能模块如何相应这个触发信号,则由对应的模块自己决定。在图上部的APB总线和外设模块接口,是每一个功能模块都有的部分,CPU通过这样的接口访问各个功能模块,这里就不再赘述了。

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

总结:

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



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-8-3 09:41:00 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2012-8-3
在线时间
0 小时
发表于 2012-8-3 16:10:53 | 显示全部楼层
好的帖子就应该顶起来!
http://www.y-ec.com
http://www.cqqingye.com
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
发表于 2012-8-3 21:47:03 | 显示全部楼层
顶~~
回复 支持 反对

使用道具 举报

8

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2012-8-25
在线时间
1 小时
发表于 2012-8-25 18:10:42 | 显示全部楼层
这个论坛真心好
回复 支持 反对

使用道具 举报

54

主题

248

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
484
金钱
484
注册时间
2012-3-23
在线时间
0 小时
发表于 2012-8-25 19:46:56 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-7-28
在线时间
6 小时
发表于 2012-8-26 22:37:02 | 显示全部楼层
学习了。感谢楼主分享心得
回复 支持 反对

使用道具 举报

12

主题

216

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2011-4-7
在线时间
3 小时
发表于 2012-8-26 23:04:41 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2012-9-4
在线时间
0 小时
发表于 2012-9-4 21:28:33 | 显示全部楼层
mark 
回复 支持 反对

使用道具 举报

15

主题

138

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2012-8-10
在线时间
2 小时
发表于 2012-9-8 09:16:26 | 显示全部楼层
好贴
回复 支持 反对

使用道具 举报

5

主题

14

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
370
金钱
370
注册时间
2012-9-7
在线时间
3 小时
发表于 2012-9-8 09:43:07 | 显示全部楼层

学习了,写的很好!

回复 支持 反对

使用道具 举报

2

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2012-9-2
在线时间
52 小时
发表于 2012-9-10 08:12:55 | 显示全部楼层
这样就好明白了,谢谢!!
回复 支持 反对

使用道具 举报

1

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2012-6-30
在线时间
15 小时
发表于 2012-9-10 11:05:24 | 显示全部楼层
学习了; 
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-9-30
在线时间
0 小时
发表于 2012-10-4 19:46:04 | 显示全部楼层
必须顶。。。
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2012-9-23
在线时间
0 小时
发表于 2012-10-5 10:55:39 | 显示全部楼层
回复【楼主位】shuilian007:
--------------------------------
象19字样的注释,表示这样的线路最多有19套。
比如中断屏蔽寄存器的路数就少于软件中断事件寄存器的路数。

回复 支持 反对

使用道具 举报

187

主题

324

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2012-6-4
在线时间
120 小时
发表于 2012-10-24 14:08:58 | 显示全部楼层
都在说顶,可怎么就没有人指出其中的错误呢。有两个错误:
错误1.原文“从这里可以看出,软件可以优先于外部信号请求一个中断或事件”,这个不应该有优先的意思,它就只是一个或门而已,两者之一不管哪个发生都会使或门有信号输出。
错误2.原文“进入编号5的与门,这个号4的与门,用于引入事件屏蔽寄存器的控制”,这里的“号4”应该为“编号5”.

申明:我绝对没有找茬的意思,只是刚刚看了用户手册里的中断和事件那一章内容,然后再来论坛找帖子加强理解,看到作者这个帖子这里无法理解,然后仔细一想原来不是我无法理解,而是我认为错误。
回复 支持 反对

使用道具 举报

11

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
652
金钱
652
注册时间
2012-8-1
在线时间
68 小时
发表于 2012-10-26 09:28:13 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
发表于 2013-1-8 15:55:12 | 显示全部楼层
写的非常的好   我终于明白了事件触发的作用了  以前一直没有看懂
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-1-9
在线时间
0 小时
发表于 2013-1-9 14:49:42 | 显示全部楼层
楼主很强大...
睡觉是一种享受.....
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2012-11-26
在线时间
1 小时
发表于 2013-1-9 16:08:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

19

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2011-3-23
在线时间
5 小时
发表于 2013-3-23 11:33:29 | 显示全部楼层
好帖,就应该顶~~~~~~~
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-3-31
在线时间
0 小时
发表于 2013-3-31 21:20:17 | 显示全部楼层
支持下。
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2013-2-27
在线时间
0 小时
发表于 2013-4-1 09:00:57 | 显示全部楼层
 顶起
回复 支持 反对

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2013-5-8
在线时间
2 小时
发表于 2013-6-14 20:02:33 | 显示全部楼层
讲的很透彻,顶起
回复 支持 反对

使用道具 举报

3

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2013-8-9
在线时间
65 小时
发表于 2013-8-14 13:44:10 | 显示全部楼层
谢谢共享,支持一下
坚持自己的目标,就一定能够实现!
回复 支持 反对

使用道具 举报

66

主题

237

帖子

0

精华

高级会员

Rank: 4

积分
943
金钱
943
注册时间
2013-5-17
在线时间
192 小时
发表于 2013-8-16 13:50:58 | 显示全部楼层
讲的很好,支持!
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-3-22
在线时间
3 小时
发表于 2013-8-18 20:48:06 | 显示全部楼层
真的很好,谢谢楼主
回复 支持 反对

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-8
在线时间
2 小时
发表于 2013-8-18 22:42:57 | 显示全部楼层
回复【16楼】51921866:

都在说顶,可怎么就没有人指出其中的错误呢。有两个错误:
错误1.原文“从这里可以看出,软件可以优先于外部信号请求一个中断或事件”,这个不应该有优先的意思,它就只是一个或门而已,两者之一不管哪个发生都会使或门有信号输出。
错误2.原文“进入编号5的与门,这个号4的与门,用于引入事件屏蔽寄存器的控制”,这里的“号4”应该为“编号5”.
申明:我绝对没有找茬的意思,只是刚刚看了用户手册里的中断和事件那一章内容,然后再来论坛找帖子加强理解,看到作者这个帖子这里无法理解,然后仔细一想原来不是我无法理解,而是我认为错误。

---------------------------------
嗯。第一个错误是明确的。  但是从通篇来讲,楼主的帮助作用老大了,现在我懂了 事件中断是用来向其他单元发送信号脉冲的啊!谢谢各位!
回复 支持 反对

使用道具 举报

9

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2013-3-16
在线时间
0 小时
发表于 2013-8-20 20:01:16 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

8

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-8-11
在线时间
0 小时
发表于 2013-8-20 22:29:27 | 显示全部楼层
好的帖子就必须得顶
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-10-31
在线时间
5 小时
发表于 2013-11-10 15:00:40 | 显示全部楼层
干!!顶!!!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-10-27
在线时间
0 小时
发表于 2013-11-10 15:42:17 | 显示全部楼层
楼主这讲的是中断与事件的关系吗?
回复 支持 反对

使用道具 举报

4

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2013-10-17
在线时间
9 小时
发表于 2015-5-7 22:40:49 | 显示全部楼层
mark...
回复 支持 反对

使用道具 举报

10

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-7-29 13:43:50 | 显示全部楼层
回复【28楼】zxc2769:
---------------------------------
好眼力
我建了一个战舰stm32交流群:320350722 新手请教老手,老手大显身手! stm32交流群:320350722 stm32交流群:320350722
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2015-9-4
在线时间
0 小时
发表于 2015-9-5 17:33:10 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2015-9-4
在线时间
0 小时
发表于 2015-9-9 10:11:02 | 显示全部楼层
对于外部中断来说,同一个通道中断和事件模式只能使用一个吗?在库函数中设置了某一通道外部中断为中断模式,就相当于屏蔽了事件模式吗?
回复 支持 反对

使用道具 举报

210

主题

318

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1998
金钱
1998
注册时间
2015-10-27
在线时间
216 小时
发表于 2016-1-22 00:05:42 | 显示全部楼层
这篇文章真的不错!!
回复 支持 反对

使用道具 举报

1

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-10
在线时间
49 小时
发表于 2016-3-24 11:34:12 | 显示全部楼层
从这个流程,如果熟悉x86体系中断(i8259)ISA的脉冲,PCI的电平,就可以体会到老外设计STM时考虑的很周到。过去中断的关键也就是个中断状态寄存器,如果共享就在isr内查询,最后复位中断请求。道理差不多,但STM的选择要丰富,尤其是NVIC还有个请求优先级和相应优先级(我个人认为有了前者这个响应优先级意义不是很大)。
逆水行舟不进则退
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2015-6-13
在线时间
1 小时
发表于 2016-4-12 17:25:03 | 显示全部楼层
谢谢!!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-6-16
在线时间
7 小时
发表于 2016-4-13 08:33:47 | 显示全部楼层
                           好
回复 支持 反对

使用道具 举报

3

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
249
金钱
249
注册时间
2016-10-8
在线时间
50 小时
发表于 2017-6-15 14:55:10 | 显示全部楼层
顶~
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-5-7
在线时间
5 小时
发表于 2017-7-5 15:02:18 | 显示全部楼层
666
回复 支持 反对

使用道具 举报

11

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
341
金钱
341
注册时间
2017-3-17
在线时间
85 小时
发表于 2017-12-4 17:30:12 | 显示全部楼层
学习了!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-10-21
在线时间
3 小时
发表于 2020-1-14 11:05:31 | 显示全部楼层
这样就好明白了,谢谢!!
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2017-5-25
在线时间
31 小时
发表于 2020-2-4 18:32:37 | 显示全部楼层
顶~~~~~~
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2020-3-9
在线时间
26 小时
发表于 2020-3-11 10:29:54 | 显示全部楼层
学习了,点赞
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 08:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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