emmc基础技术8:操作模式2-device identification mode
1.前言
eMMC总线操作包含:
- boot mode,
- device identification mode
- interrupt mode
- data transfer mode
本文主要描述device identification mode,本模式下所有的数据通信都只在cmd line上完成,主要完成:
- host reset device
- 检查操作电压范围和访问模式
- 识别设备
- 指定bus上的device RCA(relative device address)
2.device identification mode

图 device identification mode
2.1 概要说明
- 四种情况会进入idle state
. 完成boot操作;
. boot mode下cmd line保持电平时间少于74个时钟;
. power on后,如果不支持boot启动;
. 直接发送CMD0+0x00000000均将进入idle state,从此进入device identification mode的领地
- 进入idle state后
. 输出总线将保持高阻态
. device的RCA 地址会被初始化为0x0001
. 驱动能力设置为默认;
. host提供clock时钟,此时钟为identification clock rate(fod)
- CMD0+0x00000000
除了inactive state, CMD0+0x00000000在任何state下都是有效的,可以将device reset到idle state
注:为了向后兼容,除inactive state,任何状态下如果收到CMD0且参数不是0xffffffa或0xf0f0f0f0,device都将执行reset到idle state;
host在除了Inactive和Pre-boot状态之外使用CMD0+0xFFFFFFFA命令,设备会认为是重启命令且变为Idle状态。
- 访问模式
. SEND_OP_COND(CMD1)命令和OCR寄存器包含了两个位来指明memory所支持的访问模式。
. CMD1内的两个位表明了host是否有能力处理sector寻址,而OCR寄存器内的两个位表明了设备是否支持sector寻址。
OCR寄存器的两个位只有在CMD1命令的最后一个 response中有效(也就是设备进入Ready状态后才有效)
若是host没有指明是否有处理sector寻址的能力的话,大约2GB的memory会把状态切换为Inactive
从OCR寄存器的两个位中,host可以把设备从其他byte寻址的设备中区别开来
. host发送CMD1时,如果device处于busy状态(power up/reset过程中),device会发送固定内容给host, 0x00FF8080(容量小于2GB)或者是0x40FF8080(容量大于2GB), 且不会变化到Inactive state,此时host必须重复发送CMD1直到busy bit被清除
. 若设备在进入Ready state时,表明CMD1执行完毕,device应该给主机回应0x80FF8080(容量小于2G)或0xC0FF8080( 容量大于2G)来表明大小
- 工作电压
. host可能会改变设备的电压。若是host把设备的电压范围设置到一个新的范围,设备应该完全的关闭且以新的电压范围重新启动。 若是电压范围 1.95V-2.7V被使用,双电压设备可能会失败
. 初始化过程中不允许改变电压范围,如果确实需要改变电压范围,host必须要reset device(通过CMD0+0x000000000)然后重新执行初始化进程
. 如果要访问处于inactive state的device,必须执行硬件reset(掉电然后上电)
- inactive state
在data transfer mode下,除sleep state外,其它任何状态下发送CMD15可在需要的时候让device进入inactive state
2.2 设备识别过程

图 设备识别过程
结合上图实例介绍device identification mode过程,环境说明如下:
. 有多个device
. 且向前兼容到规范4.0
. 开始执行devie identification过程时,host必须处在open-drain模式(CMD line为open-drian则允许在设备识别阶段多个设备并行操作)
. identification clock为fod
1.device被激活后(bus一般是进入idle state)后,host发送CMD1请求device发送它的有效的操作电压范围,如果不兼容的设备将进入inactive state,如果兼容设备将发送回应给host告知其电压操作条件
2.host发送CMD2,要求所有device回复它的CID,任何未识别设备(如处于ready state)一个一个发送CID给host
3.若是有些设备发送的CID和它们标示的CID不符合,则立即停止发送CID且必须等待下一个识别周期(保持在Ready状态), 因为CID是每个设备的唯一识别码,应只有一个设备成功的发送其全部的CID数字到host。此设备随即进入到Identification状态
4. 此后host发送CMD3(SET_RELATIVE_ADDR)命令来给此设备指定一个RCA(Relative Device Address),此RCA比CID码短且会在将来data transfer mode(一般clock rate会高于fod)中用于寻址设备
6.一旦device 收到RCA,device将进入stand by state, 且设备不会对未来的识别周期做出任何反应
7.device将open-drain调整为push-pull
8.host重复其识别过程,即,CMD2和CMD3命令,如果没有设备响应这个命令(通过识别超时),则认为所有device识别结束。
注:识别超时是发送CMD2之后超过Nid时钟周期之后没有device回应start位,则判定为识别超时。
3.参考文档
[1]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf
emmc基础技术8:操作模式2-device identification mode的更多相关文章
- eMMC基础技术2:eMMC概述
0.前言 本文主要参考eMMC规范,从总体上对eMMC 进行简要介绍.主要包含如下的内容: (1)eMMC系统的总体架构 (2)eMMC的总线协议 (3)device controller (4)fl ...
- eMMC基础技术3:eMMC总线token
1.前言 本文主要介绍eMMC 总线协议相关的内容,主要包括: (1)command token format (2)response token format (3)data packet form ...
- emmc基础技术8:操作模式3-interrupt mode
1. 前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述inte ...
- eMMC基础技术8:操作模式1-boot mode
1.前言 eMMC总线操作包含: boot mode device identification mode interrupt mode data transfer mode 本文主要描述boot m ...
- emmc基础技术8:操作模式4-data transfer mode
1.前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述data ...
- eMMC基础技术4:eMMC command
1.前言 本文主要对eMMC的command进行详细介绍,主要包含如下内容: (1)command类型 (2)command格式 2.command类型 command类型 说明 bc 不带respo ...
- eMMC基础技术11:flash memory
[转]http://www.wowotech.net/basic_tech/367.html 0.前言 eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Fl ...
- eMMC基础技术9:分区管理
[转]http://www.wowotech.net/basic_tech/emmc_partitions.html 0.前言 eMMC 标准中,将内部的 Flash Memory 划分为 4 类区域 ...
- eMMC基础技术1:MMC简介
[转]http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html 1. 前言 熟悉Linux kernel的人都知道,kernel使用MMC s ...
随机推荐
- 【转】在单片机中,C语言的一些误用和总结!
在学习单片机的时候才真正知道C语言是什么,它是来干什么的~但是C语言用到嵌入式只是它小小的一部分应用,还有很多地方呢. 我们是不是在写程序的时候,错误很多就算编译通过了也达不到我们预期的结果,完了自己 ...
- Spark 集成开发
WordCount.py # coding:utf-8 from pyspark import SparkContext from pyspark import SparkConf def SetLo ...
- windows安装redis的正确姿势
安装: 1,redis官方下载地址:https://redis.io/download,redis 64位下载地址:https://github.com/ServiceStack/redis-wind ...
- Jenkins中配置邮件通知实例演示
前言:本文通过安装配置Jenkins实现邮件通知,告知一个C# Git Repo的build成功与否 一.预配条件 在windows上安装Jenkins和它推荐安装的Plugins 创建一个@163. ...
- Ubuntu16.04常用软件源
这篇博文的,主要目的是为了方便我和大家安装软件.我将我安装过的所有软件包的源列在此处. Google Chrome sudo wget https://repo.fdzh.org/chrome/goo ...
- os模块(二十)
os模块是与操作系统交互的一个接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相 ...
- 约会 音频mm教你追女孩
微信吧地址发给他人. 美团提前选好环境然后提前打电话订购一个位置. 微博作用是为:更多的谈资.热搜 ,最近上榜的话题说. 打车软件: 地图: 2.外表: 下澡,指甲,胡子,发型,适合服装.发型和服装搭 ...
- MySQL索引原理及慢查询优化-来自美团网的技术blog(写的深入浅出)
MySQL索引原理及慢查询优化 转:http://tech.meituan.com/mysql-index.html MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首 ...
- DOJO常用的函数
DOJO常用的: 1,通过dojo.require以类似C编程中#include或者Java中import的方式加载所需的部件如dojo.require("dojo.parser" ...
- 5G时代的到来,会给生活带来什么改变?
本文首发于:风云社区. 据百度百科介绍,5G网络是第五代移动通信网络,其峰值理论传输速度可达每秒数十Gb,比4G网络的传输速度快数百倍.举例来说,整部超高画质电影可在1秒之内下载完成. 5G网络已 ...