微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 自动测试系统的通用性研究

自动测试系统的通用性研究

时间:06-20 来源: 点击:

性是测试系统实现通用性的重要方面。为了实现软件的上述功能,必须建立标准的软件接口。软件接口是提供信息共享、信息交换的统一接口,可以实现测试过程虚拟资源到真实资源的映射。软件接口标准化的研究是真正实现测试程序集的可移植性和仪器的可互换性的关键技术,也是实现系统软件通用性的关键技术。

4.1功能接口

  为了实现测控软件的通用化、系列化,首先软件要与硬件系统结构相适应,根据硬件系统的结构特点制定软件所涉及的数据结构,最后考虑软件结构,实现测控软件的各种功能。根据上述测试系统的硬件结构,提出了标准的软件接口--功能接口的概念。功能接口是一套封装了虚拟仪器具体功能的细节,对外提供标准功能接口的函数库和配置工具的软件包。功能接口将所有的仪器(最小集合是测试系统中的仪器)可实现的功能进行分类,忽略各个仪器的实现细节,比如数字万用表与A/D模块测量电压的功能接口是一样的,具体调用哪个仪器操作视接口的连接而定,而且不需要进行仪器的初始化、建立回话连接等辅助过程。功能接口的核心是仪器控制、接口映射及状态缓存,其主要任务是将测试流程所描述的功能映射为具体的控制过程[3]。

  功能接口可分为功能层、逻辑层、仪器操作层、接口配置文件及接口配置工具五个部分。(图略)

  功能层是整个结构的最高层,面向测试系统开发的最终用户。功能层不用出现任何与仪器有关的信息,描述的都是有关测试流程及结果判定的过程;

  逻辑层根据系统测试仪器资源、信号转接通道控制模型及信号转接通道配置的描述,将功能层的功能映射到具有逻辑名称的仪器和通道,该逻辑名可以指向测试系统中一台特定设备,当该仪器模块更换时,只需改变逻辑名的指向为新型设备即可,因此逻辑层不包含仪器地址、具体会话等信息,具备仪器无关性;

  仪器操作层利用仪器驱动程序或随仪器模块提供的动态链接库控制硬件的所有操作;

  接口配置工具用于交互式配置测试资源、信号转接控制元件及接口映射关系等信息,建立测试仪器功能模型及信号转接通道控制模型,并将个模型的描述信息存储在配置文件中,供测试功能接口使用;
 
  接口配置文件存储的是测试仪器功能模型及信号转接通道控制模型的信息,包括测试资源信号端口及通道、电气连接关系、信号转接通道具备的操作功能、操作仪器应具备的其他附加条件等。

  基于功能接口技术的测试软件开发方案的主要思想是,在测试流程与具体仪器之间建立功能接口,将仪器控制与测试程序完全隔离,即测试流程面向UUT接口信号,不进行直接面向仪器的操作。采用基于功能接口技术,可以有效的实现测试程序集的可移植性和仪器的可互换性,从而实现测试系统的通用性。

4.2仪器的封装

  在提出了功能接口的基础上,对相应的测试仪器进行封装,是实现测试系统通用性必不可少的步骤。对测试仪器的封装又分为两种:对开关资源的封装及对测试资源的封装。

4.2.1对开关资源的封装

  对开关资源的封装主要为了自动实现测试通道的切换、控制相应的通道自动连接和断开。在前面的功能接口描述中,用户在开发测试系统完成测试通道配置时会生成相应的配置文件,配置文件里对所建立的通道有完整的描述。为此,对开关资源的封装主要时完成对配置文件的解释过程。下面,是在LabWindows/CVI开发环境下对某自动测试系统开关资源的封装。共封装了三个函数,仪器的初始化、关闭及通道配置部分代码如下:
void switchinit( )
{
ViSession vichannel;
ViSession vipower;
pipx40_init ("PXI2::15::INSTR", 0, 0,&vipower);
jdz201_init ("VXI::16::INSTR", VI_FALSE, VI_FALSE, &vichannel);
}
//仪器初始化
void switchcloset( )
{
jdz201_close (vichannel);
pipx40_close (vipower);
}
//仪器关闭
void switchencapsulation(char *startpoint, char *terminalpointchar *filename,Boolean state)
{
point=strstr(itemname,"PSWITCH");
if(point!=NULL)
{
if(point[8]<=9 && point[8]>=0)
strncpy(switchnumber,&point[8],1);
if(point[9]<=9 && point[9]>=0)
strncat(switchnumber,&point[9],1);
Fmt(&intswitchnumber, "%d<%s",switchnumber);
powerchannel=intswitchnumber;
if(state)
statepower=1;
else
statepower=0;
pipx40_setChannelState (vipower, 1,powerchannel,statepower);
}
//判断相应的开关通道并闭合或断开
  其中,第三个函数中的参数分别为一条通道的起点、终点、配置文件的路径及开关的状态。通过上面的三个函数及相应的配置文件,即完成了整个测试系统中通道配置的问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top