Linux MMC子系统 - 6.eMMC 5.1工作模式-设备识别模式

By: Ailson Jack
Date: 2023.11.26
个人博客:http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/165.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。

微信公众号:嵌入式那些事

设备识别模式(Device identification mode)

在设备识别模式下,Host会复位eMMC设备,验证工作电压范围和访问模式,识别eMMC设备并为总线上的eMMC设备分配相对设备地址(RCA)。在设备识别模式下,所有数据通讯都只使用命令线(CMD)。

下图显示了总线模式,操作模式和设备状态之间的关系。每个eMMC设备状态都与一个总线模式和一个操作模式相关联的。

在这里插入图片描述
从上图可知,设备识别模式包含3个状态,分别是idle状态,ready状态和identification状态。

设备复位

当eMMC设备接收到参数为0x00000000的GO_IDLE_STATE(CMD0)命令后,eMMC设备就会进入idle状态。下面3种情况会让eMMC设备进入idle状态:

  • 引导模式流程完成以后,eMMC设备会进入idle状态;
  • 在pre-boot状态,如果CMD线保持低电平时间少于74个时钟周期,eMMC设备会进入idle状态;
  • 如果eMMC设备没有使能引导模式,在上电以后eMMC设备会进入idle状态;

在idle状态,eMMC设备的RCA地址会被初始化为默认值0x0001,Host会将CLK线上的时钟频率设置为识别时钟频率fod(识别时钟频率fod的最大值为400KHz)。

参数为0x00000000的GO_IDLE_STATE(CMD0)命令在除inactive状态外的其他状态都是有效的。

考虑到CMD0的兼容性,如果eMMC设备在除inactive状态外的其他状态接收到CMD0命令(参数为除了0xFFFFFFFA和0xF0F0F0F0以外的其他值),eMMC设备将会把CMD0命令(参数为除了0xFFFFFFFA和0xF0F0F0F0以外的其他值)当做复位命令并进入到idle状态。

访问模式验证

Host可以通过CMD1命令读取eMMC设备的OCR寄存器来了解eMMC设备的寻址模式(Access Mode)。Access Mode决定了eMMC设备在响应Host的数据读写命令时,是怎样对eMMC设备的内部存储器进行寻址的。eMMC 5.1协议定义了两种寻址模式:字节寻址(byte mode)和扇区寻址(sector mode)。

字节寻址采用的是32位宽的寻址位数,这种寻址机制限制了eMMC的最大容量为2GB。为了支持更大容量的eMMC,后续的eMMC协议(比如eMMC 5.1协议)增加了sector寻址方式(1 sector=512B)。容量大于2GB的eMMC,都是采用sector寻址的方式。

Host通过发送SEND_OP_COND(CMD1)命令给eMMC设备来询问eMMC设备的电压,寻址方式以及是否就绪。如果eMMC设备处于忙状态,eMMC设备回复的固定格式响应内容为0x00FF_8080(eMMC设备容量小于或等于2GB)或者0x40FF_8080(eMMC设备容量大于2GB)。如果eMMC设备进入ready状态,eMMC设备回复的固定格式响应内容为0x80FF_8080(eMMC设备容量小于或等于2GB)或者0xC0FF_8080(eMMC设备容量大于2GB)。

SEND_OP_COND(CMD1)命令参数的[30:29]位域的值可以表明Host可以处理的寻址方式(一般情况下CMD1的参数为0)。OCR寄存器相应位域的数值可以表明eMMC设备要求的寻址方式。

只有eMMC设备进入ready状态之后,通过SEND_OP_COND(CMD1)命令获得的OCR寄存器值中的寻址模式才是有效的。

设备识别过程

在eMMC设备上电之后,如果eMMC设备没有使能引导模式,或者pre-boot状态下CMD线保持低电平时间少于74个时钟周期,或者eMMC设备引导模式流程完成,那么eMMC设备会进入设备识别模式的idle状态。当然了在除inactive状态外的其他状态下,Host发送参数为0x00000000的GO_IDLE_STATE(CMD0)命令之后,eMMC设备也会进入设备识别模式的idle状态。

在idle状态下,eMMC设备会进行一些内部初始化工作,Host需要不断的发送SEND_OP_COND(CMD1)命令来查询eMMC设备是否完成初始化。Host发送的CMD1命令参数中,包含了Host支持的寻址模式信息,eMMC设备接收到Host的寻址模式信息之后会与自身要求的寻址模式进行匹配,如果eMMC设备容量大于2GB,但是Host不支持扇区寻址模式,那么eMMC设备就会进入inactive状态。

当eMMC设备完成初始化之后,eMMC设备就会进入ready状态,此时Host通过CMD1查询到eMMC设备处于ready状态就会停止CMD1命令的发送。eMMC设备处于ready状态时,OCR寄存器的[31]位为1。

在ready状态下,Host发送ALL_SEND_CID(CMD2)命令来获取eMMC设备的CID寄存器信息,eMMC设备在接收到CMD2命令之后会将CID寄存器的[127:1]位的内容通过响应回复给Host,之后eMMC设备就进入identification状态。CID寄存器中存储的是eMMC设备的CID信息(Card IDentification),CID是eMMC设备的标识信息,CID具有唯一性。CID由厂商ID,设备信息,OEM信息,产品名称,产品版本,产品序列号,制造日期组成。

在identification状态下,Host发送参数包含16位RCA的SET_RELATIVE_ADDR(CMD3)命令来给eMMC设备分配RCA,给eMMC设备完成RCA分配之后,就代表设备识别模式完成,eMMC设备会进入到数据传输模式的stand-by状态。

eMMC设备默认的RCA地址为0x0001,Host会在identification状态下为eMMC设备分配RCA,RCA主要用于数据传输模式下Host选择具体的eMMC设备。

设备识别模式下,eMMC设备的状态图如下所示:

在这里插入图片描述
欢迎关注博主的公众号(微信搜索公众号:嵌入式那些事),可以扫描下面的公众号二维码:

在这里插入图片描述
如果文中有什么问题欢迎指正,毕竟博主的水平有限。

如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^。

排版更好的内容见我博客的地址:http://www.only2fire.com/archives/165.html

注:转载请注明出处,谢谢!^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/190599.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库基础教程之数据库的创建(二)

双击打开Navicat,点击:文件-》新建连接-》PostgreSQL 在下图新建连接中输入各参数,然后点击:连接测试,连接成功后再点击确定。 创建数据表   3.1 方法1   3.1.1.双击你的数据库-》双击public-》双击选中表-》右键-》新建表-》常规 3.1.2.设置字段信息   双击选中创建…

Leetcode 1727. 具有重排的最大子矩阵

题目要求: 给定一个大小为 m x n 的二进制矩阵,并且允许您以任意顺序重新排列矩阵的列。 对列进行最佳重新排序后,返回矩阵中每个元素都为 1 的最大子矩阵的面积。 输入:矩阵 [[0,0,1],[1,1,1],[1,0,1]] 输出:4 说明…

【领域驱动设计 学习目标及大纲】从CRUD到架构设计

从2018年至今,已工作了5年有余,回望这5年的工作历程,虽然一直在学习、一直在积累,但其实都在术的层面上停留,也就是具体的技术点。这5年多的时间里其实也不是没有窥道的想法: 一次是2018年刚工作的时候&am…

理解国外大佬用Web做出来跨窗口渲染动画效果

今天刷抖音看见国外一个大佬用Web做出来一个可以跨多浏览器窗口实时互动的渲染动画效果,觉得非常新奇,我就去看了一下源码,作者还写了一个非常好的例子帮助理解,我自己也仿写了作者的例子加深理解 **GitHub预览地址**麻烦帮忙点亮星星谢谢哈哈哈~ 整体思路是监听visibilityStat…

hdlbits系列verilog解答(exams/m2014_q4f)-47

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 实现以下电路: 二、verilog源码 module top_module (input in1,input in2,output out);assign out in1 & (~in2);endmodule三、仿真结果 转载请注明出处!

java Swing UI设置统一字体大小

编写一个遍历组件设置字体大小的方法 public static void setUIFont() {Font f new Font("宋体", Font.PLAIN, 18);String names[] {"Label", "CheckBox", "PopupMenu", "MenuItem", "CheckBoxMenuItem", &quo…

函数的防抖与节流

一、函数防抖 (一)防抖的理解 防抖就是将所有的触发都取消,在规定的时间结束过后才会执行最后一次,也就是说连续快速的触发只会执行最后一次结果。 也可以理解为游戏里的回城按钮,每点一下就会重新刷新回城进度&…

java学习part13Object类和常用方法

1.Object 2.常用方法 2.1clone() clone()就是深拷贝,创建一个同内容新对象。需要实现接口 2.2finalize()已废弃 类似于析构函数,在GC回收之前调用。 System.gc()强制调用gc,然后就能看到finalize()的输出 2.3equals() 对于引用类型可用。…

WIFI模块(esp-01s)获取网络时间与天气信息

目录 一、硬件连接 二、获取网络时间 1、AT指令集 2、具体操作 三、获取天气信息 1、心知天气注册 2、AT指令集 3、具体操作 4、json格式检查 一、硬件连接 WiFi模块的RX连接TTL模块的TX, WiFi模块的TX连接TTL模块的RX,电源与地接对。 插入电脑…

文心一言 VS 讯飞星火 VS chatgpt (143)-- 算法导论12.1 3题

三、用go语言,设计一个执行中序遍历的非递归算法。(提示:一种容易的方法是使用栈作为辅助数据结构;另一种较复杂但比较简洁的做法是不使用栈,但要假设能测试两个指针是否相等。) 文心一言,代码正常运行: …

基于51单片机的智能垃圾桶硬件设计

**单片机设计介绍, 基于51单片机的智能垃圾桶硬件设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的智能垃圾桶设计旨在通过传感器和控制电路实现智能化的垃圾桶功能。下面是一个简要的硬件设计介绍&…

HCIA-RS基础-距离矢量路由协议

前言: 动态路由协议根据寻径方式可以分为距离矢量路由协议和链路状态路由协议。本文将详细介绍距离矢量路由协议的原理,并阐述其中一个重要概念——路由环路,同时介绍如何避免路由环路的方法。通过学习本文,您将能够深入理解距离矢…

什么是CAS/CAS的应用/CAS的ABA问题

文章目录 CAS1. 什么是CAS2. CAS的应用2.1 实现原子类2.2 实现自旋锁 3. CAS的ABA问题3.1 什么是ABA问题3.2 ABA问题引来的BUG3.3 解决方案 CAS 1. 什么是CAS CAS: 全称Compare and swap, 字面意思:”比较并交换“. 操作: 设V为内存中的值, A为寄存器中的值(旧的预期值), B也…

火柴棒等式

枚举 只要在保证等式正确的基础上判断火柴棒有没有用完就可以 因为数比较小,而且我不知道最大的等式中的数是多少,索性就设置为999了 还好对效率要求不大(doge) 要不然就得自己慢慢改最大数来试了 代码如下: #in…

Android 单元测试初体验

Android 单元测试初体验 前言一、单元测试是什么?二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候,老师敢教学进度,翻到单元测试这一章节的时候提了两句,没有把单元测试当重点讲,只…

jQuery_09 事件的绑定与使用(on)

jQuery使用on绑定事件 jQuery可以给dom对象添加事件 在程序执行期间动态的处理事件 1. $("选择器").事件名称(事件处理函数) $("选择器") : 选择0或者多个dom对象 给他们添加事件 事件名称:就是js中事件名称去掉on的部分 比如单击…

PTA-7-53 身份证排序

题目: 输入n,然后连续输入n个身份证号。 将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。 根据题目要求,代码实现如下: import java.util.Scanner; import java.uti…

linux之间的免密通信原来是这么的简单

linux之间的免密通信原来是这么的简单 何为免密通信,说的大白话就是,我连接你的服务器不需要密码,哈哈,就是所谓的免密通信 今天小编也不讲免密的基本原理了哈,原理的话,百度里面有好多 小编的主要目的呢是…

1.1 半加器

输入1输入2结果进位0000101001101101 半加器: 实现1位的加法 根据结果可知输入1与输入2相加结果 -> 符合 异或门进位 -> 符合 与门最终要么有结果要么有进位,不存在即有结果也有进位 异或门的实现也可以由基本的3个 “与或非” 门实现 与:& , 或:| , 非:! 用这3个…

开通橱窗还能开抖店吗?怎么开通?一篇详解!

我是电商珠珠 开通商品橱窗之后还能开抖店吗?商品橱窗和抖音小店可以同时开吗? 一部分人最初的时候,都觉得直播带货很火,所以就自己去买粉丝或是发视频积攒粉丝,等粉丝够了发现,好像和当初想的不太一样&a…