摘要:本文從設(shè)計(jì)要求和功能出發(fā),設(shè)計(jì)了一種用于混合動(dòng)力汽車的電池管理系統(tǒng)。其中硬件系統(tǒng)包括:電源模塊、基于OZ890 的單體電壓采集電路和I2C 通信電路、基于DSP 的RS232
串口通信和CAN 通信等硬件系統(tǒng)的設(shè)計(jì);軟件系統(tǒng)包括:利用周期中斷和下溢中斷實(shí)現(xiàn)數(shù)據(jù)采集處理、SOC 估算和各種通信程序。
關(guān)鍵詞:電池管理系統(tǒng);OZ890;I2C 雙向隔離;下溢中斷
Design of battery management system based on DSP and OZ890 WANG Tao, QI Bo-jin, WU Hong-jie, LI Wei (School of Mechanical Engineering & Automation, Beihang University, Beijing 100191, China) Abstract: A battery management system for Hybrid Electrical Vehicle is designed according to its design requirements and functions. The design of BMS contains two parts: hardware system and software system. The hardware system comprises power module, data acquisition and communication circuit, I2C bus circuit, CAN bus circuit, RS232 circuit and so on. The software comprises data acquisition and processing program based on periodic interrupt and underflow interrupt, evaluation of SOC and communication programs.
Key words: battery management system; OZ890; Dual I2C Isolator; underflow interrupt
電池管理系統(tǒng)(BMS, Battery Management System)是電動(dòng)汽車的關(guān)鍵零部件之一。高
性能、高可靠性的電池管理系統(tǒng)能使電池在各種工作條件下獲得最佳的性能。電池管理系統(tǒng)
可以實(shí)時(shí)監(jiān)測(cè)電池狀態(tài),如電池電壓、充放電電流、使用溫度等;預(yù)測(cè)電池荷電狀態(tài)(SOC,
State of Charge),防止電池過(guò)充過(guò)放,從而達(dá)到提升電池使用性能和壽命,提高混合動(dòng)力汽
車的可靠性和安全性的目的。
本設(shè)計(jì)主要實(shí)現(xiàn)數(shù)據(jù)采集、電池狀態(tài)計(jì)算、均衡控制、熱管理、各種通信以及故障診斷
等功能。
1 電池管理系統(tǒng)硬件組成
電池管理系統(tǒng)電路由電源模塊、DSP 芯片TMS320LF2407A[1](簡(jiǎn)稱為“LF2407”)、基
于多個(gè)OZ890[2]的數(shù)據(jù)采集模塊、I2C[3]通信模塊、SCI 通信模塊、CAN 通信模塊組成。系
統(tǒng)硬件框圖如圖1 所示。
1.1 電源模塊
整車提供的電源為+12V,管理系統(tǒng)需要的電壓包括:+3.3V(DSP,隔離電路用)、+5V(總
線驅(qū)動(dòng)等芯片用)、±15V(電流傳感器),可以通過(guò)DC-DC 轉(zhuǎn)換得到,這樣不但可以滿足各
個(gè)芯片的供電要求而且可以起到隔離抗干擾的作用。
1.2 數(shù)據(jù)采集模塊
由DSP 完成總電壓、電流及溫度的采集。電池單體電壓的采集和均衡由OZ890 芯片完
成,并利用I2C 總線發(fā)給DSP,本模塊電路主要包括前端采集處理和均衡電路。
1.3 I2C 通信模塊
OZ890 采樣模塊將采集處理后的數(shù)據(jù)通過(guò)I2C 總線發(fā)送到LF2407,由于LF2407 自身不
帶I2C 接口,本設(shè)計(jì)利用PCA9564[4]擴(kuò)展其I2C 接口。為了防止電磁干擾影響I2C 總線上數(shù)
據(jù)的傳輸,必須對(duì)總線信號(hào)進(jìn)行隔離,考慮到I2C 總線是雙向傳輸?shù)?,使用ADuM1250[5]
雙向隔離芯片進(jìn)行隔離。PCA9564 及雙向隔離電路如圖2 所示。
圖2 PCA9564 及雙向隔離電路
PCA9564 是I2C 總線擴(kuò)展器,與LF2407 的GPIO 口相連,它支持主從模式的數(shù)據(jù)收發(fā),
在BMS 中設(shè)定LF2407 為主器件,OZ890 位從器件。LF2407 通過(guò)讀寫(xiě)PCA9564 內(nèi)部四個(gè)
寄存器的內(nèi)容來(lái)與OZ890 通信。
ADuM1250 是熱插拔數(shù)字隔離器,包含與I2C 接口兼容的非閂鎖、雙向通信通道。這樣
就不需要將I2C 信號(hào)分成發(fā)送信號(hào)與接收信號(hào)供單獨(dú)的光電耦合器使用。
1.4 串口通信模塊
電池管理系統(tǒng)將采集處理后的數(shù)據(jù)通過(guò)串口發(fā)送到PC 機(jī)界面上,實(shí)現(xiàn)人機(jī)交互。通過(guò)
串口界面,可以觀察到電池的總電壓、單體電壓、電流、SOC、故障狀態(tài)、充放電功率等參
數(shù),還可以通過(guò)串口發(fā)送實(shí)現(xiàn)管理系統(tǒng)的在線標(biāo)定。其硬件電路主要基于MAX232 芯片,如圖3a)所示。
圖3 串口通信接口電路
MAX232 是+5V 電源的收發(fā)器,與計(jì)算機(jī)串口連接,實(shí)現(xiàn)RS-232 接口信號(hào)和TTL 信號(hào)
的電平轉(zhuǎn)換,使BMS 和PC 機(jī)能夠進(jìn)行異步串行通訊。
為了防止電磁干擾影響串口上數(shù)據(jù)的傳輸,必須對(duì)總線信號(hào)進(jìn)行隔離。串口是單向傳輸,
所以利用6N137 光電耦合較為方便,圖3b)所示為232TXD 信號(hào)光耦隔離電路。
1.5 CAN 通信模塊
CAN 通信是架接電池管理系統(tǒng)(BMS)與整車HCU 之間的信息橋梁,BMS 將電池的狀
態(tài)參數(shù)通過(guò)CAN 總線發(fā)給HCU,HCU 通過(guò)判斷當(dāng)前的電池狀態(tài)來(lái)做出決策,分配電機(jī)和
發(fā)動(dòng)機(jī)之間的功率,控制電池的充放電。同時(shí)BMS 還可以接收HCU 發(fā)來(lái)的相關(guān)命令,做
出相應(yīng)的處理。其硬件方面主要是通過(guò)PCA82C250 通用CAN 收發(fā)器來(lái)提供對(duì)總線數(shù)據(jù)的
差動(dòng)發(fā)送能力和對(duì)通信總線數(shù)據(jù)的差動(dòng)接收能力。通過(guò)類似于圖3b)的光耦隔離電路來(lái)加
強(qiáng)CAN 總線上的抗干擾能力。其硬件電路由圖4 所示。
圖4 CAN 通信接口電路
在電路中可根據(jù)整車要求,是否接入120Ω 的終端電阻,當(dāng)JP201 跳線接1 腳和2 腳時(shí),
不接入電阻,當(dāng)接2 腳和3 腳時(shí),電阻接入。
2 電池管理系統(tǒng)的軟件設(shè)計(jì)
電池管理系統(tǒng)軟件[6]系統(tǒng)包括6 個(gè)任務(wù)和5 個(gè)中斷。6 個(gè)任務(wù)包括:AD 轉(zhuǎn)換處理任務(wù)
(包括讀取OZ890 中的數(shù)據(jù))、CAN 接收任務(wù)、CAN 發(fā)送任務(wù)、SOC 計(jì)算任務(wù)、系統(tǒng)監(jiān)視
故障診斷任務(wù)和串口發(fā)送任務(wù)。5 個(gè)中斷包括:AD 采集中斷服務(wù)子程序、Timer1 下溢中斷
服務(wù)子程序、周期中斷子程序、CAN 總線接收中斷服務(wù)子程序和串口接收中斷服務(wù)子程序,
如下面的中斷向量表所示:
.ref _c_int0
.ref _ADC, _INT2, _INT5
.sect ".vectors"
rset: B _c_int0;00h reset
int1: B ADC ;02h ADC
int2: B _INT2 ;04h 周期、下溢中斷
int3: B int3 ;06h INT3
int4: B int4 ;08h INT4
int5: B _INT5 ;0Ah CAN, SCI
int6: B int6 ;0Ch INT6
根據(jù)整車控制策略,CAN 上電池狀態(tài)數(shù)據(jù)每幀的刷新周期為10ms,故設(shè)置周期中斷的
時(shí)鐘節(jié)拍為10ms;相應(yīng)地設(shè)置以上幾個(gè)任務(wù)的執(zhí)行周期均為10ms。
圖5 周期時(shí)鐘節(jié)拍圖
從圖5 中可以看出,系統(tǒng)初始化完成以后,Time1 開(kāi)始計(jì)時(shí),當(dāng)達(dá)到5ms 時(shí),在A 點(diǎn)
發(fā)生周期中斷,然后進(jìn)入周期中斷子程序,啟動(dòng)AD 轉(zhuǎn)換,通過(guò)I2C 總線讀取OZ890 中的
數(shù)據(jù)。AD 轉(zhuǎn)換完畢后,軟件觸發(fā)ADC 中斷保存數(shù)據(jù)并進(jìn)行相應(yīng)的處理,清除周期中斷標(biāo)
志。當(dāng)達(dá)到10ms 時(shí),發(fā)生下溢中斷,進(jìn)入下溢中斷服務(wù)子程序,執(zhí)行CAN 發(fā)送任務(wù)、SOC
計(jì)算任務(wù)、系統(tǒng)監(jiān)視故障診斷任務(wù)、串口發(fā)送任務(wù)。另外,CAN 接收和串口接收?qǐng)?zhí)行采用
中斷觸發(fā)方式。利用周期中斷和下溢中斷來(lái)劃分任務(wù)執(zhí)行時(shí)間區(qū)域不僅能夠滿足整車10ms
每幀數(shù)據(jù)的CAN 發(fā)送要求,而且每一個(gè)任務(wù)時(shí)間也都能通過(guò)計(jì)數(shù)器和標(biāo)志位的狀態(tài)來(lái)計(jì)算
任務(wù)的執(zhí)行時(shí)間,以便更好的分配任務(wù)的執(zhí)行時(shí)間段。
3 結(jié)論
電池管理系統(tǒng)采用了DSP+OZ890 的結(jié)構(gòu),加之相應(yīng)的抗干擾措施,具有高性能、低成
本等特點(diǎn)。由于采用了專門(mén)的電池采樣芯片OZ890,提高了采樣精度、解決了電池單體電
壓不均衡造成的過(guò)充問(wèn)題。同時(shí)使硬件的開(kāi)發(fā)周期大大縮短,增強(qiáng)了系統(tǒng)的可靠性和可維護(hù)
性,在實(shí)際應(yīng)用中取得了良好的效果。
本文作者創(chuàng)新點(diǎn):使用OZ890 電池采樣芯片測(cè)量電池?cái)?shù)據(jù),同時(shí)使用PCA9564 擴(kuò)展
LF2407 的I2C 接口,實(shí)現(xiàn)了LF2407 與OZ890 之間的通信。