Storage-7---eMMC基礎(chǔ)
1.eMMC操作模式
如圖7-1所示,eMMC系統(tǒng)包含五種操作模式:
1#:開機(jī)模式
2#:設(shè)備識(shí)別模式
3#:中斷模式
4#:數(shù)據(jù)傳輸模式
5#:非活動(dòng)模式
圖7-1:CMD線模式視圖
開機(jī)模式
eMMC提供兩個(gè)容量大小相同的邏輯區(qū)域,用于啟動(dòng)操作,稱為引導(dǎo)分區(qū),引導(dǎo)分區(qū)大小=128K字節(jié)xBOOT_SIZE_MULT (EXT_CSD[226]),大小由廠商在發(fā)貨前確定。
從引導(dǎo)分區(qū)啟動(dòng)設(shè)備的優(yōu)點(diǎn):可以采用SLC-OTF模式,具備專用鎖定、低延遲、高可靠性等特點(diǎn)。主機(jī)也可選擇從用戶區(qū)啟動(dòng)設(shè)備,將啟動(dòng)數(shù)據(jù)保存在用戶區(qū)將減少用戶專用空間。
引導(dǎo)分區(qū)采用pSLC模式,而用戶區(qū)采用MLC模式(即使可以配置為pSLC),相比用戶區(qū),從引導(dǎo)分區(qū)啟動(dòng)設(shè)備的延遲更低,可使用EXT_CSD byte [179],提前選擇主機(jī)啟動(dòng)的分區(qū)。
0x0:未啟用開機(jī)操作模式
0x1:從引導(dǎo)區(qū)1啟動(dòng)
0x2:從引導(dǎo)區(qū)2啟動(dòng)
0x3-0x6:保留
0x7:從用戶區(qū)啟動(dòng)
在下列情況下,發(fā)送開機(jī)操作請(qǐng)求:
1#:CMD線保持低電平超過74個(gè)時(shí)鐘周期
2#:主機(jī)發(fā)送CMD0 (0xFFFFFFFA)命令
達(dá)到上電周期后,接收到帶0xF0F0F0F0參數(shù)的CMD0命令或硬件復(fù)位信號(hào)有效,設(shè)備將進(jìn)入開機(jī)模式:
圖7-2:開機(jī)狀態(tài)機(jī)
設(shè)備識(shí)別模式
開機(jī)操作模式完成后,如果主機(jī)或設(shè)備不支持該設(shè)備識(shí)別模式時(shí),設(shè)備將一直處于設(shè)備識(shí)別模式狀態(tài),直至接收到SET_RCA命令(CMD3)。
圖7-3:eMMC的識(shí)別狀態(tài)圖
數(shù)據(jù)傳輸模式
分配RCA后,設(shè)備將進(jìn)入數(shù)據(jù)傳輸模式,識(shí)別總線上的設(shè)備后,主機(jī)將進(jìn)入數(shù)據(jù)傳輸模式。
圖7-4:eMMC的數(shù)據(jù)傳輸狀態(tài)圖
中斷模式
主機(jī)和設(shè)備同時(shí)進(jìn)入或退出中斷模式,在中斷模式下,無(wú)法進(jìn)行數(shù)據(jù)傳輸,只允許設(shè)備或主機(jī)發(fā)送中斷服務(wù)請(qǐng)求。
2.eMMC設(shè)備初始化和主機(jī)系統(tǒng)延遲
圖7-5是eMMC初始化流程的時(shí)間軸,從軸線可以看到,從上電開始,eMMC要先進(jìn)入預(yù)空閑狀態(tài),收到啟動(dòng)請(qǐng)求之后再將關(guān)鍵程序指令發(fā)送給主機(jī),主機(jī)完成加載啟動(dòng)后直至主機(jī)使用,這一長(zhǎng)段時(shí)間可以理解為開機(jī)時(shí)間,開機(jī)時(shí)間的長(zhǎng)短很大一部分取決于eMMC的性能。
圖7-5:eMMC初始化流程
TBD:?jiǎn)?dòng)延遲時(shí)間,從CMD線轉(zhuǎn)為低電平到首次開機(jī)數(shù)據(jù)輸出之間的時(shí)間,一般在40ms左右。
INIT:從CMD1到就緒之間的時(shí)間,根據(jù)JEDC規(guī)范,延遲時(shí)間最長(zhǎng)為1s。
許多主機(jī)系統(tǒng)在系統(tǒng)上電和CMD線轉(zhuǎn)為低電平(開機(jī))/CMD(init)之間存在延遲,而Automotive eMMC 5.1默認(rèn)開啟快速INIT功能,快速INIT功能可充分利用該延遲,縮短系統(tǒng)初始化時(shí)間。電源穩(wěn)定后(Vcc/Vccq高電平),即使客戶未將CMD線轉(zhuǎn)為低電平,eMMC也會(huì)自動(dòng)執(zhí)行初始化流程,從而縮短系統(tǒng)初始化時(shí)間。
圖7-6:快速INIT的優(yōu)點(diǎn)---時(shí)間示例
開啟快速初始化后,電源穩(wěn)定后立即啟動(dòng)INIT程序,而不啟用快速初始化,INIT程序則在主機(jī)發(fā)出CMD1時(shí)啟動(dòng)。
3.HW復(fù)位
使用HW復(fù)位功能,主機(jī)必須將ECSD寄存器162字節(jié),[1:0]位設(shè)置為0x1,以便在主機(jī)可以使用其之前啟用該功能。執(zhí)行復(fù)位操作之前,主機(jī)必須在尚未執(zhí)行任何操作的情況下,根據(jù)JEDEC規(guī)范在RST_N引腳處至少保持1us的低電平。如果復(fù)位引腳回到高電平,則eMMC阻止任何操作,并進(jìn)入預(yù)空閑狀態(tài),如圖7-7所示。
圖7-7:eMMC的復(fù)位觸發(fā)
評(píng)論
查看更多