<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ī)的MiCrOSD卡讀寫

          ATmega128L單片機(jī)的MiCrOSD卡讀寫

          作者: 時(shí)間:2009-06-30 來源:網(wǎng)絡(luò) 收藏

          剛上電時(shí),Micro SD卡缺省使用專有的SD總線協(xié)議。將Micro SD卡切換到SPI模式,主機(jī)需要發(fā)出命令(2MD0(GO_IDLE_STATE)。Micro SD卡會(huì)檢測(cè)到SPI模式選擇信息,因?yàn)榭ㄟx擇(CS)引腳在該命令和其他所有SPI命令傳送過程中都保持為低電平。Micro SD卡以R1作為響應(yīng)。空閑狀態(tài)位被置為高電平,此時(shí)Micro SD卡進(jìn)入空閑狀態(tài),此階段的SPI時(shí)鐘頻率不能超過400kHz(將SPCR寄存器設(shè)置為0x53)。Micro SD卡進(jìn)入SPI模式后,主機(jī)應(yīng)該先發(fā)一條初始化指令CMD1。此時(shí)可將SPI頻率設(shè)置為高速模式(將SPCR寄存器設(shè)置為0x50)。然后發(fā)送命令CM1359決定是否開啟CRC校驗(yàn),設(shè)置讀、寫塊數(shù)據(jù)長(zhǎng)度,最后延遲8個(gè)時(shí)鐘后返回。MicroSD初始化流程如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/173684.htm

          2.2 Micro SD卡單塊數(shù)據(jù)
          從Micro SD卡中讀取一個(gè)數(shù)據(jù)塊只需要主機(jī)發(fā)送CMDl7(READl_SINGLE_BLOCK)命令,并將起始地址作為參數(shù)(此地址必須和介質(zhì)上一個(gè)塊的起始位置對(duì)齊),然后.Micro SD卡會(huì)驗(yàn)證這個(gè)字節(jié)地址,并以一個(gè)R1命令作為響應(yīng)。完成了Micro SD卡讀取操作后,先發(fā)送一個(gè)起始數(shù)據(jù)命令,接著發(fā)送固定數(shù)量的數(shù)據(jù),最后是兩個(gè)字節(jié)CRC校驗(yàn)。
          從Mimro SD卡中寫入一個(gè)數(shù)據(jù)塊和讀取數(shù)據(jù)塊相似,需要主機(jī)發(fā)送CMI)24(wRITE_BLOCK)命令啟動(dòng)寫操作過程,Micro SD卡將以R1命令響應(yīng)格式進(jìn)行應(yīng)答。如果命令響應(yīng),則進(jìn)行寫操作,主機(jī)發(fā)送起始令牌,然后發(fā)送固定數(shù)量的數(shù)據(jù)字節(jié)(512字節(jié)),返回一個(gè)數(shù)據(jù)響應(yīng)令牌指示需要寫入的數(shù)據(jù)是否完成,最后是兩個(gè)字節(jié)的CRC校驗(yàn),單塊數(shù)據(jù)流程如圖3所示。

          2.3 Micro SD卡的文件存儲(chǔ)
          為了方便ATmegal28L對(duì)Micro SD卡中文件進(jìn)行操作,以及要使Micro sD卡的數(shù)據(jù)能在PC機(jī)上得到正確的訪問,需要在Micro SD卡上創(chuàng)建它們支持的文件系統(tǒng),這就需要設(shè)計(jì)自己的文件管理系統(tǒng)FAT。FAT文件系統(tǒng)有FATl2、FATl6、FAT32,它們的主要不同是在磁盤分配表結(jié)構(gòu)中每個(gè)記錄所占的位數(shù)不同。FAT32文件分配表每一表項(xiàng)為32位。本文選擇建立FAT32文件系統(tǒng)。
          文件分配表系統(tǒng)的分區(qū)應(yīng)該有以下幾部分:
          ①保留區(qū),F(xiàn)AT32稱這個(gè)區(qū)域?yàn)橐龑?dǎo)扇區(qū)(bootsec-tOr)。它是操作系統(tǒng)可以直接訪問的第一個(gè)扇區(qū),主要包括與引導(dǎo)操作系統(tǒng)有關(guān)的引導(dǎo)參數(shù)和引導(dǎo)程序,還有就是與FAT文件系統(tǒng)有關(guān)的BPB參數(shù)(Bios ParameterBlock)。
          ②文件分配表,記錄磁盤上簇的分配情況,在條件允許的情況下,通常都會(huì)把文件分配表全部讀到內(nèi)存中去。
          ③根目錄區(qū),記錄根目錄的信息。文件和目錄數(shù)據(jù)區(qū),是各種文件數(shù)據(jù)的實(shí)際存放區(qū)域。
          一個(gè)文件管理系統(tǒng)的工作過程主要有三步:第一步是讀取MBR區(qū),主要是讀DPT表,了解存儲(chǔ)設(shè)備分區(qū)情況。第二步,讀取BPB信息,確定FAT文件系統(tǒng)的各種基本參數(shù)。第三步,顯示當(dāng)前目錄位置。文件系統(tǒng)的實(shí)現(xiàn),就是把對(duì)應(yīng)的文件目錄操作拆成相應(yīng)的扇區(qū)命令就可以了。因此,應(yīng)該在FAT初始化的時(shí)候?qū)⒆x寫扇區(qū)函數(shù)指針指向Micro SD卡的讀寫函數(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(),打開目錄;FAT_MkDir(),建目錄;FAT_RmI)ir(),刪除目錄;FAT_Rename(),重命名;FAT_Create(),創(chuàng)建文件;FAT_Open(),打開文件;FAT_write(),寫文件;FAT_Read(),讀文件;FAT_Close(),關(guān)閉打開文件;FAT_Delete(),刪除文件。下面對(duì)文件的打開、讀/寫和刪除函數(shù)接口作詳細(xì)介紹。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(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); })();