基于GPIB总线的雷达接收组件自动测试系统的结构和实现
雷达接收组件测试台是根据GPIB总线标准组建而成的自动测试系统。其硬件组成包括:计算机,GPIB总线接口卡,电源,打印机,矢量网络分析仪,噪声系数分析仪,功率计,示波器,500W功率放大器,高频分机,信号源,驱动组件等GPIB接口设备,以及被测组件。
程控仪器软件的编写,大致可分为两种方式:一是利用仪器厂商提供的函数包,二是直接用VISA语句编写程控仪器指令。前者优点为使用方便,函数现成封装可直接调用;但可移植性差,函数包需要厂商提供的仪器驱动程序支持,不同类型仪器需要安装不同的设备驱动。后者需要掌握VISA语言和底层的GPIB指令;但可以脱离不同厂家的仪器驱动程序,实现对任意GPIB设备的远程控制。
本系统设计采用第二种方式,自己封装仪器指令,做成动态连接库,供上层模块调用。另外,考虑到雷达测试台中仪器和测量参数多,并且在不同的性能测试项目中测试参数可能重复的特点,将动态连接库划分为上下两层:测试流程层和测试功能层。这样,不同的测试流程选取测试功能层中的有限多个函数组合而成,增强了代码的可重用性。系统使用的是Agilent 公司的GPIB设备卡,所以安装的IO驱动是和卡配套的Agilent IO 库,整个软件采用通用编程软件Visual C++ 6.0编写。
根据以上思路,测试模块软件结构设计为从底层到上层包括四层接口:VISA库、仪器层、子板模块层,用户代码层。
VISA(Virtual Instrumentation software Architecture)虚拟仪器软件体系结构,实质就是标准的I/O函数库及其相关规范的总称。一般称这个I/O函数库为VISA库。它驻留于计算机系统之中执行仪器总线的特殊功能,是计算机与仪器之间的软件层连接,以实现对仪器的程控。它对于仪器驱动程序开发者来说是一个个可调用的操作函数。
仪器层是完成对各种仪器控制与通信的软件程序集。它是应用程序实现仪器控制的桥梁。考虑到可扩展性和兼容性,将每种仪器封装成一个类,其中包括了不同厂家、不同型号的设备。实际测量中,就同时用到了安捷伦公司的E4416A、E4417A和技嘉公司生产的8652A三种功率计;安捷伦公司的E4422B和RS公司生产的SML02信号源。当某种仪器需要更换型号时,对于上层接口来讲,只要在它的类中调用函数SelectType(int nType),将nType设置为要更换的型号就可以了。上层不必关心具体仪器的型号差别,软件模块的可移植性好。
子板模块层实现具体的测试流程,由于增加了一个仪器层接口,测试流程就可以调用仪器层的功能函数任意组合,这样测试流程是固定的,但是功能是活动的,增强了灵活性。
用户代码层建立在动态连接库之上,直接面对操作用户,通过提供直观友好的测控操作界面、丰富的数据分析与处理功能,来完成自动测试任务。
由于实际测量系统中,仪器多,分布广,且距离控制台较远,所以相应制作了各种仪器软面板,方便操作人员手工操作。另外,增强了数据存储和后处理能力。可将每次测试的参数设置环境和测量结果存储成文件,保存在计算机中,以便后续分析和离线观测。同时,还可以对波形进行频谱分析或其他转换,后处理方式比较灵活。
下图是调用动态连接库制作而成的矢量网络分析仪的软面板。
图3
实现的基本功能有远程连接,参数设置,校准,测量,游标观测波形,打印,和仪器内部自检。
测试模块的性能测试包括输入驻波,输出驻波,增益,相位,噪声系数和输入、输出功率。
以限幅器的输出驻波测试为例,测试流程如下:
T_ErrCode CTestClass::TestStandingOutWave(REALTESTPARAM ¶m) //输出驻波测试
{
//从数据库得到矢网仪器参数:地址,型号,设置参数,频率列表
m_DBObject->DB_GetInstruParams(¶m_na);
CNetworkAnalyzer na; //声明矢网类对象
CController contrl; //声明控制器对象
na.Connect(param_na.m_Address); //连接矢网
contrl.Connect(29); //连接控制器
na.SelectType(param_na.m_Type) ;//矢网设置类型
contrl.LimitAmplitude(FALSE); //控制器打开限幅开关
na.SetFreqListmode(FreqList, nFreqCount); //矢网设置频率扫描类型,点数
na.SetSParam(1, "S22", 0, float(0.1)); //矢网设置参数
//提示进行矢网校准
na.Calibrate("S22"); //矢网校准
//提示连接被测件
contrl.SwitchPhase(0); //控制器打开全0相位开关
na.GetWaveData(1) ; //矢网读取1通道数据
double maxoutWave = na.GetMax(); //矢网得到最大值数据
param.m_All0_StandingOutValue = maxoutWave ; //传递矢网最大值数据到数据库
contrl.SwitchPhase(1); //控制器打开全1相位开关
na.GetWaveData(1) ; //矢网读取1通道数据
na.DisConnect(); //关闭矢网远程连接
contrl.DisConnect(); //关闭控制器远程连接
}
1. 初始化数据库结构中REALTESTPARAM的UUT号,台号,仪器序列号和仪器设置编号
2. 从数据库获得仪器地址、型号等设置参数。DB_GetInstruParams()
3. 连接仪器。Connect ()
4. 选择仪器型号。SelectType ()
5. 设置仪器参数。SetSParam ()和 SetFreqListmode()
6. 校准仪器。Calibrate()
7. 设置驱放组件相位。SwitchPhase()
8. 连接被测件,读取矢网测量结果,存数据结果到数据库中。GetWaveData()
9. 更换相位,继续测量。
10. 断开仪器连接。DisConnect()
其中,测试流程中用到了各个仪器类的功能函数,如仪器的连接,选择型号,设置,校准等。当测试流程中增加一项功能时,只要添加相应仪器的相应功能即可。当测试流程中更换了一种仪器时,也只需在仪器的选择型号函数中变换参数即可。
整个雷达接收台测试系统是基于GPIB总线的测试系统,它以程控分立仪器为主,组建简单,易扩展,通用性较好。GPIB也是目前国际上最广泛流行的一种总线标准,技术已经相当成熟。但是,它摆脱不了台面仪器使用的缺陷。随着1987年VXI总线、1997年PXI总线的问世,新一代的测试采取通用接口,提出“虚拟仪器”的概念,即完全由软件和硬件模块来实现传统仪器的功能。这一构筑虚拟仪器的理想的平台给现代控制测试领域带来一片新天地。但是在相当长时间内,全部使用VXI、PXI模块构成的测试系统不能完全满足某些特殊指标时,GPIB台式仪器组成的测试系统仍然占据着测控领域的重要位置。
整个雷达接收台测试系统是基于GPIB总线的测试系统,它以程控分立仪器为主,组建简单,易扩展,通用性较好。GPIB也是目前国际上最广泛流行的一种总线标准,技术已经相当成熟。但是,它摆脱不了台面仪器使用的缺陷。随着1987年VXI总线、1997年PXI总线的问世,新一代的测试采取通用接口,提出“虚拟仪器”的概念,即完全由软件和硬件模块来实现传统仪器的功能。这一构筑虚拟仪器的理想的平台给现代控制测试领域带来一片新天地。但是在相当长时间内,全部使用VXI、PXI模块构成的测试系统不能完全满足某些特殊指标时,GPIB台式仪器组成的测试系统仍然占据着测控领域的重要位置。
浙公网安备 33010602011771号