一种基于多线程机制的高速回波数据实时记录系统及记录方法技术方案

技术编号:35008033 阅读:13 留言:0更新日期:2022-09-21 14:59
一种基于多线程机制的高速回波数据实时记录系统及记录方法,本发明专利技术涉及基于多线程机制的高速回波数据实时记录系统及记录方法。本发明专利技术的目的是为了解决现有方法无法实现将不同接口产生的大量高速回波数据实时准确记录下来的问题。系统包括:一块高速数据采集板卡和上位机;板卡包括FPGA、DDR、外设接口;上位机包括PCIe插槽、硬盘、用户软件;上位机内部设有的用户软件使用多线程机制,对多个任务进行分割,在多核处理器中,每个处理器各自执行一个线程,多个任务能够并行执行;多线程机制包括主线程和辅助线程;主线程用于用户界面的显示、更新、用户操作的响应;辅助线程用于采集,缓存,写入硬盘。本发明专利技术用于电子测量技术领域。本发明专利技术用于电子测量技术领域。本发明专利技术用于电子测量技术领域。

【技术实现步骤摘要】
一种基于多线程机制的高速回波数据实时记录系统及记录方法


[0001]本专利技术涉及电子测量
,具体涉及基于多线程机制的高速回波数据实时记录系统及记录方法。

技术介绍

[0002]相控阵雷达由相当密集的天线阵列构成,它通过改变天线表面阵列所发出波束的合成方式来改变波束扫描方向。这种工作方式下,会产生大量的回波数据,工业领域为处理大量的高速数据,推进发展了串行传输技术如10Gbit Ethernet、Fibre Channel、SRIO等,给数据采集提供了接口方案。同时在一些实际任务中,为了对系统进行实时监测,对高速数据的采集记录也提出了实时性要求。将不同接口产生的大量高速回波数据实时准确记录下来,成为雷达系统需要解决的重要问题。

技术实现思路

[0003]本专利技术的目的是为了解决现有方法无法实现将不同接口产生的大量高速回波数据实时准确记录下来的问题,而提出一种基于多线程机制的高速回波数据实时记录系统及记录方法。
[0004]一种基于多线程机制的高速回波数据实时记录系统包括:一块高速数据采集板卡和上位机;
[0005]板卡包括FPGA、DDR、外设接口;
[0006]上位机PC主要包括PCIe插槽、硬盘、用户软件;
[0007]所述FPGA用于实现网口、光纤、PCIe外设接口的连接以及数据的采集和传输功能;所述DDR用于增加数据传输带宽,负责FPGA接收数据的第一级缓存;
[0008]所述上位机PC内部设有的PCIe插槽用于连接数据采集板卡;
[0009]所述上位机PC内部设有的硬盘用于数据的存储;
[0010]所述上位机PC内部设有的用户软件用于控制数据采集板卡;
[0011]所述上位机PC内部设有的用户软件是基于National Instrument的LabWindows/CVI平台设计的;
[0012]在LabWindows/CVI软件中使用多线程机制,对多个任务进行分割,在多核处理器中,每个处理器各自执行一个线程,多个任务能够并行执行;
[0013]所述多线程机制包括主线程和辅助线程;
[0014]所述主线程main thread用于用户界面的显示、更新、用户操作的响应;
[0015]所述辅助线程worker thread用于采集,缓存,写入硬盘;
[0016]所述辅助线程包括辅助线程worker thread1、辅助线程worker thread2和辅助线程worker thread3;
[0017]所述thread为线程;
[0018]为接收的数据开辟N个数据缓存区buffer,每个数据缓存区buffer的容量是1帧,并把数据缓存区buffer的首地址存储在数组队列中;
[0019]所述数组队列中存储buffer的id,写辅助线程worker thread2从buffer0开始写,每写完1个buffer就把对应的id写入到队列中,读辅助线程worker thread3从队列中取出buffer已经写满的id,然后从对应的buffer中读取数据并写入磁盘;
[0020]所述thread1用于读取板卡的state_fifo,如果为空,等待更新;如果不空,则把数据state_data写入到对应的命令cmd_fifo和Queue(cmd)中,通过数据采集板卡的PCI

e总线将数据传输给上位机PC;
[0021]所述thread2用于令i=0,从Queue中读取命令cmd,根据命令cmd的值选择把C2H的数据读入到data[cmd]的buffer[data[cmd]i]中,读完后把data[cmd]i写入队列,判断i取值是否为N

1,是,结束;否,令i=i+1,继续从Queue中读取命令cmd,根据命令cmd的值选择把C2H的数据读入到data[cmd]的buffer[data[cmd]i]中,读完后把data[cmd]i写入队列;
[0022]所述Thread3用于从队列取出buffer的id,然后把该buffer中的数据写入到硬盘中,判断i取值是否为N

1,是,结束;否,令i=i+1,继续从队列取出buffer的id,然后把该buffer中的数据写入到硬盘中,直至i取值是N

1;
[0023]N为数据缓存区buffer的个数。
[0024]一种基于多线程机制的高速回波数据实时记录方法具体过程为:
[0025]步骤一、采用数据采集板卡接收高速回波数据;
[0026]步骤二、采用PCI

e总线接口将接收的高速回波数据传递给上位机PC内部的软件;
[0027]所述上位机PC内部的软件LabWindows是基于National Instrument的CVI平台设计的;
[0028]在软件LabWindows/CVI中使用多线程机制,对多个任务进行分割,在多核处理器中,每个处理器各自执行一个线程,多个任务能够并行同时执行;
[0029]所述多线程为大于等于2个线程;
[0030]所述多核为8核或16核;
[0031]所述多线程机制包括主线程和辅助线程;
[0032]步骤三、将上位机PC内部软件接收的数据写入硬盘。
[0033]本专利技术的有益效果:
[0034]基于FPGA硬件平台可以实现丰富的外设接口功能,能够完成多种传输协议下的高速数据采集任务,FPGA的并行处理的能力增强了采集系统的实时性;在LabWindows/CVI基于多线程机制设计实时数据记录软件,可以充分利用多核处理器增强软件性能,每个处理器单独执行一个线程可以保证实时的采集任务不被其它因素中断;同时配合内存设计数据缓冲区,将数据写入缓冲区再依次读出存入硬盘的方式避免了因系统因素造成线程调度不及时而使数据丢失的情况,保证了数据的完整性。解决了现有方法无法实现将不同接口产生的大量高速回波数据实时准确记录下来的问题。
附图说明
[0035]图1为本专利技术硬件总体框图;
[0036]图2为本专利技术多线程软件结构图;
[0037]图3为本专利技术数据缓存区结构图;
[0038]图4a为本专利技术多线程软件中主线程流程图;
[0039]图4b为本专利技术多线程软件中辅线程流程图。
具体实施方式
[0040]具体实施方式一:本实施方式一种基于多线程机制的高速回波数据实时记录系统包括:一块高速数据采集板卡和上位机;
[0041]所述数据采集板卡上FPGA芯片的高速收发器单路支持的传输速率为0.5~13.1Gbps;
[0042]板卡主要包括FPGA、DDR、外设接口;
[0043]上位机PC主要包括PCIe插槽、硬盘、用户软件;
[0044]所述FPGA用于实现网口、光纤、PCIe等外设接口的连接以及数据的采集和传输功能;所述DDR用于增加数据传输带宽,负责FPGA接收数据的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多线程机制的高速回波数据实时记录系统,其特征在于:所述系统包括:一块高速数据采集板卡和上位机;板卡包括FPGA、DDR、外设接口;上位机PC主要包括PCIe插槽、硬盘、用户软件;所述FPGA用于实现网口、光纤、PCIe外设接口的连接以及数据的采集和传输功能;所述DDR用于增加数据传输带宽,负责FPGA接收数据的第一级缓存;所述上位机PC内部设有的PCIe插槽用于连接数据采集板卡;所述上位机PC内部设有的硬盘用于数据的存储;所述上位机PC内部设有的用户软件用于控制数据采集板卡;所述上位机PC内部设有的用户软件是基于National Instrument的LabWindows/CVI平台设计的;在LabWindows/CVI软件中使用多线程机制,对多个任务进行分割,在多核处理器中,每个处理器各自执行一个线程,多个任务能够并行执行;所述多线程机制包括主线程和辅助线程;所述主线程main thread用于用户界面的显示、更新、用户操作的响应;所述辅助线程worker thread用于采集,缓存,写入硬盘;所述辅助线程包括辅助线程worker thread1、辅助线程worker thread2和辅助线程worker thread3;所述thread为线程;为接收的数据开辟N个数据缓存区buffer,每个数据缓存区buffer的容量是1帧,并把数据缓存区buffer的首地址存储在数组队列中;所述数组队列中存储buffer的id,写辅助线程worker thread2从buffer0开始写,每写完1个buffer就把对应的id写入到队列中,读辅助线程worker thread3从队列中取出buffer已经写满的id,然后从对应的buffer中读取数据并写入磁盘;所述thread1用于读取板卡的state_fifo,如果为空,等待更新;如果不空,则把数据state_data写入到对应的命令cmd_fifo和Queue(cmd)中,通过数据采集板卡的PCI

e总线将数据传输给上位机PC;所述thread2用于令i=0,从Queue中读取命令cmd,根据命令cmd的值选择把C2H的数据读入到data[cmd]的buffer[data[cmd]i]中,读完后把data[cmd]i写入队列,判断i取值是否为N

1,是,结束;否,令i=i+1,继续从Queue中读取命令cmd,根据命令cmd的值选择把C2H的数据读入到data[cmd]的buffer[data[cmd]i]中,读完后把data[cmd]i写入队列;所述Thread3用于从队列取出buffer的id,然后把该buffer中的数据写入到硬盘中,判断i取值是否为N

1,是,结束;否,令i=i+1,继续从队列取出buffer的id,然后把该buffer中的数据写...

【专利技术属性】
技术研发人员:张京超高沛文乔立岩
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

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

1