文章目录
本文章主要讲解关于SD2.0中标准容量卡和大容量卡在命令上的一些差异,基础概念和其它内容请参考以下文章。
SD2.0 Specification简述
这里的差异主要是块读命令 (CMD17, CMD18)、块写命令(CMD24, CMD25)、擦除命令(CMD32, CMD33)这些跟用户数据访问有关的,差异体现在以下方面:
-
命令参数含义
读写擦命令的参数都是地址,在大容量卡里,地址是以块(block)为单位的,块大小固定为512 byte;而在标准容量卡里,地址是以字节(byte)为单位的。例如,参数同样是0001h,在大容量卡中就是第1个块,也就是第512字节,但在标准容量卡中就是第1字节。
-
部分访问与不对齐访问
大容量卡是以块为寻址单位,不支持部分访问与不对齐访问
-
块长度设置
大容量卡以块为寻址单位,固定为512byte,长度设置命令(CMD16)没有用,但在加解锁卡(CMD42)的过程中,可以使用CMD16修改数据长度(详情参考文章:SD2.0 Specification之写保护)。使用CMD16修改长度时,最大只能是512 byte。
-
写保护组
大容量卡不支持这种写保护,所以会将相应命令(CMD28,CMD29,CMD30)当成是非法命令。