一個完整的SD卡操作過程是:主機(單片機等)發(fā)起“命令”,SD卡根據(jù)命令的內(nèi)容決定是 否發(fā)送響應(yīng)信息及數(shù)據(jù)等,如果是數(shù)據(jù)讀/寫操作,主機還需要發(fā)送停止讀/寫數(shù)據(jù)的命令來結(jié)束 本次操作,這意味著主機發(fā)起命令指令后,SD卡可以沒有響應(yīng)、數(shù)據(jù)等過程,這取決于命令的 含義。這一過程如下圖 所示。:
SD卡有多種命令和響應(yīng),它們的格式定義及含義在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卡的應(yīng)答信號。在主機發(fā)送有響應(yīng)的命令后,SD卡都會給出相對應(yīng)的應(yīng)答,以告知主機該 命令的執(zhí)行情況,或者返回主機需要獲取的數(shù)據(jù),具體場景如下圖所示:
SD的響應(yīng)大體分為短響應(yīng)48bit和長響應(yīng)136bit,每個響應(yīng)也有規(guī)定好的格式。R1、R1b、
R3、R6和R7屬于短響應(yīng),而R2屬于長響應(yīng),它們具體作用如下表所示。
SD卡的響應(yīng)因使用接口不同,比如SDIO和SPI接口,它們的響應(yīng)種類以及響應(yīng)格式也是 不同。這里以SDIO接口下的R1響應(yīng)為例,其內(nèi)容格式如下表所示:
-
單片機
+關(guān)注
關(guān)注
6030文章
44497瀏覽量
632145 -
SD卡
+關(guān)注
關(guān)注
2文章
558瀏覽量
63753 -
SD
+關(guān)注
關(guān)注
1文章
161瀏覽量
33626
發(fā)布評論請先 登錄
相關(guān)推薦
評論