一种基于FPGA的eMMC主控制器制造技术

技术编号:24330163 阅读:59 留言:0更新日期:2020-05-29 19:20
本发明专利技术公开了一种基于FPGA的eMMC主控制器,包括eMMC顶层模块、eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,eMMC顶层模块分别与eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块及eMMC擦除模块连接进行数据通信;eMMC读写模块分别与eMMC控制模块、eMMC缓存模块连接进行数据通信;eMMC擦除模块与eMMC控制模块进行数据通信。本发明专利技术对外接口简单,提供数据流接口给用户使用;对于FPGA设计时序容易收敛,使用更稳定。

【技术实现步骤摘要】
一种基于FPGA的eMMC主控制器
本专利技术属于电子信息领域,具体涉及一种基于FPGA的eMMC主控制器。
技术介绍
随着电子信息技术的高速发展,人们对智能手机、平板电脑等消费电子产品和移动多媒体设备的需求快速增长,引发了对高速大容量数据存储的需求越来越大。智能终端和移动多媒体设备对文档、图片、音频、视频等数据存储要求越来越高。而在电子产品中传统使用的NANDFLASH芯片具有兼容性差、操作复杂度高、管理难度大、传输速度慢的缺点,eMMC作为一种内嵌式存储芯片,以其接口简单、存储容量大、传输速度快和集成度高的优势,使得它在智能消费电子产品以及移动多媒体设备中广泛应用。现有的eMMC主控制器一般都是ARM处理器或者单片机进行控制,只需要调用硬件厂商底层函数进行控制就可以进行对eMMC读写,但是这种CPU控制的方法缺点在于速度低,并且随着CPU内部的多任务执行,eMMC的读写速度会越来越低。
技术实现思路
本专利技术的目的在于提供一种基于FPGA的eMMC主控制器,该模块对eMMC协议进行精简,对IP模块的接口简洁化设计,实现对eMMC进行数据读写和擦除控制。实现本专利技术目的的技术解决方案为:一种基于FPGA的eMMC主控制器,包括eMMC顶层模块、eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,eMMC顶层模块分别与eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块及eMMC擦除模块连接进行数据通信;eMMC读写模块分别与eMMC控制模块、eMMC缓存模块连接进行数据通信;eMMC擦除模块与eMMC控制模块进行数据通信。本专利技术与现有技术相比,其显著优点在于:1)简化用户接口,提供数据流操作;2)占用FPGA逻辑资源极少,容易移植,时序上容易收敛。附图说明图1为本专利技术所述的基于FPGA的eMMC主控制器实现框图。图2为本专利技术eMMC初始化流程图。图3为本专利技术eMMC数据读流程图。图4为本专利技术eMMC数据写流程图。具体实施方式下面结合附图对本专利技术作进一步详细描述。结合图1,本专利技术所述的一种基于FPGA的eMMC主控制器,按照eMMC(EmbeddedMultiMediaCard)协议标准规范,在Xilinx7系列FPGA(FieldProgramableGateArray)中进行逻辑编程,包括eMMC顶层模块、eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,eMMC顶层模块分别与eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块及eMMC擦除模块连接进行数据通信;eMMC读写模块分别与eMMC控制模块、eMMC缓存模块连接进行数据通信;eMMC擦除模块与eMMC控制模块进行数据通信。eMMC顶层模块功能是封装eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,提供简易指令操作给用户使用,并且提供数据流输入和输出接口。eMMC控制模块用于完成eMMC底层控制功能,包括读写、系统控制交互。eMMC初始化模块功能是系统上电后,在eMMC进行正常读写之前,必须按照eMMC协议规范规定的步骤完成初始化,初始化模块的主要功能是完成对eMMC芯片的基本配置工作,比如芯片复位、工作电压匹配、相对地址RCA分配、工作时钟切换以及数据总线位宽设置等。eMMC初始化模块包括CMD发送模块和CMD响应模块;系统上电后,在eMMC进行正常读写之前,必须按照eMMC协议规范规定的步骤完成初始化。本文设计的eMMC主控制器的初始化模块的主要功能是控制和引导eMMC设备完成初始化操作,其初始化流程图如图2所示。初始化模块完成的主要功能是eMMC芯片的基本配置操作,比如芯片复位、工作电压匹配、相对地址RCA分配、工作时钟切换以及数据总线位宽设置等。本专利技术设计的初始化模块其工作流程如下所示:(1)eMMC复位转换到Idle状态采用软件复位,主机通过控制器的初始化模块发送命令CMD0进行复位。eMMC复位之后,所有的寄存器都复位成默认值,此时CLK需要设置成0~400KHz范围,而本专利技术设计的初始化时钟输出的是400KHz,满足设计需求。(2)在Idle状态,该模块向eMMC设备发送命令CMD1进行双电压和扇区模式匹配,如果eMMC的响应寄存器OCR的busy位响应为0,因此设备上电复位没有成功,须要重新发送CMD1命令,直到接收到的busy位为1且电压范围和扇区模式匹配,则eMMC进入Ready状态。(3)在Ready状态,初始化模块通过发送命令CMD2请求读取eMMC设备CID的内部信息;如果命令发送成功并且得到了CID寄存器的内容(其中响应R2是136bit),eMMC则进入Identification状态,否则eMMC状态将维持在Ready状态不变。(4)初始化流程进入Identification状态之后,发送命令CMD3,对eMMC芯片进行相对地址RCA分配(其典型值是0x0001),对于eMMC阵列需要分配相互独立的相对地址,原因在于eMMC阵列是依靠不同的相对地址来区分的。完成相对地址分配之后,eMMC进入Stand-by状态,另外需要注意当eMMC一旦进入Stand-by状态就不再响应命令CMD1、CMD2和CMD3。(5)在Stand-by状态,首先发送命令CMD9,获取eMMC设备的CSD寄存器的值,可以得到诸如数据块长度、芯片存储容量、支持的最大时钟速率等。然后,再发送设备选定命令CMD7,命令CMD7通过参数中包含设备已经分配的相对地址RCA来选定设备,对于多片共享同一命令总线CMD的eMMC芯片,每次只能选定其中一片。但本文设计的eMMC阵列控制器命令总线CMD是分开连接的,所以可以同时选定所有的eMMC,如此一来eMMC阵列就可以同时工作,可以大大提高数据吞吐量。此时eMMC设备进入Transfer状态。(6)在Transfer状态,初始化模块首先发送命令CMD6,其中命令中包含切换工作速率的参数,将eMMC从初始化的低速模式切换到正常工作的高速模式。时钟模式切换以后,此模块需要再次发送CMD6命令,其中命令中包含的参数是数据位宽切换和时钟单双沿模式的选择,eMMC设备复位之后默认状态是一位数据位宽和时钟单沿模式。在该控制器设计中,数据位宽设定的是8位,时钟模式使用的是单沿模式。其中,这两次CMD6命令顺序可调换。此时,eMMC停留在Transfer状态,初始化工作全部完成,并生成初始化完成标志,通知用户层可以进行数据读写以及时钟模块可以将时钟切换到高速时钟。eMMC控制器的初始化模块完成了eMMC复杂的基本配置和操作流程,简化了上层用户的操作。如果eMMC在数据传输过程或其他过程出现不可预见的错误,可以利用硬件复位使本文档来自技高网...

【技术保护点】
1.一种基于FPGA的eMMC主控制器,其特征在于:包括eMMC顶层模块、eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,eMMC顶层模块分别与eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块及eMMC擦除模块连接进行数据通信;eMMC读写模块分别与eMMC控制模块、eMMC缓存模块连接进行数据通信;eMMC擦除模块与eMMC控制模块进行数据通信;/neMMC顶层模块功能是封装eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,提供简易指令操作给用户使用,并且提供数据流输入和输出接口;/neMMC控制模块用于完成eMMC底层控制功能,包括读写、系统控制交互;/neMMC初始化模块功能是系统上电后,在eMMC进行正常读写之前,必须按照 eMMC 协议规范规定的步骤完成初始化,初始化模块的主要功能是完成对eMMC 芯片的基本配置工作,比如芯片复位、工作电压匹配、相对地址RCA分配、工作时钟切换以及数据总线位宽设置;/neMMC读写模块是在对eMMC进行读写操作时,根据数据传输流程发送相应的读写操作命令以及响应的相应处理;/neMMC缓存模块是和用户数据流进行时钟和位宽转换,并通过逻辑功能电路控制读写方向和读写字节数量;/neMMC擦除模块功能是eMMC数据擦除和垃圾数据收集,需要用户输入擦除起始和结尾地址,在擦除eMMC时,根据eMMC标准的擦除流程发出相应的命令进行擦除,擦除完成时模块会给出标记;/nCMD发送模块根据CMD命令发送时序将CMD命令发送给eMMC芯片,模块接收到CMD命令后,生成对应的CRC校验值,根据CMD发送时序输出到CMD线上,模块处理完成后输出发送完成标志,命令响应类型和响应长度;/nCMD响应模块接收eMMC芯片发出CMD命令的响应数据,模块根据响应类型和长度,生成响应数据的CRC值,验证CRC值是否正确,最后给出响应数据和CRC校验是否正确的信号。/n...

【技术特征摘要】
1.一种基于FPGA的eMMC主控制器,其特征在于:包括eMMC顶层模块、eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,eMMC顶层模块分别与eMMC控制模块、eMMC初始化模块、eMMC读写模块、eMMC缓存模块及eMMC擦除模块连接进行数据通信;eMMC读写模块分别与eMMC控制模块、eMMC缓存模块连接进行数据通信;eMMC擦除模块与eMMC控制模块进行数据通信;
eMMC顶层模块功能是封装eMMC初始化模块、eMMC读写模块、eMMC缓存模块、eMMC擦除模块、CMD发送模块和CMD响应模块,提供简易指令操作给用户使用,并且提供数据流输入和输出接口;
eMMC控制模块用于完成eMMC底层控制功能,包括读写、系统控制交互;
eMMC初始化模块功能是系统上电后,在eMMC进行正常读写之前,必须按照eMMC协议规范规定的步骤完成初始化,初始化模块的主要功能是完成对eMMC芯片的基本...

【专利技术属性】
技术研发人员:朱明明王慧娟何士浩赵斌廖志成安凯田杰徐小淇
申请(专利权)人:中国航天科工集团八五一一研究所
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1