• eMMC基础技术3:eMMC总线token


    1.前言

    本文主要介绍eMMC 总线协议相关的内容,主要包括:

    (1)command token format

    (2)response token format

    (3)data packet format

    (4)CRC token

    (5)bus speed mode

    2. command token format

    图 cmd token format
    • 总长度48bits;
    • 固定以0开始,以1结束;
    • transmiter bit表示数据的传输方向,1代表从host to device;
    • 通过CRC7保护,device 端在接收到CMD时同样会计算一个CRC值,如果与host发送的CRC不一致,则被认为是传输错误;
    详情请参考 eMMC基础技术3:eMMC command

    3. response token format


    图 response token format
    • 有5种格式,使用哪种格式依赖于CMD,长度为48bits或136bits;
    • start bit 总是0,在没有数据传输的情况下,CMD 信号保持高电平,当 eMMC Device 将 Start Bit 发送到总线上时,Host 可以很方便检测到该信号,并开始接收 Response
    • transmitter bit代表传输方向,0表示device to host;
    • Content 为 Response 的具体内容,不同的 Command 会有不同的 Content
    • CRC7 是包含 Start Bit、Transmission Bit 和 Content 内容的 CRC 校验值
    • End Bit 为结束标志位,固定为"1"。

    4. data packet format

    (1) 1bit sdr传输
         图 1bit bus sdr传输
    start bit + data + crc + end bit
     
    1bit sdr只使用了DATA0数据线,对于1个block(block length=512BYTE)来讲,需要花费block length * 8 cycles
     
    (2)4bit sdr传输
           图 4bit bus sdr传输
    对于1个block(block length=512BYTE)来讲,需要花费block length  * 8 / 4 = block length *2 cycles
    (3)8bit sdr传输
     
             图 8bit bus sdr传输
    对于1个block(block length=512BYTE)来讲,对于1个block(block length=512BYTE)来讲,需要花费block length * 8 / 8 = block length cycles
     
    (4)4bit bus ddr传输
    图 4bit bus ddr传输
    ddr传输时,上升沿和下降沿都会传输数据,对于1个block(block length=512BYTE)来讲,需要花费block lenght * 8 / 4 / 2 = block length cycles
     
    (5)8bit bus ddr传输
     
     
    图 8bit bus ddr传输
     
    ddr传输时,上升沿和下降沿都会传输数据,对于1个block(block length=512BYTE)来讲,需要花费block lenght * 8 / 8 / 2 = block length / 2 cycles
     
    在 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 上所有下降沿比特组成的数据
    (6)8bit ddr for hs400 
     
    图 8bit ddr for hs400
    hs400 高电平或低电平用于传输数据,对于1个block(block length=512BYTE)来讲,需要花费block lenght * 8 / 8 / 2 = block length / 2 cycles

    5. CRC status token

    在写数据传输中,eMMC Device 接收到 Host 发送的一个 Data Block 后,会进行 CRC 校验

    • 如果校验失败,device则会在对应的 Data Line 上向host发送一个 Negative CRC status token (101)
    • 如果校验成功,device则会在对应的 Data Line 上向host发送一个 Positive CRC status token (010)

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

    详细格式如下图所示:

    图 DR52 Positive CRC status token

     

    图 DDR52 Negative CRC status token

     

    6. 参考文档

    [1]http://www.wowotech.net/basic_tech/emmc_bus_protocol.html

    [2]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf

  • 相关阅读:
    JAVA---JDK环境变量的配置
    “==” 与“equals(Object)”区别
    js替换字符串中所有斜杠
    uploadify学习笔记
    VBA学习笔记
    浮动导航条的实现
    canvas初识笔记
    EntityFramework存储过程的返回类型
    CSS及html的特殊字符表
    DIV六种实现元素水平居中
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6656844.html
Copyright © 2020-2023  润新知