A.02.18—唤醒时序—时序
0赞
发表于 7/13/2015 10:13:44 AM
阅读(3088)
接上一小节,本小节进一步介绍唤醒时序,分中断唤醒和周期唤醒两类介绍。
对于中断唤醒。当中断口受到触发后,即有大于规定时间tmin的电平输入时,首先进行初始化、再进行debounce、然后再运行应用程序进行相应的操作。初始化包含MCU本身及各种内存及各种外设芯片(如果有的话),debounce是指对输入信号的debounce,不过采用中断唤醒时有很多时候都不进行debounce,此步骤的必要性在具体设计时有待商榷,运行相应的程序是指唤醒后的所有程序块。图中的tot是指其他时间,这个延时与具体的功能相关,如要是本次唤醒所对应的功能是发出一条总线CAN信号,则需看信号发送单元的软件周期是多少个ms,在计算延时时需加上这个时间。
对于周期唤醒。在睡眠时间ts期间模块是无法检测外部输入的,因此这个期间即使有有效的唤醒信号输入,也不可能立即唤醒模块,必须要等到模块自动醒来的tw期间,它才会开始检测各唤醒口的输入。如果在这个检测期间检测到了有效的输入值,如某开关有下降沿的变化(信号从高电平变成了低电平),则立即进行初始化操作、再对相应的开关进行debounce、debounce如果通过则照唤醒时的状态运行。如果在debounce时发现输入未能通过debounce,则可以重新进入睡眠状态,即认为该唤醒信号无效。不过这块可以灵活定义,例如假设要是在debounce期间不通过则可以再次进行更多次的debounce,以避免误判的发生。图中的tot是指其他时间,与具体功能相关,如假设在睡眠期间有一个灯光开关的输入,则此处的”其他时间“应为驱动软件的软件周期及硬件延时,相对之下硬件延时可忽略不计。
(2015-1-16 发表于本人QQ空间)
