对于使用电池进行供电的电子产品,就需要一个电池管理模块,叫做BatteryManager。
将BatteryManager(BM)设计为一个类,用来管理电池操作,包括充电、LED显示、电量管理等。
这里涉及到的硬件,有电池(一般是可充电锂电池),充电IC(Charge IC),有可能还有Gauge IC(电量计),以及一些相关AD信号。
BM类的依赖
创建BM类时需要传入一些参数,根据一般的设计来进行举例,具体情况下可能有所差异。
第一个,需要依赖的是Hardware类。
这个类是当前产品的硬件管理类,包含了各种硬件功能和资源,以供BM使用。
第二个,事件管理器EventManager。
在系统运行中,各个模块都需要收发事件,由这个类完成。
第三个,其他一些信息,比如充电芯片使用的IIC的端口号。(一般charge IC都是IIC接口)
第四个,需要使用的其他的外部功能,比如可能依赖某个外部模块的功能,根据需求进行一些操作。
BM类的功能
1,一个init初始化函数。
2,可以进行事件接收处理的线程。
比如接收系统级的事件或其他模块的事件,需要BM进行处理。
3,一个polling函数,用来维持BM的必要功能。
这里并不需要使用一个线程资源,针对BM的情况,一个一般的周期函数即可满足需求。
此polling函数需要安放在产品的主loop循环中。
在polling函数中,作为此模块的主处理函数,可以使用状态机来进行管理。
4,获取各种信息的函数。
比如取得电池电压、电池类型、电池状态、电量百分比、温度等信息。
5,Charge IC / Gauge IC的操作。

本文探讨了如何设计和实现一个用于电池供电电子产品的BatteryManager类,涉及硬件依赖、功能模块如初始化、事件处理、状态机管理以及电池状态定义。重点讲解了充电IC和GaugeIC操作,以及如何通过状态机来控制电池生命周期过程。
最低0.47元/天 解锁文章
1114

被折叠的 条评论
为什么被折叠?



