zoukankan      html  css  js  c++  java
  • Android4.4电池管理

    一、概述

           Android4.4的电池管理功能用于管理电池的充、放电功能。

    整个电池管理的部分包含Linux电池驱动、Android电池服务、电池属性和參数、电池曲线优化四个部分。

           Linux电池驱动用于和PMIC交互、负责监听电池产生的相关事件,比如低电报警、电量发生变化、高温报警、USB插拔等等。

           Android电池服务,用来监听内核上报的电池事件,并将最新的电池数据上报给系统,系统收到新数据后会去更新电池显示状态、剩余电量等信息。

    假设收到过温报警和低电报警,系统会自己主动触发关机流程,保护电池和机器不受到危害。

           研究电池属性和參数对提高电池子系统的性能也是非常重要的,电池的性能越好,上报的数据越准确。因此研发人员也需对此有深入的了解。电池曲线优化是非常重要的,电池曲线优化得越好,显示的电量比越准确,放电曲线的线性度也越好,因此对放电曲线的优化是重中之重。

     

    二、Android电池服务

         1. Android电池服务的启动和执行流程

              2. Android电池服务的源代码结构

       
             Frameworkaseservicesjavacomandroidserver
            ├── SystemServer.java
                     创建BatteryServices、PowerManagerService、ActivityManagerService
            ├── BatterySevices.java
                     监听底层上报的battery事件,广播电池发生改变的消息

             Frameworkaseservicesjavacomandroidserveram
            ├── ActivityManagerService.java
                     创建BatteryStatsService
            ├── BatteryStatsService.java
                     统计和记录电池參数的信息

             Frameworkaseservicesjavacomandroidserverpower
            ├── PowerManagerService.java
                     监听电池发生变化的广播消息,并调节系统的电源状态,比如亮屏

             Frameworkasecorejavacominternalos
            ├── BatteryStatsImpl.java
                     统计和记录电池參数的信息。并通知其它模块

             Systemcorehealthd
            ├── healthd.cpp
                     创建uevent socket,监听内核上报的内核事件
            ├── BatteryMonitor.cpp
                     初始化本地电池数据结构。将power_supply路径下属性节点路径填充进去,
            ├── BatteryMonitor.h
            ├── BatteryPropertiesRegistrar.cpp
                     创建电池属性监听器,并将其注冊到Android的系统服务中
            ├── BatteryPropertiesRegistrar.h

         3. 电池系统从底层向Framework层上报数据的流程

    三、电池属性和參数

           1. 锂电池的六个主要參数

            A. 电池容量

               电池的容量由电池内活性物质的数量决定,通经常使用mAhAh示。比如1000mAh就是能以1A的电流放电1h。换

          算为所含电荷量大约为3600C

            B. 标称电压

               电池正负极之间的电势差称为标称电压。标称电压由极板材料的电极电位和内部电解液的浓度决定。

    锂电池放

               电图是呈抛物线的。4.3V降到3.7V3.7V降到3.0V都是变化非常快的。唯有3.7V左右的放电时间最长,差点儿占到

               了3/4的时间。因此锂电池的标称电压是指维持放电时间最长的那段电压。锂电池的标称电压有3.7V3.8V,如

          果3.7V。则充电终止电压为4.2V,假设为3.8V。则充电终止电压为4.35V

            C. 充电终止电压

               可充电电池充足电时。极板上的活性物质已达到饱和状态。再继续充电,电池的电压也不会上升,此时的电压

               称为充电终止电压。

    锂离子电池的充电终止电压为4.2V或者4.35V

            D. 放电终止电压

               放电电压是指电池放电时同意的最低电压。放电终止电压和放电率有关,锂离子电池的放电终止电压为2.7V

            E. 电池内阻

               电池的内阻由极板的电阻和离子流的阻抗决定。在充放电过程中。极板的电阻是不变的。可是离子流的阻抗将

               随电解液的浓度和带电离子的增减而变化。当锂电池的OCV电压减少时,阻抗会增大。因此在低电充电时。要

               先进行预充电。防止大电流引起电池发热量过大。

            F. 自放电率

               是指在一段时间内,电池在没有使用的情况下。自己主动损失的电量占总容量的百分比。常温下。锂电池自放电率

               在5%~8%

     

          2. 锂电池的工作原理

               锂离子电池的正极材料通常有锂的活性化合物组成,负极则是特殊分子结构的碳。

    常见的正极材料主要成分

          为 LiCoO2 ,充电时,加在电池两极的电势迫使正极的化合物释出锂离子。嵌入负极分子排列呈片层结构的碳

          中。

    放电时。锂离子则从片层结构的碳中析出。又一次和正极的化合物结合。锂离子的移动产生了电流。

          3. 锂电池的充电方式

              锂电池的充电主要分三步完毕:预充电、横流充电、恒压充电。

              第一步:当电压小于3V时,要先进行预充电。预充电的电流一般为充电电流的10%。预充电结束条件为Vbat

                  压达到3V
              第二步:当电压大于3V并小于4.2V时,进行恒流充电,恒流充电的
    电流一般为0.2C~1C

              第三步:当Vbat电压达到4.2V时,进行恒压充电,此时充电电流会逐渐减小。当恒压充电电流减小为横流充电

                            电流的15%20%时。充电结束,假设使用了库仑计。充电结束的条件要加上库伦计的电量是否达到

                            100%

     

          4. 锂电池的放电方式

              锂电池的方式须要注意下面几点:

              A. 放电电流不能过大,过大的电流导致电池内部发热,有可能会造成永久性的损坏;

              B. 绝不能过放电,锂电池最怕过放电。一旦OCV电压低于2.7V将可能导致电池报废。

              C. 电池放电电流越大。放电容量越小,电压下降更快,因此电池在大负荷工作后,减小负荷会出现电压回升现

                   象,就是所谓的“回电”现象。

     

    四、电池曲线

          电池曲线包含充电曲线和放电曲线。用户一般更关注放电曲线的线性度。

          1. PMU计算剩余电量的方式

              PMU计算电池剩余电量的方式有两种:一种是通过OCV电压计算得到,还有一种是通过电量计计算得到。当使用

             电量计计算剩余电量时,须要和OCV一起校正剩余容量。開始从100%放电时,PMU寄存器计算得到的剩余电

         量以电量计的计算结果为准,当电量减少到95%时,PMU会參考OCV,然后校正电量计算出来的剩余电量。当

             剩余电量减少到95%下面时。剩余电量又以电量计为准。

    当电量减少到7%时。PMU又会去參考OCV校正电量

             计的剩余电量。当电量减少到7%下面时。剩余电量以电量计为准。

          2. 影响电池曲线精准度的因素

             影响因素主要包含电池的内阻(RDC)、电池容量、新电池的激活状态以及測量电池曲线的方法。

             A. 电池内阻

                 理论上电池内阻越小。測出来的曲线越精准。当电池在使用时,电池内阻也是随之变化的。因此电池内阻的

                 变化幅度会影响电池曲线的精准度。 

             B. 电池容量

                 电池在出厂时,厂家会给出电池的标称容量,有些时候电池的标称容量和实际容量不一致,甚至相差非常大,

                 这样一来电池放电曲线的线性度也会受到影响。

    因此,最好使用測量工具測到的电池实际容量。

             C. 新电池的激活状态

                 电池在刚出厂时,没有被全然激活。此时电池表现出来的OCV和实际电量的相应关系会不稳定、不准确,因

                 此新电池在測电池曲线之前,须要进行多次的全然充放电。

             D. 測量电池曲线的方法

                 假设測量电池曲线的方法不对,也会导致測得的电池曲线线性度不好。比如,測试板和电池之间的连接线

                 太长、太细。这样会使电池的RDC偏大,測出来的曲线就不准确。因此,在測量的时候,要尽可能的避免增

                 加电池的RDC

             此外。測量次数也要尽可能的多一些。由于有时候一些环境因素也会影响測量结果。

     

     

  • 相关阅读:
    在word中读取和写入中的表格
    随机生成简单验证码
    sql语句
    Jmeter 逻辑控制器 之 While Controller
    Jmeter 逻辑控制器 之 循环控制器
    Jmeter 逻辑控制器 之 事务控制器
    Jmeter 逻辑控制器 之 if 控制器
    android抓取logcat日志的方法
    使用Jmeter做性能测试
    测试案例累计分享
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7239133.html
Copyright © 2011-2022 走看看