《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于SD卡的BMS海量歷史數(shù)據(jù)存儲系統(tǒng)設計
基于SD卡的BMS海量歷史數(shù)據(jù)存儲系統(tǒng)設計
電子設計工程
摘要: 動力電池作為混合動力電動汽車的關鍵零部件之一,由于其一致性差等原因易導致整組電池性能下降,從而直接影...
Abstract:
Key words :

關鍵字:電池管理系統(tǒng)SD卡;FAT32;數(shù)據(jù)存儲

  動力電池作為混合動力電動汽車的關鍵零部件之一,由于其一致性差等原因易導致整組電池性能下降,從而直接影響到整車的可靠性與安全性。為了滿足實際的整車控制需求而調整和優(yōu)化控制器中的控制參數(shù),需要收集大量的工作數(shù)據(jù),以便離線分析電池性能以及進行系統(tǒng)標定。傳統(tǒng)的收集數(shù)據(jù)方法通常是利用串口或CAN總線將即時數(shù)據(jù)讀入計算機,但是該方法還局限于實驗階段,一般需要PC機參與,在實際工作中的數(shù)據(jù)較難獲得。國外有公司生產(chǎn)的基于CAN總線的行車記錄儀,體積較大且價格昂貴,僅適用于整車廠研發(fā)新車時使用。利用SD卡(Se-cure DIGItal Memory Card)輕巧、傳輸速度高、容量大、成本低、讀寫方便的優(yōu)點,以及在原有電池管理系統(tǒng)上配置方便的特點,本文設計了一種小巧的應用于電池管理系統(tǒng)的海量歷史數(shù)據(jù)存儲系統(tǒng),采用標準Windows系統(tǒng)FAT32文件格式存儲,可以方便將數(shù)據(jù)導入到計算機中。一次換卡可以記錄1年的數(shù)據(jù),為電池管理系統(tǒng)和電池特性的研究準備了大量第一手數(shù)據(jù)。

  1 SD卡硬件電路設計

  SD是新一代半導體存儲設備卡,其外形及引腳定義如圖1、表1所示。SD卡工作電壓為2.0~3.6 V,最大讀寫速度達10MB/s(4位數(shù)據(jù)線并用),并且提供了SD和SPI兩種通信模式。在使用時,主機只能通過其中一種方式與SD卡進行通信,該模式通過上電后檢測Reset命令來決定。本系統(tǒng)采用SPI方式操作SD卡,因為該方式具有接口電路簡單(DSP芯片TMS320LF2407A提供SPI接口),并且通信協(xié)議也十分簡潔的優(yōu)點。因為DSP芯片TMS320LF2407A的SPI模塊高電平剛好是3.3 V,所以SD卡座可直接與TMS320LF2407A的SPI引腳連接,其連線方式如圖2所示。

SD卡外形

圖1 SD卡外形

表1 SD卡引腳定義

 SD卡引腳定義

圖2 SD卡連接電路

  2 軟件程序設計

  軟件設計主要難點是SD卡驅動與FAT32文件系統(tǒng)的結合方式設計。FAT32文件系統(tǒng)的實現(xiàn)有一定的復雜性,如果設計地不好不但會浪費大量CPU資源,而且可能造成數(shù)據(jù)丟失、覆蓋等嚴重后果。采用傳統(tǒng)數(shù)據(jù)流式程序設計思想實現(xiàn)起來比較困難,Debug也很不方便。本設計引用現(xiàn)代Windows操作系統(tǒng)慣用的層次模型劃分的方法開發(fā)了一套基于SD卡的FAT32文件系統(tǒng)協(xié)議包,具有層次分明、結構緊湊、可移植性強及邏輯清晰的特點。

  2.1 FAT32文件系統(tǒng)

  FAT32是由Microsoft設計并運用得非常成功的文件系統(tǒng)。至今FAT32依然占據(jù)著Microsoft Windows文件系統(tǒng)中重要的地位。FAT32改進了FAT16和FAT12不支持大分區(qū)、單位簇的容量過大以致空間急劇浪費等缺點。由引導扇區(qū)、FAT表、根目錄和數(shù)據(jù)區(qū)4大部分組成。圖3標出了FAT32分區(qū)的基本構成,F(xiàn)AT2是FAT1的備份,用于在FAT1損壞時修復。


 FAT32文件存儲系統(tǒng)構成

圖3 FAT32文件存儲系統(tǒng)構成

  FAT表(File AllocatiON Table文件分配表)記錄文件在介質上的放置位置,即簇號序列。每個表項記錄的簇號都是32位的,故這個方法稱為FAT32。表2所示是一段簡化的FAT表,第2簇記錄根目錄存放位置,第3簇記錄某文件存儲的下一簇號(該文件從本簇即第3簇開始存放)是6號,第6號又記錄接下來的簇號……,至到標記FF表示文件結束。同樣道理從第12簇開始存放另一個文件,該文件在第93簇存放結束。從表中可以看出文件是可以非連續(xù)存放的,這樣可以充分利用SD存儲介質的空間,并且可以保證存放BMS采集數(shù)據(jù)不會發(fā)生重疊,沖掉以前數(shù)據(jù)。表3列出了FAT表各記錄項的取值含義。

表2 FAT表與文件存位置的對應關系

 FAT表與文件存位置的對應關系

表3 FAT32記錄項的取值含義

  系統(tǒng)在存儲一個文件時先計算出需要幾個簇的空間來存放,再從FAT表中找出這相應個數(shù)的空閑簇,并其修改記錄項的取值使之首尾連成一串。然后在目錄表中創(chuàng)建一個新的文件項,并記錄它在介質上存放的首簇號。這樣在讀文件時,只要直接從目錄表中找到該文件的記錄項,獲取它的首簇號就能把文件讀出來了。FAT32文件系統(tǒng)目錄的記錄項的結構定義如表4所示。

表4 FAT32目錄記錄項的結構定義

  

  2.2 SD卡SPI通信協(xié)議

  發(fā)送給SD卡的命令采用6字節(jié)的格式如表5所示。命令的第1個字節(jié)可通過將6位命令碼與16進制碼0x40進行或運算得到。如果命令需要,則在接下來的4個字節(jié)中提供一個32位的參數(shù),最后1個字節(jié)包含了從第1個字節(jié)到第5個字節(jié)的CRC-7校驗和。表6列出了部分SD存儲卡SPI命令的解釋。

表5 SD卡SPI模式6字節(jié)命令格式


表 6 部分SD存儲卡SPI模式下命令

  2.3 下位機軟件設計

  下位機SD存儲卡驅動程序采用層次化的方法設計,從下到上的關系如圖4所示。下一層提供面向上一層的接口支持。其中SPI硬件層是與BMS中所采用的芯片TMS320LF2407A相關的,SD卡命令集則實現(xiàn)DSP與SD存儲卡通信需要的SPI命令集的子集,SD卡API層包裝好SD卡命令集,使其便于FAT32文件系統(tǒng)層使用。FAT32文件系統(tǒng)層即實現(xiàn)了按照FAT32文件系統(tǒng)要求的文件存儲方案。最上層是BMS應用層,負責將BMS系統(tǒng)采集的電池包狀態(tài)信息打包并以FAT32形式存儲到SD卡上。因為本系統(tǒng)只需要文件保存功能,故FAT32文件系統(tǒng)層和SD卡硬層都做了精簡處理,這樣明顯減少了驅動設計時的復雜程度。

圖4 層次式SD卡驅動程序

  3 數(shù)據(jù)處理

  電動汽車在運行時,BMS會連續(xù)產(chǎn)生大量的監(jiān)測數(shù)據(jù),這些數(shù)據(jù)分可為監(jiān)測量和診斷量。監(jiān)測量為實時測量動力母線上的電壓、電流、動力電池箱內的模塊電壓和溫度等;診斷量為BMS對實時量的處理結果,包括SOC、SOH和故障碼等。如表7所示為記錄安裝在某輛混合動力轎車上的144 V鎳氫RMS的數(shù)據(jù)。

 表7 數(shù)據(jù)記錄格式

數(shù)據(jù)記錄格式

  記錄的歷史數(shù)據(jù)對于電池工藝優(yōu)化、整車控制器(VMS)研發(fā)以及BMS研發(fā)都有重要意義。如對所記錄的總電壓、總電流以及SOC單獨繪圖如圖5所示。對總電流的大小和正負分布分析可以得到ISG電機的工作狀況;對SOC分析可以得到整車控制器(VMS)控制策略的效率;對總電壓分析可以得到電池的性能信息。

圖5 數(shù)據(jù)分析詳例

  4 結論

  本文設計的基于PSD卡技術實現(xiàn)的動力汽車電池管理系統(tǒng)海量歷史數(shù)據(jù)存儲系統(tǒng),解決了以往電池管理系統(tǒng)在線工作數(shù)據(jù)難以獲得的問題。為電池管理系統(tǒng)參數(shù)優(yōu)化提供了大量的工作狀態(tài)歷史數(shù)據(jù),有助于提高系統(tǒng)參數(shù)優(yōu)化準確性,并為電動汽車用電池包特性的建模提供了基礎數(shù)據(jù)。實驗證明,采用經(jīng)過精簡的SD存儲卡驅動模型有以下特點:存儲數(shù)據(jù)速度快,不影響正常電池管理工作;容錯性好,可能會出現(xiàn)

  較多小體積文件,但無數(shù)據(jù)丟失的情況。經(jīng)過實驗驗證,在數(shù)據(jù)記錄周期為10 ms的情況下,采用2 G容量的SD卡,可以不間斷地記錄xx年的歷史數(shù)據(jù)。

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。