ATmega128L單片機(jī)的MiCrOSD卡讀寫(xiě)
2.4.1 文件的打開(kāi)
在該文件系統(tǒng)中,要讀/寫(xiě)一個(gè)文件必須先打開(kāi)它,這里通過(guò)調(diào)用函數(shù)FAT_Open()實(shí)現(xiàn),文件的打開(kāi)可以用只讀、只寫(xiě)、讀寫(xiě)的方式打開(kāi)。其中,以只讀的方式打開(kāi)文件時(shí),如果文件不存在,則打開(kāi)文件錯(cuò)誤;以只寫(xiě)的方式打開(kāi)文件,如果文件存在,則文件先被刪除然后再建立這個(gè)文件;以讀寫(xiě)的方式打開(kāi)文件與只寫(xiě)方式不同,若文件存在,則不會(huì)被刪除而是直接打開(kāi),否則就和只寫(xiě)方式一樣。下面以只寫(xiě)方式打開(kāi)文件為例:
首先,函數(shù)要查找空閑的打開(kāi)文件登記項(xiàng),如果沒(méi)有找到則不能打開(kāi)文件,如果找到則記錄。然后,獲取文件的內(nèi)部名稱及所在目錄的首簇號(hào),判斷目錄是否存在。最后,獲?。篎DT登記項(xiàng),判斷是否為目錄,刪除文件,添加FDT表項(xiàng),修改打開(kāi)文件的信息登記項(xiàng),返回句柄。文件以只寫(xiě)方式打開(kāi)文件的流程如圖4所示。本文引用地址:http://m.butianyuan.cn/article/173684.htm
2.4.2 文件的讀/寫(xiě)
SD卡上文件都是以簇為單位存取的。讀SD卡上的文件,首先要在FAT初始化之前對(duì)SD卡初始化,將FAT中讀寫(xiě)一個(gè)扇區(qū)指向SD卡中讀寫(xiě)扇區(qū)函數(shù),然后獲取文件所在邏輯盤(pán)的信息,計(jì)算數(shù)據(jù)所在扇區(qū),讀取扇區(qū)中的數(shù)據(jù),最后調(diào)整文件指針。
2.4.3 文件的刪除
刪除文件時(shí),不涉及數(shù)據(jù)區(qū)的操作,只須在文件的目錄登記項(xiàng)上作一個(gè)刪除標(biāo)記,并把文件在FAT表中所占用的簇標(biāo)記為“空簇”。
結(jié) 語(yǔ)
本設(shè)計(jì)將Micro SD卡的存儲(chǔ)方式應(yīng)用到電腦橫機(jī)控制系統(tǒng)中,簡(jiǎn)化了花型文件數(shù)據(jù)存儲(chǔ)設(shè)計(jì),減小了系統(tǒng)的尺寸,提高了系統(tǒng)的可靠性,使得花型文件的讀出和存取簡(jiǎn)單易行,裁剪了FAT32實(shí)現(xiàn)了嵌入式文件系統(tǒng),提高了系統(tǒng)的存儲(chǔ)能力。采用ATmegal28L高性能單片機(jī)的串行外設(shè)接口SPI,滿足訪問(wèn)Micro SD卡的功能要求,加快了整個(gè)系統(tǒng)的設(shè)計(jì)進(jìn)程。實(shí)踐證明,該文件系統(tǒng)讀取Mi―cro SD卡上花型文件的速度滿足該控制系統(tǒng)的要求。該嵌入式文件系統(tǒng)只需對(duì)底層驅(qū)動(dòng)進(jìn)行簡(jiǎn)單修改就可移植到CF卡、閃存等其他的存儲(chǔ)介質(zhì)上。
評(píng)論