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