emmc协议

上传人:n**** 文档编号:60509852 上传时间:2018-11-16 格式:PPT 页数:59 大小:1.72MB
返回 下载 相关 举报
emmc协议_第1页
第1页 / 共59页
emmc协议_第2页
第2页 / 共59页
emmc协议_第3页
第3页 / 共59页
emmc协议_第4页
第4页 / 共59页
emmc协议_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《emmc协议》由会员分享,可在线阅读,更多相关《emmc协议(59页珍藏版)》请在金锄头文库上搜索。

1、一 eMMC的结构,设备状态与工作模式和总线模式的关系,eMMC 主机的功能方框图,内部总线,RST_n 控制逻辑,RST_n,CLK 发送 控制逻辑,CLK,CMD 发送接收 控制逻辑,CMD,DAT0 状态检查 控制逻辑,CRC7 生成/校验 控制逻辑,DAT1-7 发送接收 控制逻辑,CRC16 生成/校验 控制逻辑 (16单元),DAT0,DAT1-7,二 eMMC的内部寄存器,三 命令和应答,命令: 1 命令的类型 有四种命令的类型: 1)无应答的广播命令(bc) 2)有应答的广播命令(bcr) 3)DAT上无数据传输的点对点命令(ac) 4)DAT上有数据传输的点对点命令(adtc

2、),2 命令的格式 所有的命令都是固定的长度48位,格式如下表所示,所有命令都是以0开始的,紧接着是传输的方向(主机发出的就为1,设备发出的就为0),接下来的6位是命令的索引,这是一组二进制码(063),设备就是对这六位译码,区分是哪种命令,还有一些命令需要arg值(比如地址),这一段的长度为32位,所有的命令都会被CRC7保护着,所以CRC保护的是之前的40位,最后以1结束。,命令的应答,应答也是由CMD传输的,由左边的位开始传输,应答位的长度根据应答的类型而定。应答是以0开始的,紧接着是传输的方向(设备 = 0 ),接下来的值根据类型不一样也不一样,除了R3以外都会被CRC7保护着,每条命

3、令都是以1结束的。 一共有五种类型的命令应答形式: R1 ,R1b,R2, R3, R4, R5,R1:,该应答的长度为48位,45:40显示的是命令的索引,39: 38是32位的设备状态。 R1b: 和R1的区别只是在DAT0上存在忙信号的传输。,R2:(CID、CSD寄存器),该应答的长度为136位,CID的内容会作为CMD2和 CMD10的应答发送给主机,CSD的内容会作为CMD9的应 答发送给主机,仅仅只有CID和CSD的127:1被传输,最后 一位被应答的结束位所代替。,R3:(OCR寄存器),该应答的长度为48位,OCR寄存器的值会作为CMD1 的应答发送给主机。,R4:(Fast

4、 IO),该应答位的长度48位,ARG部分包括RCA的值、寄存器 的值、寄存器的值, 如果操作成功,状态位就会被置位。,R5:(中断请求),该应答的长度为48位,如果应答是主机自己发送的,那 么RCA的值为0x0000。,3 命令和应答的时序:,无论是单倍数据率模式还是双倍数据率模 式,主机的命令和设备的应答都是在时钟的 上升沿采样的。,设备的识别及设备的操作条件的时序,设备的识别(CMD2)和设备的操作条件(CMD1)工作在 open-drain模式下,设备给主机的应答是在NID个时钟周期后开 始的。如果在经过NID+1个时钟周期仍然没收到应答的话,主机 就需要做超时报告 (NID = 5)

5、,给RCA赋值的时序,给RCA赋值(CMD3)也是工作在open-drain模式下,从主 机发完命令道设备应答之间最小的延迟时间为NCR个时钟周期。 (NCR = 2-64),数据传输模式下命令及应答的时序:,在设备接收到RCA后就会打开数据传输模式,该模式是工作 在push-pull模式下的。在发送完命令之后紧接着有两位的Z(高 阻),这是给总线定义方向留的时间,之后是被应答器件设为P位 ,除了CMD1,2,3以外,所有的应答时序都与这个图有关。 (NCR =2-64),R1b的应答:,有些命令,比如说CMD6,在R1应答的时候需要BUSY信号 ,在命令传输完两个时钟周期后,BUSY信号开始

6、,DAT0线被拉 低,DATA1-7上的值无关。 (NST =2,HS200: 2-4),最后一条设备的应答-下一条是主机的命令:,主机在接收到设备最后一条应答之后,在经过至少NRC个时 钟周期之后主机就可以开始下一条命令传输,这个时序图与所有 的主机命令都有关。 (NRC = 8),最后一条主机命令-下一条是主机命令,在主机发送完最后一条命令后,在经过至少NCC个时钟周期 之后主机就可以发送最后一条命令。 (NCC = 8),一种 CMD 命令发送控制模型,命令索引寄存器 6-bit,命令 Wire:,HIGH,LOW,32-bit,6-bit,命令参数寄存器 32-bit,7-bit,HI

7、GH,CRC7 生成控制模块,启动和停止(计数)控制,时钟,发送控制,应答接收模块控制状态寄存器,应答(命令)参数寄存器 32-bit,命令索引寄存器 6-bit,应答控制状态寄存器(8-bit),发送使能,应答格式,应答格式: 0: 长度 48-bit 1: 长度 136-bit 延迟模式: 0: NCR 最小 2 时钟周期,最大 64 时钟周期 1: NID 最小 5 时钟周期,最大 5 时钟周期,CRC 状态,忙状态,接收使能,超时,接收完成,延迟模式,命令及应答的状态转换图,四 EMMC的工作模式,eMMC有五种工作模式: 1)引导操作模式 2)设备的识别模式 3)中断模式 4)数据传

8、输模式 5)非活动模式,引导操作模式:,在上电或软硬件复位后,在CMD1发送之前,如果保持 CMD线为低不少于74个时钟周期,设备就识别出启动了引导 操作模式,内部就会开始准备引导数据。主机就会从 EXT_CSD179字节的5:3选择的引导区来读取引导数据,在 将CMD线拉低1秒以后,设备就通过DAT线开始发送第一个引 导数据给主机,主机必须保持CMD线为低直到读完所有的 BOOT数据(push-pull模式)。,设备的识别模式;,设备的识别过程: 主机首先发送CMD1来获取设备的操作条件,对于不兼容的设 备会进入非活动状态,之后主机发送广播命令CMD2来获取所有设 备的CID号,所有没有定义

9、的设备(处于Ready State的设备)会 同时发送他们的CID号,但是只会有一个设备成功的将CID号完全 的发送给主机(设备可以监测发到总线上的设备号),其他设备会 依然停留在Ready State状态等待下一个识别周期。而被选中的设 备会进入设备的识别状态,之后主机会发送CMD3命令来给这些设 备赋一个相对地址,以用于将来的数据传输,完成赋值后,设备就 进入到Stand-by状态,同时会将输出驱动由open-drain变为 push-pull。主机会重复这样的过程,直到没有设备应答CMD2为 止(等待应答的时间为NID=5个时钟周期)。,中断模式,主机通过CMD40使设备进入Wait-I

10、RQ状态,设备就会 等待内部的中断时间发生,一旦发生,设备就会给主机一个 应答(open-drain),返回Stand-by状态,同时主机也会 等待命令线上的起始位(0),一旦收到起始位,设备也会 放弃中断模式,并进入Stand-by状态;主机也可以自己给自 己发送一个CMD40应答,使设备回到Stand-by状态,发送 的应答RCA=0x0000,Device bit = 0。,数据传输模式,单倍数据率的数据传输,双倍数据率的数据传输,读数据的时序:,读数据包括单倍数据率和双倍数据率模式。 单倍数据率模式下,数据被设备打出在时钟的上升沿被 主机采样,每条数据线上有一个CRC。 双倍数据率模式

11、下,数据既可以在上升沿采样也可以在 下降沿采样,而且每条数据线上有两个CRC。在这种模式下 ,数据块的长度应该为512B,也可以配置为4位或8位的总 线宽度,奇数字节和偶数字节会分别在时钟的上升沿和下降 沿被主机采样,每条有效地数据线上都会有两个CRC,分别 对应256个奇数字节和256个偶数字节。注意只有数据块和 两个CRC可以在上升沿和下降沿采样,开始位和结束位只能 在时钟的上升沿采样。,单个数据块的读时序:,主机通过CMD7来选中一个设备进行数据的读操作,然后通 过CMD16来设置有效地数据块的长度(CMD16仅应用在单倍数 据率模式下),读操作的基本的总线时序如上图所示,单个块的 读操

12、作是由CMD17开始的,arg部分包括读的开始地址,应答跟 通常一样由CMD线发送。从设备发出的数据比读命令的最后一位 晚NAC个时钟周期,在最后一位数据位后面会跟上CRC校验码供 主机检查传输错误。 (NCR=2-64,NAC=2-10*(TAAC*FOP+100*NSAC) HS200:NAC=8),多数据块的读时序:,多数据块的读,停止命令下的时序,写数据的时序:,写数据包括单倍数据率模式和双倍数据率模式。 在单倍数据率模式下,数据被主机发出在时钟的上升沿 被设备采样,每条数据线上有一个CRC码。在双倍数据率模 式下,主机发出的数据既可以在时钟的上升沿也可以在时钟 的下降沿被采样,每条有

13、效地数据线上有两个CRC。这种模 式下的数据块的长度为512B,可以选择4位或8位的总线配 置,奇数字节被时钟的上升沿采样,偶数字节被时钟的下降 沿采样,主机将会添加两个CRC码,一个给奇数字节,一个 给偶数字节。注意只有数据块和两个CRC可以在时钟的上升 沿和下降沿采样,起始位和结束位以及CRC的状态位都只能 在时钟的上升沿采样。,单个数据块的写:,主机通过CMD7来选中一个设备进行数据的写操作,然后通过CMD16来 设置有效地数据块的长度(CMD16仅应用在单倍数据率模式下),基本的总线 写操作的时序如上图所示,单个块的写操作是由CMD24开始的,arg部分包括 读的开始地址,应答跟通常一

14、样由CMD线发送。从主机发出数据需要比收到设 备的应答的晚NWR个时钟周期,在最后一位数据位后面会跟上CRC校验码供设 备检查传输错误。设备会通过DAT0返回CRC的状态来显示校验的结果,如果传 输错误,CRC的状态值为“101”,如果传输正确,CRC的状态值为“010”, 并开始编程状态。 NCRC定义在HS200中,只有HS200设备支持NCRC,是从数据块的结束位 到CRC状态的起始位经历的时钟数,应该在2到8个时钟周期之间。 当设备编程时,就会将DAT0线拉低以显示正处于忙状态,设备一旦完成编 程DAT0线就会停止被拉低。 (NWR = 2,NCRC = 2-8),多个数据块的写:,在

15、不同的设备状态接收到停止命令的时序:,一种停止写数据的停止命令的发送时序:,总线测试过程的时序:,在进入Tran-state状态后,主机就可以开始总线测试了, 在双数据率模式下,总线测试时无效的,主机发CMD19命令 如果没有收到设备应答,主机就应当通过CMD13命令去读取 设备的状态信息,主机会认为是设备不支持这个功能。,BOOT操作的时序:,DAT 传输控制寄存器,数据传输控制寄存器(8-bit),数据传输 命令使能,停止命令 使能,引导操作 直接使能,传输方向,引导状态 接收使能,中断传输 命令使能,数据块数寄存器 7-bit,缓存起始块地址寄存器 7-bit,数据传输状态寄存器(8-b

16、it),CRC状态,忙状态,超时,传输完成,总线宽度 1,总线宽度 0,CLK 时钟及复位控制寄存器,时钟控制寄存器(8-bit),时钟使能,时序模式 0,复位使能,时序模式 1,时序模式 0 时钟分频器 (识别模式 fOD),时序模式 1 时钟分频器 (非高频模式 fPP),时序模式 2 时钟分频器 (高频模式 fPP),时序模式 3 时钟分频器 (HS200模式),数据传输部分整体结构图,数据传输控制状态图,Read状态:,该状态为一个数据块的读状态,数据块的长度为512B,多块的读则循环进 入该状态,由Block_num计数,在Wait_read状态下只要有任何一根数据线上检 测到起始位就会进入该状态。 该状态有三种总线宽度模式:1BIT,4BIT,8BIT 8BIT:该状态的时间为:512+16+1个时钟周期,以read_count计数,每个时 钟计一次,小于512时RAM地址随read_count加1,等于528时跳出。 4BIT:该状态的时间为:512*2+16+1个时钟周期,以re

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号