EMMC协议实用教案

上传人:夏** 文档编号:568616307 上传时间:2024-07-25 格式:PPT 页数:60 大小:2.69MB
返回 下载 相关 举报
EMMC协议实用教案_第1页
第1页 / 共60页
EMMC协议实用教案_第2页
第2页 / 共60页
EMMC协议实用教案_第3页
第3页 / 共60页
EMMC协议实用教案_第4页
第4页 / 共60页
EMMC协议实用教案_第5页
第5页 / 共60页
点击查看更多>>
资源描述

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

1、设备状态(zhungti)与工作模式和总线模式的关系第1页/共59页第一页,共60页。eMMC主机(zhj)的功能方框图内部(nib)总线RST_n控制(kngzh)逻辑RST_nCLK发送控制逻辑CLKCMD发送接收控制逻辑CMDDAT0状态检查控制逻辑CRC7生成/校验控制逻辑DAT1-7发送接收控制逻辑CRC16生成/校验控制逻辑(16单元)DAT0DAT1-7第2页/共59页第二页,共60页。第3页/共59页第三页,共60页。二eMMC的内部(nib)寄存器寄存器寄存器 宽度(字节)宽度(字节) 描述描述 操作的命令操作的命令 CID 16 16128128位的设备识别寄存器,包括一个

2、特有的设备的识别号码位的设备识别寄存器,包括一个特有的设备的识别号码 CMD2 RCA 2 21616位的相对地址寄存器,在卡的定义阶段由主机赋值位的相对地址寄存器,在卡的定义阶段由主机赋值, ,用于之后阶段设用于之后阶段设备的识别,默认的值备的识别,默认的值0x0001 0x0001 CMD3 DSR 2 21616位的驱动寄存器,可用于为扩展的操作条件提高总线的性能,默认位的驱动寄存器,可用于为扩展的操作条件提高总线的性能,默认值为值为0X4040X404。 CMD4 CSD 16 16设备的专用数据寄存器,包括:数据的格式、错误修正的类型、最大设备的专用数据寄存器,包括:数据的格式、错误

3、修正的类型、最大数据访问的时间、数据传输的速度、是否有数据访问的时间、数据传输的速度、是否有DSR寄存器等寄存器等 CMD9 CMD27 OCR 4 43232位的设备工作条件寄存器,存储电压值、访问模式、状态位等信息位的设备工作条件寄存器,存储电压值、访问模式、状态位等信息 CMD1 EXT_CSD 512 512512512字节的设备的扩展专用数据寄存器(字节的设备的扩展专用数据寄存器(192192字节可以编程),可以设字节可以编程),可以设置设备的各种工作配置,可有置设备的各种工作配置,可有SWITCH命令编程命令编程 CMD6第4页/共59页第四页,共60页。三命令(mnglng)和应

4、答命令:1命令的类型(lixng)有四种命令的类型(lixng):1)无应答的广播命令(bc)2)有应答的广播命令(bcr)3)DAT上无数据传输的点对点命令(ac)4)DAT上有数据传输的点对点命令(adtc)第5页/共59页第五页,共60页。2命令(mnglng)的格式所有的命令(mnglng)都是固定的长度48位,格式如下表所示所有命令(mnglng)都是以0开始的,紧接着是传输的方向(主机发出的就为1,设备发出的就为0),接下来的6位是命令(mnglng)的索引,这是一组二进制码(063),设备就是对这六位译码,区分是哪种命令(mnglng),还有一些命令(mnglng)需要arg值(

5、比如地址),这一段的长度为32位,所有的命令(mnglng)都会被CRC7保护着,所以CRC保护的是之前的40位,最后以1结束。第6页/共59页第六页,共60页。命令(mnglng)的应答应答也是由CMD传输的,由左边的位开始传输,应答位的长度(chngd)根据应答的类型而定。应答是以0开始的,紧接着是传输的方向(设备=0),接下来的值根据类型不一样也不一样,除了R3以外都会被CRC7保护着,每条命令都是以1结束的。一共有五种类型的命令应答形式:R1,R1b,R2,R3,R4,R5第7页/共59页第七页,共60页。R1:该应答的长度为48位,45:40显示(xinsh)的是命令的索引,39:3

6、8是32位的设备状态。R1b:和R1的区别只是在DAT0上存在忙信号的传输。第8页/共59页第八页,共60页。R2:(CID、CSD寄存器)该应答的长度(chngd)为136位,CID的内容会作为CMD2和CMD10的应答发送给主机,CSD的内容会作为CMD9的应答发送给主机,仅仅只有CID和CSD的127:1被传输,最后一位被应答的结束位所代替。第9页/共59页第九页,共60页。R3:(OCR寄存器)该应答(yngd)的长度为48位,OCR寄存器的值会作为CMD1的应答(yngd)发送给主机。第10页/共59页第十页,共60页。R4:(FastIO)该应答位的长度48位,ARG部分包括RCA

7、的值、寄存器的值、寄存器的值,如果(rgu)操作成功,状态位就会被置位。第11页/共59页第十一页,共60页。R5:(中断请求)该应答(yngd)的长度为48位,如果应答(yngd)是主机自己发送的,那么RCA的值为0x0000。第12页/共59页第十二页,共60页。3命令(mnglng)和应答的时序:无论是单倍数据率模式还是双倍数据率模式,主机的命令和设备的应答(yngd)都是在时钟的上升沿采样的。第13页/共59页第十三页,共60页。设备的识别及设备的操作条件(tiojin)的时序设备的识别(CMD2)和设备的操作条件(CMD1)工作在open-drain模式下,设备给主机的应答是在NID

8、个时钟(shzhng)周期后开始的。如果在经过NID+1个时钟(shzhng)周期仍然没收到应答的话,主机就需要做超时报告(NID=5)第14页/共59页第十四页,共60页。给RCA赋值的时序(shx)给RCA赋值(CMD3)也是工作在open-drain模式下,从主机发完命令道设备应答之间最小的延迟时间为NCR个时钟(shzhng)周期。(NCR=2-64)第15页/共59页第十五页,共60页。数据传输模式下命令(mnglng)及应答的时序:在设备接收到RCA后就会打开数据传输模式,该模式是工作在push-pull模式下的。在发送完命令(mnglng)之后紧接着有两位的Z(高阻),这是给总线

9、定义方向留的时间,之后是被应答器件设为P位,除了CMD1,2,3以外,所有的应答时序都与这个图有关。(NCR=2-64)第16页/共59页第十六页,共60页。R1b的应答(yngd):有些(yuxi)命令,比如说CMD6,在R1应答的时候需要BUSY信号,在命令传输完两个时钟周期后,BUSY信号开始,DAT0线被拉低,DATA1-7上的值无关。(NST=2,HS200:2-4)第17页/共59页第十七页,共60页。最后(zuhu)一条设备的应答-下一条是主机的命令:主机在接收到设备(shbi)最后一条应答之后,在经过至少NRC个时钟周期之后主机就可以开始下一条命令传输,这个时序图与所有的主机命

10、令都有关。(NRC=8)第18页/共59页第十八页,共60页。最后一条主机(zhj)命令-下一条是主机(zhj)命令在主机发送完最后一条命令后,在经过至少NCC个时钟(shzhng)周期之后主机就可以发送最后一条命令。(NCC=8)第19页/共59页第十九页,共60页。一种CMD命令(mnglng)发送控制模型命令(mng lng)索引寄存器6-bit命令(mng lng) Wire:HIGHLOW32-bit6-bit命令参数寄存器32-bit7-bitHIGHCRC7 生成控制模块启动和停止(计数)控制时钟发送控制第20页/共59页第二十页,共60页。应答(yngd)接收模块控制状态寄存器

11、应答(命令(mng lng))参数寄存器32-bit命令(mng lng)索引寄存器6-bit应答控制状态寄存器(8-bit)发送使能应答格式应答格式:0: 长度 48-bit1: 长度 136-bit延迟模式:0: NCR 最小 2 时钟周期,最大 64 时钟周期1: NID 最小 5 时钟周期,最大 5 时钟周期CRC 状态忙状态接收使能超时接收完成延迟模式第21页/共59页第二十一页,共60页。命令(mng lng)及应答的状态转换图第22页/共59页第二十二页,共60页。四EMMC的工作(gngzu)模式eMMC有五种工作模式:1)引导操作(cozu)模式2)设备的识别模式3)中断模式

12、4)数据传输模式5)非活动模式第23页/共59页第二十三页,共60页。引导(yndo)操作模式:第24页/共59页第二十四页,共60页。在上电或软硬件复位后,在CMD1发送之前,如果保持CMD线为低不少于74个时钟周期,设备(shbi)就识别出启动了引导操作模式,内部就会开始准备引导数据。主机就会从EXT_CSD179字节的5:3选择的引导区来读取引导数据,在将CMD线拉低1秒以后,设备(shbi)就通过DAT线开始发送第一个引导数据给主机,主机必须保持CMD线为低直到读完所有的BOOT数据(push-pull模式)。第25页/共59页第二十五页,共60页。设备(shbi)的识别模式;第26页

13、/共59页第二十六页,共60页。设备的识别过程:主机首先发送CMD1来获取设备的操作条件,对于不兼容的设备会进入非活动状态,之后主机发送广播命令(mnglng)CMD2来获取所有设备的CID号,所有没有定义的设备(处于ReadyState的设备)会同时发送他们的CID号,但是只会有一个设备成功的将CID号完全的发送给主机(设备可以监测发到总线上的设备号),其他设备会依然停留在ReadyState状态等待下一个识别周期。而被选中的设备会进入设备的识别状态,之后主机会发送CMD3命令(mnglng)来给这些设备赋一个相对地址,以用于将来的数据传输,完成赋值后,设备就进入到Stand-by状态,同时

14、会将输出驱动由open-drain变为push-pull。主机会重复这样的过程,直到没有设备应答CMD2为止(等待应答的时间为NID=5个时钟周期)。第27页/共59页第二十七页,共60页。中断(zhngdun)模式第28页/共59页第二十八页,共60页。主机(zhj)通过CMD40使设备进入Wait-IRQ状态,设备就会等待内部的中断时间发生,一旦发生,设备就会给主机(zhj)一个应答(open-drain),返回Stand-by状态,同时主机(zhj)也会等待命令线上的起始位(0),一旦收到起始位,设备也会放弃中断模式,并进入Stand-by状态;主机(zhj)也可以自己给自己发送一个CM

15、D40应答,使设备回到Stand-by状态,发送的应答RCA=0x0000,Devicebit=0。第29页/共59页第二十九页,共60页。数据传输模式(msh)第30页/共59页第三十页,共60页。单倍数据(shj)率的数据(shj)传输第31页/共59页第三十一页,共60页。第32页/共59页第三十二页,共60页。双倍数据(shj)率的数据(shj)传输第33页/共59页第三十三页,共60页。第34页/共59页第三十四页,共60页。读数据的时序(shx):读数据包括单倍数据率和双倍数据率模式。单倍数据率模式下,数据被设备打出在时钟的上升沿被主机采样,每条数据线上有一个CRC。双倍数据率模式

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

17、基本的总线时序如上图所示,单个块的读操作是由CMD17开始的,arg部分包括读的开始地址,应答跟通常一样由CMD线发送。从设备发出(fch)的数据比读命令的最后一位晚NAC个时钟周期,在最后一位数据位后面会跟上CRC校验码供主机检查传输错误。(NCR=2-64,NAC=2-10*(TAAC*FOP+100*NSAC)HS200:NAC=8)第36页/共59页第三十六页,共60页。多数据(shj)块的读时序: 多数据(shj)块的读停止(tngzh)命令下的时序第37页/共59页第三十七页,共60页。写数据(shj)的时序:写数据包括单倍数据率模式和双倍数据率模式。在单倍数据率模式下,数据被主机

18、发出(fch)在时钟的上升沿被设备采样,每条数据线上有一个CRC码。在双倍数据率模式下,主机发出(fch)的数据既可以在时钟的上升沿也可以在时钟的下降沿被采样,每条有效地数据线上有两个CRC。这种模式下的数据块的长度为512B,可以选择4位或8位的总线配置,奇数字节被时钟的上升沿采样,偶数字节被时钟的下降沿采样,主机将会添加两个CRC码,一个给奇数字节,一个给偶数字节。注意只有数据块和两个CRC可以在时钟的上升沿和下降沿采样,起始位和结束位以及CRC的状态位都只能在时钟的上升沿采样。第38页/共59页第三十八页,共60页。单个数据(shj)块的写:主机通过CMD7来选中一个设备进行数据的写操作

19、,然后通过CMD16来设置有效地数据块的长度(CMD16仅应用在单倍数据率模式下),基本的总线写操作的时序如上图所示,单个块的写操作是由CMD24开始的,arg部分包括(boku)读的开始地址,应答跟通常一样由CMD线发送。从主机发出数据需要比收到设备的应答的晚NWR个时钟周期,在最后一位数据位后面会跟上CRC校验码供设备检查传输错误。设备会通过DAT0返回CRC的状态来显示校验的结果,如果传输错误,CRC的状态值为“101”,如果传输正确,CRC的状态值为“010”,并开始编程状态。NCRC定义在HS200中,只有HS200设备支持NCRC,是从数据块的结束位到CRC状态的起始位经历的时钟数

20、,应该在2到8个时钟周期之间。当设备编程时,就会将DAT0线拉低以显示正处于忙状态,设备一旦完成编程DAT0线就会停止被拉低。(NWR=2,NCRC=2-8)第39页/共59页第三十九页,共60页。多个(du)数据块的写:第40页/共59页第四十页,共60页。在不同的设备状态接收到停止(tngzh)命令的时序:第41页/共59页第四十一页,共60页。第42页/共59页第四十二页,共60页。一种停止(tngzh)写数据的停止(tngzh)命令的发送时序:第43页/共59页第四十三页,共60页。总线(znxin)测试过程的时序:在进入Tran-state状态后,主机就可以开始总线测试(csh)了,

21、在双数据率模式下,总线测试(csh)时无效的,主机发CMD19命令如果没有收到设备应答,主机就应当通过CMD13命令去读取设备的状态信息,主机会认为是设备不支持这个功能。第44页/共59页第四十四页,共60页。BOOT操作(cozu)的时序:第45页/共59页第四十五页,共60页。第46页/共59页第四十六页,共60页。DAT传输(chunsh)控制寄存器数据传输控制(kngzh)寄存器(8-bit)数据传输命令(mng lng)使能停止命令使能引导操作直接使能传输方向引导状态接收使能中断传输命令使能数据块数寄存器7-bit缓存起始块地址寄存器7-bit数据传输状态寄存器(8-bit)CRC状

22、态忙状态超时传输完成总线宽度1总线宽度0第47页/共59页第四十七页,共60页。CLK时钟及复位(fwi)控制寄存器时钟(shzhng)控制寄存器(8-bit)时钟(shzhng)使能时序模式0复位使能时序模式1时序模式 0 时钟分频器(识别模式 fOD)时序模式 1 时钟分频器(非高频模式 fPP)时序模式 2 时钟分频器(高频模式 fPP)时序模式 3 时钟分频器(HS200模式)第48页/共59页第四十八页,共60页。数据传输部分(bfen)整体结构图第49页/共59页第四十九页,共60页。数据传输控制(kngzh)状态图第50页/共59页第五十页,共60页。Read状态(zhungti

23、):该状态为一个数据块的读状态,数据块的长度为512B,多块的读则循环(xnhun)进入该状态,由Block_num计数,在Wait_read状态下只要有任何一根数据线上检测到起始位就会进入该状态。该状态有三种总线宽度模式:1BIT,4BIT,8BIT8BIT:该状态的时间为:512+16+1个时钟周期,以read_count计数,每个时钟计一次,小于512时RAM地址随read_count加1,等于528时跳出。4BIT:该状态的时间为:512*2+16+1个时钟周期,以read_count计数小于512时每2个时钟计一次,并且RAM地址随read_count加1。等于512后每个时钟计1次

24、。等于528时跳出。1BIT:该状态的时间为:512*8+16+1个时钟周期,以read_count计数小于512时每8个时钟计一次,并且RAM地址随read_count加1。等于512后每个时钟计1次。等于528时跳出。跳出该状态完成后,判断Block_num的值,为0则进入Idle状态,非0则进入Wait_read状态再次等待起始位,同时将Block_num的值减1.第51页/共59页第五十一页,共60页。Write状态(zhungti):Write状态与Read状态的具体操作类似,不同点Write状态一完成就进入REV_crc状态等待接收CRC状态,在检测到起始位后再计4个周期CRC即接

25、收完毕,如果为单块或多块的最后(zuhu)一个块(Block_num=0),就会进入Prom状态,直到DAT0不为0跳回Idle状态;如果为多块且Block_num不为0,需要立刻检测DAT0,如果为0,则进入Prom状态,直到DAT0不为0跳到Wait_write状态等待写下一个块,如果DAT0不为0,则会立刻直接跳到Wait_write状态等待写下一个块第52页/共59页第五十二页,共60页。以8bit为例的一种读数据时停止命令(mnglng)的发送时序第53页/共59页第五十三页,共60页。Read状态(zhungti)下:8bit:当stop_en=1,block_num=0,read

26、_count=479时开始发送停止(tngzh)命令。4bit:当stop_en=1,block_num=0,read_count=495时开始发送停止(tngzh)命令。1bit:当stop_en=1,block_num=0,read_count=507时开始发送停止(tngzh)命令。第54页/共59页第五十四页,共60页。以8bit总线为例的一种写数据时停止命令的发送(fsn)时序第55页/共59页第五十五页,共60页。Write状态(zhungti)下:8bit:当stop_en=1,block_num=0,read_count=486时开始(kish)发送停止命令。4bit:当sto

27、p_en=1,block_num=0,read_count=498再计7个时钟时开始(kish)发送停止命令。1bit:当stop_en=1,block_num=0,read_count=507再计一个时钟时开始(kish)发送停止命令。第56页/共59页第五十六页,共60页。CRC7的校验(xioyn):校验码:0x09初值:0x00方法(fngf):1CRC7=0x00;2temp=data_inCRC76CRC7=CRC71;3iftemp=1CRC7=CRC70x09;4重复2、3;第57页/共59页第五十七页,共60页。CRC16的校验(xioyn):初值为0x0000A:校验码:0

28、x1021方法(fngf):1CRC16=0x0000;2temp=data_inCRC1615CRC16=CRC161;3iftemp=1CRC16=CRC160x8408;4重复2、3;第58页/共59页第五十八页,共60页。感谢您的欣赏(xnshng)!第59页/共59页第五十九页,共60页。内容(nirng)总结设备状态与工作模式和总线模式的关系。4)DAT上有数据传输的点对点命令(adtc)。主机在接收到设备最后一条应答之后(zhhu),在经过至少NRC个时。在主机发送完最后一条命令后,在经过至少NCC个时钟周期。对应256个奇数字节和256个偶数字节。过CMD16来设置有效地数据块的长度(CMD16仅应用在单倍数。主机通过CMD7来选中一个设备进行数据的写操作,然后通过CMD16来。感谢您的欣赏第六十页,共60页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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