存储器寻址
e•MMC 规范的早期实现(至 v4.1 的版本)是采用 32-bit 域实现字节寻址的。这种寻址
机制允许最大 2 GB 的 e•MMC 容量。
为了支持更大的容量,寻址机制升级到支持扇区寻址( 512B 扇区)。对所有容量大于
2 GB 的设备应使用扇区地址。
要确定所用的寻址模式,主机应读取 OCR 寄存器的 bit [30:29]
emmc设备的信息寄存器
总线协议
上电复位后,主机必须通过专有的基于消息的 e•MMC 总线协议初始化设备。每一个消
息有下列 token 之一来代表:
- 命令:命令是启动一种操作的 token。命令从主机发往设备。命令在 CMD 线上串
行传输。 - 应答:应答是从设备发往主机作为对上一命令回答的 token。应答在 CMD 线上串
行传输。 - 数据:设备可以从设备传输到主机,也可以反之。数据通过数据线传输。数据传输
所用的数据线数可以是 1( DAT0)、 4( DAT0-DAT3)或 8( DAT0-DAT7)。
对于每一条数据线,数据可以在每时钟周期 1 bit 的速率(单倍数据率)或 2 bit 的速率
(双倍数据率(DDR))下传输。
设备寻址是采用利用在初始化阶段分配的会话地址,通过连接到设备的总线控制器实现
的。**设备依靠其 CID 编号识别。**这种方法要求设备有一个唯一的 CID 编号。为了保证 CID
的唯一性, CID 寄存器包含 MMCA/JEDEC 定义的 24 bit( MID 和 OID 域)。每
一个厂商都需要申请一个唯一的 MID(和可选的 OID)编号
e•MMC 总线数据传输包括命令、应答和数据块结构 token。
一个操作,总线上必定有命令和应答token,有可能有数据token。
e•MMC 命令是面向块的命令:这些命令发送一个接续了 CRC 位的数据块。无论读或
写操作都允许单块或多块传输。多块传输是当在 CMD 线上后续停止命令时终止的。
类似于连续读:
块写操作:
无应答和无数据操作:
命令 token 编码方案如下:
总长度 48 比特
每一个命令 Token 都由一个起始位( ’0’)前导,以一个停止位( ’1’)终止。总长度是
48 比特。每一个 Token 都用 CRC 保护,因此可以检测到传输错误,可重复操作。
应答 Token 有 5 种编码方案,取决于其内容。 Token 长度是 48 或 136 比特。
**由于在连续数据传输中没有预定的结束点,因此在此情况下没有 CRC 保护。**对于数据块的 CRC 保护算法是 16 比特 CCITT 多项式。
R1, R3, R4 和 R5:
R2:
几种传输时序图:
SDR
1 Bit 总线(只有DAT0使用):
4 bit 总线(DAT3 - DAT0使用):
8 bit 总线 (DAT7 - DAT0 使用):
DDR
4 bit
8 bit
注意:数据字节是不穿插的,但 CRC 是穿插的。起始和停止位仅在上升沿是有效的( x 为未定义)。
总线速度模式
HS200总线速度模式:
HS200 提供了如下特性:
ƒ SDR 数据采样方式 //不支持DDR?好像确实不会生效
ƒ CLK 频率最高达到 200MHz,数据率最高达 200MB/s
ƒ 支持 4 或 8-bits 总线宽度
ƒ 4 个可选驱动强度的单端信令
ƒ 1.8V 和 1.2V 信令电平
ƒ 读操作的调谐概念
系统框图:
主机有一个时钟发生器,向设备提供时钟。
对于写操作,时钟和数据方向相同,写数据可与时钟同步传输,不关心线路延迟。
对于读操作,时钟和数据方向相反,主机接收到的读数据是有往返延迟、输出延迟和主机与设备迟滞所造成的延迟的。
可调谐采样主机
主机可能采用可调节采样来确定正确的采样点。存储在设备中的预定义的调谐块可被主机用来作为找到优化数据采样点的帮助。主机可以采用 CMD12 调谐命令来读调谐块。