SD卡

Posted doget

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SD卡相关的知识,希望对你有一定的参考价值。

一、SD卡接口

SD 卡的接口可以支持两种操作模式:
主机系统可以选择以上其中任一模式, SD 卡模式允许 4 线的高速数据传输。 SPI 模式允许简单通用的 SPI 通道接口, 这种模式相对于 SD 模式的不足之处是丧失了速度。

(1)SD 卡模式

SD 模式针脚定义

注:S:电源供电, I:输入 O:输出 I/O:双向 PPI/O 使用推挽驱动

SD模式下允许有一个主机,多个从机(即多个卡),主机可以给从机分配地址。主机命令可以是发给指定从机,也可以以广播形式发送。

(2)SPI 模式

SPI模式针脚定义

注:S:电源供电, I:输入 O:输出 I/O:双向 PPI/O 使用推挽驱动;

   SPI 模式时,这些信号需要在主机端用 10~100K 欧的电阻上拉。

SPI 总线允许通过 2 通道(数据入和出)传输比特数据。 SPI 兼容模式使得 MMC 主机系统通过很小的改动就可以使用SD卡,SPI 模式使用字节传输。

二、SD卡总线

1.SD总线

  SD 总线允许强大的 1 线到 4 线数据信号设置。 当默认的上电后, SD 卡使用 DAT0。初始化之后,主机可以改变线宽。 在混和连接中 VccVss CLK 的信号连接可以通用。但是,命令,回复,和数据(DAT03)这几根线,各个 SD 卡必须从主机分开。
CLK每个时钟周期传输一个命令或数据位。频率可在 025MHz 之间变化。 SD 卡的总线管理器可以不受任何限制的自由产生 025MHz 的频率。
CMD命令从该 CMD 线上串行传输。一个命令是一次主机到从卡操作的开始。命令可以以单机寻址(寻址命令)或呼叫所有卡(广播命令)方式发送。回复从该 CMD 线上串行传输。一个命令是对之前命令的回答。回复可以来自单机或所有卡。
DAT03数据可以从卡传向主机或副。数据通过数据线传输。

SD总线拓扑

2.SPI总线

SPI总线拓扑

三、SD卡电路设计

1.SD总线接口

2.SPI总线接口

 

四、SD卡总线协议

1.SD总线协议

 SD总线上的通信基于命令和位数据流,它们由一个起始位开始,由一个停止位终止;

命令:命令是启动操作的令牌。 一个命令从主机发送到单个SD卡(寻址命令)或所有连接的SD卡(广播命令),命令CMD线上是串行传输。

响应:响应是从被寻址的SD卡发送的令牌,或者从所有连接的卡(同步)发送,作为对先前接收到的主机命令的答复,答复在CMD线上串行传输。

数据:数据可以从卡片传输到主机,反之亦然。,数据通过数据线传输。

 

 

 

2.SPI总线协议

 SPI通道是面向字节的, 每个命令或数据块由8个比特位构成,并且与CS信号字节对齐(8个时钟的倍数)。

 与SD总线模式一样,SPI模式也是基于命令、响应、数据块的传输。主机与SD卡间的通信全部由主机控制,主机通过CS信号线来开始每个总线的传输。

SD总线模式与SPI总线模式的响应方式有以下三点不同:

(1)选定的卡总是响应命令。

(2)使用八位或十六位响应结构。

(3)当卡遇到数据检索问题时,它将响应一个错误响应(那个替换期望访问的数据块),而不是在SD总线模式下得超时。

 

以上是关于SD卡的主要内容,如果未能解决你的问题,请参考以下文章

STM32开发_利用SPI协议读写SD卡介绍SD卡SPI时序

6410下,能不能从SD卡启动系统?要从SD卡启动该做些啥工作

T卡,TF卡,SD卡

Linux 下如何用SD卡存储数据

SD卡格式化造成数据丢失的恢复方法

linux上的sd卡如何强制退出