基于M6575平台电池系统分析_第1页
基于M6575平台电池系统分析_第2页
基于M6575平台电池系统分析_第3页
基于M6575平台电池系统分析_第4页
基于M6575平台电池系统分析_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MT6575平台电池系统分析柴路 Agenda 一 电池系统架构二 监控原理三 电量检测原理 电池系统架构 一 电池系统工作流程 DRV不停的把电池系统相关信息写入相关文件 然后上报 上层监听到后读取文件 涉及到的文件较多 比如读取 sys class power supply battery BatterySenseVoltage可以获取电池电压 sys class power supply battery ChargerVoltage可以获取充电器电压 sys class power supply battery batt tem可以获取电池温度等等 二 要理解电池系统架构需要需要解决三个问题 1 相关文件是如何建立的 2 是什么触发驱动更新文件内容以及驱动是如何上报的 3 用户空间是如何读取文件里面的信息的 电池系统文件建立 一 电池系统架构基于linuxkernel 相关code在alps kernel drivers power MTK为了客制化 把与自己平台相关的code放在了alps mediatek platform mt6575 kernel drivers power 二 以添加 sys class power supply battery ChargerTest文件为例子1 在Power supply h文件添加POWER SUPPLY PROP ChargerTest 2 在Power supply sysfs c文件添加 上面两步表示总共可以支持的文件 3 修改mt6575 battery c文件 mt6575 battery props 表示 sys class power supply battery 文件夹下所支持的文件 4 系统默认文件是只读的 如果文件可读可写 需要添加如下地方 下面分析文件建立过程 staticintmt6575 battery probe structplatform device dev ret power supply register 在开机的时候当执行到mt6575 battery probe 函数的时候 会注册ac usb battery 以注册mt6575 battery main psy为例 当执行完毕注册函数的时候 文件 sys devices platform mt6575 battery power supply battery 建立完成并且sys class power supply battery 建立对应的连接 主要工作是在函数power supply register 完成的 其中建立文件的过程如下 power supply register device add device add attrs device add groups sysfs create group internal create group create files Line66 grp 对应Power supply sysfs c中的staticstructattribute grouppower supply attr group attrs power supply attrs is visible power supply attr is visible grp attrs就是 power supply attrs 里面记录了所支持的所有文件名信息 Line75 执行Power supply sysfs c中的power supply attr is visible 函数 该函数会判断需要建立的具体文件是否符合要求 如果符合要求则建立 否则不建立Line79 建立文件 Line238 psy properties对应如下 即判断需要建立的属性文件是否符合要求 以及读写属性设置 信息上报告 一 在BAT thread 函数中通过如下函数上报信息的mt6575 ac update 二 BAT thread 的触发条件1 10s的定时器2 插拔充电器三 mt6575 battery update 函数里面会完成写文件和通知上层两个功能 写文件就是更新bat data XX 上层读取的时候就是读取这些数据 当所有的数据更新完毕调用power supply changed 函数上报 power supply changed schedule work power supply changed work kobject uevent 上层读取文件 当上层监听到底层的上报信息后 会读取文件容com android server BatteryService cpp是JNI层 解析出需要读取的文件 读取文件的时候通过一些列调用最终会调用到Power supply sysfs c的power supply show property 函数 该函数最终会调用psy get property psy off value 完成读取功能以读取 sys class power supply battery 文件为例子 一 充电原理充电是软硬件协同完成的 软硬件的关系好比主奴关系 软件在充电中担当主人的角色 主要完成监控功能 硬件好比奴隶 主要是干活的 完成充电的主要工作 二 软件的监即监督 就是时刻测量充电参数 比如电池电压 充电电流 电池温度等 控即控制 用的最多的控制就是使能 禁止充电 设定充电电流大小 监控原理 硬件充电原理 1 上图红色线代表充电的时候电流流动的方向 一部分流向电池 一部分流向系统 虚线电流流向是三极管的基极控制电流 这个电流非常小 分析的时候可以忽略 2 DXT790AP5是三极管 通过三极管可以开启 关闭充电功能 开启充电的时候调节三极管的基级电流可以控制流过三极管CE端的电流从而实现充电电流大小的设置 Rsense采样电阻 对于软件来说可以测量充电电流的大小 电流计算方法 ISENSE BATSNS Rsense 对于PMU来说通过Rsense可以实现电流控制 比如要实现1A的充电电流 Rsense为0 2欧 PMU实现该电流的方法就是设法一直保证Rsense两端的电压是0 2V 如果把电压比作水压 电流比作水流 则三极管的作用就是调节阀 水龙头 调剂三极管的基极电流好比转动水龙头的把手 则Rsense就好比流量检测仪 充电硬件有自己的一套预充 恒流 恒压流程 软件也有自己的一套预充 恒流 恒压流程 靠两者协同合作完成整个充电工作 硬件预充过程如下 BAT ON在充电中的作用1 检测电池是否存在 电压必须小于1 062V 否则认为电池不存在不能充电 硬件行为 软件无法关闭此功能2 高温检测 电池电压必须大于0 2V 否则认为电池温度过高不能充电 硬件行为 软件可以关闭此功能3 软件检测电池温度 充电器插入拔出检测PMU会检测VCDTPIN的电压 如果电压低于一定数值 4 3V 或者高于一定数值 chargerovp软件可设定电压 则认为充电器没有插入 否则认为充电器插入 当PMU检测到有充电器插入或者拔出动作的时候 则会触发中断 然后触发BAT thread线程 充电器识别可以识别出四种类型 前两者属于USBcalbe 后两个属于充电器可参考函数hw charger type detection void 充电器类型判断 UVLO Under voltagelockout VTHH3 2V 不可修改 如果电池电压低于VTHH则不开机VTHL2 9V 此电压软件可修改 当开机后 电池电压低于VTHL则强行断电关机 ADC测量相关 ADC 与充电相关的ADC集成在PMU内 主要测量温度 电池电压 电流 充电器 ADC精度10bit 已经校准好 ADC电压范围0 1 2V电池电压算法 比如测得ADC为x 电池电压为y则 Y 1 2 x 1024 NN表示分压系数 N 4 Vcharger 比如测得ADC为x Vcharger为y则 Y 1 2 x 1024 N其中N代表分压系数N 39 330 39 充电电流计算 不充电的时候计算gADC I SENSE offset BATSENS ISENSE目地消除底噪误差 充电的时候连续测量20次BATSENS和ISENSE的电压 然后把测量的电压减去两个最大数值和最小数值其余的做平均 最后计算充电电流 ISENSE BATSENS gADC I SENSE offset Rsense为了得到获取稳定的电池参数 电池电压和充电电流还做 滑动滤波 即和前60次采样的数据做平均 前10分钟 温度测量 电量计算 两种电量测量方法1 开路电压法 电池在开路状态下电池容量与电压具有一定的关系 计算出电压查表可以得到容量优点 简单 可以计算初始电池电量缺点 需花30分钟以上等待电压回升 积分法 电流计算公式I Q t优点 适用于各种电池缺点 初始电量无法获取 电流测试硬件原理 开路电压法 开机的时候利用开路电压法得到电池电量初始值算法原理 在cust fuel gauge h中定义了四种温度下电池开路电压与电池剩余容量的对应表格 如下 battery profile t0 10度battery profile t1 0度battery profile t2 25度battery profile t3 50度软件计算电池温度和开路电压 比如计算当前温度是40读 则会根据25度和50度的表格插值生成一个40度的开路电压与电池剩余容量的表格 然后根据开路电压查找40度表格就可以计算出当前的电池容量 开路电压计算方法 AB端的电压是开路电压如果电池处于放电状态则Vab Vbat I R 20mOhm 同理 在电池充电的时候电池开路电压是Vab Vbat I R 20mOhm Vbat是软件测量的电池电压I是流过电池的电流R是电池内阻20mOhm是采样电阻 B A 电池内组的计算方法 提供四个表格如下 根据当前温度计算出当前温度的电池内租电压关系表格 然后根据电压查找表格找出电池内组 r profile t0 10度电池内租与电压对应关系r profile t1 0度电池内租与电压对应关系r profile t2 25度电池内租与电压对应关系r profile t3 50度电池内租与电压对应关系 积分法 积分法PMU内部集成积分电路 通过读寄存器然后计算可以得到流入流出电池的电量 然后校准后得到最终的电量 dvalue CAR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论