码农的自我修养 - BatteryManager设计

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

对于使用电池进行供电的电子产品,就需要一个电池管理模块,叫做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的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值