eMMC響應
eMMC響應有兩種長度的數(shù)據(jù)包,分別為48 Bits和136 Bits,eMMC響應的格式如下圖所示:
	
Snipaste_2023-10-12_21-32-24
eMMC的響應由48 bits或者136 bits組成,所有的eMMC響應都以00開始,以1結尾。所有的eMMC響應都是在CMD線上進行傳輸?shù)模琫MMC設備發(fā)送響應時先發(fā)送響應的起始位(Start bit),最后發(fā)送響應的結束位(End bit)。
Start Bit:起始位,固定為0,在沒有響應傳輸?shù)那闆r下,CMD線上的信號保持高電平,當eMMC設備將Start Bit發(fā)送到總線上時,Host可以很方便檢測到響應的Start Bit(CMD線上的信號由高電平變?yōu)榈碗娖剑?,并開始接收響應。
Transmission Bit:傳輸位,固定為0,該位指示CMD線上數(shù)據(jù)的傳輸方向,該位為0,表示CMD線上數(shù)據(jù)的傳輸方向為從eMMC設備到Host。
Content:響應的具體內(nèi)容,不同的響應Content不同。
CRC:CRC校驗值,包含Start Bit、Transmission Bit和Content內(nèi)容的CRC校驗值。
End Bit:結束位,固定為1。
eMMC有5種類型的響應,包括:R1,R2,R3,R4和R5。
R1
R1響應的數(shù)據(jù)長度為48 bits,其中[45:40]數(shù)據(jù)位域表示的是該響應對應命令的編號。[39:8]是一個32位大小的位域,主要用于反應設備的狀態(tài)信息,具體的設備狀態(tài)信息內(nèi)容可以參考eMMC 5.1 spec的6.13 Device status章節(jié)。
	
Snipaste_2023-10-12_21-49-14
R1b和R1完全相同,只是R1b會在數(shù)據(jù)線DAT0上傳輸一個可選的busy信號?;趀MMC設備在接收命令之前的狀態(tài),eMMC設備在接收到一些命令之后可能會變得繁忙。
R2
R2響應的數(shù)據(jù)長度為136 bits。[127:1]是一個127位大小的位域,該位域將CID寄存器的值作為CMD2和CMD10的響應內(nèi)容。[127:1]位域也可以將CSD寄存器的值作為CMD9的響應內(nèi)容。CID和CSD寄存器的[127:1]位作為R2響應內(nèi)容被傳輸,CID和CSD寄存器的保留位[0]由于該位的值總是1,因此保留位[0]被R2響應的End bit替換。
	
Snipaste_2023-10-13_19-50-41
R3
R3響應的數(shù)據(jù)長度為48 bits。[39:8]是一個32位大小的位域,該位域將OCR寄存器的值作為CMD1的響應內(nèi)容。
	
Snipaste_2023-10-13_20-14-36
R4
R4響應的數(shù)據(jù)長度為48 bits。[39:8]是參數(shù)域,該位域包含尋址設備的RCA,要進行讀寫操作的寄存器地址以及寄存器內(nèi)容。如果操作成功,參數(shù)域中的狀態(tài)位將被置1。R4響應只作為對CMD39的響應。
	
Snipaste_2023-10-13_20-23-39
R5
R5響應的數(shù)據(jù)長度為48 bits。如果該響應由Host產(chǎn)生,那么RCA[31:16]位域的值應該為0。R5響應只作為對CMD40的響應。
	
Snipaste_2023-10-13_20-26-42
eMMC數(shù)據(jù)塊
eMMC數(shù)據(jù)塊由Start bit、Data、CRC和End bit組成。下面對不同總線寬度和數(shù)據(jù)速率(Date Rate)下,各個數(shù)據(jù)塊的格式進行一個簡單的說明。
1位總線寬度 SDR模式
	
Snipaste_2023-10-13_21-07-10
CRC為Data的16 bitCRC校驗值,不包含起始位。
4位總線寬度 SDR模式
	
Snipaste_2023-10-13_21-17-13
各個數(shù)據(jù)線上的CRC為對應數(shù)據(jù)線的Data的16 bit CRC校驗值。
8位總線寬度 SDR模式
	
Snipaste_2023-10-13_21-21-31
各個數(shù)據(jù)線上的CRC為對應數(shù)據(jù)線的Data的16 bit CRC校驗值。
4位總線寬度 DDR模式
	
Snipaste_2023-10-13_21-23-47
DDR模式下,在時鐘的上升沿和下降沿數(shù)據(jù)線都會傳輸數(shù)據(jù)。在時鐘的上升沿傳輸數(shù)據(jù)的奇數(shù)字節(jié)(字節(jié)1,3,5 ...),在時鐘的下降沿傳輸數(shù)據(jù)的偶數(shù)字節(jié)(字節(jié)2,4,6 ...)。
在DDR模式下,每個數(shù)據(jù)線上有兩個相互交織的CRC16,時鐘上升沿的CRC比特組成odd CRC16,時鐘下降沿的CRC比特組成even CRC16。odd CRC16用于校驗該數(shù)據(jù)線上所有上升沿比特組成的數(shù)據(jù),even CRC16用于校驗該數(shù)據(jù)線上所有下降沿比特組成的數(shù)據(jù)。
8位總線寬度 DDR模式
	
Snipaste_2023-10-13_21-25-27
eMMC CRC status token
在Host向eMMC設備寫數(shù)據(jù)過程中,eMMC設備接收到Host發(fā)送的一個數(shù)據(jù)塊之后,會進行CRC校驗,如果校驗成功,eMMC設備會在對應的數(shù)據(jù)線上向Host回復一個Positive CRC status token("010"),如果校驗失敗,eMMC設備會在對應的數(shù)據(jù)線上向Host回復一個Negative CRC status token("101")。
在Host從eMMC設備讀取數(shù)據(jù)的過程中,Host接收到eMMC設備發(fā)送的一個數(shù)據(jù)塊之后,也會進行CRC校驗,但是不論校驗成功還是校驗失敗,Host都不會向eMMC設備回復CRC status token。
Positive CRC status token
	
Snipaste_2023-10-13_21-56-11
Negative CRC status token
	
Snipaste_2023-10-13_21-57-10
eMMC寄存器
eMMC 5.1協(xié)議定義了7個寄存器:OCR,CID,CSD,EXT_CSD,RCA,DSR和QSR,下面簡單的列舉常用的6個寄存器。
| 名稱 | 寬度(字節(jié)) | 說明 | 實現(xiàn) | 
|---|---|---|---|
| OCR | 4 | 操作條件寄存器(Operation conditions register)。通過廣播命令獲取寄存器信息,包含設備的供電類型和尋址模式。 | 必須 | 
| CID | 16 | 卡識別寄存器(Card IDentification)。包含識別設備的唯一碼。 | 必須 | 
| CSD | 16 | 卡特定數(shù)據(jù)寄存器(Card Specific Data)。包含卡操作狀態(tài)的具體信息。 | 必須 | 
| Extended CSD | 512 | 擴展卡特定數(shù)據(jù)寄存器(Extended Card Specific Data)。包含設備的容量和當前模式信息。 | 必須 | 
| RCA | 2 | 相對地址寄存器(Relative card address)。在初始化過程中,由主機控制器動態(tài)分配的地址。 | 必須 | 
| DSR | 2 | 驅動等級寄存器(Driver Stage Register)。配置設備的輸出驅動。 | 可選 | 
eMMC總線測試過程
在SDR模式下,Host通過發(fā)送CMD19和CMD14可以進行eMMC總線測試過程(Bus testing procedure),測試eMMC接口的硬件引腳連接性。在DDR模式下,不支持總線測試,CMD19和CMD14被認為是非法命令。
在SDR模式下進行eMMC總線測試時,首先Host發(fā)送CMD19給eMMC設備,接著Host在每根數(shù)據(jù)線上發(fā)送特定格式的數(shù)據(jù)給eMMC。然后,Host發(fā)送CMD14給eMMC設備,請求eMMC設備回復翻轉的數(shù)據(jù)。Host可以通過對接收到的翻轉數(shù)據(jù)進行比較,就能知道eMMC接口的引腳引腳連接情況。
1bit總線寬度時,eMMC總線測試的數(shù)據(jù)格式如下圖所示:
	
Snipaste_2023-10-13_22-22-42
4bit總線寬度時,eMMC總線測試的數(shù)據(jù)格式如下圖所示:
	
Snipaste_2023-10-13_22-23-58
8bit總線寬度時,eMMC總線測試的數(shù)據(jù)格式如下圖所示:
	
- 
                                Linux
                                +關注
關注
88文章
11585瀏覽量
217344 - 
                                數(shù)據(jù)包
                                +關注
關注
0文章
269瀏覽量
25372 - 
                                總線協(xié)議
                                +關注
關注
0文章
138瀏覽量
15535 - 
                                emmc
                                +關注
關注
7文章
244瀏覽量
55125 
原文標題:Linux MMC子系統(tǒng) - 3.eMMC 5.1總線協(xié)議淺析(2)
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
如何把文件系統(tǒng)燒到EMMC并從EMMC加載
    
eMMC的結構和電源配置
    
eMMC總線協(xié)議解析
    
請問RT-Thread emmc驅動編寫如何格式化?
CH569 EMMC讀取TF卡發(fā)送命令響應超時是什么原因造成的?
eMMC改寫內(nèi)嵌閃存卡格局
    
CANOpen系列教程04 _CAN總線波特率、位時序、幀類型及格式說明
Linux 如何在emmc增加分區(qū)《Rice linux 學習開發(fā)》
    
SD NAND與eMMC優(yōu)劣勢對比
    
          
        
        
eMMC響應的格式和類型
                
 
           
            
            
                
            
評論