eMMC基础知识介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要访问已经处于Inactive状态的eMMC,主机就 必须通过关断并重开电源来进行硬复位。
eMMC启动流程
5、设备识别模式 eMMC完成内部初始化后,会进入Ready状态。主
机可以通过发送CMD2广播命令获取总线上所有进入 Ready状态的eMMC的CID。
总线上所有处于Ready状态的eMMC在接收到 CMD2后,都会发送其CID,同时逐比特地监视其输出 的比特流,那些在任何一个比特周期内,输出的CID比 特与CMD线上相应比特不匹配的设备,会立即停止发送 其CID,并等待下一个识别循环。由于每张eMMC的 CID都是唯一的,因此最后只会有一张eMMC能成功地 发送完整的CID到主机,并进入到Identification状态。
接下来,主机发送CMD3赋予这个eMMC一个相对 设备地址(RCA) ,使设备进入到Stand-by状态 。
到这里,主机就可以对eMMC进行正常的读写操作 了。
eMMC传输模式
主机可以通过命令CMD7,将指定的 eMMC从Stand-by状态切换到Transfer状态, 然后对eMMC进行读写操作。
简单的来说,eMMC=NAND Flash + MMC控制芯片 + MMC标准接口。
eMMC的优势
eMMC在内部集成了存储控制器,其中包含了 协议、擦写均衡、坏块管理、ECC校验、电源管 理、时钟管理、数据存取等功能。
相比于直接将NAND Flash接入到主机进行使用, eMMC屏蔽了NAND Flash的物理特性,这样减 少了主机端软件的复杂度,让主机端专注于上层 业务,省去了对NAND Flash 的特殊处理。
eMMC分区
eMMC标准中,内部的存储空间被划分为了 4类区域,最多可以支持8个硬件分区。 引导分区,存储引导信息; RPMB分区,存储一些有防止非法篡改需
求的数据,如:手机上指纹支付相关的 公钥、序列号等; 通用分区, 属于可选分区,可以为分区设 置一些额外的属性,比如:提高该分区 的读写性能、寿命以及稳定性或者将这 些用来作为存放操作系统类的、很少进 行擦写更新的分区等。 用户数据分区;
引导模式,并开始准备向主机发送引导数据。 在CMD线被拉低1秒之内,eMMC开始在DAT线上向主机发送引导数据。主机在读取引
导数据时,必须保持CMD线为低。如果eMMC启用了引导确认,那么eMMC必须在CMD线 被拉低50ms之内向主机发送 数据“010”,确认引导模式。
当引导数据全部发送到主机后,引导操作将结束。在执行引导操作之后,主机需要通过 发送CMD1,启动eMMC的正常初始化流程。
同时,eMMC还运用了缓存、存储阵列等技术, 在读写性能上也比NAND Flash要好很多。
因此,eMMC也逐渐成为了目前最常用的移动 设备本地存储解决方案。
eMMC与SD的关系
eMMC和SD的技术本质是一样的,都是从MMC规范演化而来,使用相同的总线规范; eMMC强调的是多媒体存储(MM,Multi Media); SD强调的是安全和数据保护(S,Secure);
eMMC总线
Data Strobe是在eMMC 5.0中引入的一根时钟信号线。它是由eMMC发送给主机的,且频 率与时钟线相同,用于和主机端进行数据接收的同步。该信号线只能在HS400模式下配置启用, 启用后可以提高数据传输的稳定性。
CMD线是双向命令通道信号线,用于主机向eMMC发送命令以及eMMC向主机回传应答。 CMD线在上电后都是保持高电平状态,因此命令和应答数据的起始位都是“0”。下图就是命令 和应答的具体格式。
eMMC基础知识介绍
主要内容
wenku.baidu.com eMMC的基本概念 eMMC总线和寄存器的相关介绍 eMMC的工作模式
什么是eMMC
eMMC全称是Embedded Multi Media Card(嵌入式多媒体卡)
由一个嵌入式存储解决方案组成,带 有MMC接口、NAND Flash以及 MMC控制器,这些结构都被封装在一 个小型BGA中。
eMMC传输模式
主机从eMMC读取数据的流程图。
eMMC传输模式
主机从eMMC写入数据的流程图。
Thank you !
主机向eMMC发送读取命令后, eMMC会根据命令参数,向主机发送对应的 数据块,发送结束后,eMMC会重新进入 Transfer状态。
主机向eMMC发送写入命令后, eMMC会根据命令参数,接收从主机发来的 数据块,每接收一个数据块,eMMC都会进 行CRC校验,校验无误后,eMMC会进入 Programming状态,将数据块烧录进 NAND Flash里,同时还会将DAT0信号拉 低,直到烧录结束。烧录结束后,eMMC返 回到Transfer状态。
2、eMMC确认是否需要进入引导模式 eMMC的寄存器位BOOT_PARTITION_ENABLE(EXT_CSD byte [179])中有引导配
置。eMMC可以通过这些配置确认是否需要进入引导模式以及引导分区。如果没有启用引 导模式,那么eMMC将直接进入到idle状态。
eMMC启动流程
3、eMMC进入引导模式 如果启用了引导模式,并且检测到CMD线被拉低了74个时钟周期后,eMMC就会进入
eMMC协议规范
目前eMMC协议规范最新的版本是JESD84-B51,它规范了总线接口以及控制芯片,而 对在系统架构中的主机和存储阵列部分的内容并没有未完全规定。
eMMC总线
eMMC的总线由11条信号线组成,一条时钟信号线(CLK),一条数据选通信号线 ( Data Strobe ),一条命令信号线(CMD),八条数据信号线(DAT0-7)。
CLK用于从主机输出时钟信号,进行数据传输的同步和设备运作的驱动。 在一个时钟周期内,CMD和DAT0-7上都可以支持传输 1 bit数据,即SDR(Single Data Rate)模式。此外,DAT0-7信号还支持配置为DDR (Double Data Rate)模式, 在一个时钟周期内,可以传输 2 bits数据。
在idle状态下,eMMC会进行内部初始化,此时 主机需要持续发送 CMD1命令,查询eMMC是否已经 完成初始化,同时确认eMMC的工作电压和寻址模式。
主机发送的CMD1命令中,包含了主机所支持的 工作电压和寻址模式信息,eMMC在接收到这些信息 后,会进行匹配。如果 eMMC和主机所支持的工作电 压和寻址模式不匹配,那么eMMC会进入 Inactive状 态。
eMMC启动流程
1、上电 eMMC上电后,会进入到pre-idle状态,除此之外,eMMC还可以通过以下两种方法
进入到pre-idle状态 1)软件复位,设备收到从主机发来的GO_PRE_IDLE_STATE命令(参数为
0xF0F0F0F0的CMD0); 2)硬件复位,可以通过主机拉高RST_n信号线来触发。
eMMC启动流程
4、替代的引导操作 如果启用了引导模式,并且检测到CMD线维持在高电平74个时钟周期后,收到了参
数为0xFFFFFFFA的CMD0命令,eMMC同样会进入引导模式,并开始准备向主机发送引 导数据。
eMMC启动流程
5、idle状态 eMMC在退出引导模式后,会进入到设备识别模
式中的idle状态。如果没有启用引导模式,上电、硬 件重置或软件重置后,都会使eMMC进入 Idle状态。
以下是在不同传输模式下,数据块的格式。
1bit SDR模式
4bits SDR模式
8bits SDR模式
eMMC总线
在双倍数据率模式下,DAT线在时钟的上升沿和下降沿都会传输数据,其中上升沿传输数据的奇数 字节 (Byte 1,3,5 ...),下降沿则传输数据的偶数字节(Byte 2,4,6 ...),每条DAT线上都有两个相互交 织的CRC16,上升沿的CRC比特组成 odd CRC16,用于校验该DAT线上所有上升沿比特组成的数据。下 降沿的CRC比特组成even CRC16,用于校验该DAT线上所有下降沿比特组成的数据。
eMMC控制芯片
主机就是通过命令对控制芯片的寄存器进行读写,来完成对eMMC的操作。控制芯片的寄存 器主要有以下部分:
OCR,工作条件寄存器,存放设备的电压信息概况和访问模式; CID,设备识别寄存器,存放设备在识别阶段所使用到的设备识别信息。每个设备都有一个 独一无二的识别号; RCA,相对地址寄存器,存放设备在识别阶段主机分配的设备地址。此地址用于设备识别之 后主机与设备之间的寻址通讯; CSD,数据寄存器,寄存着设备内容访问方式的信息,其中定义了数据格式、读写数据块的 大小、最长数据访问时间、数据传输速度、DSR寄存器是否可用等。 EXT_CSD,扩展数据寄存器,定义了设备属性和选定的模式。它长512 字节,高320位字节 是属性段,定义了设备能力,不能被主机更改。低192位字节是模式段,定义了设备的工作配置。 主机可以被通过SWITCH命令(CMD6)改变这些配置。 DSR,驱动寄存器,用于扩展操作条件以提高总线性能(取决于总线长度、传输速率或设备 数等参数)。 QSR,队列状态寄存器,存储着在特定时间点队列中的任务状态。
4bits SDR模式
8bits DDR模式
eMMC传输速率
随着eMMC协议的版本迭代,eMMC总线的速率越来越高。为了兼容旧版本的设备, 所有设备在上电或者重启后,都会先进入兼容速率模式。在完成设备的初始化后,主机可 以通过命令CMD6,让设备进入其他高速率模式。目前eMMC支持的传输速率如下表所示。
命令格式
应答格式
eMMC总线
DAT线用于主机和eMMC之间的数据传输。在设备上电或者软复位后,只有DAT0可 以进行数据传输,在eMMC完成初始化后,可通过命令CMD6配置DAT0-3或者DAT0-7 进行数据传输,即将eMMC配置为 4 bits或者8 bits传输模式。但所有的传输模式下,数 据块的结构都是大致相同的,都是由起始位“0”,数据,CRC16和停止位“1”这四部 分组成的。
相关文档
最新文档