(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210673222.4
(22)申请日 2022.06.14
(71)申请人 哈尔滨工业大 学
地址 150001 黑龙江省哈尔滨市南岗区西
大直街92号
(72)发明人 张京超 高沛文 乔立岩
(74)专利代理 机构 哈尔滨华夏松花江知识产权
代理有限公司 23213
专利代理师 时起磊
(51)Int.Cl.
G06F 9/48(2006.01)
G06F 9/50(2006.01)
G06F 13/42(2006.01)
G06F 15/163(2006.01)
G01S 7/02(2006.01)
(54)发明名称
一种基于多线程机制的高速回波数据实时
记录系统及记录方法
(57)摘要
一种基于多线程机制的高速回波数据实时
记录系统及 记录方法, 本发明涉及基于多线程机
制的高速回波数据实时记录系统及 记录方法。 本
发明的目的是为了解决现有方法无法实现将不
同接口产生的大量高速回波数据实时准确记录
下来的问题。 系统包括: 一块高速数据采集板卡
和上位机; 板卡包括FPGA、 DDR、 外设接口; 上位机
包括PCIe插槽、 硬盘、 用户软件; 上位机内部设有
的用户软件使用多线程机制, 对多个任务进行分
割, 在多核处理器中, 每个处理器各自执行一个
线程, 多个任务能够并行执行; 多线程机制包括
主线程和辅助线程; 主线程用于用户界面的显
示、 更新、 用户操作的响应; 辅助线程用于采集,
缓存, 写入硬盘。 本发明用于电子测量 技术领域。
权利要求书2页 说明书7页 附图3页
CN 115080206 A
2022.09.20
CN 115080206 A
1.一种基于多线程机制的高速回波数据实时记录系统, 其特征在于: 所述系统包括: 一
块高速数据采集板卡和上位机;
板卡包括FPGA、 D DR、 外设接口;
上位机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帧, 并把
数据缓存区buf fer的首地址存 储在数组队列中;
所述数组队列中存储buffer的id, 写辅助线程worker thread2从buffer0开始写, 每写
完1个buffer就把对应的id写入到队列中, 读辅助线程worker thread3从队列中取出
buffer已经写满的id, 然后从对应的buf fer中读取 数据并写入磁 盘;
所述thread1用于读取板卡的state_fifo, 如果为空, 等待更新; 如果不空, 则把数据
state_data写入到对应的命令cmd_fi fo和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]的buf fer[data[cmd]i]中, 读完后把data[cmd]i写入队列;
所述Thread3用于从队列取出buffer的id, 然后把该buffer中 的数据写入到硬盘中, 判
断i取值是否为N ‑1, 是, 结束; 否, 令i=i+1, 继续从队列 取出buffer的id, 然后 把该buffer
中的数据写入到硬 盘中, 直至i取值是N ‑1;
N为数据缓存区buf fer的个数。
2.根据权利要求1所述一种基于多线程机制的高速回波数据实时记录系统, 其特征在
于: 所述多 线程为大于等于2个线程。
3.根据权利要求2所述一种基于多线程机制的高速回波数据实时记录系统, 其特征在
于: 所述多 核为8核或16核。权 利 要 求 书 1/2 页
2
CN 115080206 A
24.一种基于权利要求1所述系统的一种基于多线程机制的高速回波数据实时记录方
法, 其特征在于: 所述方法具体过程 为:
步骤一、 采用数据采集板卡接收高速回波数据;
步骤二、 采用PCI ‑e总线接口将接收的高速回波数据传递给 上位机PC内部的软件;
所述上位机PC内部的软件LabW indows是基于Nati onal Instrument的CVI平台设计的;
在软件LabWindows/CVI 中使用多线程机制, 对多个任务进行分割, 在多核处理器中, 每
个处理器各自执 行一个线程, 多个任务能够并行同时执 行;
所述多线程为大于等于2个线程;
所述多核为8核或16核;
所述多线程机制包括主 线程和辅助线程;
步骤三、 将上位机PC内部软件接收的数据写入硬 盘。
5.根据权利要求4所述一种基于多线程机制的高速回波数据实时记录系统, 其特征在
于: 所述主 线程的具体执 行过程为:
步骤1: 判断主程序用户界面是否加载成功, 若是, 执 行步骤2; 若否, 执 行步骤4;
步骤2: 创建辅助线程, 判断辅助线程是否创建成功, 若是, 执行步骤3; 若否, 执行步骤
4;
步骤3: 响应用户操作, 判断是否退 出, 否, 继续响应用户操作; 是, 执 行步骤4;
步骤4: 释放内存。
6.根据权利要求5所述一种基于多线程机制的高速回波数据实时记录系统, 其特征在
于: 所述步骤2中辅助线程的具体执 行过程为:
步骤21、 数据采集板卡每次完成一帧数据接收后写一次state_fifo, 一帧数据的大小
为4MB;
用户软件读取 数据采集板卡的state_fifo是否为空, 是, 等待更新; 否, 执 行步骤22;
步骤22、 把数据state_data写入到对应的命令cmd_fifo和 Queue(cmd)中, 通过数据采
集板卡的PCI ‑e总线将数据传输给 上位机PC, 执 行步骤23;
步骤23、 令i=0, 从步骤22的Queue(cmd)中读取命令cmd, 根据命令cmd的值选择把C2H
的数据读入到data[cmd]的buffer[data[cmd]i ]缓存器中, 读完后把data[cmd]i写入队列,
判断buffer[i]缓存器是否写满, 是, 执 行步骤24; 否, 重复步骤23;
步骤24、 令i=i+1, 更新数据采集板卡的State_fifo, 从队列取出buffer缓存器的id,
然后把该buffer缓存器中的数据写入到硬盘中, 判断i取值是否为N ‑1, 是, 结束; 否, 执行步
骤24, 直至i取值是N ‑1;
N为数据缓存区buf fer的个数。权 利 要 求 书 2/2 页
3
CN 115080206 A
3
专利 一种基于多线程机制的高速回波数据实时记录系统及记录方法
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:27:10上传分享