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

emmc基础技术8:操作模式4-data transfer mode的更多相关文章

  1. eMMC基础技术2:eMMC概述

    0.前言 本文主要参考eMMC规范,从总体上对eMMC 进行简要介绍.主要包含如下的内容: (1)eMMC系统的总体架构 (2)eMMC的总线协议 (3)device controller (4)fl ...

  2. eMMC基础技术3:eMMC总线token

    1.前言 本文主要介绍eMMC 总线协议相关的内容,主要包括: (1)command token format (2)response token format (3)data packet form ...

  3. emmc基础技术8:操作模式3-interrupt mode

    1. 前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述inte ...

  4. emmc基础技术8:操作模式2-device identification mode

    1.前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述devic ...

  5. eMMC基础技术8:操作模式1-boot mode

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

  6. eMMC基础技术9:分区管理

    [转]http://www.wowotech.net/basic_tech/emmc_partitions.html 0.前言 eMMC 标准中,将内部的 Flash Memory 划分为 4 类区域 ...

  7. eMMC基础技术6:eMMC data读写

    1. 前言 data可以经data线从host发往device,也可以从device发往host 数据线以是1线(DATA0),4线(DATA0~DATA3),8线(DATA0~DATA7) 对每条数 ...

  8. eMMC基础技术1:MMC简介

    [转]http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html 1. 前言 熟悉Linux kernel的人都知道,kernel使用MMC s ...

  9. eMMC基础技术11:flash memory

    [转]http://www.wowotech.net/basic_tech/367.html 0.前言 eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Fl ...

随机推荐

  1. 洛谷 P1450.硬币购物 解题报告

    P1450.硬币购物 题目描述 硬币购物一共有\(4\)种硬币.面值分别为\(c1,c2,c3,c4\).某人去商店买东西,去了\(tot\)次.每次带\(d_i\)枚\(c_i\)硬币,买\(s_i ...

  2. Linux磁盘和文件系统简介

    Linux磁盘和文件系统简介 1.文件系统:存储设备上存储数据的方式方法 磁盘主要由盘片.机械手臂.磁头和主轴马达组成,而数据的写入实际是写在盘片上,磁盘的最小存储单位为扇区,每个扇区为512字节,扇 ...

  3. Mysql插入、替换和无视

    在现实的生产环境下,通常我们都会遇到这样的应用场景,需要我们更新数据.替换数据,若存在则不操作. insert into表示插入数据,数据库会检查主键,如果出现重复会报错: replace into表 ...

  4. Luogu 1083 借教室(二分,差分)

    Luogu 1083 借教室(二分,差分) Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的大小功能不同,借教室人的身份不 ...

  5. (转) JVM——Java类加载机制总结

    背景:对java类的加载机制,一直都是模糊的理解,这篇文章看下来清晰易懂. 转载:http://blog.csdn.net/seu_calvin/article/details/52301541 1. ...

  6. 开启 Hyper-v 后如何使用 Android Emulator?

    如果开启了 Hyper-v 时,当需要使用 Android Studio 中 Android Emulator 时,系统会出现蓝屏代码错误. 使用下面的方法,则可以解决冲突. 首先,你需要确保已经开启 ...

  7. 2018.9青岛网络预选赛(J)

    传送门:Problem J https://www.cnblogs.com/violet-acmer/p/9664805.html 题目大意: BaoBao和DreamGrid玩游戏,轮流按灯的按钮, ...

  8. logistic regression浅析

    最近开始学习机器学习的相关理论知识,准备把自己的整个学习心得整理汇集成博客,一来可以督促自己,二来可以整理思路,对问题有一个更加透彻的理解,三来也可以放在网上和大家分享讨论,促进交流. 由于这次的学习 ...

  9. java代码示例(6-3)

    创建AdministratorTest.java /** * 需求分析:创建管理员对象 * @author chenyanlong * 日期:2017/10/15 */ package com.hp. ...

  10. Telnet的三种登录方式

    Telnet的三种登录方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.华为创建telnet的三种验证方式 首先,我们可以简单的看一个拓扑图,让我们可以在亦庄的路由器上对双桥 ...