Alila

A.02.17—唤醒时序—睡眠时情况

0
阅读(1669)
    这小节看下在正常的睡眠期间模块的情况是什么样的。按中断和周期扫描两种情况介绍。

    第一是中断唤醒。前面介绍过总线唤醒和一些端口的唤醒均采用中断唤醒的方法。对于相应的中断口来说,如果有唤醒电平输入,则MCU将被唤醒,不过一些极短的输入脉冲不应输入到MCU的中断口,这些脉冲大多是平时的一些干扰,需由前端硬件电路吸收掉。如图中,对于中断口来说平时为低电平,而高电平为唤醒电平。对于小于tmin的高电平信号,是不需唤醒MCU的,对于大于等于tmin的高电平信号才需唤醒MCU,这个时间是需需求定义者规定。
    第二是周期唤醒。有些人也叫它“打盹”,唤醒周期是100ms就称“打盹时间为100ms"。其实它的本质是MCU每隔一段固定的时间起来扫描外部端口的情况,如果检测到符合条件的输入则执行进一步操作以确认是否真需要唤醒,如果未检测到符合条件的输入则在极短时间tw内扫描一遍所有唤醒口后继续睡眠。也就是模块一直重复着”睡眠ts的时间、醒来tw的时间、再睡眠ts的时间“这种类似的循环。

    在计算静态功耗的时候对于仅有中断唤醒的模块来说只需考虑其睡眠后的功耗是多少,对于周期唤醒的模块来说应计算一个周期的均值。某些模块也采用变周期的周期唤醒策略,即对于上述所提ts,在整车刚休眠的一段时间内,采用较短的时间间隔,休眠后再过一段时间,采用较长的时间间隔,整车休眠时间越长,模块的唤醒周期也越长。这种方法主要考虑整车长时间静置(如50天)后蓄电池的起动能力,以避免车子放了一两个月后电池已经没有足够电量起动车辆了。

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