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

eMMC基础技术3:eMMC总线token的更多相关文章

  1. eMMC基础技术2:eMMC概述

    0.前言 本文主要参考eMMC规范,从总体上对eMMC 进行简要介绍.主要包含如下的内容: (1)eMMC系统的总体架构 (2)eMMC的总线协议 (3)device controller (4)fl ...

  2. eMMC基础技术1:MMC简介

    [转]http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html 1. 前言 熟悉Linux kernel的人都知道,kernel使用MMC s ...

  3. eMMC基础技术11:flash memory

    [转]http://www.wowotech.net/basic_tech/367.html 0.前言 eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Fl ...

  4. eMMC基础技术9:分区管理

    [转]http://www.wowotech.net/basic_tech/emmc_partitions.html 0.前言 eMMC 标准中,将内部的 Flash Memory 划分为 4 类区域 ...

  5. eMMC基础技术7:Bus Speed Modes

    1. 前言 eMMC有多种速率模式,主要根据如下几个方面进行划分: single rate or dual rate I/O电压 BUS宽度 支持的clock频率范围 最大的传输速率 2. 概览 图 ...

  6. emmc基础技术8:操作模式3-interrupt mode

    1. 前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述inte ...

  7. emmc基础技术8:操作模式2-device identification mode

    1.前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述devic ...

  8. eMMC基础技术6:eMMC data读写

    1. 前言 data可以经data线从host发往device,也可以从device发往host 数据线以是1线(DATA0),4线(DATA0~DATA3),8线(DATA0~DATA7) 对每条数 ...

  9. eMMC基础技术8:操作模式1-boot mode

    1.前言 eMMC总线操作包含: boot mode device identification mode interrupt mode data transfer mode 本文主要描述boot m ...

随机推荐

  1. 1.单件模式(Singleton Pattern)

    创建型模式---单件模式(Singleton Pattern)动机(Motivation):    在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性. ...

  2. CodeFirst+MySql开发

    CodeFirst+MySql开发简单入门 记录一下使用Mysql进行EF Codefirst方式开发的简单过程. 0.准备工作 安装MySql,mysql-connector-net,mysql-f ...

  3. Git(管理修改)

    现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...

  4. HDU - 6313 Hack It(构造)

    http://acm.hdu.edu.cn/showproblem.php?pid=6313 题意 让你构造一个矩阵使得里面不存在四个顶点都为1的矩形,并且矩阵里面1的个数要>=85000 分析 ...

  5. [Android] Android 卡片式控件CardView的优雅使用

    [Android] Android 卡片式控件CardView的优雅使用 CardView是在安卓5.0提出的卡片式控件 其具体用法如下: 1.在app/build.gradle 文件中添加 comp ...

  6. SpringBoot系列: Actuator监控

    Sprng Boot 2 actuator变动加大, 网上很多资料都都已经过期. ============================配置项============================ ...

  7. 随机生成10元素数组并找出最大元素(Java)

    package day01; import java.util.Arrays; import java.util.Random; public class MaxOfArray { public st ...

  8. 新闻类App顶部菜单栏封装

    概述 最近有一个需求,类似今日头条顶部的菜单栏.唯一区别是需要带可移动的下划线.网上查找资料,发现解决方案大部分是用UIScrollView实现.下方VC控制用UICollectionView.这样可 ...

  9. 嵌入式-迅为iTOP-4418/6818开发板编译Android镜像技术分享

    迅为是基于Ubuntu12.04.2 平台做开发,所有的配置和编译脚本也是基于此平台.如果你对Linux 和Android 开发很熟悉,相信你会根据错误提示逐步找到原因并解决,错误提示一般是选用的平台 ...

  10. Kafka思维导图