新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機的SD卡FAT文件系統(tǒng)讀寫設計

        基于單片機的SD卡FAT文件系統(tǒng)讀寫設計

        作者: 時間:2011-11-18 來源:網(wǎng)絡 收藏

        3.4讀寫單塊數(shù)據(jù)
        單塊數(shù)據(jù)的讀取是先通過單片機發(fā)送CMDl7(CMD_READ_SINGLE_BLOCK)命令,以指定數(shù)據(jù)塊起始位地址作為參數(shù),如果讀取成功會返回1個R1命令作為響應。然后發(fā)送1個起始數(shù)據(jù)命令,接著發(fā)送單塊字節(jié)數(shù)量的數(shù)據(jù)并接收SPI數(shù)據(jù)寄存器SPIDR中的數(shù)據(jù),最后是2字節(jié)CRC校驗。

        d.jpg
        SD卡單塊數(shù)據(jù)的寫入與讀取相似,通過單片機發(fā)送CMD24(CMD_WRITE_SINGLE_BLOCK)命令,以SD卡指定數(shù)據(jù)塊起始位地址作為參數(shù),如果讀取成功SD卡會返回1個R1命令作為響應。然后發(fā)送1個起始數(shù)據(jù)命令,接著發(fā)送單塊字節(jié)數(shù)量的需寫入數(shù)據(jù),最后是2字節(jié)CRC校驗。
        3.5 信息讀取
        為了SD卡文件數(shù)據(jù)管理方便并且與PC機之間兼容得更好,同時考慮到SD卡自身容量的限制,選擇FATl6文件系統(tǒng)對SD卡信息進行管理。
        為了方便管理和擴展性開發(fā),對SD卡進行了分區(qū)。模擬硬盤模式創(chuàng)建出了MBR區(qū)(主引導扇區(qū))與DBR區(qū)(操作系統(tǒng)引導記錄區(qū)),在向下兼容的同時實現(xiàn)了對分區(qū)過的SD卡的讀寫。
        SD卡數(shù)據(jù)可分為5部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、DIR區(qū)和DATA區(qū)。MBR區(qū)是主引導區(qū),位于整個SD卡的第1單塊上。在總共512字節(jié)的主引導扇區(qū)中,MBR只占用了其中的446個字節(jié),另外的64個字節(jié)是DPT(Disk Partition Table,分區(qū)表),最后2個字節(jié)“55 AA”是分區(qū)的結(jié)束標志。這整體構成了SD卡的主引導扇區(qū)。DBR是操作系統(tǒng)引導記錄區(qū),是操作系統(tǒng)可以直接訪問的第1個扇區(qū),它包括1個引導程序和1個被稱為BPB(Bios Parameter Block)的本分區(qū)參數(shù)記錄表。BPB參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲格式、硬盤介質(zhì)描述符、根目錄大小、FAT、個數(shù),分配單元的大小等重要參數(shù)。
        的分區(qū)有如下幾個部分:保留區(qū),存放FAT文件系統(tǒng)的重要參數(shù)和引導程序;FAT表,記錄簇使用情況;根目錄區(qū),記錄根目錄信息。
        本文中單片機對FAT系統(tǒng)的讀寫利用的是MBR區(qū)上的DPT分區(qū)表信息,用于找到FAT分區(qū)。然后通過FAT分區(qū)的DBR區(qū)上的BPB分區(qū)參數(shù)記錄表信息找到根目錄,讀取根目錄信息并通過FAT表中的文件簇信息實現(xiàn)文件的管理。
        研究中為方便代碼的移植和優(yōu)化,在FAT初始化的時候?qū)⒆x寫扇區(qū)函數(shù)指針指向 SD卡的讀寫函數(shù),并使用了2個結(jié)構體來存儲SD卡的MBR與DBR信息。但鑒于單片機自身的內(nèi)存容量,又建立了1個SimpleFat.c程序文件,只存儲程序所需的幾個地址常量:StartMbrAddress(MBR起始地址)、StartDbrAddress(DBR起始地址)、StartFatlAddress(FATl表起始地址)以及SeePerClu(簇扇區(qū)數(shù)量),大大減小了單片機內(nèi)存的開銷。

        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        晶振相關文章:晶振原理
        鎖相環(huán)相關文章:鎖相環(huán)原理


        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 广宁县| 资兴市| 南宫市| 阳江市| 彭山县| 恩施市| 乌什县| 和田县| 木兰县| 武宁县| 玛沁县| 克拉玛依市| 上栗县| 南平市| 太和县| 沂南县| 慈利县| 新化县| 淮阳县| 宝坻区| 霍林郭勒市| 鹤壁市| 资溪县| 和林格尔县| 绥中县| 新和县| 遂昌县| 承德市| 略阳县| 龙游县| 喀什市| 牙克石市| 海南省| 永修县| 玉林市| 天峻县| 辛集市| 伊金霍洛旗| 建湖县| 城口县| 沅江市|