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