SD卡
Posted doget
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SD卡相关的知识,希望对你有一定的参考价值。
一、SD卡接口
SD 卡的接口可以支持两种操作模式:
主机系统可以选择以上其中任一模式, SD 卡模式允许 4 线的高速数据传输。 SPI 模式允许简单通用的 SPI 通道接口, 这种模式相对于 SD 模式的不足之处是丧失了速度。
(1)SD 卡模式
SD 模式针脚定义
注:S:电源供电, I:输入 O:输出 I/O:双向 PP: I/O 使用推挽驱动
SD模式下允许有一个主机,多个从机(即多个卡),主机可以给从机分配地址。主机命令可以是发给指定从机,也可以以广播形式发送。
(2)SPI 模式
SPI模式针脚定义
注:S:电源供电, I:输入 O:输出 I/O:双向 PP: I/O 使用推挽驱动;
SPI 模式时,这些信号需要在主机端用 10~100K 欧的电阻上拉。
SPI 总线允许通过 2 通道(数据入和出)传输比特数据。 SPI 兼容模式使得 MMC 主机系统通过很小的改动就可以使用SD卡,SPI 模式使用字节传输。
二、SD卡总线
1.SD总线
SD 总线允许强大的 1 线到 4 线数据信号设置。 当默认的上电后, SD 卡使用 DAT0。初始化之后,主机可以改变线宽。 在混和连接中 Vcc, Vss 和 CLK 的信号连接可以通用。但是,命令,回复,和数据(DAT0~3)这几根线,各个 SD 卡必须从主机分开。
CLK:每个时钟周期传输一个命令或数据位。频率可在 0~25MHz 之间变化。 SD 卡的总线管理器可以不受任何限制的自由产生 0~25MHz 的频率。
CMD:命令从该 CMD 线上串行传输。一个命令是一次主机到从卡操作的开始。命令可以以单机寻址(寻址命令)或呼叫所有卡(广播命令)方式发送。回复从该 CMD 线上串行传输。一个命令是对之前命令的回答。回复可以来自单机或所有卡。
DAT0~3:数据可以从卡传向主机或副卡。数据通过数据线传输。
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时序