mmc/eMMC/SD-card/SPI/SDIO


起初引用了一篇MMC相關文檔,然而終究還是有些不明所以,忽覺博客不就是加工整理自己的思想嗎,遂百度眾文,整理歸納如下.

MMC(multiMedia card)是早起記憶卡標准,於1997年由西門子和SanDisk推出了多媒體卡;SD卡(Secure Digital Memory Card)是一種基於半導體快閃記憶器的新一代記憶設備。於1999年8月由日本松下、東芝及美國SanDisk公司開發研制。

SD與MMC都是存儲設備的標准,包括物理硬件與協議軟件,SD的軟件協議與MMC的軟件協議是不同的協議,物理硬件也不同。SD相對MMC增加了數據權限功能,防止數據被他人復制,增加了安全性。

SD卡與MMC卡的引腳定義是不一樣的,接口不兼容,當然現在市面上應該很難見到MMC存儲卡了。

 

MMC協議支持兩種模式:SPI和MMC,MMC模式為MMC協議的標准模式,SPI模式為MMC的單線模式,以保證MMC設備在現有硬件上的兼容性。

目前有這么幾種類型的存儲卡以MMC框架為基礎,它們分別是:MMC Plus、MMC Mobile和MMC Micro、eMMC,2018年存活的也就剩下eMMC了。

SD協議支持三種模式:4-wire mode, 1-wire mode, SPI mode, SPI mode是required,應該也是出於兼容性考慮的吧。三種模式的信號定義如下:

SD與 MMC 的兼容性

MMC協議與SD協議都支持SPI mode,如果有SPI總線,無論使用SD卡還是MMC卡都不是問題。雖然MMC的SPI mode不是required,然而基本上所有的MMC都支持SPI mode。SPI模式支持不帶CRC校驗的傳輸方式,可以降低硬件要求

MMC 的 SPI mode 最大傳輸速率為 20 Mbit/s; SD 的 SPI mode 最大傳輸速率為 25 Mbit/s。

MMC卡與SD卡兩者在時序上也是一致的,讀寫命令控制也完全一樣,這就是為什么經常把兩者混在一起寫的原因。

差異。

一。在數據位寬方面,MMC卡最大支持8BIT,而SD卡只能支持4BIT傳輸。

二、在卡的激活過程,MMC使用CMD1來進行激活,而SD卡使用ACMD41來進行激活的。於是,這兩條命令也成了主機區分兩種卡的類型的關鍵。在獲取卡的RCA地址時,MMC卡是由主機分配RCA給設備,而SD卡則是由設備返回RCA給主機。

三、在CMD6的使用方法上也有很大不同。MMC有EXT_CSD的概念,主要用CMD8進行讀取,CMD6進行設置。而SD卡則只用CMD6進行UserFunction的設置。SD卡的CMD8主要用於區別SD1.0和SD2.0。

四、MMC還支持CMD14和CMD19進行主線測試,從而選擇合適總線進行通信。SD則不支持。另外,MMC卡還支持CMD11、CMD20這類數據流操作,因此較多用於媒體設備上。MMC還支持Boot等高級的用法(SD也支持)

 

SDIO是在SD軟件協議上定義的標准接口,透過 SD 的 I/O接腳來連接外部外圍,並且透過 SD 上的 I/O 數據接位與這些外圍傳輸數據,相對SD增加了低速標准。

什么是MCI:MCI是Multimedia Card Interface的簡稱,即多媒體卡接口。上述的MMC,SD,SDI卡定義的接口都屬於MCI接口。MCI這個術語在驅動程序中經常使用,很多文件,函數名字都包括”mci”.

其他各種存儲卡:xD卡,記憶棒(memory stick), CF卡,SM(Smart media)卡, 慢慢消失在歷史的長河之中。

SD Memory Card Spec(ver 1.0) / MMC Spec(2.11) compatible。按照spec,物理規范應該也是兼容的,已經找不到MMC Spec(2.11) ,待核實,不過其實核實的意義也不大了。

 

 eMMC

eMMC是當前使用很多的設備。eMMC為具備MMC協議標准的芯片,故名eMMC-embeded MMC, 嵌入式MMC,封裝形式為IC。

eMMC為具備MMC協議的芯片。然而MMC支持SPI。

實際查看eMMC的datasheet,V4.41 eMMC不支持 SPI mode,但是支持X1,X4的mode。所以,Host具備SPI無法向eMMC內存儲數據,必須為SDIO方可向eMMC內部存數據。SPI模式支持不帶CRC校驗的傳輸方式可能是原因。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM