基于LabVIEW的某探测组件测试终端软件设计
2021-01-21费月玲付梦雯
阎 俊 费月玲 付梦雯
(西安电子工程研究所 西安 710100)
0 引言
近年来,LabVIEW以特有的“数据流”框图式编程模式在测试测量领域应用广泛。目前,利用LabVIEW平台开发较为复杂的实时多任务测试系统已成为一种新趋势。文献[1]基于LabVIEW平台构造复杂多任务并行应用程序,提出了两级队列的解决方案,实现严格的任务定时;文献[2]设计了基于LabVIEW的试验台测试系统,实现对数据的调理、分析以及对数控转台综合性能的检测与评估,证实系统便捷性好,易于操作、精度高等;文献[3]针对超高频RFID读写器测试系统,应用LabVIEW控制待测对象和仪器,通过测试证实该软件简化测试过程,同时减少测试人员,提高工作效率。
本文基于LabVIEW平台开发了某探测组件软件测试系统,运用图形化的编程语言,实现了对USB-CANII[4]高性能CAN接口卡通过调用专用库函数进行二次编程,完成了辐射源方位码测试终端数据的接收、查询、存取以及参数控制。
1 探测组件构成及原理
某毫米波探测组件测试系统构成如图1所示。其中,探测组件(虚线框部分)主要由毫米波检波模块的预警接收单元(接收模块1~4,共8个接收通道)和包含A/D量化模块、信号分选模块、方位解算模块等部分的信号处理单元两大部分组成。信号源为测试系统提供毫米波信号。USBCANII接口卡在PC和探测组件之间建立通讯渠道,同时应用CAN接口库函数二次编程并进行数据接收、查询、存取以及控制参数的设定, 把现场数据通过USB接口上传给PC终端,同时收集现场数据并通过USBCANII接口卡回传给 CAN通讯总线。
图1 毫米波探测组件测试系统构成
1.1 测试原理
图2为毫米波探测组件在实地测试中的工作原理。当告警天线1~天线n截获到目标威胁信号(图1信号源模拟)时,毫米波探测组件中检波模块接收信号后对其进行对数放大,将视频信号输出给信号处理单元。信号处理单元中的A/D模块对视频信号进行采样量化后得到8个通道信号幅度的量化值,在信号处理单元中进行脉冲描述字的形成和信号分选,并通过方位解算模块对相邻波束输出的幅度值进行比较、计算,最终得到辐射源的方位码。信号处理模块将辐射源的方位码通过USBCANII接口卡上传给PC终端,完成整个毫米波探测组件的技术参数测试功能。
图2 毫米波探测组件工作原理
1.2 USBCANII[4]接口库函数结构定义
USBCANII高性能CAN接口卡主要用于对ZLG-CAN系列板卡进行软件测试。集成2路CAN-bus接口的高性能PC-CAN接口卡,CAN通道集成独立的电气隔离保护电路。USBCANII使PC通过USB端口连接至CAN网络,构成一个CAN-bus控制节点。
USBCANII[4]提供专用的接口库函数并允许PC软件平台自行编程进行数据收发、查询及处理。库函数调用使用流程如图3所示。
图3 接口库函数使用流程[4]
2 软件开发与设计
2.1 LabVIEW编程简介[5]
LabVIEW实验室虚拟仪器工作平台是NI公司开发的一种基于结构框图或流程图的编程语言,核心是“数据流”。用户利用创建功能控件(VI)和调用子程序的方法编写程序,前面板模拟真实仪器、程序框图控制控件对象、图标/接线端口将LabVIEW程序定义成一个子程序,从而实现模块化编程。
LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。内置便于应用TCP/IP、ActiveX等软件标准的库函数,可方便建立自己的虚拟仪器。
本文辐射源方位码测试系统开发平台基于LabVIEW编程语言,软件功能实现如图4所示。
图4 软件功能总体框图
主体程序主要包括USBCANII接口卡功能参数设置和辐射源方位码事件响应两部分。USBCANII接口卡对应特定的设备索引号和CAN通道,打开设备索引和所需通道并设置CAN初始化参数。接口卡初始化结构体VCI_INIT_CONFIG(图5)定义了初始化CAN参数配置,并在图4中VCI-Init Can库函数被填充。启动CAN接口卡,设置要发送CAN帧的各项参数并发送数据。
图5 接口卡初始化结构体
2.2 CAN数据帧通讯
CAN数据帧采用的是短帧结构,每一帧数据的有效字节数为8个。CAN数据帧通讯主要包括CAN参数初始化、数据的发送以及数据的接收。参数初始化是CAN数据帧通讯的基础,未进行初始化系统将无法工作。初始化是对CAN数据帧相关控制寄存器进行设置,包括验证码、屏蔽码、滤波方式、波特率、收发模式等。初始化设置完成后,CAN数据帧进入工作状态,进行正常通讯工作。
发送CAN数据帧之前需要对帧参数进行设置,包括发送格式、帧类型、帧格式、帧ID、数据等。发送数据程序将数据存储区中待发送的数据取出,捆绑成CAN数据帧信息簇VCI_CAN_OBJ_T(图6)。数据帧ID为帧头,随后将信息簇VCI_CAN_OBJ_T发送到CAN控制器的发送缓冲区。在接收到PC的发送请求后,CAN数据帧信息簇从CAN控制器发送到总线,完成数据发送过程。
图6 CAN数据帧信息簇
接收CAN数据帧的线程是信息簇VCI_CAN_OBJ_R从CAN 总线到CAN 控制器接收缓冲区提取数据的过程。接收程序只需从接收缓冲区读取信息,并将其存储在数据存储区,完成数据接收过程。
2.3 程序结构分析
创建辐射源方位码TR(发-收)事件作为事件结构的单独分支,依据待测试的方位码参数搭建LabVIEW程序框架。首先,调用库函数VCI _Transmit(图7)发送CAN数据帧,设置要发送CAN数据帧结构体数组VCI_CAN_OBJ的Send以及帧的数量Len,函数返回实际发送成功的帧数;其次,调用库函数VCI _Receive(图8)读取CAN通道缓冲区数据,函数返回实际读取的帧数;最后,对接收到的数据帧依据通讯协议二次编程,多列列表框作为最终输出控件显示满足测试要求的辐射源方位码。
图7 VCI _ Transmit库函数
图8 VCI _ Receive库函数
程序界面编写基于事件结构。创建While循环将事件结构包含在循环体内,添加事件源,创建控件引用类事件分支和
图9 创建
1)创建用户事件。定义
2)注册用户事件。连接用户事件输出作为“注册事件”函数的事件源,将事件注册引用句柄输出端连接至
3)产生、处理用户事件。调用库函数VCI _Transmit发送数据(程序线程如图10所示),产生发送用户事件;调用库函数VCI _Receive接收数据(程序线程如图11所示),产生接收用户事件;
图10 VCI _ Transmit发送程序线程
图11 VCI _ Receive接收程序线程
4)取消注册事件。取消注册与
5)销毁用户事件。释放
通过事件结构中
3 测试系统性能验证
根据图1搭建测试系统,信号源信号输出端连接接收模块1的第1通道作为接收通道。设置信号源输出频率32GHz、脉冲宽度10μs、脉冲重复周期(PRI)100μs;设置初始化CAN参数、发送CAN数据帧参数;显示控件多列列表框接收辐射源方位码数据,每一列分别代表辐射源方位码参数项目名称分类,行代表接收到每一帧的数据信息。辐射源方位码自发自收测试终端接收到通道1的方位码数据以多列列表框控件显示如表1所示。
可见,接收到通道1的方位角DOA参数显示22°,脉冲重复周期PRI参数为100μs,输出功率PW为9.36dBm,1通道噪声参数PA1的值随着信号源输出功率以1dB步进量增大的同时也在随之增大,直到达到饱和值后衰减,未测试通道噪声参数PA2~PA8的值保持不变。
测试性能结果表明,基于LabVIEW平台的辐射源方位码自发自收测试终端程序开发,结合产品技术条件要求验证了接收方位码数据被用于产品测试项目的正确性,提高测试效率。
表1 辐射源方位码
4 结束语
以往的ZLGCAN系列板卡测试终端大多数通过MFC在VC++环境下利用辅助软件开发包编写测试系统的测试程序。本文辐射源方位码测试终端开发平台基于LabVIEW编程语言,通过对毫米波探测组件的测试分析,获得以下结论:
1)考虑LabVIEW推崇的“数据流”框图式编程模式,验证了自定义事件和动态注册事件在处理复杂编程问题时极大地改善界面处理效率,减少CPU的占用率。说明了基于事件结构与传统设计模式相结合的设计思维,很大程度上简化了编程,提高了LabVIEW运行效率。
2)USBCANII[1]高性能CAN接口卡调用专用的接口库函数对ZLGCAN系列板卡进行软件测试,方便LabVIEW平台针对毫米波探测组件自行开发二次编程并进行数据收发、查询及处理。
3)基于LabVIEW平台的ZLGCAN系列板卡测试程序开发,主体架构较直观,方便初学者快速掌握编程要点,缩短软件开发时间,提高测试效率。