南京富士通電子信息科技股份有限公司 徐 森
本文設(shè)計(jì)了一款基于華大MCU的鋰電池管理系統(tǒng)Li-ion BMS。對(duì)12V鋰電池組的單體電池電壓、充放電電流和工作溫度進(jìn)行采集,采集到的數(shù)據(jù)在MCU內(nèi)部進(jìn)行算法處理,估算出單體電池的SOC(荷電狀態(tài))和SOH(健康狀態(tài));以單體電池的SOC為依據(jù),在充電時(shí)對(duì)電池進(jìn)行100mA的被動(dòng)均衡;同時(shí)對(duì)電池組進(jìn)行過(guò)充、過(guò)放、短路、低溫和過(guò)熱的異常狀態(tài)進(jìn)行管理。系統(tǒng)搭載RS485通信接口,主控MCU可以把采集到的數(shù)據(jù)上傳到上位機(jī)進(jìn)行數(shù)據(jù)分析和控制。
鋰電池應(yīng)用中,通常把多節(jié)18650鋰離子電池通過(guò)串并聯(lián)的方式裝配成一個(gè)電池組,達(dá)到應(yīng)用中需要的電壓和容量。每個(gè)單體鋰電池在制造過(guò)程中會(huì)有一定的容量誤差,每個(gè)單體電池的內(nèi)阻不同,自放電速率也不一致。BMS的作用就是實(shí)時(shí)監(jiān)測(cè)每個(gè)單體電池單元的電壓,結(jié)合采集到的充放電電流信息對(duì)鋰電池的SOC進(jìn)行估算,并管理電池的過(guò)充、過(guò)放、短路、過(guò)熱,使電池在安全區(qū)間工作。
鋰電池管理系統(tǒng)方案以華大Cortex-M4內(nèi)核的MCU HC32F460PETB為主控制器,避免使用價(jià)格昂貴的專用BMS AFE芯片,具有較高的成本優(yōu)勢(shì)和通用性。單體鋰電池電壓經(jīng)過(guò)信號(hào)調(diào)理電路輸入到MCU的ADC輸入端進(jìn)行電壓測(cè)量,充放電電流流過(guò)檢測(cè)電阻Rsense后轉(zhuǎn)換為電壓,由高精度放大器INA181進(jìn)行放大后,接入MCU的ADC輸入端進(jìn)行電流測(cè)量。MCU根據(jù)測(cè)量得到的單體電壓,利用單體電池的充放電曲線估算出單體電池的初始SOC,同時(shí)對(duì)充放電電流進(jìn)行庫(kù)倫計(jì)數(shù),定時(shí)刷新SOC;在電池充放電的結(jié)束階段用鋰電池電壓矯正SOC。當(dāng)測(cè)量到單體電池電壓低于2.7V時(shí),MCU斷開負(fù)載,防止電池過(guò)放;當(dāng)測(cè)量到單體電壓高于4.2V時(shí),停止充電,防止電池過(guò)充;在充電過(guò)程中對(duì)最先達(dá)到充電截止電壓的單體電池進(jìn)行均衡,使所有單體電池在充電最后階段達(dá)到相同的SOC。當(dāng)測(cè)量到電池組的工作溫度越界或充放電電流超過(guò)設(shè)定范圍時(shí),斷開充放電回路,起到保護(hù)作用。在充電過(guò)程中,計(jì)算每個(gè)單體電池的內(nèi)阻,估算電池的SOH。采用RS485接口進(jìn)行通信,可上傳電池組的信息并可接受上位機(jī)的控制指令。電池組通過(guò)DC/DC降壓后給LDO供電,LDO輸出3.3V給MCU供電;同時(shí),DC/DC的輸出接電源隔離模塊產(chǎn)生5V,給RS485接口電路供電。方案圖如圖1所示。
圖1 BMS輸出系統(tǒng)方案圖
鋰電池單體電壓采集電路由運(yùn)放TL084H和MCU的ADC組成。單體電池電壓經(jīng)過(guò)TL084H組成的差分放大器把鋰電池的輸出電壓2.7V~4.2V轉(zhuǎn)換為MCU的ADC可以處理的2.12V~3.3V。放大器的增益由R3與R4的比值決定。R5、C1濾除噪聲,D1為3.3V齊納二極管防止放大器輸出過(guò)載,保護(hù)MCU的ADC。電池的平衡電路由Q1、Q2組成,設(shè)定均衡電流為100mA。充電時(shí)MCU定時(shí)檢測(cè)電池電壓,單體電池電壓先達(dá)到滿充截止電壓的,MCU控制BAL信號(hào)輸出高電平,光耦Q2導(dǎo)通,驅(qū)動(dòng)PMOS管Q1導(dǎo)通,對(duì)電池進(jìn)行放電均衡。D2用于指示電池處于均衡狀態(tài)。電壓采集和均衡電路圖如圖2所示。
圖2 鋰電池單體電壓采集和均衡電路
電流采集電路由INA181和TL431組成,INA181供電電壓為5V,TL431設(shè)定運(yùn)放的偏置電壓為2.5V,采樣電阻選取2mOhm 1%精密電阻,當(dāng)電池充放電電流達(dá)到滿負(fù)荷10A時(shí),Rsense上產(chǎn)生20mV壓降,經(jīng)過(guò)INA181放大50倍,送入MCU的ADC輸入端進(jìn)行電流采樣。PMOS管Q5、Q6組成充放電控制電路。充電時(shí),MCU控制CHG信號(hào)輸出高電平,DSC信號(hào)輸出低電平,Q7導(dǎo)通驅(qū)動(dòng)Q6導(dǎo)通給電池充電;放電時(shí),MCU控制DSC信號(hào)輸出高電平,CHG信號(hào)輸出高電平,Q8導(dǎo)通驅(qū)動(dòng)Q5導(dǎo)通給負(fù)載放電。電流采集和充放電控制電路如圖3所示。
圖3 電流采集和充放電控制電路
溫度采集使用DS18B20數(shù)字式溫度傳感器,傳感器放置在電池包的中心位置,測(cè)量電池組的溫度。MCU模擬1-wire總線的時(shí)序定時(shí)讀取溫度數(shù)據(jù),并根據(jù)溫度數(shù)據(jù)進(jìn)行相應(yīng)的充放電控制。RS485通信采用光電隔離方案通信,提高抗干擾能力。BMS系統(tǒng)設(shè)計(jì)了控制命令集,上位機(jī)按命令集發(fā)送指令獲取電池組的電壓、SOC、SOH、充放電電流、溫度等數(shù)據(jù)并可以進(jìn)行相應(yīng)的控制。
系統(tǒng)上電復(fù)位后進(jìn)行MCU的初始化,對(duì)ADC、定時(shí)器、GPIO等硬件資源進(jìn)行配置;然后進(jìn)入休眠狀態(tài);休眠結(jié)束后,采集電池的電壓、電流和溫度;計(jì)算SOC和SOH,對(duì)系統(tǒng)進(jìn)行控制。數(shù)據(jù)通信放在中斷處理流程中。軟件流程如圖4所示。
圖4 系統(tǒng)軟件流程圖
結(jié)束語(yǔ):本文設(shè)計(jì)了一款基于國(guó)產(chǎn)華大MCU的鋰離子電池的BMS方案。與市面上采用專用ASIC芯片設(shè)計(jì)的BMS相比,本方案具有器件通用性強(qiáng),成本低,易于擴(kuò)展功能和適應(yīng)性強(qiáng)的特點(diǎn),有較高的實(shí)用價(jià)值。