【導(dǎo)讀】電池管理系統(tǒng)電路由電源模塊、DSP芯片 TMS320LF2407A(簡稱“LF2407”)、基于多個OZ890的數(shù)據(jù)采集模塊、I2C通信模塊、SCI 通信模塊、CAN通信模塊組成。本設(shè)計主要實現(xiàn)數(shù)據(jù)采集、電池狀態(tài)計算、均衡控制、熱管理、各種通信以及故障診斷等功能。
本設(shè)計主要實現(xiàn)數(shù)據(jù)采集、電池狀態(tài)計算、均衡控制、熱管理、各種通信以及故障診斷等功能。
圖1:系統(tǒng)硬件組成框圖
1、電源模塊
整車提供的電源為+12V,管理系統(tǒng)需要的電壓包括:+3.3V(DSP,隔離電路用)、+5V(總線驅(qū)動等芯片用)、±15V(電流傳感器),可以通過DC-DC 轉(zhuǎn)換得到,這樣不但可以滿足各個芯片的供電要求而且可以起到隔離抗干擾的作用。
2、數(shù)據(jù)采集模塊
由DSP 完成總電壓、電流及溫度的采集。電池單體電壓的采集和均衡由OZ890 芯片完成,并利用I2C 總線發(fā)給DSP,本模塊電路主要包括前端采集處理和均衡電路。
3、I2C 通信模塊
OZ89采樣模塊將采集處理后的數(shù)據(jù)通過I2C總線發(fā)送到LF2407,由于LF2407自身不帶I2C 接口,本設(shè)計利用PCA9564擴(kuò)展其I2C接口。為了防止電磁干擾影響I2C總線上數(shù)據(jù)的傳輸,必須對總線信號進(jìn)行隔離,考慮到I2C 總線是雙向傳輸?shù)?,使用ADuM1250雙向隔離芯片進(jìn)行隔離。PCA9564及雙向隔離電路如圖2所示。
圖2:PCA9564 及雙向隔離電路
PCA9564 是I2C 總線擴(kuò)展器,與LF2407 的GPIO 口相連,它支持主從模式的數(shù)據(jù)收發(fā),在BMS中設(shè)定LF2407為主器件,OZ890位從器件。LF2407通過讀寫PCA9564內(nèi)部四個寄存器的內(nèi)容來與OZ890 信。
ADuM1250是熱插拔數(shù)字隔離器,包含與I2C接口兼容的非閂鎖、雙向通信通道。這樣就不需要將I2C信號分成發(fā)送信號與接收信號供單獨的光電耦合器使用。
[page]
4、串口通信模塊
電池管理系統(tǒng)將采集處理后的數(shù)據(jù)通過串口發(fā)送到PC機(jī)界面上,實現(xiàn)人機(jī)交互。通過串口界面,可以觀察到電池的總電壓、單體電壓、電流、SOC、故障狀態(tài)、充放電功率等參數(shù),還可以通過串口發(fā)送實現(xiàn)管理系統(tǒng)的在線標(biāo)定。其硬件電路主要基于MAX232芯片,如圖3a)所示。
圖3:串口通信接口電路
MAX232 是+5V電源的收發(fā)器,與計算機(jī)串口連接,實現(xiàn)RS-232接口信號和TTL 信號的電平轉(zhuǎn)換,使BMS 和PC 機(jī)能夠進(jìn)行異步串行通訊。為了防止電磁干擾影響串口上數(shù)據(jù)的傳輸,必須對總線信號進(jìn)行隔離。串口是單向傳輸,所以利用6N137光電耦合較為方便,圖 3b)所示為232TXD 信號光耦隔離電路。
5、CAN通信模塊
CAN通信是架接電池管理系統(tǒng)(BMS)與整車HCU 之間的信息橋梁,BMS將電池的狀態(tài)參數(shù)通過CAN總線發(fā)給HCU,HCU 通過判斷當(dāng)前的電池狀態(tài)來做出決策,分配電機(jī)和發(fā)動機(jī)之間的功率,控制電池的充放電。同時BMS還可以接收HCU 發(fā)來的相關(guān)命令,做出相應(yīng)的處理。其硬件方面主要是通過PCA82C250通用CAN收發(fā)器來提供對總線數(shù)據(jù)的差動發(fā)送能力和對通信總線數(shù)據(jù)的差動接收能 力。通過類似于圖3b)的光耦隔離電路來加強(qiáng)CAN 總線上的抗干擾能力。其硬件電路由圖4 所示。
圖4:CAN通信接口電路
在電路中可根據(jù)整車要求,是否接入120Ω的終端電阻,當(dāng)JP201跳線接1腳和2腳時,不接入電阻,當(dāng)接2腳和3腳時,電阻接入。
根據(jù)整車控制策略,CAN 上電池狀態(tài)數(shù)據(jù)每幀的刷新周期為10ms,故設(shè)置周期中斷的時鐘節(jié)拍為10ms;相應(yīng)地設(shè)置以上幾個任務(wù)的執(zhí)行周期均為10ms。
圖5:周期時鐘節(jié)拍圖
從圖5中可以看出,系統(tǒng)初始化完成以后,Time1 開始計時,當(dāng)達(dá)到5ms 時,在A 點發(fā)生周期中斷,然后進(jìn)入周期中斷子程序,啟動AD 轉(zhuǎn)換,通過I2C 總線讀取OZ890 中的數(shù)據(jù)。AD 轉(zhuǎn)換完畢后,軟件觸發(fā)ADC 中斷保存數(shù)據(jù)并進(jìn)行相應(yīng)的處理,清除周期中斷標(biāo)志。當(dāng)達(dá)到10ms時,發(fā)生下溢中斷,進(jìn)入下溢中斷服務(wù)子程序,執(zhí)行CAN 發(fā)送任務(wù)、SOC計算任務(wù)、系統(tǒng)監(jiān)視故障診斷任務(wù)、串口發(fā)送任務(wù)。另外,CAN 接收和串口接收執(zhí)行采用中斷觸發(fā)方式。利用周期中斷和下溢中斷來劃分任務(wù)執(zhí)行時間區(qū)域不僅能夠滿足整車10ms。
每幀數(shù)據(jù)的CAN發(fā)送要求,而且每一個任務(wù)時間也都能通過計數(shù)器和標(biāo)志位的狀態(tài)來計算任務(wù)的執(zhí)行時間,以便更好的分配任務(wù)的執(zhí)行時間段。