徐昕晨,彭月祥,邢曉喬
(北京工業大學應用數理學院納米光學研究所,北京 100124)
多節鋰離子電池串聯的高壓電池組作為代替燃料的綠色能源,在工業和運輸業中的應用越來越廣泛。由于發展的需要,出現了各種更高電壓更大功率的應用,例如電梯備用電源,清潔能源的大型貨車等。通過太陽電池方陣將太陽能輻射能轉換為電能的太陽能光伏電站中的電池組就是一個典型應用。而這種電源需要更方便、支持更多電池單元的電源監控和自動平衡系統才能安全有效地工作[1]。
本文以凌力爾特(Linear Technology)公司的LTC6802-2 多節電池可尋址電池組監視器芯片和STC 公司的STC12C5-A32S2 單片機為主要元件搭建了一套高度集成化的鋰離子電池組監控系統。LTC6802-2 除了具有現有其他電池組監控芯片的主要功能外,還有可尋址的特性,每組監控模塊可接入12節電池,每個監控單元可對16 個不同的監控模塊分別尋址,因此每個監控單元可連接多達192 節鋰離子電池,各單元通過RS485 上的Modbus 協議與上位機通信,理論上可接入47 424 節鋰離子電池,完全可以滿足目前絕大部分對鋰離子電池組監控的需求。另外,大部分的PLC 器件及工控組態軟件均兼容Modbus 協議,使用本套系統可以方便地接入其中,便捷地對電池組進行監控。
硬件總體設計框圖如圖1所示。

圖1 硬件總體設計框圖
所有監控單元以RS485 總線上的Modbus 協議與上位機(PCPLC 器件)通信,一條傳輸Modbus 協議數據的RS485 總線可接入247 個監控單元。
每個監控單元由一片STC12C5A32S2 單片機、LCD、小鍵盤與至多16 組監控模塊組成(如圖2所示),各監控模塊與單片機通過母板連接,母板負責傳輸SPI 信號以及供電給各監控模塊的隔離器。單片機通過SPI 總線對監控模塊的數據進行采集,以及控制16×12 個電池單元的平衡模塊。STC12C5A32S2單片機的特點是雙串口,串口1 負責燒寫程序和與上位機通信,串口2 則負責屏幕和鍵盤的通信。STC12C5A32S2 還內置1.2 K SRAM,32 K NOR FLASH,29 K EEPROM,可省去外擴ROM 和RAM。LCD 及鍵盤是可選部分,可方便地進行現場調試及操作,如不需要現場操作,也可省去。

圖2 監控單元硬件框圖
監控單元中的監控模塊由一片LTC6802-2、至多12 節鋰離子電池單元與相應的平衡器、環境監測單元、隔離器組成,如圖3所示。LTC6802-2 芯片的特點有:(1)可分別測量12節串聯鋰離子電池電壓(最大串聯電壓60 V);(2)級聯架構可監測高壓電池組;(3)可以4 位地址標識串聯系統中的每個芯片;(4)高精度,最大0.25%總測量誤差;(5)13 ms 完成系統中所有電池的測量;(6)片內自帶被動電池平衡開關,可被動平衡電池電壓;(7)兩路模擬輸入,接入熱敏電阻或傳感器即為兩路溫度計;(8)1 MHz 帶校驗串行通信接口。

圖3 監控模塊硬件框圖
LTC6802-2 對電池單元進行電壓采集,并控制平衡器使系統中各個電池單元相互平衡。LTC6802-2 除片內有溫度傳感器以外,還有兩個12 位ADC 接口,一般情況下可接入溫濕度傳感器,全面監測電池單元的狀態及所處的環境狀態,一旦電池單元出現異常,如過充電引起的發熱,或環境出現異常,可由單片機檢測到并送至上位機,自動或由管理人員采取相應對策。
由于每個監控模塊電位各不相同,因此需要隔離器在數據傳輸線上進行電氣隔離,本文中采用的隔離器為ADUM 1411。LTC6802-2 相對于此系列芯片的第一版LTC6802 的一大改進在于可尋址,選址跳線為LTC6802-2 的4 條地址線,可手動修改每個監控模塊的地址,方便單片機訪問,大大簡化程序的編寫過程。需要注意的是,每個監控單元內不可有重復地址的監控模塊。
監控單元核心是單片機STC12C5A32S2,它通過強上拉SPI 訪問監控模塊;通過RS232 顯示;通過RS485 與微機通信。如圖4所示。

圖4 單片機板原理圖
STC12C5A32S2 內置復位電路,因此外部復位電路可省去。
STC12C5A32S2 內部I/O 口自帶100 K 弱上拉電阻,不能滿足SPI 數據線的負載要求,需要另加強上拉電阻,尤其是MOSI 數據線,最多需負載16 個隔離器的輸入端,如母版設計較大,或對數據傳輸速率有更高要求,可在此處加三極管做簡單驅動,或加驅動芯片。
為方便RS485 數據傳輸,選用18.432 MHz 晶體可在滿足高頻工作的條件下獲得整數波特率,減少通信誤差。
本文中,RS485 通過MAX485 芯片實現,單片機輸出的UART 經過MAX485 即轉換為RS485 差分信號,差分信號的優點是大幅減少共模干擾,可省略地線,一條雙絞線即可完成較長距離上的信號傳輸。另外,RS485 總線上某個節點出現問題也不會對總線上的其他節點造成損壞。
某些情況下,系統中只需要一個監控單元,這時可使用RS232 與上位機進行點對點通信,本設計中增加的跳線即可將UART 信號轉換為RS232 信號,從母版直接向外輸出RS232 信號。
監控模塊的核心是LTC6802-2,比上一個版本LTC6802多出4 位尋址功能,MCU 可單獨對每個LTC6802-2 進行訪問,大大簡化了程序設計。主要功能是檢測電池組電壓,通過SPI 上傳給監控單元的單片機,并從LCD 上顯示。如圖5所示。
V-到C12級聯12 節鋰離子電池,V+ 連接至C12,C12與GND 之間放置60 V 穩壓二極管保護芯片,電池兩端接入場效應管和大功率電阻。當電池單元n過充時,由單片機軟件檢測到并打開Sn平衡開關,場效應管導通,為電池放電,否則Sn關閉,電池充電[2-3]。
4 條SPI 數據線上拉到VREG,經過隔離器后接駁至監控模塊外部的SPI 總線。需要注意的是,MISO 的數據方向是LTC6802-2 向MCU 傳輸,當某LTC6802-2 發送數據時,MISO總線被相應隔離器拉低,而其他隔離器此時輸出高電平,這時會出現高低電平短路的情況,阻礙通信過程,嚴重時有可能損壞隔離器,為防止這種情況,在每個隔離模塊的MISO 線上加一個二極管限定數據傳輸方向。本設計中選用ADUM 1411 隔離器,ADUM 1411 隔離器的4 條數據線中有3 條方向相同,另一條方向相反,是針對SPI 數據信號隔離設計的,可簡化PCB布線。

圖5 監控模塊板原理圖
兩個VTEMP 接口是通用12 位ADC,本設計中接入了兩個100 K 的NTC 以監測電池組溫度及環境溫度,如有需要,還可以用這兩個ADC 接口采集其他低速模擬信號。
VREF 是LTC6802-2 內部集成的基準源,可輸出穩定的3.075 V 參考電壓,可用做溫度傳感器的參考電位。如需要更多溫度傳感器或更大的基準源電流輸出,或其他數值的參考源,需在此處另加運放。
VREG 是LTC6802-2 集成的穩壓器,可為監控模塊上等電位的器件(如隔離器本地端)提供5.5 V,4 mA 輸出的電源。
MMB 接口是LTC6802-2 的模式選擇線,LTC6802-2 有兩種模式,一種模式是用SPI 進行操作的高級測量模式,另一種是低級的監視模式,本設計中只使用高級的測量模式,因此MMB 接口上拉到VREG 以選擇高級測量模式。
由于上位機可使用現有工控組態軟件對本系統進行監控,本文暫不涉及上位機軟件,只考慮單片機程序的設計。
LTC6802-2 支持可尋址,因此大大簡化了操作LTC6802-2 的相關代碼,只需向SPI 總線發送的數據包中加入目標地址即可。
本系統屬于保護系統,因此軟件上對通信失敗及突發情況的處理要求也較嚴格,LTC6802-2 自帶了PEC 數據校驗機制,當某LTC6802-2 發送的數據不能通過PEC 校驗時即認為通信失敗,通信失敗可能是LTC6802-2 受到靜電沖擊,ESD 保護被啟動,各寄存器被復位,SPI 芯片處于禁用狀態,另一種可能是LTC6802-2 損壞,發送出不正確的數據。如果連續通信失敗超過指定次數,單片機就會嘗試重新設置有問題的LTC6802-2,如果依然通信失敗,單片機就會向上位機報告異常狀態并啟動蜂鳴器發出警報。圖6為單片機軟件框圖。

圖6 單片機軟件框圖
通過下面三個函數即可單獨對單元內每片LTC6802-2 進行讀寫,修改配置寄存器的相應位即可實現平衡FET 的導通與截止,操作GPIO 等功能,讀取出的電壓寄存器值和溫度寄存器值需進一步處理即可得到電壓值與溫度。
void LTC6802_W rite_CFGR (unsigned char Address, unsigned char*Data)//寫配置寄存器函數,輸入參數為地址與待寫入各寄存器值:
{
Enable_SS();//清零SPI 總線SS 線,開始傳輸數據
SPI_Transmit(0x80+Address);//發送地址
SPI_Transmit(WRCFG);//發送寫配置寄存器命令
SPI_Transmit_Bytes(CFGR,6);//傳輸寄存器數據
Disable_SS();//置位SS 線,結束傳輸
}
void LTC6802_Send_Poll_Command (unsigned char Address, unsigned char Command)//發送AD 轉換命令,輸入地址與指令
{
Enable_SS();//開始傳輸數據
SPI_Transmit(0x80+Address);//發送地址
SPI_Transmit(Command);//發送指令
Disable_SS();//結束傳輸
_delay_ms(25);//等待轉換結束
}
unsigned char LTC6802_Read_REG(unsigned char Address,unsigned char*Data, unsigned Command)// 讀取電壓寄存器,輸入地址、待寫入數組與讀相應寄存器指令
{
Enable_SS();//開始傳輸數據
SPI_Transmit(0x80+Address);//發送地址
SPI_Transmit(Command);//發送讀寄存器命令
SPI_Receive_Bytes(Data,size of(Data));//讀取寄存器
if (SPI_Receive()=PEC_Check(Data, size of(Data)))//PEC校驗
{
Disable_SS();//結束傳輸
return Operation_Success;//校驗成功,返回操作成功代碼
}
Disable_SS();//結束傳輸
return Read_CVRG_Faild;//校驗失敗,返回操作失敗代碼
}
由于單片機SPI 發送線需要同時驅動16 個隔離器,上升沿變緩,SPI 傳輸相關函數中需要適當加延時,如果需要高速傳輸,建議在單片機的SPI 輸出腳上加驅動芯片。注意增加驅動芯片后,SPI 頻率仍不能超過1 MHz,如果單片機速度過快,還需要適當加延時。
電池電壓上限設定為4.2V,當電池電壓超過4.2 V 時放電FET打開,電壓低于4.1 V 時放電FET 關閉。測試電壓測量精度時,分別在電池為4.2、4.1、4.0、3.9、3.8V左右時用LTC6802-2 得到的數據與萬用表測試結果比較,得出平均絕對誤差為3.59 mV,平均相對誤差為0.896%,最大絕對誤差5 mV,最大相對誤差1.28%。雖然滿足設計要求,但相比LTC6802-2 宣傳的0.25%最大總測量誤差還是過大,如需進一步降低誤差,可在每個電池單元上加入RC 濾波電路,軟件上也需做相應處理,如對LTC6802-2 使用先放電后檢測指令等。
大功率高電壓的鋰電池組應用越來越廣泛,對應的管理芯片種類繁多,功能也各不相同。本文介紹了LTC6802-2 在高壓電池組監控上的應用,本文中的系統可實現各監控單元對單元內所有電池數據的刷新速度達到25 ms,對突發情況可快速反應,保證了鋰離子電池的壽命和設備及現場人員的安全。通過與上位機成熟的組態軟件配合,還可對數據進行記錄及分析等進一步的處理。
致謝:感謝北京工業大學服務北京創新人才、團隊建設項目資助。
[1]高麗麗,徐克寶,趙平強,等.礦用單軌機車鋰離子電池組均衡電路的研究[J].煤礦機械,2010,31(2):30-33.
[2]陳淵睿,伍堂順,毛建一.動力鋰電池組充放電智能管理系統[J].電源技術,2009,33(8):666-670.
[3]任德奎,陳水全,孫顯鵬.水雷鋰離子電池組充電控制策略研究[J].水雷戰與艦船防護,2011,19(1):52-54.