前言
在上一篇文章中,我们介绍了SD卡两种工作模式之一的卡识别模式。今天,我们来介绍一下数据传输模式的一些特点以及两种模式是如何实现转换的。由于本人能力有限,所以文章中难免会有错误和不足之处,还望各位读者可以及时提出来,谢谢!
数据传输模式下的状态机流程图
数据传输模式的状态机如下图所示(来源于SD协议官方文档):
如何实现两种模式的切换
在上一篇文章中,我们说过SD卡在什么情况下会进入卡识别模式,当SD卡重新上下电或者主机向SD卡发送CMD0命令时,SD卡便会进入卡识别模式。那么怎样从卡识别模式进入数据传输模式呢?请听我娓娓道来。。。
由上面的状态机可知,当主机完成SD卡的卡识别模式下的工作之后,主机成功向SD卡发送CMD3命令,并且SD卡成功向主机返回其RCA地址之后,便进入了数据传输模式。CMD3命令的官方说明如下:
由上图该命令的描述可知,该命令是一个有响应的广播命令,该命令的作用是让总线上所有的SD卡返回其RCA地址。
那么主机此时是处于什么状态呢?答案是:当主机识别到SDIO总线上的所有设备之后,才会进入数据传输模式。由于我们此处讨论的是总线上仅挂载了一个SD卡的情况,所以在经过了卡识别模式之后,主机便进入了数据传输模式。由上图的状态机可知,当主机进入数据传输状态之后,便进入了待机状态,等待其它命令的到来。