5.1.1. 模块介绍
5.1.1.1. 术语定义
术语 |
定义 |
注释说明 |
---|---|---|
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,大容量,最大32GB)和SDXC(eXtended Capacity,最大2TB),本文将SD、SDHC、SDXC统称为SD
eMMC是MMC框架中的一种,经过多年演化后,从2018年起只留下eMMC了
eMMC可以看作一个集合,其中包含:Nand Flash、Flash控制器、MMC标准接口封装
5.1.1.2. 模块简介
SDMC V1.0可用于访问三种标准协议:SDCard、eMMC设备、SDIO。 以M4为例,SoC 硬件提供了三套 SDMC,功能的初始定义如下:
SDMC |
支持功能 |
---|---|
SDMC0 |
SDCard、 eMMC |
SDMC1 |
SDCard |
SDMC2 |
SDIO |
5.1.1.2.1. SD/SDIO 的传输模式
SD/SDIO的传输模式有三种:
SPI模式:为了兼容性考虑,此模式属于required,对硬件要求低,不支持CRC校验。时钟最高 25MHz,读写速度通常低于 3MB/s。广泛用于MP3等对读卡速度要求不高的场景。
1bit模式:时钟最高 25MHz,最高速率 12.5MB/s
4bit模式:读写时钟最高可达 50MHz,最高速率 25MB/s,是 SD的主要模式
其中“1bit模式”和“4bit模式”又可以统称为“SD模式”。
下表是三种传输模式对应的接口信号线定义:
5.1.1.2.2. MMC 的工作模式
MMC标准经过了5个大版本的演化,已经发生了很大的变化。大体上可以分为两种工作模式:
SPI模式:可选模式,属于MMC协议的一个子集,最大速率 20Mbps。主要用于小容量、低速率场景,可降低成本,也有很好的兼容性
MMC模式:默认模式,具有MMC的全部特性,支持 1/4/8bit 总线模式
MMC模式从传输速率上看又可以分为以下几种:
小技巧
HS400 是在HS200的基础上增加 DDR 模式(信号双边采样),将理论速率提升一倍。
MMC 上电或者复位后,默认处于 1bit 模式,只使用信号线DAT[0]传输数据,后续通过命令将其配置为4/8bit模式。
eMMC芯片不支持SPI模式。
5.1.1.2.3. SDMC 的功能特性
SDMC支持的最大接口频率为200MHz,支持1/4/8线数据总线模式,满足eMMC标准协议和SDCard/SDIO接口协议。
支持eMMC5.0,SD3.01和SDIO3.0,向下兼容
支持eMMC SDR/DDR模式,接口时钟频率最大200MHz
支持3.3V工作电压
支持DDR 4线和8线模式
使用内部DMA模式,支持单通道、双缓存和描述符链表传输
支持FIFO深度为 128,FIFO位宽为32bit
支持CRC生成和错误检测