总线拓扑结构:
SD存储卡系统定义了两种可选的通信协议:SD和SPI。
主机系统可以选择其中一种模式。
当接收到复位命令时,卡检测主机请求的模式,并期望所有进一步的通信都处于相同的通信模式。不建议使用多个卡槽共用总线信号。单个SD总线应连接单个SD卡。当主机系统支持高速模式时,单SD总线连接单SD卡。
默认设置下,SD Memory Card总线具有一个主(应用程序),多个从(卡),同步星型拓扑结构(参考下图)。
图中所示SD总线包括以下信号:
时钟: 主机到卡时钟信号
CMD: 双向命令/响应信号
DAT0-3: 4条双向数据信号。
VDD, Vss1, Vss2: 电源和地面信号。
在高速和UHS-I中,SD存储卡总线具有单主(应用程序)单从(卡),同步点对点拓扑结构。
时钟、电源和接地信号对所有卡都是通用的。命令(CMD)和数据(DATO-DAT3)信号专用于每个卡,为所有卡提供持续的点对点连接。
在初始化过程中,命令被单独发送到每个卡,允许应用程序检测卡并为物理接口或卡座分配逻辑地址。数据总是单独地发送(接收)到(从)每个卡。
但是,为了简单地处理卡栈,在初始化过程之后,所有命令可以并发地发送到所有卡。地址信息在命令包中提供。SD总线允许动态配置数据线的数量。
开机后,默认情况下,SD存储卡将只使用DATO进行数据传输。初始化后,主机可以改变总线宽度(活动数据线的数量)。
此功能可以轻松地在硬件成本和系统性能之间进行权衡。注意,当DAT1-DAT3没有被使用时,相关的主机的DAT行应该被使用。
SPI总线
SD存储卡的SPI兼容通信模式设计用于与市场上各种微控制器中常见的SPI通道通信。接口是上电后第一次复位命令时选择的接口,在部件上电后不能更改。
SPI标准只定义了物理链路,而不是完整的数据传输协议。SD存储卡SPI实现使用与SD模式相同的命令集。从应用程序的角度来看,SPI模式的优点是能够使用现成的主机,从而将设计工作量降至最低。相对于启用宽总线选项的SD模式,缺点是性能损失。
SD Memory Card SPI接口兼容市面上已有的SPI主机。与其他SPI设备一样,SD存储卡SPI通道由以下四个信号组成:
CS: 主机到卡芯片选择信号。
时钟: 主机到卡时钟信号
数据: 主机到卡的数据信号。
数据输出:卡到主机的数据信号。
SPI的另一个共同特征是字节传输,它也在卡中实现。所有数据令牌都是字节的倍数(8位),并且总是与CS信号对齐。
卡识别和寻址方法由硬件芯片选择(CS)信号代替。没有广播命令。
对于每个命令,通过断言(active low) CS信号来选择一个卡(slave)(参见上图)。
CS信号应在SPl事务(命令、响应和数据)期间持续活跃。
唯一的例外发生在卡编程期间,当主机可以取消断言c信号而不影响编程过程时。
SPI接口使用SD总线的SD 9信号中的7个(DAT1和dat2不使用,DAT3是CS信号)。