基于FPGA的eMMC控制器及其工作方法技术

技术编号:9114180 阅读:525 留言:0更新日期:2013-09-05 03:25
本发明专利技术公开了基于FPGA的eMMC控制器及其工作方法,包括初始化模块、主控模块、eMMC接口逻辑模块、数据处理模块和时钟控制模块;所述初始化模块与eMMC接口逻辑模块双向通信,所述主控模块分别与eMMC接口逻辑模块和数据处理模块双向通信,所述时钟控制模块分别与初始化模块、主控模块和eMMC接口逻辑模块连接;工作时,所述初始化模块与上层应用系统通信,所述主控模块与上层应用系统双向通信,所述eMMC接口逻辑模块和数据处理模块均与eMMC芯片双向通信,所述数据处理模块通过外部缓存与上层应用系统双向通信。本发明专利技术具有通用性强、操作接口方便、能高速读写的优点。

【技术实现步骤摘要】
基于FPGA的eMMC控制器及其工作方法
本专利技术涉及eMMC存储控制器领域,尤其涉及基于FPGA的eMMC控制器及其工作方法。
技术介绍
传统的大容量存储介质多采用NANDFLASH,NANDFLASH生产厂商主要包括:三星、东芝、美光和海力士等,由于NANDFLASH存储芯片没有固定的标准,如果当前的NANDFLASH不能满足当前需求而需要更换时,硬件和驱动程序都需要根据每家公司的产品和技术特性来重新设计;另外NANDFLASH产品几乎每年制程技术都会推陈出新,导致相应存储介质的更新换代,相应的NANDFLASH驱动程序需要重新设计,这不但增加了产品的研发周期,也给项目带来了开发成本和开发效率等多方面的浪费。由于NANDFLASH的制程工艺不能保证在其生命周期中保持性能的可靠,因此在NANDFLASH的生产及使用过程中将会不可避免的产生坏块,因而,为保证其所存储数据的可靠性,NANDFLASH的驱动程序需增加坏块管理。如果操作时序和电路稳定性不存在问题的话,NANDFLASH一般不会造成整个块或者整个页不能读取或是全部出错,而会出现整个块或者整个页中只有一个或者几个bit出错,因而驱动程序中需加入ECC除错机制来提升数据传输的可靠性。由于NANDFLASH每个块的最大擦写次数是一定的,大约为一百万次,为延长NANDFLASH的使用寿命,驱动程序中需加入平均抹写储存区块技术。而随着NANDFLASH的更新换代,驱动程序中的坏块管理、ECC除错机制和平均抹写储存区块技术都需要进行重新设计,这样会给项目带来多方面的浪费。eMMC为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机和移动嵌入式产品而设计的。eMMC是一种嵌入式非易失性存储器系统,由NANDFLASH和相应的控制器两部分组成。eMMC的一个明显优势是在封装中集成了一个闪存(FLASH)控制器,它采用JEDEC标准BGA封装,并采用统一闪存接口管理闪存,同时接口电压可以是1.8V或者3.3V,最新标准的读速率高达200MB/s。由于采用标准的封装,eMMC也很容易升级,并不用改变硬件结构。NANDFLASH的制程等技术变化很快,特别是TLC技术和制程下降到20nm后,对NANDFLASH的管理是个巨大挑战;使用eMMC产品,主芯片厂商和客户就无需关注NANDFLASH内部的制程和产品变化,只需要设计eMMC控制器,通过eMMC所提供的标准接口来管理其内部闪存就可以了,这样可以大大降低产品开发难度和加快产品上市时间。eMMC可以很好的解决对MLC和TLC的管理,ECC除错机制、坏块管理、平均抹写储存区块技术和低功耗管理等也易于实现。由于eMMC不受限于NANDFLASH制程技术的改朝换代,具有容易升级、兼容性好等诸多优势,现已成为最热门的内嵌式存储器,其应用领域也由开始的智能手机,陆续扩展至平板计算机和工规产品等。由于eMMC技术刚刚兴起不久,针对eMMC控制器的实现方式也多为软件方式实现,一般是通过微处理器上运行驱动程序来发送命令,通过eMMC所提供的标准接口来实现对eMMC芯片的控制。面对市场应用对大数据量的高速存储需求,目前软件方式实现的eMMC控制器存在着明显的缺陷:1.读写eMMC芯片的速度慢。软件方式实现的eMMC控制器多采用eMMC8位数据线的单沿模式(SDR模式),而很少采用8位数据线的双沿模式(DDR模式),即使采用了8位数据线的双沿模式,由于是非硬件实现的原因,其读写带宽不能满足高速存储需求。2.提供的接口操作复杂,使用不方便。用户需要对eMMC底层的物理规范协议很熟悉才能完成对eMMC的操作,每个读/写控制操作都需要用户发送eMMC底层协议中的一系列命令才能完成,操作起来非常繁复;而且软件方式实现的eMMC控制器多是针对特定应用而开发的,因而导致移植困难,通用性差。
技术实现思路
本专利技术的目的就是为了解决上述问题,提供一种基于FPGA的eMMC控制器及其工作方法,它具有通用性强、操作接口方便、能高速读写的优点。为了实现上述目的,本专利技术采用如下技术方案:基于FPGA的eMMC控制器,包括初始化模块、主控模块、eMMC接口逻辑模块、数据处理模块和时钟控制模块;所述初始化模块与eMMC接口逻辑模块双向通信,所述主控模块分别与eMMC接口逻辑模块和数据处理模块双向通信,所述时钟控制模块分别与初始化模块、主控模块和eMMC接口逻辑模块连接;工作时,所述初始化模块与上层应用系统通信,所述主控模块与上层应用系统双向通信,所述eMMC接口逻辑模块和数据处理模块均与eMMC芯片双向通信,所述数据处理模块通过外部缓存与上层应用系统双向通信。所述初始化模块与eMMC接口逻辑模块进行交互,向eMMC接口逻辑模块发送初始化所需命令,通过eMMC接口逻辑模块控制eMMC芯片来完成对eMMC芯片的初始化,包括eMMC芯片的识别、电压匹配、模式配置;初始化完成后,所述初始化模块向上层应用系统发送初始化完成的标志信号。所述主控模块与上层应用系统进行交互,根据上层应用系统发来的读写命令、读写地址及读写长度,通过向eMMC接口逻辑模块和数据处理模块发送对应的控制命令,来完成数据的存储和读取。所述eMMC接口逻辑模块负责实现eMMC底层的物理规范协议,按照协议中的时序驱动eMMC芯片,根据初始化模块和主控模块发来的控制命令,实现对eMMC芯片的控制,同时完成对命令的CRC校验。所述数据处理模块与主控模块和eMMC芯片进行交互,读取上层应用系统写入外部缓存的数据并写入eMMC芯片中,读取eMMC芯片中的数据并写入外部缓存中,同时完成数据的CRC校验。所述时钟控制模块为整个eMMC控制器在相应阶段提供所需时钟信号,并控制实现时钟的切换。基于FPGA的eMMC控制器所采用的工作方法,分为如下步骤:步骤(1):系统上电后,eMMC控制器首先对eMMC芯片进行初始化操作;步骤(2):初始化操作完成后,eMMC控制器向上层应用系统发出初始化完成的标志信号;步骤(3):eMMC控制器等待上层应用系统发送的控制命令;步骤(4):eMMC控制器收到上层应用系统发来的控制命令,包括读写命令、读写地址及读写长度,首先判断命令属性,根据命令属性对eMMC芯片进行相应的控制操作,操作完成后回到步骤(3)。所述初始化操作包括eMMC芯片的识别、电压匹配、模式配置;所述模式配置为在eMMC芯片进入Transfer_state后,对eMMC芯片进行高速模式、数据位宽及数据单双沿模式的配置;优选将eMMC芯片配置为8位数据位宽和双沿模式。所述步骤(4)中,如果所判断的命令属性为单块写命令,则对eMMC芯片进行单块写操作的工作流程如下:步骤(4a-1):主控模块向eMMC接口逻辑模块发送CMD24单块写命令;步骤(4a-2):单块写命令CMD24发送成功后,主控模块向数据处理模块发送开始写入数据的信号,数据处理模块读取上层应用系统写入外部缓存的数据,并按照协议所规定的时序写入eMMC芯片中,同时对写入的数据进行CRC校验,直到eMMC芯片反馈的CRC校验值和数据处理模块计算的CRC校验值一致;步骤(4a-3):数据写入eMMC芯片后,eMMC接口逻辑模块时刻检测eMMC芯片反馈本文档来自技高网
...
基于FPGA的eMMC控制器及其工作方法

【技术保护点】
基于FPGA的eMMC控制器,其特征是,包括初始化模块、主控模块、eMMC接口逻辑模块、数据处理模块和时钟控制模块;所述初始化模块与eMMC接口逻辑模块双向通信,所述主控模块分别与eMMC接口逻辑模块和数据处理模块双向通信,所述时钟控制模块分别与初始化模块、主控模块和eMMC接口逻辑模块连接;工作时,所述初始化模块与上层应用系统通信,所述主控模块与上层应用系统双向通信,所述eMMC接口逻辑模块和数据处理模块均与eMMC芯片双向通信,所述数据处理模块通过外部缓存与上层应用系统双向通信。

【技术特征摘要】
1.基于FPGA的eMMC控制器,其特征是,包括初始化模块、主控模块、eMMC接口逻辑模块、数据处理模块和时钟控制模块;所述初始化模块与eMMC接口逻辑模块双向通信,所述主控模块分别与eMMC接口逻辑模块和数据处理模块双向通信,所述时钟控制模块分别与初始化模块、主控模块和eMMC接口逻辑模块连接;工作时,所述初始化模块与上层应用系统通信,所述主控模块与上层应用系统双向通信,所述eMMC接口逻辑模块和数据处理模块均与eMMC芯片双向通信,所述数据处理模块通过外部缓存与上层应用系统双向通信;所述初始化模块与eMMC接口逻辑模块进行交互,向eMMC接口逻辑模块发送初始化所需命令,通过eMMC接口逻辑模块控制eMMC芯片来完成对eMMC芯片的初始化,包括eMMC芯片的识别、电压匹配、模式配置;初始化完成后,所述初始化模块向上层应用系统发送初始化完成的标志信号;所述模式配置为在eMMC芯片进入Transfer_state后,对eMMC芯片进行高速模式、数据位宽及数据单双沿模式的配置;将eMMC芯片配置为8位数据位宽和双沿模式。2.如权利要求1所述的基于FPGA的eMMC控制器,其特征是,所述主控模块与上层应用系统进行交互,根据上层应用系统发来的读写命令、读写地址及读写长度,通过向eMMC接口逻辑模块和数据处理模块发送对应的控制命令,来完成数据的存储和读取。3.如权利要求1所述的基于FPGA的eMMC控制器,其特征是,所述eMMC接口逻辑模块负责实现eMMC底层的物理规范协议,按照协议中的时序驱动eMMC芯片,根据初始化模块和主控模块发来的控制命令,实现对eMMC芯片的控制,同时完成对命令的CRC校验。4.如权利要求1所述的基于FPGA的eMMC控制器,其特征是,所述数据处理模块与主控模块和eMMC芯片进行交互,读取上层应用系统写入外部缓存的数据并写入eMMC芯片中,读取eMMC芯片中的数据并写入外部缓存中,同时完成数据的CRC校验。5.如权利要求1所述的基于FPGA的eMMC控制器,其特征是,所述时钟控制模块为整个eMMC控制器在相应阶段提供所需的时钟信号,并控制实现时钟的切换。6.如上述任一权利要求所述的基于FPGA的eMMC控制器所采用的工作方法,其特征是,分为如下步骤:步骤(1):系统上电后,eMMC控制器首先对eMMC芯片进行初始化操作;步骤(2):初始化操作完成后,eMMC控制器向上层应用系统发出初始化完成的标志信号;步骤(3):eMMC控制器等待上层应用系统发送的控制命令;步骤(4):eMMC控制器收到上层应用系统发来的控制命令,包括读写命令、读写地址及读写长度,首先判断命令属性,根据命令属性对eMMC芯片进行相应的控制操作,操作完成后回到步骤(3)。7.如权利要求6所述的基于FPGA的eMMC控制器所采用的工作方法,其特征是,所述初始化操作包括eMMC芯片的识别、电压匹配、模式配置;所述模式配置为在eMMC芯片进入Transfer_state后,对eMMC芯片进行高速模式、数据位宽及数据单双沿模式的配置。8.如权利要求7所述的基于FPGA的eMMC控制器所采用的工作方法,其特征是,所述模式配置为将eMMC芯片配置为8位数据位宽和双沿模式。9.如权利要求6所述的基于FPGA的eMMC控制器所采用的工作方法,其特征是,所述步骤(4)中,如果所判断的命令属性为单块写命令,则对eMMC芯片进行单块写操作的工作流程如下:步骤(4a-1):主控模块向eMMC接口逻辑模块发送CMD24单块写命令;步骤(4a-2):单块写命令CMD24发送成功后,主控模块向数据处理模块发送开始写入数据的信号,数据处理模块读取上层应用系统写入外部缓存的数据,并按照协议所规定的...

【专利技术属性】
技术研发人员:周杰郝立燕李建厂张健周雷
申请(专利权)人:山东量子科学技术研究院有限公司安徽量子通信技术有限公司
类型:发明
国别省市:

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

1