一、前言
使用便攜式電子產(chǎn)品,希望能夠隨時知道電池的所剩電量,所能持續(xù)的工作時間,并且據(jù)此調(diào)節(jié)相關(guān)應(yīng)用,這無疑將是一個非常方便的事情,尤其適合使用智能手機的商務(wù)人士。電池電量檢測技術(shù)在筆記本電腦中已經(jīng)屢見不鮮,多數(shù)筆記本電腦都有電源管理的選項,提供不同的電源工作模式以及電池報警功能。但是在更加小型化的便攜產(chǎn)品市場,這一技術(shù)卻還不多見。
便攜式產(chǎn)品提供的功能越來越紛繁,用戶日益需要準(zhǔn)確地監(jiān)測電池電量,以便靈活管理可用電源,明確顯示剩余工作時間,盡可能延長系統(tǒng)運行的時間。現(xiàn)在大多數(shù)手機采用的電量測量方法還比較簡單,缺乏精確度。目前主流的檢測方法是簡單測量電池電壓,估算相對應(yīng)的電池剩余電量??傠娏砍?或5,也就是通常能在手機屏幕上看見的4格或者5格的電量Bar,所以每格的精確度即是25%或者20%,這樣的精度顯然無法滿足高精度要求的應(yīng)用。
這種電壓估測電量的方法通常如下:一塊電池在放電的時候,電池的電壓會隨著電池電量的流失逐漸地下降。這樣就可以得到一個比較簡單而有效的對應(yīng)關(guān)系,就是電壓對應(yīng)容量。通過電池正常使用(比如100mA放電)的放電曲線,對時間進行4等分,以充電限制電壓為4.2V的鋰電池為例,可以列出這樣一個對應(yīng)關(guān)系,4.20V—100%,3.85V—75%,3.75V—50%,3.60V—25%,3.40V—5%(因為手機不可能完全用光電池的電量,一般低于3.40V 時就可能自動關(guān)機了)。很顯然,這種精度最高只有25%。另外,電池電壓會隨著RFPA的功率發(fā)射發(fā)生突變,通常會變小0.2V-0.3V。如果一味的使用電壓模擬電量方法,就會誤差更大。為了解決電池電壓突然變小的測量問題,當(dāng)前工程師們的普遍方法是利用軟件算法進行均值濾波,對一段時間內(nèi)的電池電壓進行均值化,如果該時間段的平均電池電壓確實下降了,則預(yù)估電量確實變少了,否則即認(rèn)為電量并未變化。
電池電壓模擬剩余電量的方法確實存在著缺陷,而通過庫侖計實時監(jiān)測電池消耗電量而計算剩余電量的方法則非常準(zhǔn)確。Fairchild的FAN4010是這種應(yīng)用的典型器件。它是一顆電流檢測傳感器,專門用于檢測便攜式設(shè)備電池的充電/耗電電流,能將通過精密檢測電阻的電流信號轉(zhuǎn)換為ADC可以檢測到的電壓信號,從而計算一段時間內(nèi)消耗的真實電量。
二、硬件電路的典型設(shè)計
為了滿足高精度的電池電量監(jiān)測需求,F(xiàn)AN4010外加合適的應(yīng)用電路并加上特定的軟件控制算法,就能夠很好的達到要求。如圖1是FAN4010的典型應(yīng)用框圖。外圍只需要兩個電阻Rsense、Rout即構(gòu)成高精度的放大電路。如圖2是內(nèi)部結(jié)構(gòu)原理示意圖,所以存在Vsense = I_load * Rsense, Vout = 0.01 * Vsense * Rout,由此兩關(guān)系式可以等到I_load=100*Vout/(Rout*Rsense),所以只要用ADC監(jiān)測Vout上的電壓,再除以已知的電阻值Rout和Rsense,就可以得到準(zhǔn)確的負(fù)載消耗電流,而電流對時間進行積分,,即可以達到所消耗的電量準(zhǔn)確值。用總電量減去準(zhǔn)確的電量消耗值,即可得到準(zhǔn)確的剩余電量。充電電路,則同理。
圖1 FAN4010的應(yīng)用框圖
圖2 FAN4010的內(nèi)部結(jié)構(gòu)原理示意圖
FAN4010的典型應(yīng)用圖以及Rsense、Rout的選值要求如下。其中圖3為電池的充電電路,圖4為電池的放電電路。
圖3 充電部分的參考原理圖
圖4 放電部分的參考原理圖
Rsense(R_sense1/R_sense2)
這兩個電阻串聯(lián)在充電和放電的路徑上。因此,我們需要一個低阻值的電流采樣電阻。矛盾的是,如果Rsense太低,精度都將丟失。若Rsense選擇的過大,則此電阻上的壓降和功耗都很大。因此,Rsense的選擇應(yīng)該是理想的高精確度和所能允許電壓損失的綜合平衡。雖然FAN4010在Vsense值較低時采樣電阻上的功耗最小,但是一個更大的Rsense值能提供更多的準(zhǔn)確性。然而較大的Rsense會產(chǎn)生一個比較大的電壓降,減少了可提供給負(fù)載的有效電壓,這在低電壓尤其電池供電的應(yīng)用中會很有麻煩。正因為如此,設(shè)計中要很好地了解預(yù)期的最大允許負(fù)載電流和負(fù)載供電電壓。為了獲得最大化的精度,建議Rsense的選擇應(yīng)符合以下條件:10mV<Vsense<200mV。
Rout(R_out1/R_out2)
接到GND上的Rout這個電阻,是用來產(chǎn)生一個可供ADC檢測到的電壓信號。它的選擇主要取決于兩個參數(shù):I_out(即I_load*Rsense/100)以及ADC的電壓采樣范圍。最大的I_load產(chǎn)生的最大Vout不能超過ADC的最大采樣電壓。為了保證精度最大化,同時又希望最大的Vout能盡量接近ADC的最大采樣量程。
另外,為了保證FAN4010的最大線性化,Rout的選擇應(yīng)滿足關(guān)系式:
其中Vin為輸入電壓,Iout_fs的值則是表1中的對應(yīng)值,在不同的最大Vsense時,其值不一樣。例如,若最大的Vsense為500mV時,則Iout_fs=5mA。
Table.1 Iout_FS的選值表
Layout設(shè)計圖例如圖5,走線的基本原則是:FAN4010盡量靠近充電/放電路徑。
圖5 layout實例
三、典型的軟件設(shè)計
電量計算的算法如圖6,相關(guān)說明如下:
假設(shè)前提:現(xiàn)有兩塊電池,A (總?cè)萘?000mAh左右,不確定),B(總?cè)萘?500mAh左右,不確定),此2電池均可能使用在手機P上。
插入電池(開機)→→是否電池校準(zhǔn)(默認(rèn)否)→→否→→調(diào)用電池容量曲線a(默認(rèn))(若使用電池B,則修改為使用電池容量曲線b)→→通過電池端電池Vcc以及監(jiān)測耗電量聯(lián)合評估剩余電量百分比。
→→是→→若要校準(zhǔn),請保證該電池已經(jīng)充滿電→→選擇校準(zhǔn)曲線,a 還是 b? →→記錄最高端電池Vcc-h,默認(rèn)此時電池電量百分比100%→→按每一可計算時間段,分別監(jiān)測耗電量 ,以及電池端電壓→→一直使用到電池沒電,自動關(guān)機,記錄此狀態(tài)電壓Vcc-l以及默認(rèn)此時電池百分比0%,計算總的電量損耗Q,此Q即為以后容量曲線的total Q。
圖6 軟件流程圖