隨著大容量電池的使用,如果設備能夠精確的了解電池的電量,不僅能夠很好地保護了電池,防止其過放電,同時也能夠讓用戶精確地知道剩余電量來估算所能使用的時間,及時地保存重要數據。因此,在PMP和GPS中,電量計不斷加入到設備中,并且電量計也在智能手機中得到了應用,尤其是在一些Windows Mobile操作系統的智能手機中,如圖1所示,電池電量的顯示已由原來的柱狀圖變為了數字顯示。
本文介紹和比較三種種不同電量計的實現方法,并且以意法半導體的STC3100電池監控IC為例,在其Demo實現了1%精度的電池精度計量。
1,電量計的實現方法和分類。
據統計,現行設備中有三種電量計,分別是:
直接電池電壓監控方法,也就是說,電池電量的估計是通過簡單地監控電池的電壓得來的,盡管該方法精度較低和缺乏對電池的有效保護,但其簡單易行,所以在現行的設備中得到最廣泛的應用。然而鋰電池本身特有的放電特性,如圖2所示。不難從中發現,電池的電量與其電壓不是一個線性的關系,這種非線性導致電壓直接檢測方法的不準確性,電量測量精度超過20%。電池電量只能用分段式顯示,,如圖1.a所示,無法用數字顯示精確的電池電量。手機用戶經常發現,在手機顯示還有兩格電的時候,電池的電量下降得非常快,也就是因為這時候電池已經進入Phase3。
電池建模方法,根據鋰電池的放電曲線,建立一個數據表,每測量一個電壓值,根據該電壓去表中查出所對應的電量。該方法有效地提高電量的測量精度,可以達到5%,且簡單易用,無需做電池的初次預估,但是該數據表的建立是一個復雜的過程,尤其是考慮到電池的溫度、自放電、老化等因素的影響,并且對不同容量或類型的電池的兼容性也是一個問題。該表需要結合溫度和電池壽命等因素進行修正,才能得到較高的測量精度。
庫侖計,如圖3所示,在電池的正極或者負極串入一個電流檢測電阻,一旦有電流流入或者流出電池時,就會在電阻的兩端產生電壓Vsense,通過檢測Vsense就可以計算出流過電池的電流。該電流與時間做積分就是變化的電量,因此其可以精確跟蹤電池的電量變化,精度可達1%。盡管庫侖計存在電池初次預估的問題,且電流電阻的精度直接影響了電量的精度。但是配合電池電壓和溫度的監控,一些軟件算法可以較好地減小鋰初次電量預估、電池老化、電流檢測電阻精度等等因素對測量結果的影響。該方法在現行的設備和電池組中得到最為廣泛的應用,下文以意法半導體帶庫侖計的電池監控芯片 STC3100為例,詳細介紹該方法實現高精度的電量計量。
電量計按其位置來分,可以分為兩種:電池側電量計和系統側電量計。電池側電量計解釋電量計量芯片直接設計在電池組中,電量計芯片永遠檢測一個電池,能夠實時檢測電池的充放電、自放電和自身老化等等,即使電池未被使用時,這些電池參數在實時地檢測。該種電量比較精確,但是成本較高,電池接口復雜,系統對電池的兼容性較差。
而系統側電量計是指電量計設計在系統側而不是在電池組里,這樣可以避免電池組的重新設計,減小的電池的管腳,系統可以兼容更多的電池。并且便攜式設備要求電池體積越來越小,而容量越來越大,在系統側實現電量計比在電池中實現更為簡單便捷。但是,系統側的電量計需要更為復雜的軟件算法,解決電池的初次預估的問題、兼容不同特性電池的問題等等。
2,STC3100介紹和設計注意事項
STC3100是意法半導體帶庫侖計的電池監控芯片,它能夠監控電池的電壓、溫度、和電流,集成一個可編程的12~14位的ADC,硬件積分器用于庫侖計功能的計算,所測電流最大可達2.5A,積分器可以用7000mAh的電池,分辨率可達0.2mAh. 其內部框圖如圖4所示。
STC3100帶有一個I2C接口與處理器端進行通訊,并且集成了32bytes的RAM,用于存儲電池的電量或其他特性信息。GPIO管腳可以用來作為電池低壓報警使用,其應用框圖如圖5所示。
STC3100中的庫侖計需要一個32.768kHz的時鐘,用于作為計算電量的時基,其精度直接影響電量的計算精度。 STC3100支持內部和外部的時鐘,外部時鐘優先的原則,并且能夠自動檢測是否存在外部時鐘源,也可以通過設置寄存器設置成強制使用外部時鐘源。如圖6所示,如果用內部時鐘,一個200kohm 0.1%的電阻連接與Rosc管腳和地之間,內部時鐘精度在其供電電壓和工作溫度范圍內為2.5%。為得到更高的精度,只能采用外部輸入高精度時鐘源的方式。
電流采樣電阻Rcg是用采集流入或流出電池的電流,由于ADC采樣的限制,該電阻的壓降不能超過+/-80mV,所以,該阻值由應用中最大的峰值電流決定,如式一。如果峰值電流為2A,那么該阻值可以選擇33mohm。
R_cg (Ohm)≤0.08A (1)
電流電阻上的電壓經ADC采樣后放置于REG_CURRET(06H和07H)寄存器中,而ADC的LSB是11.7uV,這樣就可以按式二計算實際流過的電流值:
I(mA)=REG_CURRET×11.77/R_cg (2)
同時,STC3100會把Rcg兩端的電壓值與采樣周期相乘后放入28位的累加器中,其中的高16位會放入REG_CHARGE(02h和03h)寄存器中,其實際的電量可以按式三計算。
Charge (mA.h)=6.70×REG_CHARGE/R_cg (3)
STC3100自身的供電管腳Vcc和電池電壓檢測管腳Vin是分開的,如圖7所示,這樣很容易可以在電壓檢測管腳加入R2(1kohm)和C2(47nF~220nF)組成的ESD 保護和濾波電路,而電阻R1(150ohm)和齊納二極管D1(5.6V)組成對Vcc的ESD保護電路,從而不會影響對電池電壓的檢測精度。電池電壓和溫度經ADC采樣后分別放于REG_VOLTAGE 和REG_TEMPERATURE寄存器中,按照式三和式四可以分別計算出電池的實際電壓和溫度值。
Vbat(mV)=REG_VOLTAGE×2.44 (4)
Vtem(℃)=REG_TEMPERATURE×0.125 (5)
STC3100的GND管腳要用一個PCB走線連接與電阻的地端,確保所有的電流都是流過該電阻的,避免產生電流的檢測誤差。
3,軟件設計與驗證
STC3100寄存器中可以直接讀出電量的變化值、電池電壓、電流、溫度等數據,系統處理器需要在上電時,配置STC3100的寄存器,啟動其電量計數功能,如果是第一次上電,需要通過檢測的電池電壓進行電池容量的初次預估。完成初次預估后就可以進行實時的電池電量的實時計算,軟件的流程如圖所8示。
電池的容量會隨溫度、充放電次數和使用時間的長短變化而變化,因此,為得到精確的電池電量,僅僅獲得電池電壓、電流是不夠的,還要考慮溫度、電池老化、電流檢測電阻精度等因素造成的累計誤差,因此,建議在使用中定期一次電池的完全的充放電過程,進行消除累計誤差,不斷保持電量的精度。上述軟件在STC3100的demo板(STEVAL-ISB0011V1)進行了驗證,如圖9所示。該Demo板使用STM32進行軟件處理,其上電池的充電芯片是具有800mA充電能力的STC4054,16*2矩陣的液晶LCD可是實時顯示電池的容量、電壓、電流和溫度等參數,同時支持通過USB接口和PC通訊的功能,能夠把電池的信息上傳給上位機。
該實驗采用1800mAh的電池,型號是(),實時監控數據如圖10所示,其中包括了電池電壓、溫度、電流、剩余電量、電池容量和STC3100芯片的ID號。并且我們分別對STC3100施加外部和內部的32K時鐘,測試結果證明,采用外部時鐘測量結果更為準確。
圖10 電池監控數據
結論
現在便攜式設備集成越來越多的功能,精確的電量計可以用于提示用戶剩余的使用時間,甚至可以在電池低電量時,可以提示用戶關閉耗電較大的設備,這樣可以給用戶以更好的使用體驗。意法半導體的STC3100是用在系統側的電池電量監控芯片,可以精確地監控電池電壓、電流、溫度,并且實時輸出電池電量,減輕了系統的工作量,并且它本身具有較小的功耗,比較適合便攜式設備的應用。
評論
查看更多