8:操作模式4-data transfer mode

2023-10-27

1.前言

eMMC总线操作包含:

  • boot mode,
  • device identification mode
  • interrupt mode
  • data transfer mode

本文主要描述data transfer mode

2. data transfer mode

                

                                                                      图 emmc状态转换-data transfer mode

注1:busy(Dat0=low)信号在prg-state状态永远是激活的。由于之前版本的原因,设备在prg-state(busy激活时)状态可能仍然会把CMD24/25当做有效或无效命令。所以host应注意设备如果在prg-state状态且busy激活时不要发送CMD24/25命令。

注2:上图中i表示init流程;r表示read data状态转换;w表示write data状态转换

2.1 data transfer mode概述

  1. 在data transfer mode下的所有的数据通信都是host和选中的device之间点对点的,所有带有RCA参数的命令都会在CMD line上获得回应
  2. 当device被指定了RCA后,它将不再响应identificaiton mode的命令:CMD1,CMD2,CMD3
  3. 重启设备(CMD0, CMD15或者硬件重启)或者停电会终止任何将要发送或者正在写入的操作。这会引起一些或者全部被寻址的数据进入一个未知状态,除非使用Reliable Write来保证写入的可靠性。host有责任来防止这种情况的发生
  4. 如下的命令在设备配置为DDR传输模式时是不被允许的,且会被作为无效命令:bus testing(CMD19,CMD14), lock-unlock(CMD42)和set block length(CMD16)。

2.2 data transfer mode状态转换说明

 

  •  stand-by state

. 当device回到stand-by state的时候,通过command line和data line通信时是工作在push-pull模式

. 在host读取全部的CSD寄存器之前,fpp时钟必须维持在fod。host发送SEND_CSD(CMD9)命令来得到Device Specific Data(CSD寄存器),即,block length,设备存储大小,最大时钟频率等内容

. 广播命令SET_DSR(CMD4)会配置device的驱动能力。 此命令会根据应用的总线布局(长度)(???)和数据传输速率来编辑其DSR寄存器。时钟也在此时由fod切换到fpp

. stand-by state下,host通过发送命令CMD7(参数为device的RCA)将对应RCA的device设为transfer state;

. host通过发送命令CMD7(参数为保留RCA "0x0000"),则device回到stand-by state

  •  transfer state

 . 如果先前已经在transfer state,host通过发送命令CMD7(参数为任何不等于RCA的地址值),则device将离开transfer state回到stand-by state;

 . 如果先前已经在transfer state,host通过发送命令CMD7(参数为当前 device的RCA),则device将忽略此命令,且可能会被认为是非法命令.

 

. 所有的数据读取命令可以用停止命令(CMD12)在任何时候终止。数据传输会终止且设备会返回到transfer state。数据读取命令包括了: block读取(CMD17), multiple block 读取(CMD18), send tuning block(CMD21)和send write protect(CMD30),如上这些命令会让device从transfer state切换到sending-data state.

. 所有的写数据命令可以用停止命令(CMD12)在任何时候终止。写命令必须在使用CMD7命令反选device之前被停止掉。写数据命令包括了: block write(CMD24CMD25), write CID(CMD26), write CSD(CMD27),如上这些命令会让device从transfer state切换到receive-data state.

 

. 设备可以为block write提供buffering功能,这意味着之前的block在写入的时候,下一个block的可以被送到设备里

. 对于write CSD, write CID, write protection和 erase 是没有buffering功能的。这意味着当device为上述某个命令工作的时候,其他的数据传输命令是不会被接受的。device是busy且处于Programming状态时,DAT0 line会保持low

  • receive-data state

. 当数据传输一结束,device会退出写数据状态且移动到Programming state(传输成功)或者Transfer state(传输失败)

. 若一个写block操作被停止,但最后一个block的CRC和length都有效,则数据会被写入

  •  disconnect state

. 当设备处于disconnect state,CMD7(参数为当前device的RCA)用来选择设备并转换为programming state

. 在Disconnect state的device可以重新被选择(CMD7)。此情况下device会移动到Programming状态且重新激活busy标识

  • programming state   

. 如果先前已经在programming state,host通过发送命令CMD7(参数为任何不等于RCA的地址值),则device将离开programming state回到disconnect state;

. 如果先前已经在programming state,host通过发送命令CMD7(参数为当前 device的RCA),则device将忽略此命令,且可能会被认为是非法命令.

. device在被写入的时候Parameter设置命令是不允许被接受的。parameter设置命令包括了: set block length(CMD16), erase group selection(CMD35-36)

. 把另外一个device从stand-by转换到Transfer状态(CMD7)是不会终止写入操作的。此设备会转换为Disconnect状态且释放DAT0的控制权

  • bus test state

 . 在执行bus testing阶段之前(CMD19,CMD14),建议设置数据传输的时钟频率。这样的话bus test会给出一个真实的数据。若是测试的时钟频率小于实际数据传输频率则测试结果是错误的

3.关键状态转换

  • init状态转换

power on->CMD0(IDLE state)->CMD1->READY state->CMD2->Identification state->CMD3->standby state->CMD7->Transfer state;

  • read data状态转换

Transfer State->CMD8->Sending-data State->CMD12 Operating Complete->Transfer State

  • write data状态转换

Transfer state->CMD4->Receivedata State->transfer complete->Programming State->Operation complete->Transfer State

4. 参考文档

[1]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8:操作模式4-data transfer mode 的相关文章

  • 常用的两个免费可以商用的cc0协议图片网站

    什么是CC0协议CC0是CC协议 知识共享 是Creative Commons在中国大陆地区的通用译名 一般简称为CC CC既是该国际组织的名称缩写 也是一种版权授权协议的统称 以外的一种新的版权声明协议 采用该协议即代表作者宣布放弃该创作
  • ROS Noetic版本 rosdep找不到命令 不能使用的解决方法

    使用rosdep指令来安装开源包所需的依赖是很方便的 本文主要介绍ROS Noetic版本中使用rosdep 报错找不到命令 rosdep不能使用的解决方法 rosdep 找不到命令 Command rosdep not found but
  • nginx 中文url rewrite 404

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 原料 nginx with debug或openresty 背景 项目中有用户图片库需求 允许用户自定义文件夹 然后上传图片到该文件夹 当用户自定义的文件夹为中文或者访问u

随机推荐

  • 微信第三方平台之代开发小程序(二)

    第二部分 快速创建小程序 必须全网发布成功 注 第一部分 全网发布前的准备 请看我前面的文章 1 权限集准备 全网发布成功后才可生效 2 第三方收集法人微信 法人姓名 企业名称 信用代码四个商户信息外加第三方客服电话 3 企业名称需与工商部
  • 【python教程入门学习】Python教程第1篇:下载和安装Python

    Python是当下流行的通用编程语言 简单易学 容易上手 且 钱 景广阔 在网络爬虫 数据挖掘分析 人工智能 运营运维 日常工作效率提升 无不有Python的影子 因此 今天跟大家分享Python的下载和安装教程 第一步 下载Python最
  • 域名服务详解(域名解析流程和分类)

    一 基本概念 访问互联网是依靠IP地址的 但IP地址多种多样 很难记忆 所以使用域名服务 代替IP地址输入 1 hosts文件 1 位置 Windows系统在C Windows System32 drivers etc hosts 需要超级
  • usdt充值btc网络(非节点钱包地址)

    1 此充值具有一定的交易风险 请一定做好判断 步骤 用户绑定其他交易所的地址 往平台充值 只能使用用户绑定的钱包地址充值 否则无法确认充值成功 用户先填写充值金额 gt 生成充值订单 gt 通过平台设置的收币钱包地址充值 gt 填写充值产生
  • ReactNative组件生命周期

    组件生命周期详解 组件生命周期基础知识 组件 又名控件 是一段独立可复用的代码 在React Native应用开发中 组件是页面最基本的组成部分 和React的组件一样 RN的组件也有自己的生命周期 在RN应用开发中 组件的生命周期指组件初
  • jvm知识梳理

    1 java虚拟机的组成 java虚拟机主要由四部分组成 1 ClassLoader 按特定格式加载class文件到内存中 2 runtime data area jvm内存空间模型 3 execution engine 命令解析器 4 n
  • layui上传如何带参数到后台

    https www jacksonlhj cn articles 2022 03 18 1647584610237 html
  • 【C语言学习日记】 两个整数做简单加减乘除运算

    include
  • C++中访问类的私有数据成员的第三种方法

    我们知道 C 的类是有封装性的 那么对于私有数据成员我们如果想在类外访问 一般而言无外乎这么两种方法 1 通过公有的成员函数2 通过友元这是两种通常的做法 还有一种是比较 反常 的 但是同样也可以达到这样的目的 那就是通过类的基地址偏移来访
  • 相机型号总结

    相机型号 价格 一 富士 二 奥林巴斯 三 索尼 四 佳能 五 尼康 六 理光 价格 一 富士 1 GFX系列 富士最高端的机器 像素5000w 价格3w 7w 2 X系列 主流的富士相机 XH 防抖功能 XT X Pro X E XA 平
  • 工业互联网平台创新发展白皮书 附下载地址

    工业互联网平台创新发展白皮书 2018 是在工业和信息化部信息化和软件服务业司的指导下 由国家工业信息安全发展研究中心 两化融合服务联盟 产业互联网发展联盟开展调研 搜集 分析了62个平台 229个工业企业应用案例组织编写而成 从总体 行业
  • 03:TIM定时器

    目录 一 TIM 1 介绍 2 定时器的分类 3 基本定时器 4 通用定时器 5 高级定时器 6 定时器的基本结构 二 定时中断功能 A 定时器定时器中断 1 连接图 编辑 2 步骤 3 函数介绍 4 代码 三 外部时钟功能 A 定时器外部
  • QT笔记-TreeWidget控件使用

    1 添加控件时 默认有1行 并且值为1 如何去掉 隐藏头即可去掉 方法1 方法2 ui treeWidget gt setHeaderHidden true 2 控件使用 1 添加控件 h private void OnInitTreeVi
  • antd select 实现可输入可远程检索并选择

    组件部分 import Select from antd const Option Select export interface SelectProps searchVal string setSearchOpt any onChange
  • 天数怎么换算成月_excel如何将天数换算为多少年多少月多少日

    excel如何将天数换算为多少年多少月多少日以下文字资料是由 历史新知网www lishixinzhi com 小编为大家搜集整理后发布的内容 让我们赶快一起来看一下吧 excel如何将天数换算为多少年多少月多少日 思路如下 1 将天数除以
  • 让程序在screen模式下运行

    让程序在screen模式下运行 screen S yourname gt 新建一个叫yourname的session 然后输入你要执行的命令 screen ls gt 列出当前所有的session screen r yourname gt
  • Ping命令讲解

    ping是什么 ping Packet Internet Groper 因特网包探索器 用于测试网络连接量的程序 Ping发送一个ICMP 回声请求消息给目的地并报告是否收到所希望的ICMP echo ICMP回声应答 它是用来检查网络是否
  • 深入理解anchor

    在博客SSD原理解读 从入门到精通中提到了anchor作用 通过anchor设置每一层实际响应的区域 使得某一层对特定大小的目标响应 很多人肯定有这么一个疑问 那anchor到底可以设置到多大呢 本文尝试对anchor的大小进行了一系列的探
  • 并发服务器模型,多线程并发

    一 多线程并发完整代码 include
  • 8:操作模式4-data transfer mode

    1 前言 eMMC总线操作包含 boot mode device identification mode interrupt mode data transfer mode 本文主要描述data transfer mode 2 data t