精华内容
下载资源
问答
  • EMMC引脚定义

    2017-01-02 11:33:57
    EMMC引脚定义
  • eMMC硬件总线接口定义

    千次阅读 2021-07-16 14:09:06
    1.eMMC颗粒的引脚连接主要分为两组:控制信号和数据信号: CLK:CLK 信号用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即 ...

    1. eMMC颗粒的引脚连接主要分为两组:控制信号和数据信号:

    CLK:CLK 信号用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即 SDR (Single Data Rate) 模式。此外,DAT0-7 信号还支持配置为 DDR (Double Data Rate) 模式,在一个时钟周期内,可以传输 2 个比特。

    Host 可以在通讯过程中动态调整时钟信号的频率(注,频率范围需要满足 Spec 的定义)。通过调整时钟频率,可以实现省电或者数据流控(避免 Over-run 或者 Under-run)功能。 在一些场景中,Host 端还可以关闭时钟,例如 eMMC 处于 Busy 状态时,或者接收完数据,进入 Programming State 时。

    CMD:CMD信号主要用于 Host 向 eMMC 发送 Command 和 eMMC 向 Host 发送对于的 Response。

    DS:DS时钟信号由 eMMC 发送给 Host,频率与 CLK 信号相同,用于 Host 端进行数据接收的同步。在 HS400 模式下配置启用,启用后可以提高数据传输的稳定性,省去总线 tuning 过程。

    D7~0:Dx信号主要用于 Host 和 eMMC 之间的数据传输。在 eMMC 上电或者软复位后,只有 DAT0 可以进行数据传输,完成初始化后,可配置 4bit 或者8bit进行数据传输。

     2.eMMC硬件总线接口模式

    eMMC 总线上电启动或者 Reset 后,会先进入Backward Compatible Mode。完成 eMMC Devices 初始化后,主机可以通基本配置,让 IC进入其他模式,目前支持以下的几种:

    这里重点介绍HS200、HS400模式下总线示意,HS200模式下可配置为4bit、8bit总线传输方式,主要有CLK、CMD、D3~D0;HS400下总线只能配置为8bit,控制线添加DS,连接方式见下:

     

    展开全文
  • 什么是eMMC

    千次阅读 2019-11-28 21:01:48
    什么是eMMC 作者:AirCity 2019.11.2 ...1 e.MMC简介 eMMC是Embedded Multi Media Card,是一种具有MMC通信协议的芯片。MMC现在标准是5.1。手机中常用的NAND Flash...eMMC=NAND Flash+控制器+标准封装接口。 我们通常...

    什么是eMMC
    作者:AirCity 2019.11.2
    Aircity007@sina.com 本文所有权归作者Aircity所有

    1 e.MMC简介

    eMMC是Embedded Multi Media Card,是一种具有MMC通信协议的芯片,MMC现在最新版本是2014年发布的Version 5.1。

    手机中常用的NAND Flash就是符合MMC协议的eMMC。eMMC=NAND Flash+控制器+标准封装接口。

    我们通常也会见到MMC这个字眼,其实这只是一种协议接口的名称。eMMC是指有MMC接口的芯片(Nand Flash)。

    我们还会遇到eMPC这个东西,其实eMPC=eMMC+LPDDR。MCP(Embedded Multi-Chip Package)是一种封装技术,它把Nand Falsh和LPDDR封装在一起。其中Nand Falsh与CPU之间的通信,是通过MMC协议。

    MMC协议见JESD84-B51。需要协议,请留言加我微信。

    2 为什么要用eMMC

    最大好处是手机芯片厂商不需要因为NAND Flash供应商的制程不同,开发不同的程序代码。所有的Nand Flash经过标准封装成为eMMC后,手机厂商只需要开发支持eMMC协议的代码即可。

    3 eMMC接口定义

    如下是三星eMPC芯片中,eMMC部分的接口定义。eMMC5.0可以支持最高200MHz时钟频率,HS400模式时,支持双比特翻转(相当于DDR),传输速率为400Mbps。HS200模式时,不支持DDR,传输速率200Mbps。
    在这里插入图片描述
    供电:VCC=2.7~3.3V;VCCQ=1.8或同VCC;VCCQ就是IO电压,通常用1.8V。

    4 eMMC常见品牌

    eMMC常见品牌:三星,镁光,金士顿,东芝,海力士,SanDisk。

    展开全文
  • 硬件接口EMMC

    2021-08-07 14:24:40
    eMMC用于Host访问外部nand flash, 其结构图如下: 各个信号的描述如下: CLK 用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。 在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个...

    eMMC用于Host访问外部nand flash, 其结构图如下
    在这里插入图片描述
    在这里插入图片描述
    各个信号的描述如下:

    CLK
      用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。
      在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即 SDR (Single Data Rate) 模式。此外,DAT0-7 信号还支持配置为 DDR (Double Data Rate) 模式,在一个时钟周期内,可以传输 2 个比特。
      Host 可以在通讯过程中动态调整时钟信号的频率(注,频率范围需要满足 Spec 的定义)。通过调整时钟频率,可以实现省电或者数据流控(避免 Over-run 或者 Under-run)功能。 在一些场景中,Host 端还可以关闭时钟,例如 eMMC 处于 Busy 状态时,或者接收完数据,进入 Programming State 时。
    CMD
      CMD 信号主要用于 Host 向 eMMC 发送 Command 和 eMMC 向 Host 发送对于的 Response。

    DAT0-7
      DAT0-7 信号主要用于 Host 和 eMMC 之间的数据传输。在 eMMC 上电或者软复位后,只有 DAT0 可以进行数据传输,完成初始化后,可配置 DAT0-3 或者 DAT0-7 进行数据传输,即数据总线可以配置为 4 bits 或者 8 bits 模式。

    Data Strobe
      Data Strobe 时钟信号由 eMMC 发送给 Host,频率与 CLK 信号相同,用于 Host 端进行数据接收的同步。Data Strobe 信号只能在 HS400 模式下配置启用,启用后可以提高数据传输的稳定性,省去总线 tuning 过程。
    在这里插入图片描述

    eMMC 总线接口定义如下图所示:
    在这里插入图片描述
    eMMC 总线模型
    eMMC 总线中,可以有一个 Host,多个 eMMC Devices。总线上的所有通讯都由 Host 端以一个 Command 开发发起,Host 一次只能与一个 eMMC Device 通讯。

    系统在上电启动后,Host 会为所有 eMMC Device 逐个分配地址(RCA,Relative device Address)。当 Host 需要和某一个 eMMC Device 通讯时,会先根据 RCA 选中该 eMMC Device,只有被选中的 eMMC Device 才会响应 Host 的 Command。

    NOTE:
    更详细的工作原理请参考 eMMC 工作模式 章节。

    2.1 速率模式

    随着 eMMC 协议的版本迭代,eMMC 总线的速率越来越高。为了兼容旧版本的 eMMC Device,所有 Devices 在上电启动或者 Reset 后,都会先进入兼容速率模式(Backward Compatible Mode)。在完成 eMMC Devices 的初始化后,Host 可以通过特定的流程,让 Device 进入其他高速率模式,目前支持以下的几种速率模式。

    在这里插入图片描述
    NOTE:
    Extended CSD byte[185] HS_TIMING 寄存器可以配置总线速率模式
    Extended CSD byte[183] BUS_WIDTH 寄存器用于配置总线宽度和 Data Strobe

    2.2 通信模型

    Host 与 eMMC Device 之间的通信都是由 Host 以一个 Command 开始发起的,eMMC Device 在完成 Command 所指定的任务后,则返回一个 Response。

    2.2.1 Read Data

    在这里插入图片描述
    Host 从 eMMC Device 读取数据的流程如上图所示。

    如果 Host 发送的是 Single Block Read 的 Command,那么 eMMC Device 只会发送一个 Block 的数据(一个 Block 的数据的字节数由 Host 设定或者为 eMMC Device 的默认值,更多细节请参考 eMMC 工作模式 章节)。
    如果 Host 发送的是 Multiple Block Read 的 Command,那么 eMMC Device 会持续发送数据,直到 Host 主动发送 Stop Command。

    NOTE:
    从 eMMC Device 读数据都是按 Block 读取的。

    2.2.2 Write Data
    在这里插入图片描述
    Host 向 eMMC Device 写入数据的流程如上图所示。

    如果 Host 发送的是 Single Block Write Command,那么 eMMC Device 只会将后续第一个 Block 的数据写入的存储器中。
    如果 Host 发送的是 Multiple Block Write Command,那么 eMMC Device 会持续地将接收到的数据写入到存储器中,直到 Host 主动发送 Stop Command。

    eMMC Device 在接收到一个 Block 的数据后,会进行 CRC 校验,然后将校验结果通过 CRC Token 发送给 Host。
    发送完 CRC Token 后,如果 CRC 校验成功,eMMC Device 会将数据写入到内部存储器时,此时 DAT0 信号会拉低,作为 Busy 信号。Host 会持续检测 DAT0 信号,直到为高电平时,才会接着发送下一个 Block 的数据。如果 CRC 校验失败,那么 eMMC Device 不会进行数据写入,此次传输后续的数据都会被忽略。

    NOTE:
    向 eMMC Device 写数据都是按 Block 写入的。

    2.2.3 No Data

    在 Host 与 eMMC Device 的通信中,有部分交互是不需要进行数据传输的,还有部分交互甚至不需要 eMMC Device 的回复 Response。
    在这里插入图片描述
    2.2.4 Command

    在这里插入图片描述
    如上图所示,eMMC Command 由 48 Bits 组成,各个 Bits 的解析如下所示:
    在这里插入图片描述
    Start Bit 固定为 “0”,在没有数据传输的情况下,CMD 信号保持高电平,当 Host 将 Start Bit 发送到总线上时,eMMC Device 可以很方便检测到该信号,并开始接收 Command。

    Transmission Bit 固定为 “1”,指示了该数据包的传输方向为 Host 发送到 eMMC Device。

    Command Index 和 Argument 为 Command 的具体内容,不同的 Command 有不同的 Index,不同的 Command 也有各自的 Argument。 更多的细节,请参考 eMMC Commands 章节。

    CRC7 是包含 Start Bit、Transmission Bit、 Command Index 和 Argument 内容的 CRC 校验值。

    End Bit 为结束标志位,固定为"1"。

    NOTE:
    CRC 校验简单来说,是发送方将需要传输的数据“除于”(模2除)一个约定的数,并将得到的余数附在数据上一并发送出去。接收方收到数据后,再做同样的“除法”,然后校验得到余数是否与接收的余数相同。如果不相同,那么意味着数据在传输过程中发生了改变。更多的细节不在本文展开描述,感兴趣的读者可以参考 CRC wiki 中的介绍。

    2.2.5 Response

    在这里插入图片描述
    eMMC Response 有两种长度的数据包,分别为 48 Bits 和 136 Bits。

    Start Bit 与 Command 一样,固定为 “0”,在没有数据传输的情况下,CMD 信号保持高电平,当 eMMC Device 将 Start Bit 发送到总线上时,Host 可以很方便检测到该信号,并开始接收 Response。

    Transmission Bit 固定为 “0”,指示了该数据包的传输方向为 eMMC Device 发送到 Host。

    Content 为 Response 的具体内容,不同的 Command 会有不同的 Content。 更多的细节,请参考 eMMC Responses 章节。

    CRC7 是包含 Start Bit、Transmission Bit 和 Content 内容的 CRC 校验值。

    End Bit 为结束标志位,固定为"1"。

    2.2.6 Data Block

    Data Block 由 Start Bit、Data、CRC16 和 End Bit 组成。以下是不同总线宽度和 Data Rate 下,Data Block 详细格式。

    1 Bit Bus SDR

    在这里插入图片描述
    CRC 为 Data 的 16 bit CRC 校验值,不包含 Start Bit。

    4 Bits Bus SDR

    在这里插入图片描述
    各个 Data Line 上的 CRC 为对应 Data Line 的 Data 的 16 bit CRC 校验值。

    8 Bits Bus SDR
    在这里插入图片描述
    各个 Data Line 上的 CRC 为对应 Data Line 的 Data 的16 bit CRC 校验值。

    4 Bits Bus DDR

    在这里插入图片描述
    8 Bits Bus DDR

    在这里插入图片描述
    在 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 上所有下降沿比特组成的数据。

    NOTE:
    DDR 模式下使用两个 CRC16 作为校验,可能是为了更可靠的校验,选用 CRC16 而非 CRC32 则可能是出于兼容性设计的考虑。

    2.2.7 CRC Status Token

    在写数据传输中,eMMC Device 接收到 Host 发送的一个 Data Block 后,会进行 CRC 校验,如果校验成功,eMMC 会在对应的 Data Line 上向 Host 发回一个 Positive CRC status token (010),如果校验失败,则会在对应的 Data Line 上发送一个 Negative CRC status token (101)。

    NOTE:
    读数据时,Host 接收到 eMMC Device 发送的 Data Block 后,也会进行 CRC 校验,但是不管校验成功或者失败,都不会向 eMMC Device 发送 CRC Status Token。

    详细格式如下图所示:

    Positive CRC status token
    在这里插入图片描述
    Negative CRC status token

    在这里插入图片描述

    3. eMMC 总线测试过程

    当 eMMC Device 处于 SDR 模式时,Host 可以发送 CMD19 命令,触发总线测试过程(Bus testing procedure),测试总线硬件上的连通性。如果 eMMC Device 支持总线测试,那么 eMMC Device 在接收到 CMD19 后,会发回对应的 Response,接着 eMMC Device 会发送一组固定的测试数据给 Host。Host 接收到数据后,检查数据正确与否,即可得知总线是否正确连通。

    NOTE: 如果 eMMC Device 不支持总线测试,那么接收到 CMD19 时,不会发回 Response。
    总线测试不支持在 DDR 模式下进行。

    测试数据如下所示:
    在这里插入图片描述
    NOTE: 总线宽度为 1 时,只发送 DAT0 上的数据,总线宽度为 4 时,则只发送 DAT0-3 上的数据

    4. eMMC 总线 Sampling Tuning

    由于芯片制造工艺、PCB 走线、电压、温度等因素的影响,数据信号从 eMMC Device 到达 Host 端的时间是存在差异的,Host 接收数据时采样的时间点也需要相应的进行调整。而 Host 端最佳采样时间点,则是通过 Sampling Tuning 流程得到。

    NOTE:
    不同 eMMC Device 最佳的采样点可能不同,同一 eMMC Device 在不同的环境下运作时的最佳采样点也可能不同。
    在 eMMC 标准中,定义了在 HS200 模式下可以进行 Sampling Tuning。
    4.1 Sampling Tuning 流程

    Sampling Tuning 是用于计算 Host 最佳采样时间点的流程,大致的流程如下:

    1. Host 将采样时间点重置为默认值
    2. Host 向 eMMC Device 发送 Send Tuning Block 命令
    3. eMMC Device 向 Host 发送固定的 Tuning Block 数据
    4. Host 接收到 Tuning Block 并进行校验
    5. Host 修改采样时点,重新从第 2 步开始执行,直到 Host 获取到一个有效采样时间点区间
    6. Host 取有效采样时间点区间的中间值作为采样时间点,并推出 Tuning 流程

    NOTE:
    上述流程仅仅是一个示例。Tuning 流程执行的时机、频率和具体的步骤是由 Host 端的 eMMC Controller 具体实现而定的。

    4.2 Tuning Block 数据

    Tuning Block 是专门为了 Tuning 而设计的一组特殊数据。相对于普通的数据,这组特殊数据在传输过程中,会更高概率的出现 high SSO noise、deterministic jitter、ISI、timing errors 等问题。这组数据的具体内容如下所示:

    在这里插入图片描述
    在这里插入图片描述
    NOTE: 总线宽度为 1 时,只发送 DAT0 上的数据,总线宽度为 4 时,则只发送 DAT0-3 上的数据

    5.PCB走线设计

    1.emmc 芯片下方在敷铜时,焊盘部分要增加敷铜禁布框,避免铜皮分布不均影响散热,导致贴片虚焊。

    2.emmc Flash走线要求整组包地,信号组内任意两根信号线的长度误差控制在400Mil以内,否则会导致高速模式下频率跑不 高。(蛇形走线等长匹配时,时钟信号不能蛇形走线)

    3.需要注意Flash的电源纹波不要大于80mV,电源走线需要远离高速信号线,Flash的数据线不能Vbus,Vdc,VCC_SYS等纹波较大的大电流信号灌铜邻层走线。

    4.增加固件升级模式测试点,建议靠近Flash就近放置。

    5.走线可采用经过不用的eMMC引脚走线的方式降低对PCB制板间距的要求。

    6.Nand Flash与 EMMC Flash可通过双Layout实现物料的切换

    在这里插入图片描述
    蛇形走线:

    1.尽量增加平行线段的距离S,至少大于3H,H指信号线到参考平面的距离。通俗的将 就是绕大弯。只要S足够大,就几乎完全能避免相互之间的耦合效应。

    2.减小耦合幅度Lp ,当两倍Lp 时延接近或者超出信号上升时间时,产生的串扰将达到饱和。

    3.带状线或者埋式微带线的蛇形走线引起的信号传输时延小于微带线走线。理论上,带状线不会因为差模串扰影响到传输速率。

    4.高速以及对时序要求严格的信号线,尽量不要走蛇形线,尤其不能在小范围内蜿蜒走线。

    5.高速PCB设计中,蛇形走线没有所谓的滤波和抗干扰的能力,只可能降低信号质量,所以只作时序匹配只用而无其他目的。

    展开全文
  • eMMC总线协议 - 超详细原理讲解

    千次阅读 2019-05-28 11:22:35
    eMMC 总线接口定义如下图所示: 各个信号的描述如下: CLK CLK 信号用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。 在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即...

    博主福利:100G+电子设计学习资源包!

    http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect
    --------------------------------------------------------------------------------------------------------------------------

     

    1. eMMC 总线接口

     

    eMMC 总线接口定义如下图所示:

    eMMC 总线接口定义

     

    各个信号的描述如下:

    CLK

    CLK 信号用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。
    在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即 SDR (Single Data Rate) 模式。此外,DAT0-7 信号还支持配置为 DDR (Double Data Rate) 模式,在一个时钟周期内,可以传输 2 个比特。
    Host 可以在通讯过程中动态调整时钟信号的频率(注,频率范围需要满足 Spec 的定义)。通过调整时钟频率,可以实现省电或者数据流控(避免 Over-run 或者 Under-run)功能。 在一些场景中,Host 端还可以关闭时钟,例如 eMMC 处于 Busy 状态时,或者接收完数据,进入 Programming State 时。

    CMD

    CMD 信号主要用于 Host 向 eMMC 发送 Command 和 eMMC 向 Host 发送对于的 Response。Command 和 Response 的细节会在后续章节中介绍。

    DAT0-7

    DAT0-7 信号主要用于 Host 和 eMMC 之间的数据传输。在 eMMC 上电或者软复位后,只有 DAT0 可以进行数据传输,完成初始化后,可配置 DAT0-3 或者 DAT0-7 进行数据传输,即数据总线可以配置为 4 bits 或者 8 bits 模式。

    Data Strobe

    Data Strobe 时钟信号由 eMMC 发送给 Host,频率与 CLK 信号相同,用于 Host 端进行数据接收的同步。Data Strobe 信号只能在 HS400 模式下配置启用,启用后可以提高数据传输的稳定性,省去总线 tuning 过程。

    NOTE:
    Extended CSD byte[183] BUS_WIDTH 寄存器用于配置总线宽度和 Data Strobe

     

    2. eMMC 总线模型

     

    eMMC 总线中,可以有一个 Host,多个 eMMC Devices。总线上的所有通讯都由 Host 端以一个 Command 开发发起,Host 一次只能与一个 eMMC Device 通讯。

    系统在上电启动后,Host 会为所有 eMMC Device 逐个分配地址(RCA,Relative device Address)。当 Host 需要和某一个 eMMC Device 通讯时,会先根据 RCA 选中该 eMMC Device,只有被选中的 eMMC Device 才会响应 Host 的 Command。

     

     

    2.1 速率模式

     

    随着 eMMC 协议的版本迭代,eMMC 总线的速率越来越高。为了兼容旧版本的 eMMC Device,所有 Devices 在上电启动或者 Reset 后,都会先进入兼容速率模式(Backward Compatible Mode)。在完成 eMMC Devices 的初始化后,Host 可以通过特定的流程,让 Device 进入其他高速率模式,目前支持以下的几种速率模式。

    ModeData RateBus WidthFrequencyMax Data Transfer (x8)
    Backward CompatibleSinglex1, x4, x80-26 MHz26 MB/s
    High Speed SDRSinglex1, x4, x80-52 MHz52 MB/s
    High Speed DDRDualx4, x80-52 MHz104 MB/s
    HS200Singlex4, x80-200 MHz200 MB/s
    HS400Dualx80-200 MHz400 MB/s

     

    NOTE:
    Extended CSD byte[185] HS_TIMING 寄存器可以配置总线速率模式
    Extended CSD byte[183] BUS_WIDTH 寄存器用于配置总线宽度和 Data Strobe

     

    2.2 通信模型

     

    Host 与 eMMC Device 之间的通信都是由 Host 以一个 Command 开始发起的,eMMC Device 在完成 Command 所指定的任务后,则返回一个 Response。

     

    2.2.1 Read Data

     

     

    Host 从 eMMC Device 读取数据的流程如上图所示。

    如果 Host 发送的是 Single Block Read 的 Command,那么 eMMC Device 只会发送一个 Block 的数据(一个 Block 的数据的字节数由 Host 设定或者为 eMMC Device 的默认值,更多细节请参考 eMMC 工作模式 章节)。
    如果 Host 发送的是 Multiple Block Read 的 Command,那么 eMMC Device 会持续发送数据,直到 Host 主动发送 Stop Command。

    NOTE:
    从 eMMC Device 读数据都是按 Block 读取的。

     

    2.2.2 Write Data

     

     

    Host 向 eMMC Device 写入数据的流程如上图所示。

    如果 Host 发送的是 Single Block Write Command,那么 eMMC Device 只会将后续第一个 Block 的数据写入的存储器中。
    如果 Host 发送的是 Multiple Block Write Command,那么 eMMC Device 会持续地将接收到的数据写入到存储器中,直到 Host 主动发送 Stop Command。

    eMMC Device 在接收到一个 Block 的数据后,会进行 CRC 校验,然后将校验结果通过 CRC Token 发送给 Host。
    发送完 CRC Token 后,如果 CRC 校验成功,eMMC Device 会将数据写入到内部存储器时,此时 DAT0 信号会拉低,作为 Busy 信号。Host 会持续检测 DAT0 信号,直到为高电平时,才会接着发送下一个 Block 的数据。如果 CRC 校验失败,那么 eMMC Device 不会进行数据写入,此次传输后续的数据都会被忽略。

    NOTE:
    向 eMMC Device 写数据都是按 Block 写入的。

     

    2.2.3 No Data

     

    在 Host 与 eMMC Device 的通信中,有部分交互是不需要进行数据传输的,还有部分交互甚至不需要 eMMC Device 的回复 Response。

     

    2.2.4 Command

     

     

    如上图所示,eMMC Command 由 48 Bits 组成,各个 Bits 的解析如下所示:

    DescriptionStart BitTransmission BitCommand IndexArgumentCRC7End Bit
    Bit position4746[45:40][39:8][7:1]0
    Width (bits)1163271
    Value"0""1"xxx"1"

     

    Start Bit 固定为 "0",在没有数据传输的情况下,CMD 信号保持高电平,当 Host 将 Start Bit 发送到总线上时,eMMC Device 可以很方便检测到该信号,并开始接收 Command。

    Transmission Bit 固定为 "1",指示了该数据包的传输方向为 Host 发送到 eMMC Device。

    Command Index 和 Argument 为 Command 的具体内容,不同的 Command 有不同的 Index,不同的 Command 也有各自的 Argument。 更多的细节,请参考 eMMC Commands 章节。

    CRC7 是包含 Start Bit、Transmission Bit、 Command Index 和 Argument 内容的 CRC 校验值。

    End Bit 为结束标志位,固定为"1"。

    NOTE:
    CRC 校验简单来说,是发送方将需要传输的数据“除于”(模2除)一个约定的数,并将得到的余数附在数据上一并发送出去。接收方收到数据后,再做同样的“除法”,然后校验得到余数是否与接收的余数相同。如果不相同,那么意味着数据在传输过程中发生了改变。更多的细节不在本文展开描述,感兴趣的读者可以参考 CRC wiki 中的介绍。

     

    2.2.5 Response

     

     

    eMMC Response 有两种长度的数据包,分别为 48 Bits 和 136 Bits。

    Start Bit 与 Command 一样,固定为 "0",在没有数据传输的情况下,CMD 信号保持高电平,当 eMMC Device 将 Start Bit 发送到总线上时,Host 可以很方便检测到该信号,并开始接收 Response。

    Transmission Bit 固定为 "0",指示了该数据包的传输方向为 eMMC Device 发送到 Host。

    Content 为 Response 的具体内容,不同的 Command 会有不同的 Content。 更多的细节,请参考 eMMC Responses 章节。

    CRC7 是包含 Start Bit、Transmission Bit 和 Content 内容的 CRC 校验值。

    End Bit 为结束标志位,固定为"1"。

     

    2.2.6 Data Block

     

    Data Block 由 Start Bit、Data、CRC16 和 End Bit 组成。以下是不同总线宽度和 Data Rate 下,Data Block 详细格式。

    1 Bit Bus SDR

     

    CRC 为 Data 的 16 bit CRC 校验值,不包含 Start Bit。

     

    4 Bits Bus SDR

     

    各个 Data Line 上的 CRC 为对应 Data Line 的 Data 的 16 bit CRC 校验值。

     

    8 Bits Bus SDR

     

    各个 Data Line 上的 CRC 为对应 Data Line 的 Data 的16 bit CRC 校验值。

     

    4 Bits Bus DDR

     

    8 Bits Bus DDR

     

    在 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 上所有下降沿比特组成的数据。

    NOTE:
    DDR 模式下使用两个 CRC16 作为校验,可能是为了更可靠的校验,选用 CRC16 而非 CRC32 则可能是出于兼容性设计的考虑。

     

    2.2.7 CRC Status Token

     

    在写数据传输中,eMMC Device 接收到 Host 发送的一个 Data Block 后,会进行 CRC 校验,如果校验成功,eMMC 会在对应的 Data Line 上向 Host 发回一个 Positive CRC status token (010),如果校验失败,则会在对应的 Data Line 上发送一个 Negative CRC status token (101)。

    NOTE:
    读数据时,Host 接收到 eMMC Device 发送的 Data Block 后,也会进行 CRC 校验,但是不管校验成功或者失败,都不会向 eMMC Device 发送 CRC Status Token。

    详细格式如下图所示:

    Positive CRC status token

     

    Negative CRC status token

     

    3. eMMC 总线测试过程

     

    当 eMMC Device 处于 SDR 模式时,Host 可以发送 CMD19 命令,触发总线测试过程(Bus testing procedure),测试总线硬件上的连通性。如果 eMMC Device 支持总线测试,那么 eMMC Device 在接收到 CMD19 后,会发回对应的 Response,接着 eMMC Device 会发送一组固定的测试数据给 Host。Host 接收到数据后,检查数据正确与否,即可得知总线是否正确连通。

    NOTE: 如果 eMMC Device 不支持总线测试,那么接收到 CMD19 时,不会发回 Response。
    总线测试不支持在 DDR 模式下进行。

    测试数据如下所示:

     

    NOTE: 总线宽度为 1 时,只发送 DAT0 上的数据,总线宽度为 4 时,则只发送 DAT0-3 上的数据

     

    4. eMMC 总线 Sampling Tuning

     

    由于芯片制造工艺、PCB 走线、电压、温度等因素的影响,数据信号从 eMMC Device 到达 Host 端的时间是存在差异的,Host 接收数据时采样的时间点也需要相应的进行调整。而 Host 端最佳采样时间点,则是通过 Sampling Tuning 流程得到。

    NOTE:
    不同 eMMC Device 最佳的采样点可能不同,同一 eMMC Device 在不同的环境下运作时的最佳采样点也可能不同。
    在 eMMC 标准中,定义了在 HS200 模式下可以进行 Sampling Tuning。

     

    4.1 Sampling Tuning 流程

     

    Sampling Tuning 是用于计算 Host 最佳采样时间点的流程,大致的流程如下:
    1. Host 将采样时间点重置为默认值
    2. Host 向 eMMC Device 发送 Send Tuning Block 命令
    3. eMMC Device 向 Host 发送固定的 Tuning Block 数据
    4. Host 接收到 Tuning Block 并进行校验
    5. Host 修改采样时点,重新从第 2 步开始执行,直到 Host 获取到一个有效采样时间点区间
    6. Host 取有效采样时间点区间的中间值作为采样时间点,并推出 Tuning 流程

    NOTE:
    上述流程仅仅是一个示例。Tuning 流程执行的时机、频率和具体的步骤是由 Host 端的 eMMC Controller 具体实现而定的。

     

    4.2 Tuning Block 数据

     

    Tuning Block 是专门为了 Tuning 而设计的一组特殊数据。相对于普通的数据,这组特殊数据在传输过程中,会更高概率的出现 high SSO noise、deterministic jitter、ISI、timing errors 等问题。这组数据的具体内容如下所示:

     

     

    NOTE: 总线宽度为 1 时,只发送 DAT0 上的数据,总线宽度为 4 时,则只发送 DAT0-3 上的数据

     

     

    展开全文
  • eMMC原理——总线协议

    万次阅读 多人点赞 2017-03-20 16:19:22
    eMMC 总线接口定义如下图所示: 各个信号的描述如下: CLK CLK 信号用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。 在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输...
  • eMMC总线:入门和驱动调试

    千次阅读 2019-11-12 21:06:31
    下图是eMMC总线接口的基本框架: 每个信号线的作用如下: 信号线 作用 CLK CLK 信号用于从 Host 端输出时钟信号,进行数据和命令传输的同步。在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个...
  • eMMC5.1学习--术语和定义

    千次阅读 2018-06-14 20:16:55
    CID(Device IDentification register):设备识别号寄存器CLK:时钟信号CMD:commandCRC(Cyclic Redundancy Check):循环冗余检验CSD(Device Specific Data register):数据寄存器DSR(Driver Stage Register)...
  • eMMC SD SDIO TF MMC的区别

    2020-12-20 21:12:58
    MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMC,定义了诸如卡的形态、尺寸、容量、电气信号、和主机之间的通信协议等。eMMC SD TF MMC都是在MMC基础上演化发展不同的规范,比如物理尺寸,封装,电压,...
  • eMMC5.1入门教程【1】eMMC简介与协议概览

    千次阅读 多人点赞 2021-01-02 09:17:30
    eMMC简介
  • 接口]mmc/eMMC/SD-card

    千次阅读 2018-11-20 10:33:53
    转自:... MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMC eMMC是一种支持MMC协议的芯片 MMC/e •MMC communication is based on an advanced 10-signal bus. The communica...
  • mmc/eMMC/SD-card接口异同

    千次阅读 2020-04-26 21:42:28
    MMC(multiMedia card)是一种...eMMC是一种支持MMC协议的芯片 MMC/e •MMC communication is based on  an advanced 10-signal bus. The communication protocol isdefined as a part of this standard and &...
  • 镁光 MICRON EMMC 存储芯片规格书 MICRON型号 封装 以及各种你想不到的
  • EMMC 5.1 协议标准

    2018-10-24 19:52:17
    MultiMediaCard,即 MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而 eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的...
  • 本篇主要介绍UFS的架构、系统模型、信号定义(包括eUFS和UFS Card)等,以对UFS接口有个粗略的了解。下一篇将针对电源、复位、时钟等部分进行详细介绍。1、UFS介绍UFS(Universal Flash Storage)是JEDEC发布的新一代...
  • 说到eMMC和SSD,都是比较热门的存储应用方案,eMMC属于一种多媒体卡架构,它直接封装了一个控制器,用来提供标准接口并管理闪存。而SSD----Solid State Disk,SSD是由多个闪存芯片、主控、或者缓存组成的阵列式存储...
  • eMMC(一)——基本架构

    万次阅读 多人点赞 2019-11-01 15:58:07
    目录 1. eMMC是什么 ...2.3 标准接口 1. eMMC是什么 eMMC (Embedded Multi Media Card)是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格。由一个嵌入式存储解决方案组成,带有MMC...
  • MMC/SD/SDIO介绍

    千次阅读 2020-12-20 21:12:47
    4)以eMMC为例,规范定义了OCR, CID, CSD, EXT_CSD, RCA 以及DSR 6组寄存器,具体含义后面再介绍。 3.2 总线规范 前面我们提到过,MMC的本质是提供一套可以访问固态非易失性存储介质的通信协议,从产业化的角度看,...
  • eMMC 原理 2 :eMMC 简介

    千次阅读 2017-03-09 17:23:50
    MultiMediaCard,即 MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而 eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的...
  • U盘主控板BGA162 169小板USB2.0写字库,bga169/162焊接直接读写,可刷字库。 三星高端机字库资料带boot 的写不了
  • eMMC协议官方文档

    2020-12-07 20:30:17
    Flash控制器负责管理内存,并且提供标准接口,使得EMMC能够自动调整主机与从机的工作方式,没有位数限制,不需要处理其他繁杂的NAND Flash兼容性和管理问题,同时,控制器是其卡的应用和多媒体总线之间的联系介质,...
  • eMMC总线

    2020-09-03 09:56:05
    eMMC 总线接口定义如下图所示: 各个信号的描述如下: CLK CLK 信号用于从 Host 端输出时钟信号,进行数据传输的同步和设备运作的驱动。 在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即...
  • eMMC寄存器(eMMC5.1)

    千次阅读 2021-01-16 22:36:26
    OCR寄存器(操作条件寄存器) 32位寄存器 存储Vdd电压曲线 存储器件访问模型,从而...包含制造商ID(MID),MID号由JEDEC管理,分配给eMMC制造商,每个制造商的MID都是独一无二的。 包含制造日期 CSD寄存器 ...
  • eMMC简介

    万次阅读 2019-01-02 20:06:55
    MultiMediaCard,即MMC,是一种闪存卡(Flash Memory Card)标准,它定义了MMC的架构以及访问Flash Memory的接口和协议。而eMMC则是对MMC的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的需求。 eMMC的...
  • EMMC 介绍

    万次阅读 多人点赞 2016-07-29 08:34:01
    本文着重介绍了EMMC的硬件及软件原理,以及在手机各个启动阶段的作用和流程
  • eMMC分区详解

    2017-10-02 14:52:27
    转载自:http://blog.sina.com.cn/s/blog_5c401a150101jcos.html最近总结了一下关于eMMC分区的一些资料,在此分享给大家,希望对大家在这方面的工作有所帮助:大家一般所熟悉的分区的概念是在逻辑上将一个磁盘或存储...
  • 一.eMMC 简介

    千次阅读 2020-07-06 16:15:40
    MultiMediaCard,即 MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而 eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的...
  • EMMC 流程讲解

    千次阅读 多人点赞 2018-12-25 09:40:05
    EMMC 基本命令 CMD0 cmd0带参数0xF0F0F0F0,GO_PRE_IDLE_STATE是软件reset命令,使得设备进入pre_idle状态 cmd0带参数0xFFFFFFFA,该命令使得device进入boot operation mode,device将主动发送数据到总线上,数据...
  • eMMC协议分析

    千次阅读 2018-12-27 19:42:05
    在进行电路设计之前,必须要明白具体实现的原理,因此本文首先要研究eMMC5.0的协议,这个协议是经过电子设备工程联合委员会JEDEC制定的全球统一标准,对eMMC的具体电路的功能实现和规范进行了统一的制定。...
  • eMMC vs Nand

    2019-11-11 10:05:37
    eMMC vs Nand eMMC 和 Nand 是嵌入式系统中比较常见的两种存储介质。 区别 它们有什么异同呢?通过下面这张图可以做一个简单的概括: 这里面的的 Host Processor 指的是我们嵌入式主板上的 MCU 或者 CPU,比如 S3C...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,732
精华内容 692
关键字:

emmc接口定义

友情链接: jingfun.zip