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

    文章

    4113

    浏览量

    85261
  • crc
    crc
    +关注

    关注

    0

    文章

    197

    浏览量

    29355
  • SD NAND
    +关注

    关注

    0

    文章

    59

    浏览量

    1160
收藏 人收藏

    评论

    相关推荐

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

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

    擦除单元速度类规范定义了一个新的管理单元AU(分配单元)。擦除超时计算被定义为AU的基础。SD存储卡支持块擦除,但擦除块需要更多的时间,这是AU(部分擦除AU)的一部分。在这种情况下,主机应该在以AU为基础计算的超时结果中添加250毫秒。当开始和结束块位于相同的部分擦除A
    的头像 发表于 09-07 10:58 149次阅读
    <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>(24)擦除超时计算

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

    Timing Values 块读取Gap 在读取操作过程中,由于主机缓冲区已满,主机需要通过停止SDCLK来停止从卡中读取数据的输出。考虑到使用采样时钟调优方法,主机需要在块间隙停止SDCLK,而
    的头像 发表于 09-04 11:20 110次阅读
    <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 159次阅读
    <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 159次阅读
    <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 156次阅读
    <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 171次阅读
    <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 194次阅读
    <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 140次阅读
    <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 164次阅读
    <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应用存储功能描述(6)读写数据

    宽总线选择/取消 选择宽总线(4位总线宽度)操作模式可以使用AcMD6选择/取消选择。默认总线上电或GO IDLE (CMDO)后的宽度为1位总线宽度。 要改变母线宽度需要满足两个条件: a)卡处于“传输状态”。 b)卡未锁定被锁定的卡将响应ACMD6为非法命令。 2GB卡 要制作2GByte卡,最大块长度(READ BL LEN- write BL LEN)应设置为1024字节。但是,CMD16设置的块长度最多为512字节,以保持与512字节最大块长度卡(小于等于2GByte卡)的一致性。 数据读取 当没有数据传输时,通过上拉使数
    的头像 发表于 08-06 14:21 198次阅读
    <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>(6)读写数据

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

    ACMD41的功能;争论中的HCS和回应中的CCS(卡容量状态)。 HCS被卡忽略,卡对CMD8没有反应。 但是,如果卡没有返回CMD8响应,主机应该将HCS设置为0。标准容量SD存储卡忽略HCS。如果
    的头像 发表于 07-22 10:54 218次阅读
    <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协议系统功能和概念 1 基础知识

    针对目前使用的SDNAND 、SD卡、TF卡,简单介绍一下系统信息 标准容量SD存储卡(SDSC):不超过2GB 高容量SD存储卡(SDHC
    的头像 发表于 07-19 11:47 319次阅读
    <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 NAND:儿童玩具的多功能存储神器

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

    什么是SD NAND存储芯片?

      SD NAND是一种基于NAND闪存技术的存储设备,与其他存储设备相比,它具有以下几个显著的优点:   高可靠性:
    发表于 01-05 17:54