




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于基于mt6575mt6575平台电池系统分析平台电池系统分析 柴路柴路 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( ret = power_supply_register( 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中的 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_usb_update( mt6575_battery_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, car_tune_value是客制化的校准参数,用于电量/电流校准。 电量百分比算法如下: (gfg_columb*100)/gfg_batt_capacity_aging
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 梯形面积的计算方法(教学设计)-五年级上册数学苏教版
- 第二章第一节《制作简易地球仪》实验说课稿-2024-2025学年中图版地理七年级上册
- 2024-2025学年高中语文 13 六国论说课稿 语文版选修《唐宋八大家散文鉴赏》
- BoNIA2b响应NO调控西兰花毛状根萝卜硫苷和萝卜硫素合成机制研究
- 基于逻辑框架法的农业面源污染治理项目绩效审计评价指标体系构建研究
- 基于GEE平台和Alpha Shapes算法的海岸潟湖提取方法研究
- 5G网络版权传输协议
- 六年级科学实验操作指南
- 物理选修课程单元测验试题集锦
- 第5课 蒸芙蓉蛋教学设计-2025-2026学年小学劳动三年级上册川民版《劳动教育》
- 2025-2026学年期中测试卷人教版九年级数学上册
- GB/T 16150-2025农药筛析试验方法
- 辽宁2025自考生物医药数据科学生物信息学选择题专练
- 国寿股权投资有限公司笔试题库
- 2025中国人寿养老笔试题库
- 2025年全国保密教育线上培训考试试题库附参考答案
- 建筑施工安全管理制度范本
- 2025公安招聘辅警考试笔试题及答案(完整版)
- 2025贵州省专业技术人员继续教育公需科目考试题库(2025公需课课程)
- 校服登记表模板
- 【高等数学练习题】南京信息工程大学专升本自考真题汇总(附答案解析)
评论
0/150
提交评论