Chinaunix首页 | 论坛 | 博客

Lzy

  • 博客访问: 208256
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-27 15:50
文章分类

全部博文(56)

文章存档

2014年(56)

我的朋友

分类: 嵌入式

2014-07-05 10:56:29

事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。 
事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;
简单点就是中断一定要有中断服务函数,但是事件却没有对应的函数.
但是事件可以触发其他关联操作,比如触发DMA,触发ADC采样等.
可以在不需要CPU干预的情况下,执行这些操作.
中断则必须要CPU介入. 

看看下面这个图:


中断和事件的产生源都可以是一样的! 
之所以分成2个部分,由于中断是需要CPU参与的,需要软件的中断服务函数才能完成中断后产生的结果; 
但是事件,是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件产生的结果,当然相应的联动部件需要先设置好,比如引起DMA操作,AD转换等; 
简单举例:外部I/O触发AD转换,来测量外部物品的重量; 
如果使用传统的中断通道,需要I/O触发产生外部中断,外部中断服务程序启动AD转换,AD转换完成中断服务程序提交最后结果; 
要是使用事件通道,I/O触发产生事件,然后联动触发AD转换,AD转换完成中断服务程序提交最后结果; 
相比之下,后者不要软件参与AD触发,并且响应速度也更块; 
要是使用事件触发DMA操作,就完全不用软件参与就可以完成某些联动任务了。 
可以这样简单的认为,事件机制提供了一个完全有硬件自动完成的触发到产生结果的通道,不要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度(硬件总快于软件),是利用硬件来提升CPU芯片处理事件能力的一个有效方法

2  事件与中断
事件:是表示检测到某一动作(电平边沿)触发事件发生了。
中断:有某个事件发生并产生中断,并跳转到对应的中断处理程序中。
事件可以触发中断,也可以不触发
中断有可能被更优先的中断屏蔽,事件不会

事件本质上就是一个触发信号,是用来触发特定的外设模块或核心本身(唤醒).
事件只是一个触发信号(脉冲),而中断则是一个固定的电平信号


通过上图的表示,可以明显看出,蓝色是中断发生,红色是事件发生,从一到三两者线路是相同的,然后两者分开,上升沿和下降沿用来选择电平方式,中断和事件屏蔽寄存器起到相应的开关作用,软件中断/事件寄存器只要为1对后面的线路都有作用,挂起请求寄存器主要记录电平变化!

阅读(7136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~