004 Data Packet Token Format

 

● Data 可以经Data Line从Host发往 Device,也可以从Device 发往Host。

● Data Line :1线(DATA0),4线(DATA0 - DATA3),8线(DATA0 - DATA7)

● Pre Data Line,每个Cycle可以传输1Bit(single data rate)或2bit(dual data rate)

● eMMC 传输是以Block为单位的,每个Block后跟一个CRC,无论Write or Read 都允许单个或者多个Block传输,对于多个Block传输是以Host发送一个Stop命令为结束。

 

2.3.1.1传输类型SDR3类)

① 1 Bits  Bus

Start + Data + CRC7 +End ,只使用了DATA0数据线,对于1个Block(Block Length= 512 Byte),需要花费Block  length *8 Cycles

② 4 Bits  Bus

对于1个Block(Block Length= 512 Byte),需要花费Block  length *2 Cycles

③ 8 Bits  Bus

对于1个Block(Block Length= 512 Byte),需要花费Block  length *1 Cycles

 

 

2.3.1.2传输类型DDR2类) 

① 4 Bits DDR

对于1个Block,需要花费Block  length *2 /2=1Cycles

② 8 Bits DDR

对于1个Block,需要花费Block  length /2 =0.5Cycles

● DDR模式下,DDR传输时,上升沿和下降沿都会传输数据。在上升沿传输奇数字节1,3,5),在下降沿传输偶数字节2,4,6)。1个data line上有二个相互交织的CRC16,上升沿的CRC组成ODD CRC16,下降沿组成Even CRC16.上升沿用于检测上升沿所有位的数据,下降沿用于检测下降沿所有位的数据。

 

 

 

 

2.3.1.3传输类型HS400(采用8 Bits of DDR)

 

HS400是高电平&低电平用于数据传输,对于1个Block(Block Length= 512 Byte),需要花费Block  length /2= 0.5 Cycles 

 

2.3.1.4 Multiple Block Read

 

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

 

● 如果Host 发送的是 Single Block Read 的Command,那么eMMC Device 只会发送一个Block的数据,一个Block的数据的字节,由Host设定或者eMMC Device 的默认值。

● 如果Host 发送的是Multiple Block Read的Command,那么eMMC Device 会持续发送数据,直到Host 主动发送Stop Command。

● eMMC Device Read DATA按照Block 读取的。

 

 

 

2.3.1.5 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的数据后,会进行CARC校验,然后将校验结果通过CRC Token发送给Host。发送完CRC Token后,二种情况:

如果CRC校验成功,eMMC Device 会将数据写入到内部存储器时,此时DATA0 信号会拉低,作为Busy信号,Host会持续检测DATA 0信号,直到为高电平时,才会接着发送下一个Block的数据。

如果CRC校验失败,那么eMMC Device 不会进行数据写入,此次传输后续的数据都会被忽略。

● 往eMMC Device 写入数据都是按Block写入的。

 

2.3.1.6 No DATA

 

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

posted @ 2020-01-21 13:56  楚格  阅读(197)  评论(0编辑  收藏  举报