eMMC的标准是由JEDEC协会制订的,其详细规范参考JESD84-B451标准。eMMC采取10pin接口,把标准的NAND Flash及MMC掌握器封装在一片BGA中,目前单片的容量已经可以达到64GB,最高数据传输速率可以达到200MB/s。其接口除了电源和Reset管脚以外,紧张用来做数据传输的是Clock、CMD以及8bit的Data线。
eMMC接口的数据传输可以采取单边沿模式(SDR)也可以采取双边沿(DDR)模式,数据线宽度可以是1bit、4bit或8bit。在最高的HS200模式下,事情时钟可以到200MHz,在8bit同时传输时,总线的最高数据传输速率是200MB/s。

2. 各组成部分

2.1 NAND Flash
NAND Flash 是一种非易失落性的存储器,常日在嵌入式系统中用于存放系统、运用和数据等,类似与 PC 系统中的硬盘。
eMMC 在内部对 NAND Flash 划分了几个紧张区域,如下所示:
1、BOOT Area Partition 1 & 2
此分区紧张是为了支持从 eMMC 启动系统而设计的。 该分区的数据,在 eMMC 上电后,可以通过很大略的协议就可以读取出来。同时,大部分的 SOC 都可以通过 GPIO 或者 FUSE 的配置,让 ROM 代码在上电后,将 eMMC BOOT 分区的内容加载到 SOC 内部的 SRAM 中实行。
2、RPMB Partition
RPMB 是 Replay Protected Memory Block 的简称,它通过 HMAC SHA-256 和 Write Counter 来担保保存在 RPMB 内部的数据不被造孽修改。在实际运用中,RPMB 分区常日用来保存安全干系的数据,例如指纹数据、安全支付干系的密钥等。General Purpose Partition 1~4此区域则紧张用于存储系统或者用户数据。 General Purpose Partition 在芯片出厂时,常日是不存在的,须要主动进行配置后,才会存在。 User Data Area此区域则紧张用于存储系统和用户数据。 User Data Area 常日会进行再分区,例如 Android 系统中,常日在此区域分出 boot、system、userdata 平分区。
3、General Purpose Partition 1~4
此区域则紧张用于存储系统或者用户数据。 General Purpose Partition 在芯片出厂时,常日是不存在的,须要主动进行配置后,才会存在。
4、User Data Area
此区域则紧张用于存储系统和用户数据。User Data Area 常日会进行再分区,例如 Android 系统中,常日在此区域分出 boot、system、userdata 平分区
Flash Controller
NAND Flash直接接入Host时,Host端常日须要有NAND Flash Translation Layer,即NFTL或者NAND Flash文件系统来做坏块管理、ECC等的功能。
eMMC 则在其内部集成了 Flash Controller,用于完成擦写均衡、坏块管理、ECC校验等功能。比较于直接将 NAND Flash 接入到 Host 端,eMMC 屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的繁芜度,让 Host 端专注于上层业务,省去对 NAND Flash 进行分外的处理。同时,eMMC 通过利用 Cache、Memory Array 等技能,在读写性能上也比 NAND Flash 要好很多。
标准接口
eMMC 与 Host 之间的通信线,如下:
总线上旗子暗记用场如下:
(1)CLK
用于同步的时钟旗子暗记。
(2)Data Strobe
此旗子暗记是从 Device 端输出的时钟旗子暗记,频率和 CLK 旗子暗记相同,用于同步从 Device 端输出的数据。该旗子暗记在 eMMC 5.0 中引入。
(3)CMD
此旗子暗记用于发送 Host 的 command 和 Device 的 response。
(4)DAT0-7
eMMC的双向数据总线,用于主机和设备之间的数据通信。它事情在应对快速的命令传输的推挽模式。DAT线在某一时候只能支持单向传输,只能被设备或eMMC HOST一方掌握。默认下,当用户上电或者复位的时候,仅能用DAT0一根线传输数据。同时,用户可以自己配置想要利用的DAT线的数量,也可以选择4根或者8根。当用户选择4根时,eMMC设备会断DAT1-3的内部上拉,如果用户选择的是8根,那么同理会断开DAT1-7的上拉。
Host 与 eMMC 之间的通信都是 Host 以一个 Command 开始发起的。针对不同的 Command,Device 会做出不同的相应。
eMMC标准接口总结如下:
【注】 I: input; O: output; PP: push-pull; OD: open-drain; NC: Not connected (or logical high); S: power supply









