0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

吕辉 来源:jf_40298777 作者:jf_40298777 2024-10-09 10:29 次阅读

总线传输保护

总线上传输的每条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字节。

wKgaomcF6iyAAa-bAABwzBmzE3I594.png

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

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

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

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

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

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

wKgZomcF6kWASRDFAADodlS3Etc553.png

数据写入

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

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

wKgZomcF6l6ANb0PAABrbTB5Vlc941.png

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

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

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

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

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

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

wKgaomcF6m-AFCqBAABpymRye3g152.png

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

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

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

擦写保护管理

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

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

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

wKgaomcF6oGAP-p6AABOFd1W64o130.png



审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1700

    浏览量

    91301
  • 总线
    +关注

    关注

    10

    文章

    2866

    浏览量

    87975
  • SD NAND
    +关注

    关注

    0

    文章

    81

    浏览量

    1212
收藏 人收藏

    评论

    相关推荐

    Arduino程序:实现SD NAND(贴片sd卡)的读写功能

      单片机上传程序的时候,有时候感觉它的rom和 ram有时直接限制了他的使用,之前使用eeprom,和sd卡模块. []()   然后最近看到了出的SD NAND 就是下面这个
    发表于 11-07 17:45

    瀚海SD NANDSD 协议(42)SPI总线时序

    SPI总线时序图 所有时序图使用以下原理图和缩写: 所有定时值的定义如表所示。 主机在收到卡响应后,应保持时钟运行至少NcR时钟周期。此限制适用于命令和数据响应令牌。 命令/响应 主机对卡的命令响应
    的头像 发表于 10-21 10:19 208次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>协议</b>(42)<b class='flag-5'>SPI</b><b class='flag-5'>总线</b>时序

    瀚海SD NANDSD 协议(40)SPI模式CMD8的操作

    )和b)的AND。 “不匹配”是其他情况。 a) vhs中只有1位设置为“1”。 b)卡支持主机电源电压。 响应 响应令牌有几种类型。和SD模式一样,所有的都先传输MSB。 在SPI模式下定义了多个
    的头像 发表于 10-14 10:00 220次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>协议</b>(40)<b class='flag-5'>SPI</b>模式CMD8的操作

    瀚海SD NANDSD 协议(39)SPI模式 Transaction Packets

    命令格式 所有SD Memory Card命令长度为6字节。 命令传输总是从与命令码字对应的位串的最左位开始。 所有的命令都受到CRC的保护。 命令和参数如下方第3个图表所示。 命令分类 SD模式下
    的头像 发表于 10-12 11:11 251次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>协议</b>(39)<b class='flag-5'>SPI</b>模式 Transaction Packets

    瀚海SD NANDSD 协议(38)寄存器&amp;复位&amp;开解锁

    读取CID/CSD寄存器 类似SD存储卡协议(其中寄存器内容作为命令响应发送)。在SPI模式下读取CSD和CID寄存器的内容是一个简单的读块事务。该卡将响应一个标准的响应令牌,后跟一个16字节的数据
    的头像 发表于 10-10 09:28 219次阅读

    瀚海SD NANDSD 协议(36)SPI模式

    简介 SPI模式由基于flash的SD存储卡提供的辅助通信协议组成。 这种模式是SD存储卡协议的一个子集,设计用于与
    的头像 发表于 10-08 10:13 241次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>协议</b>(36)<b class='flag-5'>SPI</b>模式

    瀚海SD NANDSD 协议(32)1.8V信令的驱动强度和总线时序

    输出驱动强度 4级驱动强度为了保持主机系统的灵活设计,输出驱动可以看到大范围的主机负载。 4 种可选驱动强度使主机系统能够调整驱动强度,以优化特定的主机负载。 这使SD卡能够灵活地支持不同的系统负载
    的头像 发表于 09-26 10:31 206次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>协议</b>(32)1.8V信令的驱动强度和<b class='flag-5'>总线</b>时序

    瀚海SD NANDSD 协议(29)硬件接口

    SD存储卡硬件接口 SD存储卡有6条通信线路和3条供电线路: CMD:命令是双向信号。主机和卡驱动以推拉方式工作。 DAT0-3:数据线是双向信号。主机和卡驱动在推拉模式下运行 CLK:时钟是主机到
    的头像 发表于 09-24 10:19 250次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b><b class='flag-5'>之</b><b class='flag-5'>SD</b> <b class='flag-5'>协议</b>(29)硬件接口

    SD NAND SPI模式:如何实现低功耗运行

    最近,收到客户反馈,使用我们SD NAND过程中,使用SPI模式,对SD完成操作后,SD没有进入低功耗模式,未对
    的头像 发表于 09-02 11:06 379次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b> <b class='flag-5'>SPI</b>模式:如何实现低功耗运行

    瀚海SD NAND应用之SD协议系统功能和概念 1 基础知识

    (SDXC): 32GB以上,不超过2TB 工作电压范围:2.7 V ~ 3.6 V专为只读和读写卡设计。 总线速度模式(使用4条并行数据线) (1)默认速度模式:3.3V信令,频率最高可达25mhz,最高
    的头像 发表于 07-19 11:47 501次阅读
    <b class='flag-5'>瀚海</b><b class='flag-5'>微</b><b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>应用之<b class='flag-5'>SD</b><b class='flag-5'>协议</b>系统功能和概念 1 基础知识

    SD NANDSPI NAND和eMMC的区别对比分析

    SPI NANDSD NAND和eMMC是三种不同类型的嵌入式存储技术,它们各自具有独特的特点和应用场景。以下是这三种存储技术的主要区别:
    的头像 发表于 07-02 11:31 1086次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、<b class='flag-5'>SPI</b> <b class='flag-5'>NAND</b>和eMMC的区别对比分析

    Verilog:【8】基于FPGA实现SD NAND FLASH的SPI协议读写

    的硬件电路连接,下一步就是根据SD卡的读写时序讲通信方式初始化为SPI模式,并按照SD协议进行读写
    发表于 06-21 17:58

    SD NANDSPI NAND的区别

    SD NANDSPI NAND各有优缺点,适用于不同的应用场景。SD NAND提供更高的
    的头像 发表于 06-04 14:26 1788次阅读

    什么是SD NAND存储芯片? SD NAND与TF卡的区别

    什么是SD NAND?它俗称贴片式T卡,贴片式TF卡,贴片式SD卡,贴片式内存卡,贴片式闪存卡,贴片式卡...等等。虽然SD NAND 和T
    的头像 发表于 01-06 14:35 1662次阅读
    什么是<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>存储芯片? <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>与TF卡的区别

    什么是SD NAND存储芯片?

    NAND闪存芯片,支持 ECC (Error Correcting Code) 算法和坏块管理,能有效地降低数据丢失的风险。   高速读写SD NAND
    发表于 01-05 17:54