本文主要介绍eMMC的引脚定义、操作模式、数据包等。
eMMC(Embedded Multi Media Card)采用统一的MMC标准接口,把高密度NAND Flash以及MMC Controller封装在一颗BGA芯片中。针对Flash的特性,产品内部已经包含了Flash管理技术,包括错误探测和纠正,Flash平均擦写,坏块管理,掉电保护等技术。用户无需担心产品内部Flash晶圆制程和工艺的变化。同时eMMC单颗芯片为主板内部节省更多的空间。
MMC卡分共有7个触点(引脚),分为两种操作模式,分别为MMC模式和SPI模式(SD卡兼容MMC接口的MMC模式和SPI模式),两种模式对引脚的定义是不同的。
引脚号 | MMC模式 | SPI模式 | ||||
名称 | 类型 | 描述 | 名称 | 类型 | 描述 | |
1 | RSV | Reserved | CS | I | 片选 | |
2 | CMD | I/O/PP | 指令/响应 | DI | I | 数据输入 |
3 | VSS1 | S | 地 | VSS | S | 地 |
4 | VDD | S | 电源 | VDD | S | 电源 |
5 | CLK | I | 时钟 | SCLK | I | 时钟 |
6 | VSS2 | S | 地 | VSS2 | S | 地 |
7 | DAT | I/O/PP | 数据线 | DO | O/PP | 数据输出 |
MMC卡外观和SD卡一样,SD卡多了写保护开关,MMC卡的厚度为1.4mm(SD卡为2.1mm)。MMC卡的时钟频率为20MHz,只有一位数据带宽,因此最大传输速率为20Mbps。
Name | Type | Description |
CLK | I | Clock |
DAT0 | I/O/PP | Data |
DAT1 | ||
DAT2 | ||
DAT3 | ||
DAT4 | ||
DAT5 | ||
DAT6 | ||
DAT7 | ||
CMD | I/O/PP/OD | Command/Response |
RST_n | I | Hardware reset |
VCC | Power | Supply voltage for Core |
VCCQ | Supply voltage for I/O | |
VSS | Supply voltage ground for Core | |
VSSQ | Supply voltage ground for I/O |
eMMC芯片有四种机械尺寸规格,详细如下:
11.5mm×13mm×1.3mm
12mm×16mm×1.4mm
12mm×18mm×1.4mm
14mm×18mm×1.4mm
eMMC的电源电压范围如下:
eMMC还定义了四种速度模式,如下表所示:
V4.4增加dual datarate interface with maximum 104MB/s
V4.5增加HS200 mode
V5.0增加HS400 mode
eMMC的操作模式如下表所示:
操作模式 | 描述 |
开机模式 Boot mode | Power ON后,卡若收到CMD0(GO_Idle_State)并带argument(0xF0F0F0F0),此时Card若支持Boot Mode则会进入Boot Mode,否则进入identification mode。 |
ID模式 Device identification mode | Power ON后,经过Boot mode完成或不支持Boot mode,卡都将会进入此模式持续等待收到Host下发的CMD3(Send_Relative_Address)。 |
中断模式 Interrupt mode | Host和Card会同时进入此模式,此模式中不会做Data Transfer,只允许Host or Card送出interrupt service request。 |
数据传输模式 Data transfer mode | 当卡收到由Host所给予的RCA,这时卡便会进入Data transfer mode,等待读写动作指令。 |
无效模式 Inactive mode | 当Card若为电压不符规定或插入方式无效时便会进入此模式,亦可使用CMD1(GO_INACTIVE_STATE)命令使一个已标识的Card进入非活动状态。 |
设备不同状态对应的操作模式及总线模式如下:
eMMC的寄存器见下表所示:
Name | Width(bytes) | Description | Implementation |
CID | 16 | Device Identification number, an individual number for identification. | Mandatory |
RCA | 2 | Relative Device Address, is the Device system address, dynamically assigned by the host during initialization. | |
CSD | 16 | Device Specific Data, information about the Device operation conditions. | |
OCR | 4 | Operation Conditions Register. Used by a special broadcast command to identify the voltage type of the Device. | |
EXT_CSD | 512 | Extended Device Specific Data. Contains information about the Device capabilities and selected modes. | |
DSR | 2 | Driver Stage Register, to configure the Device’s output drivers. | Optional |
数据封包有五种:Command、Response、Block、CRC Status和Busy,如下:
Command:一律由Host下达,并可带参数的命令。
Response:Device对Host发出Command所做的响应,内部参数表示该Device现阶段的状态为何。
Block:eMMC的传输协议中的基本单位,所有数据数据都会封装在Block里传输。
CRC Status:此数据封包通常在写入Block后出现,用来通知Host写入Block的结果。
Busy:此数据数据通常在写入Block后出现,用来通知Host该Device目前处于忙碌状态,无法写入下一个Block。
传输模式有5种:分别是1位Bus上升沿取样(1 bitSDR)、4位Bus上升沿取样(4 bits SDR)、8位Bus上升沿取样(8 bits SDR)、4位Bus DDR与8位Bus DDR,这五种都以Block为单位作数据传输。
以上就是针对eMMC的一个简单的介绍,详细可参看最新的标准JESD84-B51A(V5.1版本)。