鉅大LARGE | 點擊量:828次 | 2020年06月29日
基于DSP和OZ890構成的電池管理系統設計方法
本設計重要實現數據采集、電池狀態計算、均衡控制、熱管理、各種通信以及故障診斷等功能。
電池管理系統硬件組成
電池管理系統電路由電源模塊、DSp芯片TMS320LF2407A(簡稱為“LF2407”)、基于多個OZ890的數據采集模塊、I2C通信模塊、SCI通信模塊、CAN通信模塊組成。系統硬件框圖如圖1所示。
圖1系統硬件組成框圖
1、電源模塊
整車供應的電源為+12V,管理系統要的電壓包括:+3.3V(DSp,隔離電路用)、+5V(總線驅動等芯片用)、±15V(電流傳感器),可以通過DC-DC轉換得到,這樣不但可以滿足各個芯片的供電要求而且可以起到隔離抗干擾的用途。
2、數據采集模塊
由DSp完成總電壓、電流及溫度的采集。電池單體電壓的采集和均衡由OZ890芯片完成,并利用I2C總線發給DSp,本模塊電路重要包括前端采集處理和均衡電路。
3、I2C通信模塊
OZ890采樣模塊將采集處理后的數據通過I2C總線發送到LF2407,由于LF2407自身不帶I2C接口,本設計利用pCA9564[4]擴展其I2C接口。為了防止電磁干擾影響I2C總線上數據的傳輸,必須對總線信號進行隔離,考慮到I2C總線是雙向傳輸的,使用ADuM1250雙向隔離芯片進行隔離。pCA9564及雙向隔離電路如圖2所示。
圖2pCA9564及雙向隔離電路
pCA9564是I2C總線擴展器,與LF2407的GpIO口相連,它支持主從模式的數據收發,在BMS中設定LF2407為主器件,OZ890位從器件。LF2407通過讀寫pCA9564內部四個寄存器的內容來與OZ890通信。
ADuM1250是熱插拔數字隔離器,包含與I2C接口兼容的非閂鎖、雙向通信通道。這樣就不要將I2C信號分成發送信號與接收信號供單獨的光電耦合器使用。
4、串口通信模塊
電池管理系統將采集處理后的數據通過串口發送到pC機界面上,實現人機交互。通過串口界面,可以觀察到電池的總電壓、單體電壓、電流、SOC、故障狀態、充放電功率等參數,還可以通過串口發送實現管理系統的在線標定。其硬件電路重要基于MAX232芯片,如圖3a)所示。
圖3串口通信接口電路
MAX232是+5V電源的收發器,與計算機串口連接,實現RS-232接口信號和TTL信號的電平轉換,使BMS和pC機能夠進行異步串行通訊。為了防止電磁干擾影響串口上數據的傳輸,必須對總線信號進行隔離。串口是單向傳輸,所以利用6N137光電耦合較為方便,圖3b)所示為232TXD信號光耦隔離電路。
5、CAN通信模塊
CAN通信是架接電池管理系統(BMS)與整車HCU之間的信息橋梁,BMS將電池的狀態參數通過CAN總線發給HCU,HCU通過判斷當前的電池狀態來做出決策,分配電機和發動機之間的功率,控制電池的充放電。同時BMS還可以接收HCU發來的相關命令,做出相應的處理。其硬件方面重要是通過pCA82C250通用CAN收發器來供應對總線數據的差動發送能力和對通信總線數據的差動接收能力。通過類似于圖3b)的光耦隔離電路來加強CAN總線上的抗干擾能力。其硬件電路由圖4所示。
圖4CAN通信接口電路
在電路中可根據整車要求,是否接入120Ω的終端電阻,當Jp201跳線接1腳和2腳時,不接入電阻,當接2腳和3腳時,電阻接入。
電池管理系統的軟件設計
電池管理系統軟件系統包括6個任務和5個中斷。6個任務包括:AD轉換處理任務(包括讀取OZ890中的數據)、CAN接收任務、CAN發送任務、SOC計算任務、系統監視故障診斷任務和串口發送任務。5個中斷包括:AD采集中斷服務子程序、Timer1下溢中斷服務子程序、周期中斷子程序、CAN總線接收中斷服務子程序和串口接收中斷服務子程序,如下面的中斷向量表所示:
.ref_c_int0
.ref_ADC;_INT2;_INT5
.sect".vectors"
rset:B_c_int0;00hreset
int1:BADC;02hADC
int2:B_INT2;04h周期、下溢中斷
int3:Bint3;06hINT3
int4:Bint4;08hINT4
int5:B_INT5;0AhCAN,SCI
int6:Bint6;0ChINT6
根據整車控制策略,CAN上電池狀態數據每幀的刷新周期為10ms,故設置周期中斷的時鐘節拍為10ms;相應地設置以上幾個任務的執行周期均為10ms。
圖5周期時鐘節拍圖
從圖5中可以看出,系統初始化完成以后,Time1開始計時,當達到5ms時,在A點發生周期中斷,然后進入周期中斷子程序,啟動AD轉換,通過I2C總線讀取OZ890中的數據。AD轉換完畢后,軟件觸發ADC中斷保存數據并進行相應的處理,清除周期中斷標志。當達到10ms時,發生下溢中斷,進入下溢中斷服務子程序,執行CAN發送任務、SOC計算任務、系統監視故障診斷任務、串口發送任務。另外,CAN接收和串口接收執行采用中斷觸發方式。利用周期中斷和下溢中斷來劃分任務執行時間區域不僅能夠滿足整車10ms
每幀數據的CAN發送要求,而且每一個任務時間也都能通過計數器和標志位的狀態來計算任務的執行時間,以便更好的分配任務的執行時間段。
結論
電池管理系統采用了DSp+OZ890的結構,加之相應的抗干擾措施,具有高性能、低成本等特點。由于采用了專門的電池采樣芯片OZ890,提高了采樣精度、解決了電池單體電壓不均衡造成的過充問題。同時使硬件的開發周期大大縮短,增強了系統的可靠性和可維護性,在實際應用中取得了良好的效果。
使用OZ890電池采樣芯片測量電池數據,同時使用pCA9564擴展LF2407的I2C接口,實現了LF2407與OZ890之間的通信。