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

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

3天内不再提示

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

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

数据读取

注:数据线表示数据总线(1位或4位)。

单块读取

主机选择一张卡进行CMD7的数据读取操作,并设置CMD16面向块的数据传输的有效块长度。读操作的基本总线时序如下图所示。该序列从单个块读取命令(CMD17)开始,该命令在参数字段中指定起始地址。响应像往常一样在CMD行上发送。

wKgaombWcGOAaEX3AACUXGVjOPs718.png

卡的数据传输开始于从读命令结束位开始的访问延时Nac之后。在最后一个数据位之后,CRC校验位的后缀允许主机检查传输错误。

多块读取

在多块读取模式下,卡按照主机的初始读取命令发送连续的数据块流。数据流由停止传输命令(CMD12)终止。数据块的时序如下图1所示,停止命令的响应如下图2所示。在stop命令结束位之后,数据传输将停止两个时钟周期。

wKgZombWcHaAOw33AACTwAMj2TU293.pngwKgaombWcIOAFVITAACc7gMXAdg772.png

数据写入

单块写入主机选择一张卡进行CMD7的数据写操作。主机设置CMD16面向块的数据传输的有效块长度。写操作的基本总线时序如下图所示。该序列从单个块写命令(CMD24)开始,该命令(在参数字段中)确定起始地址。它像往常一样由CMD行上的卡响应。收到卡片响应后,从主机开始的数据传输开始NwR时钟周期。

数据的后缀是CRC校验位,允许卡检查传输错误。卡将CRC检查结果作为CRC状态令牌在DATo线路上发回。在传输错误的情况下,卡发送一个负CRC状态('101')。在无错误传输的情况下,卡发送一个正的CRC状态(010)并开始数据编程过程。当发生flash编程错误时,卡将忽略所有进一步的数据块。在这种情况下,不会向主机发送CRC响应,因此总线上不会有CRC起始位,并且三个CRC状态位将读取('111')。下一个命令的响应中显示CRC Status后出现错误。

wKgaombWcJSAHyddAACmDmZo7lc841.png

注意,CRC响应输出总是在数据结束后的两个时钟。如果卡没有空闲的数据接收缓冲区,卡通过将数据线拉到LOW来指示这种情况。只要至少有一个用于定义的数据传输块长度的接收缓冲区变为空闲,卡就停止拉下DAT0线。该信令不提供任何关于主机应该轮询的数据写状态的信息

多块写入

在多块写模式下,卡期望数据块按照主机的初始写命令连续流。

在单块写入的情况下,数据的后缀是CRC校验位,以允许卡检查传输错误。卡将CRC检查结果作为CRC状态令牌在DAT0线路上发回。在传输错误的情况下,卡发送一个负CRC状态('101')。在非错误传输的情况下,卡发送一个正CRC状态('010')并开始数据编程过程,当flash编程发生错误时,卡将忽略所有进一步的数据块,在这种情况下,不会向主机发送CRC响应,因此总线上不会有CRC起始位,三个CRC状态位读为('111');

数据流由停止传输命令(CMD12)终止。带卡忙信号和不带卡忙信号的数据块时序如下图所示。

wKgZombWcKmAXXbHAACO9CN5iDg494.png

停止传输命令的工作原理与读取模式类似。下方图描述了不同卡状态下stop命令的执行时间。

wKgaombWcMGACfvOAACpEtn6hjI919.png

只有当块的CRC数据被验证并且CRC状态令牌发送回主机时,卡才会将数据块视为成功接收并准备好编程。下方图2是一个试图传输CRC状态块被中断(被主机停止命令)的例子。该序列与所有其他停止传输示例相同。在数据线上,主机命令的结束位后面跟着一个数据位,然后开始忙信令。在这种情况下,没有用于切换总线方向的Z时钟,因为总线方向已经指向主机。在这种情况下,接收到的数据块被认为是不完整的,不会被编程。

wKgZombWcNSAWpjPAAC3nwDFg58595.png

前面的所有示例都处理了主机在非活动数据传输期间停止数据传输的场景。下面两个图描述了接收数据块之间的停止传输的场景。在第一个示例中,卡忙于对最后一个块进行编程,而在第二个示例中,卡是空闲的。然而,在输入缓冲区中仍然有未编程的数据块。一旦收到停止传输命令并且卡激活忙音信号,这些块就被编程。

wKgZombWcOeAANIPAAEqEJw45XA311.png

R1b时序在R1b命令操作期间,卡可能发出“busy”(通过将数据线拉低)的信号。busl事务定时如上图所示(非Nse指定)。在非UHS-I模式下,R1b忙线在命令结束位后2个时钟启动。在UHS-Il模式下,从命令结束位开始2到4个时钟后启动R1b忙。

重新选择忙卡当当前处于断开状态的忙卡被重新选中时,它将在数据线上恢复其忙信令。重选卡的总线时序如上图所示(非Nse指定)。l在非UHS-I模式下,所选卡从CMD7结束位开始指示忙2个时钟。在UHS-I模式下,从CMD7的结束位开始,所选卡开始指示忙2到4时钟。

审核编辑 黄宇

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

    关注

    13

    文章

    4296

    浏览量

    85799
  • 数据线
    +关注

    关注

    8

    文章

    283

    浏览量

    37719
  • SD NAND
    +关注

    关注

    0

    文章

    83

    浏览量

    1234
收藏 人收藏

    评论

    相关推荐

    一文带你了解什么是SD NAND存储芯片

    的简单介绍:   什么是SD NAND?很简单顾名思义就是内部集成了SD卡或TF卡(这里有必要说明SD卡和TF卡除了大小不同,引脚不同之外驱动,功能
    发表于 11-13 15:20

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

    NAND FLASH具有还有坏块管理,数据ECC功能和异常掉电保证数据安全存储功能。封装尺寸
    发表于 10-16 18:12

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

    CMD7将所有卡设置为standby状态。 DSR register (Optional) 后面的内容会详细描述了16位驱动级寄存器。它可以选择性地用于改善扩展操作条件下的总线性能(取决于总线长度、传输
    的头像 发表于 09-23 10:15 202次阅读
    <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 Register 卡片专用数据寄存器提供有关访问卡片内容的信息。CSD定义了数据格式、纠错类型、最大数据访问时间、是否可以使用DSR寄存器等。寄存器的可编程部分(以W或E标记的条目,见下
    的头像 发表于 09-18 10:17 461次阅读
    <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 273次阅读
    <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 264次阅读
    <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存储功能描述(18)命令类e

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

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

    读、写、擦除超时条件 如果主机在给定的超时时间内没有收到任何响应,则应假定该卡不会响应,并尝试恢复(例如重置卡,电源周期,拒绝等)。 Read 对于标准容量SD存储卡,读取操作的超时条件发生的时间
    的头像 发表于 08-18 13:43 314次阅读
    <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>(13)<b class='flag-5'>读写</b>擦除超时

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

    高速模式(25mb /秒接口速度) 虽然Rev 1.01 SD存储卡支持高达12.5 MB/秒的接口速度,但为了支持主机不断增长的性能需求和内存大小持续增长,25 MB/秒的速度是必要的。为了实现
    的头像 发表于 08-12 16:03 389次阅读
    <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存储功能描述(9)切换功能

    开关功能状态 开关功能状态是返回的数据块,其中包含功能和当前消耗信息。块长度预定义为512位,不需要使用SET_BLK_LEN命令。状态数据
    的头像 发表于 08-09 10:15 260次阅读
    <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)读写数据

    ,CMD16设置的块长度最多为512字节,以保持与512字节最大块长度卡(小于等于2GByte卡)的一致性。 数据读取 当没有数据传输时,通过上拉使数
    的头像 发表于 08-06 14:21 287次阅读
    <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)<b class='flag-5'>读写</b><b class='flag-5'>数据</b>

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

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

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

    什么是SD NAND存储芯片?

    前言   大家好,我们一般在STM32项目开发中或者在其他嵌入式开发中,经常会用到存储芯片存储数据。今天我和大家来介绍一款存储芯片,我这里采用(雷龙) CS创世
    发表于 01-05 17:54