CN109582232A - 一种基于FPGA的顺序读写多片Flash系统及方法 - Google Patents
一种基于FPGA的顺序读写多片Flash系统及方法 Download PDFInfo
- Publication number
- CN109582232A CN109582232A CN201811390376.2A CN201811390376A CN109582232A CN 109582232 A CN109582232 A CN 109582232A CN 201811390376 A CN201811390376 A CN 201811390376A CN 109582232 A CN109582232 A CN 109582232A
- Authority
- CN
- China
- Prior art keywords
- module
- fpga
- data
- interface
- host computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种基于FPGA的顺序读写多片Flash系统及方法,其技术特点在于:包括控制模块、存储模块和上位机;所述控制模块包括FPGA和以太网接口模块;所述FPGA模块通过以太网接口模块与上位机相连接,用于通过以太网接口接收外部的数据或接收读取指令将数据存入或取出;该FPGA模块与存储模块相连接,用于将接收到的上位机数据进行分析处理,并按照数据的分类以及控制算法将数据透明传输出至存储模块;所述FPGA接收到读取命令后按照数据的存储列表将数据取出后通过以太网接口模块输出至上位机。本发明可以解决一颗Flash损坏或主控芯片损坏,存储数据全部无法读取的弊端,提高设备的稳定性、可靠性。
Description
技术领域
本发明属于Flash存储数据技术领域,涉及多个Flash按顺序存储数据的方法,尤其是一种基于FPGA的顺序读写多片Flash系统及方法。
背景技术
飞机或者船舶的记录仪记录数据时,存在一块Flash容量不够用的情况,这时需要采用多块Flash扩展容量,而容量扩展后,常规采取随机读写的方式往Flash中存储数据,数据是分开存在多个Flash芯片里,只要有一颗损坏或主控损坏数据全部读不出来,鉴于这种弊端以及数据的重要性,需要一种记录仪多个Flash的顺序读写方法来实现部分Flash损坏,其它数据依然能取出的功能。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于FPGA的顺序读写多片Flash系统及方法,实现记录仪内部分Flash损坏,其它数据依然能取出的功能。
本发明解决其现实问题是采取以下技术方案实现的:
一种基于FPGA的顺序读写多片Flash系统,包括控制模块、存储模块和上位机;所述控制模块包括FPGA和以太网接口模块;所述FPGA模块通过以太网接口模块与上位机相连接,用于通过以太网接口接收外部的数据或接收读取指令将数据存入或取出;该FPGA模块与存储模块相连接,用于将接收到的上位机数据进行分析处理,并按照数据的分类以及控制算法将数据透明传输出至存储模块;所述FPGA接收到读取命令后按照数据的存储列表将数据取出后通过以太网接口模块输出至上位机。
而且,所述FPGA模块还与电源管理模块相连接,用于进行供电和待机控制;
而且,所述FPGA模块还与内存模块相连接,用于存入或取出接收的上位机数据。
而且,所述FPGA模块还与同步队列串行接口模块相连接,用于扩展串口预留串口调试;
而且,所述FPGA模块还与调试接口模块相连接,用于进行软件更新和调试;
而且,所述存储模块包括主控芯片、多个SM2244LT模块和多颗8GB SLC NANDFlash芯片;所述主控芯片包括多个SATA驱动芯片;所述FPGA依次分别通过多个SATA驱动芯片和多个SM2244LT模块与对应的8GB SLC NAND Flash芯片相连接,用于对NAND FLASH芯片进行控制。
一种基于FPGA的顺序读写多片Flash系统的方法,包括以下步骤:
步骤1、初始化接口和模块;
步骤2,查询硬盘设备;
步骤3、根据产生中断来源的不同进行中断响应和处理。
而且,所述步骤1的具体方法为:初始化AXI_Lite接口、AXI4接口、控制寄存器模块、缓冲器管理模块、主控逻辑模块、NAND Flash接口模块的初始化;
而且,所述步骤3的具体步骤包括:
(1)程序处于中断等待状态,由主控逻辑模块等待产生中断信号;
(2)当主控逻辑模块检查到中断信号产生后,立即进行中断查询;先判断是否由AXI_Lite接口产生,若是,则控制寄存器模块读取AXI_Lite接口传输控制命令,然后主控逻辑模块分析控制命令,做出相应操作后,完成该中断处理,返回到中断等待状态;若中断非AXI_Lite接口产生,则判断是否由AXI4接口产生,若是,则由缓冲管理模块读取数据,进行数据缓冲操作,然后主控逻辑模块对数据进行时序处理,分析NAND Flash情况,将数据写入正确扇区,完成该中断处理,返回到中断等待状态;若非AXI4接口产生,则判断是否由NANDFlash接口产生,若是,则由主控逻辑模块对中断进行分析,再判断中断是否正常后做出处理,若不是由NAND Flash产生,则直接判断中断是否正常,然后做出相应处理,完成该中断处理后返回到中断等待状态。
本发明的优点和有益效果:
本发明提供一种基于FPGA的顺序读写Flash方法,与现有技术相比,本发明采用控制模块和存储模块两部分配合完成顺序读写工作,控制模块由FPGA实现,负责以一定算法将数据传输给存储模块,存储模块由主控芯片和NAND Flash实现,负责将数据分发到具体Flash上。两个模块结合具体控制软件配合工作,可以解决一颗Flash损坏或主控芯片损坏,存储数据全部无法读取的弊端,提高设备的稳定性、可靠性。
附图说明
图1是本发明的系统组成示意图;
图2是本发明的存储模块组成示意图;
图3是本发明的软件控制框图;
图4是本发明的处理流程图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
一种基于FPGA的顺序读写多片Flash系统,如图1所示,包括控制模块、存储模块和上位机;所述控制模块包括FPGA和以太网接口模块;
所述FPGA模块通过以太网接口模块与上位机相连接,用于通过以太网接口接收外部的数据或接收读取指令将数据存入或取出;该FPGA模块与存储模块相连接,用于将接收到的上位机数据进行分析处理,并按照数据的分类以及控制算法将数据透明传输出至存储模块;所述FPGA接收到读取命令后按照数据的存储列表将数据取出后通过以太网接口模块输出至上位机。
在本实施例中,所述FPGA模块还与电源管理模块相连接,用于进行供电和待机控制;
在本实施例中,所述FPGA模块还与内存模块相连接,用于存入或取出接收的上位机数据;
在本实施例中,所述FPGA模块还与同步队列串行接口模块相连接,用于扩展串口预留串口调试;
在本实施例中,所述FPGA模块还与调试接口模块相连接,用于进行软件更新和调试;
在本实施例中,所述存储模块包括主控芯片、多个SM2244LT模块和多颗8GB SLCNAND Flash芯片;所述主控芯片包括多个SATA驱动芯片;所述FPGA依次分别通过多个SATA驱动芯片和多个SM2244LT模块与对应的8GB SLC NAND Flash芯片相连接,用于对NANDFLASH芯片进行控制;
本发明的一种基于FPGA的记录仪多个Flash的顺序读写系统的工作原理是:
控制模块采用FPGA设计完成,通过FPGA扩展网口与上位机通讯,扩展串口预留串口调试,电源管理进行供电、待机等控制,调试接口进行软件更新、调试等工作;控制模块通过以太网接口接收外部的数据或接收读取指令将数据存入或取出,FPGA将接收到的数据分板处理,按照数据的分类以及控制算法将数据透明传输给存储模块。FPGA接收到读取命令后按照数据的存储列表将数据取出后通过以太网传输给上位机。
如图2所示,本实施例中的存储模块主要包括主控芯片(JMB393)和4颗8GB SLCNAND Flash芯片。这些芯片通过FPGA进行管理,提供标准SATA接口,再经过总线控制芯片和SATA驱动芯片分别对4颗NAND FLASH芯片进行管理,对外显示为一颗容量为32GB的电子盘,数据按LBA地址范围分区保存到四颗芯片上;若控制器损坏或者是有部分NAND FLASH芯片损坏,将未损坏的NAND FLASH芯片从电子盘上拆下后放入判读工装,可以恢复该芯片对应范围的数据。
软件控制框图如图3所示。FPGA通过AXI_Lite接口和AXI4接口与CPU通信;AXI_Lite接口使用AXI_L总线传输控制命令;AXI4使用AXI4总线传输数据;FPGA支持NAND FLASH的各种命令操作;控制寄存器通过总线接口接收CPU发来的控制参数,并存储控制器的状态参数;缓冲器管理模块包括数据缓冲器,用于写数据逻辑和读数据逻辑,主控逻辑模块根据控制寄存器模块中存储的控制参数,控制对NAND FLASH的操作时序,将控制信号以及数据发送给NAND FLASH。
在本实施例中,软件实现采用VHDL语言编写,分为存储模块、控制与配置模块和数据接口模块,采用模块化的程序设计思路和编写方式;
一种基于FPGA的顺序读写多片Flash系统的方法,如图4所示包括以下步骤:
步骤1、初始化接口和模块;
所述步骤1的具体方法为:初始化AXI_Lite接口、AXI4接口、控制寄存器模块、缓冲器管理模块、主控逻辑模块、NAND Flash接口模块的初始化;
步骤2,查询硬盘设备。
在本实施例中,以4块硬盘为例,NAND Flash接口在初始化完成后查询硬盘设备,若不能查询到,则提交报错,退出程序;查询到后,进入下一步骤;
步骤3、根据产生中断来源的不同进行中断响应和处理;
所述步骤3的具体步骤包括:
(1)程序处于中断等待状态,由主控逻辑模块等待产生中断信号;
(2)当主控逻辑模块检查到中断信号产生后,立即进行中断查询;先判断是否由AXI_Lite接口产生,若是,则控制寄存器模块读取AXI_Lite接口传输控制命令,然后主控逻辑模块分析控制命令,做出相应操作后,完成该中断处理,返回到中断等待状态;若中断非AXI_Lite接口产生,则判断是否由AXI4接口产生,若是,则由缓冲管理模块读取数据,进行数据缓冲操作,然后主控逻辑模块对数据进行时序处理,分析NAND Flash情况,将数据写入正确扇区,完成该中断处理,返回到中断等待状态;若非AXI4接口产生,则判断是否由NANDFlash接口产生,若是,则由主控逻辑模块对中断进行分析,再判断中断是否正常后做出处理,若不是由NAND Flash产生,则直接判断中断是否正常,然后做出相应处理,完成该中断处理后返回到中断等待状态。
需要强调的是,本发明所述实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (9)
1.一种基于FPGA的顺序读写多片Flash系统,其特征在于:包括控制模块、存储模块和上位机;所述控制模块包括FPGA和以太网接口模块;所述FPGA模块通过以太网接口模块与上位机相连接,用于通过以太网接口接收外部的数据或接收读取指令将数据存入或取出;该FPGA模块与存储模块相连接,用于将接收到的上位机数据进行分析处理,并按照数据的分类以及控制算法将数据透明传输出至存储模块;所述FPGA接收到读取命令后按照数据的存储列表将数据取出后通过以太网接口模块输出至上位机。
2.根据权利要求1所述的一种基于FPGA的顺序读写多片Flash系统,其特征在于:所述FPGA模块还与电源管理模块相连接,用于进行供电和待机控制。
3.根据权利要求1所述的一种基于FPGA的顺序读写多片Flash系统,其特征在于:所述FPGA模块还与内存模块相连接,用于存入或取出接收的上位机数据。
4.根据权利要求1所述的一种基于FPGA的顺序读写多片Flash系统,其特征在于:所述FPGA模块还与同步队列串行接口模块相连接,用于扩展串口预留串口调试。
5.根据权利要求1所述的一种基于FPGA的顺序读写多片Flash系统,其特征在于:所述FPGA模块还与调试接口模块相连接,用于进行软件更新和调试。
6.根据权利要求1所述的一种基于FPGA的顺序读写多片Flash系统,其特征在于:所述存储模块包括主控芯片、多个SM2244LT模块和多颗8GBSLCNANDFlash芯片;所述主控芯片包括多个SATA驱动芯片;所述FPGA依次分别通过多个SATA驱动芯片和多个SM2244LT模块与对应的8GBSLCNANDFlash芯片相连接,用于对NANDFLASH芯片进行控制。
7.一种如权利要求1至6任一项权利要求所述的一种基于FPGA的顺序读写多片Flash系统的方法,其特征在于:包括以下步骤:
步骤1、初始化接口和模块;
步骤2,查询硬盘设备;
步骤3、根据产生中断来源的不同进行中断响应和处理。
8.根据权利要求7所述的一种基于FPGA的顺序读写多片Flash系统的方法,其特征在于:所述步骤1的具体方法为:初始化AXI_Lite接口、AXI4接口、控制寄存器模块、缓冲器管理模块、主控逻辑模块、NANDFlash接口模块的初始化。
9.根据权利要求7所述的一种基于FPGA的顺序读写多片Flash系统的方法,其特征在于:所述步骤3的具体步骤包括:
(1)程序处于中断等待状态,由主控逻辑模块等待产生中断信号;
(2)当主控逻辑模块检查到中断信号产生后,立即进行中断查询;先判断是否由AXI_Lite接口产生,若是,则控制寄存器模块读取AXI_Lite接口传输控制命令,然后主控逻辑模块分析控制命令,做出相应操作后,完成该中断处理,返回到中断等待状态;若中断非AXI_Lite接口产生,则判断是否由AXI4接口产生,若是,则由缓冲管理模块读取数据,进行数据缓冲操作,然后主控逻辑模块对数据进行时序处理,分析NANDFlash情况,将数据写入正确扇区,完成该中断处理,返回到中断等待状态;若非AXI4接口产生,则判断是否由NANDFlash接口产生,若是,则由主控逻辑模块对中断进行分析,再判断中断是否正常后做出处理,若不是由NANDFlash产生,则直接判断中断是否正常,然后做出相应处理,完成该中断处理后返回到中断等待状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811390376.2A CN109582232A (zh) | 2018-11-21 | 2018-11-21 | 一种基于FPGA的顺序读写多片Flash系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811390376.2A CN109582232A (zh) | 2018-11-21 | 2018-11-21 | 一种基于FPGA的顺序读写多片Flash系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109582232A true CN109582232A (zh) | 2019-04-05 |
Family
ID=65923219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811390376.2A Pending CN109582232A (zh) | 2018-11-21 | 2018-11-21 | 一种基于FPGA的顺序读写多片Flash系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582232A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113270136A (zh) * | 2021-06-01 | 2021-08-17 | 湖南博匠信息科技有限公司 | 测试Nand-flash坏块的控制方法及控制系统 |
CN114124663A (zh) * | 2021-11-16 | 2022-03-01 | 太原市华纳方盛科技有限公司 | 一种以太网芯片断网重连的方法、装置及设备 |
CN114697274A (zh) * | 2022-04-29 | 2022-07-01 | 哈尔滨工业大学 | 一种无人机机载FlexRay数据记录系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103075961A (zh) * | 2012-12-28 | 2013-05-01 | 广州数控设备有限公司 | 基于单片fpga支持多个光栅尺的位置测显装置及方法 |
CN204423111U (zh) * | 2015-01-26 | 2015-06-24 | 北京神州龙芯集成电路设计有限公司 | 一种应用于智能电网集中器中的片上系统 |
CN105630400A (zh) * | 2014-11-01 | 2016-06-01 | 江苏绿扬电子仪器集团有限公司 | 高速海量数据存储系统 |
CN105702300A (zh) * | 2016-01-11 | 2016-06-22 | 浙江大学 | 一种基于FPGA的NAND Flash容错系统 |
CN106326155A (zh) * | 2016-08-19 | 2017-01-11 | 南京理工大学 | 一种多总线数据记录与回放装置及方法 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN106873904A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据写入方法及固态硬盘 |
CN108107827A (zh) * | 2017-12-13 | 2018-06-01 | 天津津航计算技术研究所 | 一种基于zynq平台软核的srio控制方法 |
CN108121672A (zh) * | 2017-08-08 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
-
2018
- 2018-11-21 CN CN201811390376.2A patent/CN109582232A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103075961A (zh) * | 2012-12-28 | 2013-05-01 | 广州数控设备有限公司 | 基于单片fpga支持多个光栅尺的位置测显装置及方法 |
CN105630400A (zh) * | 2014-11-01 | 2016-06-01 | 江苏绿扬电子仪器集团有限公司 | 高速海量数据存储系统 |
CN204423111U (zh) * | 2015-01-26 | 2015-06-24 | 北京神州龙芯集成电路设计有限公司 | 一种应用于智能电网集中器中的片上系统 |
CN105702300A (zh) * | 2016-01-11 | 2016-06-22 | 浙江大学 | 一种基于FPGA的NAND Flash容错系统 |
CN106326155A (zh) * | 2016-08-19 | 2017-01-11 | 南京理工大学 | 一种多总线数据记录与回放装置及方法 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN106873904A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据写入方法及固态硬盘 |
CN108121672A (zh) * | 2017-08-08 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
CN108107827A (zh) * | 2017-12-13 | 2018-06-01 | 天津津航计算技术研究所 | 一种基于zynq平台软核的srio控制方法 |
Non-Patent Citations (1)
Title |
---|
龚有华 等: "基于FPGA的AXI4总线时序设计与实现", 《电子技术应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113270136A (zh) * | 2021-06-01 | 2021-08-17 | 湖南博匠信息科技有限公司 | 测试Nand-flash坏块的控制方法及控制系统 |
CN114124663A (zh) * | 2021-11-16 | 2022-03-01 | 太原市华纳方盛科技有限公司 | 一种以太网芯片断网重连的方法、装置及设备 |
CN114124663B (zh) * | 2021-11-16 | 2023-12-01 | 太原市华纳方盛科技有限公司 | 一种以太网芯片断网重连的方法、装置及设备 |
CN114697274A (zh) * | 2022-04-29 | 2022-07-01 | 哈尔滨工业大学 | 一种无人机机载FlexRay数据记录系统 |
CN114697274B (zh) * | 2022-04-29 | 2024-04-02 | 哈尔滨工业大学 | 一种无人机机载FlexRay数据记录系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108121672B (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
CN104520932B (zh) | 闪存存储器控制器 | |
CN109582232A (zh) | 一种基于FPGA的顺序读写多片Flash系统及方法 | |
CN105760311B (zh) | trim命令响应方法和系统及操作系统 | |
US20090077305A1 (en) | Flexible Sequencer Design Architecture for Solid State Memory Controller | |
CN106874224A (zh) | 自动搬运且适应器件的多线SPI‑Flash控制器 | |
CN111258504B (zh) | 一种基于sata接口固态硬盘的存储控制系统 | |
US8266371B2 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
CN206557758U (zh) | 一种基于fpga可扩展的nand flash存储芯片阵列控制器 | |
KR101857911B1 (ko) | 가상채널을 이용한 다중 채널 메모리 제어기 | |
CN113791994B (zh) | 一种基于AXI协议wrap访问的DDR控制器及处理方法 | |
CN107491267B (zh) | 一种基于lvds接口的高速图像数据存储装置 | |
CN107391392A (zh) | 一种基于闪存存储设备并行特征的垃圾回收优化方法 | |
WO2016078307A1 (zh) | 可配置片上互联系统及其实现方法、装置和存储介质 | |
CN102541510B (zh) | 一种指令缓存系统及其取指方法 | |
CN101133386A (zh) | 用于主机控制器上的独立和并发数据传送的方法和装置 | |
CN104281413A (zh) | 命令队列管理方法、存储器控制器及存储器储存装置 | |
CN111931442A (zh) | Fpga内嵌flash控制器及电子装置 | |
CN109669635A (zh) | 用于固态存储主控芯片的命令lba重合检测方法及装置 | |
CN115344200A (zh) | 一种基于NVMe接口的存储系统 | |
CN102541778A (zh) | 一种超高速超大容量存储装置及其实现方法 | |
CN109491959A (zh) | 一种可编程逻辑器件配置器 | |
TWI474254B (zh) | 用於在一記憶體系統中執行命令的方法與裝置及資料儲存系統 | |
CN115221070B (zh) | 基于NVMe盘的片上系统诊断方法 | |
US7640376B2 (en) | Method apparatus and computer programming product for direct memory access(DMA) technique on sequentially stored data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190405 |