基于DSP和OZ890 的電池管理系統(tǒng)設(shè)計(jì)
在電路中可根據(jù)整車(chē)要求,是否接入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本文引用地址:http://m.butianyuan.cn/article/197471.htm
.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ù)整車(chē)控制策略,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ū)域不僅能夠滿足整車(chē)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)。由于采用了專(zhuā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 之間的通信。
評(píng)論