[发明专利]一种基于多线程机制的高速回波数据实时记录系统及记录方法有效
| 申请号: | 202210673222.4 | 申请日: | 2022-06-14 |
| 公开(公告)号: | CN115080206B | 公开(公告)日: | 2023-08-08 |
| 发明(设计)人: | 张京超;高沛文;乔立岩 | 申请(专利权)人: | 哈尔滨工业大学 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F13/42;G06F15/163;G01S7/02 |
| 代理公司: | 哈尔滨市松花江联合专利商标代理有限公司 23213 | 代理人: | 时起磊 |
| 地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 多线程 机制 高速 回波 数据 实时 记录 系统 方法 | ||
1.一种基于多线程机制的高速回波数据实时记录系统,其特征在于:所述系统包括:一块高速数据采集板卡和上位机;
板卡包括FPGA、DDR、外设接口;
上位机PC主要包括PCIe插槽、硬盘、用户软件;
所述FPGA用于实现网口、光纤、PCIe外设接口的连接以及数据的采集和传输功能;所述DDR用于增加数据传输带宽,负责FPGA接收数据的第一级缓存;
所述上位机PC内部设有的PCIe插槽用于连接数据采集板卡;
所述上位机PC内部设有的硬盘用于数据的存储;
所述上位机PC内部设有的用户软件用于控制数据采集板卡;
所述上位机PC内部设有的用户软件是基于NationalInstrument的LabWindows/CVI平台设计的;
在LabWindows/CVI软件中使用多线程机制,对多个任务进行分割,在多核处理器中,每个处理器各自执行一个线程,多个任务能够并行执行;
所述多线程机制包括主线程和辅助线程;
所述主线程mainthread用于用户界面的显示、更新、用户操作的响应;
所述辅助线程workerthread用于采集,缓存,写入硬盘;
所述辅助线程包括辅助线程workerthread1、辅助线程workerthread2和辅助线程workerthread3;
所述thread为线程;
为接收的数据开辟N个数据缓存区buffer,每个数据缓存区buffer的容量是1帧,并把数据缓存区buffer的首地址存储在数组队列中;
所述数组队列中存储buffer的id,写辅助线程workerthread2从buffer0开始写,每写完1个buffer就把对应的id写入到队列中,读辅助线程workerthread3从队列中取出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中的数据写入到硬盘中,直至i取值是N-1;
N为数据缓存区buffer的个数;
所述C2H的数据为板卡到主机的数据。
2.根据权利要求1所述一种基于多线程机制的高速回波数据实时记录系统,其特征在于:所述多线程为大于等于2个线程。
3.根据权利要求2所述一种基于多线程机制的高速回波数据实时记录系统,其特征在于:所述多核为8核或16核。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210673222.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种利用钡渣制备免蒸压加气混凝土材料的工艺及设备
- 下一篇:手持真空吸尘器





