当前位置:首页 >> 信息与通信 >>

基于M6575平台电池系统分析


基于MT6575平台电池系统分析

柴路

SW2 2012-05.22

Agenda
一:电池系统架构 二:监控原理 三:电量检测原理

电池系统架构

一:电池系统工作流程: DRV不停的把电池系统相关信息写入相关文件,然后上报。上层监听到后读取文件。

/>
涉及到的文件较多,比如读取
/sys/class/power_supply/battery/BatterySenseVoltage可以获取电池电压 /sys/class/power_supply/battery/ChargerVoltage可以获取充电器电压 /sys/class/power_supply/battery/batt_tem可以获取电池温度 等等。

二:要理解电池系统架构需要需要解决三个问题: 1, 相关文件是如何建立的? 2,是什么触发驱动更新文件内容以及驱动是如何上报的?

3,用户空间是如何读取文件里面的信息的?

电池系统文件建立
一:电池系统架构基于linux kernel,相关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,系统默认文件是只读的,如果文件可读可写。需要添加如下地方

下面分析文件建立过程。
static int mt6575_battery_probe(struct platform_device *dev) { ret = power_supply_register(&(dev->dev), &mt6575_ac_main.psy); ret = power_supply_register(&(dev->dev), &mt6575_usb_main.psy); ret = power_supply_register(&(dev->dev), &mt6575_battery_main.psy); } 在开机的时候当执行到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中的
static struct attribute_group power_supply_attr_group = {

.attrs = __power_supply_attrs,
.is_visible = power_supply_attr_is_visible, }; grp->attrs 就是 __power_supply_attrs。里面记录了所支持的所有文件名信息。 Line 75:执行Power_supply_sysfs.c中的power_supply_attr_is_visible()函数,该函 数会判断需要建立的具体文件是否符合要求,如果符合要求则建立,否则不建立

Line 79:建立文件

Line238: psy->properties对应如下,即判断需要建立的属性文件是否符 合要求,以及读写属性设置。

一:在BAT_thread()函数中通过如下函数上报信息的 mt6575_ac_update(&mt6575_ac_main); mt6575_usb_update(&mt6575_usb_main); mt6575_battery_update(&mt6575_battery_main);

信息上报告

二:BAT_thread()的触发条件
1,10s的定时器 2, 插拔充电器 三:mt6575_battery_update()函数里面会完成写文件和通知上层两个功能, 写文件就是 更新bat_data->XX. 上层读取的时候就是读取这些数据,当所有的数据更新完毕 调用 power_supply_changed()函数上报。

当上层监听到底层的上报信息后,会读取文件容 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会检测VCDT PIN的电压,如果电压低于一定数值(4.3V)或 者高于一定数值(charger ovp 软件可设定电压)则认为充电器没 有插入,否则认为充电器插入。当PMU检测到有充电器插入或者 拔出动作的时候,则会触发中断,然后触发BAT_thread线程。

充电器识别 可以识别出四种类型:前两者属于USB calbe,后两个属于充电器

可参考函数hw_charger_type_detection(void)

充电器类型判断。

UVLO(Under-voltage lockout)

VTHH 3.2V,不可修改,如果电池电压低于VTHH则不开机 VTHL 2.9V,此电压软件可修改,当开机后,电池电压低于VTHL则强 行断电关机

ADC测量相关
ADC:

与充电相关的ADC集成在PMU内, 主要测量温度,电池电压,电流, 充电器。
ADC精度 10bit。已经校准好。 ADC电压范围 0 – 1.2V

电池电压算法:比如测得ADC为x,电池电压为y则: Y = (1.2*x/1024) * N N表示分压系数,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

温度测量

电量计算
两种电量测量方法 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是软件测量的电池电压
A B

I是流过电池的电流 R 是电池内阻 20mOhm是采样电阻

电池内组的计算方法: 提供四个表格如下。根据当前温度计算出当前温度的电池内租电压关系 表格,然后根据电压查找表格找出电池内组。

r_profile_t0[ ] // -10度电池内租与电压对应关系
r_profile_t1[ ] // 0度电池内租与电压对应关系 r_profile_t2[ ] // 25度电池内租与电压对应关系 r_profile_t3[ ] // 50度电池内租与电压对应关系

积分法
积分法 PMU内部集成积分电路。通过读寄存器然后计算可以得到流入流 出电池的电量,然后校准后得到最终的电量。

dvalue_CAR = ((dvalue_CAR*CAR_TUNE_VALUE)/100);
CAR_TUNE_VALUE是客制化的校准参数,用于电量/电流校准。 电量百分比算法如下: ((gFG_columb*100)/gFG_BATT_CAPACITY_aging); gFG_BATT_CAPACITY_aging为25度时候的电池电量

Q_MAX_POS_25。 该值在充满电后会适当调整。

电量上报的时候还要进行电量算法,参考 mt6575_battery_update() 函数

12

10

8

6

列 1 列 2 列 3

4

2

0 行 1 行 2 行 3 行 4

Q&A

Thank You


相关文章:
动力电池系统设计讲解
动力电池系统设计讲解_电子/电路_工程科技_专业资料...分析和处理后,发出对应的程序控制和变更指令→最后...带电部件和其壳体之间的绝缘电阻值不 小于 2MΩ ...
基于 Cortex-M3内核的ARM电池管理系统
而且Cortex-M3处理器是首款基于ARMv7-M架构的ARM处理器。中央Cortex-M3内核 ...基于上述分析,本电池管理系统采用 EXP-LM3S811 平台作为下位机实现锂电池数据采...
电动汽车电池管理系统方案设计
特别是对 煤质电池的工作状态进行监测分析, 将监测...实现完整的电池管理系统提供原始数据和软硬件平台。 ...CM CN , C N 指蓄电池标称容量, C M 指蓄...
电池测试系统说明书
检测系统可根据电池容量或充放电平台来确定被测电池...分析、统抄测试数据,只 须根据 Excel 报表将电池...量程的电池检测系统,最小电流可小到 0.01mA;对于...
新能源汽车的核心部件大剖析:电池系统篇
电子和电气系统,在电池包层面进行布置和安全分析。 ...热特 性基于形状。圆柱、软包和方形的影响较大,后面...M Hybrid 2014 Infiniti Q50 Hybrid 2014 Nissan ...
电池管理系统技术协议
。双方经友好协 电池系统基本参数基于整车对电池系统...单个从板≤0.1mA -40℃~85℃ -40℃~95℃ ...电池故障分析与在线报警 BMS 具备系统自诊断功能,...
RF-T电池测试系统说明书-08
锂离子电池测试提供了符合国际测试设备标准的硬件平台...分析、统抄测试数据,只 须根据 Excel 报表将电池...量程的电池测试系统,最小电流可小到 0.01mA;对于...
磷酸铁锂动力电池组快速充电系统的研究
磷酸铁锂动力电池组快速充电系统的研究摘要本文根据电动...搭建了实验平台,软件调试通过基于模型的嵌入式代码...I m sin ?t (3-1) 式中, ea (t ) 、 ...
动力电池检测管理系统
动力电池检测管理系统_机械/仪表_工程科技_专业资料。...0~65.35mΩ 交流 220V/50Hz 1组 0~36 节 ...3)内阻分析功能:当电池放电时自动测试每节单体电池...
混合动力电动汽车电池管理系统的分析开题报告 2
混合动力电动汽车电池管理系统分析开题报告 2_经济...现代电动汽车技术[M]. 北京:北京理工大学出版社,...
更多相关标签:
蓄电池分析系统 | 数据分析平台系统源码 | bms电池管理系统 | 电池管理系统 | 蓄电池在线监测系统 | 蓝电电池测试系统 | 蓄电池监控系统 | 蓄电池监测管理系统 |