




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专业综合实践报告基于eMMC的大容量存储技术研究学生姓名:李元亨电子邮箱: 8539411基于eMMC的大容量存储技术研究1、 国内外研究现状分析1.1eMMC概述eMMC是embeddedMultimediaCard的简称,MMC/eMMC是一种普遍使用的成本较低的数据存储和传播媒体,它的使用范围覆盖了大面积的便携式电子产品,比如手持电脑、数码相机、智能手机等,这些设备的统一特点就是高流动性、高性能、较低的成本、记忆卜口的低功耗和高数据吞吐量。eMMC为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机产品为主。eMMC的优点是:简化手机内存储器的使用,将 NANDFLASH芯片和控制芯
2、片设计成1颗MCP芯片,手机客户只需要采购eMMC芯片,放进新手机中,不需处理其它复杂的 NANDFLASH兼容性和管理问题,eMMC最大优点加快了新产品的更新速度,减少了研发成本,缩短了新产品的研发周期。eMMC是针对智能型手机(Smartphone)所设计的内嵌式存储器规格,是外接式记忆卡MMC的延伸,eMMC之后也扩散至平板计算机(Tablet PC)应用领域。eMMC设计概念是把NAND Flash芯片和控制芯片封装成BGA封装芯片,可节省电路板的面积,客户设计新产品时,也不需考虑内建NAND Flash芯片的三星电子(Samsung Electronics)、美光(Micron)、东
3、芝(Toshiba),或是35纳米、24纳米或19纳米制程,便利了手机客户设计的程序和新产品问世时间点。快闪记忆卡协会SD协会也同样推出eSD规格,但目前eMMC在智能型手机内嵌式存储器领域的领导位置无可动摇,几乎是所有手机大厂储存接口的标准,除了苹果(Apple)必采用自家的设计规范外。eMMC规格的标准这几年也快速演进,从eMMC4.3、eMMC4.4、eMMC4.5陆续问世,而预计接棒eMMC规格的会是三星电子(Samsung Electronics)主导的UFS(Universal Flash Storage),会把Mobile RAM等芯片功能都涵盖。在智能型手机领域中,eMMC规格
4、是主流,但在平板计算机或是轻薄型笔记本电脑(NB)上,仍要和SATA接口的固态硬盘(SSD)做竞争,毕竟SATA SSD有读写速度上的优势,不论是随机效能(Random Performance)或是连续效能(Sequential Performance)等,内嵌式iSSD也都明显优于eMMC,较适合PC类的产品应用,例如新帝的iSSD产品就是SATA接口SSD的代表。1.2讨论到eMMC的发展历程,必须要从介绍Flash的历史开始Flash分为两种规格:NOR Flash和NAND Flash,两者均为非易失性闪存模块。1988年,Intel首次发出NOR flash技术,彻底改变了原先由EP
5、ROM和EEPROM一统天下的局面。NOR类似于DRAM, 以存储程序代码为主,可以让微处理器直接读取。因为读取速度较快,但晶片容量较低,所以多应用在通讯产品中,如手机。1989年,东芝公司发表NAND flash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。因为NAND flash的晶片容量相对于NOR大,更像硬盘,写入与清除资料的速度远快于NOR,所以当时多应用在小型机以储存资料为主。目前已广泛应用在各种存储设备上, 可存储代码和资料。NAND Flash的存储单元发展:从 SLC, MLC到TLC,超越摩尔定律SLC=Single-Level Cell, 即
6、1bit/cell,读写速度快,寿命长,价格是MLC三倍以上,约10万次读写寿命。MLC=Multi-Level Cell, 即2bit/cell ,速度一般,寿命一般,价格一般,月3000-10000次读写寿命。TLC=Triple-Level Cell,即3bit/cell,速度慢,寿命短,价格便宜,约500次读写寿命,技术在逐渐成长中。NAND Flash的存储单元从最初的SLC( Single Layer Cell), 到2003年开始兴起MLC (Multi-Layer Cell), 发展至今,SLC已经淡出主流市场,主流存储单元正在从MLC向TLC(Triple Layer Cel
7、l)迈进。纳米制程工艺和存储单元的发展,使得同样大小的芯片有更高密度和更多的存储单元,Flash得以在容量迅速增加的同时,还大幅降低了单位存储容量的成本。但其弊端也轻易显现,从原来的1bit/cell发展到后来3bit/cell, 计算更为复杂,出错率不免更高,读写次数和寿命也会更短。在这种情况下现有MLC 和 TLC Flash 都需要搭配一颗高性能的控制芯片来提供EDC和ECC、平均擦写等Flash管理。1.3随着近年平板电脑和智能手机等在全球热潮来袭,嵌入式存储eMMC即营运而生iphone,iPAD带动了智能手机和平板电脑行业的迅猛发展,引发了电子产品更新换代,对存储硬件提出了更高的要
8、求。多媒体播放、高清摄像,GPS,各色各样的应用以及外观轻薄小巧的发展趋势,要求存储硬件拥有高容量、高稳定性和高读写速度的同时,需要存储芯片在主板中占有更小的空间。然而NAND Flash 随着纳米制程和存储技术的主流趋势发展,性能却在不断下降。可擦写寿命短,出错概率高,读写速度慢,稳定性差。嵌入式存储芯片eMMC就可以弥补这个市场需求和NAND Flash发展的缺口。eMMC(Embedded Multi Media Card) 采用统一的MMC标准接口, 把高密度NAND Flash以及MMC Controller封装在一颗BGA芯片中。针对Flash的特性,产品内部已经包含了Flash管
9、理技术,包括错误探测和纠正,flash平均擦写,坏块管理,掉电保护等技术。用户无需担心产品内部flash晶圆制程和工艺的变化。同时eMMC单颗芯片为主板内部节省更多的空间。之前市场上流通的eMMC产品均出自国外的厂商闪迪、三星、东芝。而大陆厂商泰胜微科技今年第一个在国内推出了自有品牌BIWIN的eMMC产品,完全自主研发和封装测试,并将其产品命名为qNAND,已于年中推向了市场。泰胜微科技专注于嵌入式存储产品的研发和生产。拥有11年Flash的行业经验,是华南地区唯一一家拥有12寸晶圆封装测试工厂的民营企业。根据最新的测试结果,BIWIN的品牌eMMCqNAND在一些关键性能指标上大幅优于同类
10、产品。作为后来者,泰胜微的表现很值得期待。1.4 eMMC的未来eMMC规格的标准逐渐从eMMC4.4世代发展到eMMC4.5世代。就目前JEDEC的规划方向来看,eMMC下一个世代将会由UFS(Universal Flash Storage)规格接棒。我们将UFS视为一种衔接eMMC 4.5版后的NAND Flash新接口标准,预期未来初期将在智能型手机及平板计算机等新兴智能型移动装置上,成为嵌入式储存媒体的主要的应用标准之一。UFS将提供极高的速度,以即时高速存储大型多媒体文件,同时在消费电子设备上使用时降低功耗。有了新的标准,预计用户存取90分钟电影的时间会从目前的3分钟降低到几秒钟。这
11、项新的标准将支持手机,数码相机等其他消费电子产品,并将做为方便通用的开发标准存在。1.5 eMMC的市场需求今年eMMC出货量预计将达到3.337亿个,高于2010年的2.060亿个。2011年总体手机出货量的23%左右,大约相当于2.397亿部,将采用eMMC,该比例两年后将升至37%。其它重要的eMMC领域将包括平板电脑、电子书阅读器和具备GPS的便携导航设备。摄像机和机顶盒也在考虑使用eMMC的可行性。eMMC可提供节省成本的长期解决方案,而且具有标准化引脚。未来几年eMMC出货量将继续上升,预计2015年达到7.791亿个。手机将是eMMC市场的最大领域,2015年该领域的出货量将达到
12、5.601亿个,占72%。平板电脑将是第二大eMMC应用市场,四年内该领域的出货量将从今年的1800万个剧增到1.48亿个。eMMC的发展非常迅速,性能几乎逐年提升。IHS iSuppli公司的研究显示,作为一种成本划算的高密度闪存,eMMC已成功打入智能手机和平板电脑等高端市场,这些产品要求较高的存储密度,同时要求低功耗和较小的引脚。尤其是,eMMC4.5规范增加了几种新能力来提高寿命,包括每秒200MB的单数据率HS200模式,几乎把现有内存传输速度提高了一倍。该规范还允许增加一个易失性(volatile)缓存,进一步利用eMMC portioning来实现更快的程度。IHS公司认为,随着
13、NAND技术发展成各种更加专门的解决方案,eMMC将获得更大的增长动能。它带来了多个供应商之间的兼容性、长期支持和可接受的成本。另外,该产品较强的可靠性与性能,将帮助其进入未来的高端产品之中,从而确保eMMC市场在未来几年保持增长。2、eMMC(嵌入式多媒体存储卡)简介2.1应用范围eMMC (Embedded MultiMediaCard) 是嵌入式多媒体卡的缩写,由MMC协会(MultiMediaCard As -sociation) 所订立的嵌入式内存标准规格,主要针对行动装置产品为主,如手机、智能型手机、平板计算机、笔记本电脑等等;这些产品它们都需要轻薄的机身,因此有减少使用零组件面积
14、的需求,eMMC 便由此出现。2.2结构eMMC 简化了内存的设计,使用多芯片封装(MCP)技术,把 NAND Flash芯片和控制芯片(Control chip)封装在一起,打成单一颗芯片,如此便可以省下零组件并增加电路板面积。eMMC 架构是由一个嵌入式储存方案所组成,内部结构带有MMC接口、NAND Flash以及 Control所组成,经由BGA 封装在一颗小型的芯片上。简单来说,HOST只需要透过MMC BUS下达命令即可,不需要任何内存管理方面的算法(ECC、Wear-Leveling、BBM)的计算,这些都已经交给了与NAND Flash封装在一起的Control chip,这对
15、研发团队来说无疑是降低研发成本的好方法。图1 eMMC系统架构图2 主从设备结构框图2.3规格eMMC传输速度高达52MB/s,电压范围为1.8v至3.3v,具备高速且可升级的特性。制定规格上,eMMC 4.2制订了eMMC接口速度及容量,接口速度为52MB/s、容量规格则大于2GB。eMMC 4.3则新增Booting Function、Explicit Sleep Mode、Reliable Write等功能。eMMC 4.4更强化双倍内存接口效能(DDR),使原本定义的52MB/s速度提升到100MB/s 以上,效能提高2倍,此外还加入了弹性分区管理概念(Multiple Partiti
16、oning),将芯片定义为High Density及High Performance两个部份,可将程序代码和系统数据放在High Performance区块,如此一来便可以更有弹性的使用区块容量,而且在eMMC 4.4还增加了写保护的功能,提高数据安全性。eMMC4.5协议中主要新增了HS200 Mode,时钟频率提高到200Mhz,数据传输速率达到了200MB/s(八根数据线的情况)。 表1 eMMC引脚接口说明2.4特性及优势(与传统存储设备比较)eMMC与传统存储设备相比,有很多良好的特性。2.4.1系统宽电压范围2.4.2十根总线结构2.4.3完善的数据保护机制2.4.4两种读写模式2
17、.4.5三种擦除资料模式2.4.6增强的主从设备通信技术2.4.7支持DDR模式(双倍速率同步动态随机存储器)2.5工作模式所有 Host与Card之间的传输控制都是统一由HOST来控制,而HOST发送控制命令有分为两种广播和地址(点对点传输)。1、广播命令模式 (Broadcast commands)顾名思义,就是HOST发送一个命令给所有的MMC卡,而某些卡则会对这命令做出回应。2、地址命令模式 (Addressed (point-to-point) commands)可以理解成直接命令,也就是说Host直接对某张MMC卡下一个命令,而卡针对此命令直接做反应。eMMC的五种操作模式:开机模
18、式、ID辨识模式、中断模式、数据传输模式、无效模式。开机模式 Boot modePower ON后,卡若收到CMD0(GO_Idle_State)并带argument(0xF0F0F0F0),此时Card若支持Boot Mode则会进入Boot Mode,否则进入identification mode。ID辨识模式 Card identification Power ON 后,经过 Boot mode 完成或不支持Boot mode,Card都将会进入此模式持续等待收到Host下CMD3(Send_Relative_Address)。中断模式 Interrupt modeHost和Card会同
19、时进入此模式,此模式中不会做Data Transfer ,只允许Host or Card 送出 interrupt service request。数据传输模式 Data transfer mode当卡收到由Host所给予的RCA ,这时卡便会进入Data transfer mode,等待读写动作指令。无效模式 Inactive mode当Card若为电压不符规定或插入方式无效时便会进入此模式,亦可使用CMD1(GO_INACTIVE_STATE )命令使一个已标识的Card进入非活动状态。表2 eMMC五种工作模式eMMC工作时是基于设备跳转到不同状态来工作的。表3 设备不同状态对应的操作模
20、式及总线模式eMMC对应的四种速度模式:表4 eMMC的速度模式2.6数据封包及传输协议封包(Packet):eMMC协议中共有五种数据封包,分别是Command、Response、Block、CRC Status和Busy,详述如下: Command:一律由Host下达,并可带参数的命令。 Response:Device对Host发出Command所做的响应,内部参数表示该Device现阶段的状态为何。 Block:eMMC的传输协议中的基本单位,所有数据数据都会封装在Block里传输。 CRC Status:此数据封包通常在写入Block后出现,用来通知Host写入Block的结果。 Bu
21、sy:此数据数据通常在写入Block后出现,用来通知Host该Device 目前处于忙碌状态,无法写入下一个Block。 2.6.1指令(CMD)格式eMMC指令(CMD)分为四种类型,分别为:1、广播指令,无响应(No Response)2、广播指令,有响应(Response)3、地址指令(点对点),无响应(Response)4、地址指令(点对点),有响应(No Response)所有的指令均是由48字节长度组成的代码,在时钟频率为52MHz的情况下,传输一条指令的时间为0.92ms。表5 指令格式eMMC控制指令一共有57条(CMD0CMD56),这57条指令又分为10个指令集(class
22、0class9),不同的设备支持的指令集不同,但是class0(basic)是所有设备必须支持的,他包括了初始化,识别设备等基本指令,要想看设备是否支持,可以通过看CSD寄存器的配置来了解。 2.6.2设备响应(Response)格式所有响应均是Device接受到Host命令之后在CMD信号线上发送的,而响应内容的长短取决于响应的种类。基本的响应结构为Start bit - Transmission bitContent bitsCRC bits - End bit,如图三所示。eMMC协议中共有5种响应种类,分别是R1、R2、R3、R4与R5,详细内容如下:图3 基本响应封包结构图R1 (n
23、ormal response command): 总长48 bit,45:40代表响应的CMD数值,39:8则是表示Device现在的状态及设备可能出错的标志位,这些位的说明参照 eMMC4.5协议。R1还有另一个格式为R1b,结构与R1相同,不过增加了可选择的BUSY信号。表6 R1响应结构R2 (CID, CSD register): 总长136bit,主要是响应汇报CID与CSD缓存器的内容,CID register分别对应CMD2与CMD10,而CSD register则是对应CMD9。表7 R2响应结构R3 (OCR register): 总长48bit,主要响应回报ORC缓存器的内
24、容,只有当Host下CMD1时,Device响应的格式内容就是R3。表8 R3响应结构R4 (Fast I/O): 总长48bit,主要用于要写入和读出某个缓存器8bit 的区段数据,只有当Host下CMD39,Device响应的格式内容就是R4。表9 R4响应结构R5 (Interrupt request): 总长48bit,此响应为中断请求的响应格式,只有当Host下达CMD40命令某张卡必须进入中断模式时,Device 若确实收到并响应此R5响应,则代表此卡进入中断,并且RCA被设置为0x0。表10 R5响应结构 2.6.3指令与响应传输时序主机发送的指令和设备的响应无论是在SDR或者D
25、DR工作状态,都是在时钟的上升沿被采样。1、 设备识别和设备操作状态设定设备识别指令(CMD2)和设备操作状态设定指令(CMD1)时序,设备在接收完毕指令后NID个时钟周期后发出。图4设备识别和设备操作状态指令时序2、 向设备发送设备地址(OCR)指令CMD3是给设备配置地址的指令,在指令和响应之间至少有NCR个时钟周期。图5设置设备地址时序3、 数据传输模式(Data Transfer Mode)当设备接收到自己的地址(RCA)后,就会跳转到数据传输模式,在这个模式下CMD信号线工作在推拉模式。指令后要跟随2位的高阻位(给总线改变模式的时间),之后跟着被设备拉高的位(P bits)。这个时序
26、对于除了CMD1、2、3之外的所有指令都适用。图6指令响应时序(数据传输模式)4、 R1b响应有一些指令,例如CMD6,需要有一个BUSY信号,响应格式也为R1,如果BUSY信号被定义使用,在指令完成后两个时钟周期后它就会被设置。这时DAT0线就会被拉低,DAT1DAT7上的信号值无效。图7 R1b响应时序5、 设备响应完毕到下一条指令发出两者之间至少要间隔NRC。图8 响应结束至下一条指令时序(数据传输模式)6、 一条指令发出(无响应)到下一条指令发出两者至少间隔NCC。图9 两条指令之间间隔时序2.6.4内部寄存器格式根据设备的接口,有六组寄存器被定义:1、 RCA: Relative C
27、ard Address Register 关联卡地址寄存器RCA寄存器保存了Host在识别过程中给卡配置的地址。此地址的主要作用是在识别过程之后,用于卡的识别。2、 CID: Card Identification Register 卡识别寄存器CID寄存器(128字节)保存了卡的识别信息,主要应用于卡的识别过程。每张卡都应该有一个独一无二的寄存器值。3、 CSD(Card-SpecificData)特殊寄存器CSD寄存器(128字节)提供了一些信息告诉主机如何使用设备,CSD寄存器定义了数据格式,错误类型,最大数据使用次数,数据传输速度,DSR寄存器是否可被使用等等。可以通过CMD27来对此
28、寄存器编程。4、 EXT_CSD (Extend Card-SpecificData)扩展的特殊寄存器ECSD寄存器(512字节)定义了设备的性能和一些选择的模式,它最重要的320字节是性能的定义,它定义了设备的能力并且不能被主机修改。低192字节是模式的定义,定义了设备工作配置,这些可以通过CMD6指令来进行修改。5、 OCR: Operation Condition Register 工作条件寄存器32位的关联卡地址寄存器存储了设备的工作电压范围(VDD)以及指示了上电过程的状态。OCR主要用在上电复位中,主要有两个作用,一是在程序进入Idle State之后,读busy位来判断上电过程是
29、否完成;二是用来判断CMD1发送来的电压范围卡是否支持,如果不支持,则进入Inactive State,初始化失败。6、 DSR: Driver Stage Register 配置总线寄存器 DSR寄存器是一个可选寄存器,用来配置卡的总线驱动参数。之所以用DSR寄存器来设定总线的驱动能力,是因为总线走线的不一和拓扑结构的多样,造成总线的容值特性多样。 这六组寄存器的详细定义不再列出,参照eMMC4.5协议。2.6.5传输时序 分别是1位Bus 上升沿取样(1 bit SDR)、4位Bus上升沿取样(4 bits SDR)、8位Bus上升沿取样(8 bits SDR)、4位Bus DDR与8位B
30、us DDR,这五种均是用Block为单位作数据传输,五种传输模式示意图如下:图10 1位Bus 上升沿取样图11 4位Bus 上升沿取样图12 8位Bus 上升沿取样4位总线DDR:Block和CRC 在CLK 的上升沿与下降沿被取样,而起始位和结束位只有在上升沿被取样。图13 4位Bus DDR取样DDR 的取样方式如下图所示,它会依照CLK 的上下升沿作数据的获取,进而达到双倍的数据传输,这边要注意,只有一开始与结束bit是上升沿获取,Data以及CRC 的数据皆是上下沿获取。图14 8位Bus DDR取样3、控制逻辑及流程图 3.1工作的不同状态(预先启动模式,分区模式,初始化模式,数
31、据传输模式,中断模式,休眠模式)eMMC有多种工作状态,每种工作状态都不可或缺的完成一部分任务,工作状态有预先启动模式,分区模式,初始化模式,数据传输模式,中断模式,休眠模式。下面具体介绍这些功能。 3.1.2预先启动模式eMMC能够使主机通过在正确的时间按顺序发送一系列指令来读取引导启动区的代码来达到启动一个系统的目的。eMMC提供了两个Boot寄存器,如图所示,每个寄存器都有独立的物理地址,大小是128KB的倍数,倍数可以通过查看ECSD226来获取。并且可以设置上电写保护和永久写保护,这是通过设置ECSD173来实现的。通过改变ECSD寄存器中相关位的值来选中响应的寄存器并且读取。用户启
32、动系统的代码 通常放在Boot Area中,但也可以从User Area启动系统,但这样会带来一些不稳定和其他一些问题。图15 Boot寄存器图16 Boot Mode流程图1、 当系统上电,或者硬件复位,或者主机发出CMD0指令并带0xF0F0F0F0,系统就会进入Pre-Idle State。2、 设备会自动检测BOOT_PARTITION_ENABLE是否为1,若为0则退出Boot模式,若为1,则进入下一步。3、 CMD线要至少保持74个时钟周期的低电平,或者主机发送CMD0并带0xFFFFFFFA,此时设备就会发出主机要读的数据,主机接收完毕,就跳转到Idle State。否则,结束B
33、oot模式。下图为传送数据时序图:图17 等待至少74个时钟周期后,设备发送数据时序图图18 送入CMD0并带0xFFFFFFFA后,设备发送数据时序图 3.1.3分区模式分区模式能够使主机将eMMC的一些存储单元配置成一些具有特殊性能,可靠性高,执行力强的一些模块。不同的分区将被配置成不同的功能用于不同的目的。例如,大容量储存空间的申请不需要严格定义它的耐久度,允许一定的坏扇区出现,然而,它们却需要很高的带宽和空间去存储代码和应用软件。最初的分区只有4块,如图所示,分别是两个Boot区,一个RPMB区,剩下的是用户存储区。图19 eMMC最初分区图用户可以通过配置用户区来增加一些区域,每个区
34、域都会有独立的物理地址从0x00000000开始。协议中规定,最多可以配置4个通用目的的区域(General-purpose area)去存储一些敏感数据或者一些其他用途。不过这些区域大小有上限,可以通过查阅ECSD159:157来确定。一部分用户区域也可被配置成具有增强工艺特点的区域从而使他们与默认存储空间区分开来。这种具有增强型特点的区域确保了更高的性能和可靠性。增强型区域用SLC NAND来做比较合适,默认的用MLC NAND。Boot区和RPMB区的大小和属性不可更改。用户区的增强区和通用目的区的大小和属性可以通过一次性编程设置,一旦编程则无法更改。主机可以指定增强型区域的开始地址。下
35、图是一个分区的例子。图20 一种分区的例子分区流程图如图所示。系统进入Transfer Mode模式后,才可进行分区操作。图21 分区过程流程图 3.1.4初始化模式 eMMC卡想要正常工作,必须先完成初始化过程,在初始化过程中,系统会完成对eMMC卡的识别,确定设备工作的电压范围和使用模式,向设备分配关联卡地址(RCA,一个系统可能有多块eMMC)。在初始化过程中所有的数据通信都只在CMD信号线上。下图为设备初始化流程图:图22 设备初始化流程图初始化详细过程:进入Idle State的方式只有两种,一种是通过Power On即上电进入,另外一种是通过CMD0切换。不过需要注意的是,CMD0
36、无法让卡从Inactive State进入Idle State。进入Idle后,所有的寄存器都复位成默认值,RCA也变成了0x0001。而此时,CLK需要设置成fOD的范围,即0-400kHz,以进行下面的流程。虽然进入到了Idle State,但是上电复位过程并不一定完成了,这主要靠读取OCR的busy位来判断。在Idle State只有CMD1和CMD58是合法指令。所以在进入Idle State之后,除了让卡从Idle State转变成Ready State,别无他途。 Idle State进入Ready State是通过CMD1完成的,只有发送带有OCR格式电压参数的CMD1
37、给MMC卡后,busy位为且电压匹配,才进入Ready State。 如果回复的OCR中的busy位一直为0,则说明上电复位仍没有完成,则需要一直发送CMD1,直到busy位为1。如果MMC卡收到CMD1的电压参数不匹配,则进入Inactive State,不会对后续过程进行任何响应。如果Host的IO电压可调整,那调整前需要读取OCR。为了不使卡误进入Inactive State,可以给MMC卡发送不带参数的CMD1,这样可以仅获取OCR寄存器,而不会改变卡的状态。在识别过程中,Host不能改变电压范围,如果需要修改,则修改之后必须重新启动识别流程。在Ready State下,发送
38、CMD2指令,可以使MMC卡则进入Identification State。CMD2如果发送成功,Host得到CID寄存器的值,而MMC卡则进入Identification State。若不成功,则卡状态不变。 在单卡识别的情况下,只要fOD在范围内,且上拉正确,应该可以准确无误的收到CID的值,并进入Identification State。这一节最复杂之处在于多卡识别:MMC卡的多卡CMD和DATA是共用的,它们采用一种特殊的方式来完成识别和操作。过程如下:在idle->ready过程中,Host用电压范围这一条件,首先让不符合电压条件的卡进入Inactive State。
39、在ready->ident过程中,CMD2指令可以让所有的卡发送CID值,所有卡的CMD都接在一起,这样回传CID的时候,相当于做了一个或操作,与CMD上或出来的结果不一致的卡就不会继续发送(这里是需要卡的硬件有识别支持),而停留在ready。这里CID的唯一性发挥了作用,这样每次CMD2操作之后,仅有一张卡进入ident,其余的都停留在ready而不能响应CMD3。在ident->stby过程中,上述过程中筛选出的唯一卡独占了CMD线,完成了RCA分配,进入stby。进入stby的卡不再响应CMD2和CMD3。识别完一张卡之后,因为其他的卡还停留在ready,这样就可以继续上面的
40、步骤来一张一张的识别卡,最后直到CMD2再没有回应,说明卡都识别完了。完成上面的过程后,每张识别好的卡都进入了stby,而且每张都有自己的RCA,这样之后的操作只需要在命令中带入相应的RCA,就可以对任意的卡进行独立操作了,别的卡是不会响应的。 3.1.5数据传输模式数据传输模式即eMMC的工作模式,在此模式下可实现对eMMC的编程,对存储区属性的设计,数据的读写,擦除,总线的测试等等功能。是eMMC最核心的模式。在此模式工作下的工作框图如下图所示。图23 数据传输模式工作流程图3.1.5.1总线测试及线宽选择总线测试功能只有在SDR模式下有效,在DDR模式下无效。 进入数据传输模式后,需要对
41、总线进行传输测试以便检查总线是否工作正常。在Transfer Mode下,主机通过发出CMD19和CMD14命令来检测总线上引脚的工作状态。首先,主机向设备发送CMD19指令,跟随着一种特殊的数据格式。这些数据会在每一条DAT线上传送。然后,主机发送CMD14命令去要求设备传回刚才数据求反所得的新数据。主机通过比较接受的数据与发送的数据,就可检测出总线工作是否正常。表11 总线测试数据格式设备在接收数据时,检测到开始位后,只接收数据前两位数据,忽略后面所有位,也包括忽略CRC16校验位。同时主机接收数据时,检测到开始位后,只接收数据前两位数据。忽略后面所有位,也包括忽略CRC16校验位。下图是
42、八位总线测试数据及正常结果。表12 8位总线测试范例图24 总线测试时序图在总线测试完毕后,主机可以选择使用信号线的个数,是通过CMD6去配置ECSD183来实现的,复位后默认值是0x00,是一位总线模式。 3.1.5.2读操作当没有数据传输时,DAT0-DAT7处于高电平状态,数据传输封包结构是一位开始位0,接着是数据流,包含了数据和CRC校验码,最后是一位结束位1。数据传输是和时钟同步的。 在SDR模式下,基本的传输单元是Block,它的最大长度被定义在CSD中的READ_BL_LEN。如果READ_BL_PARTIAL被置位,则更小的Block(PARTIAL BLOCK)被允许传输。C
43、MD17指令用来读取一个块的数据,完成后返回Transfer mode模式。在DDR模式中,读取数据块的大小总是512字节,部分块的读取则不被允许。主机可以通过CMD6更改ECSD196的值来选择SDR模式还是DDR模式。CMD18指令用来读取多块数据(READ_MULTIPLE_BLOCK),这条指令有两种用法,一种是开放式读取,即不设置结束标志。一种是预先指定了要读取块的个数,读取完自动结束回到Transfer mode。开放式读取,即要读取的数据块个数不被定义,设备会持续读取数据直到收到停止传输指令。预先指定数据块个数,设备会传输要求传输的数据块,传输完毕后自动结束并回到Transfer
44、 Mode,一般情况下没有必要使用停止传输指令。图25 读单块数据 读单块操作开始时,主机先发送CMD16(SET_BLOCKLEN)设置块长度。设备接收后,在发送CMD17(READ_SINGLE_BLOCK)读取数据。图26 单块数据时序图图27 读多块数据流程图读多块操作开始时,主机先发送CMD16(SET_BLOCKLEN)设置块长度,接着发送CMD23(SET_BLOCK_COUNT)指令设置读取块个数,若不设置则为开放式读取,接着发送CMD18指令开始读数据。图28 多块读取时序图注意:CMD17,CMD18设置读取块开始地址时,地址只有32位(4G),对于容量小于2G的卡来说,地
45、址即为每一位地址,对于容量大于2G的卡来说,地址为扇区地址,每个扇区为512B。如果用户要用局部块读操作,则必须事先看CSD寄存器中的READ_BLK_MISALIGNED和READ_BL_PARTIAL是否为0,若不为0则系统不允许局部块读,读数据时读出块大小必须为512B或者CSD中READ_BL_LEN83:80设置的值。 3.1.5.3写操作写操作的数据传输格式与读操作相同,在SDR模式下每个数据块后有一字节的CRC校验,DDR模式下有两字节。设备通过检查CRC校验位来判断接收到的数据是否正确,所以一些传输错误的数据将被舍弃。通常情况下,打断正在写入的过程不会对其他地址中的数据造成影响
46、,但是掉电的风险确实不可控的会造成一定的损失。然而,eMMC应用了一些技术,来平衡写入性能和正在写入过程中掉电的数据保护(我的理解是若不管掉电的风险,则会增强写入性能;若要保持稳定,则会一定程度上降低写入性能)。在DDR模式中,写入数据块大小只能为512B,不支持局部块写入。单块写入方式与读数据类似。多块写入方式有三种,开放式写入,确定块数写入和可靠写入(Reliable Write)。前两种写入方式与读数据类似,不再赘述。可靠写入是事先定义好要写入的块数和可靠写入参数。它与前面的区别是,如果一个数据要写入一个物理地址中,这个物理地址中之前存在数据,那么这个之前存在的数据在新数据没有写完毕前是
47、不会改变的。这个技术确保了物理地址中数据的更新不会留下没有定义的数据。在编程过程中,即使掉电,数据也必须保持有效。这个功能的使用是依靠发送CMD23中设置bit31为1来实现的。在可靠性写入中:所有块长度均为512B,不受设置块长度影响。可靠性写入必须是与扇区对齐的,不能任意指定地址,如果没有对齐,则bit19错误位将会置1并且终止写入操作。如果用户要用局部块写入操作,则必须事先看CSD寄存器中的WRITE_BLK_MISALIGNED是否为0,若不为0则系统不允许局部块写入,写入时写入块必须与物理地址对齐。写单块数据流程与写多块数据流程类似,下面只说明写多块数据流程及时序。写多块数据的顺序为
48、,首先,主机发送CMD16指令设置块长度,如果块长度不需要改变,则这步可以省略。接着发送CMD25(MULTIPLE_BL_WRITE),如果这两步设备均接收不响应错误,则进入数据传输模式。在每个块传输完毕后,设备会向主机发送回复供主机检测CRC,如果CRC正确,且设备处于不忙状态,主机将会发送下一块数据。当发送数据块时,主机也可以查询设备的状态寄存器去对设备存在的任何新的状态信息进行检测。最后结束需要停止指令。图29 多块写入流程图图30 多块写入时序图 3.1.5.4擦除操作(Erase、Trim、Discard )设备的擦除操作也是写操作中必不可少的一部分。eMMC中可擦除单元叫做“Er
49、ase Group”。Erase Group的大小是每个设备特殊的参数,如果ERASE_GROUP_DEF不使能,它就被定义在CSD寄存器中,如果ERASE_GROUP_DEF使能,则它被定义在ECSD中。被擦除后的单元可能被擦除成0,也可能被擦除成1,这依赖于不同的存储技术,这个值在ECSD中会被定义。表11 ERASE_GROUP_DEF寄存器定义当ERASE_GROUP_DEF(EXT_CSD175)=0时 size of erasable unit = (ERASE_GRP_SIZE + 1) * (ERASE_GRP_MULT + 1) size of write protect =
50、 (WP_GRP_SIZE+1)当ERASE_GROUP_DEF(EXT_CSD175)=1时 size of erasable unit = 512Kbyte × HC_ERASE_GRP_SIZE size of write protect = 512KB * HC_ERASE_GRP_SIZE * HC_WP_GRP_SIZE 一旦擦除指令完成,设备中相应的地址范围中的单元将会被擦除成0或者1,这依赖于不同的存储技术。主机能够擦除一连串的Erase Group。开始擦除工作分为三个步骤,第一步,主机发送CMD35(ERASE_GROUP_START)命令来确定擦除的开始地址。第
51、二步发送CMD36定义结束地址。第三步,发送CMD38命令开始擦除操作。地址范围与写入时定义相同,在容量小于2GB时,地址范围指的是字节范围,在容量大于2GB时,地址范围指的是扇区范围。如果设备没有按照这三步的顺序接收到指令,设备就会将ERASE_SEQ_ERROR位置1(这位在状态寄存器中),然后重置擦除过程。如果主机提供的地址超出地址范围,设备将会拒绝擦除命令,并将ADDRESS_OUT_OF_RANGE位置1,并且重置擦除过程。如果在擦除过程中一个不是擦除操作命令被主机发出,则设备会将ERASE_RESET位置1,并且重置擦除过程,执行最后一条指令。不过,没有被设备编址的指令是不会结束擦除操作的,即此命令无效。如果擦除操作地址包含了写保护的地址,这些地址上的数据将会被保护,只有那些没有写保护的块会被擦除。此时状态寄存器中的WP_ERASE_SKIP位将会置1.擦除操作像写操作一样,在进行过程中设备会将DAT0置0.擦除操作耗时较长,所以主机可以发送CMD7命令对该设备取消选中。图31 擦除操作流程图eMMC的擦除操作分为四种方式,ERASE,TRIM,DISCARD,SANTIZE四种,这四种方式有一定的区别。擦除命令EraseTrimDiscardSanitizeargument 0x00000000 0x00000001 0x00000003 N/Auni
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车租赁合同终止格式合同
- 公路货物运输合同风险防范与应对
- 战略合作融资合同样本
- 度畜牧产品购销合同协议
- 12《祝福》教学设计2024-2025学年高一语文下学期(必修下册)
- 养老院护理服务合同样本
- 商业拓展合作合同转让合同
- 办公用品年度采购合同范本
- 婚前合同关于子女抚养费的责任划分
- 6 我们神圣的国土 教学设计-2024-2025学年道德与法治五年级上册统编版
- 2025年供应链管理公司合作项目协议书
- 2025年度度假村景观设计及施工一体化合同
- 《如何规划养禽场》课件
- 2024-2025学年云南省昆明市盘龙区三年级(上)期末数学试卷(含答案)
- 物业公司行政人事部职责
- 医疗健康行业保密免责协议书
- 《设计思维与方法》课件
- 第一课走进人工智能 说课稿 2023-2024学年浙教版(2023)初中信息技术八年级下册
- 体检中心前台接待流程
- 2024年大唐集团招聘笔试试题及答案-
- 徐州生物工程职业技术学院单招职业技能测试参考试题及答案
评论
0/150
提交评论