Android4.4電池管理

一、概述

       Android4.4的電池管理功能用於管理電池的充、放電功能。整個電池管理的部分包括Linux電池驅動、Android電池服務、電池屬性和參數、電池曲線優化四個部分。

       Linux電池驅動用於和PMIC交互、負責監聽電池產生的相關事件,例如低電報警、電量發生變化、高溫報警、USB插拔等等。

       Android電池服務,用來監聽內核上報的電池事件,並將最新的電池數據上報給系統,系統收到新數據後會去更新電池顯示狀態、剩餘電量等信息。如果收到過溫報警和低電報警,系統會自動觸發關機流程,保護電池和機器不受到危害。

       研究電池屬性和參數對提高電池子系統的性能也是很重要的,電池的性能越好,上報的數據越準確,因此研發人員也需對此有深入的瞭解。電池曲線優化是很重要的,電池曲線優化得越好,顯示的電量比越準確,放電曲線的線性度也越好,因此對放電曲線的優化是重中之重。

 

二、Android電池服務

     1. Android電池服務的啓動和運行流程

 

          2. Android電池服務的源碼結構

   
         Framework\base\services\java\com\android\server
        ├── SystemServer.java
                 創建BatteryServices、PowerManagerService、ActivityManagerService
        ├── BatterySevices.java
                 監聽底層上報的battery事件,廣播電池發生改變的消息

         Framework\base\services\java\com\android\server\am
        ├── ActivityManagerService.java
                 創建BatteryStatsService
        ├── BatteryStatsService.java
                 統計和記錄電池參數的信息

         Framework\base\services\java\com\android\server\power
        ├── PowerManagerService.java
                 監聽電池發生變化的廣播消息,並調節系統的電源狀態,例如亮屏

         Framework\base\core\java\com\internal\os\
        ├── BatteryStatsImpl.java
                 統計和記錄電池參數的信息,並通知其他模塊

         System\core\healthd
        ├── 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

         此外,測量次數也要儘可能的多一些,因爲有時候一些環境因素也會影響測量結果。


發佈了309 篇原創文章 · 獲贊 144 · 訪問量 139萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章