新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FatFS的水動力實驗數據存儲系統設計

        FatFS的水動力實驗數據存儲系統設計

        作者: 時間:2013-04-23 來源:網絡 收藏

        DRESULT disk_write(BYTE drv,BYTE *buff,DWORDsector,BYTE count)為寫扇區函數。與disk_read相似,其功能是向導入扇區的數據。*buff用于保存將要寫入的數據,sector是待寫入扇區的起始扇區數,count是需要寫入的扇區數。在寫數據接口函數基礎上編寫,如果執行無誤,則返回0值;否則,返回非0值。
        DRESULT disk_ioctl(BYTE drv,BYTE ctrl,void*buff)為存儲介質控制函數。ctrl是控制代碼,*buff用于保存或接收需要控制的數據。用戶在此函數添加自己需要的功能代碼,例如獲得存儲介質的容量、扇區數等。如果不執行任何功能,則直接返回0值。
        DWORD disk_fattime為實時時鐘函數。該函數將讀取的實時鐘信息保存在一個32位無符號整數中,并將其作為函數的返回值。時鐘信息的具體分布如圖9所示。

        本文引用地址:http://www.104case.com/article/148053.htm

        h.JPG


        4.3 裁減與配置
        提供了豐富的庫函數,可以實現創建、讀取文件夾,創建、讀寫文件,移動文件指針,使用者可以根據自己的需求設置相應的宏,對FatFS進行裁減,僅保留需要的功能函數,從而精簡文件系統的內存開銷。FatFS還需要加入對應的語言包,cc936支持的是簡體中文。FatFS提供的函數與宏的對應關系如圖10所示。

        i.JPG


        使用FatFS向文件中寫入或讀取字符串,需要使用類似C語言fprintf()的格式化輸入功能時,將_USE_STRFUNC設置為2,_USE_READONLY設置為1即可。

        5 FatFS文件系統的使用和系統應用
        FatFS文件系統中涉及2個基本的數據結構:文件系統(磁盤)的數據結構FatFS和文件的數據結構FIL。這兩個結構是FatFS軟件主要的RAM開銷,FatFS數據結構中有針對磁盤的512字節讀寫緩存,FIL則有針對每個文件的緩存。而采用Tiny—FatFS配置則不會開設文件讀寫緩存,節約RAM。本設計中,開啟Tiny—FatFS配置比關閉共節約了未初始化的數據段(ZI—data)4 096個字節。
        依次使用f_mount、f_open、f_read/f_write、f_close可以完成基本的讀寫。FatFS允許對同一文件同時讀寫,或者打開幾個文件進行讀寫。f_write和f_printf可以分別實現對文件大塊數據和字符串類型的數據寫入功能。后者可以對寫入的數據進行一些格式轉換,包括數據類型、數據長度和有無符號等。
        在水動力的實驗中,采用本系統記錄數據。系統主頻工作在72 MHz,采用2 GB的Micro,每次記錄的文件長度為2 308 KB,即時長為65 s。文件名稱為數據記錄的當前時刻。在一組實驗結束后,通過USB口與上位機連接,即可對存儲的數據文件進行操作。在上位機端,文
        件讀寫的速度達到了200 KB/s。從測試結果上可以看出,數據儲存接口正確,速度令人滿意,完全適合嵌入式系統的需求,可以作為通用型數據記錄系統。

        結語
        本系統采用的內部集成SDIO接口,并且ST公司提供了完善的庫函數,通過相應的函數就可以方便地實現對SD卡的讀寫,簡化了硬件的開發過程。具備USB接口使得該系統大大增強了通用性和兼容性。同時,獨立于硬件平臺的FatFS文件系統可以方便地移植到嵌入式系統中,用戶只需要對負責底層硬件接口的diskio.c進行修改,即可完成移植,并使用FatFS提供的豐富且易于使用的各種接口函數。該系統具有體積小、存儲數據靈活和通用性強的優點。用戶既可以直接通過USB接口將該系統識別為U盤進行數據讀寫和分析,也可以取出MicroSD卡在讀卡器上讀寫數據。將該系統拓展應用在嵌入式系統應用中,具有良好的前景。

        晶振相關文章:晶振原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 尼玛县| 金乡县| 太白县| 寿宁县| 商洛市| 云阳县| 乌拉特前旗| 曲水县| 东台市| 岐山县| 城市| 湟中县| 奉化市| 敖汉旗| 嫩江县| 偏关县| 马公市| 贞丰县| 永和县| 迁西县| 巴塘县| 新巴尔虎左旗| 虹口区| 龙胜| 隆昌县| 广水市| 玛多县| 炉霍县| 昔阳县| 黔江区| 交城县| 德安县| 海丰县| 永春县| 赫章县| 鲁甸县| 谢通门县| 肃南| 邢台县| 拜城县| 嘉峪关市|