SD卡协议中文解析:命令格式、工作模式和状态变换

3星 · 超过75%的资源 需积分: 9 2 下载量 35 浏览量 更新于2024-07-28 收藏 2.7MB DOC 举报
SD卡协议中文 SD卡协议是SD卡与主机之间的通信协议,用于实现数据的传输和交换。该协议定义了SD卡的总线模式、命令格式、响应格式和数据格式等内容。 一、SD卡总线模式 SD卡总线模式下,包括CLK、CMD、DAT0-3、VDD和VSS五个信号线。其中,CLK为时钟信号,CMD为双向命令和响应信号,DAT0-3为双向数据信号,VDD和VSS为电源和地信号。 在SD模式下,允许有一个主机和多个从机(即多个卡),主机可以给从机分别地址。主机发送命令,有些命令是发送给指定的从机,有些命令可以以广播形式发送。SD模式下可以选择总线宽度,即选用几根DAT信号线,主机可以在初始化后设置。 二、SD卡命令描述 SD卡命令可以分为广播命令和点对点命令两种。广播命令是给所有卡都发送的,某些命令需要响应。点对点命令是给指定地址的卡发送的,需要响应。 SD卡系统有两种工作模式:卡识别模式和数据传输模式。卡识别模式下,主机上电复位后即处于此模式,卡复位后也处于此模式,直到SEND_RCA(CMD3)命令到来。数据传输模式下,卡收到SEND_RCA(CMD3)命令后即进入此模式,主机识别到卡后也进入此模式。 三、SD卡命令格式 SD卡命令格式包括命令、响应和数据三部分。命令是由主机发往从机的比特流,用于启动一个操作。响应是由从机发往主机的比特流,用于之前命令的回答。数据是由主机或从机发往对方的比特流,用于数据传输。 四、SD卡状态和工作模式 SD卡有两种状态:IdleState和InactiveState。卡识别模式下,卡的状态变换图如下所示: 卡识别模式下,主机复位总线所有的卡,验证工作电压,询问卡的地址。这个模式下所有数据的传输都是只通过CMD线来完成。卡的复位是通过GO_IDLE_STATE(CMD0)命令或卡上电实现的。此时卡将其RCA设为0,相关寄存器设为传输稳定的最优模式。 工作电压验证是通过SD_SEND_OP_COND(ACMD41)命令实现的,该命令用来判断卡的工作电压是否符合,如果不符合的话,卡应该放弃总线操作,进入InactiveState状态。在发送SD_SEND_OP_COND(ACMD41)命令前记得要首先发送APP_CMD(CMD55)。 SD卡协议是SD卡与主机之间的通信协议,定义了SD卡的总线模式、命令格式、响应格式和数据格式等内容,并规定了SD卡的状态和工作模式。