当前位置:主页 > 科技论文 > 物理论文 >

水声探测器测试系统设计与实现

发布时间:2021-10-26 11:02
  为了提升水声探测性能,其探测器不断改造升级,传统利用各类标准台式仪器对其测试,在成本、检测周期、操作复杂度等方面均有明显的增加,鉴于以上问题,设计了一套自动化测试系统;阐述了测试系统设计原理、硬件设计方法、水声探测器各组件的测试软件设计方法;在测试软件设计中,对于信号幅度和频率计算方面,引入了基于自功率谱函数的快捷计算方法;对于CAN通信软件模块开发方面,提出了一种Database Editor机制,简化了CAN会话句柄创建过程,并应用stream模式实现CAN通信,提升了CAN帧数据接收效率;对于短调制脉冲信号测试,利用多线程结合通道触发的方法,实现了准确测试;采用该测试系统对水声探测器进行测试,效果表明,操作方便快捷、检测周期显著缩短、可靠稳定、完全达到了预期的效果。 

【文章来源】:计算机测量与控制. 2020,28(05)

【文章页数】:4 页

【部分图文】:

水声探测器测试系统设计与实现


水声探测器测试系统原理

流程图,测试软件,接收机,组件


具体实现方法是:利用GetCtrlval[5]函数获取测试软件界面回波配置参数,将板卡更新率除以回波频率获得回波每周期点数,设置每周期点数倍数关系的输出波形总点数,将每周期点数、总点数、信号幅度赋到SineWave函数对应的参数里,编辑模拟回波数据;控制码属于数字信号输出,先后利用DAQmxCreateTask函数、DAQmxCreateDOChan函数、DAQmxstartTask函数创建DO任务,配置DO任务,开启DO任务,然后调用DAQmxWriteDigitalLine函数将控制码数字信号进行输出;混频信号按照编辑模拟回波数据方法,完成数据编辑,然后分别利用DAQmxCreateTask函数、DAQmxCreateAOChan函数创建AO任务,配置AO任务,调用DAQmxWriteAnalogF64函数将编辑的波形数据下载到板卡里,通过DAQmxstartTask函数将混频信号输出;多路复用开关切换方面,利用niSwitch_InitwithTopology函数,并将该函数参数topology设置为需要的开关拓扑模式,复位模式设置为不使能,完成初始化开关板卡并获得开关句柄,将该句柄赋给niSwitch_Connect函数,同时将闭合开关的左右结点标识符赋给此函数的相应参数,完成闭合左右结点标识符对应的开关;模拟回波信号输入按照混频信号输入编程方法,将其输入给接收机组件;设置采样点数及采样率,调用DAQmxReadAnalogF64将接收机输出信号进行采集,将采集的数据,采样点数,采样率的倒数均赋给自功率谱函数AutoPowerSpectrum相应的参数,同时将获取所有信号幅度有效值的数组指针和获得频谱上频率间隔的变量指针也赋给此函数的相应参数,然后将获取所有信号幅度有效值的数组指针再赋给寻找最值的函数MaxMin1D的相应参数,便找到此数组中的最大值,并得到最大值在数组中的序号,此最大值除以槡2便可得到有用信号幅度的峰值,将最大值的序号乘以频率间隔便得到了有用信号的频率,利用函数SetTableCellVal将值显示在测试软件界面对应的表格里,如果待测通道没有测完,继续切换开关,只需要将niSwitch_Connect函数的参数修改为对应开关的左右结点标识符,如果所有通道已测试完成,利用函数MessagePopup告知用户测试完成。3.2 数字机组件测试软件设计

句柄


在CAN通信前,需要创建CAN会话句柄[8],传统的创建首先要用nxdbOpenDatabase函数创建Database标识符,然后将其传给nxdbCreatObject函数创建Cluster标识符,再将Cluster标识符传给nxdbCreatObject创建CAN Frame标识符,最后还要调用nxdbSetPropertyp函数配置CAN帧格式、帧ID、数据段长度,这些完成后,才能调用nxCreateSession函数来创建CAN会话,因此这种用代码编写创建相对麻烦,为了简化创建过程,应用了Database Edior的方法,具体实现方法是:利用Database Editor创建一个Database文件,然后直接利用菜单按钮继续创建Cluster和CAN Frame,便得到了图3所示界面,CAN帧格式、帧ID、数据段长度等参数可直接配置,配置完成后,点击保存该文件,创建CAN会话时,直接将该文件名赋给nxCreateSession函数,便可得到CAN会话句柄。在CAN通信时,采用了stream模式。因Stream模式不是只读最近时刻且希望获取类型的CAN帧,它不检测总线上是什么类型的CAN帧,只检测总线上在某一时刻所有的CAN帧,然后一次性取回,后期用户再根据自身需求处理各类CAN帧,由于本测试系统模拟水下航行体中探测与各个系统之间的信息交互,所以对各系统发来的CAN帧数据都关心,这样采用stream模式,减少读取次数,提高了接收效率。具体实现方法是:在nxCreateSession函数中设置成nxMode_FrameInStream模式,并将帧类型参数设置为NULL,按照CAN协议设置一个结构体类型struct can_frame,其成员包括:时间戳、ID、帧类型、标志位、状态信息、数据段长度,数据缓冲区。开辟一个该类型的结构体数组,将创建的CAN会话句柄,结构体数组首地址赋给nxReadFrame,调用此函数进行数据读取。

【参考文献】:
期刊论文
[1]LabWindows/CVI多线程技术的应用研究[J]. 单体强,陈雷,张万发.  电子设计工程. 2012(15)
[2]CAN总线应用层协议的研究与实现[J]. 王邦继,刘庆想,李相强,张健穹.  计算机工程与应用. 2011(20)
[3]基于LabWindows/CVI的多路高速数据采集系统设计[J]. 周承仙,李仰军,武锦辉,翟慧娟.  电子测量技术. 2007(12)



本文编号:3459385

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/wulilw/3459385.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户09691***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com