eMMC響應(yīng)
eMMC響應(yīng)有兩種長度的數(shù)據(jù)包,分別為48 Bits和136 Bits,eMMC響應(yīng)的格式如下圖所示:
Snipaste_2023-10-12_21-32-24
eMMC的響應(yīng)由48 bits或者136 bits組成,所有的eMMC響應(yīng)都以00開始,以1結(jié)尾。所有的eMMC響應(yīng)都是在CMD線上進行傳輸?shù)模琫MMC設(shè)備發(fā)送響應(yīng)時先發(fā)送響應(yīng)的起始位(Start bit),最后發(fā)送響應(yīng)的結(jié)束位(End bit)。
Start Bit:起始位,固定為0,在沒有響應(yīng)傳輸?shù)那闆r下,CMD線上的信號保持高電平,當eMMC設(shè)備將Start Bit發(fā)送到總線上時,Host可以很方便檢測到響應(yīng)的Start Bit(CMD線上的信號由高電平變?yōu)榈碗娖剑?,并開始接收響應(yīng)。
Transmission Bit:傳輸位,固定為0,該位指示CMD線上數(shù)據(jù)的傳輸方向,該位為0,表示CMD線上數(shù)據(jù)的傳輸方向為從eMMC設(shè)備到Host。
Content:響應(yīng)的具體內(nèi)容,不同的響應(yīng)Content不同。
CRC:CRC校驗值,包含Start Bit、Transmission Bit和Content內(nèi)容的CRC校驗值。
End Bit:結(jié)束位,固定為1。
eMMC有5種類型的響應(yīng),包括:R1,R2,R3,R4和R5。
R1
R1響應(yīng)的數(shù)據(jù)長度為48 bits,其中[45:40]數(shù)據(jù)位域表示的是該響應(yīng)對應(yīng)命令的編號。[39:8]是一個32位大小的位域,主要用于反應(yīng)設(shè)備的狀態(tài)信息,具體的設(shè)備狀態(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信號。基于eMMC設(shè)備在接收命令之前的狀態(tài),eMMC設(shè)備在接收到一些命令之后可能會變得繁忙。
R2
R2響應(yīng)的數(shù)據(jù)長度為136 bits。[127:1]是一個127位大小的位域,該位域?qū)ID寄存器的值作為CMD2和CMD10的響應(yīng)內(nèi)容。[127:1]位域也可以將CSD寄存器的值作為CMD9的響應(yīng)內(nèi)容。CID和CSD寄存器的[127:1]位作為R2響應(yīng)內(nèi)容被傳輸,CID和CSD寄存器的保留位[0]由于該位的值總是1,因此保留位[0]被R2響應(yīng)的End bit替換。
Snipaste_2023-10-13_19-50-41
R3
R3響應(yīng)的數(shù)據(jù)長度為48 bits。[39:8]是一個32位大小的位域,該位域?qū)CR寄存器的值作為CMD1的響應(yīng)內(nèi)容。
Snipaste_2023-10-13_20-14-36
R4
R4響應(yīng)的數(shù)據(jù)長度為48 bits。[39:8]是參數(shù)域,該位域包含尋址設(shè)備的RCA,要進行讀寫操作的寄存器地址以及寄存器內(nèi)容。如果操作成功,參數(shù)域中的狀態(tài)位將被置1。R4響應(yīng)只作為對CMD39的響應(yīng)。
Snipaste_2023-10-13_20-23-39
R5
R5響應(yīng)的數(shù)據(jù)長度為48 bits。如果該響應(yīng)由Host產(chǎn)生,那么RCA[31:16]位域的值應(yīng)該為0。R5響應(yīng)只作為對CMD40的響應(yīng)。
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為對應(yīng)數(shù)據(jù)線的Data的16 bit CRC校驗值。
8位總線寬度 SDR模式
Snipaste_2023-10-13_21-21-31
各個數(shù)據(jù)線上的CRC為對應(yīng)數(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è)備寫數(shù)據(jù)過程中,eMMC設(shè)備接收到Host發(fā)送的一個數(shù)據(jù)塊之后,會進行CRC校驗,如果校驗成功,eMMC設(shè)備會在對應(yīng)的數(shù)據(jù)線上向Host回復一個Positive CRC status token("010"),如果校驗失敗,eMMC設(shè)備會在對應(yīng)的數(shù)據(jù)線上向Host回復一個Negative CRC status token("101")。
在Host從eMMC設(shè)備讀取數(shù)據(jù)的過程中,Host接收到eMMC設(shè)備發(fā)送的一個數(shù)據(jù)塊之后,也會進行CRC校驗,但是不論校驗成功還是校驗失敗,Host都不會向eMMC設(shè)備回復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)。通過廣播命令獲取寄存器信息,包含設(shè)備的供電類型和尋址模式。 | 必須 |
CID | 16 | 卡識別寄存器(Card IDentification)。包含識別設(shè)備的唯一碼。 | 必須 |
CSD | 16 | 卡特定數(shù)據(jù)寄存器(Card Specific Data)。包含卡操作狀態(tài)的具體信息。 | 必須 |
Extended CSD | 512 | 擴展卡特定數(shù)據(jù)寄存器(Extended Card Specific Data)。包含設(shè)備的容量和當前模式信息。 | 必須 |
RCA | 2 | 相對地址寄存器(Relative card address)。在初始化過程中,由主機控制器動態(tài)分配的地址。 | 必須 |
DSR | 2 | 驅(qū)動等級寄存器(Driver Stage Register)。配置設(shè)備的輸出驅(qū)動。 | 可選 |
eMMC總線測試過程
在SDR模式下,Host通過發(fā)送CMD19和CMD14可以進行eMMC總線測試過程(Bus testing procedure),測試eMMC接口的硬件引腳連接性。在DDR模式下,不支持總線測試,CMD19和CMD14被認為是非法命令。
在SDR模式下進行eMMC總線測試時,首先Host發(fā)送CMD19給eMMC設(shè)備,接著Host在每根數(shù)據(jù)線上發(fā)送特定格式的數(shù)據(jù)給eMMC。然后,Host發(fā)送CMD14給eMMC設(shè)備,請求eMMC設(shè)備回復翻轉(zhuǎn)的數(shù)據(jù)。Host可以通過對接收到的翻轉(zhuǎn)數(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
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212319 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
269瀏覽量
24818 -
總線協(xié)議
+關(guān)注
關(guān)注
0文章
123瀏覽量
15110 -
emmc
+關(guān)注
關(guān)注
7文章
225瀏覽量
53581
原文標題:Linux MMC子系統(tǒng) - 3.eMMC 5.1總線協(xié)議淺析(2)
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
如何把文件系統(tǒng)燒到EMMC并從EMMC加載

emmc,什么是emmc
eMMC的結(jié)構(gòu)和電源配置

eMMC總線協(xié)議解析

請問RT-Thread emmc驅(qū)動編寫如何格式化?
CH569 EMMC讀取TF卡發(fā)送命令響應(yīng)超時是什么原因造成的?
eMMC改寫內(nèi)嵌閃存卡格局

CANOpen系列教程04 _CAN總線波特率、位時序、幀類型及格式說明
Linux 如何在emmc增加分區(qū)《Rice linux 學習開發(fā)》

SD NAND與eMMC優(yōu)劣勢對比

評論