高通电池管理基于qpnp-vm-bms电压模式

高通qpnp-vm-bms电压模式电池管理

CV:Constant Voltage恒压

SMMB charger:Switch-ModeBattery Charger and Boost peripheral开关模式电池充电器和升压外围设备

OCV:Open circuitvoltage

EOC:End OfCharge充电结束

UUC:UnusableCapacity不可用电量

一、背景介绍

高通(Qualcomm)移动广泛集成了PMIC(电源管理IC),其BMS(Battery Management System,电池管理系统)负责监测、管理池的电量、健康、充放电安全等。qpnp-v-bms即Qualcomm PMIC Next-Gen Platform的Voltage Mode-BMS,是基于电池“电压模式(Voltage Mode”的算法和驱动框架,多用于安卓手机的内核。

二、qpnp-vm-bms电压模式简介

  • 电压模式(Voltage Mode)
    简单来说,是根据电池端电压估算剩余电量(SOC, State Of Charge)、剩余容量(mAh)等关键参数。而另一种常见的模式是库仑计数(Coulomb Counter,电流积分法)。
  • 特点
    • 不依赖库仑计数器(Coulomb Counter),而是基于对电池电压曲线匹配
    • 模型依赖电池电压与SOC的关系表
      -般对成本较低、硬件资源有限的产品较为适用
    • 精度低库仑计数法,但实现简单
    • 更依赖温度、电池工况等校正

三、qpnp-vm-bms主要功能

  1. 电池剩余容量估算(SOC)
    • 依据电电压(OCP Open Circuit Voltage)、温度及查表法(Voltage to SOC table)进行估算
  2. 充电状态管理
    • 充满、放空判定
    • 控制电流程
  3. 健康与保护
    • 欠压、过压、电池温度过高/过低监控
    • 保护电池避免过度放电/过度充电
  4. 参数接口导出
    • 向用户空间(Android HAL、BatteryService,sysfs)提供电池状态参数,如当前剩余百分比、状态(正在充电/放电)、健康状态等
      与PMIC/充电子系统协作
    • 协调充电管理IC,动态调节充电电流、电压等

四、核心实现/工作流程

  1. 硬件采样
    • 从PMIC ADC通道定期读取电池电压(有时附加温度传感器)
    • 部分情况会采集阻抗估算
  2. 查表算法(Voltage-SOC Table)
    • 内核驱动内置或DT中加载电池电压到SOC的特性表
    • 实时根据当前电压、温度查表得到对应SOC
    • 温度系数可能参与补偿(不同温度下电压-SOC特性曲不同)
  3. 状态机推进
    • 进入/退出充电、放电、空电、满电、上电等状态,更新对应flag
    • 若电压临界则触发报警/保护
  4. 参数导出机制
    • 在/sys/class/power_supply/bms/等节点下导出如capacity、voltage_now等属性
    • 上层(Android Framework/Service)定期轮询读取

五、使用/配置方法(详细方法参加下方)

1. 设备树(Device Tree)配置

通常需在dts文件(pm8998.dtsi等)中写入类似如下节点:

bms: qpnp-vm-bms@... {
    compatible = "qcom,qpnp-vm-bms";
    io-channels = <&pm8998_adc ADC_CHANNELAT_VOL>;
    q,voltage-soc-table = < ... 配置具体的电压与SOC表 ... >;
    qcom,temperature-soc-correction = < 可选,温度修正表 >;
    /* 其它参数如电池容量、电压上下限等 */
};

2. 内核驱动

  • 路通常在drivers/power/qcom/qpnp-vm-bms.c
  • 编译选项依赖于CONFIG_QPNP_VM_BMS

3. 用户空间/验证使用

  • 电池状态可通过如下sysfs节点读取:
    cat /sys/class/power_supply/bms/capacity        # SOC(%)
    cat /sys/class/power_supply/bms/voltage_now     # 当前电压(uV)
    cat /sys/class/p_supply/bms/temp            # 电池温度(0.1°C)
    
  • 可通过logcat、dmesg监控BMS相关日志
  • 使用BatteryService/Settings观察效果

4. 典型应用场景

  • 中低端机型、IoT智能设备等不需要精细电量管理的场景
  • 没有专门库仑计硬件支持时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值