睡眠控制流程
一个典型的睡眠控制流程(比如用户同时使用BLE和外设)描述如下:
- 系统上电后,进入冷启动。
- 当进入Active Mode后,系统将处于全速运行的高功耗状态。在Active Mode下,芯片可执行任何任务,比如处理蓝牙业务或从外设读取数据。
- 当无业务逻辑处理时,系统进入Check BLE Sleep。此时系统根据BLE Core的内部逻辑判断,使系统进入Idle Mode或者Sleep Mode。
- 如果系统处于BLE Idle状态,蓝牙子系统始终保持供电,以减少BLE启动耗时。系统从BLE Idle状态直接进入Idle Mode。中断事件和调试操作可将系统从Idle Mode中快速唤醒,然后进入Active Mode。
- 如果系统处于BLE Sleep状态,蓝牙子系统掉电,以进一步降低功耗。此时判断剩余睡眠时间(睡眠决策时刻与定时器唤醒时刻之间的时间间隔,所述定时器包括BLE Timer、Sleep Timer、RTC)若小于热启动耗时,则系统会进入Idle Mode。剩余睡眠时间若大于热启动耗时,则系统进入Sleep Mode。处于Sleep Mode下的系统被唤醒源唤醒后将进入热启动(Warm Boot)流程。
注:
从Sleep Mode进入热启动流程需要一段启动时间且启动电流较大。睡眠时间较短时(如小于2 ms),系统进入Sleep Mode后功耗降低不明显。从系统综合性能考虑,当睡眠时间较长时,系统进入Sleep Mode的平均功耗更低。