eMMC5.1入門教程【1】eMMC簡介與協議概覽

目錄

1 eMMC簡介

1.1eMMC的外觀圖與引腳說明圖

1.2eMMC的定義

1.3eMMC的基礎操作

2 eMMC5.1協議

2.1 eMMC5.1協議文檔的獲取

2.2 eMMC的初始化

2.3 eMMC的讀寫

3 本專欄教程的目標

3.1 內容核心

3.2 教程安排



1 eMMC簡介

通俗點說,eMMC就是一個存儲芯片,就像SD卡一樣,用於存取數據。從普通開發者角度看,只要遵循eMMC協議,就可以對eMMC芯片進行讀寫操作。(拓展:SD卡、UFS芯片、eMMC芯片、U盤都是類似的功能,從使用角度看,只是接口不同、通信協議不同,本教程只涉及目前最新的eMMC芯片,遵循eMMC5.1協議。)

1.1eMMC的外觀圖與引腳說明圖

下圖(圖一)是網上搜索到的一款國產eMMC芯片(eMMC採用BGA封裝):

eMMC芯片外觀 圖一 eMMC芯片外觀

而關於其引腳定義,筆者也在網上找到一個圖(圖二):

eMMC引腳定義  圖二 eMMC引腳定義圖

 

其中,RFU 引腳暫無作用(RFU是 “Reserved for Future Use” 的縮寫)

而關於其他引腳的作用,見下圖圖三(具體作用後續會詳細描述):

注:圖三出自eMMC5.1協議文檔 第5.3章 (e•MMC Device Overview)

eMMC引腳說明圖表 圖三 eMMC引腳說明

                                                                 

特別說明的是DS引腳,也就是Data Strobe引腳,原文檔描述爲:

 
Data Strobe : This signal is generated by the device and used for output in HS400 mode.
The frequency of this signal follows the frequency of CLK. For data output each cycle of this signal
directs two bits transfer(2x) on the data - one bit for positive edge and the other bit for negative edge.
For CRC status response output and CMD response output (enabled only HS400 enhanced strobe
mode), the CRC status and CMD Response are latched on the positive edge only, and don't care on
the negative edge.
 
簡單點說,就是這個引腳只有在HS400的速度模式下才被使用,後續講到給eMMC調速度模式的時候會詳述。目前只需要知道eMMC的速度模式分爲SDR50、HS200、HS400,共三種。常用的速度爲SDR50模式的26M、52M;HS200模式下的200M;HS400模式下的400M;更詳細的如下圖圖四所示:
總線速度模式 圖四 eMMC總線速度模式

 

關於eMMC總線的連線圖如下圖圖五所示:
注:圖五出自eMMC5.1協議文檔 第10 章 (The e •MMC bus)
 
eMMC協議總線圖 圖五 eMMC總線連線圖
 

1.2eMMC的定義

eMMC ,即:Embedded Multi Media Card 的縮寫。由一個嵌入式存儲解決方案組成,帶有MMC接口、快閃存儲器設備及主控制器。所有都在一個小型的BGA 封裝。接口速度最高可達每秒400MBytes,其接口電壓可以是1.8V或者是3.3V。(一般VCCQ 1.8V,VCC 3.3V)

1.3eMMC的基礎操作

對於一般的開發者,eMMC的基礎操作包括:初始化操作(CMD0+CMD1+CMD2+CMD3+CMD7)、(多種速率的)讀寫操作、寫保護操作、分區操作。

在此後的章節中將詳細展開敘述。本篇爲開篇簡介與概覽,故而只是簡單介紹。

2 eMMC5.1協議

2.1 eMMC5.1協議文檔的獲取

如下鏈接,無需C幣:

eMMC5.1協議文檔(目錄中重點章節已高亮)

2.2 eMMC的初始化

eMMC上電後,需要先初始化,才能進行後續的讀寫操作。

初始化的命令序列爲:CMD0 發一次、CMD1發多次(直到返回值首位爲1)、CMD2、CMD3、CMD7

以上的命令序列發送成功後,eMMC便進入了transfer模式,可進行讀寫等操作。

2.3 eMMC的讀寫

eMMC進入了transfer模式後,也就是初始化序列發送成功後,eMMC上盤成功,可進行讀寫操作。

普通的讀寫方式有兩種:

(1)主控芯片先通過命令指定起始地址,再通過命令指定要傳輸的塊數,然後發送數據;

(2)主控芯片先通過命令指定起始地址,開始發送數據,發完數據再發命令通知eMMC芯片結束讀寫操作。

後續章節將詳細描述。

3 本專欄教程的目標

目標爲:從普通開發者角度,描述清楚eMMC的常用功能,使得讀者能對eMMC有一個較爲全面的瞭解,並具備一些基本的開發能力。

3.1 內容核心

(1)eMMC芯片的引腳說明;

(2)eMMC芯片的初始化;

(3)eMMC芯片的讀寫操作;

(4)eMMC芯片的速度模式調整;

(5)eMMC芯片的分區操作;

(6)eMMC芯片的寫保護操作。

3.2 教程安排

本教程篇幅計劃15篇,其中:

第1-3篇爲基礎篇,涉及內容爲本教程全部內容的簡單描述,供入門與瞭解使用;

第4-5篇爲初始化相關內容的專講;

第6-8篇爲讀寫操作的專講,包括普通讀寫與打包讀寫;

第9-11篇爲三種速度模式的專講(SDR50、HS200、HS400);

第12-13篇爲分區操作相關內容;

第13-14篇爲寫保護操作的相關內容;

第15篇爲幾個常用寄存器的專講與全教程的總結

第16-17篇(如果有時間寫的話)爲命令隊列 (CMDQ) 的相關內容

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章