ATmega128L單片機的Micro SD卡讀寫(xiě)
文件分配表系統的分區應該有以下幾部分:
①保留區,FAT32稱(chēng)這個(gè)區域為引導扇區(bootsec-tOr)。它是操作系統可以直接訪(fǎng)問(wèn)的第一個(gè)扇區,主要包括與引導操作系統有關(guān)的引導參數和引導程序,還有就是與FAT文件系統有關(guān)的BPB參數(Bios ParameterBlock)。
②文件分配表,記錄磁盤(pán)上簇的分配情況,在條件允許的情況下,通常都會(huì )把文件分配表全部讀到內存中去。
③根目錄區,記錄根目錄的信息。文件和目錄數據區,是各種文件數據的實(shí)際存放區域。
一個(gè)文件管理系統的工作過(guò)程主要有三步:第一步是讀取MBR區,主要是讀DPT表,了解存儲設備分區情況。第二步,讀取BPB信息,確定FAT文件系統的各種基本參數。第三步,顯示當前目錄位置。文件系統的實(shí)現,就是把對應的文件目錄操作拆成相應的扇區讀寫(xiě)命令就可以了。因此,應該在FAT初始化的時(shí)候將讀寫(xiě)扇區函數指針指向Micro SD卡的讀寫(xiě)函數:

2.4 FAT32文件系統應用接口函數的實(shí)現
FAT32文件系統向應用層提供的接口有:FAT_FindFreeCluster(),查找空簇;FAT_ModifyFAT(),修改FAT 項;FAT_OpenDir(),打開(kāi)目錄;FAT_MkDir(),建目錄;FAT_RmI)ir(),刪除目錄;FAT_Rename(),重命名;FAT_Create(),創(chuàng )建文件;FAT_Open(),打開(kāi)文件;FAT_write(),寫(xiě)文件;FAT_Read(),讀文件;FAT_Close(),關(guān)閉打開(kāi)文件;FAT_Delete(),刪除文件。下面對文件的打開(kāi)、讀/寫(xiě)和刪除函數接口作詳細介紹。
2.4.1 文件的打開(kāi)
在該文件系統中,要讀/寫(xiě)一個(gè)文件必須先打開(kāi)它,這里通過(guò)調用函數FAT_Open()實(shí)現,文件的打開(kāi)可以用只讀、只寫(xiě)、讀寫(xiě)的方式打開(kāi)。其中,以只讀的方式打開(kāi)文件時(shí),如果文件不存在,則打開(kāi)文件錯誤;以只寫(xiě)的方式打開(kāi)文件,如果文件存在,則文件先被刪除然后再建立這個(gè)文件;以讀寫(xiě)的方式打開(kāi)文件與只寫(xiě)方式不同,若文件存在,則不會(huì )被刪除而是直接打開(kāi),否則就和只寫(xiě)方式一樣。下面以只寫(xiě)方式打開(kāi)文件為例:
首先,函數要查找空閑的打開(kāi)文件登記項,如果沒(méi)有找到則不能打開(kāi)文件,如果找到則記錄。然后,獲取文件的內部名稱(chēng)及所在目錄的首簇號,判斷目錄是否存在。最后,獲?。篎DT登記項,判斷是否為目錄,刪除文件,添加FDT表項,修改打開(kāi)文件的信息登記項,返回句柄。文件以只寫(xiě)方式打開(kāi)文件的流程如圖4所示。

2.4.2 文件的讀/寫(xiě)
SD卡上文件都是以簇為單位存取的。讀SD卡上的文件,首先要在FAT初始化之前對SD卡初始化,將FAT中讀寫(xiě)一個(gè)扇區指向SD卡中讀寫(xiě)扇區函數,然后獲取文件所在邏輯盤(pán)的信息,計算數據所在扇區,讀取扇區中的數據,最后調整文件指針。

2.4.3 文件的刪除
刪除文件時(shí),不涉及數據區的操作,只須在文件的目錄登記項上作一個(gè)刪除標記,并把文件在FAT表中所占用的簇標記為“空簇”。

結語(yǔ)
本設計將Micro SD卡的存儲方式應用到電腦橫機控制系統中,簡(jiǎn)化了花型文件數據存儲設計,減小了系統的尺寸,提高了系統的可靠性,使得花型文件的讀出和存取簡(jiǎn)單易行,裁剪了FAT32實(shí)現了嵌入式文件系統,提高了系統的存儲能力。采用ATmegal28L高性能單片機的串行外設接口SPI,滿(mǎn)足訪(fǎng)問(wèn)Micro SD卡的功能要求,加快了整個(gè)系統的設計進(jìn)程。實(shí)踐證明,該文件系統讀取Mi—cro SD卡上花型文件的速度滿(mǎn)足該控制系統的要求。該嵌入式文件系統只需對底層驅動(dòng)進(jìn)行簡(jiǎn)單修改就可移植到CF卡、閃存等其他的存儲介質(zhì)上。
參考文獻
1. 陳冬云 ATmega128 單片機原理與開(kāi)發(fā)指導 2006
2. 段勇 基于MSP430單片機的SD卡讀寫(xiě) 2007(9)
3. 張洪濤.莫文承.李兵兵 基于 SPI協(xié)議的SD卡讀寫(xiě)機制與實(shí)現方法 [期刊論文] -電子元器件應用2008(3)
4. 鄧劍.楊曉非.廖俊卿 FAT 文件系統原理及實(shí)現 [期刊論文] -計算機與數字工程2005(9)
5. 左源.劉新寧.師超 一種SD卡控制器的硬件實(shí)現 [期刊論文] -電子器件2007(2)
評論