0 引言
随着计算机技术和现代电子测量技术在仪器领域的应用和普及,特别是电子测量仪器计算机接口及相应标准的出现,使得计算机与仪器间的通信简单易得,用户可以通过计算机程序进行仪器控制和数据读取与存储,这些技术的发展使得天线自动测量系统的实现成为可能。
以往基于单线程的简单测量系统,对用户操作的响应以及多任务之间的切换需要使用“中断处理”来完成,极大地影响了系统的实时性和工作效率,测量过程中软件进入数据读取与存储的循环过程,使得用户界面进入“假死”状态,无法对测量进行控制和了解系统测量的实时进度。为了弥补这些不足,需要做到多任务的并行工作,而多线程技术以其避免阻塞、同时执行多项任务、减小运行过程和用户界面的相互影响,以及最大程度地利用多处理器性能的独特优点很好地满足了这一要求。
本文设计了一套基于多线程技术的天线实时测量系统,提供了布局简洁而功能完善的用户界面,可以完成所有测量参数的输入和设置并及时响应用户操作,使用不同线程实现多个任务的并行工作,提高系统实时性,在用户界面实时更新显示仪器的运行状态和系统的测量进度以供用户了解系统状态,同时实现了测量数据的实时读取和保存,便于后期的进一步处理和研究。
1 系统概述
1.1 系统工作原理
本测量系统使用旋转天线测量法,辅助天线(源天线)连接到矢网发射端口,待测天线连接到矢网接收端口,使待测天线的待测平面与转台旋转平面平行,使用矢网测量不同角度的传输参数(S 参数),利用这些数据便可以做出特定频率下的天线方向图。此外矢网的扫频特性为天线测量提供了另外一个优势,即在一次测量中,可以得到在某一频段内多个频点的测量数据,可以通过对比不同频点的数据和天线方向图对天线的频率特性进行比较和分析。
1.2 系统组成
该测试系统由五部分组成:微波暗室,计算机(系统软件),矢量网络分析仪,程控转台和源天线。其布局如图1所示。
图1 系统组成
主控计算机与矢量网络分析仪通过LAN 线互连,与传统的GPIB总线模式比较,突破了通信距离限制,具有数据流量大、控制灵活、易于设备共享、数据共享等优点。
矢量网络分析仪用于扫频信号的发射与接收,源天线通过同轴线与连接到矢量网络分析仪功率发射端的功率放大器相连,待测天线通过同轴线与矢量网络分析仪的功率接收端口相连。
主控计算机与转台控制箱通过USB接口相连,不需要考虑转台控制的机械流程,只需要编程完成与控制箱的通信,即可控制转台和获取转台状态数据。
矢量网络分析仪与转台控制箱之间通过BNC接头同轴电缆连接,转台控制箱通过此电缆向矢量网络分析仪发送测量所需的触发脉冲。
2 系统软件实现
编写系统软件使用的编译环境是基于VC++的MFC(Microsoft Foundation Classes),使用面向对象的程序设计(Object OrientedProgramming,OOP)方法,分别使用基于VISA(VirtualInstrumentSoftwareArchitec-ture)库的SCPI(StandardCommands for ProgrammableInstruments)指令和Mint运动控制语言进行编程完成计算机与矢量网络分析仪和转台的通信,控制仪器并读取信息和数据。
2.1 软件分层结构与信息交互
系统软件是整个系统的控制核心,它的功能对用户是透明的,对于用户而言,只要选择和输入了正确的测量参数,系统就能自动完成相应的测量功能。
根据软件需求和功能,可将其分为三层结构部分:
用户界面部分、数据处理部分和硬件接口部分。
系统软件各层之间的信息交互如图2所示。
图2 软件各层之间的信息交互
用户界面部分,响应用户操作,将硬件设置传输到硬件接口部分,将输入数据送到数据处理部分,同时将数据处理部分送来的数据与状态信息显示给用户,使用户可以便捷地完成测量控制与监控。
数据处理部分,一方面将硬件接口传递来的数据与状态信息进行处理,转换为用户需要的格式以供显示和存储;另一方面将用户设置的数据信息转换为数据指令交给硬件接口部分。
硬件接口部分,完成计算机与仪器之间的通信,一方面将指令和数据等程序语言转化为仪器可识别的机器语言输送到仪器;另一方面将仪器传输回来的数据和状态信息等转换为可编程处理的数据,以供数据处理部分使用。
2.2 软件任务分析
根据系统工作原理,系统软件需要完成以下任务:
(1)建立计算机与转台控制箱之间的通信:建立通道,使计算机可以读取转台实时运行状态,并可以随时控制转台以改变其运行状态。
(2)转台运行状态的显示:将转台运动速度及角度信息显示到用户界面并实时更新。
(3)转台运行参数的设置:按照用户输入设置转台的运动速度、起止位置以及脉冲输出方式,并控制其运动的起止。
(4)建立计算机与矢量网络分析仪的通信:建立通道,使计算机可以读取矢网状态及测量数据,并可以随时控制矢网以改变其运行状态。
(5)矢量网络分析仪的初始化以及测量参数的设置:使用基于VISA 库的SCPI指令,对矢网进行初始化使其进入测量状态,按照用户输入完成测量参数的设置。
(6)测量数据存储文档的建立与更新:在计算机中建立文档用于测量数据的存储,将测量过程从由矢网读取的测量数据按特定格式进行实时记录。
(7)系统测量进度的显示:在测量过程中的软件运行节点、测量过程中完成某次测量时以及测量完成后输出相应提示性文字到用户界面。
在实时测量系统中,要求计算机能同时完成多项任务,且具有很高的实时性要求,多线程技术以其避免阻塞、能同时执行多项任务、减小运行过程和用户界面的相互影响,以及最大程度地利用多处理器性能的独特优点很好地满足了这一要求。
2.3 软件多线程的实现
MFC 中有两类线程,用户界面线程和工作者线程。前者有自己的消息队列和消息循环,一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等;后者没有消息循环,通常用来执行后台计算和维护任务,如冗长的计算过程,数据的循环读取等。
任意一个MFC 程序至少具有一个线程,也是程序的主线程。通过主线程能够生成或终止任意多的线程,主线程一直存在直至程序终止。其中用户界面线程是程序默认启动的主线程,主要实现软件的运行和响应用户操作及控制。根据软件任务分析部分,在主线程中生成三个工作者线程,通过计算机与测量仪器的通信,完成仪器参数的设置以及数据的实时采集、处理等后台工作。
各线程工作顺序及生存时间如图3所示。
图3 各线层工作顺序及生存时间
三个工作者线程所完成的具体工作如下:
转台状态线程:建立计算机与转台控制箱的通信,不断读取转台的位置信息和速度信息并将其更新显示到用户界面,对应软件任务分析部分的任务(1)和(2),流程如图4所示。
图4 转台状态线程
转台启动线程:首先进入等待状态,在矢网初始化以及数据文档建立完成后,向转台控制箱发送指令设置转台的运行参数使其开始运动,对应软件任务分析部分的任务(3),流程如图5所示。
图5 转台启动线程流程图
矢网工作线程:其功能为向矢网发送指令进行初始化设置,使矢网进入触发等待状态,并建立数据存储文档,在测量过程中不断读取矢网的测量状态,每完成一次测量,将测量数据读取并保存到文档中,同时将测量进度显示到用户界面,对应软件任务分析部分的任务(4)~(7),流程如图6所示。
图6 矢网工作线程流程图
3 系统性能
3.1 系统软件用户界面
系统软件用户界面根据功能进行区域划分和布局,保证视图清晰和操作方便,如图7所示,其中序号标注的区域功能如下:
(1)系统菜单:可以完成一些系统常规设置,如仪器切换,数据输出格式以及仪器运行方式的选择等。这些设置不需要经常改动,对于一般测试使用默认设置即可。
(2)常用设置:用于输入矢网测量参数和转台运行参数,以及文件输出位置的选择和自定义文件名的输入。此部分为系统运行时经常需要改动的设置,与用户交互频繁。
图7 用户界面主对话框
(3)测量控制:控制测量的启动与停止,也可以在非测量状态下控制转台的运行。用户对此部分进行操作便可完成对系统运行的控制,以及对转台进行位置调整等。
(4)系统运行状态显示:实时显示转台的转动速度和当前位置,在测量过程中不断更新显示系统的运行进度。通过这些信息用户可以对系统状态了如指掌,以便做出适当操作。
3.2 测量实例选择实验室内BJ-32标准矩形角锥喇叭天线,使用Agilent和Anritsu 矢量网络分析仪分别进行测量,相关参数见表1。
选取两次测量所得数据文档中3.26 GHz频率点的数据做出天线归一化方向图,如图8和图9所示。
图8Agilent测量结果
图9 Anritsu测量结果
4 结论
本系统以计算机为核心,充分利用了实验室先进仪器的计算机通信接口,系统软件的用户界面布局清晰、功能全面,减少了对仪器的直接操作,对贵重仪器起到了保护作用从而降低了维护费用。系统中使用矢量网络分析仪使得系统具有一次性扫描测量便可获得多频点天线数据的能力。编程中采用通用标准指令,增强了软件的可移植性和可扩展性。多线程技术的使用,实现了多任务的并行工作,满足了系统实时性要求,使用户可以通过用户界面直观了解到系统运行状态及测量进度,同时还可将天线测量数据即时读取并保存,以便进一步处理和研究。