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