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

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

3天内不再提示

瀚海微SD NAND存储功能描述(12)时钟控制和CRC

吕辉 来源:jf_40298777 作者:jf_40298777 2024-08-13 10:27 次阅读

时钟控制

主机可以使用SD Memory Card总线时钟信号将卡切换到节能模式或控制总线上的数据流(以避免欠运行或过运行)。主机不允许降低时钟频率或关闭时钟。

例如,在具有512字节数据缓冲区的主机希望将数据传输到具有1kbyte写块的卡的情况下。因此,为了保持所有数据的连续传输,从卡的角度来看,到卡的时钟应该在第一个512字节之后停止。然后,主机将用另一个512字节填充其内部缓冲区。在主机中写块的后半部分准备好后,它将通过重新启动时钟电源继续向卡传输数据。这样,卡就不能识别数据传输中的任何中断。有一些限制是HOST应该考虑的:

总线频率可随时更改(受最大数据传输频率和规范文件定义的识别频率的限制.

上述豁免是ACMD41 (SD_APP_OP_COND)。发出ACMD41命令后,由主机执行以下1)或2)程序,直到卡准备就绪。

1)发出100 KHz-400 KHz频率范围内的连续时钟。如果主机想要停止时钟,则通过ACMD41命令以小于50 ms的间隔轮询忙位。

wKgaoma6xBWAQcuKAABp7p_WMBs752.png

这是一个明显的要求,时钟应该运行的卡输出数据或响应令牌。在最后一次SD存储卡总线事务之后,要求主机在关闭时钟之前提供8(eight)个时钟周期供卡完成操作。以下是各种总线事务的列表:没有回应的命令。

8个时钟主机命令结束位之后。带有响应的命令。

8个时钟在卡响应结束位之后。读数据事务。

8个时钟在最后一个数据块的结束位之后。写数据事务。

8人时钟在CRC状态令牌之后。允许主机关闭“忙”卡的时钟。

无论主机时钟如何,卡都将完成编程操作。但是,主机应该为卡提供一个时钟边缘来关闭它的忙音信号。如果没有时钟边缘,卡(除非先前通过取消选择命令cmd7断开连接)将永远迫使DAT线向下。

CRC (Cyclic Redundancy Code)

CRC旨在保护SD存储卡命令、响应和数据传输,防止SD存储卡总线上的传输错误。为每个命令生成一个CRC,并检查CMD行上的每个响应。对于数据块,每个传输的块生成一个CRC。生成并检查CRC,如下所述。

CRC7

CRC7检查用于所有命令、除类型R3之外的所有响应以及CSD和CID寄存器。CRC7是一个7位值,计算方法如下:

第一个位是对应的位串(命令、响应、CID或CSD)的最左边的位多项式的阶n是CRC保护位的个数减少1。命令和响应(n = 39)需要保护的比特数为40,CSD和CID (n = 119)需要保护的比特数为120。

wKgaoma6xCuAIXeZAABUbt57DWA508.png

CRC7例子

命令/响应的CRC部分被保留。

wKgZoma6xDmADPzvAAB85PIT_0M093.png

CRC16

在使用一条DAT线路的情况下,CRC16用于块传输模式下的有效负载保护。CRC校验和是一个16位的值,计算方法如下:

wKgZoma6xEiALvd0AABJewb95qI019.png

第一个位是相应块的第一个数据位。多项式的度n表示数据块的位数减少1

(例如,块长度为512字节时为e.g.n =4095)。发生器多项式G(x)是一个标准的CCITT多项式。代码的最小距离为d-4,用于负载长度为2048字节(n <= 16383)。在单数据线模式和宽总线模式下应使用相同的CRC16方法在宽总线模式下,CRC16在每条线路上分别完成。

wKgaoma6xFiAD-SnAABQfEgD2OY950.png

CRC16例子

512字节的0xFF data-->CRC16=0x7FA1

错误条件

CRC与非法命令

所有命令都由CRC (cvclic redundancy check)位保护。如果地址卡的CRC检查失败,则该卡不响应,命令不执行。卡不改变它的状态,并且在状态寄存器中设置了COM CRC ERROR位。同样,如果接收到非法命令,卡将不改变其状态,不响应,并在状态寄存器中设置ILLEGAL_COMMAND错误位。状态图中只显示非错误状态分支。下表给出了完整的状态转换描述。

非法命令有不同的类型:属于卡不支持的类的命令(如:只读卡中的写入命令)。

当前状态下不允许的命令(如:CMD2处于传输状态)。

未定义的命令(如:CMD5)。

wKgaoma6xGqAPmydAAEayL5NiCU766.pngwKgZoma6xHSAPAbTAAFRlY5F5_8035.png

审核编辑 黄宇

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

    关注

    13

    文章

    4261

    浏览量

    85656
  • crc
    crc
    +关注

    关注

    0

    文章

    199

    浏览量

    29433
  • SD NAND
    +关注

    关注

    0

    文章

    81

    浏览量

    1212
收藏 人收藏

    评论

    相关推荐

    国产安路FPGA SD NAND FLASH 初步描述

    说起SD NAND FLASH常被联想到SD卡,SD NAND FLASH具备当前SD卡的基本
    发表于 10-16 18:12

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

    总线传输保护 总线上传输的每条SD卡命令都受到CRC位的保护。在SPI模式下,SD存储卡提供了CRC ON模式,使具有可靠数据链路的系统能够
    的头像 发表于 10-09 10:29 281次阅读
    <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> 协议(37)SPI总线保护和读写

    瀚海SD NAND存储功能描述(28)RCA Registers

    CMD7将所有卡设置为standby状态。 DSR register (Optional) 后面的内容会详细描述了16位驱动级寄存器。它可以选择性地用于改善扩展操作条件下的总线性能(取决于总线长度、传输
    的头像 发表于 09-23 10:15 176次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(28)RCA Registers

    瀚海SD NAND存储功能描述(26)CSD Registers

    寄存器中的CSD STRUCTURE字段表示其结构版本。 CSD结构的版本号如下表所示。   以下部分描述CSD字段和相关
    的头像 发表于 09-18 10:17 379次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(26)CSD Registers

    瀚海SD NAND存储功能描述(25)SD Registers

    寄存器是存储实际配置参数的配置寄存器。为了使将来的扩展成为可能,该卡应在寄存器的保留位中返回0。 OCR寄存器 32位操作条件寄存器存储卡的Vpo电压剖面。此外,这个寄存器还包括状态信息位。如果卡上电过程已经完成,则设置一个状态位。这个寄存器包括另一个状态位,在设置上电状
    的头像 发表于 09-14 09:53 243次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(25)<b class='flag-5'>SD</b> Registers

    瀚海SD NAND存储功能描述(22)Timing Values

    Timing Values 块读取Gap 在读取操作过程中,由于主机缓冲区已满,主机需要通过停止SDCLK来停止从卡中读取数据的输出。考虑到使用采样时钟调优方法,主机需要在块间隙停止SDCLK,而
    的头像 发表于 09-04 11:20 223次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(22)Timing Values

    瀚海SD NAND存储功能描述(21)数据读写

    命令(CMD17)开始,该命令在参数字段中指定起始地址。响应像往常一样在CMD行上发送。 卡的数据传输开始于从读命令结束位开始的访问延时Nac之后。在最后一个数据位之后,CRC校验位的后缀允许主机检查传输错误。 多块读取 在多块读取模式下,卡按照主机的
    的头像 发表于 09-03 10:14 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'>功能</b><b class='flag-5'>描述</b>(21)数据读写

    瀚海SD NAND存储功能描述(18)命令类e

    SD存储SD 状态 SD状态包含与SD存储卡专有特性相关的状态位,并且可能用于未来特定应用程序
    的头像 发表于 08-26 10:00 270次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(18)命令类e

    瀚海SD NAND存储功能描述(17)命令类d

    以“x”表示的值表示变量项。除了R3类型(见下文)之外的所有响应都受CRC保护。每个命令码字以结束位(总是1)结束。 对于SD存储卡有五种类型的响应。SDIO卡支持额外的R4和R5响应类型。有关SDIOl命令和响应的详细信息,请
    的头像 发表于 08-23 10:40 235次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(17)命令类d

    瀚海SD NAND存储功能描述(14)命令类a

    的类总是被设置为1。具有特定功能的卡可能需要支持一些可选命令。 例如,Combo Card应该支持CMD5。等级0、2、4、5和8是强制性的,所有SD存储卡都应支持。除CMD40外,SDHC和SDXC是强制性的。其他类是可选的。
    的头像 发表于 08-19 10:26 248次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(14)命令类a

    瀚海SD NAND存储功能描述(11)命令系统CMD8

    25 MB/sec的接口速度,时钟速率增加到50 MHz, CLK/CMD/DAT信号时序和电路条件被重新考虑并从物理层规范1.01版本更改。 上电后,SD卡处于默认的速度模式,使用开关功能命令
    的头像 发表于 08-12 16:03 343次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(11)命令系统CMD8

    瀚海SD NAND存储功能描述(10)CMD6和其他命令关系

    。如果主机无法获取CMD6的有效数据,建议发出CMDO,尝试重新初始化。 CMD6数据与CMD12的关系 案例1:不完整案例(卡没有输出所有数据)如果主机发送CMD12的结束位在CRC第15位之前,则
    的头像 发表于 08-11 16:32 306次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(10)CMD6和其他命令关系

    瀚海SD NAND存储功能描述(9)切换功能

    开关功能状态 开关功能状态是返回的数据块,其中包含功能和当前消耗信息。块长度预定义为512位,不需要使用SET_BLK_LEN命令。状态数据结构如下表所示。响应的状态位包含功能组的信息
    的头像 发表于 08-09 10:15 232次阅读
    <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'>功能</b><b class='flag-5'>描述</b>(9)切换<b class='flag-5'>功能</b>

    瀚海SD NAND应用之SD协议存储功能描述2 初始化命令

    ACMD41的功能;争论中的HCS和回应中的CCS(卡容量状态)。 HCS被卡忽略,卡对CMD8没有反应。 但是,如果卡没有返回CMD8响应,主机应该将HCS设置为0。标准容量SD存储卡忽略HCS。如果
    的头像 发表于 07-22 10:54 328次阅读
    <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><b class='flag-5'>功能</b><b class='flag-5'>描述</b>2 初始化命令

    SD NAND:儿童玩具的多功能存储神器

    儿童玩具的发展一直在不断创新,而SD NAND作为一种多功能存储器,为儿童玩具带来了全新的应用体验。无论是音乐和故事播放器,还是教育游戏和应用,甚至是图像和视频
    的头像 发表于 01-31 16:47 624次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>:儿童玩具的多<b class='flag-5'>功能</b><b class='flag-5'>存储</b>神器