黑猫带你学eMMC协议第34篇:一文搞懂eMMC的CRC机制及模2除法

本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。
文章为个人辛苦整理,付费内容,已加入原创侵权保护,禁止私自转载,违者必究。
文章所在专栏:《黑猫带你学:eMMC协议详解》

1 CRC

1.1 eMMC中的CRC类型

CRC:Cyclic Redundancy Check,循环冗余校验。

cmd和data line都有CRC,用于保护数据,避免错误。

1.1.1 CRC7

  • CRC7用在什么地方?

(1)所有cmd

(2)除了R3类型的response中

(3)CSD和CID寄存器

竞品样片CSD/CID CRC使用情况:

闪迪、东芝、三星、金士顿样片CSD/CID CRC为全0.

1.1.2 CRC16

CRC16用于块传输模式下载荷保护。

所有的总线配置使用相同计算方法的 CRC16。在 4-bit 和 8-bit 总线配置下,每一条线分别计算CRC16。发送 CRC16 是

黑猫带你学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篇: 阅读详情

相关推荐

黑猫带你学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的电阻大于给出的最小工作值,那

黑猫奥利奥的博客 2157

黑猫带你学eMMC协议第31篇:什么是eMMC的驱动强度(Drive Strength)

首先要清楚:内阻越大,驱动强度越小;内阻越小,驱动强度越大。ECSD[185]可调节DS(drive strength), 是所有eMMC的基本功能,一般厂商样片都是可调的。当emmc使用在一些平台上,出现CRC的问题时候,可以考虑调整驱动强度。相关寄存器只读,表示emmc是否支持调节驱动强度及支持的强度等级。bit7-bit4用来调节驱动强度。驱动强度修改影响的总线有哪些?这个驱动强度会调节整个IO的驱动,也就是包括emmc的cmd、data、ds pin。

黑猫奥利奥的博客 3255

黑猫带你学eMMC协议第5篇:总线协议帧格式token

1 前言 声明: 本文依据eMMC JEDEC5.1协议及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 文章收录于《黑猫带你学:eMMC协议详解》 概述: emmc与host进行通讯,都是通过高低电平来完成的,那么此时就需要有一个规范,不然即使时emmc或者host也无法知道哪些是命令,哪些是数据,哪些是响应,此时这种规范就叫帧格式,也就是spec中所说的token。 2 读写token 1.为什么读总线协议中,CMD的response期间就可以发送data

黑猫奥利奥的博客 2816

黑猫带你学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.部分个人相关经验总结。

黑猫奥利奥的博客 1万+

黑猫带你学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

黑猫奥利奥的博客 8027

黑猫带你学eMMC协议第30篇:eMMC的boot mode和boot operation详解

boot operation是干嘛的?boot operation期间,将boot区域的数据全部吐出来。如果emmc用在手机里面,吐出来的这些数据用于启动手机,也就是说boot区域已经提前放置了安卓系统等信息。boot operation也可以从uda吐数据,但是emmc的init过程很长,所以放在boot area就可以很快速将这些数据给出来。这也就是为什么手机电源键一按,屏幕等设备就会快速工作起来。流程框图如图所示,按照蓝紫色箭头标注出来的流程就是boot operation的流程。

黑猫奥利奥的博客 2398

黑猫带你学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寄存器,用来密码长度。这两个寄存器非易失性,掉电也不会丢失。

黑猫奥利奥的博客 3231

黑猫带你学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

黑猫奥利奥的博客 7931

黑猫带你学eMMC协议第27篇:什么是eMMC的动态容量(Dynamic Capacity)?

本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 文章所在专栏:《黑猫带你学:eMMC协议详解》 1 什么是动态容量 长期对存储设备的使用以及flash的老化,将会在存储设备内部产生坏块。动态容量管理机制的目的就是在设备产生大量坏块后,可以改变设备的容量,从而延长寿命的使用时间。 2 相关命令 ecsd59的值为0x01时候,class6类型的命令(cmd28、29、20、31)就不是用来操作写保护的了,而是进行动态容量相关操作。 .

黑猫奥利奥的博客 2026

黑猫带你学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 概述/规则 写

黑猫奥利奥的博客 6237

黑猫带你学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的数据在每个被选中的数据线中。.

黑猫奥利奥的博客 2976

黑猫带你学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置位。

黑猫奥利奥的博客 430

RBF(径向基神经网络)基础解析与代码实例:拟合任意函数

目前RBF这一强大工具已经被基本证实可以拟合任意函数! 在机器学习领域,神经网络是一种强大的工具,用于解决各种复杂问题。其中,径向基函数(RBF,Radial Basis Function)神经网络以其独特的结构和优异的性能,在非线性函数逼近、模式识别等领域表现尤为突出。RBF神经网络是一种前馈神经网络,其隐含层节点的激活函数采用径向基函数,具有更强的局部逼近能力和更快的收敛速度。

橙色小博的博客,励志在人工智能领域发光发热! 1599

深入解析Vivado FIFO的Standard与FWFT模式:性能对比与应用场景

本文深入解析了Vivado FIFO的Standard与FWFT两种工作模式的核心差异。通过对比数据就绪时机、读延迟、控制逻辑和有效深度等关键特性,并结合图像处理、数据包转发等典型应用场景,为FPGA设计者提供了清晰的选择依据和实战配置指南,帮助优化数据流性能与设计效率。

weixin_29219189的博客 247

服务器报错:“Unhealthy status reported by this UEFI driver without specific error message”.. 记录解决过程

服务器开机报错:Unhealthy status reported by this UEFI driver without specific...

ayychiguoguo的博客 4393

如何用谷歌插件Apollo.io高效开发客户?手把手教你避开常见坑点

本文详细介绍了如何利用谷歌插件Apollo.io高效开发外贸客户,包括核心功能解析、免费额度最大化利用策略、多插件协同技巧以及常见陷阱规避方法。通过Apollo.io的智能匹配算法和庞大数据库,外贸从业者可以精准锁定目标客户,提升开发效率。

banana的博客 881

ECC椭圆曲线加解密原理详解(配图)

椭圆曲线加解密原理详解 本文主要参照:ECC椭圆曲线详解(有具体实例)[1] 前言: 椭圆曲线(ECC)加密原理跟RSA加解密原理比起来,可真是晦涩难懂。拜读了大神Kalafinaian文章“ECC椭圆曲线详解(有具体实例)”,终于看到了参透的曙光。 由于原文中有微小的瑕疵,也为了便于阅读起来更加流畅,我重新整理了一下这篇文章。 为什么使用椭圆曲线加密算法? RSA的解决分解整数问题需要亚指数...

Mark的博客 7万+

拆解特斯拉Optimus的关节技术:谐波减速器在仿人机器人中的5个精妙设计

本文深度解析特斯拉Optimus仿人机器人关节中的谐波减速器技术,揭示其五大工程突破:微型化材料革命、两万分之一圈精度实现、碳纤维柔轮轻量化、智能运维系统及国产替代方案。重点探讨谐波减速器如何通过创新设计和先进材料实现精准传动,为仿人机器人提供高效可靠的关节动力解决方案。

omega的博客 1068

CIC-IDS-2018数据集高效预处理实战:从数据清洗到特征整合

本文详细介绍了CIC-IDS-2018数据集的高效预处理方法,从数据清洗到特征整合的全流程实战。通过内存优化、异常值处理和特征工程等技巧,帮助网络安全研究人员快速处理大规模网络流量数据,提升机器学习模型的训练效率和准确率。特别针对特征数据的预处理提供了实用代码示例和优化建议。

weixin_29274969的博客 498

Unity 热更新技术 | (二) AssetBundle - 完整系列教程学习

开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来从 AssetBundle - 完整系列教程学习 开始学习吧!

努力前行,总会成为自己心中的那道光 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 黑猫带你学UFS协议第27篇:UFS的后台操作详解(BKOPS)
下一篇: 【嵌入式系统基础】第2篇:什么是uboot/kernel/根文件系统/BootLoader/操作系统/bios/设备树
黑猫学长呀
黑猫学长呀 新星创作者: 嵌入式与硬件开发技术领域 新星创作者: 嵌入式与硬件开发技术领域
博客等级 码龄8年 2322粉丝 215原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑猫学长呀

有帮助到你就来打个赏呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值