Intel和Duracell公司于1995年提出了筆記本智能電池的概念——Smart Battery,即把鋰電池和管理控制系統結合在一起,本身具有測量、計算、保護、通信等功能[1]。目前已經發展成為行業標準,其定義了智能電池數據規范協議SBData1.1、系統管理總線協議SMBus2.0(與I2C總線兼容)及相關的數據精度標準。此標準目前在筆記本智能電池系統中得到廣泛的遵守和應用,而在面向其他應用時,可以做出相應的取舍和改進[2]。
由于鋰電池具有電壓高、能量密度高、無“記憶效應”、放電曲線平緩等優點,很多便攜式產品采用單節鋰電池進行供電。然而鋰電池也是比較嬌貴的產品,過沖、過放電、短路等都會對使用壽命產生影響甚至發生爆炸危害到人身安全。而且目前很多便攜式產品在電池電量沒有完全用完時就不允許繼續工作,降低了電池使用效率和產品的使用時間。因此,對單節鋰電池進行相關的處理措施是非常必要的。
1 智能電池系統規范概述
電池的智能化是最近才發展起來的,智能電池的實現方法多種多樣,但只有一種系統能夠提供包括電池、充電器和其他元件在內的完整方案,即基于系統管理總線(SMBus)的標準智能電池系統(SBS)。系統主要由四個模塊組成:充電、安全保護、測量和計算通信。這種結構以Intel和其他公司開發的雙線總線為中心,數據協議SBData規范使其電源管理系統所用的電池數據保持一致性,如固定值、測量值、計算值和預測值以及充電和報警信息。這些數據用在主系統和智能電池系統之間互相傳遞。
數據協議規范定義的34個數值代表了操作條件、計算而得的預測和SBS特性。在功能上具有:測量(電壓、溫度、電流和平均電流);容量信息(容量值包括相對充電狀態、絕對充電狀態、剩余容量和完全充電容量);剩余時間(耗盡時間、平均耗盡時間、平均充滿時間、充放電定值、定值充滿時間、定值耗盡時間和定值OK);報警與廣播(剩余容量報警、剩余時間報警、充電電流和充電電壓);模式、狀態和錯誤(電池模式、容量模式、充電器模式、最大錯誤、電池狀態和制造商訪問);電池身份識別(周期計數、設計容量、設計電壓、規范信息、制造日期、編號、制造商名稱、器件名稱、器件化學以及制造商數據)[2]功能。
由于標準是一些便攜式電腦制造商推出的,主要針對筆記本電腦等耗電偏大、采用多電芯(電池)供電的系統。但在單電池供電的系統中,由于成本及資源問題限制了電池系統的操作,使智能電池系統的發展復雜化。因此這里將智能電池系統規范引入到單節鋰電池中,需要在軟、硬件方面做出合適的修改。
2 系統的硬件組成
單節智能鋰電池系統采用Maxim公司的充電管理芯片MAX1555實現充電管理功能;理光的R5421構成單節鋰電池保護電路,防止電池過沖、過放電、過流及短路;利用Maxim的DS2438完成電池的各種狀態的檢測及電池的標識,具有SMBus(與I2C兼容)接口的單片機C8051F305完成了充電狀態的測量控制、電池狀態的讀取和運算、存儲及通信等功能。此外還有為主系統供電的電源處理芯片以及具有二次保護功能的電源開關TPS2013。這些都可以根據實際需求做出取舍。整體由單片機構成嵌入式系統,利用C8051F305標準的SMBus2.0接口與被供電系統進行通信,完成相關信息的讀取和命令發送等功能。系統框圖如圖1所示。
2.1 充電管理
鋰離子電池的額定電壓為3.6V(有的產品為3.7V),充滿電時的終止充電電壓根據陽極材料的不同分為4.1V和4.2V。鋰離子電池的終止放電電壓為2.5V~2.75V(電池廠給出的工作電壓范圍或給出的終止放電電壓,各參數略有不同)。低于終止放電電壓繼續放電稱為過放,電池電壓超過4.1V或4.2V時稱為過充,鋰電池不適合作大電流放電,同時鋰電池的充放電對環境溫度都有一定的要求。以上任何一項超過指標都會對電池產生不良的影響。其充電管理電路如圖2所示。
本系統采用充電管理芯片MAX1555,它可以通過USB和AC適配器電源為單節鋰離子電池充電,可以接受最高7V的輸入電壓。通過優化充電速率,當達到MAX1555溫度限制時,充電器并不關斷,而是逐漸降低充電電流使其可以在電池狀況和輸入電壓處于最糟糕的情況下不受散熱問題的制約[3]。
系統采用線性充電方式,當電池電壓低于3V時,器件進入充電電流為40mA的預充電模式,直至電壓高于3V進入恒流模式。如果連接的是USB口但無直流電源時,充電電流被設定為100mA(最大值);如果是DC電源充電,充電電流被自動設定為280mA(典型值)。當電池電壓超過4V時,芯片以固定4.20V+/-0.04V左右的恒定電壓給電池充電(恒壓模式),如果充電電流小于50mA,則芯片停止充電,結束一個充電周期,通過狀態引腳CHG的高電平傳輸到單片機中。
采用MAX1555芯片成本低、外圍電路簡單、體積小、發熱量低、充電策略可靠。當采用交流適配器充電時,500mAh的鋰電池只需兩個小時即能沖滿,完全能夠滿足充電器設計的要求。
2.2 安全保護
圖3為本系統的電池保護電路,主要采用理光(RICOH)的R5421N111C和用于電源開關、低導通電阻的N溝道場效應管S-19926構成鋰電池保護電路,實現過充、過放、過電流和短路保護等功能。
在正常狀態下電路中U2的“Cout”與“Dout”腳都輸出高電壓,兩個MOSFET(Q1、Q2)都處于導通狀態,電池可以自由地進行充電和放電。由于MOSFET的導通阻抗也很小(<30mΩ),因此其導通電阻對電路的性能影響也很小。
當電池電壓超過4.28V(過充)、低于2.5V(過放)、場效應管兩端的電壓大于0.1V(過流,具體數值是根據場效應管導通電阻及相關公式計算而得)或場效應管兩端的電壓大于0.9V(短路時,該值由控制IC決定)時,芯片通過對兩個MOSFET的控制,實現對電池的保護[4]。
2.3 測量部分
為了實現對電池當前各種狀態的監測,包括當前電池的充/放電狀態、電壓、電流、溫度、剩余電量、消逝時間等參數的監測,這里采用智能電池檢測芯片DS2438來完成。
DS2438芯片是DALLAS公司推出的新一代智能電池監測芯片,具有功能強大、體積小、硬件接線簡單等優點(通過一線與單片機進行數據指令通信);內含數字溫度傳感器對電池溫度進行測量;片內模數轉換器對電池電壓進行監測,從而可判定充電和放電的結束;片內的積分電流累加器可實時記錄電池流入、流出電流的總量,便于統計電量;內含記錄相對于內部基準時間的電池充電完畢、其脫離系統的精確時刻消逝時間表;內含40字節可用于存放電池特殊參數的掉電保護的用戶訪問存儲器[5]。
2.4 計算通信部分
計算通信部分使用Silabs公司的低成本單片機C8051F305,它具有采用流水線指令結構的高速8051微控制器內核、256B RAM、2KBFlash存儲器、8個I/O口、標準SMBus串口、采用3V供電、功耗低[5]。
采用單片機系統對DS2438的數據進行讀取、運算、存儲,通過標準的SMBus接口對數據和指令與主系統傳輸,同時多余的I/O口用來控制電源的開關等其他功能。
3 軟件設計
軟件編寫主要采用模塊化的方式,編譯環境Keil 7.50 完成C51的編程。這里主要介紹對智能電池系統協議SBData的定制和對DS2438的讀寫控制。
3.1 智能電池系統通信協議的定制
SBData1.1協議規定了34個數值[6]。該系統根據需要做出修改,只占用22個數值,在實際應用中可以根據所需數據進行讀取,同時也可以將沖放電控制策略應用于系統,對智能鋰電池系統起到軟保護的作用。這些數值都是通過DS2438測量或預先定義存放在C8051的Flash存儲器中,主系統通過SMBus或用I/O口模擬I2C時序,向智能電池系統發送命令碼,獲取所需的值。智能電池數據功能表如表1所示。具體值的定義由于篇幅限制這里不做介紹。
3.2 DS2438的讀寫控制
3.2.1 供電方式的測量
首先單片機控制DS2438使其電流A/D轉換器使能,而后DS2438對流入、流出電池塊的電流自動進行測量,結果存放于電流寄存器中。電流寄存器的高字節的高6位是流入電池電流的符號位,為1表示電池正在充電;為0表示電池正在放電。單片機對電流寄存器的值的高6位進行判斷就可獲得供電方式,同時也獲得電流值。供電方式測量程序流程圖如圖4所示。
3.2.2 電池電壓、溫度、剩余電流的測量
要獲得電池的電壓和溫度,只需要由單片機對DS2438發出采集電壓、溫度的控制命令,然后等待其采集完畢并自動將電壓、溫度測量值存入相對應的寄存器后,再由單片機讀取寄存器的內容即可。在讀取寄存器值時,注意只有當數據線為高電平時,才能正確地讀取。其程序流程與圖4類似。
電池的剩余電量可用電流積分累加(ICA)寄存器的值求得。只需單片機讀出ICA寄存器的值,然后將讀出的值代入公式:剩余電量=ICA/(2048×RSENS),便可得到電池的剩余電量。
該智能電池系統引入了國際標準,具有筆記本智能電池系統的優點。在實際應用中該系統改進了便攜式電源的管理;延長了電池的工作時間;確保了安全溫度內的充放電;縮短了充電時間;可選用多種商家的電池;易于升級,為便攜式儀器提供了很好的解決方案。