前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >瀚海微SD NAND之SD 协议(37)SPI总线保护和读写

瀚海微SD NAND之SD 协议(37)SPI总线保护和读写

作者头像
杭州瀚海微
发布2024-08-21 09:57:46
1320
发布2024-08-21 09:57:46

总线传输保护

总线上传输的每条SD卡命令都受到CRC位的保护。在SPI模式下,SD存储卡提供了CRC ON模式,使具有可靠数据链路的系统能够排除实现CRC生成和验证功能所需的硬件或固件。在CRC OFF模式下,命令的CRC位被定义为“不关心”发送端,而被接收端忽略。

缺省情况下,SPI接口初始化为CRC OFF模式。然而,用于将卡切换到SPI模式的RESET命令(CMD0)在SD模式下被卡接收,因此应该有一个有效的CRC字段。

由于CMD0没有参数,所有字段的内容(包括CRC字段)都是常量,不需要在运行时计算。

有效的复位命令为:Ox40, Ox0, Ox0, Ox0, Ox0, ox95卡进入SPI模式后,将根据CMD59设置对包括CMD0在内的所有命令进行CRC检查。

主机可以使用CRC_ON_OFF命令(CMD59)打开和关闭CRC选项。

主机应在发出ACMD41之前启用CRC验证。始终启用CMD8 CRC校验。

主机应在CMD8参数中设置正确的CRC。

如果检测到CRC错误,无论命令索引如何,卡都会在R1响应中返回CRC错误。

数据读取

SPI模式支持单块读取和多块读取操作(SD Memory Card协议中的CMD17或CMD18)。

在接收到一个有效的读命令后,卡将用一个响应令牌和一个数据令牌进行响应,参考下图。

在标准容量卡的情况下,数据令牌中的大小由set BLOCKLEN (CMD16)设置的块长度决定。

对于SDHC和SDXC卡,无论cmd16设置的块长度如何,块长度都固定为512字节。

最大块长度为512字节,与CSD中定义的READ_BL_LEN无关。

如果在标准容量卡中启用部分块访问(即CSD参数READ BL partial等于1),块长度可以是1到512字节之间的任何数字。

起始地址可以是卡有效地址范围内的任意字节地址。但是,每个块应包含在单个物理卡扇区中。

如果禁用部分块访问,则只支持512字节的数据长度。SDHC和SDXC卡只支持512字节的块长度。起始地址应与块边界对齐。

在数据检索错误的情况下,卡将不传输任何数据。相反,一个特殊的数据错误令牌将被发送到主机。

下图显示了一个以错误令牌而不是数据块结束的数据读取操作。

在多块读取操作的情况下,每个传输的块都有其16位CRC后缀。

停止传输命令(CMD12)实际上会停止数据传输操作(与SD Memory Card操作模式相同)。

数据写入

SPI模式支持单块和多块写命令。在接收到有效的写命令(SD存储卡协议中的CMD24或CMD25)后,卡将使用响应令牌进行响应,并等待主机发送数据块。

CRC后缀、块长度和起始地址限制(CSD参数WRITE BL PARTIAL控制部分块写选项和WRITE_BL_LEN除外)与读操作相同,参考下图

每个数据块都有一个“开始块”标记的前缀(一个字节)。在接收到数据块后,卡将使用数据响应令牌进行响应。如果接收到的数据块没有错误,将对其进行编程。

只要卡在忙编程,所有连续的忙令牌流将被发送到主机(有效地保持低数据输出线)。

一旦编程操作完成,主机应该使用SEND_STATUS命令(CMD13)检查编程的结果。一些错误(例如地址超出范围,违反写保护等)仅在编程期间检测到。

在数据块上执行并通过数据响应令牌与主机通信的唯一验证检查是CRC和一般写错误指示。

在多块写操作中,停止传输将通过在下一个块的开始处发送' stop Tran'令牌而不是'Start Block'令牌来完成。

如果出现写错误指示(在数据响应上),主机将使用SEND_NUM_WR_BLOCKS (ACMD22)来获取写好的写块的数量。

当卡忙时,重置CS信号不会终止编程过程。卡将释放数据输出线(三状态)并继续编程。

如果在编程完成之前重新选择卡,则DataOut线将被强制返回低电平,并且所有命令将被拒绝。

重置存储卡(使用CMDO用于SD存储卡)将终止任何挂起的或正在进行的编程。这可能会破坏卡上的数据格式。预防是主机的责任

擦写保护管理

SPI模式的擦写保护管理过程与SD模式的擦写保护管理过程相同。

当卡擦除或更改预定义扇区列表的写保护位时,它将处于忙状态并使DataOut线保持低电平。

下图说明了使用和不使用忙信令的“无数据”总线事务。

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

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

本文系外文翻译前往查看

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

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