本地邵阳网站建设,十堰市公司网站建设,海南app开发,自适应网页设计尺寸By: Ailson Jack Date: 2023.11.26 个人博客#xff1a;http://www.only2fire.com/ 本文在我博客的地址是#xff1a;http://www.only2fire.com/archives/165.html#xff0c;排版更好#xff0c;便于学习#xff0c;也可以去我博客逛逛#xff0c;兴许有你想要的内容呢。… 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_STATECMD0命令后eMMC设备就会进入idle状态。下面3种情况会让eMMC设备进入idle状态
引导模式流程完成以后eMMC设备会进入idle状态在pre-boot状态如果CMD线保持低电平时间少于74个时钟周期eMMC设备会进入idle状态如果eMMC设备没有使能引导模式在上电以后eMMC设备会进入idle状态
在idle状态eMMC设备的RCA地址会被初始化为默认值0x0001Host会将CLK线上的时钟频率设置为识别时钟频率fod识别时钟频率fod的最大值为400KHz。
参数为0x00000000的GO_IDLE_STATECMD0命令在除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 sector512B。容量大于2GB的eMMC都是采用sector寻址的方式。
Host通过发送SEND_OP_CONDCMD1命令给eMMC设备来询问eMMC设备的电压寻址方式以及是否就绪。如果eMMC设备处于忙状态eMMC设备回复的固定格式响应内容为0x00FF_8080eMMC设备容量小于或等于2GB或者0x40FF_8080eMMC设备容量大于2GB。如果eMMC设备进入ready状态eMMC设备回复的固定格式响应内容为0x80FF_8080eMMC设备容量小于或等于2GB或者0xC0FF_8080eMMC设备容量大于2GB。
SEND_OP_CONDCMD1命令参数的[30:29]位域的值可以表明Host可以处理的寻址方式一般情况下CMD1的参数为0。OCR寄存器相应位域的数值可以表明eMMC设备要求的寻址方式。
只有eMMC设备进入ready状态之后通过SEND_OP_CONDCMD1命令获得的OCR寄存器值中的寻址模式才是有效的。
设备识别过程
在eMMC设备上电之后如果eMMC设备没有使能引导模式或者pre-boot状态下CMD线保持低电平时间少于74个时钟周期或者eMMC设备引导模式流程完成那么eMMC设备会进入设备识别模式的idle状态。当然了在除inactive状态外的其他状态下Host发送参数为0x00000000的GO_IDLE_STATECMD0命令之后eMMC设备也会进入设备识别模式的idle状态。
在idle状态下eMMC设备会进行一些内部初始化工作Host需要不断的发送SEND_OP_CONDCMD1命令来查询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_CIDCMD2命令来获取eMMC设备的CID寄存器信息eMMC设备在接收到CMD2命令之后会将CID寄存器的[127:1]位的内容通过响应回复给Host之后eMMC设备就进入identification状态。CID寄存器中存储的是eMMC设备的CID信息Card IDentificationCID是eMMC设备的标识信息CID具有唯一性。CID由厂商ID设备信息OEM信息产品名称产品版本产品序列号制造日期组成。
在identification状态下Host发送参数包含16位RCA的SET_RELATIVE_ADDRCMD3命令来给eMMC设备分配RCA给eMMC设备完成RCA分配之后就代表设备识别模式完成eMMC设备会进入到数据传输模式的stand-by状态。
eMMC设备默认的RCA地址为0x0001Host会在identification状态下为eMMC设备分配RCARCA主要用于数据传输模式下Host选择具体的eMMC设备。
设备识别模式下eMMC设备的状态图如下所示 欢迎关注博主的公众号微信搜索公众号嵌入式那些事可以扫描下面的公众号二维码 如果文中有什么问题欢迎指正毕竟博主的水平有限。
如果这篇文章对你有帮助记得点赞和关注博主就行了^_^。
排版更好的内容见我博客的地址http://www.only2fire.com/archives/165.html
注转载请注明出处谢谢^_^