本文介绍TF卡、SD卡、SDIO卡和MMC卡、eMMC的基本知识,帮助读者快速掌握SD卡和MMC卡体系,同时给出MCU与TF卡、SDIO卡、eMMC连接时的注意事项。

SD卡 · 基础知识
1
常见SD卡类型
从功能上看,SD卡系可分为存储卡、SDIO卡、组合卡三类。存储卡常用于嵌入式系统存储容量扩展和数据交换,包括TF卡(即microSD卡)和SD卡。SDIO卡在SD接口规范的基础上,为主机提供蓝牙、Wi-Fi、GPS等通信功能。相较于卡片形态,SDIO设备更多以模组形式集成在嵌入式系统中。同时具备存储和通信功能的SD卡称作组合卡(Combo Card)。

从尺寸上看,常用的SD卡包括全尺寸SD卡和microSD卡,microSD卡即TF卡。全尺寸SD卡比microSD多一个GND脚。SDIO卡/microSDIO卡分别兼容SD卡/microSD卡插槽,SDIO模组没有固定的尺寸和引脚顺序。

2
SD卡的通信方式和速度分级
SD卡支持SD模式和SPI模式两种通信方式。
SD模式包含默认模式(Default Speed)、高速模式(High Speed)、超高速模式(UHS-I/II/III)、SD Express模式等,各模式传输速度不同,使用的通信技术也不尽相同。通过SD模式访问SD卡,需要MCU具备相应的外设。MCU上用于SD卡通信的外设通常称作SDIO或SDMMC。
使用MCU操作SD卡时,为获得理想的读写速度,需确认MCU芯片SDIO/SDMMC外设对SD模式的兼容性,以及SD卡本身的读写速度。
下图给出了SD卡常用通信模式的最大时钟频率和传输带宽。

UHS-I模式使用1.8V电平信号,3.3V的MCU系统在配置SD卡进入UHS-I模式后,需要调整自身SD接口的I/O电源电压。
一般来说,MCU的SDIO外设大多仅支持12.5MB/s的默认模式和25MB/s的高速模式。高性能MCU提供SDMMC外设,可进一步支持超高速UHS-I规范。例如,CH32H417内置SDMMC,支持UHS-I的双边沿模式DDR50和单边沿模式SDR50、SDR104,最高200MHz时钟频率,性能是常规SDIO外设的4到8倍。
需要注意,受协议开销、存储器操作开销等影响,实际应用中,SD卡的读写速度低于传输带宽,数据读取快而写入慢。在评估SD卡性能时,常参考速度分级体系。SD卡的速度等级指示该产品在顺序写入状态下的最低性能,常用的速度等级包括“C”序列的传统速度等级C2至C10、“U”序列的UHS速度等级U1和U3,速度等级直接印刷在卡身上。
下图给出了不同模式的SD卡,其可能的速度等级和对应的最小顺序写入速度。

3
通过MCU操作TF卡/SDIO模组
基础的SD接口包括1条时钟线CLK、1条命令线CMD、4条数据线DAT[3:0]和电源,支持1线、4线通信模式,SDIO模组可能额外提供8线模式。默认模式、高速模式和超高速模式(UHS-I)的TF卡/SD卡使用8Pin/9Pin接口,更高速度的SD卡接口I/O数量大幅提升,在MCU应用中不常见,本文不再展开。
TF卡/SD卡的DAT3在卡片内部通过电阻上拉,主机通过DAT3的电平变化获知卡片插入。在SDIO接口中,数据线DAT1可用作中断信号线。在4线模式下,SDIO的中断信号复用数据线DAT1。部分SDIO模组还提供独立的中断引脚。下图展示了MCU与TF卡、SDIO模组的连接方式。

相较于SPI接口,SD接口通常可以提供更高的读写性能。不同的MCU,其SDIO、SDMMC外设对SD通信模式的支持可能存在差异。例如,双核MCU芯片CH32H417的I/O电压可调,其SDMMC外设支持1.8V的UHS-I超高速模式,但市面上经典的32F103系列通常不支持。
此外,CH32H417的SDMMC还支持从机模式,可用于模仿卡,或实现两个设备之间的高速互连。

MMC/eMMC · 基础知识
1
MMC/eMMC/CE-ATA
多媒体卡(MultiMedia Card, MMC)卡系主要包括MMC卡、eMMC和CE-ATA设备三类。其中,MMC是可插拔的存储卡;eMMC(Embedded MultiMedia Card, 嵌入式多媒体卡)由MMC规范发展而来,是焊接在PCB上的存储器件;CE-ATA是基于MMC规范的一种存储设备标准。目前,MMC卡、CE-ATA设备已不常用,本节讨论嵌入式系统中常见的eMMC卡。
2
eMMC卡的通信方式和速度分级
eMMC卡通过eMMC接口与主机通信。不同于SD卡,eMMC规范在早期发展过程中移除了对SPI接口的支持,因此市面上的eMMC卡大多不支持SPI通信。
eMMC规范提供五种通信模式,包括传统MMC兼容模式、高速SDR、高速DDR、HS200(单边沿采样)和HS400(双边沿采样),最大带宽可达400MB/s。下图给出了eMMC卡常用通信模式的最大时钟频率和传输带宽。

在传统MMC兼容模式、高速SDR和高速DDR模式下,根据eMMC卡支持的最大时钟频率和不同数据宽度的性能组合,eMMC卡的速度等级覆盖从2.4MB/s到48MB/s(SDR模式)或4.8MB/s到96MB/s(DDR模式)的14个等级,用A到T表示。
上述分级不适用于HS200和HS400模式,eMMC芯片在HS200和HS400模式下的实际读写速度通常在产品手册中给出。不同厂家、不同规格的eMMC芯片,即便使用相同的通信模式,传输速度也可能存在较大差异。使用MCU操作eMMC时,为获得理想的传输性能,需确认MCU芯片SDIO/SDMMC外设对eMMC模式的兼容性、最高时钟频率以及eMMC卡的通信性能。
一般来说,MCU的SDIO外设大多仅支持单边沿采样,即传统MMC模式和高速SDR模式,高性能的SDMMC外设可进一步支持单边沿的HS200、双边沿的HS400模式。例如,CH32H417内置的SDMMC可设置1.8V的I/O电压,支持HS200@200MHz、HS400@150MHz,性能是常规SDIO外设的6倍左右。
3
通过MCU操作eMMC卡
eMMC接口包括1条时钟线CLK、1条命令线CMD、8条数据线DAT[7:0]、复位信号和电源,支持1线、4线、8线通信模式。对于支持HS400高速模式的eMMC,多一个Strobe信号引脚。

4
通过USB扩展TF/SD/eMMC读卡器
超高速USB3.0读卡器芯片CH379可将SD卡、TF卡、MMC卡和eMMC、FLASH等存储介质转换为USB大容量存储设备。CH379支持SD物理层1.0/2.0以及3.0规范UHS-I的SDR50、DDR50和SDR104模式,eMMC卡4.4/4.5.1以及5.0规范的HS200/HS400高速模式,时钟频率可达208MHz,支持1/4/8线通信。CH379内置SD/MMC电源控制和接口电压调节功能,可动态切换1.8V接口电压,支持更高时钟频率,芯片支持双卡同时操作。

内置SDMMC/SDIO控制器的
MCU芯片选型
青稞RISC-V系列大容量MCU/SoC提供SDMMC、SDIO等专用外设,为主控连接SD卡、SDIO模组、eMMC芯片提供高性能、高兼容性的解决方案。其中,CH32H417、H416、H415和CH645均内置调压LDO,可根据SD/eMMC协议规范,从3.3V接口电压动态切换到1.8V,以支持更高时钟频率。下表列出了部分代表性的芯片型号。

评论区
登录后即可参与讨论
立即登录