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

2021-10-13 05:23:57 字數 4746 閱讀 6483

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

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

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

sd卡可以是通常具有高達4 gb的儲存容量的標準sd卡,也可以是高達64 gb的高容量卡(sdhc)以及達到tb級的擴充套件容量(sdxc)。

sd卡可以在sd匯流排模式spi匯流排模式下執行,通常可以使用sdio匯流排或者spi對sd進行驅動;

下面主要以micro sd為例,就sdio模式和spi模式做簡單做一下介紹;

microsd引腳輸出,sd模式

引腳引腳名稱訊號功能

1dat2資料位2

2cd / dat3卡檢測/資料位3

3cmd命令列

4vdd電源電壓2.7v / 3.6v

5clk時鐘

6vs

7dat0資料位0

8dat1資料位1

microsd引腳輸出,spi模式

引腳引腳名稱訊號功能

1nc沒有連線

2/cs片選

3di主輸出/從屬(mosi)

4vdd電源電壓2.7v / 3.6v

5clk時鐘

6vss

7do主進/從出(miso)

8rsv已預留

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來保持與漏極開路和推挽模式的相容性。

這是從sd/mmc外設到sd卡插槽的4 bit連線的示例。

使用data[3..0]clkcmd訊號。

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

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

幸運的是,當sd在移動裝置中如此普遍地傳播時,已經有整合方案,它可以一次實現所有這些功能。

cm1624是emi濾波器和線路終端裝置的組合,帶有整合的tvs二極體,可用於t-flash/microsd介面。

下面在spi模式下使用的sd卡的示例,根據sd association的規範連線了misomosiclkcs訊號。

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

sdio模式或者spi模式下,磁軌都以高資料速率傳輸資料和時鐘訊號。

為了避免訊號出現毛刺,必須考慮訊號傳播時間,以確保所有資料在時鐘觸發讀取或寫入的操作之前,介面處穩定。

所有資料訊號的路徑長度必須在十分之幾公釐的長度內匹配,並且時鐘長度必須長約1公釐。

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

本文簡單介紹了sd卡的分類以及常見屬性,另外還簡單介紹了sd卡的協議,在硬體設計上給出了spi匯流排和sdio匯流排的示例電路,篇幅有限,軟體部分暫時沒有進行展開介紹;

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

SD卡學習(SDIO和SPI模式)

sd卡的操作模式 sd卡模式 sdio spi模式 預設為sd模式 其中sd卡模式的訊號線有 clk cmd dat0 dat3,6根線。spi模式的訊號線有 cs clk miso dataout mosi datain 4根線。clk 時鐘同步線 cmd 命令訊號線,主機發出的命令以及從機對命令...

SD卡SPI模式下

sd卡學習 sdio和spi模式 sd卡的操作模式 sd卡模式 sdio spi模式 預設為sd模式 其中sd卡模式的訊號線有 clk cmd dat0 dat3,6根線。spi模式的訊號線有 cs clk miso dataout mosi datain 4根線。sd卡只能使用3.3v的i o電平...

SDIO協議讀寫SD卡之卡識別模式介紹

sd卡的工作模式分為兩類,分別為卡識別模式和資料傳輸模式,在sd卡上電或者主機發出復位命令之後的預設工作模式為卡識別模式。本文主要對卡識別模式進行介紹。在利用sdio協議進行sd卡驅動開發中,與spi協議驅動序列flash類似,也是利用各種不同的命令實現對sd卡的控制。此處進行乙個大致的闡述。在sd...