事先声明本文不用于任何商业行为,仅用于本人学习与记录。所有截图版权均属于《Embedded Multi-Media Card (e•MMC) Electrical Standard (5.1)》
欢迎点赞、收藏、转发分享给朋友,禁止未经书面授权的复制、搬运、二次剪辑。
如有引用请注明出处。
标准规范仍然以《Embedded Multi-Media Card (e•MMC) Electrical Standard (5.1)》为准
写在最前:往后个人见解部分均用实线框出来。
欢迎来到eMMC5.1系列,相信大部分移动存储固件小伙伴首先接触的就是eMMC协议,eMMC作为一个很老的协议了,至今还在发光发热,他绝对不是没有用的,现在很多视频监控,低端机等等用的都是eMMC,可以简单类比TF卡(SD卡),一个是插进去的,而eMMC是焊上去的。eMMC我认为最与UFS以及现在主流存储比如SATA/PCIE不同的是,其完全不走SCSI命令,有自己一套独特可Commond,ECSD等,对于刚学习的小伙伴来说,他其实内容不少。
但是存储的基本知识都是共通的,当你掌握了任意一个存储协议,看其他的就会有一种噢~这个我见过的感觉,那么废话不多说,开始eMMC5.1的学习讲解
前言
本标准由 JEDEC 与 MMC 协会(下文简称 MMCA)共同制定。 JEDEC 在 MMCA 基础规范的基础上进行适配,将其用于嵌入式场景,并命名为eMMC。
本标准旨在定义 e・MMC 的电气接口、工作环境以及使用规范,为系统设计人员提供设计指导。本标准同时定义了一套工具集(包含一组宏函数与算法),用于降低设计导入工作量。
引言
eMMC 是一种托管型存储器,可存储程序代码与数据,专为移动设备设计。 eMMC 旨在满足移动设备所需的性能与功能特性,同时保持低功耗。eMMC 器件具备多项特性:既能在大批量数据传输时提供高吞吐,也能适配代码访问场景中更为常见的小粒度随机数据读写性能;同时内置多项安全功能。
eMMC 通信基于一套先进的 11 信号总线,对应的通信协议在本标准中定义,称为eMMC 模式。
eMMC 标准仅适用于嵌入式器件,但这套协议与命令最初是为可插拔卡器件开发的。规范虽已更新,删除了所有针对可插拔器件的描述,但仍保留部分功能,用于保证向后兼容。
本文档用词约定:
- shall / will:表示标准中的强制要求;
- should:表示推荐要求,但不作强制;
- may:表示可选特性,器件可实现也可不实现,不影响合规性,由实现方自行决定。
嵌入式多媒体器件产品标准(eMMC 5.1)
(源自 JEDEC 委员会投票文件 JCB-15-01,由 JC-64.1 电气规范与命令协议分委会牵头制定)
1 范围
本文档完整定义 eMMC 电气接口、工作环境以及使用规范,同时提供设计指南,并定义一套由宏函数、算法组成的工具集,用以降低设计导入开销。
2 规范性引用文件
下列规范性文件中的条款通过本文引用,构成本标准的条款。对于注日期的引用文件,其后续的修改单、修订版本均不适用于本标准。但鼓励依据本标准订立协议的各方,酌情考虑使用下述引用文件的最新版本。未注日期的引用文件,适用其最新版本。 INCITS,T10 委员会,SPC-4,SPC SCSI 基础命令集
3 术语和定义
本规范中,通用术语缩写约定如下:
地址空间定义
映射主机地址空间:eMMC 器件内,可由主机软件通过读命令访问的区域。
厂商私有专用地址空间:eMMC 器件内,主机软件无法通过读命令访问的区域。该区域存放厂商自定义内部管理数据;这类数据可在出厂时烧入,或是器件运行过程中生成(例如:存储厂商固件、映射表)。该区域不包含任何主机下发给器件的数据(或数据片段)。
未映射主机地址空间:eMMC 器件内,主机软件无法通过读命令访问的区域,不包含厂商私有专用地址空间。该区域可能存放旧数据或者主机数据副本。
- Block:若干字节,是基本数据传输单元
- CID:器件识别寄存器
- CLK:时钟信号
- CMD:命令线,或 eMMC 总线命令(扩展命令记作 CMDXX)
- CRC:循环冗余校验
- CSD:器件特定数据寄存器
- DAT:数据线 Data Strobe:
- HS400 模式下使用的回传时钟信号
- DISCARD:这是一条性能类命令,主机可通过该命令标记不再需要的存储区域,器件无需执行实际擦除动作。 注:如需真正删除数据,请参见 TRIM 命令。
- DDR:双倍数据速率
- DSR:驱动级寄存器
- D-VDD:缓存存储器的正电源电压
- D-VSS:缓存存储器的电源地
- D-VDDQ:缓存存储器 I/O 的正电源电压
- D-VSSQ:缓存存储器 I/O 的电源地
- e・MMC:嵌入式多媒体卡(缓存功能为可选特性,仅支持单路 VDDi 引脚)
- e²・MMC:支持 e・MMC 缓存特性、并且带有三路 VDDi 引脚的 e・MMC 器件
- Empty Task Queue:空任务队列,指器件任务队列中没有就绪或待处理任务的状态
- ERASE:块擦除操作,该操作不需要执行实际的 NAND 物理擦除
- Flash:一种可多次编程的非易失性存储器
- Group:由多个写块组成,是组合擦除与写保护的单位
- HS200:高速接口时序模式,200MHz 单数据速率总线,最高带宽 200MB/s,支持 1.8V 或 1.2V I/O
- HS400:高速 DDR 接口时序模式,200MHz 双倍数据速率总线,最高带宽 400MB/s,支持 1.8V 或 1.2V I/O
- ISI:码间干扰(特指某一类噪声)
- LOW、HIGH:二进制接口电平状态,各自对应规定的电压等级
- NSAC:用于定义数据访问时间中,与时钟频率相关系数的最坏情况值
- Non-Persistent:存储器件的一部分区域,掉电重启后内容会丢失
- MSB、LSB:最高有效位 / 最低有效位
- OCR:工作条件寄存器
- open-drain:开漏,一种逻辑接口工作模式。依靠外部电阻或电流源将接口电平上拉至高电平,内部晶体管负责拉低至低电平 payload:净数据
- push-pull:推挽,一种逻辑接口工作模式,使用一对互补晶体管,将接口电平驱动至高电平或低电平
- QSR:队列状态寄存器
- RCA:相对器件地址寄存器
- Reset:复位,指参数为 0x00000000 或 0xF0F0F0F0 的 CMD0、硬件复位(或 CMD15)
- ROM:只读存储器
- RPMB:重放保护存储块
- SSO:同步开关输出(特指某一类噪声)
- Secure Purge:安全清除。该操作作用于可寻址位置。执行该操作时,会清除未映射主机地址空间内的全部数据,清除动作依据 EXT_CSD 中安全擦除类型参数执行。根据上下文,操作对象可以是一个或多个写块、写保护组。 注:安全清除的定义与存储介质工艺相关(上述定义基于 NAND 闪存)。更多详情可参阅 DoD 5220.22-M Sanitizing method、DoD 5220.22M 文档以及 NIST SP 800-88。
- SQS:发送队列状态。将 SQS 位置 1 发送 CMD13,用于查询 QSR 寄存器 stuff bit:填充位,填充 0 比特,保证命令与响应帧长度固定
- TAAC:定义数据访问时间中与时间相关的系数
- three-state driver:三态驱动器,驱动电路具备三种输出状态:高电平、低电平、高阻态(高阻态下接口不驱动电平)
- token:令牌,代表一条命令的码字
- TRIM:该命令用于清除一个写组内的数据。执行 TRIM 之后,对应区域读出来的值应为 0。它主要用作数据擦除命令(作为性能命令可参考 DISCARD)
- Tuning Process:调谐流程,通常由主机执行,用来寻找数据输入信号的最佳采样点。器件可按照 HS200 模式规范提供调谐数据块
- UI:单位间隔,即单个比特的标称时长。例如:200MHz SDR 模式下 UI=5ns;200MHz DDR 模式下 UI=2.5ns
- UTC:协调世界时
- V_DD:单电源器件下代表公共电源(V_CC=V_CCQ);在讨论功耗电流时,代表 V_CC 与 V_CCQ 的总消耗电流
- V_SS:器件内核的电源地
- V_CC:内核正电源电压
- V_CCQ:I/O 正电源电压
V_CC可以理解为给eMMC各个元器件,外设供电的。V_CCQ是给data线供电的也就是真正传输的01电平。
V_SSQ:I/O 电源地
- Write Protection, Permanent:永久写保护,一种禁止写入与擦除的机制,一旦开启,无法撤销
- Write Protection, Power-on:上电型写保护,一种禁止写入与擦除的机制,开启后,只有发生掉电重启,或者通过复位引脚复位器件时,该保护才会解除
- Write protection, Temporary:临时写保护,可开启、可关闭的写入擦除禁止机制
4 系统特性
e・MMC 器件是一种托管型存储器,定义了一套对存储阵列进行间接访问的机制。这类间接访问通常由独立控制器实现。间接访问的优势在于:存储器器件可以自主执行多项后台存储管理任务,无需主机软件参与,从而简化主机侧的闪存管理层。
e・MMC 器件支持以下特性:
系统电压范围(VCC 和 VCCQ)(见表 1)
- 11 线总线(时钟、数据选通信号、1 位命令线、8 位数据总线)以及硬件复位
- 时钟频率范围:0~200MHz
- 三种不同数据总线位宽模式:1 位(默认)、4 位、8 位
- 数据保护机制:
- 密码保护
- 永久写保护
- 上电写保护
- 临时写保护
- 多种带错误保护的读写模式:
- 单块
- 多块
- 数据清除命令:
- Erase(擦除)
- Trim
- Sanitize(安全擦除)
- 掉电时的数据保护机制
- 可通过专用应用命令实现定制化方案
- 省电睡眠模式
- 增强主机与器件的通信机制,用以提升性能
- 断电通知
- 高优先级中断(HPI)
- 后台操作
- 分区功能
- 增强区域
- 实时时钟
- 分区属性
- 上下文管理
- 系统数据标记
- 打包命令
- 器件动态容量
- 可选易失性缓存
- 缓存增强屏障
- 封装壳温检测
- 命令队列
- 增强数据选通
- 封装壳温检测
- Boot Areas:在指定启动模式下可以自动流式输出数据
- 重放保护存储块的带签名访问机制
- 两类大容量器件:512 字节小扇区器件、4KB 大扇区器件
该章节为先导章节,了解,有印象即可,后面所有的都会涉及到~