MMC 和 eMMC 的区别
1. MMC
MMC(MultiMediaCard)是一种接口协议,定义了符合这一接口的内存器,称为 MMC 储存体或 MMC 卡。它是一种非易失性存储器件,广泛应用于消费类电子产品中。
1.1 外观及引脚定义
- MMC卡共有七个触电(引脚),分为两种操作模式,分别为 MMC 模式与 SPI 模式。
- 尺寸:
(24mm*32mm*1.4mm)
- 操作电压:2.7V ~ 3.6V
- MMC卡 时钟频率是 20MHz,比 SD卡 少两个触电,只有1位数据带宽,所以最大传输速率为2.5MB/s。
2. eMMC
eMMC(Embedded MultiMedia Card)是 MMC 的一个扩展,专为嵌入式系统设计,主要用于手机或平板电脑等产品。eMMC 在封装中集成了一个控制器,提供标准接口并管理闪存,简化了终端产品存储器的设计。它由一个嵌入式存储解决方案组成,包括 MMC 接口、快闪存储器设备及主控制器,所有组件都在一个小型的 BGA 封装中。eMMC 的接口速度可以达到每秒400MB,具有快速、可升级的性能。
总结来说,MMC 是一种接口协议,而 eMMC 是基于该协议的嵌入式存储解决方案,包含了控制器和封装,适用于嵌入式系统中的存储需求。
3. emmc 和 Nandflash 的区别和联系
eMMC 是将 Nand Flash 和 Flash Controller 和 eMMC 接口等封装在一起的小型的存储系统。也就是说 eMMC 当中包含 NandFlash。
eMMC 将不同的 NandFlash 进行了统一的封装,留给我们开发者的是 eMMC 协议 和 eMMC 接口。
这样做的好处是:
3.1 简化系统存储设计,降低开发复杂度
在以前,每次 NAND 技术换代的时候,手机客户端也要重新设计,手机制造商需要选择新的与 NAND flash 匹配的 soc 芯片,而 soc 厂商一般要针对这款 NAND flash,重新设计 soc 芯片(主要是内部的 nand flash ccontroller),这种方式十分麻烦。
在推出 emmc 后,soc 厂商只需要在芯片上加上一个可以与 MMC标准通信的控制器(一般叫做 sdmmc controller/sd controller),这个控制器可以支持某种/某几种 eMMC 标准。同时 eMMC 芯片封装好 NAND flash,向外也提供一个统一的 eMMC 接口 (如 eMMC 4.3/4.4),此时只要给 soc 芯片选定好一个 eMMC 接口,连上二者即可通信了。
以前需要双方都进行更换芯片设计,现在只需要 eMMC 卡进行更换即可。
3.2 更新速度快
随着 Nand Flash 制程工艺的不断升级,主控的 Flash Controller 和 FTL 也需要不停的更新,才能支持新的 Nand Flash。
而 eMMC 将 Flash Controller 和 Nand Flash 封装在了一起,屏蔽了由于 Nand Flash 制程工艺而带来的差异,主控的 controller 和 driver 不需要做过多修改就能支持。
3.3 读写性能更好
eMMC 在 Nand Flash 的基础上,加入了 Cache、Memory array 等技术,大大提高了读写速度。
4. eMMC 与 SD卡 有什么不同?
eMMC(Embedded MultiMediaCard)和 SD卡(Secure Digital Card)都是基于 NAND 闪存技术的存储解决方案,但它们在设计、性能、应用和封装等方面有所不同。
以下是 eMMC 与 SD 卡的对比:
对比维度 | eMMC | SD卡 |
---|---|---|
构造 | 嵌入式存储设备,集成在单个芯片中 | 外部存储设备,通过卡槽和卡套安装 |
性能 | 通常比 SD卡 更快,因为不需通过额外的通信层 | 速度低于 eMMC,受限于卡套和卡槽通信 |
应用领域 | 主要用于移动设备和嵌入式系统 | 广泛用于数码相机、智能手机、平板电脑等消费电子产品 |
安全性 | 不支持加密技术 | 采用加密技术保护数据安全 |
成本 | 通常比 SD卡 低,因为不需要额外的卡槽和卡套 | 成本相对较高 |
封装类型 | BGA 封装,焊接在主板上 | 通常为 TF卡 或 SD卡 形式,便于插入和移除 |
接口 | 专用的 eMMC接 口 | 通过 SDIO 接口或 SPI 模式通信 |
根据上述对比,eMMC 通常提供更好的性能和更低的成本,适合作为嵌入式系统的内部存储解决方案。而 SD卡 则因其便携性和通用性,适用于需要外部存储的多种消费电子产品。在选择两者时,应考虑具体的应用场景和性能需求。
4.1 SD卡 的外观及引脚定义
SD卡 为 Secure Digital Memory Card, 即安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备。它在 MMC 的基础上发展而来,增加了两个主要特色:SD卡 强调数据的安全,可以设定所储存的使用权限,防止数据被他人复制;另外一个特色就是传输速度比 2.11 版的 MMC卡 快。
-
两个可选的通信协议:SD 模式和 SPI 模式
-
可变时钟频率:0-25 MHz
-
通信电压范围:2.0-3.6V
-
工作电压范围:2.0-3.6V
-
低电压消耗:自动断电及自动睡醒,智能电源管理
-
数据寿命:10万次编程/擦除
-
尺寸:24mm宽×32mm长×1.44mm厚
-
正向兼容 MMC 卡
-
卡片带电插拔保护
-
具备写保护开关
-
SD卡 运行在 25MHz 的时钟频率上,数据带宽是4位,因此最大传输速率是12.5MB/s(12.5兆字节每秒)。
5. eMMC 在手机上通常如何实现数据读写操作?
eMMC(Embedded MultiMediaCard)在手机上实现数据读写操作的过程涉及多个步骤和协议。
5.1 数据读写流程
- 初始化和配置:手机的操作系统通过发送一系列命令来初始化 eMMC 设备,并配置必要的参数,如分配存储空间和设置工作模式。
- 数据传输:数据传输是以 block 为单位进行的,每个 block 后面跟随一个 CRC(循环冗余检查)校验。无论是读取还是写入操作,都允许单个或多个 block 的传输。对于多 block 传输,会在传输结束时发送一个停止命令(CMD12)。
- 读取操作:手机通过发送读取命令(CMD17 或 CMD18)指定要读取的 block 地址和数量。eMMC 设备响应后,按照指定的顺序发送数据块,并附加相应的 CRC 校验结果。
- 写入操作:手机发送写入命令(CMD24 或 CMD25)指定要写入的 block 地址和数据。eMMC 设备在接收到数据后执行 CRC 校验,并在校验成功后进行数据写入。写入完成后,eMMC 设备通过总线空闲信号(Busy signal)告知手机可以继续发送下一个 block 的数据。
- 错误处理:在数据传输过程中,如果发生错误,eMMC 设备会通过特定的响应命令通知手机。手机根据响应信息决定是否重试或采取其他措施。
5.2 性能优化和保护机制
- eMMC 技术内置了 Flash Controller,负责完成擦写均衡、坏块管理和 ECC 校验等功能,提高了数据的可靠性和存储效率。
- 高速的 eMMC5.1 标准允许实现高达 400MB/s 的顺序读取速度和 200MB/s 的顺序写入速度,这对于提高手机的数据处理速度至关重要。
- eMMC 还支持高级错误校验与修正技术,以及可靠性增强功能,如硬件写保护和闪存控制器保护,确保数据的安全性和稳定性。
这些操作和机制共同确保了 eMMC 在手机上能够高效、稳定地处理数据读写任务。
6. 为什么 eMMC 适合嵌入式系统使用而不是普通 MMC?
eMMC(Embedded MultiMediaCard)是专门为嵌入式系统设计的存储解决方案,相比于普通的 MMC(MultiMediaCard),eMMC 具有以下优点,使其更适合嵌入式系统的使用:
- 集成度高:eMMC 将存储器芯片和控制器芯片集成在一起,形成单一的芯片,这种设计可以减小整体尺寸,提高集成度,降低成本。
- 专用接口:eMMC 使用标准 MMC 接口,这种接口专为嵌入式系统设计,可以提供稳定的数据传输和更好的电源管理。
- 性能优化:eMMC 内置了 ECC(Error Correction Code)和数据备份功能,这些技术提高了数据的可靠性,并且相对于普通 MMC,eMMC 的读写速度更快,尽管略逊于独立的 Flash 存储器,但对于嵌入式系统而言已经足够使用。
- 定制化分区:eMMC 支持特定的分区设计,如B OOT 分区和 RPMB(Replay Protected Memory Block)分区,这些分区有助于提高系统的启动效率和数据安全性。
- 功耗管理:eMMC 设计时考虑了低功耗的需求,适合用于移动设备和嵌入式系统,其功耗可能相对较低,有助于延长电池寿命。
- 成本效益:由于标准化生产和大规模流通,eMMC 的成本相对较低,适合大规模部署在消费电子和工业嵌入式系统中。
综上所述,eMMC 的高集成度、专用接口、性能优化、定制化分区、功耗管理和成本效益使其成为嵌入式系统的理想选择。普通 MMC 由于缺乏这些特性,通常不适用于对性能和集成度有较高要求的嵌入式系统。