應用專用命令app_cmd (CMD55)
當卡接收到這個命令時,會使卡將下面的命令解釋為一個特定于應用程序的命令ACMD。ACMD提供命令擴展,具有與常規命令相同的結構,并且可能具有相同的CMD號。卡通過它出現在APP_CMD之后的事實將其識別為ACMD。當沒有定義ACMD時,卡將其視為常規命令。
例如,如果一張卡有ACMD13的定義,但沒有ACMD7的定義,則APP_CMD后的命令13被解釋為非規則CMD13,而APP CMD后的CMD7被解釋為規則CMD7。為了使用一個ACMD,主機應該是:
(1)當發送APP_CMD時,響應設置了APP_CMD位,向主機發出ACMD現在被期望的信號。
(2) ACMD55不存在。如果連續發出多個CMD55,則每個響應中的APP_CMD位設置為1 ,緊跟在最后一個CMD55之后發出的命令解釋為ACMD。當在CMD55之后直接發出多個命令時(CMD55除外),第一個命令解釋為ACMD,后面的命令解釋為普通命令
(3)如果發送了已定義的ACMD并且是合法的,則響應設置了APP CMD位,表明接受的命令被解釋為ACMD。
(4)如果發送了一個未定義的ACMD并且它是合法的,則響應將清除APP_CMD位,表明接受的命令被解釋為正常的CMD。
(5)如果發送了已定義或未定義的ACMD,且該ACMD是非法的,則按非法命令處理。下一個R1/R6響應中指示“非法命令錯誤”,主機應忽略響應中的APP_CMD狀態。下一個命令作為普通命令處理。
主機不能使用未定義的acmd作為常規命令,即使規范中有定義。以下ACMD號碼是為SD存儲卡專有應用保留的,任何SD存儲卡制造商不得使用:ACMD6、ACMD13、ACMD17-26、ACMD38-49、ACMD51。
在上述解釋中,在詳細命令描述部分中定義的命令是“已定義”命令,而在該部分中未定義的命令是“未定義”命令。“合法”表示在當前狀態下接受已定義或未定義的命令,“非法”表示在當前狀態下不接受已定義或未定義的命令。
通用命令- GEN_CMD(CMD56)
GEN_CMD (CMD56)是一個特定于廠商的可選命令。命令操作由本規范定義。GEN CMD的總線事務與單個塊讀或寫命令(CMD24或CMD17)相同,并且僅在“傳輸狀態”下接受。響應類型為R1。兩者的區別在于參數表示數據傳輸的方向(而不是地址),數據塊不是內存有效負載數據,而是具有特定于供應商的格式和含義。在發送CMD56之前,需要選中卡片(“tran_state”)。
在標準容量SDl存儲卡的情況下,數據塊大小是用CMD16定義的block_LEN。在SDHCl和SDXC卡的情況下,塊長度固定為512byte。參數的位0表示數據傳輸的方向;0表示寫操作,1表示讀操作。廠商可以對該命令的參數和數據塊內容的第31-1位定義特定的格式。
然而,應該考慮到卡應該防止損壞卡接收到意外的格式。主機在發放CMD56前應確認CID,使卡支持CMD56格式。
切換功能命令
切換功能命令(CMD6)用于切換或擴展內存卡功能。
目前定義了四個功能組:
(1)接入方式:SD總線接口速度模式的選擇。
(2)指揮系統:特定的功能可以通過一組共享命令進行擴展和控制。
(3)駕駛員強度在UHS-I模式中選擇合適的輸出驅動器強度取決于主機環境。
(4)限流選擇在UHS-I模式下限制卡的最大電流取決于主機的供電能力和放熱能力。
這是在物理層規范版本1.10中引入的。因此,與早期版本的規范兼容的卡不支持它。在使用CMD6之前,主機應該檢查SCR寄存器中的“SD_SPEC”字段,以確定卡符合哪個版本的規范。也可以通過CSD中CCC的bit10來檢查對CMD6的支持。
版本1.10及更高版本的SD存儲卡必須支持CMD6。CMD6在“轉移狀態”下有效。一旦選擇,通過switch命令,所有功能只在一個電源周期后,CMD6(每個功能組中功能0的模式1操作)或CMDO返回到默認功能。執行電源周期或發出CMDO將使卡復位到“空閑”狀態,所有功能切換回默認功能。
作為對CMD6的響應,SD存儲卡將在CMD線上發送R1響應,在DAT線上發送512位狀態。從SD總線事務的角度來看,這是一個標準的單塊讀事務,該命令的超時值為100毫秒,與讀命令相同。如果狀態數據發生CRC錯誤,主機應該發出一個電源周期。CMD6功能切換周期在狀態數據結束位后的8個時鐘內。當CMD6改變總線行為(即訪問模式)時,主機被允許使用新功能(增加/減少CLK頻率超過當前最大CLK頻率),至少8個時鐘后在交換機命令事務結束見下方圖表。
響應CMDO,切換周期在CMDO結束位后的8個時鐘內。當CMD6改變了總線行為(即訪問模式)時,主機被允許啟動初始化過程,至少在CMDO后8個時鐘。
CMD6支持6個功能組,每個功能組支持16個分支(功能)。
在給定的功能組中只能選擇并激活一個功能。每個功能組中的函數0為默認函數(與Spec. 1.01兼容)。
CMD6有兩種使用模式:
模式0(檢查功能)用于查詢卡是否支持某項功能。
模式1(設置功能)用于切換卡的功能。
審核編輯 黃宇
-
NAND
+關注
關注
16文章
1639瀏覽量
135552 -
存儲
+關注
關注
13文章
4069瀏覽量
85156 -
SD
+關注
關注
1文章
154瀏覽量
33505 -
CMD55
+關注
關注
0文章
6瀏覽量
10366
發布評論請先 登錄
相關推薦
評論