• eMMC基础技术6:eMMC data读写


    1. 前言

    • data可以经data线从host发往device,也可以从device发往host
    • 数据线以是1线(DATA0),4线(DATA0~DATA3),8线(DATA0~DATA7)
    • 对每条数据线,每个时钟周期可以传输1bit(single data rate)和2bits(dual data rate)数据

    2. data传输

    eMMC传输是以block为单位,每个block后跟一个CRC,无论是读或写都允许单个或多个block传输,对于多block传输是以host发送一个stop命令为结束。

    2.1 多block读

    图 multiple block read

    Host 从 eMMC Device 读取数据的流程如上图所示。

    如果 Host 发送的是 Single Block Read 的 Command,那么 eMMC Device 只会发送一个 Block 的数据(一个 Block 的数据的字节数由 Host 设定或者为 eMMC Device 的默认值,更多细节请参考 eMMC 工作模式 章节)。
    如果 Host 发送的是 Multiple Block Read 的 Command,那么 eMMC Device 会持续发送数据,直到 Host 主动发送 Stop Command。

    NOTE:从 eMMC Device 读数据都是按 Block 读取的。

    2.2.多block写

    图 multiple block write

    Host 向 eMMC Device 写入数据的流程如上图所示。

    如果 Host 发送的是 Single Block Write Command,那么 eMMC Device 只会将后续第一个 Block 的数据写入的存储器中。
    如果 Host 发送的是 Multiple Block Write Command,那么 eMMC Device 会持续地将接收到的数据写入到存储器中,直到 Host 主动发送 Stop Command。

    eMMC Device 在接收到一个 Block 的数据后,会进行 CRC 校验,然后将校验结果通过 CRC Token 发送给 Host。
    发送完 CRC Token 后,如果 CRC 校验成功,eMMC Device 会将数据写入到内部存储器时,此时 DAT0 信号会拉低,作为 Busy 信号。Host 会持续检测 DAT0 信号,直到为高电平时,才会接着发送下一个 Block 的数据。如果 CRC 校验失败,那么 eMMC Device 不会进行数据写入,此次传输后续的数据都会被忽略。

    NOTE:向 eMMC Device 写数据都是按 Block 写入的。

    2.3 No Data

    在 Host 与 eMMC Device 的通信中,有部分交互是不需要进行数据传输的,还有部分交互甚至不需要 eMMC Device 的回复 Response。

    3.参考文档

     [1]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf

  • 相关阅读:
    记一次安装python umysql模块的报错
    elasticsearch 6.2.4添加用户密码认证
    mysqldump 备份数据和恢复
    记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
    配置rpm包安装的jdk环境变量
    centos6 & centos 7 防火墙设置
    MySQL启动出现The server quit without updating PID file错误解决办法
    ptmalloc,tcmalloc和jemalloc内存分配策略研究 ? I'm OWen..
    为什么要内存对齐 Data alignment: Straighten up and fly right
    linux驱动学习_1
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/6664287.html
Copyright © 2020-2023  润新知