[发明专利]一种NANDFlash到FPGA内部块RAM的缓存方法在审
申请号: | 201710900372.3 | 申请日: | 2017-09-28 |
公开(公告)号: | CN107729269A | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 陶涛;林盛;梅雪松;赵飞;王军平 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F13/16 | 分类号: | G06F13/16;G06F13/28 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 王艾华 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 nandflash fpga 内部 ram 缓存 方法 | ||
技术领域
本发明属于电子设计自动化领域,具体涉及一种MCU控制,从NANDFlash到FPGA内部多个块RAM的DMA缓存实现方法。
背景技术
生活中随身佩带的医用动态心电监护仪、汽车行驶记录仪以及便携式智能仪器等需要体积小、功耗低、存储容量大、数据可以长时间保存的数据采集系统,一般采用NANDFlash存储数据。NANDFlash采用串行结构,容量高、价格低,硬件接口和软件编程简单。但由于NANDFlash没有单独的地址和数据总线,NANDFlash使用复杂的I/O口来串行存取数据,8个I/O引脚用来传送控制、地址和数据信息,NANDFlash的数据写入是以页编程为基础,存在占用CPU、依赖于闪存转换层等缺陷,因而限制了控制系统的性能,难以对频率较高的数据进行实时采集。Xilinx公司SP3系列的FPGA提供了16个双端口BRAM,每个BRAM包含18Kb位快速静态RAM,其中16Kb用于数据存储,另外2Kb用于奇偶校验或额外的“加”数据位。BRAM支持多种位宽形式的数据存储,其读写时钟最大可达300MHz,能够方便地满足FPGA中数据的高速缓存。
发明内容
为了克服上述现有技术存在的缺陷和不足,本发明提供了一种基于FPGA的NANDFlash到块RAM的DMA数据缓存实现方法,减轻CPU负担。FPGA具有多达上百个的I/O引脚,可以连接大量的外设,同时FPGA又能方便地进行时序电路的设计。采用FPGA作中间桥梁,既解决了MCU访问NANDFlash的引脚占用问题,方便了数据的存储,同时通过FPGA内部的双端口RAM,实现了NANDFlash的数据快速缓存,简化了系统结构和布局布线,降低了成本。
为达到上述目的,本发明所述的一种基于FPGA的NANDFlash到多个块RAM的DMA数据缓存实现方法,主要包括以下步骤:
1)硬件设计上采用FPGA作中间桥梁,结合FPGA具有上百个I/O引脚的特点,将MCU分布于FPGA周围,以总线方式与FPGA进行数据交换。FPGA通过IO口与NANDFlash相连,减小了MCU引脚的占用,扩展MCU的RAM。
2)软件上实现MCU读写NANDFlash的控制,主要是针对FPGA进行时序电路的设计。通过MCU与FPGA通讯地址总线的高四位地址和地址锁存信号,通过组合选通需要读写控制器。
3)为实现NANDFlash到多个块RAM的DMA数据缓存,主要包括以下几个部分。写入BRAM控制器:读NANDflash数据、锁存数据、写入数据,地址累加。读BRAM控制器:读数据、锁存数据、地址累加。
4)为实现上述的读、写BRAM控制器,FPGA内部建立分频时钟。在不同的时钟沿下,对读、写BRAM控制器进行操作。
5)为实现上述的分频时钟,将系统时钟四分频并进行调相,得到四个分别处在不同相位上的分频时钟Clk_4S[0]、Clk_4S[1]、Clk_4S[2]和Clk_4S[3]。
6)为实现上述步骤3的写入BRAM控制器的功能,通过MCU与FPGA地址总线和数据总线,将目标的NANDFlash地址写入到地址锁存器中,在MCU的指令下触发控制器,DMA连续读指令置位,启动四分频时钟,开始连续将NANDflash数据高速缓存到BRAM中。
7)为实现上述的将NANDflash数据连续缓存到BRAM中,利用步骤5的分频时钟。在分频时钟Clk_4S[0]的驱动下,读取NANDflash的数据,在Clk_4S[1]时钟下,将数据保存在数据缓存器中,在分频时钟Clk_4S[2]下,将锁存器中的数据写入到BRAM中。然后在分频时钟Clk_4S[3]沿下计数器自动加1,地址累加器自动加1。然后时钟循环,实现连续时钟缓存,当数据计数器到达目标数时,数据缓存停止。
8)为实现上述的读取BRAM控制器,通过MCU与FPGA地址总线和数据总线,将目标的BRAM地址写入到地址锁存器中,在MCU的指令下触发控制器,DMA连续读指令置位,启动四分频时钟,开始连续高速读取BRAM数据。
9)为实现上述的连续高速读取BRAM数据,步骤5的分频时钟,在分频时钟Clk_4S[0]的驱动下,读取BRAM的数据,在Clk_4S[1]的驱动下缓存到数据锁存器中,在Clk_4S[3]时钟下,BRAM地址累加。
本发明具有以下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710900372.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:旅游交互网络平台及其数据交互方法
- 下一篇:基于机场服务积分系统