我们从2011年坚守至今,只想做存粹的技术论坛,记录你的技术足迹,有空就回来看看。  由于网站在外面,点击附件后可能要20秒才弹出下载,请耐心等待,勿重复点击

 找回密码
 立即注册
搜索
查看: 2687|回复: 8

[技术文章] 【转的】深圳荣品告诉你一般的开发板android电池管理①

[复制链接]

该用户从未签到

5

主题

7

回帖

0

积分

一级逆天

积分
0

终身成就奖社区居民

QQ
发表于 2013-12-16 15:50:39 | 显示全部楼层 |阅读模式
本文介绍两种android底层的电池驱动方式,主要介绍这两种电池的移植和调试方式以及此两种驱动方式的优缺点。后面介绍android上层的电池管理batteryservice.java
先介绍一下,android电池管理框架:

android电池管理框架图

android电池管理框架图


由上图可以看出,android的电池管理主要是由两个部分构成,linux kernel部分和android部分。
Android的上层有一batteryservice.java,主要任务是监听kernel电池的上报事件和调用JNI接口访问kernel更新的电池信息,以及以广播形式发送电池信息。Com_android_server_BatteryService.cpp android电池管理访问kernel电池的接口。当kernel上报电池事件时,将触发batteryservice.java调用Com_android_server_BatteryService.cpp的接口,访问kernel电池信息。
下面先介绍kernel部分的两种驱动方式。
第一种,求平均法。
例子:本驱动的驱动流程和源码,目前应用在三星平台,源码位于…/drivers/urbetter/battery.c。驱动流程如下:

电池驱动流程图

电池驱动流程图


这里主要说说在移植和调试的时候需要注意的问题。本人觉得最大的一个亮点是比较好调试。驱动中,将ADC电压采集的值通过校准的方式与电池实际测量电压相匹配靠拢。然后再利用求和平均的方法找出电池的电量。通过对电量的平滑处理,最终留给上层app获取。
移植和调试中需要注意的问题:1 硬件调试。
1,          ADC采集通道,本例采用channel 0;通过该函数s3c_adc_register(battery_dev,NULL,NULL,0);注册ADC采样。2,          ADC基准电压,本例的基准电压为1.8v1800MV)用来修改BATTERY_ADC_VREF宏。这个根据不同平台的电压修改。
3,          ADC采集电平转换成battery电压,battery1/3电平。目前这个参数是用在计算出实际battery的电压时候,根据四季电路修改。4,          其他GPIO的修改,根据实际电路设计:POWER_STATE_CHARGE、POWER_STATE_AC。
2 软件调试,更换电池盒兼容机型。做一些ADC采样值得校准都在poll_adc_raw函数内进行。具体的校准值要以实际调试为准。    此例子在补偿ADC采样后,采用ADC平均值法,对照电压-电量表,计算出单曲电量值(d_vol=table[i+1].vol – table.vol;d_cap=table[i+1].cap – table.cap;percent=table.cap+voltage-table.vol*d_cap/d_vol;),让上报的电池电量值更加贴近真实值。为了解决电压的突然增大后迅速减小,造成电量误报的情况,采用电量的平滑处理,具体做法是累加16次采集的电池电量然后求平均值(具体表现在睡眠后唤醒)。
以上为第一种求平均值的电池驱动方式,移植和调试的加班要点以上都基本提到了,但在实际的调用中,还要记录ADC的采样值,做好曲线的不同阶段的补偿好玩校准。本驱动的代码实现流程如下:

驱动代码实现流程图

驱动代码实现流程图


以上是android电池管理的第一种方法。
回复

使用道具 举报

该用户从未签到

6

主题

316

回帖

295

积分

二级逆天

积分
295

终身成就奖特殊贡献奖原创先锋奖社区居民社区劳模

QQ
发表于 2013-12-16 15:54:51 | 显示全部楼层
学习一下电池电量估算
回复

使用道具 举报

该用户从未签到

9

主题

85

回帖

51

积分

二级逆天

积分
51

终身成就奖社区居民原创先锋奖新人进步奖优秀斑竹奖

QQ
发表于 2013-12-16 21:27:11 | 显示全部楼层
主要是驱动方面的
硬件设计 fpga应用
回复

使用道具 举报

该用户从未签到

5

主题

230

回帖

232

积分

二级逆天

积分
232

终身成就奖原创先锋奖社区居民

QQ
发表于 2013-12-17 09:13:48 | 显示全部楼层
不错,值得参考
回复

使用道具 举报

该用户从未签到

5

主题

7

回帖

0

积分

一级逆天

积分
0

终身成就奖社区居民

QQ
 楼主| 发表于 2013-12-30 14:53:45 | 显示全部楼层
第二部分的我也不知道什么时候能够传上来啊
回复

使用道具 举报

该用户从未签到

2

主题

224

回帖

488

积分

二级逆天

积分
488

终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模

QQ
发表于 2014-1-2 08:15:58 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    49

    主题

    1万

    回帖

    7万

    积分

    三级逆天

    积分
    70178

    终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发社区明星原创达人优秀斑竹奖宣传大使奖

    QQ
    发表于 2014-1-2 13:42:00 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    22

    回帖

    11

    积分

    一级逆天

    积分
    11

    终身成就奖社区居民

    QQ
    发表于 2014-1-8 14:10:50 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    43

    主题

    4651

    回帖

    3722

    积分

    二级逆天

    积分
    3722

    社区居民忠实会员社区劳模原创达人终身成就奖优秀斑竹奖特殊贡献奖原创先锋奖

    QQ
    发表于 2024-5-10 09:44:13 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表