陳碩穎,鄭敏信,齊鉑金,楊清森
(北京航空航天大學 機械工程及自動化學院,北京 100191)
?
用于電池管理系統的數據存儲系統設計
陳碩穎,鄭敏信,齊鉑金,楊清森
(北京航空航天大學 機械工程及自動化學院,北京 100191)
電池管理系統是電動汽車不可或缺的部分,為了滿足電池管理系統對大量監測數據進行保存的需求,本文設計了應用于電池管理系統的高效數據存儲系統。本系統采用飛思卡爾HCS08系列的MC9S08DZ60單片機和容量為2G的SD卡,可以將電池管理系統采集和生成的海量數據實時地存儲到SD卡中。實驗表明,本系統可自動創建文件并無遺漏地記錄CAN總線上每100 ms發出的數據。
數據存儲;SD卡; FAT16;電池管理系統
電動汽車由于在節能和環保方面的優勢,成為汽車產業發展的主要方向。動力電池組作為一種新能源,是電動汽車的能量源和重要組成部分,而電池管理系統(Battery Management System, BMS)是動力電池和整車之間的橋梁[1]。
電動汽車的電池管理系統的基本功能是采集電池的電壓、電流、溫度等參數,通過對這些信號的處理判斷電池的故障狀態,并進行荷電狀態等的計算。電池管理系統采集到的監控數據根據其不同的處理方式,主要可分為檢測量和診斷量兩類[2]:檢測量包括采集的單體電池的電壓、溫度以及電池包的總電流、總電壓等;診斷量是指由主控模塊對檢測量進行計算處理后獲得的狀態數據,如電池荷電狀態、電池健康狀態、故障碼等。
本文設計的數據存儲系統可以作為電池管理系統中的一個模塊,用于對電池管理系統產生的檢測量和診斷量進行存儲。對這些數據有效的記錄有利于離線分析電池性能、進行電池故障的診斷以及對電池管理系統的優化。
為了滿足數據存儲的要求,硬件電路部分主要由飛思卡爾公司的MC9S08DZ60單片機和SanDisk公司的SD卡組成。通過單片機接收CAN總線上傳輸的數據,然后存儲至SD卡內。電路結構示意圖如圖1所示。

圖1 電路結構示意圖
1.1 單片機選用
HCS08系列單片機兼備高性能和低功耗的特點,選用32引腳的MC9S08DZ60,其優勢在于:片內置8位CPU,總線頻率可達20 MHz,運算速度完全可以滿足SD卡高速讀寫的需求;有60 KB Flash和4 KB RAM,可以滿足高速通信和海量運算的需求;片內串行外圍接口SPI可用于與SD卡之間通信,其高電平為3.3 V,滿足SD卡工作電壓;具有多達32個中斷,包括2個CAN中斷,可以實現BMS與存儲系統之間的高速通信。
1.2 SD讀寫設計
SD卡是一種基于半導體的存儲設備,體積很小但卻擁有高記憶容量、快速數據傳輸率、極大的移動靈活性以及很好的安全性等特點。工作電壓范圍為2.0~3.6 V,可變時鐘頻率為0~25 MHz,并可實現10萬次編程/擦除[3]。


表1 SD卡在SPI模式下引腳定義
注:類型中S為電源;I為輸入;O為推挽輸出;PP為推挽I/O。

圖2 SD卡硬件連接電路
數據存儲系統的軟件程序以數據寫入SD卡的存儲程序為核心,其程序具有層次性,從下往上依次設計為SD卡的硬件驅動、FAT文件系統和BMS對存儲系統的應用。其整體過程流程如圖3所示,其中SD卡的初始化和寫操作以及FAT文件系統的使用將進行重點介紹。

圖3 數據存儲系統整體程序流程
2.1 SD卡的驅動
MC9S08DZ60與SD卡通過SPI通信,MC9S08DZ60發送命令至SD卡后,SD卡會響應返回值,返回值正確則實現操作命令。其中發送的所有CMD命令長度都是6字節,通用的命令格式如表2所列。具體包括起始位“01”和結束位“1”。SPI數據傳輸較穩定,驅動過程中未使用CRC校驗。

表2 CMD命令格式
通過對CMD命令集的調用可實現多種功能,如對SD卡的初始化,對SD卡狀態的讀取以及數據的讀寫和擦除。SD卡的初始化以調用基本命令為主,其流程如圖4所示。

圖4 SD卡初始化流程圖
SD卡以單個塊即512字節進行讀寫,通過發送讀命令CMD17和寫命令CMD24,完成讀寫流程,如圖5所示。相似地,可通過發送多塊讀/寫命令CMD18和CMD25分別對多個數據塊進行讀和寫操作。

圖5 SD卡讀/寫流程圖
2.2 FAT文件系統
FAT文件系統[6]在建立低于32G的FAT文件系統時具有結構簡單、兼容性好等不可忽視的特點。FAT16相比于FAT32,其目錄區大小和偏移地址固定,但16位的FAT區將一個文件的大小限制于2G。由于使用的SD卡自身容量有限,而FAT16的程序編寫更為簡單易行,因而在本設計中采用FAT16文件系統。
若將SD卡格式化為FAT16格式,則根據卡內的地址分為5個區:主引導記錄區MBR、系統引導記錄區DBR、文件配置表FAT1及其備份FAT2、目錄區DIR和DATA數據區。
MBR和DBR定義了卡內數據存儲的基本規則,如簇和各區大小的定義。對于文件的具體信息存放在目錄區DIR,文件內容存放在數據區DATA內。FAT區即對數據區的索引,FAT區為特殊的鏈式結構,對于FAT16系統,每個FAT單元為2字節,分別對應著數據區相同序號的簇,存放內容為未完文件所在的下一簇序號,直到該單元存放0xFFFF,則該簇為文件鏈尾。磁盤結構及FAT16的文件存儲實現示意圖如圖6所示。

圖6 磁盤分區表及FAT16文件系統實例示意圖
FAT文件系統在數據存儲系統中實現的功能為:將寫入SD卡的數據進行文件化處理。通過對目錄區、FAT區和數據區的分別寫入,可完成文件的自動創建和數據的自行保存。其實現過程如圖7所示。

圖7 FAT16文件系統的數據存儲流程圖
電池管理系統采集的數據具有種類多、數據量大、傳輸速率快等特點,部分數據如圖8所示。為了測試本系統存儲BMS數據的性能,本文對CAN總線上兩個主要的報文進行存儲:報文一包括電池總電流、總電壓、平均溫度和SOC等;報文二包括電池模塊的最高電壓/最低電壓、模塊溫度和故障碼等。

圖8 數據樣例
每一條監控數據的存儲格式設定為“時間+報文ID+數據”,即包括3字節的監控時間、4字節的報文ID號以及8個字節的監控數據,整理為ASCII碼后每條數據共30字節。每次寫入一個扇區即512字節的數據,可包括16條接收數據,存儲在文本文件中數據的格式和內容詳見表3。

表3 監控數據存儲格式
注:單個字節內容以ASCII形式存入文本文件后,表現為兩字節。
本文搭建的實驗平臺通過BMS采集電池組數據,由數據存儲系統將數據存儲進SD卡,再經由PC上位機查看和處理。實現了在SD卡內自動創建文件BMSDAT01.txt,考慮到文件過大時上位機查看困難,當文件大于給定值50 MB時生成新文件。再次使用時可繼續上次數據進行記錄,通過PC機可直接查看文件中數據及其記錄的時間和來源報文ID,也可以直接對卡中數據文件進行刪除等操作而不影響再次使用。目前本數據存儲系統可實現對CAN總線上每100 ms發出的數據的完全無遺漏記錄,更高頻率下對數據的完全記錄還有待完善。綜上所述,本數據存儲系統對2G的SD卡具有較高的利用率,短時間內可存儲大量數據且具有較高穩定性,因此可以較好地應用于電池管理系統中。

[1] 鄭敏信,齊鉑金,吳紅杰,等.混合動力客車鋰離子動力電池管理系統[J].高技術通訊,2008,18(2).
[2] 王風國,齊鉑金,吳紅杰.基于DSP與LabVIEW的電池監測與控制器標定系統[J].理論與方法,2008,27(1):16-19.
[3] 吳建建,齊鉑金,李巧平.基于SD卡的海量歷史數據存儲系統設計[J].電子設計工程,2011,19(1):145-148.
[4] SD Group (MEI,SanDisk,Toshiba).SD Memory Card Specifications Part 1:Physical Layer Specification, 2000.
[5] 時堯.HCS12X單片機的SD卡FAT文件系統讀寫設計[J].技術縱橫,2010(9):25-28.
[6] Microsoft Corporation.Microsoft Extensible Firmware Initiative FAT32 File System Specification FAT:General Overview of On Disk Format (Version 1. 03),2000.
[7] 張恒.基于AT89S52和FAT16的SD卡讀寫系統設計[J].應用天地,2009(27):53-58.
Storage System Applied to Battery Management System
Chen Shuoying,Zheng Minxin,Qi Bojin,Yang Qingsen
(Department of Mechanical Engineering and Automation, Beihang University, Beijing 100191, China)
The battery management system is an indispensable part of the electric vehicle, in order to meet the demand of a large number of monitoring data to be restored, an efficient data storage system applied in the battery management system is designed. The system adoptes the Freescale MC9S08DZ60 microcontroller of HCS08 Series and 2G SD card, battery management system collectes and generates huge amounts of data,which is stored in the SD card in real time. The experiment proves that the system can automatically create a file and record data sent by CAN bus every 100ms with no missing data.
data storage; SD card; FAT16; battery management system
TP23
A
迪娜
2013-07-05)