eMMC基础知识介绍_第1页
eMMC基础知识介绍_第2页
eMMC基础知识介绍_第3页
eMMC基础知识介绍_第4页
eMMC基础知识介绍_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基础知识介绍

eMMC1eMMC基础知识介绍5/9/2024主要内容

?eMMC

的基本概念

?eMMC

总线和寄存器的相关介绍

?eMMC的工作模式

2eMMC基础知识介绍5/9/2024什么是eMMC?eMMC全称是EmbeddedMultiMediaCard(嵌入式多媒体卡)

?由一个嵌入式存储解决方案组成,带有MMC接口、NANDFlash以及MMC控制器,这些结构都被封装在一个小型BGA中。

?简单的来说,eMMC=NANDFlash+MMC控制芯片+MMC标准接口。

3eMMC基础知识介绍5/9/2024eMMC的优势

?eMMC在内部集成了存储控制器,其中包含了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。

?相比于直接将NANDFlash接入到主机进行使用,eMMC屏蔽了NANDFlash的物理特性,这样减少了主机端软件的复杂度,让主机端专注于上层业务,省去了对NANDFlash的特殊处理。

?同时,eMMC还运用了缓存、存储阵列等技术,在读写性能上也比NANDFlash要好很多。

?

因此,eMMC也逐渐成为了目前最常用的移动设备本地存储解决方案。

4eMMC基础知识介绍5/9/2024eMMC与SD的关系

eMMC和SD的技术本质是一样的,都是从MMC规范演化而来,使用相同的总线规范;

?eMMC强调的是多媒体存储(MM,MultiMedia);

?SD强调的是安全和数据保护(S,Secure);

5eMMC基础知识介绍5/9/2024eMMC协议规范

目前eMMC协议规范最新的版本是JESD84-B51,它规范了总线接口以及控制芯片,而对在系统架构中的主机和存储阵列部分的内容并没有未完全规定。

6eMMC基础知识介绍5/9/2024eMMC总线

eMMC的总线由11条信号线组成,一条时钟信号线(CLK),一条数据选通信号线(DataStrobe),一条命令信号线(CMD),八条数据信号线(DAT0-7)。

CLK用于从主机输出时钟信号,进行数据传输的同步和设备运作的驱动。

在一个时钟周期内,CMD和DAT0-7上都可以支持传输1bit数据,即SDR(SingleDataRate)模式。此外,DAT0-7信号还支持配置为DDR(DoubleDataRate)模式,在一个时钟周期内,可以传输2bits数据。

7eMMC基础知识介绍5/9/2024eMMC总线

DataStrobe是在eMMC5.0中引入的一根时钟信号线。它是由eMMC发送给主机的,且频率与时钟线相同,用于和主机端进行数据接收的同步。该信号线只能在HS400模式下配置启用,启用后可以提高数据传输的稳定性。

CMD线是双向命令通道信号线,用于主机向eMMC发送命令以及eMMC向主机回传应答。CMD线在上电后都是保持高电平状态,因此命令和应答数据的起始位都是“0”。下图就是命令和应答的具体格式。

命令格式

应答格式

8eMMC基础知识介绍5/9/2024eMMC总线

DAT线用于主机和eMMC之间的数据传输。在设备上电或者软复位后,只有DAT0可以进行数据传输,在eMMC完成初始化后,可通过命令CMD6配置DAT0-3或者DAT0-7进行数据传输,即将eMMC配置为4bits或者8bits传输模式。但所有的传输模式下,数据块的结构都是大致相同的,都是由起始位“0”,数据,CRC16和停止位“1”这四部分组成的。

以下是在不同传输模式下,数据块的格式。

1bitSDR模式

4bitsSDR模式

8bitsSDR模式

9eMMC基础知识介绍5/9/2024eMMC总线

在双倍数据率模式下,DAT线在时钟的上升沿和下降沿都会传输数据,其中上升沿传输数据的奇数字节

(Byte1,3,5...),下降沿则传输数据的偶数字节(Byte2,4,6...),每条DAT线上都有两个相互交织的CRC16,上升沿的CRC比特组成oddCRC16,用于校验该DAT线上所有上升沿比特组成的数据。下降沿的CRC比特组成evenCRC16,用于校验该DAT线上所有下降沿比特组成的数据。

4bitsSDR模式

8bitsDDR模式

10eMMC基础知识介绍5/9/2024eMMC传输速率

随着eMMC协议的版本迭代,eMMC总线的速率越来越高。为了兼容旧版本的设备,所有设备在上电或者重启后,都会先进入兼容速率模式。在完成设备的初始化后,主机可以通过命令CMD6,让设备进入其他高速率模式。目前eMMC支持的传输速率如下表所示。

11eMMC基础知识介绍5/9/2024eMMC控制芯片

主机就是通过命令对控制芯片的寄存器进行读写,来完成对eMMC的操作。控制芯片的寄存器主要有以下部分:

OCR,工作条件寄存器,存放设备的电压信息概况和访问模式;

CID,设备识别寄存器,存放设备在识别阶段所使用到的设备识别信息。每个设备都有一个独一无二的识别号;

RCA,相对地址寄存器,存放设备在识别阶段主机分配的设备地址。此地址用于设备识别之后主机与设备之间的寻址通讯;

CSD,数据寄存器,寄存着设备内容访问方式的信息,其中定义了数据格式、读写数据块的大小、最长数据访问时间、数据传输速度、DSR寄存器是否可用等。

EXT_CSD,扩展数据寄存器,定义了设备属性和选定的模式。它长512字节,高320位字节是属性段,定义了设备能力,不能被主机更改。低192位字节是模式段,定义了设备的工作配置。主机可以被通过SWITCH命令(CMD6)改变这些配置。

DSR,驱动寄存器,用于扩展操作条件以提高总线性能(取决于总线长度、传输速率或设备数等参数)。

QSR,队列状态寄存器,存储着在特定时间点队列中的任务状态。

12eMMC基础知识介绍5/9/2024eMMC分区

eMMC标准中,内部的存储空间被划分为了4类区域,最多可以支持8个硬件分区。

?引导分区,存储引导信息;

?RPMB分区,存储一些有防止非法篡改需求的数据,如:手机上指纹支付相关的公钥、序列号等;

?通用分区,属于可选分区,可以为分区设置一些额外的属性,比如:提高该分区的读写性能、寿命以及稳定性或者将这些用来作为存放操作系统类的、很少进行擦写更新的分区等。

?用户数据分区;

13eMMC基础知识介绍5/9/2024eMMC启动流程

1、上电

eMMC上电后,会进入到pre-idle状态,除此之外,eMMC还可以通过以下两种方法进入到pre-idle状态

1)软件复位,设备收到从主机发来的GO_PRE_IDLE_STATE命令(参数为

0xF0F0F0F0的CMD0);

2)硬件复位,可以通过主机拉高RST_n信号线来触发。

2、eMMC确认是否需要进入引导模式

eMMC的寄存器位BOOT_PARTITION_ENABLE(EXT_CSDbyte[179])中有引导配置。eMMC可以通过这些配置确认是否需要进入引导模式以及引导分区。如果没有启用引导模式,那么eMMC将直接进入到idle状态。

14eMMC基础知识介绍5/9/2024eMMC启动流程

3、eMMC进入引导模式

如果启用了引导模式,并且检测到CMD线被拉低了74个时钟周期后,eMMC就会进入引导模式,并开始准备向主机发送引导数据。

在CMD线被拉低1秒之内,eMMC开始在DAT线上向主机发送引导数据。主机在读取引导数据时,必须保持CMD线为低。如果eMMC启用了引导确认,那么eMMC必须在CMD线被拉低50ms之内向主机发送

数据“010”,确认引导模式。

当引导数据全部发送到主机后,引导操作将结束。在执行引导操作之后,主机需要通过发送CMD1,启动eMMC的正常初始化流程。

15eMMC基础知识介绍5/9/2024eMMC启动流程

4、替代的引导操作

如果启用了引导模式,并且检测到CMD线维持在高电平74个时钟周期后,收到了参数为0xFFFFFFFA的CMD0命令,eMMC同样会进入引导模式,并开始准备向主机发送引导数据。

16eMMC基础知识介绍5/9/2024eMMC启动流程

5、idle状态

eMMC在退出引导模式后,会进入到设备识别模式中的idle状态。如果没有启用引导模式,上电、硬件重置或软件重置后,都会使eMMC进入Idle状态。

在idle状态下,eMMC会进行内部初始化,此时主机需要持续发送CMD1命令,查询eMMC是否已经完成初始化,同时确认eMMC的工作电压和寻址模式。

主机发送的CMD1命令中,包含了主机所支持的工作电压和寻址模式信息,eMMC在接收到这些信息后,会进行匹配。如果eMMC和主机所支持的工作电压和寻址模式不匹配,那么eMMC会进入Inactive状态。

要访问已经处于Inactive状态的eMMC,主机就必须通过关断并重开电源来进行硬复位。

17eMMC基础知识介绍5/9/2024eMMC启动流程

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进行正常的读写操作了。

18eMMC基础知识介绍5/9/2024eMMC传输模式

主机可以通过命令CMD7,将指定的eMMC从Stand-by状态切换到Transfer状态,然后对eMMC进行读写操作。

主机向eMMC发送读取命令后,eMMC会根据命令参数,向主机发送对应的数据块,发送结束后,eMMC会重新进入Transfer状态。

主机向eMMC发送写入命令后,eMMC会根据命令参数,接收从主机发来的数据块,每接收一个数据块,eMMC都会进行CRC校验,校验无误后,eMMC会进入Pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论