目录
1. Power supply框架都做些什么
2. 相关数据结构和接口
2.1 数据结构
2.2 接口
3. 充电驱动
3.1 Charger Manager
3.2 Fuel Gauge
3.3 Charger IC
4. 怎样基于power supply class编写PSY driver
参考资料:
对于便携设备来说,电源管理更加的重要,因为电池电量有限,容易电量焦虑。除了省电管理外,还需要对电池进行监控管理和充放电管理,这样保护好电池和系统,能用的更久。
1. Power supply框架都做些什么
这里我们以安卓为例:
-
APP 层: 该部分属于电量上报的最后的环节。其主要工作是:监听系统广播并对 UI 作出相应更新,包括电池电量百分比,充电状态,低电提醒,led 指示灯,异常提醒等。
-
FrameWork 层: 本层的 Battery 服务使用 Java 代码写成,运行在 FrameWork 中的SystemServer 进程。该系统服务的主要作用是:监听电池信息变化消息,并将该消息以系统广播的形式转发至 Android 系统中各处。
-
Native 层: Healthd 守护进程属于 Android Native 层的一个系统服务,负责接受 Kernel Driver 层上报的 uevent 事件,对电池信息和充电状态实时监控。
-
Kernel 层: 本层属于电池的驱动部分,由 Charger-manager 驱动、充电 IC 驱动、Fuel 驱动构成,负责与硬件交互,注册 Power supply 属性,并生成 uevent 上报 Native 层。包含充电状态管理、电量统计与更新。
关机充电
关机充电是单独启动的一个 linux 应用,通过系统调用直接读取 sysfs <