<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          e.jpg

          3.6 應用層函數(shù)接口
          FAT文件系統(tǒng)向應用層設計了如下幾個初級程序接口:Get Filelnfo(UINT8*F Info,F(xiàn)ileInfo*TempFilelnfo)(獲取文件信息),OutPut _RootFileinfo(void)(輸出根目錄文件信息),DirOr(UINT8 FileAttrib)(判斷目錄),Get Next Cluster(UINTl6 TempCluster)(獲取下一文件簇信息),OutPutFileCluster(UINTl6 TempStart Cluster)(輸出文件簇地址),OutPutFile(UINTl6 Temp StartCluster)(輸出文件內容),ShowClusterContent(UINTl6 TempCluster)(輸出簇內容)。通過這些初級程序接口實現(xiàn)了OpenDir(UINTl6 TempStartCluster)(目錄打開),F(xiàn)ileDelete(文件刪除),F(xiàn)ileDataRead(文件數(shù)據(jù)讀取),F(xiàn)ileCreate(UINTl6 TempStartCluster,UINT32TempFileLength)(文件創(chuàng)建)等功能。
          3.6.1 目錄讀取及文件信息獲取
          FAT文件系統(tǒng)的具體文件和目錄項都是通過讀取ROOT目錄來進行查找的,所以FAT的文件排布是以樹形的結構排布。對于FAT來說,目錄項與文件項在同一目錄中是同樣占32個字節(jié)的屬性項。研究中使用了1個數(shù)據(jù)結構Filelnfo來存儲文件信息,并通過if(Temp_F_Info[0x0b]0x l0)來分辨文件與目錄。
          在FAT文件系統(tǒng)中,文件是以簇的形式保存在SD卡中的,簇的排布是不連續(xù)的,1個文件如果大于1個簇的話,則要通過FAT表來查找該文件所有簇所在的位置,從而找到整個文件。目錄一般只占有1個簇的大小,在FAT表中等同于小于1個簇的小文件,值顯示為FF。
          目錄是以文件的形式存儲在父目錄中的,目錄中的文件信息記錄了該文件的起始簇以及文件的大小,知道了文件的起始簇,通過FAT表中的信息可以很方便地找到文件的下一個簇的位置,并由文件的大小判斷出文件的結束位置。

          3.6.2 文件的讀寫
          在FAT文件系統(tǒng)中,讀取文件只需要知道該文件的起始簇以及大小便可以很方便地得到整個文件的信息。讀取步驟是:獲取根目錄信息,通過根目錄信息找到下一層目錄所在簇位置,通過下一層目錄信息遞歸找到文件所在目錄,讀取文件信息屬性,得到文件的起始簇位置和文件大小,通過FAT表遞歸查找到文件的全部簇地址,最終以FF結尾;根據(jù)文件大小判斷文件的結束位置,最后輸出整個文件。
          文件的創(chuàng)建和寫入則是通過FAT表查找未被使用的空簇(值為00),寫滿1簇之后再查找下一未被使用的空簇,并同時更新FAT1表和FAT2表。然后在文件所被創(chuàng)建的目錄信息中添加文件信息,最終實現(xiàn)文件的創(chuàng)建。
          3.6.3 文件的刪除
          在FAT文件系統(tǒng)中,對文件的刪除不需要把整個文件信息全部清除,只需要清除FAT表中的文件簇信息以及目錄中的文件信息,避免了對SD卡的頻繁讀寫,同時也節(jié)省了時間。

          結語
          本設計將SD卡的存儲方式應用到系統(tǒng)中,簡化了復雜的文件數(shù)據(jù)的存儲設計,減小了系統(tǒng)的尺寸,提高了系統(tǒng)的可靠性,使得對文件的讀出和存取簡單易行。對FAT裁減實現(xiàn)了嵌入式文件系統(tǒng),提高了系統(tǒng)的存儲能力,同時也增強了與PC級之間的通信能力,簡化了繁瑣的調試。采用Freescale 16位單片機MC9S12XSl28MAA的串行外設接口SPI對SD卡進行訪問,加快了整個系統(tǒng)的設計進度。實踐證明,該設計讀寫SD卡文件信息的速度以及穩(wěn)定性滿足調試要求。該設計只需對底層驅動進行簡單修改就可直接應用于MMC卡、Micro SD卡等其他存儲介質上。


          上一頁 1 2 3 4 下一頁

          關鍵詞: 單片機

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();