一、CarPower介绍
在Android Automotive OS (AAOS)中,CarPower负责车载电源的原理,它一面同libsusped交互控制AP(应用处理器,也就是Soc)的电源状态,一方面通过VehicleHAL与MCU通信接收和发送电源相关指令。其中CarPowerManagementService作为CarService的子服务,负责调用HAL层(VehicleHAL)实现具体功能,而CarPowerManagement作为客户端接口由APP调用,如下为CarPower的Block图:
CarPower重要的状态如下:
CpmsState:
状态 | 值 | 含义 |
---|---|---|
WAIT_FOR_VHAL |
0 |
表示 Android 的电源状态已启动,但等待VHAL发出启动主要功能的信号。 |
ON |
1 |
表示系统的电源状态处于ON状态。 |
SHUTDOWN_PREPARE |
2 |
示系统正在准备关机或挂起的电源状态。应用程序应清理并准备挂起。 |
WAIT_FOR_FINISH |
3 |
AAOS 通知 VHAL 它可以关闭。车载微控制器单元 (VMCU) 应将系统芯片 (SoC) 置于深度休眠模式,并断开 AP 的电源。然后,AAOS 进入 STR 状态,但不执行任何代码。 |
SUSPEND |
4 |
车辆和 AP 断电,不执行任何代码,AP/RAM 仍然通电。 |
SIMULATE_SLEEP |
5 |
- |
SIMULATE_HIBERNATION |
7 |
- |
对应的状态迁移图如下:
CarPowerManager State:
状态 | 值 | 含义 |
---|---|---|
STATE_INVALID |
0 |
表示当前电源状态的电源状态不可用、未知或无效。 |
STATE_WAIT_FOR_VHAL |
1 |
表示 Android 的电源状态已启动,但等待VHAL发出启动主要功能的信号。 |
STATE_SUSPEND_ENTER |
2 |
表示系统进入深度睡眠(挂起到 RAM)的电源状态。 |
STATE_SUSPEND_EXIT |
3 |
表示系统从挂起中唤醒的电源状态。 |
STATE_SHUTDOWN_ENTER |
5 |
表示系统进入关机状态的电源状态。 |
STATE_ON |
6 |
表示系统的电源状态处于ON状态。 |
STATE_SHUTDOWN_PREPARE |
7 |
表示系统正在准备关机或挂起的电源状态。应用程序应清理并准备挂起。 |
STATE_SHUTDOWN_CANCELLED |
8 |