#硬件规格
1、存储容量
- 标准容量SD 卡:最高达到2GB
- 大容量SD存储卡(SDHC): 大于2GB、不大于32GB
- 超大容量SD存储卡(SDXC):大于32GB、不大于2TB
2、电压范围
- 高电压SD 卡-工作电压范围:2.7 -3.6V
- 双电压SD 卡-工作电压范围:低电范围(T.B.D) 和2.7-3.6V
3、SD 卡形状
- 标准尺寸的SD 卡
- Mini SD 卡
- Micro SD 卡
4、读写属性
- 读写卡(闪存,一次可编程-OTP,多次可编程-MTP)
- 只读卡(ROM)
5、速度等级
- Class 0 – 这种卡不定义具体性能,代表了这个规范出来之前的所有卡
- Class 2 – 最小2MB/s 的性能
- Class 4 – 最小4MB/s 的性能
- Class 6 – 最小6MB/s 的性能
- Class 8 – 最小8MB/s 的性能
- Class 10 – 最小10MB/s 的性能
6、总线拓扑
- SD 总线
建议每个SD卡使用单独的SD总线
CLK: 时钟信号
CMD: 双向命令/响应信号
DAT0-DAT3: 双向数据信号
Vdd,Vss1,Vss2: 电源和地信号
SD 总线允许数据线的动态配置。上电后SD卡默认使用DAT0 来传输数据。初始化之后,主机可以改变总线宽度(使用的数据线数目)。
注意:当DAT1-DAT3 没有使用的时候,相关的主机DAT 先应该被设置为输入模式。SDIO卡DAT1 和DAT2 用于信令。 - SPI 总线
CS: 主机到卡的片选(chip select)信号
CLK: 主机到卡的时钟信号
DataIn: 主机到卡的数据信号
DataOut: 卡到主机的数据信号
SPI 接口使用SD 总线的9 线里面的7 根(DAT1 和DAT2 不用,DAT3 作为CS 信号)
7、引脚功能
- 9pin引脚(SPI只用7pin)
● ① 类型解释:S-电源;I–输入;O–输出(使用推挽式单元?);PP-I/O(推挽式)
● ② 扩展数据线(DAT1-DAT3)上电之后是输入。在SET_BUS_WIDTH 命令之后作为数据线。当然不用的话,主机会让他们保持输入状态。
● ③上电时,这条线在卡中有一个50KOhm 的上拉。这个电阻有两个作用:卡检测和模式选择。作为模式选择,主机可以拉高或让别人拉高这个脚来选择SD 模式。如果主机想选择SPI 模式,应该把管脚拉低;作为卡检测,当管脚被拉高时,认为卡插入了。这条线的上拉在数据传输期间应该由用户通过命令SET_CLR_CARD_DETECT(ACMD42)命令来断开。
● ④DAT1 脚在SDIO 模式下,一旦没有数据传输,可能被用于输出中断(从卡到主机)
● ⑤DAT2 脚在SDIO 模式下,可能被用于“读等待信号”[见SDIO Card Specification]
8、传输方向
- MSB在前,LSB在后
##SD卡硬件接口
SD 卡有6 条交互线以及3 条供电线
- CMD :命令线,主机和卡都可以驱动它
- DAT0-3 :数据线,主机和卡都可以驱动
- CLK :时钟线,主机发送到卡的
- Vdd :供电线
- Vss1,Vss2 :两条地线
写保护和卡检测切换。不是强制的,如果有,应该像下图这么连接。当DAT3 作为卡检测功能时,DAT3 的Rdat 就不应该连接,而另一个电阻也应该接地。
Rdat 和Rcmd 是上拉电阻,保护CMD 和DAT 线,以免受到总线浮动影响,当没有卡插入,或者所有卡驱动都处于高阻抗模式。
主机应该通过Rdat 上拉DAT0-3 线,即使主机使用1bit 传输模式。同样,在SPI 模式,主机也应该上拉所有“RSV”线,即使没有使用。Rwp 用于写保护,卡检测切换
每个卡都有一组信息寄存器(第五章也有描述):
名字宽度描述
CID 128 卡识别号;用来识别的卡的个体号码(见5.2)。【强制的】
RCA 16 相对地址;卡的本地系统地址,初始化时,动态地由卡建议,主机核
准,SPI 模式不使用(见5.4)。【强制的】
DSR 16 驱动级寄存器;配置卡的输出驱动(见5.5)。【可选的】
CSD 128 卡的具体数据;卡的操作条件信息(见5.3)。【强制的】
SCR 64 SD 配置寄存器;SD 卡的特殊能力信息(见5.6)。【强制的】
OCR 32 操作条件寄存器(见5.1)。【强制的】
SSR 512 SD 状态;卡专有特征的信息(见4.10.2)。【强制的】
CSR 32 卡状态;卡状态信息(见4.10.1)。【强制的】
主机可以通过切换电源开关来实现卡的复位。但是每个卡都有自己的电源检测电路,用来在上电后将卡设置到一个预置状态,所以重启电源并不是必须的,通过发送GO_IDLE(CMD0)
同样可以让卡复位
###热插拔
###卡检测(插入/拔出)
###电源保护(插入/拔出)
##SD总线协议
- 命令(Command):命令就是一个标记,用于发起一个操作。由主机发送到单个卡(寻址命令)或者所有卡(广播命令)。命令在CMD 线上是连续传输的。
- 响应(Response):响应是一个标记,从寻址的卡或者所有卡(同步)发送给主机,作为向
前接收到的命令的回答。响应也是在CMD 线上连续传输的。 - 数据(Data):数据可以从主机到卡,也可以从卡到主机。通过数据线传输。
响应标记以内容分,有4 种编码方式。编码的长度可以是48Bit 或者136bit。数据块的CRC 保护算法是一个16bit 的CCITT 多项式。
● R1 response:方向位[1Bit]+命令[8Bit]+状态信息[32Bit]+CRC[7Bit] = [48Bit]
● R2 response:方向位+命令+CID/CSD 寄存器+CRC = [136Bit]
● R3 response:方向位+命令+OCR 寄存器+CRC 校验= [48Bit]
● R6 response:方向位+命令+RCA 寄存器+CRC 校验= [48Bit]
SD 卡有两种数据包格式。
● (1)常规数据(8bit 宽):常规数据发送是先低字节,再高字节的顺序,但是每个字节则
是先高位后低位。
● (2)宽位数据(SD 存储寄存器):宽位数据从高位开始传输。(不按字节传输)
##SD 卡功能描述
- 三种模式:卡识别模式、数据传输模式、空闲模式
来源:CSDN
作者:大头BB
链接:https://blog.csdn.net/hushiganghu/article/details/55099103