0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

eMMC响应的格式和类型

嵌入式那些事 来源:嵌入式那些事 2023-12-12 13:38 次阅读

eMMC响应

eMMC响应有两种长度的数据包,分别为48 Bits和136 Bits,eMMC响应的格式如下图所示:

2869cda8-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-12_21-32-24

eMMC的响应由48 bits或者136 bits组成,所有的eMMC响应都以00开始,以1结尾。所有的eMMC响应都是在CMD线上进行传输的,eMMC设备发送响应时先发送响应的起始位(Start bit),最后发送响应的结束位(End bit)。

Start Bit:起始位,固定为0,在没有响应传输的情况下,CMD线上的信号保持高电平,当eMMC设备将Start Bit发送到总线上时,Host可以很方便检测到响应的Start Bit(CMD线上的信号由高电平变为低电平),并开始接收响应。

Transmission Bit:传输位,固定为0,该位指示CMD线上数据的传输方向,该位为0,表示CMD线上数据的传输方向为从eMMC设备到Host。

Content:响应的具体内容,不同的响应Content不同。

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

End Bit:结束位,固定为1。

eMMC有5种类型的响应,包括:R1,R2,R3,R4和R5。

R1

R1响应的数据长度为48 bits,其中[45:40]数据位域表示的是该响应对应命令的编号。[39:8]是一个32位大小的位域,主要用于反应设备的状态信息,具体的设备状态信息内容可以参考eMMC 5.1 spec的6.13 Device status章节。

28858c82-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-12_21-49-14

R1b和R1完全相同,只是R1b会在数据线DAT0上传输一个可选的busy信号。基于eMMC设备在接收命令之前的状态,eMMC设备在接收到一些命令之后可能会变得繁忙。

R2

R2响应的数据长度为136 bits。[127:1]是一个127位大小的位域,该位域将CID寄存器的值作为CMD2和CMD10的响应内容。[127:1]位域也可以将CSD寄存器的值作为CMD9的响应内容。CID和CSD寄存器的[127:1]位作为R2响应内容被传输,CID和CSD寄存器的保留位[0]由于该位的值总是1,因此保留位[0]被R2响应的End bit替换。

289f3c36-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_19-50-41

R3

R3响应的数据长度为48 bits。[39:8]是一个32位大小的位域,该位域将OCR寄存器的值作为CMD1的响应内容。

28b731b0-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_20-14-36

R4

R4响应的数据长度为48 bits。[39:8]是参数域,该位域包含寻址设备的RCA,要进行读写操作的寄存器地址以及寄存器内容。如果操作成功,参数域中的状态位将被置1。R4响应只作为对CMD39的响应。

28cc38bc-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_20-23-39

R5

R5响应的数据长度为48 bits。如果该响应由Host产生,那么RCA[31:16]位域的值应该为0。R5响应只作为对CMD40的响应。

28eb9676-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_20-26-42

eMMC数据块

eMMC数据块由Start bit、Data、CRC和End bit组成。下面对不同总线宽度和数据速率(Date Rate)下,各个数据块的格式进行一个简单的说明。

1位总线宽度 SDR模式

28f4d902-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-07-10

CRC为Data的16 bitCRC校验值,不包含起始位。

4位总线宽度 SDR模式

29139eaa-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-17-13

各个数据线上的CRC为对应数据线的Data的16 bit CRC校验值。

8位总线宽度 SDR模式

2932463e-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-21-31

各个数据线上的CRC为对应数据线的Data的16 bit CRC校验值。

4位总线宽度 DDR模式

2962c1c4-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-23-47

DDR模式下,在时钟的上升沿和下降沿数据线都会传输数据。在时钟的上升沿传输数据的奇数字节(字节1,3,5 ...),在时钟的下降沿传输数据的偶数字节(字节2,4,6 ...)。

在DDR模式下,每个数据线上有两个相互交织的CRC16,时钟上升沿的CRC比特组成odd CRC16,时钟下降沿的CRC比特组成even CRC16。odd CRC16用于校验该数据线上所有上升沿比特组成的数据,even CRC16用于校验该数据线上所有下降沿比特组成的数据。

8位总线宽度 DDR模式

297be956-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-25-27

eMMC CRC status token

在Host向eMMC设备写数据过程中,eMMC设备接收到Host发送的一个数据块之后,会进行CRC校验,如果校验成功,eMMC设备会在对应的数据线上向Host回复一个Positive CRC status token("010"),如果校验失败,eMMC设备会在对应的数据线上向Host回复一个Negative CRC status token("101")。

在Host从eMMC设备读取数据的过程中,Host接收到eMMC设备发送的一个数据块之后,也会进行CRC校验,但是不论校验成功还是校验失败,Host都不会向eMMC设备回复CRC status token。

Positive CRC status token

299bff0c-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-56-11

Negative CRC status token

29ac5c08-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_21-57-10

eMMC寄存器

eMMC 5.1协议定义了7个寄存器:OCR,CID,CSD,EXT_CSD,RCA,DSR和QSR,下面简单的列举常用的6个寄存器。

名称 宽度(字节) 说明 实现
OCR 4 操作条件寄存器(Operation conditions register)。通过广播命令获取寄存器信息,包含设备的供电类型和寻址模式。 必须
CID 16 卡识别寄存器(Card IDentification)。包含识别设备的唯一码。 必须
CSD 16 卡特定数据寄存器(Card Specific Data)。包含卡操作状态的具体信息。 必须
Extended CSD 512 扩展卡特定数据寄存器(Extended Card Specific Data)。包含设备的容量和当前模式信息。 必须
RCA 2 相对地址寄存器(Relative card address)。在初始化过程中,由主机控制器动态分配的地址。 必须
DSR 2 驱动等级寄存器(Driver Stage Register)。配置设备的输出驱动。 可选

eMMC总线测试过程

在SDR模式下,Host通过发送CMD19和CMD14可以进行eMMC总线测试过程(Bus testing procedure),测试eMMC接口硬件引脚连接性。在DDR模式下,不支持总线测试,CMD19和CMD14被认为是非法命令。

在SDR模式下进行eMMC总线测试时,首先Host发送CMD19给eMMC设备,接着Host在每根数据线上发送特定格式的数据给eMMC。然后,Host发送CMD14给eMMC设备,请求eMMC设备回复翻转的数据。Host可以通过对接收到的翻转数据进行比较,就能知道eMMC接口的引脚引脚连接情况。

1bit总线宽度时,eMMC总线测试的数据格式如下图所示:

29c87faa-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_22-22-42

4bit总线宽度时,eMMC总线测试的数据格式如下图所示:

2a3dff8c-98a6-11ee-8b88-92fbcf53809c.png

Snipaste_2023-10-13_22-23-58

8bit总线宽度时,eMMC总线测试的数据格式如下图所示:

2a72c500-98a6-11ee-8b88-92fbcf53809c.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
  • 数据包
    +关注

    关注

    0

    文章

    229

    浏览量

    24094
  • 总线协议
    +关注

    关注

    0

    文章

    80

    浏览量

    14736
  • emmc
    +关注

    关注

    6

    文章

    180

    浏览量

    52017

原文标题:Linux MMC子系统 - 3.eMMC 5.1总线协议浅析(2)

文章出处:【微信号:嵌入式那些事,微信公众号:嵌入式那些事】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何把文件系统烧到EMMC并从EMMC加载

    如何下载并从SD卡加载文件系统,提到过可以从EMMC引导系统,本篇将为您介绍如何把文件系统烧到EMMC,并从EMMC加载。
    的头像 发表于 10-30 16:06 1413次阅读
    如何把文件系统烧到<b class='flag-5'>EMMC</b>并从<b class='flag-5'>EMMC</b>加载

    emmc,什么是emmc

    详细介绍什么是emmcemmc主要应用在哪些地方,并说明了EMMC的结构及优点。
    发表于 08-23 10:58 7.8w次阅读

    eMMC的结构和电源配置

    最新的eMMC产品遵循JEDEC eMMC 5.1标准,该标准定义了eMMC的通信信号、命令、内部寄存器、特性,并为系统设计人员提供指导。它是工业应用和汽车应用的嵌入式存储解决方案的理想选择,这些
    的头像 发表于 11-14 16:21 1485次阅读
    <b class='flag-5'>eMMC</b>的结构和电源配置

    eMMC总线协议解析

    eMMC总线中,可以有一个Host,多个eMMC设备。总线上的所有通信都是以Host发送一个Command给eMMC开始的,eMMC对于收到的不同Command会做出不同的respo
    的头像 发表于 12-08 14:35 989次阅读
    <b class='flag-5'>eMMC</b>总线协议解析

    请问RT-Thread emmc驱动编写如何格式化?

    SDIO,同时也ST自带的驱动测试到了EMMC的擦除,读写操作 但是我看到使用文件系统,首先需要格式化吧,但是格式化的接口是空的,无操作。所以我想知道这个格式化驱动盘是否有什么操作要求
    发表于 02-23 08:04

    CH569 EMMC读取TF卡发送命令响应超时是什么原因造成的?

    手上有一块CH569的开发板。烧录EMMC的例程。执行到EMMCReadOCR之后一直执行中断中的错误打印。错误代码是E:0x0001。看手册是命令响应超时。请问可能有哪些原因造成这个现象?
    发表于 06-15 09:01

    基于SD卡测试结构的EMMC测试座,EMMC测试治具说明书

    EMMC测试治具是针对市面上出现的EMMC芯片(内嵌式存储记忆芯片)
    发表于 04-28 16:23 1w次阅读

    eMMC改写内嵌闪存卡格局

    eMMC卡集成控制器与Nand闪存,具有快速的主机响应速度和读写速度,可以大幅提升智能机/平板电脑的开机速度。
    发表于 08-23 11:11 3303次阅读
    <b class='flag-5'>eMMC</b>改写内嵌闪存卡格局

    CANOpen系列教程04 _CAN总线波特率、位时序、帧类型格式说明

    CANOpen系列教程04_CAN总线波特率、位时序、帧类型格式说明
    的头像 发表于 03-06 16:18 7175次阅读

    基于异构多核的多类型DAG响应时间分析

    基于异构多核的多类型DAG响应时间分析
    发表于 06-15 14:08 22次下载

    Linux 如何在emmc增加分区《Rice linux 学习开发》

    本文描述是基于高通平台,在emmc上增加一块分区,并挂载自己制作的ext4格式的镜像。作者是第一次弄这个,很多都不是很懂,有不对的地方...
    发表于 01-25 20:06 5次下载
    Linux 如何在<b class='flag-5'>emmc</b>增加分区《Rice linux 学习开发》

    SD NAND与eMMC优劣势对比

    最近我们接触到一些客户,本来客户计划使用eMMC,但总觉得哪里不满意。后来跟客户做了深入沟通。你们真实的想要什么样的eMMC呢?他们给出的答案有:尺寸最小的eMMC;最方便焊接的eMMC
    的头像 发表于 06-17 17:36 1075次阅读
    SD NAND与<b class='flag-5'>eMMC</b>优劣势对比

    贴片式SD卡与eMMC该如何选择?

    最近我们接触到一些客户,本来客户计划使用eMMC,但总觉得哪里不满意。后来跟客户做了深入沟通。你们真实的想要什么样的eMMC呢?他们给出的答案有:尺寸最小的eMMC;最方便焊接的eMMC
    的头像 发表于 09-28 15:46 937次阅读
    贴片式SD卡与<b class='flag-5'>eMMC</b>该如何选择?

    eMMC芯片的PCB可制造性设计问题

    了解eMMC芯片 eMMC芯片是一种集成了闪存存储器和控制器的嵌入式多媒体卡(Embedded MultiMediaCard)芯片,其主要应用于移动设备,如手机、平板电脑,可以用于存储操作系统
    的头像 发表于 06-29 08:44 373次阅读
    <b class='flag-5'>eMMC</b>芯片的PCB可制造性设计问题

    EMMC主控固件读取及SD转emmc接线

    EMMC主控固件读取及SD转emmc接线
    发表于 08-10 09:46 21次下载