FatFS的水動(dòng)力實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)
摘要:針對(duì)在水動(dòng)力實(shí)驗(yàn)研究中數(shù)據(jù)量集中、數(shù)量多的問題,提出了一種基于FatFS文件系統(tǒng)的SD卡存儲(chǔ)系統(tǒng)設(shè)計(jì)方案。該系統(tǒng)以ST公司的STM32F103ZET6為核心,通過SDIO接口實(shí)現(xiàn)大量數(shù)據(jù)文件存儲(chǔ)。詳細(xì)講解了系統(tǒng)的USB模塊、RTC模塊等硬件設(shè)計(jì),探討了在系統(tǒng)上移植FatFS文件系統(tǒng)的要點(diǎn),并在SD卡上實(shí)現(xiàn)了FAT文件的讀寫功能。該系統(tǒng)傳輸速度快、可靠性強(qiáng),具有一定的應(yīng)用價(jià)值。
關(guān)鍵詞:STM32F103ZET6;數(shù)據(jù)存儲(chǔ);SD卡;FatFS
引言
在水動(dòng)力的實(shí)驗(yàn)中,通過改變模型外形設(shè)計(jì)、迎水角度、水流速度等參數(shù)觀察空化現(xiàn)象對(duì)模型的影響。參數(shù)變化對(duì)應(yīng)記錄一組實(shí)驗(yàn)數(shù)據(jù),而整個(gè)實(shí)驗(yàn)過程,共有幾十組實(shí)驗(yàn)數(shù)據(jù)需要分別采集、記錄。同時(shí),實(shí)驗(yàn)中空化產(chǎn)生到潰滅過程最好都能記錄下來以供后續(xù)研究。因此,對(duì)實(shí)驗(yàn)中采用的數(shù)據(jù)采集系統(tǒng)提出了數(shù)據(jù)短時(shí)集中、文件數(shù)量多的要求。
本文采用了以SD卡為存儲(chǔ)體,采用FAT文件系統(tǒng)記錄數(shù)據(jù)的架構(gòu)來處理數(shù)據(jù)。SD卡的核心是NANDFlash,由于體積小、功耗低的優(yōu)點(diǎn)被廣泛應(yīng)用于各類電子產(chǎn)品中。采用文件系統(tǒng)能夠?qū)Υ笕萘看鎯?chǔ)媒介進(jìn)行高效的管理,并且適合于主流的Windows操作系統(tǒng)。文件系統(tǒng)采用開源的FatFS,實(shí)現(xiàn)了使用FAT文件系統(tǒng)的數(shù)據(jù)存儲(chǔ)系統(tǒng)。FatFS是專門為嵌入式系統(tǒng)設(shè)計(jì)的FAT文件系統(tǒng)模塊,它是免費(fèi)開源的,完全用標(biāo)準(zhǔn)C語言編寫,具有良好的硬件平臺(tái)獨(dú)立性,可以移植到多種嵌入式處理器上。
1 系統(tǒng)結(jié)構(gòu)
數(shù)據(jù)存儲(chǔ)系統(tǒng)結(jié)構(gòu)如圖1所示。該數(shù)據(jù)存儲(chǔ)系統(tǒng)以ST公司的STM32F103ZET6為核心控制芯片,與上位機(jī)通過串行通信接口發(fā)送數(shù)據(jù),或者USB接口直接寫數(shù)據(jù),控制芯片以FAT文件的形式存儲(chǔ)在SD卡中。其自帶的RTC單元將存儲(chǔ)的數(shù)據(jù)文件以實(shí)時(shí)的系統(tǒng)時(shí)間命名,并在文件內(nèi)容中也加入時(shí)間戳等信息,方便多個(gè)文件后期處理。由于實(shí)現(xiàn)了文件系統(tǒng),用戶利用USB接口時(shí),該系統(tǒng)被識(shí)別為U盤,可以用PC機(jī)進(jìn)行任意的文件讀寫操作。
2 硬件結(jié)構(gòu)
2.1 微控制器
STM32是ST公司推出的基于Cortex—M3內(nèi)核的32位ARM芯片系列,本系統(tǒng)選用了STM32F103ZET6作為主控MCU,這個(gè)芯片屬于STM32F103系列的高容量芯片,片內(nèi)Flash容量為512 KB,片內(nèi)SRAM容量為64KB,LQFP144封裝,72 MHz主頻。具備完整的FSMC總線,26位地址線和16位數(shù)據(jù)寬度,即支持各種類型的SD卡接口。
2.2 MicroSD模塊
STM32F103ZET6微控制器的SDIO單元在AHB外設(shè)總線和SD卡設(shè)備問提供了操作接口,支持不同的數(shù)據(jù)總線模式。SD規(guī)范協(xié)議中定義了對(duì)SD卡的兩種訪問模式:SD模式和SPI模式。SD模式允許4線的高速數(shù)據(jù)傳輸。SPI模式允許簡單地通過SPI接口來和SD卡通信,這種模式同SD模式相比喪失了速度優(yōu)勢(shì)。在本系統(tǒng)中,采用了SDIO接口來訪問SD卡,即SD模式。STM32F103ZET6和MicroSD模塊接口如圖2所示。
2.3 USB接口硬件
STM32F103ZET6的USB單元實(shí)現(xiàn)了USB2.0全速總線和APB1總線間的接口,增強(qiáng)了系統(tǒng)的兼容性。還采用USB接口ESD防護(hù)器件NUP4114,滿足ESD防護(hù)標(biāo)準(zhǔn)IEC61000-4-2(ESD15kV air,8 kV Contact)。其USB外設(shè)支持USB掛起/回復(fù)操作,可以停止設(shè)備時(shí)鐘實(shí)現(xiàn)低功耗。USB接口如圖3所示。
2.4 RTC模塊
STM32F103ZET6的實(shí)時(shí)時(shí)鐘RTC模塊是一個(gè)獨(dú)立的定時(shí)器。RTC模塊擁有一組連續(xù)計(jì)數(shù)的計(jì)數(shù)器,在軟件配置下,可提供時(shí)鐘日歷的功能。RTC硬件都集成在處理器內(nèi)部,包含了40 kHz低速內(nèi)部RC振蕩電路LSE。
但是,其精準(zhǔn)度不是很高,本系統(tǒng)又增加了32.768 kHz的晶振電路驅(qū)動(dòng)RTC實(shí)時(shí)時(shí)鐘。外圍電路增加紐扣電池即可長時(shí)間工作。
評(píng)論