SD

SD 卡(secure digital card)是 SD 卡协会开发的低成本,非易失性存储卡格式(相比较于 RAM,SD 卡掉电数据不丢失);

 

随着本世纪电子技术的高速发展,对于这种中等型号,节能、节省空间的存储器设备的需求一直在快速增长;

 

sd 卡

 

SD 卡具有 SDHC 的速度等级,范围;2 级(以 2 MB / s 的速度运行);4 级(以 4MB / s 的速度运行);6 级(以最高 6 MB / s 的速度运行);10 级(以最高的速度运行) 10 MB / 秒;

 

SDXC 卡以超高速运行,并以最高 30 Mb/s 的速度运行;还有视频速度等级,数据传输速率高达 90MB/s。

 

SD 卡速度级别

 

SD 卡还具有不同的尺寸或形状因子,包括 standard SD 卡, mini SD 卡 and micro SD 卡;

 

卡尺寸分类

 

SD 卡可以是通常具有高达 4 GB 的存储容量的标准 SD 卡,也可以是高达 64 GB 的高容量卡(SDHC)以及达到 TB 级的扩展容量(SDXC)。

 

卡容量接口

 

SD 卡可以在 SD 总线模式或 SPI 总线模式下运行,通常可以使用 SDIO 总线或者 SPI 对 SD 进行驱动;

下面主要以 micro SD 为例,就 SDIO 模式和 SPI 模式做简单做一下介绍;

 

microSD 引脚输出,SD 模式

引脚引脚名称信号功能 1DAT2 数据位 22CD / DAT3 卡检测 / 数据位 33CMD 命令行 4Vdd 电源电压 2.7v / 3.6v5Clk 时钟 6VS 地 7DAT0 数据位 08DAT1 数据位 1

microSD 引脚输出,SPI 模式

引脚引脚名称信号功能 1NC 没有连接 2/CS 片选 3DI 主输出 / 从属(MOSI)4Vdd 电源电压 2.7v / 3.6v5Clk 时钟 6Vss 地 7DO 主进 / 从出(MISO)8RSV 已预留

micro SD 的引脚发布如下图所示;

 

协议

SD 协议中,由于命令数据线和数据线是分开的,因此我们需要关注,命令的传输格式,以及数据的传输格式;

 

命令传输

命令以 48 位数据包的形式通过双向 CMD 引脚进行传输。

这些命令包包括命令索引,变量和 CRC 位。该命令始终通过主机发送,最终由 SD 卡接收。

回传的响应数据包也为 48 位。

整体命令如下图所示;

 

 

48 位的命令格式

每个命令的恒定长度为 6 个字节。第一个字节是命令编号和数字 64 的 加法。例如:对于 CMD0:命令编号 0 + 64 = 64 = 0x40(十六进制)。

对于 CMD1:十六进制命令号 1 + 64 = 65 = 0x41。

随后是一组四个字节,称为参数。

这些参数通常包含数据的地址或块的长度。

最后一个字节是 CRC(循环冗余校验)字节。

如果未启用 CRC 功能,则大多数 SPI 模式下的命令都不需要校验字节。

对于某些命令,例如 CMD0,CRC 为 0x95,在大多数情况下,发送的是 0xFF。

启用 CRC 要求您从微控制器发送正确的校验字节。因此,请确保启用或禁用了 CRC 功能。

 

发送命令的格式如下所示;

 

 

帧格式

R1 响应 0x01 表示在响应之前发送的命令已导致卡进入空闲状态。响应字节 0x00 表示命令已被接受,SD 卡将等待后续的事件发生。如果设置了 R1 响应中的任何其他位,则是错误的结果,并且将降低到图中每个 R1 响应位中提到的因数。

 

不同类型的响应及其含义如下所示;

 

 

响应

数据传输

在数据传输期间,传输的基本单位称为块,通常为 512 字节,并通过所有 4 个数据引脚进行传输。同样,在每次块传输之后,将发送 16 位 CRC 数据。

 

请注意,SD 卡在状态下运行。每个状态都有不同的命令集,主机可以通过控件更改状态。

 

命令和数据信号通过时钟信号同步。最初,主机使用 400KHz 时钟与卡进行通信,但最终它会在传输过程中最大提高时钟速度,效率。

 

因为在初始化之前,主机不知道它是 SD 卡还是 MMC 卡。

 

默认情况下,MMC 卡在初始化期间默认工作在漏极开路模式(100-400KHz),而 SD 卡工作在推挽模式(0-25Mhz)。

 

因此,最初,主机使用 400KHz 来保持与漏极开路和推挽模式的兼容性。

 

硬件设计 SDIO

这是从 SD/MMC 外设到 SD 卡插槽的 4 Bit 连接的示例。

使用 Data[3..0],CLK 和 CMD 信号。

 

SD 卡插槽暴露在外部环境中。即使未与任何其他设备连接,它也可能会受到人体中积累的静电电荷的影响,而当手指触摸该静电时,静电会释放到屏蔽中。

 

为了符合 EMC 规范,必须进行一些常规预防措施,以过滤和避免传导辐射。此外,SD 卡规范还规定了上拉电阻和串联阻抗匹配电阻。

 

幸运的是,当 SD 在移动设备中如此普遍地传播时,已经有集成方案,它可以一次实现所有这些功能。

 

CM1624 是 EMI 滤波器和线路终端设备的组合,带有集成的 TVS 二极管,可用于 T-Flash / MicroSD 接口。

 

 

SPI

下面在 SPI 模式下使用的 SD 卡的示例,根据 SD Association 的规范连接了 MISO,MOSI,CLK 和 CS 信号。

 

我们只需要在时钟线上应用滤波器以在非常恶劣的环境中改善 EMC。

 

 

在 SDIO 模式或者 SPI 模式下,磁道都以高数据速率传输数据和时钟信号。

 

为了避免信号出现毛刺,必须考虑信号传播时间,以确保所有数据在时钟触发读取或写入的操作之前,接口处稳定。

 

所有数据信号的路径长度必须在十分之几毫米的长度内匹配,并且时钟长度必须长约 1 毫米。

 

为避免串扰,这些走线必须在其周围和下方保持良好的接地平面,并且还应通过足够数量的通孔连接各层。

 

总结

本文简单介绍了 SD 卡的分类以及常见属性,另外还简单介绍了 SD 卡的协议,在硬件设计上给出了 SPI 总线和 SDIO 总线的示例电路,篇幅有限,软件部分暂时没有进行展开介绍;