关键要点
eMMC 5.1是并行总线,153-ball VFBGA封装,VCC 2.7到6V,需要专用控制器与HS400时序。
eMMC顺序读写up to 300/200MB/s、随机读写up to 25K/15K IOPS,是系统盘级指标。
SD NAND走0,MCU的SDIO即可直驱,读写过程不需要操作系统参与。
eMMC通常跑在Linux下,带分区表、引导链与ext4或F2FS,软件栈重。
SD NAND在LGA-8 6.0×8.0mm内集成ECC(BCH)、坏块管理、磨损均衡与掉电保护。
只有容量超32GB、随机IOPS上万、要OTA双分区这三类需求才值得上eMMC。
两种盘的角色不同
MCU项目里说的存储盘有两种角色:一种是数据盘,存参数、日志、采集数据、字体库;另一种是系统盘,装操作系统镜像、应用程序、分区表和引导文件。前者读写量可控、容量需求在GB以内,后者要支撑随机读、并发写、OTA升级和掉电恢复。角色定下来,方案基本就定了。
MCU带SDIO就能直驱
米客方德SD NAND对外是标准SD接口,主机端只要有一组SDIO或SPI,就能把它当块设备读写,中间不需要文件系统之外的任何一层。STM32 F4/H7、NXP i.MX RT、GD32、ESP32、Nordic nRF、TI、Microchip、新唐、君正X系列都有对应的主机外设。裸机或RTOS下挂一个FatFS,挂载、读文件、写文件三步就通了。
eMMC 5.1的控制器门槛
eMMC 5.1是并行总线,153-ball VFBGA封装,VCC 2.7到3.6V、VCCQ支持1.65到1.95V与2.7到3.6V双压,跑到HS400需要数据选通信号与专用控制器。多数通用MCU没有这个外设,要么换带eMMC控制器的应用处理器,要么在FPGA里自己做时序,两条路都不是加一颗料能解决的。
速度与随机IOPS的真实差距
eMMC 5.1顺序读写up to 300/200MB/s、随机读写up to 25K/15K IOPS,这个量级服务的是系统启动、应用加载、数据库读写。SD NAND走SD2.0四线,吞吐在几十MB/s量级,随机性能对应的是文件级读写,够采集与记录用。拿eMMC的IOPS指标去要求SD NAND没有意义,两者面向的负载不同。
软件栈:裸机与Linux的分界
eMMC方案背后通常是一整套Linux:分区表、boot分区、内核与根文件系统、ext4或F2FS日志、OTA升级脚本。这套栈带来能力,也带来人力:BSP适配、驱动调试、文件系统调优都要人。SD NAND在裸机或RTOS下只需FatFS加一个盘符,代码量按千行算,调试周期按天算。
启动方式不一样
用eMMC做系统盘的板子,启动链是ROM代码从eMMC读引导、再加载内核,eMMC要参与上电启动,时序与分区一旦出错就变砖,返修得拆机。SD NAND在多数设计里只做数据盘,MCU从内部Flash或外部SPI Flash启动,存储掉电或格式化都不影响开机。这是两者在可靠性边界上的实质区别。
什么情况下才该上eMMC
三类需求值得考虑eMMC:容量要几十GB以上,比如带图形界面、要存大量图片视频的终端;随机IOPS要上万,比如本地数据库、多任务并发读写;要做OTA双分区与文件系统日志,靠A/B分区回滚保证升级失败可恢复。三条都不占,MCU加SD NAND更省事。米客方德工业级pSLC的MKEMF008GT1E-IE(8GB、读280/写155MB/s、TBW约489TB)属于eMMC这一侧,用在需要系统盘又要求宽温与寿命的场合。
边界判断的四个问题
落到选型,问四句:主控有没有eMMC控制器,没有就不必往下比;容量需求是否超过32GB;随机读写是否上万IOPS;是否必须靠A/B分区回滚升级。四个问题里三个以上答是,走eMMC;只占容量一条,先看SD NAND的大容量档,8Gb到64Gb的MLC与pSLC型号能覆盖多数记录类需求。
表1 SD NAND与eMMC 5.1的七维对照
| 维度 | SD NAND | eMMC 5.1 |
| 接口与总线 | SD2.0,SDIO四线或SPI | 并行总线,HS400需数据选通 |
| 封装 | LGA-8 6.0×8.0mm | 153-ball VFBGA |
| 容量档 | 1Gb到64Gb | 4GB到128GB |
| 顺序读写 | 几十MB/s量级 | up to 300/200MB/s |
| 随机读写 | 文件级 | up to 25K/15K IOPS |
| 软件栈 | 裸机或RTOS加FatFS | Linux加分区表与日志文件系统 |
| 典型定位 | 数据盘、参数与日志 | 系统盘、应用与OTA |
选型判断清单
先确认主控有没有eMMC控制器,没有则不考虑eMMC。
统计实际容量需求,超过32GB才进入eMMC讨论。
评估随机读写强度,上万IOPS是分界。
确认是否必须做OTA双分区与回滚。
确认是否需要文件系统日志与掉电恢复。
评估软件团队能否承担Linux BSP与驱动维护。
评估返修条件,系统盘故障是否可现场恢复。
数据盘场景优先SD NAND,接口与软件栈都轻。
系统盘场景确认宽温、寿命与TBW是否够用。
常见问题
问:MCU不跑Linux能用eMMC吗?
答:技术上可以,但要自己实现eMMC控制器时序与协议栈,通用MCU多数没有这个外设,投入与收益不匹配。
问:SD NAND能不能当系统盘?
答:能做代码与资源存储,但不承担操作系统启动链。多数设计让MCU从内部Flash或SPI Flash启动,SD NAND只做数据盘。
问:eMMC的25K IOPS对采集设备有用吗?
答:用处有限。采集类负载以顺序写为主,随机IOPS上万的能力主要服务应用加载与数据库并发。
问:OTA双分区一定要eMMC吗?
答:不一定。双分区本质是分区布局加引导切换,SD NAND同样能做A/B分区,只是回滚逻辑要自己写。
问:两者的寿命怎么对比?
答:看颗粒与P/E。SLC的SD NAND约10万次,pSLC约3万次,MLC约5000次;eMMC侧要同时看颗粒类型与TBW标注。
问:宽温项目怎么选?
答:看温度标注与颗粒。SD NAND有-40℃到85℃的SLC型号,eMMC侧工业级pSLC型号也覆盖宽温,按实际工况温度上限留余量。
62