DSP和OZ890的電池管理系統(tǒng)設計
本設計主要實現數據采集、電池狀態(tài)計算、均衡控制、熱管理、各種通信以及故障診斷等功能。
本文引用地址:http://butianyuan.cn/article/257697.htm1 電池管理系統(tǒng)硬件組成
電池管理系統(tǒng)電路由電源模塊、DSP 芯片TMS320LF2407A[1](簡稱為“LF2407”)、基于多個OZ890[2]的數據采集模塊、I2C[3]通信模塊、SCI 通信模塊、CAN 通信模塊組成。系統(tǒng)硬件框圖如圖1 所示。
1.1 電源模塊
整車提供的電源為+12V,管理系統(tǒng)需要的電壓包括:+3.3V(DSP,隔離電路用)、+5V(總線驅動等芯片用)、±15V(電流傳感器),可以通過DC-DC 轉換得到,這樣不但可以滿足各個芯片的供電要求而且可以起到隔離抗干擾的作用。
1.2 數據采集模塊
由DSP 完成總電壓、電流及溫度的采集。電池單體電壓的采集和均衡由OZ890 芯片完成,并利用I2C 總線發(fā)給DSP,本模塊電路主要包括前端采集處理和均衡電路。
1.3 I2C 通信模塊
OZ890 采樣模塊將采集處理后的數據通過I2C 總線發(fā)送到LF2407,由于LF2407 自身不帶I2C 接口,本設計利用PCA9564[4]擴展其I2C 接口。為了防止電磁干擾影響I2C 總線上數據的傳輸,必須對總線信號進行隔離,考慮到I2C 總線是雙向傳輸的,使用ADuM1250雙向隔離芯片進行隔離。PCA9564 及雙向隔離電路如圖2 所示。
圖2 PCA9564 及雙向隔離電路
PCA9564 是I2C 總線擴展器,與LF2407 的GPIO 口相連,它支持主從模式的數據收發(fā),在BMS 中設定LF2407 為主器件,OZ890 位從器件。LF2407 通過讀寫PCA9564 內部四個寄存器的內容來與OZ890 通信。
ADuM1250 是熱插拔數字隔離器,包含與I2C 接口兼容的非閂鎖、雙向通信通道。這樣就不需要將I2C 信號分成發(fā)送信號與接收信號供單獨的光電耦合器使用。
1.4 串口通信模塊
電池管理系統(tǒng)將采集處理后的數據通過串口發(fā)送到PC 機界面上,實現人機交互。通過串口界面,可以觀察到電池的總電壓、單體電壓、電流、SOC、故障狀態(tài)、充放電功率等參數,還可以通過串口發(fā)送實現管理系統(tǒng)的在線標定。其硬件電路主要基于MAX232 芯片,如圖3a)所示。
圖3 串口通信接口電路
MAX232 是+5V 電源的收發(fā)器,與計算機串口連接,實現RS-232 接口信號和TTL 信號
的電平轉換,使BMS 和PC 機能夠進行異步串行通訊。為了防止電磁干擾影響串口上數據的傳輸,必須對總線信號進行隔離。串口是單向傳輸,所以利用6N137 光電耦合較為方便,圖3b)所示為232TXD 信號光耦隔離電路。
1.5 CAN 通信模塊
CAN 通信是架接電池管理系統(tǒng)(BMS)與整車HCU 之間的信息橋梁,BMS 將電池的狀態(tài)參數通過CAN 總線發(fā)給HCU,HCU 通過判斷當前的電池狀態(tài)來做出決策,分配電機和發(fā)動機之間的功率,控制電池的充放電。同時BMS 還可以接收HCU 發(fā)來的相關命令,做出相應的處理。其硬件方面主要是通過PCA82C250 通用CAN 收發(fā)器來提供對總線數據的差動發(fā)送能力和對通信總線數據的差動接收能力。通過類似于圖3b)的光耦隔離電路來加強CAN 總線上的抗干擾能力。其硬件電路由圖4 所示。
圖4 CAN 通信接口電路
在電路中可根據整車要求,是否接入120Ω 的終端電阻,當JP201 跳線接1 腳和2 腳時,不接入電阻,當接2 腳和3 腳時,電阻接入。
2 電池管理系統(tǒng)的軟件設計
電池管理系統(tǒng)軟件[6]系統(tǒng)包括6 個任務和5 個中斷。6 個任務包括:AD 轉換處理任務(包括讀取OZ890 中的數據)、CAN 接收任務、CAN 發(fā)送任務、SOC 計算任務、系統(tǒng)監(jiān)視故障診斷任務和串口發(fā)送任務。5 個中斷包括:AD 采集中斷服務子程序、Timer1 下溢中斷服務子程序、周期中斷子程序、CAN 總線接收中斷服務子程序和串口接收中斷服務子程序,如下面的中斷向量表所示:
.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
根據整車控制策略,CAN 上電池狀態(tài)數據每幀的刷新周期為10ms,故設置周期中斷的時鐘節(jié)拍為10ms;相應地設置以上幾個任務的執(zhí)行周期均為10ms。
圖5 周期時鐘節(jié)拍圖
從圖5 中可以看出,系統(tǒng)初始化完成以后,Time1 開始計時,當達到5ms 時,在A 點發(fā)生周期中斷,然后進入周期中斷子程序,啟動AD 轉換,通過I2C 總線讀取OZ890 中的數據。AD 轉換完畢后,軟件觸發(fā)ADC 中斷保存數據并進行相應的處理,清除周期中斷標志。當達到10ms 時,發(fā)生下溢中斷,進入下溢中斷服務子程序,執(zhí)行CAN 發(fā)送任務、SOC計算任務、系統(tǒng)監(jiān)視故障診斷任務、串口發(fā)送任務。另外,CAN 接收和串口接收執(zhí)行采用中斷觸發(fā)方式。利用周期中斷和下溢中斷來劃分任務執(zhí)行時間區(qū)域不僅能夠滿足整車10ms
每幀數據的CAN 發(fā)送要求,而且每一個任務時間也都能通過計數器和標志位的狀態(tài)來計算任務的執(zhí)行時間,以便更好的分配任務的執(zhí)行時間段。
3 結論
電池管理系統(tǒng)采用了DSP+OZ890 的結構,加之相應的抗干擾措施,具有高性能、低成本等特點。由于采用了專門的電池采樣芯片OZ890,提高了采樣精度、解決了電池單體電壓不均衡造成的過充問題。同時使硬件的開發(fā)周期大大縮短,增強了系統(tǒng)的可靠性和可維護性,在實際應用中取得了良好的效果。
本文作者創(chuàng)新點:使用OZ890 電池采樣芯片測量電池數據,同時使用PCA9564 擴展LF2407 的I2C 接口,實現了LF2407 與OZ890 之間的通信。
作者:王濤 齊鉑金 吳紅杰 李偉
評論