一種利用電池電壓顯示電量的方法
2023-10-19 01:35:52 1
專利名稱:一種利用電池電壓顯示電量的方法
技術領域:
本發明涉及一種電子產品的電量顯示方法,特別是涉及一種利用電池電壓顯示電量的方法。
背景技術:
現有手機電量顯示是根據電池電壓來顯示電量的,在開發初期抓取電池的放電曲線根據放電曲線來確定電量顯示的節點,如3. 5V —格,3.6V兩格,3.7V三格,3.8V四格, 3. 9V五格,但這樣的顯示在充電時就會出現很大的誤差,放電時讀到的電池電壓因電池內阻、保護板阻抗、電池座、走線阻抗等會比實際的電池電壓低,而充電時讀到的電池電壓會比實際電池電壓高或一致,這樣僅依據一條放電曲線來做電池電量顯示在充電時就會出現很大的誤差,給使用者錯誤的電量信息。
發明內容
本發明的目的在於克服現有技術的不足,提供一種利用電池電壓顯示電量的方法,能較準確的顯示電量,使用戶能及時充電或更好的使用。為了達到上述目的,本發明採用的技術方案是在測量電池電壓函數中定義一個 INT型的數組BATT_V0LTAGE_HIST0RY[N],N值的大小根據平臺進行調整,通過數組BATT_ V0LTAGE_HIST0RY[N]來求取一段時間內的電池電壓平均值,當數組寫滿後,每寫進一個新的電壓數據則丟棄最早寫入的數據,通過滑動濾波使實時電池電壓緩慢變動,根據電池電壓平均值顯示電量,電池電壓包括充電電壓與放電電壓,充電電壓與放電電壓測量時共用一個電池電壓測量數組。充電時根據電池電壓數組得到當前電池電壓平均值,對應充電曲線顯示電池電量,設定充電時電量顯示只能增加,相應則放電時電量顯示只能減小,當依據充電曲線顯示的電量增加過快時,依據最大充電電流設定每分鐘最大提升的電量百分比來控制電量顯示;當充電器拔出時,依據電池電壓數組的平均值對應放電曲線來顯示電量,若此時要顯示的電量大於充電器拔出時的電量,則按充電器拔出時的電量顯示,隨著使用電量慢慢降低, 回歸到放電曲線對應的電量。所述的電池電壓顯示電量分為四個階段,放電、放電到充電、充電到放電及充電系統大電流放電,則對應的顯示方法包括放電電量顯示方法、放電到充電電量顯示方法、充電到放電電量顯示方法及充電系統大電流放電顯示方法。所述的放電電量顯示方法步驟如下
步驟1. 1、創建一數組記錄實際讀到的電池電壓值用於滑動濾波,同時創建一放置放電電壓的滑動濾波表;
步驟1. 2、第一次開機時讀取前三次電池電壓取中間值作為基準電壓;
步驟1. 3、使用基準電壓來校準滑動濾波表,滑動濾波表全部賦值為基準電壓;
步驟1. 4、每隔5秒鐘更新一次電池電壓vbatt並與前一次的濾波滑動表電壓pre_
4vbatt進行比較;
步驟1. 5、每隔5秒讀到的電池電壓值cur_vl3att跟濾波表上一次電壓prejhtt差值 vbatt, vbatt 大於 lOOmv,每隔 15 秒做 +3mv/_3mv,vbatt 大於 20mv 小於 lOOmv,每隔 15 秒做 +lmv/-lmv, vbatt 小於 20mv,每隔 5 秒做 +lmv/-lmv ;
步驟1. 6、更新滑動濾波表後取平均值作為濾波電壓,對應電壓電量表獲取當前電池放電電量。上述步驟中得時間值及電壓值為系統預設值。所述的放電到充電電量顯示方法步驟如下
步驟2. 1、抓取1/20C電池容量曲線來做OCV曲線,創建基於該曲線的充電電壓電量
表;
步驟2. 2、插入充電器開始充電,讀取當前電池電壓更新濾波表; 步驟2. 3、通過濾波電壓使用充電電壓電量曲線表獲取當前充電電量; 步驟2. 4、濾波電壓得到充電容量大於當前容量,每隔55秒容量增加1%,否則電池電量保持不變;
步驟2. 5、充電電流較大時則充電容量平滑增加。上述步驟2. 1中所述的OCV為開路電壓,步驟2. 4中所述的時間55秒及增加值1% 為系統預設值。所述的充電到放電電量顯示方法步驟如下 步驟3. 1、移除充電器開始放電;
步驟3. 2、讀取當前電池電壓更新濾波表;
步驟3. 3、通過濾波電壓使用放電電壓電量曲線表獲取當前放電電量; 步驟3. 4、電池電壓小於3650mv時充電,造成滑動濾波表虛高,移除充電器放電時讀到的電池電壓3次小於3650mv時確保濾波表電池電壓不大於3700mv,對濾波表電壓進行直接賦值處理;
步驟3. 5、濾波電壓得到放電容量小於當前容量,更新電池容量,否則根據放電電池電量不增加原則電池電量保持不變。上述步驟3. 4所述的數值為系統預設值。所述的充電系統大電流狀態為充電器插入後,充電電流小於系統工作電流,此時的充電電流不能滿足系統供電,則充電系統大電流狀態的放電顯示方法步驟如下
步驟4. 1、USB充電時系統大電流放電;
步驟4. 2、根據充電時只增不減原則,USB充電過一段時間出現電量誤差; 步驟4. 3、USB充電過程中檢測濾波電壓的變化;
步驟4. 4、每隔50秒採樣一次充電時濾波表中的濾波電壓,若連續3次150秒檢測到的濾波電壓處於減少狀態;則關閉充電時只增不減原則,充電電池電量可增可減; 步驟4. 5、USB充電時大電流放電,充電電池容量平滑跌落。上述步驟4. 4所述的數值為系統預設值。充電器插入後,系統處於大電流工作狀態,即充電電流小於系統工作電流,此時的充電電流不能滿足系統供電,根據數組求平均數算法,電量不能減少導致電量顯示比實際電量偏高,此時增加充電時電量可以減少的檢測算法,來處理電量顯示不準確,每隔150秒讀取一次滑動濾波後電壓,兩次壓差都處於減少狀態時,判定實際電量在減少。所述的150秒為系統預設時間,能隨系統改變而調整。與現有技術相比,本發明的有益效果是通過充電依據充電曲線來顯示電量,放電時依據放電曲線來顯示電量,能有效改善充電時電量顯示不準確問題,從而在充放電時都能及時且直觀的呈現給客戶當前手機電量。
圖1為本發明放電電量處理框圖; 圖2為本發明放電到充電電量處理框圖; 圖3為本發明充電到放電電量處理框圖4為本發明充電系統大電流放電處理框圖。
具體實施例方式本發明的主旨在於克服現有技術的不足,提供一種利用電池電壓顯示電量的方法,通過抓取電池電壓的充放電曲線,在軟體裡設定充放電時電池電壓與電量的對應關係, 在充電或放電時依據電池電壓來顯示電池電量,技術難點充電器插入或拔出時電量顯示應不出現波動。
下面結合實施例參照附圖進行詳細說明,以便對本發明的技術特徵及優點進行更深入的詮釋。在測量電池電壓函數中定義一個INT型的數組BATT_V0LTAGE_HIST0RY[N],N值的大小根據平臺進行調整,通過數組BATT_V0LTAGE_HIST0RY[N]來求取一段時間內的電池電壓平均值,當數組寫滿後,每寫進一個新的電壓數據則丟棄最早寫入的數據,通過滑動濾波使實時電池電壓緩慢變動,根據電池電壓平均值顯示電量,電池電壓包括充電電壓與放電電壓,充電電壓與放電電壓測量時共用一個電池電壓測量數組。 充電時依據最大充電電流來設定每分鐘最大提升的電量百分比。充電時根據電池電壓數組得到當前電池電壓平均值,對應充電曲線顯示電池電量,在測量軟體中設定充電時電量顯示只能增加,放電時電量顯示只能減小,當依據充電曲線顯示的電量增加過塊時,依據最大充電電流設定每分鐘最大提升的電量百分比來控制電量顯不。當充電器拔出時,依據電池電壓數組的平均值對應放電曲線來顯示電量,若此時要顯示的電量大於充電器拔出時的電量,則按充電器拔出時的電量顯示,隨著使用電量慢慢降低,回歸到放電曲線對應的電量。充電器插入後,系統處於大電流工作狀態,此時的充電電流不能滿足系統供電,根據數組求平均數算法,電量不能減少導致電量顯示比實際電量偏高,此時增加充電電量以減少檢測算法處理電量顯示不準確,每隔150秒讀取一次滑動濾波後電壓,兩次壓差都處於減少狀態時,判定實際電量在減少。所述的150秒為系統預設時間,能隨系統改變而調整。以1500mAh電池為例,電池充電曲線的抓取過程如下將電池接到電子負載上, 設定電流值為75mAh,通過軟體監控電池電壓,將電池放電至2. 5V,獲取該電池1/20C放電曲線,因充電時電流不可能為恆定值,為準確顯示電量,一般在充電過程中會停止充電然後再讀取電壓,讀到的電池電壓為電池的開路電壓即ocv,OCV曲線抓取時間較長,通過抓取 1/20C曲線來做OCV曲線。電池放電曲線的抓取,根據系統的平均電流來抓取,若整機經常工作在200mA則抓取200mA的放電曲線,若工作在500mA則抓取500mA的放電曲線。在軟體中創建數組,用來存儲電池電壓,通過數組來求平均值,從而防止電池電壓波動導致電量顯示波動。充電時依據最大充電電流來設定每分鐘最大可提升的電量百分比,如1500mAh電池,充電電流 800mA,每分鐘最多充進的電量為13mAh,不足總電量的1%,可通過軟體來設定充電是每分鐘電量最多上升1%。放電時為避免偶爾大電流導致電池電壓下降很多,可設定當電池電壓較上一值誤差大於50mV時僅在上一值上+/-ImV後作為新的值寫入數組。充電時依據OCV曲線來顯示電量,放電時依據放電曲線來顯示電量。充電器插入時,設置電池電量不能減小,充電器拔出時設定電池電量不能增加。所述的電池電壓顯示電量分為四個階段,放電、放電到充電、充電到放電及充電系統大電流放電,則對應的顯示方法包括放電電量顯示方法、放電到充電電量顯示方法、充電到放電電量顯示方法及充電系統大電流放電顯示方法。如圖1所示,所述的放電電量顯示方法步驟如下
步驟1. 1、創建一數組記錄實際讀到的電池電壓值用於滑動濾波,同時創建一放置放電電壓的滑動濾波表;
步驟1. 2、第一次開機時讀取前三次電池電壓取中間值作為基準電壓; 步驟1. 3、使用基準電壓來校準滑動濾波表,滑動濾波表全部賦值為基準電壓; 步驟1. 4、每隔5秒鐘更新一次電池電壓vbatt並與前一次的濾波滑動表電壓pre_ vbatt進行比較;
步驟1. 5、每隔5秒讀到的電池電壓值cur_Vkitt跟濾波表上一次電壓prejkitt差值 vbatt, vbatt 大於 lOOmv,每隔 15 秒做 +3mv/_3mv,vbatt 大於 20mv 小於 lOOmv,每隔 15 秒做 +lmv/-lmv, vbatt 小於 20mv,每隔 5 秒做 +lmv/-lmv ;
步驟1. 6、更新滑動濾波表後取平均值作為濾波電壓,對應電壓電量表獲取當前電池放電電量。如圖2所示,所述的放電到充電電量顯示方法步驟如下
步驟2. 1、抓取1/20C電池容量曲線來做OCV (英文open-circuit voltage的縮寫) 曲線,創建基於該曲線的充電電壓電量表;
步驟2. 2、插入充電器開始充電,讀取當前電池電壓更新濾波表; 步驟2. 3、通過濾波電壓使用充電電壓電量曲線表獲取當前充電電量; 步驟2. 4、濾波電壓得到充電容量大於當前容量,每隔55秒容量增加1%,否則電池電量保持不變;
步驟2. 5、充電電流較大時則充電容量平滑增加。如圖3所示,所述的充電到放電電量顯示方法步驟如下 步驟3. 1、移除充電器開始放電;
步驟3. 2、讀取當前電池電壓更新濾波表;
步驟3. 3、通過濾波電壓使用放電電壓電量曲線表獲取當前放電電量;步驟3. 4、電池電壓小於3650mv時充電,造成滑動濾波表虛高,移除充電器放電時讀到的電池電壓3次小於3650mv時確保濾波表電池電壓不大於3700mv,對濾波表電壓進行直接賦值處理;步驟3. 5、濾波電壓得到放電容量小於當前容量,更新電池容量,否則根據放電電池電量不增加原則電池電量保持不變。
如圖4所示,所述的充電系統大電流狀態為充電器插入後,充電電流小於系統工作電流,此時的充電電流不能滿足系統供電,根據數組求平均數算法,電量不能減少導致電量顯示比實際電量偏高,此時增加充電時電量可以減少的檢測算法來處理電量顯示不準確,每隔150秒讀取一次滑動濾波後電壓,兩次壓差都處於減少狀態時,則判定實際電量在減少,所述的充電系統大電流放電顯示方法步驟如下步驟4. 1、USB充電時系統大電流放電;步驟4. 2、根據充電時只增不減原則,USB充電過一段時間出現電量誤差; 步驟4. 3、USB充電過程中檢測濾波電壓的變化;步驟4. 4、每隔50秒採樣一次充電時濾波表中的濾波電壓,若連續3次150秒檢測到的濾波電壓處於減少狀態;則關閉充電時只增不減原則,充電電池電量可增可減; 步驟4. 5、USB充電時大電流放電,充電電池容量平滑跌落。
儘管本發明通過具體描述對利用電池電壓顯示電量的方法作出了清晰而完成的描述,但是本發明不僅僅限於所述實施例,通過簡單的改變程序來達到相同目的是可能發生的並且都包括在本發明之中。
權利要求
1.一種利用電池電壓顯示電量的方法,其特徵在於在測量電池電壓函數中定義一個 INT型的數組BATT_V0LTAGE_HIST0RY[N],N值的大小根據平臺進行調整,通過數組BATT_ V0LTAGE_HIST0RY[N]來求取一段時間內的電池電壓平均值,當數組寫滿後,每寫進一個新的電壓數據則丟棄最早寫入的數據,通過滑動濾波使實時電池電壓緩慢變動,根據電池電壓平均值顯示電量,電池電壓包括充電電壓與放電電壓,充電電壓與放電電壓測量時共用一個電池電壓測量數組;充電時根據電池電壓數組得到當前電池電壓平均值,對應充電曲線顯示電池電量,設定充電時電量顯示只能增加,相應則放電時電量顯示只能減小,當依據充電曲線顯示的電量增加過快時,依據最大充電電流設定每分鐘最大提升的電量百分比來控制電量顯示;當充電器拔出時,依據電池電壓數組的平均值對應放電曲線來顯示電量,若此時要顯示的電量大於充電器拔出時的電量,則按充電器拔出時的電量顯示,隨著使用電量慢慢降低,回歸到放電曲線對應的電量。
2.根據權利要求1所述的利用電池電壓顯示電量的方法,其特徵在於所述的電池電壓顯示電量分為四個階段,放電、放電到充電、充電到放電及充電系統大電流放電,則對應的顯示方法包括放電電量顯示方法、放電到充電電量顯示方法、充電到放電電量顯示方法及充電系統大電流放電顯示方法。
3.根據權利要求2所述的利用電池電壓顯示電量的方法,其特徵在於,所述的放電電量顯示方法步驟如下步驟1. 1、創建一個數組記錄實際讀到的電池電壓值用於滑動濾波,同時創建一個放置放電電壓的滑動濾波表;步驟1. 2、第一次開機時讀取前三次電池電壓取中間值作為基準電壓; 步驟1. 3、使用基準電壓來校準滑動濾波表,滑動濾波表全部賦值為基準電壓; 步驟1. 4、每隔5秒鐘更新一次電池電壓vbatt並與前一次的濾波滑動表電壓pre_ vbatt進行比較;步驟1. 5、每隔5秒讀到的電池電壓值cur_vl3att跟濾波表上一次電壓prejhtt差值 vbatt, vbatt 大於 lOOmv,每隔 15 秒做 +3mv/_3mv,vbatt 大於 20mv 小於 lOOmv,每隔 15 秒做 +lmv/-lmv, vbatt 小於 20mv,每隔 5 秒做 +lmv/-lmv ;步驟1. 6、更新滑動濾波表後取平均值作為濾波電壓,對應電壓電量表獲取當前電池放電電量。
4.根據權利要求3所述的利用電池電壓顯示電量的方法,其特徵在於上述步驟中得時間值及電壓值為系統預設值。
5.根據權利要求2所述的利用電池電壓顯示電量的方法,其特徵在於,所述的放電到充電電量顯示方法步驟如下步驟2. 1、抓取1/20C電池容量曲線來做OCV曲線,創建基於該曲線的充電電壓電量表;步驟2. 2、插入充電器開始充電,讀取當前電池電壓更新濾波表; 步驟2. 3、通過濾波電壓使用充電電壓電量曲線表獲取當前充電電量; 步驟2. 4、濾波電壓得到充電容量大於當前容量,每隔55秒容量增加1%,否則電池電量保持不變;步驟2. 5、充電電流較大時則充電容量平滑增加。
6.根據權利要求5所述的利用電池電壓顯示電量的方法,其特徵在於上述步驟2.1 中所述的OCV為開路電壓,步驟2. 4中所述的時間55秒及增加值1%為系統預設值。
7.根據權利要求2所述的利用電池電壓顯示電量的方法,其特徵在於,所述的充電到放電電量顯示方法步驟如下步驟3. 1、移除充電器開始放電;步驟3. 2、讀取當前電池電壓更新濾波表;步驟3. 3、通過濾波電壓使用放電電壓電量曲線表獲取當前放電電量;步驟3. 4、電池電壓小於3650mv時充電時高造成滑動濾波表虛高,移除充電器放電時讀到的電池電壓3次小於3650mv時確保濾波表電池電壓不大於3700mv,對濾波表電壓進行直接賦值處理;步驟3. 5、濾波電壓得到放電容量小於當前容量,更新電池容量,否則根據放電電池電量不增加原則電池電量保持不變。
8.根據權利要求7所述的利用電池電壓顯示電量的方法,其特徵在於步驟3.4所述的數值為系統預設值。
9.根據權利要求2所述的利用電池電壓顯示電量的方法,其特徵在於,所述的充電系統大電流狀態為充電器插入後,充電電流小於系統工作電流,此時的充電電流不能滿足系統供電,則充電系統大電流狀態的放電顯示方法步驟如下步驟4. 1、USB充電時系統大電流放電;步驟4. 2、根據充電時只增不減原則,USB充電過一段時間出現電量誤差;步驟4. 3、USB充電過程中檢測濾波電壓的變化;步驟4. 4、每隔50秒採樣一次充電時濾波表中的濾波電壓,若連續3次150秒檢測到的濾波電壓處於減少狀態;則關閉充電時只增不減原則,充電電池電量可增可減;步驟4. 5、USB充電時大電流放電,充電電池容量平滑跌落。
10.根據權利要求9所述的利用電池電壓顯示電量的方法,其特徵在於步驟4.4所述的數值為系統預設值。
全文摘要
本發明公開了一種利用電池電壓顯示電量的方法,在測量電池電壓函數中開啟一個數組來求取一段時間內的電池電壓平均值,當數組寫滿後,每寫進一個新的電壓數據則丟棄最早寫入的數據,通過此滑動濾波來保證電池電壓緩慢變動,根據電池電壓平均值顯示電量。電池電壓指的是充電電壓或放電電壓,充電電壓與放電電壓測量時共用一個電池電壓測量數組。充電時根據電池電壓數組得到當前電池電壓平均值,對應存儲的充電曲線顯示電池電量;放電時根據電池電壓數組得到當前電池電壓平均值,對應存儲的放電曲線顯示電池電量。當依據充電曲線顯示的電量增加過快時,依據最大充電電流設定每分鐘最大提升的電量百分比來控制電量顯示。
文檔編號G01R13/00GK102520364SQ20111042860
公開日2012年6月27日 申請日期2011年12月20日 優先權日2011年12月20日
發明者曾元清 申請人:廣東歐珀移動通信有限公司