一种基于FPGA的IRIG106高速数据存储系统的制作方法

文档序号:11458423阅读:289来源:国知局
一种基于FPGA的IRIG106高速数据存储系统的制造方法与工艺

本发明涉及数据存储领域,尤其涉及一种高速数据存储系统。



背景技术:

fpga:field-programmablegatearray,现场可编程门阵列。

irig:inter-rangeinstrumentrationgroup,靶场间测量仪器组。irig106是有美国靶场司令委员会(rcc)制定的数据记录标准,用较经济的方法实现对多种数据的数字化和有效组合,目前靶场间测量仪器组irig106(irig:inter-rangeinstrumentrationgroup)数字记录标准已逐渐成为国际公认的标准之一,采用基于irig106格式存储是未来机载测试的发展方向。

fifo:firstinputfirstoutput的缩写,先入先出队列。

随着技术的进步,机载测试数需求不断增长,信息越多对事后的分析处理越方便,信息量的增加机载数据记录的要求也随之增加。

现有技术中,基于瞬时的高速记录一般采用先写入高速内存缓存,事后慢速写入存储器的方式。但是这种方式不能满足长时间持续高速写入的需求。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种可满足长时间持续高速写入的高速存储系统。

本发明所采用的技术方案是:

一种基于fpga的irig106高速数据存储系统,其利用fpga实现,包括多路采集模块、irig106封装模块和存储控制模块;所述多路采集模块的输出端均与irig106封装模块的输入端连接,所述irig106封装模块的输出端与存储控制模块的输入端连接,所述存储控制模块用于与外部存储盘连接;所述多路采集模块、irig106封装模块和存储控制模块并行运行。

优选的,所述采集模块包括大fifo和小fifo;所述大fifo用于缓存数据量较大的采集数据,小fifo用于存储当前采集数据的长度;采集模块每次在大fifo中存储完一数据包,在小fifo中存储该数据包的长度,即写入的数据包与数据包长度一一对应。

优选的,所述irig106封装模块包括多路数据混合子模块和数据封装子模块,所述多路数据混合子模块用于将多路采集模块输出的数据进行数据混合,所述数据封装子模块用于将混合后的数据进行数据封装后输出到存储控制模块。

优选的,所述数据混合子模块包括混合fifo;工作时,所述数据混合子模块按照预先设定的采集缓冲数据的长度,一次从多路采集模块中读取对应的数据长度及对应的数据包,将数据包缓存在混合fifo中以供数据封装子模块读取。

优选的,工作时,所述数据混合子模块记录fifo中已缓存的总数据量和最后一包数据的数据量,当总数据量超过设定封装包大小时,将总数据量减去最后一包的数据量,形成当前数据组包输出到数据封装子模块。

优选的,所述数据封装子模块用于将数据混合子模块输出的数据组包封装成irig106封装包;所述irig106封装包包括irig106数据包和irig106时间包;所述irig106数据包含有采集到的数据组包,所述irig106时间包含有对数据组包进行时间标记的数据。

优选的,所述存储控制模块包括文件管理子模块、主控制器逻辑子模块和物理接口子模块;所述文件管理子模块的输出端与数据封装子模块的输入端连接,所述数据封装子模块的输出端与主控制器逻辑子模块的输入端连接,所述主控制器逻辑子模块的输出端与物理接口子模块的输入端连接,所述物理接口子模块用于与外部存储盘连接。

优选的,所述文件管理子模块用于对接收的irig106封装包进行自定义文件管理,所述自定义文件管理分为三个层次;第一层用于对数据段进行管理,记录存储盘中存储数据段的个数,第二层对文件索引的起始位置和结束位置进行管理,指示一段数据段索引的开始位置和结束位置,第三层对文件的名称、开始记录时间、数据存储的起始位置和结束位置进行管理,在记录开始时存储文件名称,记录的时间以及数据的起始位置,以后每一秒记录一次当前的时间以及当前记录位置。

优选的,当系统异常掉电时,通过自定义文件管理找到掉电前一秒记录的结束位置,通过结束位置信息即恢复出完成的数据段。

优选的,所述存储控制模块为sata控制模块,所述存储盘为sata硬盘,所述sata控制模块用于实现sataii协议传输层、链路层以及物理层功能,兼容sata3.0标准。

本发明的有益效果是:

本发明提出一种基于fpga的高速存储方案,通过在fpga内部设计存储控制器对存储盘进行直接操作,同时对数据存储的过程进行优化,将数据处理阶段和存储阶段分开,充分利用fpga并行处理的优势,克服了现有基于嵌入式存储方案速率较慢问题,极大提高了数据的存储速率。

另外,本发明还通过接收多路以太网数据,通过irig106封装,最终通过sataii接口进行高速存储。用较经济的方法实现对多种数据的数字化和有效组合。采集模块基于双fifo的数据缓冲机制,基于fpga的irig106简化数据组帧格式,实现了对数据的快速、可靠地处理和存储。基于自定义的文件管理方式,该管理分为三层,第一层记录数据段的个数,第二层记录文件索引的起始位置和结束位置,第三层记录数据的名称,每一秒的结束的数据记录位置。最大程度地防止掉电或其它故障引起的数据丢失。

本发明可广泛应用于各种高速存储系统。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明一种实施例的电路结构框图;

图2是本发明sata控制模块一种实施例的逻辑结构示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明基于fpga的irig106存储系统,利用fpga的并行处理的特性,从采集、封装、存储实现并行处理,大大提高了存储速率,如图1所示。

本实施例以4路采集模块为例,一种基于fpga的irig106高速数据存储系统,其利用fpga实现,包括4路采集模块、irig106封装模块和存储控制模块;4路采集模块的输出端均与irig106封装模块的输入端连接,irig106封装模块的输出端与存储控制模块的输入端连接,存储控制模块用于与外部存储盘连接;4路采集模块、irig106封装模块和存储控制模块并行运行。

4路采集模块均接收以太网ethernet数据,采集模块包括大fifo和小fifo;数据采集后通过双fifo结构对数据进行缓存处理。双fifo结构即一大一小两种容量fifo的组合在一起,大fifo用于缓存数据量较大的采集数据,小fifo则用于存储当前采集数据的长度,每次在大fifo中存储完一包数据,在小fifo中存储数据包的长度,即写入的数据与长度一一对应。

本实施例中,irig106封装模块包括4路数据混合子模块和数据封装子模块,4路数据混合子模块用于将4路采集模块输出的数据进行数据混合,数据封装子模块用于将混合后的数据进行数据封装后输出到存储控制模块。

数据混合子模块包括混合fifo;工作时,数据混合子模块按照预先设定的采集缓冲数据的长度,一次从4路采集模块中读取对应的数据长度及对应的数据包,将数据包缓存在混合fifo中以供数据封装子模块读取。

数据混合子模块将4路采集数据混合:将4路数据包进行封装为一个大的数据包,用大数据包进行存储提高写入速度。

具体的,数据包最关键的是有效数据包的长度统计,由于接受的数据包长度不固定,无法预测多个数据包的总长度,irig106封装模块采用两级处理方式,第一级负责数据混合(数据混合子模块),第二级负责数据的封装(数据封装子模块)。数据混合子模块按照采集缓冲数据的长度,一次从4路采集的缓冲区(大fifo和小fifo)读取对应的数据长度及对应的数据,将数据从新读出缓存在混合fifo中,同时记录混合fifo中缓存的数据量以及最后一包数据包的数据量,当总数据量超过设定封装包大小时,将总数据量减去最后一包的数据量,形成当前数据组包输出到数据封装子模块。

本实施例中,数据封装子模块用于将数据混合子模块输出的数据组包封装成irig106封装包;irig106封装包包括irig106数据包和irig106时间包;irig106数据包含有采集到的数据组包,irig106时间包含有对数据组包进行时间标记的数据。

具体的,irig106存储格式本身与存储盘关系比较紧密,需要对存储盘进行反复操作,本方案中将irig106存储格式进行简化,将irig106数据的封装与数据存储两个过程进行分离,减少关联提高数据写入速度。irig106封装包分为两种包格式:一种为irig106数据包,即采集到的数据包;一种为irig106时间包,即采集数据之外对数据进行时间标记包。数据封装如表1-1所示,时间包封装如表1-2所示,时间采集包可直接按照包格式组包,数据包需要对4路采集数据进行混合在组包。

表1-1数据包封装格式

表1-2时间包封装格式

如图2所示,本实施例中,存储控制模块为sata控制模块,存储盘为sata硬盘,sata控制模块用于实现sataii协议传输层、链路层以及物理层功能,兼容sata3.0标准。sata控制模块包括文件管理子模块、主控制器逻辑子模块和物理接口子模块;文件管理子模块的输出端与数据封装子模块的输入端连接,数据封装子模块的输出端与主控制器逻辑子模块的输入端连接,主控制器逻辑子模块的输出端与物理接口子模块的输入端连接,物理接口子模块用于与外部存储盘连接。

sata控制模块负责对sata固态盘进行管理和数据读写,是存储板的核心功能单元,采用fpga进行设计,全面实现satai工协议传输层、链路层以及物理层功能,兼容sata3.0标准,最高支持6gbps速率,本设计中采用a1tera40nm系列fpga实现,sataii主控制器基本逻辑框图如图2所示,主要由3个功能模块组成,分别为物理层接口子模块sata_phy、主控制器逻辑子模块logic_ctrl和文件管理子模块。其中,文件管理子模块还包括的用户接口模块user_inf和dma接口dma_inf。用户接口模块user_inf和dma接口dma_inf均与主控制逻辑子模块logic_ctrl连接。用户接口模块user_inf用于接收小数据包;dma接口dma_inf用于接收大数据包。

本实施例中,文件管理子模块用于对接收的irig106封装包进行自定义文件管理,自定义文件管理分为三个层次;第一层用于对数据段进行管理,记录存储盘中存储数据段的个数,第二层对文件索引的起始位置和结束位置进行管理,指示一段数据段索引的开始位置和结束位置,第三层对文件的名称、开始记录时间、数据存储的起始位置和结束位置进行管理,在记录开始时存储文件名称,记录的时间以及数据的起始位置,以后每一秒记录一次当前的时间以及当前记录位置。

本实施例中,当系统异常掉电时,通过自定义文件管理找到掉电前一秒记录的结束位置,通过结束位置信息即恢复出完成的数据段。这样最多只丢失最后一秒的数据,通过该位置信息即可恢复出完成的数据段,可以保证异常掉电引起的数据丢失问题。

本发明提出一种基于fpga的高速存储方案,通过在fpga内部设计存储控制器对存储盘进行直接操作,同时对数据存储的过程进行优化,将数据处理阶段和存储阶段分开,充分利用fpga并行处理的优势,克服了现有基于嵌入式存储方案速率较慢问题,极大提高了数据的存储速率。

另外,本发明还通过接收多路以太网数据,通过irig106封装,最终通过sataii接口进行高速存储。用较经济的方法实现对多种数据的数字化和有效组合。采集模块基于双fifo的数据缓冲机制,基于fpga的irig106简化数据组帧格式,实现了对数据的快速、可靠地处理和存储。基于自定义的文件管理方式,该管理分为三层,第一层记记录数据段的个数,第二层记录文件索引的起始位置和结束位置,第三层记录数据的名称,每一秒的结束的数据记录位置。最大程度地防止掉电或其它故障引起的数据丢失。

本发明可广泛应用于各种高速存储系统。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1