eMMC基础技术2:eMMC概述

1.前言

本文主要从总体上对eMMC 进行简要介绍。主要包含如下的内容:

(1)eMMC系统的总体架构

(2)eMMC的总线协议

(3)分区管理

(4)设备寄存器

2.eMMC系统总体架构


                                                                                                                                        图1 eMMC 系统总体架构

                                                                  

eMMC规范主要定义了Device Controller和接口的相关规范,如图中蓝色部分标识

  • power部分

(1)VCCQ主要用于IO的供电也就是给eMMC内部的flash memory,VCC主要用于eMMC内部的Device Controller供电;

VCCQ和VCC分为两种电压,一种电压是high voltage(2.7v~3.6v),一种电压是dual voltage(1.70v~1.95v和2.7v~3.6v)

(2)VSSQ是IO的地也就是eMMC内部的flash memory的地,VCC是eMMC内部的Device Controller的地;

  • bus部分
有11条数据线
(1)clk, 0~200MHZ,每个cycle可以在上升沿或下降沿传输,也可以在上升沿和下降沿都传输;
(2)data strobe,由slave device 发送给host controller,主要用在HS400 mode,频率与clk一致,用于同步接收device的data,response和CRC status;
(3)cmd,双向信号线,用于从host发送命令给device和device发送response给host,有两种操作模式:open drain和push pull
(4) 8 bit data bus,双向信号线,工作在push pull mode,支持 1bit, 4bit, 8bit传输,默认上电或reset后只有DATA0用于数据传输,可以通过命令配置。在device内部,DAT1~DATA7包含上拉电阻,平时不使用时保持上拉状态(也就是高电平??),使用时则断开上拉。

  • Host Controller
通过发送CMD读写device端数据,并通过CMD对device端进行配置
  • eMMC device  controller
实现对memory的管理,接收bus端的CMD

3. eMMC总线协议

(1)包含三种token
command:  任何操作都要以CMD开始,只能由host发往device,且要串行完成;
response:   在接收到host端发送的CMD,device作为回应将通过command line发送一个response,只能有device发往host,且只能通过command line串行传输;
data:            data可由host发送device(写)可以由device发往host(读),data线可采用1线,4线,8线传输,对于每条data线,可以选择单沿传输(single data rate)还是双                      沿传输          (dual data rate)
注1:有些CMD是不需要发送respnse回应的,后面会有讲述

(2)device地址采用session地址,由host controller在初始化阶段指定???
(3)device通过CID进行识别;
(4)bus操作由CMD,response,data中的一种或几种组成,包括三种:CMD;CMD+response;CMD+response+data;
(5)读(写)数据时,data block后跟CRC bits,支持单个data block读(写)和multi blocks读(写),当multi blocks读(写)时,command发送stop命令表示读(写)结束;
(6)写数据时,device通过DATA0 的busy位来告知host当前block写入是否完成;

3.1 command token format



图2 cmd token format
总长度48bits;
固定以0开始,以1结束;
transmiter bit表示数据的传输方向,1代表从host to device;
通过CRC7保护,device 端在接收到CMD时同样会计算一个CRC值,如果与host发送的CRC不一致,则被认为是传输错误;
详情请参加 eMMC command

3.2 response token format




图3 response token format
有5种格式,使用哪种格式依赖于CMD,长度为48bits或136bits;
start bit 总是0,end bit总是1;
transmitter bit代表传输方向,0表示device to host;
详情请参见 eMMC response

3.3 1bit/4bit/8bit & sdr/ddr传输协议

(1) 1bit sdr传输


图4 1bit bus sdr传输
start bit + data + crc + end bit

1bit sdr只使用了DATA0数据线,对于1个block(block length=512BYTE)来讲,需要花费block length * 8 cycles

(2)4bit sdr传输

图5 4bit bus sdr传输
对于1个block(block length=512BYTE)来讲,需要花费block length  * 8 / 4 = block length *2 cycles
(3)8bit sdr传输

图5 8bit bus sdr传输
对于1个block(block length=512BYTE)来讲,对于1个block(block length=512BYTE)来讲,需要花费block length * 8 / 8 = block length cycles

(4)4bit bus ddr传输

                                                                      图6 4bit bus ddr传输
ddr传输时,上升沿和下降沿都会传输数据,对于1个block(block length=512BYTE)来讲,需要花费block lenght * 8 / 4 * 2 = block length cycles

(5)8bit bus ddr传输


ddr传输时,上升沿和下降沿都会传输数据,对于1个block(block length=512BYTE)来讲,需要花费block lenght * 8 / 8 / 2 = block length / 2 cycles
(6)8bit ddr for hs400 

hs400 高电平或低电平用于传输数据,对于1个block(block length=512BYTE)来讲,需要花费block lenght * 8 / 8 / 2 = block length / 2 cycles

3.4 bus speed mode



3.5 eMMC操作模式

主要有5种操作模式:
1. boot mode
有三种情况会进入boot mode:上电;硬件reset信号;发送CMD0并带参数0xf0f0f0f0

2.device identification mode
如果boot mode完成或者host/device不支持boot mode,则会进入此模式,接收到CMD3(SET_RCA)会退出此模式

3. interrupt mode

4.data transfer mode
指定完RCA后,device进入此模式;host在identify device后进入此模式

5.inactive mode
三种途径进入此模式:操作电压非法;访问模式非法;通过CMD15(GO_INACTIVE_MODE)命令



4.分区管理


5. device 寄存器







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值