蘇震宇
(淮南市礦用電子技術(shù)研究所,安徽 淮南232001)
近年來(lái),環(huán)保和節(jié)能的問(wèn)題日益突出,鋰離子電池(簡(jiǎn)稱鋰電池)由于其具有能量密度高使用壽命長(zhǎng)自放電小無(wú)記憶效應(yīng)及單節(jié)電池電壓高等諸多優(yōu)點(diǎn),迅速成為市場(chǎng)的主流電池產(chǎn)品。在礦用產(chǎn)品中,鋰電池逐步替代了鉛酸電池和鎳氫電池。但鋰電池在使用時(shí)也存在一個(gè)重要的問(wèn)題,它在過(guò)充電或是在過(guò)放電時(shí)電池可能會(huì)發(fā)生爆炸,因此需要良好的保護(hù)電路來(lái)配合使用,這樣可以杜絕電池爆炸的問(wèn)題。為此,本文提供了一種以STM32F103為核心的電池管理系統(tǒng),它通過(guò)對(duì)8節(jié)鋰電池組單體電池狀態(tài)的檢測(cè),實(shí)現(xiàn)對(duì)電池組的管理,防止過(guò)充電和過(guò)放電,并完成SOC估算和均衡,同時(shí)通過(guò)485總線與外部通訊。
LTC6802是一款電池監(jiān)測(cè)芯片,內(nèi)部包括12位分辨率的模數(shù)轉(zhuǎn)換器,高精度電壓參考源,高電壓輸入多路轉(zhuǎn)換器和串行接口。每片LTC6802可測(cè)量12節(jié)串聯(lián)電池電壓,最大允許測(cè)量電壓60伏??赏瑫r(shí)監(jiān)測(cè)全部電池電壓或單獨(dú)監(jiān)測(cè)串聯(lián)電池中的任一節(jié)電池。芯片采用獨(dú)特的電平移動(dòng)串行接口,多片LTC6802可直接串聯(lián),芯片之間無(wú)需光耦或隔離器件。
多片LTC6802串聯(lián)時(shí)可同時(shí)工作,全部串聯(lián)電池的電壓測(cè)量時(shí)間在13ms以內(nèi)。為減小功耗,LTC6802還可對(duì)每節(jié)電池的過(guò)電壓與欠電壓狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控。芯片每個(gè)電池輸人端內(nèi)部連接有MOS開(kāi)關(guān)用于對(duì)過(guò)充電池放電。
圖1
單片機(jī)可以通過(guò)SPI總線從LTC6802讀取數(shù)據(jù),并控制相應(yīng)電池輸入的MOS管的導(dǎo)通和關(guān)閉,以實(shí)現(xiàn)電芯均衡。輸入通路中插入100Ω的串聯(lián)電阻,而不會(huì)引入重大的測(cè)量誤差,為了保護(hù)LTC6802電壓采集引腳,防止電壓高出最大輸入電壓,在每一個(gè)電芯采輸入端口并聯(lián)一個(gè)7.5V穩(wěn)壓管,并在每個(gè)電壓采集引腳前加阻容濾波電路,從而有效地濾除高頻干擾,保證電壓采集的正確性。
采集控制和信號(hào)調(diào)理模塊的核心處理器使用STM32F103VET6芯片,STM32是意法半導(dǎo)體公司推出的基于ARM32位Cortex-M3CPU,片內(nèi)自帶512K高速FLASH程序存儲(chǔ)器高達(dá)64K的SRAM;2.0~3.6V供電和IO管腳兼容5V電平STM32多達(dá)13個(gè)通信接口;CAN、USB、雙I2C、3個(gè)SPI、5個(gè)USART接口片內(nèi) 2個(gè) 12位逐次逼近型AD轉(zhuǎn)換器,它有18個(gè)通道,各通道的AD轉(zhuǎn)換可以單次連續(xù)或間斷模式執(zhí)行其最大轉(zhuǎn)換速率達(dá)1MPS電壓轉(zhuǎn)換范圍0~3.6V,轉(zhuǎn)換精度±0.8mV。由于LTC6802不能滿足檢測(cè)每個(gè)電池電芯溫度的要求,所以電池電芯的溫度將使用STM32片內(nèi)AD進(jìn)行檢測(cè);而電池的充放電電池也將由STM32來(lái)進(jìn)行采集,而電池的溫度、電流信號(hào)變化緩慢,STM32可以達(dá)到系統(tǒng)的要求。
STM32可以通過(guò)SPI總線從LTC6802讀取數(shù)據(jù),根據(jù)所采集到鋰電池電芯電壓,判斷當(dāng)前電池電芯電壓是過(guò)壓或者是欠壓。當(dāng)電池欠壓時(shí),STM32發(fā)出報(bào)警信號(hào),并通過(guò)控制管腳打開(kāi)充電MOS管,對(duì)電池進(jìn)行充電,并實(shí)時(shí)監(jiān)控充電電流,防止充電電流過(guò)大,同時(shí)監(jiān)測(cè)電池各個(gè)電芯電壓以防止有電芯充過(guò)壓。
當(dāng)電池電芯過(guò)壓時(shí),STM32通過(guò)配置LTC6802的寄存器,打開(kāi)相應(yīng)的和電池電芯并聯(lián)的MOS管,對(duì)過(guò)充電電芯進(jìn)行放電。TM32通過(guò)控制相應(yīng)電池輸入的MOS管的導(dǎo)通和關(guān)閉,以實(shí)現(xiàn)電芯均衡。均衡程序流程圖如圖1所示。
由于LTC6802只有兩個(gè)引腳作為溫度傳感器的輸入用來(lái)檢測(cè)電池電芯的溫度,不能滿足8節(jié)電芯每節(jié)電芯溫度的檢測(cè),因此使用STM32進(jìn)入溫度傳感器的數(shù)據(jù)采集。
STM32的內(nèi)部ADC是12位的逐步逼近型模擬數(shù)據(jù)字轉(zhuǎn)換器,最快轉(zhuǎn)換時(shí)間達(dá)到1us,完全滿足溫度檢測(cè)。對(duì)溫度傳感器進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,并通過(guò)軟件處理轉(zhuǎn)換為對(duì)應(yīng)的溫度值。當(dāng)電池電芯的溫度超過(guò)60度時(shí),發(fā)出報(bào)警信號(hào),溫度低于50度時(shí)解除報(bào)警信號(hào)。
STM32通過(guò)SPI總線與LTC6892進(jìn)行通信同時(shí),通過(guò)RS485總線將電壓、電池充放電電流、溫度數(shù)據(jù)及均衡狀態(tài)上傳到上級(jí)控制系統(tǒng)。當(dāng)電池發(fā)生故障時(shí),也會(huì)通過(guò)RS485將故障信息上傳到上級(jí)控制系統(tǒng),以便于上級(jí)控制系統(tǒng)可以做出進(jìn)一步的處理和故障記錄。
圖2 寫時(shí)序
圖3 讀時(shí)序
圖4
由于在設(shè)計(jì)中采用了微處理器做控制核心,所以軟件設(shè)計(jì)非常重要為了增加程序的可維護(hù)性,方便今后的擴(kuò)展和程序移植,所以采用C語(yǔ)言編寫,軟件設(shè)計(jì)采用模塊化設(shè)計(jì)思路,功能模塊包括監(jiān)控程序及初始化模塊參數(shù)測(cè)量模塊數(shù)據(jù)計(jì)算模塊保護(hù)模塊等。
在軟件設(shè)計(jì)中,STM32與LTC6802之間 的SPI通信是最為關(guān)鍵的一步。因?yàn)橹挥斜?證可靠的通信,STM32才能夠控制LTC6802進(jìn)行電芯電壓采集以及控制均衡電路的開(kāi) 啟和關(guān)閉。為了實(shí)現(xiàn)SPI通信,首先要清楚 LTC6802的讀寫時(shí)序。LTC6802的寫時(shí)序如 圖2所示,讀時(shí)序如圖3示。
軟件設(shè)計(jì)流程圖如圖4所示。
本文采用STM32F103VET和LTC6802設(shè)計(jì)了磷酸鐵鋰動(dòng)力電池組狀態(tài)監(jiān)測(cè)系統(tǒng)。該系統(tǒng)采集8只串聯(lián)動(dòng)力電池電芯的電壓 和溫度,對(duì)電芯進(jìn)行均衡,并通過(guò)485總線上傳待測(cè)電芯的電壓、溫度以及均衡狀 態(tài)。經(jīng)過(guò)實(shí)際測(cè)試,該系統(tǒng)的電壓采集精度 為±4mV,溫度采集誤差為±1℃。該系統(tǒng) 工作穩(wěn)定可靠,具有重要的應(yīng)用價(jià)值。
[1]王永虹,徐煒,郝立平.STM32 系列 ARM Cortex.M3 微控制器原理及實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008:318-338.
[2]李寧.基于MDK的STM32處理器開(kāi)發(fā)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008,10.
[3]LTC6802-1 多節(jié)電池的電池組監(jiān)視器[Z].2009.
[4]張金頂,王太宏,龍澤,雷晶晶,李進(jìn).基于MSP430單片機(jī)的12節(jié)鋰電池管理系統(tǒng)[J].電源技術(shù)研究與設(shè)計(jì),2011,5.
[5]王有琚,張維戈,王占國(guó).LTC6802在電池管理 系統(tǒng)中的應(yīng)用[J].微處理機(jī),2011,4(2).