高通8X16电池BMS算法(一)【转】

本文转载自:http://www.voidcn.com/blog/yanleizhouqing/article/p-6037399.html

最近一直在搞电源管理相关内容,之前是8610的bms,现在8916的bms,发现两者还是有点区别的,8916把对last_ocv_uv的估值算法分装成执行文件,作为服务一直运行。

电源管理方面,应该是android驱动开发的一大难点,主要涉及的方面多,如充、放电、休眠唤醒等。这一部分主要讲BMS相关的一些基本概念。电池这一块刚开始入手时,感觉很难,很复杂,完全不知道如何入手,后来搞久了,才发现,是对电池一些基本的知识,在脑海中缺少相关的概念,所以才感觉难,这里主要是介绍一些相关的术语与知识。

1. 相关的名词

术语

全称

注释

FCC

Full-Charge Capacity

满电荷电量

UC

Remaining Capacity

RC 剩余电量

CC

Coulumb Counter

电量计

UUC

Unusable Capacity

不可用电量

RUC

Remaining Usable Capacity

RUC=RC-CC-UUC,剩余可用电量

OCV

Open Circuit Voltage

开路电压,电池在开路状态下的端电压称为开路电压

SoC

State of Charge

电量百分比

PC

Percentage Charge

剩余电荷占FCC百分比

2. 相关的代码

kernel\drivers\power\ Qpnp-vm-bms.c //电池BMS算法

kernel\drivers\power\ Qpnp-linear-charger.c //电池充电相关的代码

batterydata-XX_3000 mah.dtsi //电池相关的参数

Msm-pm8X 16.dtsi //针对PMU芯片,进行的相关设置

其他一些的代码就不一一列出来,其实高通的代码还是比较好的,基本大部分的文件都会.txt的介绍文档,我个人建议在不管调什么模块,

看到有与之对应的.txt说明文档,都应该去看一下,起码对一些基本的概念有个了解。

3. 相关的原理

3.1  BMS 主要任务

1. 防止过充 2. 避免深放 3. 温度控制 4. 电池组件电压和温度的均衡 5. 预测电池的SOC 6. 电池诊断 7. 总电压及单体电压测量

8. 总电流及单体电流测量 9. 报警1 0. 通信SOC

方法:能量积分 + 误差矫正 (大众化技术,准确性高。)

传统的电池电量测试方法有:密度法,开路电压法,内阻法和安时法等。

新型算法有:自适应神经模糊推断模型、模糊逻辑算法模型、线性模型法、阻抗光谱法和卡尔曼滤波估计模型算法 。

3.2 开路电压法

通过实验方法描述在不同放电电流情况下的电池的端电压与电池的剩余能量的关系曲线,并存储特征关系曲线。

实时采样电池放电时的端电压,查表求出电池的剩余能量,同时考虑电池的使用寿命以及内阻对电池SOC的影响,对求得的电池剩余能量

进行校正。 优点:简单易行。  缺点:但是需要电池长时间静置,不能满足在线检测的要求。soc>40%,阻抗变化很小。

3.3 8916的BMS的相关思路:

3.3.1   PMU通过PMIC总线读取电池的AD值,通过一个数据运算转化为电压值。

3.3.2   在不同的电池参数文件中,都有相对应的表,

pc-temp-ocv-lut,为温度、SOC对应得电压表,PMU8916获取的电压值,通过查该表,在温度和电压下,可得到当前的SOC。

rbatt-sf-lut,为温度、soc对应的电池内阻表,这里主要考虑内阻的影响,对OCV的修正,new_ocv=ocv+rbatt(内阻)*current(当前电流)。

fcc-temp-lut,为温度对应的fcc表,ibat-acc-luit,为温度、电流对应的acc表,这两个是起到修正SOC的作用,相关计算为:

soc_uuc = ((fcc - acc) * 100) / fcc,fcc、acc均为查表所得,

soc_acc = DIV_ROUND_CLOSEST(100 * (soc_ocv - soc_uuc),(100 - soc_uuc)); //最终 soc_acc,为上报的SOC.

3.3.3   PMU8916的bms算法和PMU8612的有区别,其中对last_ocv_uv的估值计算的源码已经不开放,在monitor_soc_work的工作线程,

会上报事件uevent,当HAL层,收到消息,然后调用getprop的方法,获取相关的参数,如,电阻、电流、fcc、acc等,来估算出

last_ocv_uv,然后调用setprop,把该值设下去,并启动工作线程,根据last_ocv_uv,查表得到soc,并经过修正SOC,并再次上

报事件,循环下去。这个估值算法,我猜可能是一套学习算法,具体的没有源码,不清楚,只知道它把算法变为.bin文件,用了

binder机制,作为服务一直运行。

时间: 2024-10-10 23:23:13

高通8X16电池BMS算法(一)【转】的相关文章

高通8X16电池BMS算法(二)【转】

本文转载自:http://www.voidcn.com/blog/yanleizhouqing/article/p-6051912.html 上一篇主要讲电池相关的一些知识,上节忘记讲了,电池一般分为电量计电池和非电流计电池,电量计电池,就不需要用pmu8916的IC,当然这只是只,不需要BMS来计算soc,而jni层也需要读取电流计的电池相关属性. 这一节主要是根据代码进行相关的分析. 1. 先看probe的代码: static int qpnp_vm_bms_probe(struct spm

【转】高通平台android 环境配置编译及开发经验总结

原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流程分析 qcril 流程分析,设置sim卡锁 python scons 语法学习 Python 语言之 scons 工具流程分析: 1.2 搭建高通平台环境开发环境 高通and

高通QCOM 8610平台电量计算

一: SOC(荷电状态)计算方法 公式: SOC = RUC / (FCC-UUC) 名词: 术语 全称 注释 FCC Full-Charge Capacity 满电荷电量 UC Remaining Capacity RC 剩余电量 CC Coulumb Counter 电量计 UUC Unusable Capacity 不可用电量 RUC Remaining Usable Capacity RUC=RC-CC-UUC,剩余可用电量 OCV Open Circuit Voltage 开路电压,电

高通android开发摘要

一部分是开源的.能够从codeaurora.org上下载,另一部分是高通产权的.须要从高通的站点上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些參数 @msm-pm8226.dtsi中     pm8226_bms: qcom,bms{        qcom,low-soc-calculate-soc-threshold = <15>; //觉得是低电压的soc(15%)        qcom,low-soc-calculate-soc-

高通Quick Charge高速充电原理分析

1 QC 2.0 1.1 高通Quick Charge 2.0 高速充电原理分析 高通的QC2.0高速充电须要手机端和充电器都要支持才行. 当将充电器端通过数据线连到手机上时,充电器默认的是将D+和D-短接的,这样手机端探測充电器类型是DCP(參见本人还有一篇博文<高通平台USB2.0和3.0接口充电器识别原理>).手机以默认的5V电压充电,接着步骤例如以下: 1) 假设手机端使能了高速充电协议.Android用户空间的hvdcp(high voltage dedicated charger

市值超越高通后,NVIDIA用黑科技抢占苹果高端笔记本市场

(上图为NVIDIA CEO黄仁勋在2017台北Computex上介绍Max-Q设计) 2011年10月21日,NVIDIA CEO黄仁勋在AsiaD大会上表示,高通是该公司最为直接的竞争对手,苹果公司是间接竞争对手.6年后,在2017年5月30日的台北电脑展Computex期间,NVIDIA的市值超过了高通,当天NVIDIA的总市值达854.70亿美元,而高通的总市值则是851.01亿美元. 在第二天接受记者采访的时候,黄仁勋表示了一下惊讶:"是吗?"接着就继续讲在本次台北Compu

高通camera结构【转】

本文转载自:http://www.cnblogs.com/whw19818/p/5853407.html 摄像头基础介绍 一.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像. 数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理

GJM : Unity3D 高通Vuforia SDK AR 开发

一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息应用到真实世界,并将计算机生成的虚拟物体.场景或系统提示信息叠加到真实场景中,从而实现对现实的增强. 二.工具: 在这里我们主要是用高通的Vuforia SDK来演示如何在Unity下制作一个简单的AR的demo,Vuforia SDK是一套很完整的可以直接调用的AR API,而假如想深入了解SDK

高通camera学习笔记三

media controller线程 1.概述    MCT线程是camera新架构的引擎部分,负责对管道的监控,由此来完成一个camera设备的控制运转.它运行在daemon进程空间,由MSM_CAMERA_NEW_SESSION事件来开启,具体开启函数为mct_controller_new(). 2.mct_controller_new()函数    此函数创建一个新的MCT引擎,这将对应一个事务的pipeline.我们知道上层可以创建多个事务,每个对应一个camera,也对应自己的MCT及