前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SD NAND存储功能描述(8)专用命令CMD55 56

SD NAND存储功能描述(8)专用命令CMD55 56

作者头像
杭州瀚海微
发布2024-07-02 09:49:46
1010
发布2024-07-02 09:49:46

应用专用命令app_cmd (CMD55)

当卡接收到这个命令时,会使卡将下面的命令解释为一个特定于应用程序的命令ACMD。ACMD提供命令扩展,具有与常规命令相同的结构,并且可能具有相同的CMD号。卡通过它出现在APP_CMD之后的事实将其识别为ACMD。当没有定义ACMD时,卡将其视为常规命令。

例如,如果一张卡有ACMD13的定义,但没有ACMD7的定义,则APP_CMD后的命令13被解释为非规则CMD13,而APP CMD后的CMD7被解释为规则CMD7。为了使用一个ACMD,主机应该是:

(1)当发送APP_CMD时,响应设置了APP_CMD位,向主机发出ACMD现在被期望的信号。

(2) ACMD55不存在。如果连续发出多个CMD55,则每个响应中的APP_CMD位设置为1 ,紧跟在最后一个CMD55之后发出的命令解释为ACMD。当在CMD55之后直接发出多个命令时(CMD55除外),第一个命令解释为ACMD,后面的命令解释为普通命令

(3)如果发送了已定义的ACMD并且是合法的,则响应设置了APP CMD位,表明接受的命令被解释为ACMD。

(4)如果发送了一个未定义的ACMD并且它是合法的,则响应将清除APP_CMD位,表明接受的命令被解释为正常的CMD。

(5)如果发送了已定义或未定义的ACMD,且该ACMD是非法的,则按非法命令处理。下一个R1/R6响应中指示“非法命令错误”,主机应忽略响应中的APP_CMD状态。下一个命令作为普通命令处理。

主机不能使用未定义的acmd作为常规命令,即使规范中有定义。以下ACMD号码是为SD存储卡专有应用保留的,任何SD存储卡制造商不得使用:ACMD6、ACMD13、ACMD17-26、ACMD38-49、ACMD51。

在上述解释中,在详细命令描述部分中定义的命令是“已定义”命令,而在该部分中未定义的命令是“未定义”命令。“合法”表示在当前状态下接受已定义或未定义的命令,“非法”表示在当前状态下不接受已定义或未定义的命令。

通用命令- GEN_CMD(CMD56)

GEN_CMD (CMD56)是一个特定于厂商的可选命令。命令操作由本规范定义。GEN CMD的总线事务与单个块读或写命令(CMD24或CMD17)相同,并且仅在“传输状态”下接受。响应类型为R1。两者的区别在于参数表示数据传输的方向(而不是地址),数据块不是内存有效负载数据,而是具有特定于供应商的格式和含义。在发送CMD56之前,需要选中卡片(“tran_state”)。

在标准容量SDl存储卡的情况下,数据块大小是用CMD16定义的block_LEN。在SDHCl和SDXC卡的情况下,块长度固定为512byte。参数的位0表示数据传输的方向;0表示写操作,1表示读操作。厂商可以对该命令的参数和数据块内容的第31-1位定义特定的格式。

然而,应该考虑到卡应该防止损坏卡接收到意外的格式。主机在发放CMD56前应确认CID,使卡支持CMD56格式。

切换功能命令

切换功能命令(CMD6)用于切换或扩展内存卡功能。

目前定义了四个功能组:

(1)接入方式:SD总线接口速度模式的选择。

(2)指挥系统:特定的功能可以通过一组共享命令进行扩展和控制。

(3)驾驶员强度在UHS-I模式中选择合适的输出驱动器强度取决于主机环境。

(4)限流选择在UHS-I模式下限制卡的最大电流取决于主机的供电能力和放热能力。

这是在物理层规范版本1.10中引入的。因此,与早期版本的规范兼容的卡不支持它。在使用CMD6之前,主机应该检查SCR寄存器中的“SD_SPEC”字段,以确定卡符合哪个版本的规范。也可以通过CSD中CCC的bit10来检查对CMD6的支持。

版本1.10及更高版本的SD存储卡必须支持CMD6。CMD6在“转移状态”下有效。一旦选择,通过switch命令,所有功能只在一个电源周期后,CMD6(每个功能组中功能0的模式1操作)或CMDO返回到默认功能。执行电源周期或发出CMDO将使卡复位到“空闲”状态,所有功能切换回默认功能。

作为对CMD6的响应,SD存储卡将在CMD线上发送R1响应,在DAT线上发送512位状态。从SD总线事务的角度来看,这是一个标准的单块读事务,该命令的超时值为100毫秒,与读命令相同。如果状态数据发生CRC错误,主机应该发出一个电源周期。CMD6功能切换周期在状态数据结束位后的8个时钟内。当CMD6改变总线行为(即访问模式)时,主机被允许使用新功能(增加/减少CLK频率超过当前最大CLK频率),至少8个时钟后在交换机命令事务结束见下方图表。

响应CMDO,切换周期在CMDO结束位后的8个时钟内。当CMD6改变了总线行为(即访问模式)时,主机被允许启动初始化过程,至少在CMDO后8个时钟。

CMD6支持6个功能组,每个功能组支持16个分支(功能)。

在给定的功能组中只能选择并激活一个功能。每个功能组中的函数0为默认函数(与Spec. 1.01兼容)。

CMD6有两种使用模式:

模式0(检查功能)用于查询卡是否支持某项功能。

模式1(设置功能)用于切换卡的功能。

以上内容由杭州瀚海微科技整理

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档