基于GPIB总线虚拟仪器的设计与应用

分享到:
点击量: 252592 来源: 上海御盈电子科技有限公司

基于GPIB总线虚拟仪器的设计与应用

基于GPIB总线虚拟仪器的设计与应用

张琼 严国萍

(华中科技大学电子与信息工程系武汉430074)

摘要:介绍了采用功能强大的虚拟仪器软件开发集成环境LabVIEW开发基于GPIB总线的虚拟仪器的全过程及其硬件和软件要求,并给出了一个开发实例。实例为采用LabVIEW虚拟仪器开发平台设计一个测量多路前置放大器芯片各种性能参数的测试仪。
关键词:虚拟仪器,测量仪器,GPIB接口

1 引言
  随着微电子技术、计算机技术、软件技术、网络技术的高度发展及其在电子测量技术与仪器上的应用,传统的仪器开始向计算机化的方向发展。在这种背景下,美国国家仪器公司(National Instruments Corporation,简称NI)在20世纪80年代*早提出虚拟仪器(Virtual Instrument,简称VI)的概念。其核心的思想是利用计算机的强大资源使本来需要硬件实现的技术软件化,以便*大限度地降低系统成本,增强系统功能与灵活性[1]。
  虚拟仪器由通用仪器硬件平台和应用软件两大部分构成。其中通用仪器硬件平台的基本组成包括PC机和I/O接口设备。PC机是硬件平台的孩心,I/O接口设备主要完成被测输人信号的采集、放大、模/数转换等功能。根据采用的总线及I/O接口的不同,虚拟仪器可分为三大类型:基于数据采集(DAQ)的虚拟仪器系统、基于通用接口总线GPIB接口的仪器系统和基于VⅪ 总线的虚拟仪器系统。虚拟仪器系统应用软件开发环境主要包括两种:一种是基于传统的文本语言的软件开发环境,主要有LabwindoWs/CvI、Visual C++、Visual Basic、Delphi等;另一种是基于图形化编程环境的平台,如HPVEE、LabVIEW等[3]。
  本文介绍的开发实例是采用虚拟仪器设计多路前置放大器的测试仪。由于系统对总线控制的实时性要求不高,硬件平台采用的是基于GPIB总线的虚拟仪器系统结构,其特点是系统中集成了带有GPIB接口的实际测量仪器,能够保证系统具有很高的测量精度。软件开发平台则采用的是图形化软件LbVIEW(Laboratory Virtual Instrmnent Engineering Workbench),其优点是利用工程人员所熟悉的术语和图形化符号代替常规的文本语言编程、界面:友好、操作简便,可大大缩短系统开发周期。

2  基于GPIB总线虚拟仪器系统的介绍
  GPIB(General Purpose interface Bus)是仪器与各接口的优点在于通过一个接口可以将多个GPIB设备连接在一起,同时完成多种不同物理量的测量。基于GPIB总线的虚拟仪器系统就是以GPIB总线仪器与计算机为硬件平台组成的虚拟仪器测试系统,GHB卡将可编程仪器与计算机联系起来,通过计算机的控制去执行各项操作[4]。一个基于GPIB总线的仪器控制系统构成如图1所示。

screen.width-461) window.open('http://bbs.zidonghua.com.cn/attachment/91_54352_9e998ca7913fcd3.jpg');" src="http://bbs.zidonghua.com.cn/attachment/91_54352_9e998ca7913fcd3.jpg" border=0 _fckxhtmljob="1">
       图1 基于GPIB总线的仪器控制系统框图
  用LabVIEW 开发一个基于GPIB总线的虚拟仪器的软件包括:labVIEW开发平台、GPIB接口卡驱动程序和仪器的IabVIEW驱动程序。其中仪器的LabVIEW驱动程序是负责仪器通信和控制的具体过程,里面封装了复杂的仪器编程细节,为用户使用仪器提供了简单的函数接口,用户不再需要针对每个仪器了解编程的协议,就可以通过仪器驱动程序来使用这些仪器,这样大大缩短了开发测试程序所需的时间。

3  开发实例
3.1 测试仪的系统构成
  本文所介绍的开发实例是采用基于GPIB虚拟仪器开发平台研制一个多路前置放大器芯片的测试仪系统。前置放大器的作用是对导引头所获得的多路小信号进行放大。该测试仪的主要功能包括为多路前置放大器提供直流电源及可变频变幅的正弦交流信号源,对前置放大器的增益、截止频率、交流串扰等110项性能参数进行常温及高低温状态下的测试并能对结果以波形及数据表等方式记录显示和打印输出。

screen.width-461) window.open('http://bbs.zidonghua.com.cn/attachment/91_54352_dd4436f00c63a66.jpg');" src="http://bbs.zidonghua.com.cn/attachment/91_54352_dd4436f00c63a66.jpg" border=0 _fckxhtmljob="1">
         图2 测试仪系统原理框图
  本测试仪的系统原理框图如图2所示。计算机通过控制系统对前置放大器的各引脚通道进行选择,使实际仪器发送的信号输入到相应引脚。待测量通道的信号输入到相应实际测试仪器进行测量。计算机与各实际测试仪器则通过GPIB总线相连,它将控制命令发送到各测试仪器,并将测试数据发送到计算机进行分析处理和显示。
3.2 测试仪的硬件系统构成
  测试仪的硬件部分由前置放大器专用夹具与所需的测量仪器及工控机组成。前置放大器的输入及输出信号是直流信号和正弦交流信号,针对该芯片的信号特点,对测试仪硬件平台所采用的仪器进行选择,系统硬件框图如图3所示。系统硬件的工作流程介绍如下:

screen.width-461) window.open('http://bbs.zidonghua.com.cn/attachment/91_54352_ef45f1d81cac5c8.jpg');" src="http://bbs.zidonghua.com.cn/attachment/91_54352_ef45f1d81cac5c8.jpg" border=0 _fckxhtmljob="1">
         图3 测试仪系统硬件框图
首先,根据所测的项目由工控机发相应的I/O命令,通过L/O卡控制采集控制扳。然后,工控机调用相应的程序对GPIB接口卡写命令,通过GPIB总线接口电缆发送控制命令给实际的测量仪器使其启动相应的操作功能,并将实际测量仪器测量的各种数据传输到工控机进行处理。
3.3 测试仪的软件设计
3.3.1 软件开发平台
  本设计采用的是美国NI公司的Labview7.1开发平台。LabVIEW是基于图形化编程语言的开发环境。LabVIEW程序包括前面板和流程图两部分。前面板是LabVIEW 程序的图形用户接口,此接口集成了用户输人和显示程序的输出。流程图包含VI的图形化源代码。在流程图中,对VI进行编程,以控制和操纵定义在前面板的输入和输出功能,对数据进行分析和处理。LabVIEW编程具有简单易学、编程效率高、通用性好、交叉平台交互性好等优点,是虚拟仪器开发快捷、方便和功能强大的软件工具[1]。
3.3.2 测试仪的软件系统组成
  整个测试仪软件包括测控部分、数据处理部分和帮助部分。其中测控部分按照测试功能划分为多个子模块分别进行设计,提高了软件的可靠性,可维护性和可扩展性。测试仪的软件流程如图4所示。测试仪软件各部分的功能及设计介绍如下:

screen.width-461) window.open('http://bbs.zidonghua.com.cn/attachment/91_54352_a9f86832ad4edfc.jpg');" src="http://bbs.zidonghua.com.cn/attachment/91_54352_a9f86832ad4edfc.jpg" border=0 _fckxhtmljob="1">
      图4 测试仪软件流程图
(1) 测控部分
  测控部分是整个测试仪软件系统的核心,实现对测量仪器的控制和对芯片输入输出信号的测量。根据芯片性能参数的分类,测试仪的测试项目共分为八大项。根据用户要求,测试方式分为自动测试和程控测试两种,既可以按照测试顺序依次测试八个项目,也可以对选中的单项或多项测试项目进行单独测试。根据以上的功能要求,测控部分软件进行分层设计。首先针对每个测量仪器需要使用的功能,编写各测量仪器的控制模块,然后再编写八个测试项目的功能模块,每个测试项目的功能模块是根据对所需要的测量仪器的控制模块进行有序的调用来完成的,其中各个仪器功能的选通是通过调用I/O卡读写模块,输出相应的地址来完成。*后,编写测控部分的主程序实现自动测试和程控测试功能。下面对测量仪器的控制模块和测试项目功能模块分别举一个例子来介绍其设计过程以及设计中需解决的关键问题。
  前文中介绍了LabVIEW是通过仪器的LabVIEW驱动程序来对测量仪器进行控制的,所以在编写测量仪器控制模块前首先应该编写该仪器LabVIEW驱动程序。由于本设计中使用的仪器为标准设备,可以在NI公司的网站上下载到仪器的驱动程序,从而大大节省了开发时间。例如,本设计中信号发生器采用的是Agilent公司的33220a,在网上下载了Instrument Driver for Agilent 33220a后,即可编写其各项功能的控制模块。信号发生器输出正弦波的控制模块的实现方法如下:首先调用hp33220a Initialize.vi对信号发生器进行初始化,然后利用hp33220a Generate Std wfm.vi对信号发生器进行配置使其输出符合要求的波形,*后调用hp33220a Close.vi将信号发生器清零。
  由于LabVIEW 是基于数据流的编程方式,所以在编写测试项目模块时应注意对各仪器的控制时序进行合理安排,以保证测量仪器采集到的数据是芯片已更新的输出信号。本设计中利用Time&Dialog模板下的 wait Until Next ms Multiple.vi对各仪器控制模块的运行时间加以设置,从而保证控制时序的正常进行。另外,在编程过程中充分利用LabVIEW7.1中的数据分析函数可大大提高编程效率。下面介绍增益测试项目模块的编写,该模块的功能是判断芯片输出波形的失真度以及测量电压增益*大时的频率值。波形失真度的判断可以利用Waveform Measurements模板下的HarmonicDistortion Analyzer.vi来实现。频率值的测量关键是在芯片工作频带内查找芯片输出电压的*大点,进而得到相应的频率值。为提高程序效率,根据放大器的频率响应采用从大到小逐步改变步长的方法进行查找,并利用Army模板下的ArmyMax&Min.vi获取电压*大值,进而得到相应的频率值。
(2) 数据处理部分
  测试仪要求能对芯片测试数据能实时记录、储存及打印并能自动生成规范的测试报告、测试曲线,以上功能由数据处理部分来实现。数据处理部分是对测量到的数据进行处理计算,用EXCEL格式形成报表进行存储并嵌入打印程序,可随时对报表进行打印。报表中记录的内容包括测试时间、测试人、测试设备编号及各性能参数的测试结果。
(3) 帮助
  帮助功能是实现无手册操作的关键,它可以为操作者提供足够的信息,使操作者按照帮助逐步地完成测试过程。其内容包括系统使用介绍,测试时如何连线及其注意事项,出现问题后如何处理等内容。

4 结论
  文中介绍了采用LabVIEW虚拟仪器开发平台开发基于GPIB总线的虚拟仪器系统的要求。结合多路前置放大器测试仪开发实例,介绍了开发基于GPIB总线的虚拟仪器的硬件及软件系统的设计。在本次虚拟仪器开发过程中,软件采用了模块化设计,大大缩短了开发周期。该虚拟仪器能很好地完成前置放大器各项性能指标的测量,并将测试结果存盘或打印以供后续分析使用。此功能是一般测量仪器所不具备的功能,从而大大扩充了仪器的功能。事实证明,虚拟仪器技术在设备测试领域中必将得到广泛的应用。

参考文献[1]周求湛,钱志鸿.虚拟仪器与LabVIEW 7 Express程序设计[M].北京:北京航空航天大学出版社,2004
[2]雷振山.LabVIEW 7 Exp~ss实用技术教程[M].北京:中国铁道出版社,2004
[3]刘勇求,赵望达,贺毅.虚拟仪器技术应用现状及发展趋势[J].自动化博览,2OO4,(5):12~14
[4]田文革.虚拟仪器技术及其在空空导弹测试设备中的应用[J].航空兵器,2002,(5):12~16