zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    若silverlight程序在访问时不加载或白屏怎么办?直接访问xap文件报错:404怎么办?
    iis7 发布mvc3 遇到的HTTP错误 403.14Forbidden Web 服务器被配置为不列出此目录的内容
    Windows server 2008 64bit计划任务运行使用了excel 2003 32bit .net开发组件的程序遇到的问题
    运行WeCompanySite时遇到Error creating context 'spring.root': Error thrown by a dependency of object 'System.Data.SQLite' defined in 'assembly [Spring.Data,
    javascript中创建对象,并序列化为json,通过$.ajax的提交json数据到后台方法,取值为null的问题
    c# web.config 中SessionState的配置(转载)
    第一次使用Excel2007的Microsoft Query遇到的问题及解决:别名的使用
    开博
    谁更了解用户需求
    开发人员为何应该使用 Mac OS X 兼 OS X 小史
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6668816.html
Copyright © 2011-2022 走看看