Alila

A.02.10—功能定义—唤醒需求

0
阅读(1425)
  唤醒要求分三种类型进行定义,一个复杂的模块的唤醒需求可能三种类型的都包含,但很多模块只涉及两种,即第一加第二三中任意一种。
  第一种是总线唤醒。
  对于CAN,传统的是只要有消息就唤醒,由于CAN是广播式的,所以只要有本子网任意模块发了消息这个子网所有模块都醒来了,看起来这有点浪费,因为很可能醒来的多数模块都无事可干,他们仅仅只是被叫醒了一会又睡去了。鉴于这种情况,有了部分网络(Partial network),它的出现主要为节省上面所提的不必要唤醒的那些模块的耗电,即可以事先定义好我这个模块醒来后到底需要唤醒哪些模块。这样确实是省电了,但是对设计人员来说这也是种比较坑爹的方式,因为每个模块醒来后要唤醒的模块可能都有所不同,得一一定义每个模块醒来后到底要唤醒谁,且即使对于同一个模块来说在不同唤醒原因下其需要唤醒的模块也不一定相同。首先对于需求设计来说这增加了负担,对于软件实现来说也是,对于测试来说同样是,但是这么做到底能省多少电值不值得,需以一种严谨的态度去计算和分析,有些公司根本就没有进行过详细分析便跟风用PN网络,实是不该。
  对于Lin,可以是主节点唤醒从节点,也可以是从节点唤醒主节点,一般后者用得比前者少。一个比方就是车窗系统的子节点需要反向唤醒主节点。
  第二种是周期唤醒。
  即模块休眠一定时间后醒来做一些事,如果不满足唤醒条件转又归入睡眠。
  第三种是中断唤醒。

  对于某些输入端口,其输入信号直接连至MCU中断口,出现事先定义的有效信号时便唤醒MCU。

(2015-1-13 发表于本人QQ空间)