
黑猫带你学:eMMC协议详解
文章平均质量分 91
最详细/最基础/最全面的eMMC JEDEC协议讲解,物有所值!
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
黑猫学长呀
芯片行业嵌入式攻城狮一枚~
展开
-
黑猫带你学eMMC协议第1篇:全网最全emmc协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)
黑猫带你学eMMC协议第7篇:全网最全emmc写保护详解(write protect)黑猫带你学eMMC协议第8篇:emmc可靠写详解(Write Reliability)黑猫带你学eMMC协议第9篇:emmc的分区配置(partitioning)黑猫带你学eMMC协议第10篇:eMMC命令队列详解(CMDQ)黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim…)黑猫带你学eMMC协议第12篇:原创 2021-03-27 11:54:06 · 20154 阅读 · 28 评论 -
黑猫带你学eMMC协议第2篇:eMMC部分相关名词释义
1 前言1.1 声明本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 本文背景本文关键词不包括emmc jedec5.1协议第3章节:《Terms and definitions》内容。关于emmc协议层的关键词,直接查阅spec相关章节即可,清晰明了,此处没必要再列出。本文为本人工作学习中常听到或常用到关乎于emmc/flash的一些关键词合集,没有固定分类,不需要强行记忆,供查询使用。1.原创 2021-04-14 19:29:04 · 6202 阅读 · 3 评论 -
黑猫带你学eMMC协议第3篇:MMC相关介绍
对于纯小白来说,很容易搞混各种名词概念,而网上各种文章介绍时也不够严谨,导致越来越多人对很多专业术语搞不清楚,越来越迷糊,甚至有些内容,专业人士也容易搞混,如下,整理了一些存储芯片相关易迷糊的知识点。原创 2021-07-24 16:53:57 · 4010 阅读 · 1 评论 -
黑猫带你学eMMC协议第4篇:eMMC概述
1 前言声明:本文依据eMMC JEDEC5.1协议及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。本文大约3000字,从emmc的内部结构框架、供电、总线、寄存器等各方面进行框架性的介绍,本章节内容不需要深入研究,读完本篇文章,只要能对emmc有个框架下的了解,就可以了。2 内部结构框架由图可以看出,emmc内部由两块组成:控制器 + 存储介质。emmc内部存储介质绝大部分为nand flash。众所周知,我们需要存储数据到nand flash中,并原创 2021-07-24 18:46:08 · 2753 阅读 · 0 评论 -
黑猫带你学eMMC协议第5篇:总线协议帧格式token
1 前言声明:本文依据eMMC JEDEC5.1协议及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章收录于《黑猫带你学:eMMC协议详解》概述:emmc与host进行通讯,都是通过高低电平来完成的,那么此时就需要有一个规范,不然即使时emmc或者host也无法知道哪些是命令,哪些是数据,哪些是响应,此时这种规范就叫帧格式,也就是spec中所说的token。2 读写token1.为什么读总线协议中,CMD的response期间就可以发送data原创 2021-07-24 20:21:34 · 2367 阅读 · 10 评论 -
黑猫带你学eMMC协议第6篇:emmc的命令(cmd)、响应(resp)及设备状态(device status)详解
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1.2 内容提要本文大约6500字,主要内容有:1、emmc命令有哪些2、使用各种命令时需要注意的点3、emmc响应分类4、emmc设备状态解析5、emmc命令及响应格式2 命令emmc的命令及响应都在cmd线上传输。2.1 类型命令分为4大类,分别为:(1)bc:broadcast com原创 2021-07-27 21:48:30 · 7002 阅读 · 5 评论 -
黑猫带你学eMMC协议第7篇:eMMC各种寄存器详解(register)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1.2 写在前面本文大概4000字,主要讲述了emmc有哪些寄存器,以及各类寄存器的作用等。此章节不用非常详细了解每个寄存器的作用,只要掌握该篇文章中介绍部分即可。至于每个寄存器要怎么用,代表什么意思,完全不需要去逐一研究,后续遇到实际对emmc的操作时候去查每个寄存器的作用用法就行了,寄存器就相当于字典,没原创 2021-07-31 17:04:13 · 4159 阅读 · 5 评论 -
黑猫带你学eMMC协议第8篇:eMMC供电情况详解(power)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1.2 内容提要本文大约5000字,主要内容有:1、VCC/VCCQ分别是给什么供电?其相关限制有哪些?2、emmc power up对host有什么规定?3、emmc power cycle对host有什么规定?4、emmc电源供应状况1.3 学习须知本文主要介绍emmc的供电情况。有很大篇幅介绍原创 2021-07-31 17:18:17 · 3966 阅读 · 5 评论 -
黑猫带你学eMMC协议第9篇:eMMC初始化过程(initial)
本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1 什么是emmc的初始化对于小白来说,可能不太明白什么是emmc初始化。举个栗子:当你拿到一个电脑,接上电源,是不是就立马可以用了呢?并不是吧,你还需要去开机,等待电脑启动,配置完各种参数,等出现了电脑桌面,你才能用。那么同样,对于emmc芯片来说,也不是提供电源就能用了,需要输入各种命令后,让其进入到tran state后,才能正.原创 2021-08-15 16:32:42 · 5775 阅读 · 7 评论 -
黑猫带你学eMMC协议第10篇:eMMC读写操作详解(read & write)
对于emmc来说,最重要的一个操作,就是读和写了。毕竟emmc是存储芯片,专门用来存取数据,而存储数据就是对emmc进行读写操作。例如,一张照片存入emmc,这个过程就是host将数据传输到emmc设备中,称为写操作。同理,将该照片从emmc取出来,这个过程是emmc将数据传输到host,称为读操作。emmc中有8根数据线,数据传输有三种总线可选:1线(DATA0),4线(DATA0DATA3),8线(DATA0DATA7)对每条数据线,每个时钟周期可以传输1bit(single data rate)和2原创 2022-06-20 13:53:37 · 6996 阅读 · 11 评论 -
黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim...)
erase命令单位是擦除组,那么一个擦出组包含多个写块,不同写块有不同信息,主机擦除之前,必须进行确定好这些写块中的信息没有用了。所以通常erase用来擦除整个设备或分区。erase完成后,将erase的区域都要么是全0,要么是全1。那么到底是0还是1呢,根据不同的工艺有所不同,但是别担心,在ecsd[181]中会有说明到底是1还是0。erase命令的作用就是简单的将映射地址范围移动到未映射的地址范围。原创 2021-02-10 22:51:29 · 6730 阅读 · 6 评论 -
黑猫带你学eMMC协议第12篇:生产状态感知(PSA)
1 概述1.1 什么是PSAProduction State Awareness (PSA) 生产状态感知e•MMC设备可以利用其是否在生产环境中的信息,从而在现场运作时进行不同的操作。例如,在设备低温焊接(soldering)前,将数据写入emmc,可能导致数据出错,而正在焊接期间写入数据,出错的概率可能会更大。在低温焊接之前,emmc设备可以使用一种特定的内部操作去加载内容,这样就能减少数据出错的概率,而在低温焊接后进行常规的操作就行了。1.2 psa如何进行工作?PSA存在于emmc5.0原创 2021-02-10 20:31:28 · 3500 阅读 · 0 评论 -
黑猫带你学eMMC协议第13篇:CMD23打包命令(packed read/write)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有部分错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要1、什么是打包命令?2、打包命令最多能打包多少个读或写命令?3、打包命令头该怎么组包?4、打包流程是什么?相关寄存器有哪些?5、打包命令的错误处理有哪些?2 什么是打包命令将多个多块写或者多块读命令整合在一起,用一个命令发送给device的命令。注意打包命令只针对于close end的多块写和多块读,对单块写/单原创 2021-03-06 18:51:11 · 2911 阅读 · 2 评论 -
黑猫带你学eMMC协议第14篇:eMMC FFU详解(Field Firmware Update)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要1、ffu相关寄存器有哪些?2、如何设置ffu?3、什么是ffu?是否能够更新旧版本的固件到emmc?4、ffu配置流程图。2 什么是FFU主机下载新的固件到eMMC,下载成功后eMMC将固件安装到设备。3 相关寄存器/命令SUPPORTED_MODES [493]FFU_FEATURES [492]该原创 2021-03-11 19:02:44 · 3897 阅读 · 1 评论 -
黑猫带你学eMMC协议第15篇:eMMC的高优先级中断(HPI:High Priority Interrupt)详解
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要1.和HPI相关的寄存器有哪些?2.什么时HPI,它有什么用?3.对emmc发送什么命令能实现HPI呢?4.对emmc进行HPI有哪些限制?2 什么是HPI在一些情景中,emmc的一些数据对host来说是有优先级的。3 相关寄存器HPI_FEATURES [503]CORRECTLY_PRG_SECTORS_原创 2021-03-19 16:45:58 · 1550 阅读 · 0 评论 -
黑猫带你学eMMC协议第16篇:eMMC断电通知机制详解(PON)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。付费咨询可加V.X.:buck112233441.2 内容提要1.什么是PON?2.PON有哪些类型,分别有什么区别?3.如何实现PON功能呢?4.和PON相关的寄存器有哪些,分别有什么作用?5.进行PON要注意哪些问题?2 什么是PONPON:POWER_OFF_NOTIFICATIONhost在断电前通知emmc要断电了,然后原创 2021-03-27 11:44:59 · 3680 阅读 · 2 评论 -
黑猫带你学eMMC协议第17篇:超详细的eMMC HS200 & HS400讲解
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要本文大约6000字,主要内容有:1.什么是emmc hs200/hs400?2.什么是tuning?tuning的过程又是什么?3.如何设置才能让emmc进入hs200 mode?4.如何设置才能让emmc进入hs400 mode?5.emmc关于HS200/HS400内部结构框图对比。6.部分个人相关经验总结。原创 2021-05-16 15:37:34 · 16783 阅读 · 21 评论 -
黑猫带你学eMMC协议第18篇:语境管理(context management)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要本文大约4000字,主要内容有:1.什么是context id?2.如何使用context id?有什么作用?3.语境中断会影响哪些数据。 4.如何通过大单于访问语境?5.语境如何配置?2 简介2.1 什么是语境管理为了更好地区别大的顺序操作和小的随机操作,并提高多任务支持,可将语境与读或写关联。将一组命令与一原创 2021-05-30 11:59:51 · 1570 阅读 · 4 评论 -
黑猫带你学eMMC协议第19篇:eMMC RPMB区域详解(重放保护内存块)
2 RPMB的作用什么是重放攻击(replay attacks)?重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。重放攻击在任何网络通过程中都可能发生,是计算机世界黑客常用的攻击方式之一。原理:重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给原创 2021-06-16 19:56:22 · 2371 阅读 · 1 评论 -
黑猫带你学eMMC协议第20篇:eMMC的后台操作(Background Operations)
1 前言1.1 声明本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。1.2 内容提要本文大约2500字,主要内容有:1、什么是后台操作/前台操作?2、如何进行手动后台操作?3、如何进行自动后台操作?4、这些后台操作要遵循jedec规定的什么规则?2 什么是后台操作emmc内部需要执行一些维护操作。当host不对emmc下命令的时候,emmc内部可能依旧会进行部分操作,比如垃圾回收/数据搬运等,这些就称之为后台原创 2021-06-30 21:19:15 · 1311 阅读 · 0 评论 -
黑猫带你学eMMC协议第21篇:全网最全emmc写保护详解(write protect)
1 前言1.1 声明本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有部分错误请留言。本文部分内容可能源自网络,侵删。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要1、什么是写保护?2、什么是上电写保护、永久写保护、临时写保护?他们有什么区别?3、写保护相关寄存器/命令4、特定区段写保护和整卡写保护如何设置?5、Boot Partition/GPP partition如何进行写保护?6、安全写保护是什么?如何设置?2 概述/规则写原创 2021-02-25 14:44:13 · 5581 阅读 · 11 评论 -
黑猫带你学eMMC协议第22篇:emmc可靠写详解(Write Reliability)
1 前言1.1 声明本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有部分错误请留言。本文部分内容可能源自网络,侵删。本文结合eMMC JEDEC5.1协议手册查看效果更佳。1.2 内容提要1、什么是可靠性写属性(Write Reliability)?2、可靠写和普通的写有什么区别?3、设置可靠写的流程及流程框图。4、可靠写需要遵循哪些规则?1.3 参考链接本文主要参考链接:http://www.up48.com/cn/support/8_37.html2 什么原创 2021-02-24 09:50:27 · 2703 阅读 · 4 评论 -
黑猫带你学eMMC协议第23篇:emmc的分区配置(partitioning)
1 概述一颗新的emmc,原本就有boot、RPMB、UDA区域,但是没有GPP区域,需要自己配置。配置GPP区域,占用的是UDA区域。如图:UDA区域可以配置成增强属性,但不能配置成扩展属性。GPP可以配置成增强属性和扩展属性。BOOT分区和RPMB分区大小和属性由厂商定义,不可以更改,GPP区域的大小和属性,可以在设备生命周期内一次可编程,UDA区域中的一段可以用来设置增强属性,也是在生命周期内一次可编程。(重新开卡就可以重新设置属性和大小)。由主机进行的通用分区和增强用户数据区配置可影响先原创 2021-02-10 23:45:09 · 2720 阅读 · 2 评论 -
黑猫带你学eMMC协议第24篇:eMMC的总线测试程序详解(CMD19 & CMD14)
本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1 概述目的通过在SDR速率模式下发出命令CMD19和CMD14,主机可以检测到device中哪些data线可以正常工作。比如检测到emmc的8根data线都能正常工作,那么之后host就可以按照自己的需要设置与emmc通信的数据线宽。1、host发送cmd19给device,携带指定pattern的数据在每个被选中的数据线中。.原创 2021-08-25 09:44:30 · 2457 阅读 · 2 评论 -
黑猫带你学eMMC协议第25篇:eMMC命令队列详解(CMDQ)
15 擦除(参考链接:https://blog.youkuaiyun.com/weixin_38233274/article/details/79258951)UDA/BOOT区域可以进行擦除,RPMB区域不可以。15.1 Eraseerase命令单位是擦除组,那么一个擦出组包含多个写块,不同写块有不同信息,主机擦除之前,必须进行确定好这些写块中的信息没有用了。所以通常erase用来擦除整个设备或分区。(1)单位:擦除组(EraseGroup)Erase翻译过来是抹去、擦除的意思。eMMC中可擦除的单位称为原创 2021-02-10 23:09:10 · 6274 阅读 · 10 评论 -
黑猫带你学eMMC协议第26篇:eMMC的硬件复位操作(H/W reset)
本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1 概述什么是硬件复位?硬件复位就是使用一个特殊硬件信号(这个信号在RST_n这根实实在在的物理线路上传输)将emmc复位到pre-idle state,而不需要使用cmd0或者power cycle讲emmc复位到pre-idle state。如何进行硬件复位?1、设置RST_n_FUNCTION [162]为1,使emm.原创 2021-09-14 09:47:56 · 5548 阅读 · 1 评论 -
黑猫带你学eMMC协议第27篇:什么是eMMC的动态容量(Dynamic Capacity)?
本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,禁止私自转载。文章所在专栏:《黑猫带你学:eMMC协议详解》1 什么是动态容量长期对存储设备的使用以及flash的老化,将会在存储设备内部产生坏块。动态容量管理机制的目的就是在设备产生大量坏块后,可以改变设备的容量,从而延长寿命的使用时间。2 相关命令ecsd59的值为0x01时候,class6类型的命令(cmd28、29、20、31)就不是用来操作写保护的了,而是进行动态容量相关操作。.原创 2021-09-30 11:00:14 · 1711 阅读 · 0 评论 -
黑猫带你学eMMC协议第28篇:eMMC的开漏和推挽模式(push-pull & open drain)
RDAT和RCMD是上拉寄存器,当设备驱动都处于高阻抗模式时,用来保护CMD和DATA免受过大的浮动。host打开/关闭ROD用来控制push-pull/open drain mode。对于XU4平台,应该是设置CTRL register的ENABLE_OD_PULLUP字段用来控制ROD是打开还是关闭。如果有一个稳定的电流(包括稳定的上升沿和下降沿),那就可以代替RCMD达到一个更好的性能。如果host没办法控制RCD,固定的RCMD可以被利用起来。因此,如果RCMD的电阻大于给出的最小工作值,那原创 2023-03-04 10:52:01 · 1553 阅读 · 0 评论 -
黑猫带你学eMMC协议第29篇:eMMC设备锁详解(CMD42)
通过cmd42命令,可以给emmc设置密码,并且锁定emmc。这时候就不能对emmc的user分区进行读写数据访问了。设备锁在V4.3版本后的emmc里面,就只能保护user area分区,因此,被锁定的emmc,依旧可以正常访问BOOT\RPMB\GPP分区。emmc内部有128 bit PWD寄存器,用来存放密码,以及有8bit PWD_LEN寄存器,用来密码长度。这两个寄存器非易失性,掉电也不会丢失。原创 2023-05-02 17:49:01 · 2600 阅读 · 1 评论 -
黑猫带你学eMMC协议第30篇:eMMC的boot mode和boot operation详解
boot operation是干嘛的?boot operation期间,将boot区域的数据全部吐出来。如果emmc用在手机里面,吐出来的这些数据用于启动手机,也就是说boot区域已经提前放置了安卓系统等信息。boot operation也可以从uda吐数据,但是emmc的init过程很长,所以放在boot area就可以很快速将这些数据给出来。这也就是为什么手机电源键一按,屏幕等设备就会快速工作起来。流程框图如图所示,按照蓝紫色箭头标注出来的流程就是boot operation的流程。原创 2023-08-21 00:32:26 · 1730 阅读 · 3 评论 -
黑猫带你学eMMC协议第31篇:什么是eMMC的驱动强度(Drive Strength)
首先要清楚:内阻越大,驱动强度越小;内阻越小,驱动强度越大。ECSD[185]可调节DS(drive strength), 是所有eMMC的基本功能,一般厂商样片都是可调的。当emmc使用在一些平台上,出现CRC的问题时候,可以考虑调整驱动强度。相关寄存器只读,表示emmc是否支持调节驱动强度及支持的强度等级。bit7-bit4用来调节驱动强度。驱动强度修改影响的总线有哪些?这个驱动强度会调节整个IO的驱动,也就是包括emmc的cmd、data、ds pin。原创 2023-12-04 21:36:13 · 2395 阅读 · 2 评论 -
黑猫带你学eMMC协议第32篇:eMMC什么场景下会出现ADDRESS_ OUT_OF_RANGE(OOR)
read last lba,device有概率置位oor,host忽略即可。原因截图解释:不过,虽然spec中规定如上,但是实际很多厂商处理的时候,还是会较真这种情况下的OOR处理。如下提供了一种厂商实现的方案:比如read到full card 的最后一个sector时候,如果clk一直有提供给emmc,fw也不要再吐数据给host了。cmd12发送比较慢,那么此时就认为是下一个sector的数据要传输的时间了,此时OOR还是要在cmd12的resp置位。原创 2024-11-16 18:56:11 · 190 阅读 · 0 评论