通俗的来说,eMMC=NAND闪存+闪存控制芯片+标准接口封装。本文大致做下边几个小结:

(1)MMC与Host之间的连接

连接由下图可见

(2)eMMC和NAND Flash与Host的连接比较

NAND Flash直接接入Host

NAND Flash 直接接入 Host 时,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系统来做坏块管理、ECC等的功能。

由eMMC接入Host

eMMC则在其内部集成了 Flash Controller,包括了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。相比于直接将NAND Flash接入到Host 端,eMMC屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 NAND Flash 进行特殊的处理。同时,eMMC通过使用Cache、Memory Array 等技术,在读写性能上也比 NAND Flash要好很多。

(3)Flash Controller与NAND Flash的连接

由上知MMC相较于NAND Flash,内部集成了 Flash Controller,其与存储介质大致连接如图。

(4)关于Flash Controller/MMC Controller

包括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。

(6)eMMC工作电压和上电过程

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

High Voltage MultiMediaCard,工作电压为2.7V~3.6V。

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时钟才会调整到更高的正常工作频率。我所使用的MMC测得正常工作时钟频率为50MHz。
---------------------

转载于xjw1874 的https://blog.csdn.net/xjw1874/article/details/81505967?utm_source=copy

EMMC与NAND FLASH核心对比相关推荐

  1. nand flash和nor flash区别_从闪存的发展历史看,eMMC与NAND Flash有什么区别与联系?...

    如今,eMMC已发展成为当红的便携移动产品解决方案之一,之前宏旺半导体有说过eMMC的工作原理,今天跟大家聊聊eMMC与NAND Flash有什么区别和联系. 首先我们要认识Flash,Flash分为 ...

  2. emmc、Nand flash、Nor flash之间的区别

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

  3. NAND Flash 接口对比

    好久不写博客了,似乎已经是遥远的过去,希望能够找回过去,回去再看看那些人. 本文介绍NAND FLASH接口,搜集资料整理而来. 1.SDR和DDR 1.1 SDR(Single Data Rate) ...

  4. emmc flash和nand flash

    都是flash闪存,简单来说就是 emmc在nand flash基础上多了个flash controller控制器. 物理特性上来说,emmc的读写也更快. 没了.

  5. NAND Flash 和 eMMC 的区别

    eMMC全称为embeded MultiMedia Card.eMMC为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机和移动嵌入式产品为主. 1.NAND Flash 是一种存储介质,要在上面 ...

  6. Linux NAND Flash调试

    很久没接触过 nandflash 驱动,最近工作又摸了,于是顺便整理总结一下.nandflash 在我看来算是比较落后的存储设备,所以文章里没有太多细节的东西,更多的是一些开发思路和经验,希望能帮助到 ...

  7. 创龙TI KeyStone C66x多核定点/浮点TMS320C6678 DSP开发板处理器、NAND FLASH、NOR FLASH

    TL6678-EasyEVM是广州创龙基于SOM-TL6678核心板而研发的一款多核高性能DSP开发板.开发板采用核心板+底板方式,底板采用沉金无铅工艺的四层板设计,尺寸为200mm*106.65mm ...

  8. SPI Flash,NOR Flash,NAND Flash,eMMC对比

    快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器.这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存 ...

  9. SRAM SROM DRAM DROM DDR NAND FLASH EMMC的区别

    SRAM SROM DRAM DROM DDR NAND FLASH EMMC的区别 RAM(Random Access Memory)的全名为随机存取记忆体,它相当于PC机上的移动存储,用来存储和保 ...

最新文章

  1. linux网络命令1
  2. sql按相似度模糊查询实例
  3. 从“连锁”到“新联锁”,尚美生活如何引领酒店行业变革?
  4. 深度学习英文文献_文献速递 | 预测术后30天死亡率的深度学习模型
  5. LibreOJ #6207. 米缇(杜教筛 + 拉格朗日插值)
  6. linux delete内存不下降_linux内存分配管理
  7. Matlab之数据处理
  8. 爬虫豆瓣top250
  9. matlab的简单使用-matlab画f(x)=x^2+y^2的图像
  10. 生产排程php,生产管理中的生产排程排产流程建模
  11. 新个税计算html、以及java源代码
  12. 怎么提取图片上的文字?非常方便
  13. 关于5G通信技术,你了解多少?
  14. javascript高级一
  15. Web前端之布局模型
  16. Win11老是弹出输入体验怎么办
  17. 【Pytorch学习笔记三】Pytorch神经网络包nn和优化器optm(一个简单的卷积神经网络模型的搭建)
  18. c语言中转义字符efg,C语言试题.docx
  19. 极简SSM框架【图书管理系统】
  20. 捷报连连 | 拓保雇主品牌建设屡获认可,荣获“最爱人才雇主奖”

热门文章

  1. edittext怎么输入默认内容覆盖_Linux Shell 输入与输出重定向
  2. ofbiz mysql 序列_ofbiz+mysql安装求教
  3. linux如何在a休息时运行b,Linux下如何优雅地修正命令?
  4. springboot实现多线程service实现
  5. 从零开始学习docker(十六)Swarm mode 创建集群
  6. 【Data Mining】机器学习三剑客之Numpy常用用法总结
  7. php 枚举类型比较,java 枚举类比较是用==还是equals?
  8. 用python绘制好看的图形_如何使用Python绘制好word cloud,怎么,画出,好看,的,词,云图...
  9. 09-百度ai图片识别
  10. 计算机控制系统从本质上看,计算机控制系统测试题.doc