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