SD卡學習(SDIO和SPI模式)

2021-09-25 01:20:22 字數 3279 閱讀 7186

sd卡的操作模式:sd卡模式(sdio)、spi模式(預設為sd模式)。

其中sd卡模式的訊號線有:clk、cmd、dat0-dat3,6根線。

spi模式的訊號線有:cs、clk、miso(dataout)、mosi(datain),4根線。

clk 時鐘同步線

cmd 命令訊號線,主機發出的命令以及從機對命令的響應都是通過這條線進行傳輸

dat[3:0] 表示4條資料線,主機和從機的資料都是從這四條資料線上傳輸

sd卡只能使用3.3v的i/o電平。spi模式下訊號線要加10-100k的上拉電阻。

sd卡有五個暫存器:

名稱寬度

描述cid

128卡標識暫存器

rca16

csd128

scr64

sd配置暫存器:sd卡特定資訊資料

ocr32

操作條件暫存器

sd卡的命令格式:

命令cmd0就是0,cmd16就是16,以此類推。

spi命令格式為6位元組構成,高位在前(msb)。

位元組1位元組2-5

位元組67

65-001

command

位元組1的最高2位固定是01,低6位為命令號(cmd0就是0,cmd16就是16,以此類推),位元組2-5為命令引數,有些命令是沒有引數的;位元組6的高7位為crc,最低位恒為1。

sd卡的命令總共有12類,下表為幾個比較重要的命令:

sd卡的主要相關各種命令解析

cmd0: sd卡進入idle和復位sd卡

cmd1: 讀ocr,是否為sd卡

cmd2: 獲取卡cid資訊

cmd3: 獲取sd卡所分配的相對位址

cmd9: 獲取sd卡的儲存資訊(容量、塊大小等)

cmd12:停止傳輸操作

cmd13:獲取卡的狀態

cmd16:設定sd卡塊大小

cmd17:使sd卡進入傳輸狀態、讀取單個塊

cmd18: 使sd卡進入傳輸狀態、讀取多個塊,直到收到cmd12為止

cmd24:使sd卡進入傳輸狀態、寫入單個塊

cmd25: 使sd卡進入傳輸狀態、寫入多個塊

命令引數

回應描述

cmd0(0x00)

none

r1復位sd卡

cmd8(0x08)

vhs+check pattern

r7傳送介面狀態命令

cmd9(0x09)

none

r1讀取卡特定資料暫存器

cmd10(0x0a)

none

r1讀取卡標誌資料暫存器

cmd16(0x10)

塊大小r1

設定塊大小(位元組數)

cmd17(0x11)

位址r1

讀取乙個塊的資料

cmd24(0x18)

位址r1

寫入乙個塊的資料

cmd41(0x29)

none

r3傳送給主機容量支援資訊和啟用卡初始化過程

cmd55(0x37)

none

r1告訴sd卡,下乙個是特定應用命令

cmd58(0x3a)

none

r3讀取ocr暫存器

sd卡和微控制器的通訊採用傳送應答機制:

初始化sd卡過程:

spi操作模式下:在sd卡收到復位命令時,cs為有效電平(低電平),則spi模式被啟用,在傳送cmd之前要先傳送74個時鐘,64個為內部供電上公升時間,10個用於sd卡同步;之後才能開始cmd操作,在初始化時clk時鐘不能超過400khz。

接著我們看看sd卡的初始化,** sd卡的典型初始化過程如下:**

1、初始化與sd卡連線的硬體條件(mcu的spi配置,io口配置);

2、上電延時(>74個clk);

3、復位卡(cmd0),進入idle狀態;

4、傳送cmd8,檢查是否支援2.0協議;

5、根據不同協議檢查sd卡(命令包括:cmd55、cmd41、cmd58和cmd1等);

6、取消片選,發多8個clk,結束初始化

這樣我們就完成了對sd卡的初始化,注意末尾傳送的8個clk是提供sd卡額外的時鐘,完成某些操作。通過sd卡初始化,我們可以知道sd卡的型別(v1、v2、v2hc或者mmc),在完成了初始化之後,就可以開始讀寫資料了。

sd卡讀取資料,這裡通過cmd17來實現,具體過程如下:

1、傳送cmd17;

2、接收卡響應r1;

3、接收資料起始令牌0xfe;

4、接收資料;

5、接收2個位元組的crc,如果不使用crc,這兩個位元組在讀取後可以丟掉。

6、禁止片選之後,發多8個clk;

以上就是乙個典型的讀取sd卡資料過程,sd卡的寫於讀資料差不多,寫資料通過cmd24來實現,具體過程如下:

1、傳送cmd24;

2、接收卡響應r1;

3、傳送寫資料起始令牌0xfe;

4、傳送資料;

5、傳送2位元組的偽crc;

6、禁止片選之後,發多8個clk;

以上就是乙個典型的寫sd卡過程。關於sd卡的介紹,我們就介紹到這裡,更詳細的介紹請參考光碟sd卡的參考資料(sd卡2.0協議)。

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

sd卡 secure digital card 是sd卡協會開發的低成本,非易失性儲存卡格式 相比較於ram,sd卡掉電資料不丟失 隨著本世紀電子技術的高速發展,對於這種中等型號,節能 節省空間的儲存器裝置的需求一直在快速增長 sd卡還具有不同的尺寸或形狀因子,包括standard sd卡,mini...

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...