一個完整的SD卡操作過程是:主機(單片機等)發起“命令”,SD卡根據命令的內容決定是 否發送響應信息及數據等,如果是數據讀/寫操作,主機還需要發送停止讀/寫數據的命令來結束 本次操作,這意味著主機發起命令指令后,SD卡可以沒有響應、數據等過程,這取決于命令的 含義。這一過程如下圖 所示。:
SD卡有多種命令和響應,它們的格式定義及含義在SD協議中有詳細介紹,發送命令時主機只能通過CMD引腳發送給SD卡,串行逐位發送時先發送最高位(MSB),然后是次高位這樣類推……。
SD卡的命令格式,如下表所示:
SD卡的命令固定為48位,由6個字節組成,字節1的最高2位固定為01,低6位為命令 號(比如CMD16,為10000B即16進制的0X10,完整的CMD16,第一個字節為01010000,即0X10+0X40)。字節2~5為命令參數,有些命令是沒有參數的。字節6的高七位為CRC值, 最低位恒定為1。
SD卡的命令總共有12類,分為Class0~Class11,本章,此文僅介紹幾個比較重要的命令,
如下表所示:
上表中,大部分的命令是初始化的時候用的,而表中的 R1、R1b、R2、R3、R6和R7等是SD卡的應答信號。在主機發送有響應的命令后,SD卡都會給出相對應的應答,以告知主機該 命令的執行情況,或者返回主機需要獲取的數據,具體場景如下圖所示:
SD的響應大體分為短響應48bit和長響應136bit,每個響應也有規定好的格式。R1、R1b、
R3、R6和R7屬于短響應,而R2屬于長響應,它們具體作用如下表所示。
SD卡的響應因使用接口不同,比如SDIO和SPI接口,它們的響應種類以及響應格式也是 不同。這里以SDIO接口下的R1響應為例,其內容格式如下表所示:
-
單片機
+關注
關注
6037文章
44558瀏覽量
635302 -
SD卡
+關注
關注
2文章
565瀏覽量
63901 -
SD
+關注
關注
1文章
163瀏覽量
33678
發布評論請先 登錄
相關推薦
評論