当前位置: 首页 > news >正文

MMC和eMMC的区别

MMC 和 eMMC 的区别

image

1. MMC

MMC(MultiMediaCard)是一种接口协议,定义了符合这一接口的内存器,称为 MMC 储存体或 MMC 卡。它是一种非易失性存储器件,广泛应用于消费类电子产品中。

1.1 外观及引脚定义

image

  • 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 接口。

image

这样做的好处是:

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 卡的对比:

对比维度eMMCSD卡
构造嵌入式存储设备,集成在单个芯片中外部存储设备,通过卡槽和卡套安装
性能通常比 SD卡 更快,因为不需通过额外的通信层速度低于 eMMC,受限于卡套和卡槽通信
应用领域主要用于移动设备和嵌入式系统广泛用于数码相机、智能手机、平板电脑等消费电子产品
安全性不支持加密技术采用加密技术保护数据安全
成本通常比 SD卡 低,因为不需要额外的卡槽和卡套成本相对较高
封装类型BGA 封装,焊接在主板上通常为 TF卡 或 SD卡 形式,便于插入和移除
接口专用的 eMMC接 口通过 SDIO 接口或 SPI 模式通信

根据上述对比,eMMC 通常提供更好的性能和更低的成本,适合作为嵌入式系统的内部存储解决方案。而 SD卡 则因其便携性和通用性,适用于需要外部存储的多种消费电子产品。在选择两者时,应考虑具体的应用场景和性能需求。

4.1 SD卡 的外观及引脚定义

SD卡 为 Secure Digital Memory Card, 即安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备。它在 MMC 的基础上发展而来,增加了两个主要特色:SD卡 强调数据的安全,可以设定所储存的使用权限,防止数据被他人复制;另外一个特色就是传输速度比 2.11 版的 MMC卡 快。

image

  • 两个可选的通信协议: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 数据读写流程

  1. 初始化和配置:手机的操作系统通过发送一系列命令来初始化 eMMC 设备,并配置必要的参数,如分配存储空间和设置工作模式。
  2. 数据传输:数据传输是以 block 为单位进行的,每个 block 后面跟随一个 CRC(循环冗余检查)校验。无论是读取还是写入操作,都允许单个或多个 block 的传输。对于多 block 传输,会在传输结束时发送一个停止命令(CMD12)。
  3. 读取操作:手机通过发送读取命令(CMD17 或 CMD18)指定要读取的 block 地址和数量。eMMC 设备响应后,按照指定的顺序发送数据块,并附加相应的 CRC 校验结果。
  4. 写入操作:手机发送写入命令(CMD24 或 CMD25)指定要写入的 block 地址和数据。eMMC 设备在接收到数据后执行 CRC 校验,并在校验成功后进行数据写入。写入完成后,eMMC 设备通过总线空闲信号(Busy signal)告知手机可以继续发送下一个 block 的数据。
  5. 错误处理:在数据传输过程中,如果发生错误,eMMC 设备会通过特定的响应命令通知手机。手机根据响应信息决定是否重试或采取其他措施。

5.2 性能优化和保护机制

  • eMMC 技术内置了 Flash Controller,负责完成擦写均衡、坏块管理和 ECC 校验等功能,提高了数据的可靠性和存储效率。
  • 高速的 eMMC5.1 标准允许实现高达 400MB/s 的顺序读取速度和 200MB/s 的顺序写入速度,这对于提高手机的数据处理速度至关重要。
  • eMMC 还支持高级错误校验与修正技术,以及可靠性增强功能,如硬件写保护和闪存控制器保护,确保数据的安全性和稳定性。

这些操作和机制共同确保了 eMMC 在手机上能够高效、稳定地处理数据读写任务。

6. 为什么 eMMC 适合嵌入式系统使用而不是普通 MMC?

eMMC(Embedded MultiMediaCard)是专门为嵌入式系统设计的存储解决方案,相比于普通的 MMC(MultiMediaCard),eMMC 具有以下优点,使其更适合嵌入式系统的使用:

  1. 集成度高:eMMC 将存储器芯片和控制器芯片集成在一起,形成单一的芯片,这种设计可以减小整体尺寸,提高集成度,降低成本。
  2. 专用接口:eMMC 使用标准 MMC 接口,这种接口专为嵌入式系统设计,可以提供稳定的数据传输和更好的电源管理。
  3. 性能优化:eMMC 内置了 ECC(Error Correction Code)和数据备份功能,这些技术提高了数据的可靠性,并且相对于普通 MMC,eMMC 的读写速度更快,尽管略逊于独立的 Flash 存储器,但对于嵌入式系统而言已经足够使用。
  4. 定制化分区:eMMC 支持特定的分区设计,如B OOT 分区和 RPMB(Replay Protected Memory Block)分区,这些分区有助于提高系统的启动效率和数据安全性。
  5. 功耗管理:eMMC 设计时考虑了低功耗的需求,适合用于移动设备和嵌入式系统,其功耗可能相对较低,有助于延长电池寿命。
  6. 成本效益:由于标准化生产和大规模流通,eMMC 的成本相对较低,适合大规模部署在消费电子和工业嵌入式系统中。

综上所述,eMMC 的高集成度、专用接口、性能优化、定制化分区、功耗管理和成本效益使其成为嵌入式系统的理想选择。普通 MMC 由于缺乏这些特性,通常不适用于对性能和集成度有较高要求的嵌入式系统。

相关文章:

MMC和eMMC的区别

MMC 和 eMMC 的区别 1. MMC MMC(MultiMediaCard)是一种接口协议,定义了符合这一接口的内存器,称为 MMC 储存体或 MMC 卡。它是一种非易失性存储器件,广泛应用于消费类电子产品中。 1.1 外观及引脚定义 MMC卡共有七个…...

亚马逊爬虫(Amazonbot)IP地址,真实采集数据

一、数据来源: 1、这批亚马逊爬虫(Amazonbot)IP来源于尚贤达猎头公司网站采集数据; ​ 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“Amazonbot”和IP核…...

Spring Boot(八十四):集成Thumbnailator来生成缩略图

1 Thumbnailator简介 Thumbnailator是一个用于Java的缩略图生成库。通过Thumbnailator提供的流畅接口(fluent interface)的方式可以完成复杂的缩略图处理任务,无需访问Image I/O API并通过Graphics2D对象手动操作BufferedImages。 2 代码示例 2.1 引入依赖 <dependency&g…...

MySQL基础操作全攻略:增删改查实用指南(上)

本节目标&#xff1a; NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列&#xff08;或两个列多个列的结合&#xff09;有唯一标 识&am…...

SAP MM学习笔记 - 豆知识02 - MR21 修改物料原价,MM02 修改基本数量单位/评价Class,MMAM 修改物料类型/评价Class

上一章讲了一些豆知识。比如 - MM50 批量扩张品目 - XK05/06 Block/消除供应商 - MM06/MM16 品目消除 - SE11/SE16/SE16/SE16N/SE16H/DB02 等查看常用的操作Table和数据的T-code SAP MM学习笔记- 豆知识01 - MM50 批量扩张&#xff0c;XK05/XK06 Block/消除供应商&#xf…...

谷粒商城实战笔记-126-全文检索-ElasticSearch-整合-测试保存

文章目录 一&#xff0c;谷粒商城实战笔记-126-全文检索-ElasticSearch-整合-测试保存1&#xff0c;在Elasticsearch的配置类中增加通用设置2&#xff0c;索引数据3&#xff0c;验证 一&#xff0c;谷粒商城实战笔记-126-全文检索-ElasticSearch-整合-测试保存 1&#xff0c;在…...

flutter开发环境搭建与android studio 安装配置

flutter开发环境搭建与android studio 安装配置 安装 android studio 下载安装 Android Studio 开发工具 Android Studio官网安装的时看到配置路径就换成自己其他盘的路径即可&#xff0c;其他的一路下一步就ok安装完毕&#xff0c;运行打开缺少 android sdk 按照提示下载即可…...

postgresql 字符串 替换

postgresql 字符串 替换 在PostgreSQL中&#xff0c;可以使用replace()函数来替换字符串中的某个部分。该函数的语法如下&#xff1a; REPLACE(string text, from text, to text) 其中&#xff1a; string 是要进行替换操作的原始字符串。 from 是原始字符串中需要被替换掉的…...

如何强化学习神经网络

强化学习&#xff08;Reinforcement Learning, RL&#xff09;神经网络是一种通过奖励和惩罚机制来学习策略的方法&#xff0c;适用于各种复杂的决策问题。以下是强化学习神经网络的一些主要步骤和方法&#xff1a; 1. 了解基本概念 环境&#xff08;Environment&#xff09;…...

Hadoop未授权访问漏洞

Hadoop未授权访问漏洞 Hadoop是一个由Apache基金会所开发的分布式系统基础架构&#xff0c;由于服务器直接在开放了Hadoop机器HDFS的50070web端口及部分默认服务端口&#xff0c;黑客可以通过命令行操作多个目录下的数据&#xff0c;如进行删除&#xff0c;下载&#xff0c;目…...

Python中json模块的编码和解码

在Python中&#xff0c;可以用json模块处理JSON的编码和解码问题。json的全程是 javascript object notation, 翻译一下就是javascritpt 对象表示法。json是一种轻量级的数据交换格式&#xff0c;容易阅读和编写&#xff0c;支持的数据类型有&#xff1a;字符串、数字、数组和对…...

【Linux】文件变身大作战:Linux下的文件重命名艺术

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件变身大作战&#xff1a;Linux下的文件重命名艺术 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法…...

字节的存储和字符的存储

字节的存储 内存中的存储 基本数据类型&#xff1a; 在Java中&#xff0c;byte 类型占用 1 个字节&#xff08;8 位&#xff09;。它的取值范围是从 -128 到 127。存储在内存中的 byte 数据可以直接操作&#xff0c;例如通过数组或变量访问。 数据结构&#xff1a; byte 数组…...

Markdown插入Base64格式的图片,无需图床,稳定保存

Markdown插入Base64格式的图片&#xff0c;无需图床&#xff0c;稳定保存 我是一个Markdown的爱好者&#xff0c;转存图片是MD经常出问题的地方&#xff0c;因为MD不像其他富文本编辑器&#xff0c;将图片内嵌到文件中&#xff0c;而是用链接的形式引用&#xff0c;或网络链接…...

weblogic 连接gaussdb测试数据源是否联通

文章目录 1. gaussdb创建远程连接用户和数据库2. weblogic构建GaussDB源数据库3. 测试结果查询注意 weblogic中jar包已经放入lib目录中gaussdb已经创建可以连接登录的用户和数据库1. gaussdb创建远程连接用户和数据库 新建用户和数据库连接客户端Gauss=# create user lily pas…...

如何成为全域运营商?掌握这2种申请方式就够了!

随着全域概念的兴起&#xff0c;全域运营商的职业前景和收益空间逐渐显现&#xff0c;并迅速成为了热门创业赛道中的一份子&#xff0c;连带着如何成为全域运营商等入局方式相关话题也成为了众多创业者热议的焦点。 不过&#xff0c;从市场现状来看&#xff0c;作为涵盖公域和私…...

@ConfigurationProperties加在方法上

ConfigurationProperties注解通常用于将外部配置文件&#xff08;如application.properties或application.yml&#xff09;中的属性映射到Java类中。它通常加在类上&#xff0c;但也可以加在方法上。加在方法上时&#xff0c;通常与Bean注解一起使用&#xff0c;以便将配置属性…...

使用CUBEMX配置的USB大容量存储设备主机库获取LUN数量的不严谨代码纠正

最近在使用usb主机库驱动U盘直接进行扇区读写。 发现MSC库中获取LUN相关代码有问题 代码如下 其中 status USBH_MSC_BOT_REQ_GetMaxLUN(phost, (uint8_t *)(void *)&MSC_Handle->max_lun); MSC_Handle->max_lun (MSC_Handle->max_lun > MAX_SUPPORTED_L…...

合并重叠的区间

这一题不能用差分数组&#xff0c;因为 [1 , 4] [5, 6] 这个就会被合并&#xff0c;正确的做法就是先排序 bool cmp(vector<int> a, vector<int> b) {if (a[0] < b[0]) return 1;if (a[0] b[0]) return a[1] < b[1];return 0; } class Solution { public:ve…...

docker和运维

创建服务 docker service create --name order --network my-net -p 8080:8080 -d xxx 加入swarm集群 docker swarm join --token xxx 更新结点名字为mysql docker node update --label-add servermysql ecs-82ec-0003 创建MySQL服务 docker service create --name mysql --con…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...