5.3.2 - 6.2.4
- bus speed modes
-
HS200模式特点:
-
使用单倍速率采样方式
-
时钟频率最高为200MHz,单倍传输模式下,数据传输速度为200MB/s
-
支持4线和8线数据位宽,
-
具有4个驱动强度的单端采样等级
-
单路电压值为1.8V和1.2V
-
读取数据操作时,引入了tunning
-
-
HS200 工作框图
写操作时,时钟与数据是同一方向的;而读数据时,方向相反,且针对延时,需要有tuning擦操作。CMD21命令用于获取tuning block信息,来保证采样内容是正确的。 -
HS400模式特点:
- 双倍速率采样方式
- 时钟频率最高达200MHz,在双倍速率模式下,数据传输速率可到达400MB/s。
- 仅支持8线数据宽度
- 信号电平为1.8V和1.2V
- 支持5种驱动强度
- 数据选通信号(Data strobe signal)只在数据输出、CRC响应和CMD响应环节进行状态切换
- HS400工作框图
2.eMMC概览
五种模式:
- Boot mode: 通过单板上电,带有参数为0xF0F0F0F0的CMD0以及硬件复位功能,使EMMC经过host控制 进入该模式
- Device identification mode :当上述步骤完成后,或者 EMMC自身不支持boot mode 启动时,EMMC会进入该模式,直到EMMC接收到host发出的CMD3命令切换后续状态。
- Interrupt mode : host和device同步进入中断或者退出中断模式,该模式中没有数据传输,仅存在host或者device 发出的和中断相关的信息。
- Data transfer mode: 当EMMC收到RCA(Relative Device Address)对齐地址后,会进入数据传输模式,紧接着host识别来自总线的EMMC 器件信息后,也进入数据传输模式。
- Inactive mode: 当不满足EMMC工作电压范围以及无法访问时,通过host 下发CMD15(GO_INACTIVE_STATE), EMMC进入该模式,重新复位后进入pre-idle 状态。
表5描述了EMMC 总线模式的相关性,在EMMC的状态框图中,每一种状态对应一个总线和一个操作模式
3.分区管理
默认存储IC中的user data area用来存储数据,两个boot area 用来启动系统,RPMB区域使用可靠的数据保护方式管理用户数据。在制造商提供的可见数据存储区域总共包括了User data area,boot area partion1,boot area partion2,以及RPMB,且制造商对boot area partions 容量进行了预先定义,而user data area 后续被程序设计人员用来划分嵌入式系统数据存储分区。
-
两个引导区域分区,其大小为128 KByte的倍数,能够进行eMMC的启动引导。
-
一个RPMB 分区,采用一种可信方式,其大小为128KByte的倍数。
-
四种通用区域分区,用于存储敏感数据或用于其他host的功能,其大小是写保护组的倍数。
每个通用区域,都可以通过增强或者扩展技术实现,从而将他们与普通存储介质区分开来。一般,如果支持,则boot和rpmb区域,默认采用增强技术。
boot 和RPMB 分区容量以及具体功能通过存储制造商进行定义外,其他人员只能通过只能方式进行访问
更改后,可能影响现有数据。比如: 由于EMMC device controller 会执行由host配置后相关参数,导致首次上电后的初始化时间可能超过协议规定的上限值 。
4.命令约束
boot partions 启动分区:该分区中不允许使用CMD6(写保护)和CMD7(锁定设备)。
RPMB分区:该分区中允许Class0、Class2和Class4这4类命令。需注意,除了使用CMD0,CMD6,CMD8 CMd12,CMD13,CMD15以及6.6.22中定义的命令,其他命令被认为是不合法的。
general purpose partions 通用分区:允许使用class 0,2,4,5,6这五类命令。每一个分区对应的写保护可以单独设置,因此呢,host 可以在每个写保护组中分别设置不同的写入保护类型。
user data area 命令 --》增强用户数据区域
5.扩展分区属性
每个general purpose partition 都拥有一个扩展分区属性:
-
Default 默认属性: 未进行扩展的
-
System code 系统编码:很少更新改动且包含重要系统文件的分区
-
Non-Persistent 临时性:用于临时存储信息的分区(例如,用于扩展主机虚拟内存空间的交换文件)
EMMC通过这种扩展属性,进一步优化其存储介质的特性,为各分区的后续用途提供便利。
单个分区只能选择增强和扩展这两者中的一个功能。
6.配置分区
eMMC支持分区功能 ----》 bit0 (PARTITIONING_EN)
eMMC支持增强分区 ----》 bit1 (ENH_ATTRIBUTE_EN)
eMMC支持扩展分区 ----》 bit2 (EXT_ATTRIBUTE_EN)
通用分区指令:
GP_SIZE_MULT_GP0 - GP_SIZE_MULT_GP3 ----》设定容量
PARTITIONS_ATTRIBUTE ----》增强分区属性
EXT_PARTITIONS_ATTRIBUTE ----》扩展分区属性
增强用户分区: 设置起始地址,和分区属性,该字段位于ext_csd寄存器中,可通过如下参数设置
ENH_START_ADDR ----> 设定起始地址
ENH_SIZE_MULT ----> 设定分区容量
PARTITIONS_ATTRIBUTE ---->增强分区功能
ext_csd寄存器中,可通过如下参数设置
ENH_START_ADDR ----> 设定起始地址
ENH_SIZE_MULT ----> 设定分区容量
PARTITIONS_ATTRIBUTE ---->增强分区功能
Ps:增强用户数据区与用户其余部分之间没有地址间隙