新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SPI模式下MMC卡的讀寫(xiě)機(jī)制

SPI模式下MMC卡的讀寫(xiě)機(jī)制

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


3 的讀寫(xiě)實(shí)現(xiàn)

3.1 初始化

在對(duì)讀寫(xiě)之前要進(jìn)行初始化操作,這是確保MMC卡能在下進(jìn)行正常數(shù)據(jù)讀寫(xiě)的前提,MMC卡上電后默認(rèn)進(jìn)入MMC模式,等待至少74個(gè)時(shí)鐘周期后,片選信號(hào)置低,發(fā)送CMD0,CMD0的命令索引位是000000,即發(fā)送命令字0x40、0x0、0x0、0x0、0x0、0x95。如果收到應(yīng)答信號(hào)01H,則表示出錯(cuò)。然后向MMC卡發(fā)送CMD1,CMD1命令索引位是000001。因此進(jìn)入閑置狀態(tài)后CRC校驗(yàn)?zāi)J(rèn)關(guān)閉,故CRC校驗(yàn)位可取任意值。受到正確的應(yīng)答信號(hào)00H之后,MMC卡即進(jìn)入;如果收到應(yīng)答信號(hào)不是00H,則重發(fā)CMD1直到收到正確的應(yīng)答。初始化過(guò)程如圖2所示。

MMC初始化過(guò)程

3.2 MMC卡塊讀寫(xiě)

初始化完成后,可使用默認(rèn)的讀寫(xiě)長(zhǎng)度(512字節(jié))進(jìn)行MMC卡的讀寫(xiě);也可用CMD16來(lái)設(shè)置MMC卡的塊讀取長(zhǎng)度,可以是1-512字節(jié)之間的任意值。但是對(duì)MMC卡的寫(xiě)過(guò)程則要求塊長(zhǎng)度必須為512字節(jié)。MMC卡讀寫(xiě)數(shù)據(jù)時(shí)使用的是絕對(duì)地址,即從0開(kāi)始編號(hào)的32位地址,這里使用塊號(hào)來(lái)進(jìn)行讀寫(xiě),塊號(hào)是從0開(kāi)始編號(hào)的,且每塊的大小為一扇區(qū)(即512字節(jié)),故開(kāi)始都必須將扇區(qū)號(hào)轉(zhuǎn)換成絕對(duì)地址。

(1)讀取數(shù)據(jù)塊

向MMC卡發(fā)送CMD17,收到有效應(yīng)答信號(hào)0x00后,開(kāi)始接收數(shù)據(jù),數(shù)據(jù)由數(shù)據(jù)起始令牌和數(shù)據(jù)塊組成,其中起始令牌值為0xFE。當(dāng)收起起始令牌后,隨后接收數(shù)據(jù)塊,讀操作如圖3所示。

MMC讀操作

(2)寫(xiě)入數(shù)據(jù)塊

向MMC卡發(fā)送CMD24,收到有效應(yīng)答信號(hào)0x00后,開(kāi)始發(fā)送數(shù)據(jù)。數(shù)據(jù)同樣由數(shù)據(jù)起始令牌(0xFE)和數(shù)據(jù)塊組成。寫(xiě)操作如圖4所示。

MMC寫(xiě)操作

4 小結(jié)

SPI總線接口簡(jiǎn)單易用、兼容性好,使用SPI接口實(shí)現(xiàn)對(duì)MMC卡的讀寫(xiě)操作是非常簡(jiǎn)單有效的。用SPI接口可以實(shí)現(xiàn)每秒約1MB的讀寫(xiě)速度,而用MMC接口則可以達(dá)到每秒約3MB的讀寫(xiě)速度。雖然讀寫(xiě)速度降低了一些,但是已經(jīng)可以基本滿足讀寫(xiě)速度的要求。


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

關(guān)鍵詞: SPI模式 MMC卡 讀寫(xiě)機(jī)制

評(píng)論


相關(guān)推薦

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

關(guān)閉