文/劉懿霄
本系統的軟件是在MDK 平臺下實現的。MDK 軟件是德國的KEIL 公司生產的,它的全稱是RealView MDK。這個軟件主要針對ARM 處理器,是Cortex M 內核處理器最好的開發工具選擇。MDK 軟件目前的最新版本是MDK5.10。MDK 軟件由兩大部分組成:MDK Core 和Software Packs。
電池管理系統的主程序設計主要包括電流和環境溫度的采集、電壓的采集,還要進行SOC 估算、電池均衡、數據存儲等功能,然后使用SPI 與采集板通信,使用串口與上位機通信。
同時,系統還需要初始化。
首先,需要考慮的是基于LTC6804 的工作流程。LTC6804 在采集板上電后需要對其進行初始化,初始化的內容主要包括配置寄存器組,配置主要包括設置過壓和欠壓的限定,哪節電池需要進行放電等。配置結束以后可以開始測量電池的電壓,還要讀取狀態寄存器組。芯片LTC6804 總共有2 個狀態寄存器組,這兩個狀態寄存器的主要作用是存放總的測量電壓、芯片的溫度、過壓的電池和欠壓的電池的標記。采集板主程序設計流程圖如圖1所示。
電壓采集和均衡是通過LTC6804 來完成的。電壓的采集是通過芯片LTC6804 的C 端口來實現的,電壓的均衡是通過控制S 均衡驅動端口的開閉來控制均衡電路。

圖1:采集板程序流程圖

圖2:電壓均衡控制流程圖

圖3:溫度采集流程圖

圖4:溫度調節子程序
為了實現系統的均衡,本文設置了一個中值參考電壓。該電壓定義為Δ U0,把這個電壓值和最大電壓電池與最小電壓電池的差值Δ U對比,從而得出是否需要均衡的結論。當得出需要均衡的結論時,S 引腳驅動MOS 管的柵極,控制均衡電路,實現系統的均衡調節。電壓均衡管理流程圖如圖2所示。
溫度的采集是溫度傳感器DS18B20 完成的,溫度信息采集后,需要對溫度信息進行判斷,溫度是否異常,系統是否需要進行溫度調控,溫度的采集流程圖如圖3所示。溫度需要調控的情況主要有兩種:
(1)電池的溫度過高,電池溫度大于溫度上限50°;
(2)電池的溫度過低,電池的溫度小于溫度下限0°。
當電池的溫度過高時,過溫信號被傳遞給STM32,根據實際的情況決定是否要進行溫度的調控,從而把溫度降低到合理范圍。當電池溫度過低時,充放電的效率隨著電池溫度的降低而降低,采用同樣的調節流程,從而使電池溫度升高,電池溫度升高到合理范圍。溫度調節的子程序如圖4所示。
上位機監控界面利用的是LabVIEW。LabVIEW 是由美國國家儀器公司(NI)研制并進行開發的。
LabVIEW 的研制和開發是為了幫助科學家進行開發研究,也是為了提高創新能力和技術。LabVIEW 有很多優點:
(1)硬件是普遍使用的,差異在軟件。
(2)計算機的能力可以得到充分地發揮,數據處理能力非常強大,可以在一定程度上創造功能更強大的儀器。
(3)用戶在使用的過程中可以優先考慮自己的需要,然后根據自己的需要定義和制造儀器。
上位機軟件的主要功能有:電池電壓和電流的檢測以及數據讀取并分析等功能。登錄界面和電池管理系統界面組成了上位機的前面板。登錄界面是程序員管理程序設定的,所以已經預先設置了用戶名和密碼,只有在輸入了正確的用戶名和密碼的時候才能跳到電池管理系統界面。
電池管理系統界面主要包括的部分有:串口、參數設置、當前的日期和時間、實時顯示電池的電壓、電流和溫度。參數設置的功能是設置電壓、電流和溫度的上限值與下限值,當電池的電壓、電流和溫度出現問題時,對應的上限和下限的指示燈會由綠變紅來提醒用戶。
BMS 的軟件設計是重點部分,軟件部分控制著硬件部分的操作并且要對采集的數據進行分析來進行控制動作和狀態分析,所以電池管理系統的軟件部分能很好地保證電池管理系統安全穩定地運行。電池管理系統軟件部分的設計需要結合硬件部分的設計以及電池管理系統想要實現的功能,所以,軟件部分的設計需要保障系統能夠實現電壓、電流、溫度等信息的精確采集,實現SOC 估算,同時還要實現均衡等功能。