SDMC 使用指南
术语 | 定义 | 注释说明 |
---|---|---|
SD | Secure Digital | Flash 存储卡的一种标准,即常见的 SD 卡 |
SDCard | Secure Digital Memory Card | 安全数码卡,同“SD 卡” |
MMC | Multi Media Card | 多媒体卡 |
eMMC | Embedded Multi Media Card | 内嵌(在板卡上)式多媒体卡 |
SDIO | Secure Digital Input and Output | 安全数字输入输出接口 |
SDMC | SDCard & SDIO & eMMC Host Contollor | SD 卡/eMMC 主控制器 |
CMD | Command | SD/eMMC 协议的命令 |
DMA | Direct Memory Access | 直接存储器访问 |
SPI | Serial Peripheral Interface | 串行外设接口 |
其中:
-
MMC 是最早的记忆卡标准,1997 年由西门子和 SanDisk 推出,现在市场上已经很少见了
-
SDCard 是 1998 年由松下、东芝和 SanDisk 合作发布
-
SDCard 一开始就兼容 MMC 协议,和 MMC 在时序设计上保持一致,读写控制命令也一样
-
SDIO 是在 SD 标准的基础上,定义了非存储卡的外设接口,可连接 WiFi、BT、摄像头等
-
SD 卡后续还有 SDHC(High Capacity,大容量,最大 32 GB)和 SDXC(eXtended Capacity,最大 2 TB),本文将 SD、SDHC、SDXC 统称为 SD
-
eMMC 是 MMC 框架中的一种,经过多年演化后,从 2018 年起只留下 eMMC 了
-
eMMC 可以看作一个集合,其中包含:NAND Flash、Flash 控制器、MMC 标准接口封装
SDMC V1.0 功能说明
SDMC V1.0 可用于访问三种标准协议:SDCard、eMMC 设备、SDIO。 以 D21x 为例,SoC 硬件提供了三套 SDMC,功能的初始定义如下:
SDMC | 支持功能 |
---|---|
SDMC0 | SDCard、 eMMC |
SDMC1 | SDCard |
SDMC2 | SDIO |
SD/SDIO 的传输模式
SD/SDIO 的传输模式有三种:
-
SPI 模式:为了兼容性考虑,此模式属于 required,对硬件要求低,不支持 CRC 校验。时钟最高 25 MHz,读写速度通常低于 3 MB/s。广泛用于 MP3 等对读卡速度要求不高的场景。
-
1bit 模式:时钟最高 25 MHz,最高速率 12.5 MB/s
-
4bit 模式:读写时钟最高可达 50 MHz,最高速率 25 MB/s,是 SD 的主要模式
其中“1bit 模式”和“4bit 模式”又可以统称为“SD 模式”。
下表是三种传输模式对应的接口信号线定义:
MMC 的工作模式
MMC 标准经过了 5 个大版本的演化,已经发生了很大的变化。大体上可以分为两种工作模式:
-
SPI 模式:可选模式,属于 MMC 协议的一个子集,最大速率 20 Mbps。主要用于小容量、低速率场景,可降低成本,也有很好的兼容性
-
MMC 模式:默认模式,具有 MMC 的全部特性,支持 1/4/8bit 总线模式
MMC 模式从传输速率上看又可以分为以下几种:
-
HS400 是在 HS200 的基础上增加 DDR 模式(信号双边采样),将理论速率提升一倍。
-
MMC 上电或者复位后,默认处于 1bit 模式,只使用信号线 DAT[0]传输数据,后续通过命令将其配置为 4/8bit 模式。
-
eMMC 芯片不支持 SPI 模式。
SDMC 的功能特性
SDMC 支持的最大接口频率为 200 MHz,支持 1/4/8 线数据总线模式,满足 eMMC 标准协议和 SDCard/SDIO 接口协议。
-
支持 eMMC5.0,SD3.01 和 SDIO3.0,向下兼容
-
支持 eMMC SDR/DDR 模式,接口时钟频率最大 200 MHz
-
支持 3.3V 工作电压
-
支持 DDR 4 线和 8 线模式
-
使用内部 DMA 模式,支持单通道、双缓存和描述符链表传输
-
支持 FIFO 深度为 128,FIFO 位宽为 32 bit
-
支持 CRC 生成和错误检测