基于STM32和CAN總線(xiàn)的電動(dòng)車(chē)電池管理系統設計
摘要 根據當今電池管理系統的現狀,結合目前ARM、單片機、總線(xiàn)技術(shù)等的發(fā)展,針對一種鋰離子動(dòng)力電池組的監測管理提出了具體方案,設計主控板以STM32F107為核心,子控版以C8051F500單片機為核心,通過(guò)CAN網(wǎng)絡(luò )進(jìn)行通信管理,實(shí)現了電池充放電保護、抑制電池間的不一致性、記錄歷史數據等功能。系統兼顧成本,穩定性,精確度,實(shí)時(shí)性,具有良好的發(fā)展前景。
本文引用地址:http://dyxdggzs.com/article/246894.htm隨著(zhù)電池能源的廣泛應用,石油資源的枯竭和環(huán)境污染,電動(dòng)汽車(chē)以其節能環(huán)保的優(yōu)勢引起越來(lái)越多的重視,在電動(dòng)汽車(chē)的研究和發(fā)展上,車(chē)載電池及其管理系統的研究與制造占據著(zhù)重要位置。電動(dòng)汽車(chē)動(dòng)力電池在應用中的主要問(wèn)題表現在:生產(chǎn)過(guò)程中,電池的工藝,技術(shù)以及成組技術(shù)還不能保證其初始性能具有良好的一致性;使用過(guò)程中,對過(guò)充電、過(guò)放電、過(guò)溫度、過(guò)電流等非常敏感,這類(lèi)情況的發(fā)生會(huì )明顯縮短電池壽命,甚至會(huì )導致電池報廢。電池組是幾十個(gè)甚至上百個(gè)單體電池串聯(lián),單體電池之間存在不一致性,隨著(zhù)連續的充放電循環(huán),電池間的不一致性加劇,電池組的可用容量受容量最小的單體電池制約。對于這些情況,電池的初始性能必須要依靠企業(yè)生產(chǎn)工藝的優(yōu)化,生產(chǎn)過(guò)程關(guān)鍵參數的控制來(lái)改善,而使用過(guò)程中出現的問(wèn)題則需要電池管理系統來(lái)解決。本設計是以STM32F107為核心的主控制器通過(guò)CAN通信網(wǎng)絡(luò )控制以C8051F500單片機為核心的電池組信息采集和基本控制模塊工作及獲取數據。主要實(shí)現了單體電池的過(guò)壓放電均衡,過(guò)流保護、過(guò)溫保護、過(guò)放電保護以及通過(guò)上級控制器匯報并存儲整體電池組的工作狀態(tài)。
1 硬件設計
1.1 系統總體架構
系統所監控管理的電池包組成結構為:先將一定數目的鋰離子電池串聯(lián),將若干電池串并聯(lián)成一電池組,最后將若干電池組串聯(lián)構成整體的電池包,這種串并聯(lián)復用的組織形式有利于進(jìn)行單串電池的充放電起停操作,降低使用過(guò)程中產(chǎn)生的電池容量不一致性。管理系統的構成如圖所示,每個(gè)電池串配置一個(gè)二級控制器監測管理,采集電流、電壓、溫度等數據并上傳,控制電池串起停與均衡操作,一級控制器為雙CAN控制器結構,CAN1控制器與二級控制器組成電池組的CAN網(wǎng)絡(luò ),CAN2控制器與主控板電池包組成內部一級CAN總線(xiàn)網(wǎng)絡(luò ),負責向主控板匯報該電池組工作情況及向下屬二級控制器傳達指令,主控制板的CAN2控制器則接入整車(chē)CAN總線(xiàn)。由于各電池組為串聯(lián)結構,電壓的遞增關(guān)系影響到二級控制器,故而供電時(shí)需經(jīng)DC/DC轉換。

1.2 主控制器、一級控制器架構
主控制器,一級控制器的核心控制由意法半導體的STFM32F107完成,STM32F107是一款高性能、低成本、低功耗的32位RISC微處理器,采用ARMCortex-M3的內核,內部含有256 kB的Flash和64 kB的SRAM,有著(zhù)充足的編程空間,主頻為72 MHz,足以承擔對下級控制器的實(shí)時(shí)管理。所包含外設有:基本的電源電路、復位電路、標準JTAG調試口、雙CAN物理層電路、EEPROM存儲器,對于本系統設計來(lái)說(shuō)是最佳方案。
1.3 二級控制器架構
由于鋰離子電池單體電壓較小,一般約為4 V,而整體電池包電壓則高達數百伏,單串電池長(cháng)度也在15個(gè)以上,而目前常用的電池測量芯片成本較高且只能監測6節或12節電池電壓,綜合考慮決定以C8051F500為核心設計二級控制器,這種設計相較于專(zhuān)用電池測量芯片而言,缺點(diǎn)是精度較低,優(yōu)點(diǎn)是可以對所測量的數據先進(jìn)行計算處理,不完全依賴(lài)上級控制器的指令。
C8051FS00處理器按AEC-Q100測試標準設計,具有寬工作電壓、寬工作溫度范圍、抗干擾能力強并內置CAN及LIN總線(xiàn)控制器,適合汽車(chē)電子及工業(yè)控制方面的應用。該芯片具有32路I/O口,接口數滿(mǎn)足監控電池串工作的需要,具有12 bit的ADC,每個(gè)通道的最小建立時(shí)間<50μs即巡檢一個(gè)循環(huán)的總時(shí)間<1 ms,足以支持對于電池串的實(shí)時(shí)監控,控制器架構如圖2所示。

其中帶隔離驅動(dòng)的CAN總線(xiàn)物理層電路如圖3所示,此外還有DC/DC電源,C2在線(xiàn)調試接口等外部設備。

2 軟件設計
2.1 二級控制器軟件流程
(1)系數修正程序。因為電池總數極多,為降低系統的成產(chǎn)成本和占用空間,電壓測量采用較為簡(jiǎn)單的電阻分壓,電流測量則采用電阻采樣法,為彌補電阻造成的誤差,預置了修正系數的程序,每塊電路板投入使用前,可先在所有電壓測量端口接5 V標準電壓,采樣電阻兩端通10 A標準電流。程序可自動(dòng)根據所測值修改系數,提高工作精確度。
(2)軟件流程。如圖4所示,程序開(kāi)始運行時(shí),首先對C8051FS00內部的系統時(shí)鐘以及一些變量進(jìn)行初始化,然后對各I/O口、定時(shí)器、中斷、ADC工作方式及CAN總線(xiàn)工作方式初始化,接著(zhù)根據測量電流的兩個(gè)I/O數據判斷電池組目前是充電還是放電,以選取不同的控制方案,繼而檢測是否有一級控制器發(fā)出的指令,若有則執行指令,否則ADC將巡檢各I/O的輸入電壓,程序通過(guò)預存的系數將其還原為各電池的端電壓,電池串的電流和溫度。最后計算各電池的SOC,考慮C8051F500的運算能力,采用精確度和運算復雜度都較為中等的安時(shí)積分法,并根據溫度,電壓,電壓-時(shí)間梯度等量加以修正。與此同時(shí),實(shí)時(shí)上報總電壓、電流、溫度和總SOC共4個(gè)參數給一級控制器,充電時(shí)如果有單節電池電壓過(guò)高,則開(kāi)啟相對應的MOS管,以均衡充電。出現過(guò)溫,過(guò)流或達到放電終點(diǎn)時(shí),斷開(kāi)該串電池,并將斷開(kāi)時(shí)的所有數據均上報一級控制器,否則主程序繼續判斷是否有指令,循環(huán)上述過(guò)程。

評論