新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于MCF51QE128的SD卡文件系統(tǒng)設(shè)計

        基于MCF51QE128的SD卡文件系統(tǒng)設(shè)計

        作者: 時間:2010-09-10 來源:網(wǎng)絡(luò) 收藏

        摘要:隨著系統(tǒng)的發(fā)展,越來越多的設(shè)備需要處理大量的數(shù)據(jù),使用文件系統(tǒng)將成為這類應用的一個必然趨勢。本文基于Freescale公司MCF51QEl28微控制器和SD卡,結(jié)合實驗數(shù)據(jù)深入探討了FATl6文件系統(tǒng)及其存儲原則,實現(xiàn)了文件的創(chuàng)建、打開和多扇區(qū)數(shù)據(jù)的讀寫。
        關(guān)鍵詞:MCF51QEl28;SD卡;FATl6文件系統(tǒng)

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

        引言
        MCF51QEl28微控制器是Freescale公司生產(chǎn)的8位/32位兼容的低功耗微處理器。工作電壓的典型值是3.6V,與SD卡的工作電壓兼容,可直接與SD卡連接而無需電平轉(zhuǎn)換電路。SD卡因為其體積小、功耗低、容量大且成本低,目前被廣泛應用于各類嵌入式數(shù)據(jù)采集系統(tǒng)中。本文針對此類應用,通過實測512MB SD卡數(shù)據(jù),以實例的形式深入解析了FATl6文件系統(tǒng)的存儲原則,并給出了實現(xiàn)方案。

        1 FATl6文件系統(tǒng)
        SD卡格式化為FAT文件系統(tǒng)時,一般只采用1個分區(qū),以便于存儲空間的管理。FATl6主要由圖1所示的6個陰影部分組成。通常情況下,每扇區(qū)的大小為512字節(jié)。

        6a.jpg


        1. 1 主引導記錄
        MBR(Master Boot Record,主引導記錄)總是位于存儲卡的起始位置,即扇區(qū)O。圖2是主引導記錄的詳細信息。由于只有1個分區(qū),所以由偏移量0x1BE可找到第1分區(qū)的入口,接著由偏移量0x08找到第1分區(qū)的相對起始扇區(qū),即第1分區(qū)引導記錄所在的扇區(qū)。以512 MB SD卡為例,讀取圖2中地址OxlC6~OxlC9處的4個字節(jié)數(shù)據(jù)(由高位向低位讀取),即Ox000000E9。可知,第1分區(qū)引導記錄位于SD卡的第0xE9個扇區(qū)。

        6b.jpg


        1.2 分區(qū)引導記錄
        分區(qū)BR(Boot Record,引導記錄)位于分區(qū)的第O扇區(qū)。它由跳轉(zhuǎn)代碼,OEM(Original Eqtlipment Manufacturer,原始設(shè)備制造商),BPB(BIOs Parameter Block,BIOS參數(shù)塊),擴展BPB,引導代碼和結(jié)束標志(Ox55 AA)組成。圖3重點列出了分區(qū)引導記錄中BPB的各項參數(shù)。讀圖3中Ox000000E9扇區(qū),由偏移量0x0B處2字節(jié)數(shù)據(jù)Ox0200=512可知,SD卡每扇區(qū)的字節(jié)數(shù)為512。類似地,可得到其他相關(guān)參數(shù)。

        6c.jpg


        1.3 FAT表和文件存儲原則
        FATl6文件系統(tǒng)主要通過FAT表(FATl和FAT2)、根目錄和數(shù)據(jù)區(qū)實現(xiàn)對文件的存儲管理。FAT表記錄了數(shù)據(jù)文件的存儲鏈表,對數(shù)據(jù)的讀取極為重要,通常都會有一個或多個備份。這里,F(xiàn)AT2就是對FATl的備份,必須隨著FATl即時同步更新。根目錄一般以32字節(jié)為單位來存放文件記錄。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        關(guān)鍵詞: 嵌入式

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 岢岚县| 仁怀市| 横峰县| 斗六市| 龙川县| 西乌珠穆沁旗| 弥渡县| 呼玛县| 若羌县| 视频| 翁牛特旗| 陵水| 阿坝| 锦屏县| 无极县| 科技| 淄博市| 赣榆县| 霍林郭勒市| 修武县| 济宁市| 包头市| 太保市| 武宣县| 鱼台县| 维西| 巴彦县| 宜君县| 凤台县| 中卫市| 镇平县| 板桥市| 平远县| 手机| 桐乡市| 金溪县| 新津县| 东乌| 克什克腾旗| 南安市| 连平县|