美文网首页
分享SD卡座协议学习点滴

分享SD卡座协议学习点滴

作者: 讯普电子 | 来源:发表于2018-10-25 10:31 被阅读0次

SD卡座

首先SD展台有所谓的操作模式(操作模式),每个操作模式的概念和一个或多个特定的对应状态,主机通过发送一个命令可以使SD卡在一个不同的状态之间的转换,TF摊位,接受命令,现在根据自己的地方做出不同的反应。 当系统刚刚连接到系统时,SD卡控制器应该处于SD卡识别模式和SD卡持有人相同的模式,并且在系统处于功率状态或搜索SD卡持有人时处于空闲状态。

SD卡识别模式:在这种模式下,控制器验证SD卡持有人的工作电压范围,识别SD卡类型,并要求他们发送各自的相对地址(相对卡地址);这些操作在SD卡的相应CMD线上执行。所有操作使用默认的SD卡识别时钟频率(识别时钟频率)

SD卡复位:将GO_IDLE_STATE(CMD0)发送给SD卡后,SD卡除非激活状态(非激活状态)外将进入空闲状态(空闲状态);在输入模式下,SD卡的CMD行进入空闲状态。默认相对地址为0×0000,默认驱动器寄存器设置为最小速度,最大驱动电流容量。

sd卡座

工作条件检测

在任何通信控制器和TF展台前控制器是不清楚TF布斯支持工作电压范围,所以控制器的电压是第一个使用默认发送一个重置指令(CMD0),其次是CMD8指令,用于TF展台工作电压范围数据的支持。SD卡通过检测CMD 8的参数部分来检查控制器使用的工作电压,控制器通过分析返回的CMD 8参数部分来验证SD卡是否能在给定电压下工作。如果SD卡在指定电压下工作,它会回显CMD 8命令响应字,其中包含检查电压,检查模式。如果给定电压,SD卡不支持SD卡不给任何响应信息,并继续处于闲置状态。在物理层2.0版本下,在第一次执行ACMD 41之前,必须执行CMD 8指令来初始化SDHC卡,SDHC卡根据控制器是否接收到CMD 8指令来识别控制器是否支持协议。使用低电压控制器也必须发送CMD8 ACMD41命令之前,避免在两种电压模式下工作的SD卡,因为没有收到CMD8,和默认的工作在高电压环境下,被误认为是只支持高电压模式下工作。

sd_send_op_cond(ACMD 41)命令的目的是给SD卡控制器一种机制来识别SD卡是否可以在给定的Vdd范围内工作,如果SD卡不能在指定的Vdd范围内工作,它将进入非活动状态(非活动状态)。需要注意的是,ACMD 41应用了一个相关的命令,因此每个发出的ACMD 41命令都必须紧跟APP_CMD(CMD 55)命令。在自由状态(空闲状态)使用CMD55命令使用默认卡相对地址0 x0000(RCA)。

每次控制器发送CMD 0重置SD卡时,都会重新执行一系列初始化操作(CMD 8、ACMD 41。)。..)。

如果ACMD41指令的OCR位是0,控制器可以查询SD卡,并决定他们共同的工作电压范围。在将ACMD 41指令作为查询发送之后,sd卡不会启动初始化过程,直到控制器重新发送ACMD 41指令为止。

SD卡初始化和识别过程:

在发送CMD 8命令后,扩展ACMD 41指令,参数中包含更多HCS部分,响应中包含CCS(Card容量状态)部分。高碳钢参数不会响应CMD8命令SD卡。当控制器向不响应CMD 8的卡发送ACMD 41指令时,CMD 8位应设置为零。如果发送SDHC卡ACMD41高碳钢0命令,SDHC卡返回响应,繁忙的标记WeiYongYuan 0,忙代表国家。HCS标识符用于指示SD卡是否已完成初始化,如果HCS为零,如果HCS为零,则控制器重复ACMD 41指令SD卡,仅检查首次接收到的ACMD 41指令的HCS位。

SD卡响应CMD 8而发送的ACMD 41指令的响应包含CCS部分,控制器仅用HCS标志位1检查响应中包含的CCS位。CCS = 1表示SDHC卡,或者作为标准SD卡。

然后控制器发送ALL_SEND_CID(CMD 2)命令来查询每个卡的CID(唯一卡标识)值,而未被标识的SD卡(处于就绪状态)发送一个CID值作为响应。发送CID值后,SD卡进入可识别状态(标识状态),控制器发送CMD 3(SendRelatedADDR)命令。每个SD卡需要发送一个新的相对地址(RCA),以便在随后的数据传输模式中寻址。RCA后发送。站到SD卡的状态,在这种状态下,如果控制器新RCA SD卡分布,它可以发送另一个CMD3命令到SD卡。最后发布的RCA是SD卡的真正RCA。

数据传输模式:

控制器使用的时钟频率是fod。直到SD卡识别模式被接受为止。在数据传输模式下,控制器可以使用Fpp的频率。控制器发送SSEND_CSD(CMD 9)命令,以获取SD卡CSD寄存器(卡片特定数据)中的描述值,如块长度、卡容量信息等。无线电SET_DSR命令(CMD4)每个确定的SD卡配置驱动阶段(?)它将相关信息写入SD卡的DSR寄存器。此时控制器的时钟频率也从fod转移到fpp。SET_DSR命令是可选的。

CMD 7命令用于选择SD卡进入传输状态,并且只有一张卡可以在指定的时间内处于传输状态。当先前选择的SD卡的状态转移到接收CMD7,释放和连接的控制器,进了站,通过状态。当CMD 7使用预留地址0x0000时,所有SD卡都进入备用状态。

在数据传输模式中,各种状态之间的转换关系概括为:

所有数据读取命令可以通过停止命令终止(CMD12)在任何时间。数据传输终止SD卡返回到传输状态。读命令:块读操作(CMD17),多个块读操作(CMD18),发送写保护(CMD30),发送普通命令的SCR(ACMD51)和读模式(CMD56) 停止命令(CMD 12)可以随时终止所有数据写入命令。写命令也会在取消选择命令(CMD 7)之前停止。写命令有:块写操作(CMD24,CMD25)、编程命令(CMD27)、锁定/解锁命令(CMD42)以及写模式下的普通命令(CMD56)数据传输一旦完成,SD卡会退出数据写状态,进入Programming状态(传输成功)或者Transfer状态(传输失败)

如果一块写操作被停止,但写操作包含最后一块的长度和CRC校验正确,数据将被编程到SD卡(从缓存写入闪存吗?)

SD卡可以提供缓存模式,这意味着控制器可以在最后一个写块被编程到Flash时发送下一个数据。

当全职的写缓存,SD卡的编程,DAT0将保持低水平(忙),显示这是一个忙!

写CSD,写保护,删除这些操作没有缓存,而SD卡正在处理这些命令,其余的数据传输命令被忽略。当SD卡繁忙且处于编程状态时,SDCarla也会降低DAT 0。

在SD卡的编程时间,不允许控制器发送命令设置参数。设置参数命令是:设置块长度(CMD 16)、擦除块启动(CMD 32)和擦除块结束(CMD 33)。

在SD卡编程时刻,读命令也是不允许的!当另一个卡从站——转换状态传输状态,正在钻的擦除和编程操作不会结束,它会自动进入断开状态,释放数据线。

处于断开状态的卡可以通过发送cmd 7命令、进入编程状态和重新激活繁忙标识符从此状态中删除。

重置SD卡(使用CMD 0或CMD 15)将终止任何挂起或正在进行的编程操作。这可能会损害SD卡数据!

相关文章

网友评论

      本文标题:分享SD卡座协议学习点滴

      本文链接:https://www.haomeiwen.com/subject/sbdqtqtx.html