通信协议--eMMC整理

目录

 

前言:

一. 什么是eMMC

二. 四个接口

三. 数据传输

四.  Data Block


 

前言:

由于eMMAC的资料比较少,但是好在仅有的资料比较好,特意在看了以后按自己的逻辑和理解程度梳理了,粗中有细,方便以后回顾。

一. 什么是eMMAC

eMMC 是 embedded MultiMediaCard 的简称。MultiMediaCard,即 MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而 eMMC 则是对 MMC 的一个拓展标准。

 

二. 四个接口

CLK: 用于同步的时钟信号

Data Strobe:  此信号是从Device端输出的时钟信号,频率和CLK相同,用于同步从Device端输出的数据。

CMD:此信号用于发送Host 的command和Device的response。

DAT0-7:用于传输数据的8bit总线

 

三. 数据传输

  •   1.host 从 eMMC Device读取数据

         具体过程(单 Block读取)

         1. host发送Sing Block Read的Command给eMMC Device

          2. eMMC Device发送一个Block的数据给host( 附带CRC校验码),  eMMC Device会持续发送数据,直到Host发送Stop 

          command 才结束发送

 

         具体过程(多 Block读取)

         1. host发送一个需要读取的Block Count的Command

         2. host 发送 Multiple Block Read 的Command 给eMMC Device

         3. eMMC Device 在完成指定Block Count(附带CRC校验码)的发送后,会自动结束发送。

       

 

  •  2. host向eMMC Device写数据

         具体过程(单Block写入)

         1. host发送Sing Block Write的Command给eMMC Device

         2. eMMC Device接收到1个Block后( 附带CRC校验码), 会进行CRC校验。 

         3.eMMC Device将校验结果通过CRC Token发送给Host。

         4.如果CRC校验成功, eMMC Device会将数据写入到内部存储器,此时DAT0信号会被拉低,作为busy信号。Host会持续 

         检测DAT0信号,直到为高电平时,才会接着发送下一个Block的数据。如果CRC校验失败,那么eMMC Device不会进行数           据写入,此处传输后续的数据都会被忽略。eMMC Device会持续发送数据,直到Host发Stop command 才结束发送

 

         具体过程(多Block写入)

         1. host发送一个需要写入的Block Count的Command

         2. eMMC Device每接收到1个Block后( 附带CRC校验码), 会进行CRC校验。

         3.eMMC Device将每个block的校验结果通过CRC Token发送给Host。

         4.如果CRC校验成功, eMMC Device会将数据写入到内部存储器,此时DAT0信号会被拉低,作为busy信号。Host会持续 

         检测DAT0信号,直到为高电平时,才会接着发送下一个Block的数据。如果CRC校验失败,那么eMMC Device不会进行数           据写入,此处传输后续的数据都会被忽略。 eMMC Device在接收到指定Block Count的数据后,就自动结束数据接收

 

四.  Data Block

Data Block 由 Start Bit、Data、CRC16 和 End Bit 组成。以下是不同总线宽度和Data Rate下,Data Block的详细格式:

 

  • 1.SDR模式下的Data Block

       在一个时钟周期内,CMD 和 DAT0-7 信号上都可以支持传输 1 个比特,即 SDR (Single Data Rate) 模式。

         a.  1 Bit Bus SDR

         由于SDR模式下,一个时钟周期只传输1个bit,又只用到1条Data line, 因此Data Block的格式如下:

         

 

        b.  4 Bits Bus SDR

        由于用到了4条 Data line, 因此Data Block的格式如下:

        

       c.8 Bits Bus SDR

       由于用到了8条 Data line, 因此Data Block的格式如下:

       

 

  • 2. DDR模式下的Data Block

     DDR (Double Data Rate)  模式,即在一个时钟周期内,可以传输 2 个比特。在DDR模式下,每条Data Line在时钟的上升沿和下降沿都会传输数据,其中上升沿传输数据的奇数Bit(1,3,5...), 下降沿传输数据的偶数Bit(2, 4, 6...)

          a. 4 Bits Bus DDR

     

         b. 8 Bits Bus DDR

         

 

参考资料:

https://linux.codingbelief.com/zh/storage/flash_memory/emmc/emmc_bus_protocol.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值