基于SD卡的BMS海量歷史數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:動(dòng)力電池是電動(dòng)汽車(chē)的核心部件之一。為了獲取動(dòng)力電池隨車(chē)工作時(shí)的狀態(tài)數(shù)據(jù),從而為優(yōu)化控制參數(shù)提供參考,本文利用SD存儲(chǔ)卡設(shè)計(jì)了一種2 G容量的電池管理系統(tǒng)(Battery Management System,BMS)隨車(chē)數(shù)據(jù)存儲(chǔ)系統(tǒng)。該系統(tǒng)采用高速SPI方式與SD卡通信,并使用精簡(jiǎn)的層次化SD卡驅(qū)動(dòng)模型;數(shù)據(jù)采用與PC機(jī)操作系統(tǒng)相兼容的FAT32文件格式存儲(chǔ)。實(shí)驗(yàn)表明,該系統(tǒng)實(shí)時(shí)性好,可靠性高。
關(guān)鍵詞:電池管理系統(tǒng);SD卡;FAT32;數(shù)據(jù)存儲(chǔ)
動(dòng)力電池作為混合動(dòng)力電動(dòng)汽車(chē)的關(guān)鍵零部件之一,由于其一致性差等原因易導(dǎo)致整組電池性能下降,從而直接影響到整車(chē)的可靠性與安全性。為了滿(mǎn)足實(shí)際的整車(chē)控制需求而調(diào)整和優(yōu)化控制器中的控制參數(shù),需要收集大量的工作數(shù)據(jù),以便離線(xiàn)分析電池性能以及進(jìn)行系統(tǒng)標(biāo)定。傳統(tǒng)的收集數(shù)據(jù)方法通常是利用串口或CAN總線(xiàn)將即時(shí)數(shù)據(jù)讀入計(jì)算機(jī),但是該方法還局限于實(shí)驗(yàn)階段,一般需要PC機(jī)參與,在實(shí)際工作中的數(shù)據(jù)較難獲得。國(guó)外有公司生產(chǎn)的基于CAN總線(xiàn)的行車(chē)記錄儀,體積較大且價(jià)格昂貴,僅適用于整車(chē)廠研發(fā)新車(chē)時(shí)使用。利用SD卡(Se-cure Digital Memory Card)輕巧、傳輸速度高、容量大、成本低、讀寫(xiě)方便的優(yōu)點(diǎn),以及在原有電池管理系統(tǒng)上配置方便的特點(diǎn),本文設(shè)計(jì)了一種小巧的應(yīng)用于電池管理系統(tǒng)的海量歷史數(shù)據(jù)存儲(chǔ)系統(tǒng),采用標(biāo)準(zhǔn)Windows系統(tǒng)FAT32文件格式存儲(chǔ),可以方便將數(shù)據(jù)導(dǎo)入到計(jì)算機(jī)中。一次換卡可以記錄1年的數(shù)據(jù),為電池管理系統(tǒng)和電池特性的研究準(zhǔn)備了大量第一手?jǐn)?shù)據(jù)。
1 SD卡硬件電路設(shè)計(jì)
SD是新一代半導(dǎo)體存儲(chǔ)設(shè)備卡,其外形及引腳定義如圖1、表1所示。SD卡工作電壓為2.0~3.6 V,最大讀寫(xiě)速度達(dá)10MB/s(4位數(shù)據(jù)線(xiàn)并用),并且提供了SD和SPI兩種通信模式。在使用時(shí),主機(jī)只能通過(guò)其中一種方式與SD卡進(jìn)行通信,該模式通過(guò)上電后檢測(cè)Reset命令來(lái)決定。本系統(tǒng)采用SPI方式操作SD卡,因?yàn)樵摲绞骄哂薪涌陔娐泛?jiǎn)單(DSP芯片TMS320LF2407A提供SPI接口),并且通信協(xié)議也十分簡(jiǎn)潔的優(yōu)點(diǎn)。因?yàn)镈SP芯片TMS320LF2407A的SPI模塊高電平剛好是3.3 V,所以SD卡座可直接與TMS320LF2407A的SPI引腳連接,其連線(xiàn)方式如圖2所示。
[!--empirenews.page--]
2 軟件程序設(shè)計(jì)
軟件設(shè)計(jì)主要難點(diǎn)是SD卡驅(qū)動(dòng)與FAT32文件系統(tǒng)的結(jié)合方式設(shè)計(jì)。FAT32文件系統(tǒng)的實(shí)現(xiàn)有一定的復(fù)雜性,如果設(shè)計(jì)地不好不但會(huì)浪費(fèi)大量CPU資源,而且可能造成數(shù)據(jù)丟失、覆蓋等嚴(yán)重后果。采用傳統(tǒng)數(shù)據(jù)流式程序設(shè)計(jì)思想實(shí)現(xiàn)起來(lái)比較困難,Debug也很不方便。本設(shè)計(jì)引用現(xiàn)代Windows操作系統(tǒng)慣用的層次模型劃分的方法開(kāi)發(fā)了一套基于SD卡的FAT32文件系統(tǒng)協(xié)議包,具有層次分明、結(jié)構(gòu)緊湊、可移植性強(qiáng)及邏輯清晰的特點(diǎn)。
2.1 FAT32文件系統(tǒng)
FAT32是由Microsoft設(shè)計(jì)并運(yùn)用得非常成功的文件系統(tǒng)。至今FAT32依然占據(jù)著Microsoft Windows文件系統(tǒng)中重要的地位。FAT32改進(jìn)了FAT16和FAT12不支持大分區(qū)、單位簇的容量過(guò)大以致空間急劇浪費(fèi)等缺點(diǎn)。由引導(dǎo)扇區(qū)、FAT表、根目錄和數(shù)據(jù)區(qū)4大部分組成。圖3標(biāo)出了FAT32分區(qū)的基本構(gòu)成,F(xiàn)AT2是FAT1的備份,用于在FAT1損壞時(shí)修復(fù)。
FAT表(File Allocation Table文件分配表)記錄文件在介質(zhì)上的放置位置,即簇號(hào)序列。每個(gè)表項(xiàng)記錄的簇號(hào)都是32位的,故這個(gè)方法稱(chēng)為FAT32。表2所示是一段簡(jiǎn)化的FAT表,第2簇記錄根目錄存放位置,第3簇記錄某文件存儲(chǔ)的下一簇號(hào)(該文件從本簇即第3簇開(kāi)始存放)是6號(hào),第6號(hào)又記錄接下來(lái)的簇號(hào)……,至到標(biāo)記FF表示文件結(jié)束。同樣道理從第12簇開(kāi)始存放另一個(gè)文件,該文件在第93簇存放結(jié)束。從表
中可以看出文件是可以非連續(xù)存放的,這樣可以充分利用SD存儲(chǔ)介質(zhì)的空間,并且可以保證存放BMS采集數(shù)據(jù)不會(huì)發(fā)生重疊,沖掉以前數(shù)據(jù)。表3列出了FAT表各記錄項(xiàng)的取值含義。
系統(tǒng)在存儲(chǔ)一個(gè)文件時(shí)先計(jì)算出需要幾個(gè)簇的空間來(lái)存放,再?gòu)腇AT表中找出這相應(yīng)個(gè)數(shù)的空閑簇,并其修改記錄項(xiàng)的取值使之首尾連成一串。然后在目錄表中創(chuàng)建一個(gè)新的文件項(xiàng),并記錄它在介質(zhì)上存放的首簇號(hào)。這樣在讀文件時(shí),只要直接從目錄表中找到該文件的記錄項(xiàng),獲取它的首簇號(hào)就能把文件讀出來(lái)了。FAT32文件系統(tǒng)目錄的記錄項(xiàng)的結(jié)構(gòu)定義如表4所示。
2.2 SD卡SPI通信協(xié)議
發(fā)送給SD卡的命令采用6字節(jié)的格式如表5所示。命令的第1個(gè)字節(jié)可通過(guò)將6位命令碼與16進(jìn)制碼0x40進(jìn)行或運(yùn)算得到。如果命令需要,則在接下來(lái)的4個(gè)字節(jié)中提供一個(gè)32位的參數(shù),最后1個(gè)字節(jié)包含了從第1個(gè)字節(jié)到第5個(gè)字節(jié)的CRC-7校驗(yàn)和。表6列出了部分SD存儲(chǔ)卡SPI命令的解釋。
[!--empirenews.page--]
2.3 下位機(jī)軟件設(shè)計(jì)
下位機(jī)SD存儲(chǔ)卡驅(qū)動(dòng)程序采用層次化的方法設(shè)計(jì),從下到上的關(guān)系如圖4所示。下一層提供面向上一層的接口支持。其中SPI硬件層是與BMS中所采用的芯片TMS320LF2407A相關(guān)的,SD卡命令集則實(shí)現(xiàn)DSP與SD存儲(chǔ)卡通信需要的SPI命令集的子集,SD卡API層包裝好SD卡命令集,使其便于FAT32文件系統(tǒng)層使用。FAT32文件系統(tǒng)層即實(shí)現(xiàn)了按照FAT32文件系統(tǒng)要求的文件存儲(chǔ)方案。最上層是BMS應(yīng)用層,負(fù)責(zé)將BMS系統(tǒng)采集的電池包狀態(tài)信息打包并以FAT32形式存儲(chǔ)到SD卡上。因?yàn)楸鞠到y(tǒng)只需要文件保存功能,故FAT32文件系統(tǒng)層和SD卡硬層都做了精簡(jiǎn)處理,這樣明顯減少了驅(qū)動(dòng)設(shè)計(jì)時(shí)的復(fù)雜程度。
3 數(shù)據(jù)處理
電動(dòng)汽車(chē)在運(yùn)行時(shí),BMS會(huì)連續(xù)產(chǎn)生大量的監(jiān)測(cè)數(shù)據(jù),這些數(shù)據(jù)分可為監(jiān)測(cè)量和診斷量。監(jiān)測(cè)量為實(shí)時(shí)測(cè)量動(dòng)力母線(xiàn)上的電壓、電流、動(dòng)力電池箱內(nèi)的模塊電壓和溫度等;診斷量為BMS對(duì)實(shí)時(shí)量的處理結(jié)果,包括SOC、SOH和故障碼等。如表7所示為記錄安裝在某輛混合動(dòng)力轎車(chē)上的144 V鎳氫RMS的數(shù)據(jù)。
記錄的歷史數(shù)據(jù)對(duì)于電池工藝優(yōu)化、整車(chē)控制器(VMS)研發(fā)以及BMS研發(fā)都有重要意義。如對(duì)所記錄的總電壓、總電流以及SOC單獨(dú)繪圖如圖5所示。對(duì)總電流的大小和正負(fù)分布分析可以得到ISG電機(jī)的工作狀況;對(duì)SOC分析可以得到整車(chē)控制器(VMS)控制策略的效率;對(duì)總電壓分析可以得到電池的性能信息。
4 結(jié)論
本文設(shè)計(jì)的基于PSD卡技術(shù)實(shí)現(xiàn)的動(dòng)力汽車(chē)電池管理系統(tǒng)海量歷史數(shù)據(jù)存儲(chǔ)系統(tǒng),解決了以往電池管理系統(tǒng)在線(xiàn)工作數(shù)據(jù)難以獲得的問(wèn)題。為電池管理系統(tǒng)參數(shù)優(yōu)化提供了大量的工作狀態(tài)歷史數(shù)據(jù),有助于提高系統(tǒng)參數(shù)優(yōu)化準(zhǔn)確性,并為電動(dòng)汽車(chē)用電池包特性的建模提供了基礎(chǔ)數(shù)據(jù)。實(shí)驗(yàn)證明,采用經(jīng)過(guò)精簡(jiǎn)的SD存儲(chǔ)卡驅(qū)動(dòng)模型有以下特點(diǎn):存儲(chǔ)數(shù)據(jù)速度快,不影響正常電池管理工作;容錯(cuò)性好,可能會(huì)出現(xiàn)
較多小體積文件,但無(wú)數(shù)據(jù)丟失的情況。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,在數(shù)據(jù)記錄周期為10 ms的情況下,采用2 G容量的SD卡,可以不間斷地記錄xx年的歷史數(shù)據(jù)。