一個完整的SD卡操作過程是:主機(單片機等)發(fā)起“命令”,SD卡根據(jù)命令的內容決定是 否發(fā)送響應信息及數(shù)據(jù)等,如果是數(shù)據(jù)讀/寫操作,主機還需要發(fā)送停止讀/寫數(shù)據(jù)的命令來結束 本次操作,這意味著主機發(fā)起命令指令后,SD卡可以沒有響應、數(shù)據(jù)等過程,這取決于命令的 含義。這一過程如下圖 所示。:

SD卡有多種命令和響應,它們的格式定義及含義在SD協(xié)議中有詳細介紹,發(fā)送命令時主機只能通過CMD引腳發(fā)送給SD卡,串行逐位發(fā)送時先發(fā)送最高位(MSB),然后是次高位這樣類推……。
SD卡的命令格式,如下表所示:

SD卡的命令固定為48位,由6個字節(jié)組成,字節(jié)1的最高2位固定為01,低6位為命令 號(比如CMD16,為10000B即16進制的0X10,完整的CMD16,第一個字節(jié)為01010000,即0X10+0X40)。字節(jié)2~5為命令參數(shù),有些命令是沒有參數(shù)的。字節(jié)6的高七位為CRC值, 最低位恒定為1。
SD卡的命令總共有12類,分為Class0~Class11,本章,此文僅介紹幾個比較重要的命令,
如下表所示:


上表中,大部分的命令是初始化的時候用的,而表中的 R1、R1b、R2、R3、R6和R7等是SD卡的應答信號。在主機發(fā)送有響應的命令后,SD卡都會給出相對應的應答,以告知主機該 命令的執(zhí)行情況,或者返回主機需要獲取的數(shù)據(jù),具體場景如下圖所示:

SD的響應大體分為短響應48bit和長響應136bit,每個響應也有規(guī)定好的格式。R1、R1b、
R3、R6和R7屬于短響應,而R2屬于長響應,它們具體作用如下表所示。

SD卡的響應因使用接口不同,比如SDIO和SPI接口,它們的響應種類以及響應格式也是 不同。這里以SDIO接口下的R1響應為例,其內容格式如下表所示:
-
單片機
+關注
關注
6072文章
45267瀏覽量
661149 -
SD卡
+關注
關注
2文章
580瀏覽量
67299 -
SD
+關注
關注
1文章
171瀏覽量
35264
發(fā)布評論請先 登錄
u-boot命令之EMMC和SD卡操作命令詳解
使用HSPI與SD卡通信,卡都不會響應初始CMD0設置命令的原因?
SD卡命令響應超時怎么解決?
sd card cmd2/3沒有響應是為什么?
SD卡命令解釋
SD卡與SD卡座電路
U盤和SD卡高速文件管理控制芯片CH378的輔助命令和USB基本傳輸命令
SD nand 與 SD卡的SPI模式驅動
瀚海微SD NAND存儲功能描述(17)命令類d

SD的命令和響應
評論