SD卡的SDIO模式/SPI模式設計掃盲

SD

SD卡(secure digital card)是SD卡協會開發的低成本,非易失性存儲卡格式(相比較於RAM,SD卡掉電數據不丟失);

隨着本世紀電子技術的高速發展,對於這種中等型號,節能、節省空間的存儲器設備的需求一直在快速增長;

sd卡

SD卡具有SDHC的速度等級,範圍爲2級(以2 MB / s的速度運行),4級(以4MB / s的速度運行),6級(以最高6 MB / s的速度運行)和10級(以最高的速度運行) 10 MB /秒 SDXC卡以“超高速”類運行,並以最高30 Mb/s的速度運行。還有視頻速度等級,數據傳輸速率高達90MB/s。

SD卡速度級別

SD卡還具有不同的尺寸或形狀因子,包括standard SD卡, mini SD卡 and micro SD卡;

卡尺寸分類

SD卡可以是通常具有高達4 GB的存儲容量的標準SD卡,也可以是高達64 GB的高容量卡(SDHC)以及達到TB級的擴展容量(SDXC)。

卡容量

接口

SD卡可以在SD總線模式SPI總線模式下運行,通常可以使用SDIO總線或者SPI對SD進行驅動;

下面主要以micro SD爲例,就SDIO模式和SPI模式做簡單做一下介紹;

microSD引腳輸出,SD模式

引腳 引腳名稱 信號功能
1 DAT2 數據位2
2 CD / DAT3 卡檢測/數據位3
3 CMD 命令行
4 Vdd 電源電壓2.7v / 3.6v
5 Clk 時鐘
6 VS
7 DAT0 數據位0
8 DAT1 數據位1

microSD引腳輸出,SPI模式

引腳 引腳名稱 信號功能
1 NC 沒有連接
2 /CS 片選
3 DI 主輸出/從屬(MOSI)
4 Vdd 電源電壓2.7v / 3.6v
5 Clk 時鐘
6 Vss
7 DO 主進/從出(MISO)
8 RSV 已預留

micro SD的引腳發佈如下圖所示;
micro sd

協議

SD協議中,由於命令數據線和數據線是分開的,因此我們需要關注,命令的傳輸格式,以及數據的傳輸格式;

命令傳輸

命令以48位數據包的形式通過雙向CMD引腳進行傳輸。

這些命令包包括命令索引變量CRC位。該命令始終通過主機發送,最終由SD卡接收。

回傳的響應數據包也爲48位。

整體命令如下圖所示;
命令

48位的命令格式

每個命令的恆定長度爲6個字節。
第一個字節是命令編號和數字64的 加法。
例如
對於CMD0:命令編號0 + 64 = 64 = 0x40(十六進制)。
對於CMD1:十六進制命令號1 + 64 = 65 = 0x41。



隨後是一組四個字節,稱爲參數

這些參數通常包含數據的地址或塊的長度。

最後一個字節是CRC(循環冗餘校驗)字節。如果未啓用CRC功能,則大多數SPI模式下的命令都不需要校驗字節。對於某些命令,例如CMD0,CRC爲0x95,在大多數情況下,發送的是0xFF。

啓用CRC要求您從微控制器發送正確的校驗字節。因此,請確保啓用或禁用了CRC功能。

發送命令的格式如下所示;

幀格式

R1響應0x01表示在響應之前發送的命令已導致卡進入空閒狀態。
響應字節0x00表示命令已被接受,卡將等待建議的事件發生。如果設置了R1響應中的任何其他位,則是錯誤的結果,並且將降低到圖中每個R1響應位中提到的因數。

不同類型的響應及其含義如下所示;

響應

數據傳輸

數據傳輸期間,傳輸的基本單位稱爲塊,通常爲512字節,並通過所有4個數據引腳進行傳輸。同樣,在每次塊傳輸之後,將發送16位CRC數據。

請注意,SD卡在狀態下運行。每個狀態都有不同的命令集,主機可以通過控件更改狀態。

命令和數據信號通過時鐘信號同步。最初,主機使用400KHz時鐘與卡進行通信,但最終它會在傳輸過程中最大提高時鐘速度,效率。

原因:初始化之前,主機不知道它是SD卡還是MMC卡。現在,默認情況下,MMC卡在初始化期間默認工作在漏極開路模式(100-400KHz),而SD卡工作在推輓模式(0-25Mhz)。因此,最初,主機使用400KHz來保持與漏極開路和推輓模式的兼容性。

硬件設計

SDIO

這是從SD/MMC外設到SD卡插槽的4 Bit連接的示例。

使用Data[3..0]CLKCMD信號。

SD卡插槽暴露在外部環境中。即使未與任何其他設備連接,它也可能會受到人體中積累的靜電電荷的影響,而當手指觸摸該靜電時,靜電會釋放到屏蔽中。

爲了符合EMC規範,必須進行一些常規預防措施,以過濾和避免傳導輻射。此外,SD卡規範還規定了上拉電阻和串聯阻抗匹配電阻。

幸運的是,當SD在移動設備中如此普遍地傳播時,已經有集成方案,它可以一次實現所有這些功能。

CM1624是EMI濾波器和線路終端設備的組合,帶有集成的TVS二極管,可用於T-Flash / MicroSD接口。

SPI

下面在SPI模式下使用的SD卡的示例,根據SD Association的規範連接了MISOMOSICLKCS信號。

我們只需要在時鐘線上應用濾波器以在非常惡劣的環境中改善EMC。

SDIO模式或者SPI模式下,磁道都以高數據速率傳輸數據和時鐘信號。

爲了避免信號出現毛刺,必須考慮信號傳播時間,以確保所有數據在時鐘觸發讀取或寫入的操作之前,接口處穩定。

所有數據信號的路徑長度必須在十分之幾毫米的長度內匹配,並且時鐘長度必須長約1毫米。

爲避免串擾,這些走線必須在其周圍和下方保持良好的接地平面,並且還應通過足夠數量的通孔連接各層。

總結

本文簡單介紹了SD卡的分類以及常見屬性,另外還簡單介紹了SD卡的協議,在硬件設計上給出了SPI總線和SDIO總線的示例電路,篇幅有限,軟件部分暫時沒有進行展開介紹;

由於作者能力和水平有限,文中難免存在錯誤和紕漏,請不吝賜教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章