sdio 协议的read wait机制相当于是一个流控功能。在执行多块读后,sd卡会在每一个SDCLK持续发送数据。如果host内部的DMA或CPU已经来不及搬运这些数据了,导致controller 的buffer overflow,数据将会出现丢失。

解决办法1: host controller 在buffer 满时关闭SDCLK,sd卡没有clk驱动,会暂停数据发送。但是SDCLK关闭时无法发送其他CMD。

如下图,host 发送read mul-block 后,sd卡在每一个SDCLK都会发送数据。当host来不及处理时,会暂停发送SDCLK(蓝框部分),之前数据处理完成之后在可以接收数据时恢复SDCLK.

解决办法2:通过一个信号告诉SD卡,我已经来不及处理这些数据了,请暂停,这个就是read wait机制。

《SD Card Specification》中关于Read Wait 的描述:

6.5 Read Wait (Optional)
Host devices built to the SD Physical specification version 1.01 must control the SDCLK to stop the read data
block output from a card executing a multiple read command whenever the host cannot accept more data.
During the time that the host has stopped the SDCLK, a CMD52 cannot be issued. This limitation causes a
problem in that a host device built to the SD Physical specification version 1.01 cannot perform the I/O
command during a multiple read cycle.
In order to eliminate this limitation, the SDIO specification adds the read wait control to enable the host to issue
CMD52 during a multiple read cycle. Read Wait uses the DAT[2] line to allow the host to signal the card to
temporarily halt the sending of read data by a card. This feature is optional for an SDIO or combo card.
However, if an SDIO or combo supports Read Wait, all functions and any memory must support read wait.
Note that Read Wait is defined only for the SD 1 and 4-bit modes. It does not apply to SPI transfers.
To determine if a card supports the Read Wait protocol, the host must test SRW capability bit in the Card
Capability byte of the CCCR. If a card does not support the Read Wait protocol, the only means a host has to
stall (not abort) data in a read multiple command is to control the SDCLK.

翻译:

根据SD物理规范1.01版,主机设备必须控制SDCLK,以便在主机无法接受更多数据时,使执行多块读命令的卡暂停发送数据块的输出。

在主机停止SDCLK期间,无法发出CMD52。这一限制导致了一个问题,在一个多块读周期中,按照SD物理规范版本1.01构建的主机设备无法执行I/O命令。

为了消除这种限制,SDIO规范添加了读等待特性,以使主机能够在一个多块读周期中发出CMD52。Read Wait使用DAT[2]行来允许主机向卡发出信号,让卡暂时停止发送读数据。这个功能对于SDIO或combo卡是可选的。

但是,如果SDIO或combo支持读等待,那么所有函数和内存都必须支持读等待。

注意,Read Wait只在sd1和4位模式下定义。它不适用于SPI传输。

要确定卡是否支持读等待协议,主机必须在CCCR的卡功能字节中测试SRW功能位。如果卡不支持读等待协议,那么在Read multiple命令中,主机必须停止(而不是终止)数据的唯一方法就是控制SDCLK。

[SDIO]Read Wait 读等待机制相关推荐

  1. WebDriver元素等待机制

    能否构建健壮和可靠的测试是UI自动化测试能否成功的关键因素之一.但实际情况是当一个测试接着一个测试执行的时候,常会遇到各种不同的状况.比如脚本去定位元素或去验证程序的运行状态时,有时会发现找不到元素, ...

  2. selenium WebDriverWait类等待机制的实现

    在自动化测试脚本的运行过程中,可以通过设置等待的方式来避免由于网络延迟或浏览器卡顿导致的偶然失败,常用的等待方式有三种: 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  3. 【Java】三种等待机制

    [AT]三种等待机制 一. 等待机制种类 二. 三种等待机制应用场景 三.显示等待介绍 3.1 相关概念 3.2 显示等待用到的两个类 3.2.1 WebDriverWait 3.2.2 Expect ...

  4. 【Linux内核】RW读写锁机制

    读写锁机制 Linux内核中读写锁的机制是一种多读单写的锁机制,它允许多个读操作同时进行,但只能有一个写操作进行.当有写操作时,所有读操作都会被阻塞,直到写操作完成. 在内核中,读写锁主要由以下两个结 ...

  5. Deep Reading | 从0到1再读注意力机制,此文必收藏!

    译者 | forencegan 编辑 | 琥珀 出品 | AI科技大本营(ID: rgznai100) [AI科技大本营导语]注意力机制(Attention)已经成为深度学习必学内容之一,无论是计算机 ...

  6. 引读attention机制--个人理解

    文章目录 1. 意会--大脑注意到某物 2. 言传--分解注意过程 2.1 言传的准则 2.2 数据形式 和 大脑潜意识动作 2.3 观察分解例子 2.4 注意过程言传化 3. 公式化--注意机制 3 ...

  7. Mysql数据库事务:从未提交读—MVCC机制—Next-Key Lock,各种隔离级别及其解决对应问题的原理

    为了更好地理清类似脏读.不可重复读.幻读,未提交读.提交读.可重复读.串行化等概念,必需有这样一个认识:即这些概念都是属于数据库四大特性之一--隔离级别下的内容.而所谓的"隔离", ...

  8. 从未提交读—MVCC机制—Next-Key Lock,各种隔离级别及其解决对应问题的原理

    为了更好地理清类似脏读.不可重复读.幻读,未提交读.提交读.可重复读.串行化等概念,必需有这样一个认识:即这些概念都是属于数据库四大特性之一--隔离级别下的内容.而所谓的"隔离", ...

  9. oracle顺序读等待,Oracle Study之--Oracle等待事件(4)

    Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读 ...

最新文章

  1. java comparable接口_Java面试题之Java集合篇三
  2. 数学--数论---P4718 Pollard-Rho算法 大数分解
  3. 跳过 centos部署 webpy的各种坑
  4. SSH项目中根据Hibernate的映射文件生成数据库表的方案:
  5. margin相关技巧
  6. openstack 功能_OpenStack Juno的新功能
  7. 单纯形表的matlab输出,自编MATLAB版单纯性算法 可以列出单纯形表以及其他相关数据...
  8. 关联 VMware 产品的内部版本号和版本 (1014508)
  9. 读写分离架构的两种方式及问题
  10. 限制整个手机的网速 -- 360免费wifi
  11. Python连接MySQL数据库locahost无法连接的问题
  12. MQTT设置retained的作用
  13. 单片机实习音乐播放器的源码
  14. Proftpd配置文件
  15. imazing显示无法连接服务器,为什么苹果手机连接不上iMazing
  16. 关于GPS 坐标系的那些事
  17. [jeecms]获取父栏目下的子栏目名称
  18. 数据挖掘之 数据介绍思维导图
  19. 还在找一键换发型app?快来看这些一键换发型软件
  20. Volo.Abp 整合 WebApiClient 从请求中获取 Headers 信息

热门文章

  1. 最长回文子串问题求解
  2. 2021-09-30-THZ-前置
  3. Unicode, UTF8, UTF16, UTF32
  4. 使用 Hadoop 开发企业级应用
  5. 嵌入式核心板研发之路_启动迅为4412核心板_稳定运行_超强扩展能力
  6. 机械制造工艺及计算机辅助工艺设计,机械制造工艺及计算机辅助工艺设计pdf
  7. 游匣G15新机开箱测评,果然顶配是真香
  8. 使用jieba+wordcloud生成微信好友个性签名词云图
  9. python中的__dict__,__getattr__,__setattr__
  10. Win2000下的集成管理工具MMC(转)