一、定义及区别

emmc:全称为embeded MultiMedia Card,是一种嵌入式非易失性存储器系统,由Nand flash和Nand flash控制器组成,以BGA方式封装在一款chip上。

Nand flash:一种存储数据介质;若要读取其中的数据,需要外接的主控电路。

Nor flash:也是一种存储介质;它的存储空间一般比较小,但它可以不用初始化,可以在其内部运行程序,一般在其存储一些初始化内存的固件代码;

这里主要重点讲的是emmc 和Nand flash 之间的区别,主要区别如下:

(1)、在组成结构上:emmc存储芯片简化了存储器的设计,将NAND Flash芯片和控制芯片以MCP技术封装在一起,省去零组件耗用电路板的面积,同时也让手机厂商或是计算机厂商在设计新产品时的便利性大大提高。而NAND Flash仅仅只是一块存储设备,若要进行数据传输的话,只能通过主机端的控制器来进行操作,两者的结构图如下:

(2)、在功能上:eMMC则在其内部集成了 Flash Controller,包括了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。相比于直接将NAND Flash接入到Host 端,eMMC屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 NAND Flash 进行特殊的处理。同时,eMMC通过使用Cache、Memory Array 等技术,在读写性能上也比 NAND Flash要好很多。而NAND Flash 是直接接入 Host 端的,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系统来做坏块管理、ECC等的功能。另一方面,emmc的读写速度也比NAND Flash的读写速度快,emmc的读写可高达每秒50MB到100MB以上;

二、emmc的初始化和数据通信

emmc与主机之间通信的结构图:

其中包括Card Interface(CMD,DATA,CLK)、Memory core interface、总线接口控制(Card Interface Controller)、电源控制、寄存器组。

图中寄存器组的功能见下表:

CID: 卡身份识别寄存器 128bit,只读, 厂家号,产品号,串号,生产日期。

RCA: 卡地址寄存器,可写的16bit寄存器,存有Device identification模式由host分配的通信地址,host会在代码里面记录这个地址,MMC则存入RCA寄存器,默认值为0x0001。保留0x0000以用来将all device设置为等待CMD7命令状态。

CSD: 卡专有数据寄存器部分可读写128bit,卡容量,最大传输速率,读写操作的最大电流、电压,读写擦出块的最大长度等。

SCR: 卡配置寄存器, 可写的 64bit 是否用Security特性(LINUX不支持),以及数据位宽(1bit或4bit)。

OCR: 卡操作电压寄存器 32位, 只读,每隔0.1V占1位, 第31位卡上电过程是否完成。

(5)Device Identification Mode和初始化

MMC通过发CMD的方式来实现卡的初始化和数据通信

Device Identification Mode包括3个阶段Idle State、Ready State、Identification State。

Idle State下,eMMC Device会进行内部初始化,Host需要持续发送CMD1命令,查询eMMC Device是否已经完成初始化,同时进行工作电压和寻址模式协商:eMMC Device 在接收到这些信息后,会将OCR的内容(MMC出厂就烧录在里面的卡的操作电压值)通过 Response 返回给 Host,其中包含了 eMMC Device 是否完成初始化的标志位、设备工作电压范围 Voltage Range 和存储访问模式 Memory Access Mode 信息。

如果 eMMC Devcie 和 Host 所支持的工作电压和寻址模式不匹配,那么 eMMC Device 会进入Inactive State。

Ready State,MMC完成初始化后,就会进入该阶段。

在该 State 下,Host 会发送 CMD2命令,获取eMMC Device 的CID。

CID,即 Device identification number,用于标识一个 eMMC Device。它包含了 eMMC Device 的制造商、OEM、设备名称、设备序列号、生产年份等信息,每一个 eMMC Device 的 CID 都是唯一的,不会与其他的 eMMC Device 完全相同。

eMMC Device 接收到CMD2后,会将 127 Bits 的CID的内容通过 Response返回给 Host。

Identification State,发送完 CID 后,eMMC Device就会进入该阶段。

Host 会发送参数包含 16 Bits RCA 的CMD3命令,为eMMC Device 分配 RCA。设定完 RCA 后,eMMC Devcie 就完成了 Devcie Identification,进入 Data Transfer Mode。

注:emmc初始化和数据通信的过程,有点类似USB协议,USB控制器去发送请求给USB设备,以IN包和OUT包的形式去建立与USB设备之间的通信,默认状态下,USB设备也是0地址的,与控制器分配设备地址。(感兴趣的可以看一下USB2.0的协议,主要是第8和9章内容)

三、eMMC工作电压和上电过程

根据工作电压的不同,MMC卡可以分为两类:

High Voltage MultiMediaCard,工作电压为3.3V左右。

Dual Voltage MultiMediaCard,工作电压有两种,1.70V~1.95V和2.7V~3.6V,CPU可以根据需要切换

我所使用的eMMC实测工作电压VCC为2.80V~2.96V,VCCQ为1.70V~1.82V。

其中VCC为MMC Controller/Flash Controller的供电电压,VCCQ为Memory和Controller之间I/O的供电。

上电初始化阶段MMC时钟频率为400KHz,需要等电压调整到它要求的VCC时(host去获取OCR中记录的电压值,上面有说),MMC时钟才会调整到更高的正常工作频率。

注:本博客参考于xjw1874 的https://blog.csdn.net/xjw1874/article/details/81505967?utm_source=copy

emmc、Nand flash、Nor flash之间的区别相关推荐

  1. eMMC/Nand SLC MLC与TLC的区别及擦写寿命

    1.SLC.MLC和TLC三者是闪存的不同类型,三者区别如下:SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格贵(约MLC的3倍以上的价格),约10万次擦写寿 ...

  2. NAND FLASH/NOR FLASH/EMMC等存储器的比较和区别

    首先介绍一下NAND FLASH/NOR FLASH: Nand Flash:Nand Flash存储器是Flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决 ...

  3. nand flash和nor flash的这几点区别你知道吗?

    这篇文章讲解nand flash和nor flash的特点和区别,不涉及存储原理的讲解 (一)Flash简介 FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通地过程序可以修改 ...

  4. EEPROM,NAND,NOR,QSPI FLASH的区别

    一,常见存储器        RAM -- 特点:可以存储数据,掉电丢失,速度快        SRAM:静态存储器 .访问之前无需进行复杂的初始化工作 直接访问        DRAM:动态存储器特 ...

  5. CFI Flash, JEDEC Flash ,Parellel Flash, SPI Flash, Nand Flash,Nor Flash的区别和联系

    CFI Flash, JEDEC Flash ,Parellel Flash, SPI Flash, Nand Flash,Nor Flash的区别和联系 简单说就是,Flash,按照内部访问接口不同 ...

  6. EEPROM, NAND FLASH, NOR FLASH

    EEPROM, NAND FLASH, NOR FLASH 基础:内部结构 EEPROM结构特点 EEPROM基于浮栅管单元(Floating gate transister)的结构. EEPROM ...

  7. NAND Flash系列之NAND与NOR Flash

    Nand Flash与Nor Flash 起始 1988年,Intel于首先开发出NOR flash技术,一经推出很快蚕食掉EPROM和EEPROM的市场.因此可实现程序在片内执行. 1989年,东芝 ...

  8. MTK 驱动 -----(6) eMMC 原理 1 :Flash Memory 简介

    eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Flash Memory. Flash Memory 是一种非易失性的存储器.在嵌入式系统中通常用于存放系统 ...

  9. 【存储器了解 RAM flash和eeprom存储器的区别和作用】

    1.首先我们先了解一下 扇区(Sector),块(Block),页(page)的概念 用一个图最能说明其关系 根据容量大小来说,它们的关系: 页(Page)< 扇区(Sector) < 块 ...

最新文章

  1. Ubuntu系统安装搜狗输入法详细教程
  2. python自学时间-python基础学习时间time和datetime模块
  3. mysql事务的提交和回滚
  4. IT团队应如何保障分支机构的网络安全—Veclou微云
  5. html如何链接sql sever,SQL Server链接服务器
  6. 如何恢复误删的OneNote页面
  7. VS Code 中的文件添加图标的插件vscode-icons
  8. UI实用素材|促销弹出设计
  9. java keypad game,关于java:Custom Keypad – 如何使这些按钮正常工作?
  10. 【Python】简单实现显示图片的高斯和中值滤波效果
  11. 使用WordPress插件Advanced custom fields来扩展文章字段
  12. 链路聚合实现冗余功能综合实验
  13. 人工智能基础知识入门
  14. mysql容灾方案_mysql 容灾 灾备 备份
  15. jQuery中的siblings()的用法
  16. H-WORM家族远控木马分析与处置
  17. python学习 -对象把微信消息撤回后好慌,有了这个你就能看到撤回的消息了(超详解)
  18. Ubuntu18修改host文件加速访问Github
  19. 3dmax软件怎么保存低版本的模型
  20. 【Vue.js】892- Vue 3.0 进阶之动态组件探秘

热门文章

  1. arch模型的思路_ARCH模型的应用
  2. 00. 微服务架构沉思录
  3. 互联网人群画像和你所不知道的真相
  4. Linux iio驱动学习
  5. 应用电路笔记(1)-三极管8550和8050应用
  6. 微信小程序 微信小程序地图搜索、地图搜索点点击出callout气泡标题说明
  7. 下三角形行列式证明推导
  8. 2012中国互联网公司、全球互联网公司最新市值排名(2012.12.06)
  9. python实现微信机器人 + 淘宝客自动领券(二)
  10. 计算机配件地区限制,原来电脑配件包含这么多信息,不懂可以看看!以后再也不怕被坑...