摘要 :SD、eMMC、SDIO 共享 SoC 内部 SDMMC(SD/MMC Host Controller) 主机控制器硬件IP,但分属不同协议体系:SD(Micro SD/TF)为可插拔存储卡协议;eMMC 是 JEDEC MMC 体系板载嵌入式存储;SDIO 是 SD 总线扩展的IO外设协议,用于WiFi/BT等非存储器件。三者总线位宽、时钟、采样方式、最高带宽、可靠性模型各不相同。
1 基础概念
| 名称 | 标准组织 | 本质 | 典型用途 |
|---|---|---|---|
| SD(TF/Micro SD) | SD协会 | 可插拔存储卡 | 外设扩容、相机、便携设备存储 |
| eMMC | JEDEC | 板载BGA封装存储芯片 | 主系统固件、数据盘(手机、IoT、工控) |
| SDIO | SD协会 | SD总线IO扩展协议 | SDIO WiFi、SDIO BT、SDIO GPS等外设 |
| SDMMC | - | SoC主机控制器IP | 统一驱动SD卡、eMMC、SDIO |
✅ 关键要点:TF卡 = Micro SD卡,协议与标准SD卡完全一致,仅物理尺寸不同;
✅ 关键要点:SDIO 不是存储协议 ,没有文件系统;
✅ 关键要点:SD与eMMC协议同源但相互独立,命令集、高速模式、寄存器定义不通用。
2 SD卡(含TF/Micro SD)速率模式汇总
SD协议分为UHS之前传统模式 + UHS超高速系列 ,总线固定4bit。
计算公式:
理论带宽(MB/s)=fclk(MHz)×总线位宽×采样沿数÷8\text{理论带宽(MB/s)} = f_{clk}(\text{MHz}) \times \text{总线位宽} \times \text{采样沿数} \div 8理论带宽(MB/s)=fclk(MHz)×总线位宽×采样沿数÷8
| 模式 | 协议版本 | 时钟 | 采样方式 | 理论带宽 |
|---|---|---|---|---|
| Default Speed | SD1.0 | 25 MHz | 单沿 | 12.5 MB/s |
| High Speed | SD1.1 | 50 MHz | 单沿 | 25 MB/s |
| UHS-I DDR50 | UHS-I | 50 MHz | 双沿DDR | 50 MB/s |
| UHS-I SDR50 | UHS-I | 100 MHz | 单沿SDR | 50 MB/s |
| UHS-I SDR104 | UHS-I | 208 MHz | 单沿SDR | 104 MB/s |
| UHS-II | UHS-II | 差分信号 | 差分串行 | 最高312 MB/s(半双工) |
| UHS-III | UHS-III | 差分信号 | 差分串行 | 最高624 MB/s(全双工) |
✅ 关键要点:UHS = Ultra High Speed(超高速);
✅ 关键要点:UHS-II / UHS-III 在原有SD引脚基础上新增一组差分对,向下兼容UHS-I;
✅ 关键要点:UHS-I 无差分,并行4bit;UHS-II/III依靠差分高速通道获得更高带宽。
3 eMMC 版本演进与高速模式
eMMC 属于JEDEC MMC协议体系,支持1/4/8bit总线,eMMC 4.5之后引入HS200、HS400高速模式。
计算公式:
理论带宽(MB/s)=fclk(MHz)×8bit×采样沿数÷8\text{理论带宽(MB/s)} = f_{clk}(\text{MHz}) \times 8\text{bit} \times \text{采样沿数} \div 8理论带宽(MB/s)=fclk(MHz)×8bit×采样沿数÷8
| eMMC版本 | 标志性高速模式 | 时钟 | 采样方式 | 峰值带宽 | 新增核心特性 |
|---|---|---|---|---|---|
| eMMC4.0 / 4.1 | HS52 | 52 MHz | 单沿 | 52 MB/s | 基础NAND管理、基础读写,无高速8bit DDR模式 |
| eMMC4.5 | HS200 | 200 MHz | 单沿SDR | 200 MB/s | 命令队列、功耗优化,8bit并行 |
| eMMC5.0 | HS400 | 200 MHz | 双沿DDR | 400 MB/s | HS400高速模式、后台操作、硬件安全能力 |
| eMMC5.1 | HS400 | 200 MHz | 双沿DDR | 400 MB/s | 队列调度优化、随机性能提升、宽温可靠性增强 |
✅ 关键要点:HS200:200MHz,8bit单沿,200MB/s;
✅ 关键要点:HS400:同200MHz时钟,8bit双沿DDR,带宽翻倍至400MB/s;
✅ 关键要点:eMMC独有特性:Boot分区、RPMB安全分区、EXT_CSD配置寄存器。
4 SDIO 速率规格
SDIO复用SD总线框架,不支持8bit,最高4bit,多用于无线外设:
| SDIO模式 | 时钟 | 带宽 | 适用场景 |
|---|---|---|---|
| 低速SDIO | ≤400 kHz | ~几十KB/s | 低速率简单外设 |
| 全速SDIO | 25 MHz | 10 MB/s | SDIO WiFi、SDIO BT(最常用) |
✅ 关键要点:SDIO 使用CMD52(单字节访问)、CMD53(块传输),支持SDIO中断;
✅ 关键要点:SDIO 极少跑UHS高速,绝大多数方案仅使用全速25MHz。
5 可靠性对比
| 器件 | 结构 | 可靠性总结 |
|---|---|---|
| eMMC | BGA焊死在PCB,无机械触点 | ✅ 最高。内置主控ECC、WL、坏块管理;抗振动、抗冲击;工业型号支持宽温 |
| SD / TF卡 | 可插拔金属触点 | ⚠️ 中等。存在插拔磨损、触点氧化风险;消费卡固件算法弱于eMMC;工业SD卡可改善,但仍弱于板载eMMC |
| SDIO外设 | 多为板载或卡座式SDIO模块 | ⚠️ 取决于模块;本身不是存储器件,不考量擦写耐久 |
6 小结
- 同一组SDMMC控制器引脚同一时间只能挂载一类设备:eMMC / TF卡 / SDIO 不可同时挂接;
- SD和eMMC高速模式时序、调谐要求不同,驱动代码路径分开;
- UHS-II/III差分引脚PCB阻抗、等长要求远高于普通SD并行信号;
- HS400对电源噪声、地弹、PCB布线非常敏感,是eMMC调试高发问题点;
- SDIO依赖中断做数据同步,硬件上一般需要单独引出SDIO中断。
7 附录:核心公式
- SD传统 / UHS-I:
Rate=fclk×4×DDR_factor÷8Rate = f_{clk} \times 4 \times DDR\_factor \div 8Rate=fclk×4×DDR_factor÷8 - eMMC HS200 / HS400:
Rate=fclk×8×DDR_factor÷8Rate = f_{clk} \times 8 \times DDR\_factor \div 8Rate=fclk×8×DDR_factor÷8
DDR_factorDDR\_factorDDR_factor:单沿=1,双沿DDR=2