天天看點

eMMC基礎技術3:eMMC總線token

1.前言

本文主要介紹eMMC 總線協定相關的内容,主要包括:

(1)command token format

(2)response token format

(3)data packet format

(4)CRC token

(5)bus speed mode

2. command token format

eMMC基礎技術3:eMMC總線token

圖 cmd token format

  • 總長度48bits;
  • 固定以0開始,以1結束;
  • transmiter bit表示資料的傳輸方向,1代表從host to device;
  • 通過CRC7保護,device 端在接收到CMD時同樣會計算一個CRC值,如果與host發送的CRC不一緻,則被認為是傳輸錯誤;

詳情請參考 eMMC基礎技術3:eMMC command

3. response token format

eMMC基礎技術3:eMMC總線token

圖 response token format

  • 有5種格式,使用哪種格式依賴于CMD,長度為48bits或136bits;
  • start bit 總是0,在沒有資料傳輸的情況下,CMD 信号保持高電平,當 eMMC Device 将 Start Bit 發送到總線上時,Host 可以很友善檢測到該信号,并開始接收 Response
  • transmitter bit代表傳輸方向,0表示device to host;
  • Content 為 Response 的具體内容,不同的 Command 會有不同的 Content
  • CRC7 是包含 Start Bit、Transmission Bit 和 Content 内容的 CRC 校驗值
  • End Bit 為結束标志位,固定為"1"。

4. data packet format

(1) 1bit sdr傳輸

eMMC基礎技術3:eMMC總線token

     圖 1bit bus sdr傳輸

start bit + data + crc + end bit

1bit sdr隻使用了DATA0資料線,對于1個block(block length=512BYTE)來講,需要花費block length * 8 cycles

(2)4bit sdr傳輸

eMMC基礎技術3:eMMC總線token

       圖 4bit bus sdr傳輸

對于1個block(block length=512BYTE)來講,需要花費block length  * 8 / 4 = block length *2 cycles

(3)8bit sdr傳輸

eMMC基礎技術3:eMMC總線token

         圖 8bit bus sdr傳輸

對于1個block(block length=512BYTE)來講,對于1個block(block length=512BYTE)來講,需要花費block length * 8 / 8 = block length cycles

(4)4bit bus ddr傳輸

eMMC基礎技術3:eMMC總線token

圖 4bit bus ddr傳輸

ddr傳輸時,上升沿和下降沿都會傳輸資料,對于1個block(block length=512BYTE)來講,需要花費block lenght * 8 / 4 / 2 = block length cycles

(5)8bit bus ddr傳輸

eMMC基礎技術3:eMMC總線token

圖 8bit bus ddr傳輸

ddr傳輸時,上升沿和下降沿都會傳輸資料,對于1個block(block length=512BYTE)來講,需要花費block lenght * 8 / 8 / 2 = block length / 2 cycles

在 DDR 模式下,Data Line 在時鐘的上升沿和下降沿都會傳輸資料,其中上升沿傳輸資料的奇數位元組 (Byte 1,3,5 ...),下降沿則傳輸資料的偶數位元組(Byte 2,4,6 ...)。

此外,在 DDR 模式下,1 個 Data Line 上有兩個互相交織的 CRC16,上升沿的 CRC 比特組成 odd CRC16,下降沿的 CRC 比特組成 even CRC16。

odd CRC16 用于校驗該 Data Line 上所有上升沿比特組成的資料,even CRC16 則用于校驗該 Data Line 上所有下降沿比特組成的資料

(6)8bit ddr for hs400 

eMMC基礎技術3:eMMC總線token

圖 8bit ddr for hs400

hs400 高電平或低電平用于傳輸資料,對于1個block(block length=512BYTE)來講,需要花費block lenght * 8 / 8 / 2 = block length / 2 cycles

5. CRC status token

在寫資料傳輸中,eMMC Device 接收到 Host 發送的一個 Data Block 後,會進行 CRC 校驗

  • 如果校驗失敗,device則會在對應的 Data Line 上向host發送一個 Negative CRC status token (101)
  • 如果校驗成功,device則會在對應的 Data Line 上向host發送一個 Positive CRC status token (010)

注:讀資料時,Host 接收到 eMMC Device 發送的 Data Block 後,也會進行 CRC 校驗,但是不管校驗成功或者失敗,都不會向 eMMC Device 發送 CRC Status Token

詳細格式如下圖所示:

eMMC基礎技術3:eMMC總線token

圖 DR52 Positive CRC status token

eMMC基礎技術3:eMMC總線token

圖 DDR52 Negative CRC status token

6. 參考文檔

[1]http://www.wowotech.net/basic_tech/emmc_bus_protocol.html

[2]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf