基于LAN总线的频谱仪控制技术的实现
2014-08-29聂鹏,宋平,徐涛,韩娇
聂 鹏,宋 平,徐 涛,韩 娇
(沈阳航空航天大学 机电工程学院,沈阳 110136)
基于LAN总线的频谱仪控制技术的实现
聂 鹏,宋 平,徐 涛,韩 娇
(沈阳航空航天大学 机电工程学院,沈阳 110136)
阐述了一套基于LAN总线的频谱仪自动化控制系统的设计。本系统以图形化编程语言labview为开发平台,引入虚拟仪器这一概念,通过VISA函数库和SCPI命令进行编程,通过LAN总线与计算机连接传输数据,设计了对频谱仪的自动化控制系统。本系统操作简单,提高了测量的效率和测量精度,且易于和其他仪器连接做进一步的系统开发。
LAN总线;虚拟仪器技术;Labview;频谱仪
随着自动化技术的发展,虚拟仪器技术在自动化测试领域的应用越来越广泛。频谱仪作为测试领域的重要仪器,其应用越来越广泛,而使用传统的手动操作频谱仪进行测量耗时耗力,测量结果的可靠性也不高,显然已经不能满足当今时代测试系统的要求,因而开发自动化的测试系统是大势所趋。而仪器控制技术作为虚拟仪器技术重要内容之一,则成为开发自动化系统的关键。本文在labview开发环境下,应用仪器控制技术,通过VISA库函数及SCPI命令进行编程,通过LAN总线接口实现计算机对频谱仪的控制。
1 系统硬件组成
根据系统要求,测试系统的硬件部分主要由AV4036型号频谱仪、LAN总线、毫米波天线发射机和计算机组成。测试系统的硬件组成如图1所示。
图1 测试系统硬件组成
AV4036频谱仪是一种在测试领域应用十分广泛的仪器,它是计算机技术向测量仪器移植的产物,能通过总线接受外来信号命令改变内部状态,整个测量过程受计算机控制,能够灵活接受命令,存储数据。频谱仪和PC机的连接采用LAN总线,使用labview提供的MAX仪器配置工具对频谱仪进行配置。配置时要设置频谱仪的网络参数并使频谱仪的网关和子网掩码和计算机的相同。完成配置后PC机即可通过LAN总线对频谱仪发送命令从而进行控制,使得频谱仪能实现多种功能。
LAN(local-area networking)总线是整个系统的核心模块。LAN为计算机连接网络所设计的标准。LAN应用于仪器控制的历史并不长,在仪器控制总线的应用仍只占一小部分,但同GPIB总线相比仍具备了不可替代的优势。LAN总线相比于GPIB总线系统搭建成本要低廉而且实现起来要容易。同时LAN总线突破了GPIB总线在长度上的限制,增加了仪器远程控制的距离,这也是LAN总线最明显的优势,同时突破了GPIB总线传输速度慢,当系统需要长距离分布式的测量或需要测量仪靠近测量源而远离计算机时,这种距离上的优势就显得尤为重要。LAN总线比GPIB总线等具有更高的带宽,可靠性也比较高。LAN总线便于增加系统连接仪器的数目,提高了系统的可扩展性。另外,LAN总线允许测量仪器连接以太网,实现远程数据的采集。
2 系统软件设计
2.1 虚拟仪器软件构架
虚拟仪器软件构架VISA(Virtual Instrumentation Software Architecture)是VPP联盟制定的通用I/O标准,是计算机系统与仪器硬件之间进行通信的桥梁和纽带。通常把这个I/O函数库称为VISA库。VISA库为用户提供了统一的函数接口,开发控制程序时只需根据库中的标准函数形式进行调用即可,摆脱了不同仪器需要不同I/O接口软件的状况。目前大部分都是通过调用VISA实现虚拟仪器的驱动程序和应用程序对仪器的控制。VISA定义的I/O接口规范适用于LAN、GPIB、串口(如RS-232)和其他接口。下图给出了测试系统软件构架原理图。
图2 测试系统软件构架原理图
2.2 可编程仪器标准命令
可编程仪器标准命令SCPI(Standard Commands for Programmable Instruments)是1990年由SCPI联盟提出的用于解决程控仪器编程进一步标准化的通用程控语言。在IEEE488.2和IEEE754提出的标准代码和格式的基础上建立了SCPI标准,它包含了IEEE488.2所提出的通用命令,并且通过指定通用的控制命令来对不同的仪器实现控制。[1]SCPI最大的特点是它描述的是正在打算测量的信号,并不是正在用以测量信号的仪器。SCPI语句以ASCII文本的方式存在,因此可以叫入到任何计算机测试编程语言之中。编写仪器控制程序时,在仪器提供的仪器用户手册中通常给出用于实现仪器远程控制的SCPI命令库,为开发仪器控制程序提供了便利的条件。SCPI命令分为通用命令和分系统命令。通用命令用来控制仪器状态寄存器、状态报告、同步、数据存储及其它通用功能。所有的通用命令都可以通过命令字的第一个“*”被识别,在IEEE488.2中详细定义了通用命令。表1为通用命令集。
表1 通用命令集
分系统命令用来进行测量、读取数据以及控制仪器设置等工作,每一个命令子系统都是对应着频谱仪内部一个功能模块的命令集。下面介绍常用到的命令:
(1)[:SENEe]:FREQuency:CENTer
(2)[:SENEe]:FREQuency:SPAN
(3)[:SENEe]:FREQuency:STARt
(4)[:SENEe]:SWEep:TIME
(5):TRACe[:DATA]?
2.3 程控系统的软件设计
本系统采用labview编写控制程序,Labview是美国NI公司推出的可视化的虚拟仪器系统的开发平台,是一款图形化的系统设计软件,专用于虚拟仪器开发的语言之一。它结合了图形化编程方式的高效性和灵活性,以及包括了几乎所有测试测量工程与自动化控制应用设计的高端性能和配置功能。同编程工具VB,VC相比,labview具有学习简单、便于掌握的优点。而且,运用labview可以设计出形象逼真的用户界面。
本系统的编程原理是:应用VISA函数库,通过LAN总线接口把SCPI命令送到仪器中,仪器接收命令后进行分析,并做出相应的响应,最后将测量的数据通过LAN总线接口返回计算机,再进行进一步处理,从而完成仪器的控制。系统的流程图如下:
图3 软件系统流程
在labview中进行仪器控制主要进行3个步骤:(1)查阅仪器手册,找到仪器所需的SCPI命令。(2)用NI-VISA Write.vi向仪器发送指令。(3)用NI-VISA Read.vi从仪器中读回数据。整个labview程序框图采用顺序结构:频谱仪初始化、设置频谱仪初始参数、读取频谱仪参数、最后关闭频谱仪,在进行参数下发和读取时嵌套循环和事件结构[2]。下面分析关键技术。
2.3.1 设置频谱仪初始参数
在labview中对频谱仪的中心频率、跨度、起始/终止频率等参数进行设置,其部分程序框图如下:
通过VISA函数模板对频谱仪写入SCPI命令并设置频谱仪的起始/终止频率,首先用VISA Open函数打开VISA资源,设置终止符“ ”,然后用VISA Write函数写入设置起始/终止频率命令,这里用到字符串函数功能格式化写入字符串将SCPI命令写入并能在前面板输入起始终止频率,最后用VISA Close函数关闭VISA资源。
图4 设置起始/终止频率的程序框图
2.3.2 数据的读取
本设计不但向频谱仪发送控制命令,而且还需要从频谱仪读取测量结果并保存,频谱仪的数据采集程序如下图所示。
图5 频谱仪数据读取程序框图
通过VISA函数模板对频谱仪写入SCPI命令并从频谱仪读取测量数据,首先用VISA Open函数打开VISA资源,然后用VISA Write函数写入数据采集命令“TRAC:DATA?TRACE 1”,接着VISA Read函数读取频谱仪数据,最后用VISA Close函数关闭VISA资源。数据采集程序采用While循环结构,考虑到数据通信的时间延迟,循环间隔设定为500 ms。
2.3.3 频谱仪波形参数的解析
频谱仪开始采集被测信号后,被测信号波形显示在屏幕上,还需对波形相关参数(峰值频率、峰值幅度等)进行采集,以方便对数据的处理。其部分程序框图如下。
测试时通过SCPI命令控制频谱仪在最大保持扫描模式下进行测量,打开频标1,查询到频标1的最大值,查询频标1最大值的横坐标值即为测量信号的频率值,最大值处的纵坐标值即为测量信号的幅值。
2.3.4 全局变量
全局变量是控制系统参数跟踪功能实现的关键技术。控制系统中包含多个VISA资源,在编程时要在不同的子VI多次打开接口资源。由于频谱仪的SCPI命令库非常庞大,编程时使用这些命令比较繁琐。为了方便这些接口资源以及SCPI命令的管理和使用,引入了全局变量。全局变量把两个独立的VI联系起来,实现不同VI之间的通信,使得异步的任务共享信息。
2.3.5 事件驱动技术
Event Structure是事件驱动编程技术,使用事件来控制程序的运行,使其在不同的分支之间跳转。相比于用For循环等进行循环方式进行编程,此技术可以避免循环方式带来的CPU浪费,状态跳转滞后的缺点,提高整个程序的运行速度。
图6 频频仪采集信号部分程序
本设计将事件驱动程序应用到参数下发这一事件,将每个参数下发作为一个事件对事件驱动进行定义,当有新的参数下发时,事件驱动得到通知进入相应的驱动程序;若无参数下发,事件驱动则处于睡眠状态直到预先设定的事件发生时才会苏醒,程序不会一直处于循环状态。
3 测试结果
本测试系统过程是由毫米波天线发射机发出信号,其频率为35 GHz,通过天线接收由频谱仪测量其参数,频谱仪的参数设置如下图所示。
图7 频谱仪的参数设置
频谱仪测量天线的频率和幅值的结果如下图所示。
图8 测量天线的频率和幅值
经过同频谱仪自身显示的数据结果的对比,本测试系统的测量结果是和其相同的。
4 结论
虚拟仪器以其可视化、低成本的优势被更多的程序员所采用,其已成为自动化测试领域的主流。Labview作为图形化测试系统的一种专用工具得到了越来越多的应用。本文采用了labview编写的程序实现了对频谱仪的控制。文中介绍了系统的硬件的结构和功能,和软件的流程,分析了其中的关键技术如全局变量、事件驱动等技术。本系统易于和其他测试仪器(如示波器、功率计)组成测试系统为进一步开发天线测试系统打下基础。
[1]李宁,李进杰.仪器控制技术在自动化测量系统中的应用[J].工业控制计算机,2008,21(1):1-3.
[2]吕继宇,张华春,阴和俊.基于Labview的频谱仪控制系统设计[J].测试技术学报,2005,19(4):426-431.
[3]朱波,李华.基于SCPI语言的智能仪器labview驱动设计[J].仪表技术与传感器,2008(9):53-54.
[4]秦凡,韦高.基于VISA库及SCPI命令的仪器程控测量[J].现代电子技术,2011,34(11):118-120.
[5]刘严严,徐世伟,郭海帆.频谱分析仪自动化测试技术的研究[J].国外电子测量技术,2006,25(7):62-64.
[6]武跃斌,欧卫国.基于虚拟仪器技术的频谱分析仪自动测试系统[J].国外电子测量技术,2006(6):72-76.
[7]王琳,黄翔,王学伟.基于LXI总线的远程测试系统的设计与实现[J].电测与仪表,2010,47(5):48-51.
[8]郑玲玲,许刚,韩玮.基于LXI总线的频谱仪远程控制方法的实现[J].电子测量技术,2012,35(1):93-95.
[9]郝丽,赵伟,王坤.基于LabVIEW的一起控制教学示例[J].电气电子教学学报,2012,34(4):80-83.
[10]张磊.利用VISA控制仪器设备各种接口[J].电子测试,2008(10):58-61.
[11]蒋新文,张宁,杨三序.基于虚拟仪器的测控系统[J].微计算机信息,2007(23):30-32.
[12]郑挺,王勇.虚拟仪器技术在自动测试系统中的应用[J].中国测试技术,2006(32):42-44.
[13]卢燕涛,郁月华,刘明亮,等.一种基于LAN总线的仪器自动控制方法[J].测量与设备,2008(7):39-41.
[14]高建伟.新一代仪器测试总线-LXI[J].航空计算技术,2006,36(6):121-124.
[15]蒋薇,张晓波,赖青贵.基于LabVIEW的仪器通信技术研究[J].计算机测量与控制,2013,21(4):1030-1032.
(责任编辑:刘划 英文审校:李丹莉)
ConroltechnologyforspectrumanalyzerbaseonLANbus
NIE Peng,SONG Ping,XU Tao,HAN Jiao
(School of Mechanical and Electronic Engineering,Shenyang Aerospce University,Shenyang 110136,China)
The essay describes the design of an automated control system for spectrum analyzer based on LAN bus.Using the graphical programming language Labview as the development platform,the system connects with computer by LAN bus to transfer data by introducing the concept of virtual instrument and programming through the VISA function library and the SCPI command.The system improves the efficiency and precision of measurement.It is easier to operate and link to other instruments for further systematical development.
LAN bus;virtual instrumental technology;Labview;spectrum analyzer
2014-09-18
聂鹏(1972-),男,吉林吉林人,教授,主要研究方向:测控技术。E-mail:niehit@163.com。
2095-1248(2014)06-0042-06
TP311
A
10.3969/j.issn.2095-1248.2014.06.008