eMMC硬件电路设计

  • 1 eMMC简介
  • 2 总体架构
    • 2.1 NAND Flash
    • 2.2 eMMC控制器
  • 3 推荐电路

1 eMMC简介

eMMC (Embedded Multi Media Card)是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格。由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器设备及主控制器。所有都在一个小型的BGA 封装。接口速度高达每秒52MBytes,eMMC具有快速、可升级的性能。同时其接口电压可以是1.8V或者是3.3V。它是在NAND闪存芯片的基础上,额外集成了控制器,并将二者“打包”封装封成一颗BGA芯片,从而减少了对PCB主板的空间占用,也是移动设备中普及度最高的存储单元。
嵌入式多媒体存储卡 eMMC 是一种管理型 Nand Flash。eMMC 芯片实际上是一个封装继承了 Nand Flash 和控制 Flash 的控制器,控制器把坏块管理( https://www.cnblogs.com/Christal-R/p/7262503.html)、ECC 校验以及损耗均衡等一些 Flash 具备的管理功能集成到芯片里,然后对外的接口采用的是标准的 MMC(多媒体存储卡)接口,用户只需要根据接口的协议,开发控制器就能操作芯片。换句话说, eMMC 封装了 Flash,里面有对 Flash 进行操作的控制器和符合国际标准的封装接口,所有都在一个小型的 BGA 封装。接口速度高达每秒 400MBytes,eMMC 具有快速、可升级的性能。同时其接口电压可以是 1.8V 或者是 3.3V。它的特点就是容量大,数据传输快,尺寸小,开销很小。eMMC 涵盖了广泛的应用领域,应用于智能手机、数码相机、掌上电脑、数码录像机、MP3 播放器等设备中,有针对性的特点是在较低的成本价格下具有高流动性和高性能。eMMC5.0 的协议与 eMMC 低版本例如 4.5,4.4 等的区别就在于读写速度有区别。低版本的不支持 HS200 和 HS400 的速度,四点几的现在基本上停产,选用 eMMC5.0 的协议。
EMMC 是封装和引脚都是标准的。就叫 EMMC 标准, 符合 EMMC 接口的存储芯片就叫 EMMC 芯片。这个标准体现在至少三个方面:物理封装、硬件电平和脚位、软件时序。所以 EMMC 芯片,不管是哪家厂家的,不管是多大容量的,都可以直接替换使用。因为设计 EMMC 标准的时候就已经考虑到这种兼容和替换了。所以 EMMC 解决了 Nand 的一个大问题,就是不同厂家和容量的存储芯片之间的替换问题,这个非常厉害。因为兼容可以方便备货,方便采购,方便替换,所以极大降低了产品设计和备货上的难度,极大降低了成本。

2 总体架构

eMMC 内部是把NAND Flash芯片(Flash内存阵列) 、Device Controller芯片(也叫Flash控制器、eMMC控制器)封装在一块。

2.1 NAND Flash

eMMC 在内部对 NAND Flash 划分了几个主要区域,如下所示:

分类 描述
BOOT Area Partition 1 & 2 此分区主要是为了支持从 eMMC 启动系统而设计的。该分区的数据,在 eMMC 上电后,可以通过很简单的协议就可以读取出来。同时,大部分的 SOC 都可以通过 GPIO 或者 FUSE 的配置,让 ROM 代码在上电后,将 eMMC BOOT 分区的内容加载到 SOC 内部的 SRAM 中执行。
RPMB Partition RPMB 是 Replay Protected Memory Block 的简称,它通过 HMAC SHA-256 和 Write Counter 来保证保存在 RPMB 内部的数据不被非法篡改。在实际应用中,RPMB 分区通常用来保存安全相关的数据,例如指纹数据、安全支付相关的密钥等。
General Purpose Partition 1~4 此区域则主要用于存储系统或者用户数据。 General Purpose Partition 在芯片出厂时,通常是不存在的,需要主动进行配置后,才会存在。
User Data Area 此区域则主要用于存储系统和用户数据。User Data Area 通常会进行再分区,例如 Android 系统中,通常在此区域分出 boot、system、userdata 等分区。

2.2 eMMC控制器

NAND Flash 直 接 接 入 Host 时 , Host 端 通 常 需 要 有 NAND FlashTranslation Layer, 即 NFTL 或者 NAND Flash 文件系统来做坏块管理、 ECC等的功能。
eMMC 则在其内部集成了 Flash Controller,用于完成擦写均衡、坏块管理、 ECC 校验等功能。相比于直接将 NAND Flash 接入到 Host 端, eMMC屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的复杂度,让 Host端专注于上层业务, 省去对 NAND Flash 进行特殊的处理。 同时, eMMC 通过使用 Cache、 Memory Array 等技术,在读写性能上也比 NAND Flash 要好很多。

3 推荐电路

推荐电路1

推荐电路2

名称 描述
CLK 用于同步的时钟信号
DATA Strobe 此信号是从 Device 端输出的时钟信号,频率和 CLK 信号相同,用于同步从 Device 端输出的数据。该信号在 eMMC 5.0 中引入。
CMD 此信号用于发送 Host 的 command 和 Device 的 response。
DATA0-7 eMMC的双向数据总线,用于主机和设备之间的数据通信。它工作在应对快速的命令传输的推挽模式。DAT线在某一时刻只能支持单向传输,只能被设备或eMMC HOST一方控制。默认下,当用户上电或者复位的时候,仅能用DAT0一根线传输数据。同时,用户可以自己配置想要使用的DAT线的数量,也可以选择4根或者8根。当用户选择4根时,eMMC设备会断DAT1-3的内部上拉,如果用户选择的是8根,那么同理会断开DAT1-7的上拉。

下一篇…

D-009 eMMC电路设计相关推荐

  1. 数字电路硬件设计系列(十八)之eMMC电路设计

    针对设计过程中的问题,如有疑问,欢迎留言评论!点我返回目录 1 简介 eMMC(Embedded Multi Media Card)是嵌入式多媒体卡的简称,主要是针对只能手机和平板电脑特点二设计的.它 ...

  2. eMMC介绍及硬件电路设计

    一. eMMC介绍 1. eMMC是什么 eMMC (Embedded Multi Media Card)是MMC协会订立.主要针对手机或平板电脑等产品的内嵌式存储器标准规格. 由一个嵌入式存储解决方 ...

  3. 硬件电路设计原理图设计

    叶倾城-硬件原创的个人空间_哔哩哔哩_Bilibili 硬件电路设计原理图设计第二季-1-40课已更新完成啦!!! 第三季硬件电路设计原理图设计敬请期待!感谢大家的支持! 第01课------硬件实战 ...

  4. 电路设计 > eMMC应用和PCB layout布局布线参考设计

    目录 eMMC介绍 eMMC信号大体介绍 EMMC4.5和5.0封装和兼容性对比 EMMC5.0和5.1封装和兼容性对比 PCB Layout建议 PCB layout参考设计 参考设计1 参考设计2 ...

  5. 浅谈 SSD,eMMC,UFS

    这个时候发这篇文章难免有蹭热点的嫌疑..但作为一个计算机体系结构的研究生,在这些名词满天飞的时候,我的好奇心是抑制不住的,想一探这几样技术的究竟.本文不对某一特定事件进行点评,仅从技术角度分析对比一下 ...

  6. linux 查看emmc分区表_如何查看闪存类型?UFS与F2FS简易科普

    年年都有锂电池爆炸的案例,但因为三星Note7,大家补充了很多电池相关的知识.而最近某国内厂商的"闪存门",也带动了一大波关于"闪存类型和文件系统"的科普,但看 ...

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

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

  8. EMMC内存芯片和NAND区别

    eMMC全称为embeded MultiMedia Card.eMMC为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机和移动嵌入式产品为主. 而且eMMC目前是最当红的移动设备本地存储解决方案 ...

  9. 闪存中的NorFlash、NandFlash及eMMC三者的区别

    (转载自http://www.veryarm.com/1200.html) 快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器.这 ...

最新文章

  1. 那篇《中国AI觉醒》的文章,让西方的吃瓜群众们对中国展开了疯狂膜拜…不信你看
  2. oracle和SQLserver数据库中select into 的区别
  3. mysql索引红黑联盟_MySQL索引
  4. Navicat for MySQL在ubuntu下运行没有反应
  5. 概述类的加载器及类加载过程
  6. Shel脚本-初步入门之《03》
  7. kubectl查看node状态_适用于初学者的基本 kubectl 和 Helm 命令 | Linux 中国
  8. 【Python】Sklearn加载load_digits样本数据集
  9. 双11享Go了吗?2017阿里双11在线峰会续写科技盛宴!
  10. 广度优先搜索生成树怎么画_LeetCode0938: 二叉搜索树的范围和
  11. linux at模块,使用kgdb调试linux内核及内核模块
  12. everything下载哪个版本_Everything敏感信息泄露
  13. JQuery操作cookie插件
  14. 将Session写入数据库
  15. 如何在VS2015创建C语言项目
  16. 1.2、logistic回归之极大似然法
  17. 邮件这样写,PK 掉 99% 的同事
  18. 渗透测试_缓冲区溢出
  19. CentOS 6安装教程(图文详解)
  20. 交替性注意力_注意力不足的小朋友通常都是持续性专注力

热门文章

  1. iview构建基本html页面,写前端页面步骤----vue+iview
  2. 什么是数据结构?什么是算法
  3. 西门子S7200plc通信不上实际问题和解决方法
  4. 更新linux yum源,CentOS 更新yum源
  5. NppFTP-Disconnected
  6. vue中控制台报错[WDS] Disconnected的解决办法
  7. Go GUI---lxn/walk 自带demo学习---16.notifyicon通知图标
  8. 战地2服务器怎么虚拟人数,战地2如何修改人数
  9. java中laber字体颜色设置,QLabel:设置文本和背景的颜色
  10. slqdbx mysql_sqldbx下载 v4.3 附sqldbx使用教程