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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ATmega128L單片機(jī)的Micro SD卡讀寫(xiě)

          ATmega128L單片機(jī)的Micro SD卡讀寫(xiě)

          作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏


          文件分配表系統(tǒng)的分區(qū)應(yīng)該有以下幾部分:

          ①保留區(qū),F(xiàn)AT32稱(chēng)這個(gè)區(qū)域?yàn)橐龑?dǎo)扇區(qū)(bootsec-tOr)。它是操作系統(tǒng)可以直接訪(fǎng)問(wèn)的第一個(gè)扇區(qū),主要包括與引導(dǎo)操作系統(tǒng)有關(guān)的引導(dǎo)參數(shù)和引導(dǎo)程序,還有就是與FAT文件系統(tǒng)有關(guān)的BPB參數(shù)(Bios ParameterBlock)。

          ②文件分配表,記錄磁盤(pán)上簇的分配情況,在條件允許的情況下,通常都會(huì)把文件分配表全部讀到內(nèi)存中去。

          ③根目錄區(qū),記錄根目錄的信息。文件和目錄數(shù)據(jù)區(qū),是各種文件數(shù)據(jù)的實(shí)際存放區(qū)域。

          一個(gè)文件管理系統(tǒng)的工作過(guò)程主要有三步:第一步是讀取MBR區(qū),主要是讀DPT表,了解存儲(chǔ)設(shè)備分區(qū)情況。第二步,讀取BPB信息,確定FAT文件系統(tǒng)的各種基本參數(shù)。第三步,顯示當(dāng)前目錄位置。文件系統(tǒng)的實(shí)現(xiàn),就是把對(duì)應(yīng)的文件目錄操作拆成相應(yīng)的扇區(qū)讀寫(xiě)命令就可以了。因此,應(yīng)該在FAT初始化的時(shí)候?qū)⒆x寫(xiě)扇區(qū)函數(shù)指針指向Micro SD卡的讀寫(xiě)函數(shù):



          2.4 FAT32文件系統(tǒng)應(yīng)用接口函數(shù)的實(shí)現(xiàn)

          FAT32文件系統(tǒng)向應(yīng)用層提供的接口有:FAT_FindFreeCluster(),查找空簇;FAT_ModifyFAT(),修改FAT 項(xiàng);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(),刪除文件。下面對(duì)文件的打開(kāi)、讀/寫(xiě)和刪除函數(shù)接口作詳細(xì)介紹。

          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)部名稱(chēng)及所在目錄的首簇號(hào),判斷目錄是否存在。最后,獲?。篎DT登記項(xiàng),判斷是否為目錄,刪除文件,添加FDT表項(xiàng),修改打開(kāi)文件的信息登記項(xiàng),返回句柄。文件以只寫(xiě)方式打開(kāi)文件的流程如圖4所示。



          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,滿(mǎn)足訪(fǎng)問(wèn)Micro SD卡的功能要求,加快了整個(gè)系統(tǒng)的設(shè)計(jì)進(jìn)程。實(shí)踐證明,該文件系統(tǒng)讀取Mi—cro SD卡上花型文件的速度滿(mǎn)足該控制系統(tǒng)的要求。該嵌入式文件系統(tǒng)只需對(duì)底層驅(qū)動(dòng)進(jìn)行簡(jiǎn)單修改就可移植到CF卡、閃存等其他的存儲(chǔ)介質(zhì)上。

          參考文獻(xiàn)

          1. 陳冬云 ATmega128 單片機(jī)原理與開(kāi)發(fā)指導(dǎo) 2006
          2. 段勇 基于MSP430單片機(jī)的SD卡讀寫(xiě) 2007(9)
          3. 張洪濤.莫文承.李兵兵 基于 SPI協(xié)議的SD卡讀寫(xiě)機(jī)制與實(shí)現(xiàn)方法 [期刊論文] -電子元器件應(yīng)用2008(3)
          4. 鄧劍.楊曉非.廖俊卿 FAT 文件系統(tǒng)原理及實(shí)現(xiàn) [期刊論文] -計(jì)算機(jī)與數(shù)字工程2005(9)
          5. 左源.劉新寧.師超 一種SD卡控制器的硬件實(shí)現(xiàn) [期刊論文] -電子器件2007(2)

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁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); })();