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 的传输模式

../../../_images/sd_mode.png

图 5.10 SD/SDIO 的三种传输模式

SD/SDIO的传输模式有三种:

  1. SPI模式:为了兼容性考虑,此模式属于required,对硬件要求低,不支持CRC校验。时钟最高 25MHz,读写速度通常低于 3MB/s。广泛用于MP3等对读卡速度要求不高的场景。

  2. 1bit模式:时钟最高 25MHz,最高速率 12.5MB/s

  3. 4bit模式:读写时钟最高可达 50MHz,最高速率 25MB/s,是 SD的主要模式

其中“1bit模式”和“4bit模式”又可以统称为“SD模式”。

下表是三种传输模式对应的接口信号线定义:

../../../_images/sd_mode_io.png

图 5.11 SD/SDIO 三种传输模式的接口定义

5.1.1.2.2. MMC 的工作模式

../../../_images/mmc_mode.png

图 5.12 MMC 的工作模式

MMC标准经过了5个大版本的演化,已经发生了很大的变化。大体上可以分为两种工作模式:

  1. SPI模式:可选模式,属于MMC协议的一个子集,最大速率 20Mbps。主要用于小容量、低速率场景,可降低成本,也有很好的兼容性

  2. MMC模式:默认模式,具有MMC的全部特性,支持 1/4/8bit 总线模式

MMC模式从传输速率上看又可以分为以下几种:

../../../_images/mmc_mode_data.png

图 5.13 MMC 工作模式及相应速率

小技巧

  1. HS400 是在HS200的基础上增加 DDR 模式(信号双边采样),将理论速率提升一倍。

  2. MMC 上电或者复位后,默认处于 1bit 模式,只使用信号线DAT[0]传输数据,后续通过命令将其配置为4/8bit模式。

  3. eMMC芯片不支持SPI模式。

5.1.1.2.3. SDMC 的功能特性

SDMC支持的最大接口频率为200MHz,支持1/4/8线数据总线模式,满足eMMC标准协议和SDCard/SDIO接口协议。

../../../_images/hw_structure2.png

图 5.14 SDMC 硬件原理示意图

SDMC支持的特性有:

  • 支持eMMC5.0,SD3.01和SDIO3.0,向下兼容

  • 支持eMMC SDR/DDR模式,接口时钟频率最大200MHz

  • 支持3.3V工作电压

  • 支持DDR 4线和8线模式

  • 使用内部DMA模式,支持单通道、双缓存和描述符链表传输

  • 支持FIFO深度为 128,FIFO位宽为32bit

  • 支持CRC生成和错误检测