当前位置: 首页 > 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…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...