摘 要:面向信号测试技术可以为自动测试系统提供更好的测试程序集可移植性和测试仪器可互换性。IEEEl641标准规范了信号定义和描述模型,但并未提出具体实现方法。为从技术上解决信号参数传递和需求存储问题,分析了IEEEl641标准,并根据该标准和工程实践对信号进行设计,给出了信号模板,提出了面向信号自动测试系统信号组件的设计方案,并进行了验证。实验结果表明该设计方案先进可行,可为该领域的研究提供参考。
关键词:面向信号;信号组件;自动测试系统;COM组件
0 引 言
IEEEl641是关于测试和信号定义的技术标准。它为用户提供了描述和控制信号的能力,并允许用户选用自己的操作系统和编程语言。用户可以通过信号定义来描述测试需求和测试资源,而不必考虑使用哪一种编程语言。IEEEl641标准是一种层结构模型,在模型中对每个层和它的功能进行了描述,每一个层都建立在前一层的基础之上。这种层结构要求每一层必须根据它的前一层进行全面定义。它包括信号建模语言层、基本信号组件层、测试信号框架层和测试过程语言层。对信号进行描述的过程中IEEEl641标准分别从信号名称、定义、角色、端口、参数对信号进行说明,其中信号参数部分分别从参数名称、定义、数据类型、单位、复位值、范围、角色、限定词对信号参数进行说明。
l 信号设计
面向信号自动测试系统信号组件的开发与信号类型定义息息相关,信号类型定义参考了IEEEl641标准和工程实践。信号组件的开发过程中信号是信号角色和信号类型的结合体,其中信号角色与仪器相关,信号类型与信号本身特征有关。一个信号是至少由一个信号参数组成,信号参数内部划分为信号参数定义、信号参数角色和信号参数限定词。
在IVI一3.11:IviSig Class Specification规范中主要定义了以下信号角色:Source,适用于“源”类仪器的信号,包括信号发生器类、电源类仪器等;Sensor和Monitor,适用于“测量”类仪器的信号,包括传感器类、示波器类、万用表类仪器等;Switch,适用于“通路”类仪器,包括开关、矩阵等。
信号参数角色是指信号参数针对某个仪器的信号能力。其中Controllable是指该信号参数可以被仪器控制,如电源输出的电压等;Measurable是指该信号参数可以被仪器测量,如数字万用表测量直流电压;Capa—bility是指不能被仪器测量或控制的信号能力,该能力对于某个信号类型必不可少,如输入电阻等。
信号参数限定词是指同一个信号参数的不同信号描述,它分为电压和电流信号的限定词、功率信号的限定词以及频率信号的限定词。例如对于电压来说其描述方式包括:峰峰值电压、RMS电压、平均电压等。
本文定义的信号是根据IEEEl641划分的,在使用时可以根据实际情况修改信号类型定义。下面定义的信号类型实际上是一个信号模板,包含了一个或多个信号类型。例如:AC SIGNAL包含了3种信号ACVoltage,AC Current,AC Power,对应到源(Source)就是交流电压源、交流电流源、交流功率源,对应到传感器(Sensor)就是交流电压表、交流电流表、交流功率计。现以交流信号为例,对信号定义进行说明。
2 信号组件的设计与开发
信号组件的本质是COM组件,该类型组件的主要功能在于存储信号参数信息,测试程序将所需信号信息传递给信号组件,数据将被暂存在缓存中,当程序调用具体仪器驱动时这些信号参数将被具体仪器驱动所读取,仪器动作到相应的状态。每个信号组件对应一种信号,该组件为客户程序提供了信号信息的公共存储区,同时测试返回的结果也在该组件下存储。下面以ACVolt信号组件为例,描述信号组件的原理。对于ACVolt信号来说,其信号参数包括Ac ampl,Freq,Dc_offset三种,信号组件中每个信号参数分别对应4组方法,这些方法是:Setxx,ComGetxx,ComSetxx,Getxx,方法的功能见表2。客户程序和具体仪器驱动之间通过资源分配器交互,双方的数据不能直接传递,因此信号组件成为两者数据交互的桥梁。
面向信号自动测试系统信号组件采用LabWin—dows/CVI 8.0作为开发环境,通过创建ActiveX服务器来完成信号组件的开发。现以ACVolt信号为例进行说明。首先创建ActiveX服务器。启动CVI8.0,创建新工程,命名为“AtpACVoltParam”;选择菜单栏“tools”-“create ActiveX server”项,CVI向导会自动弹出,将服务器名称命名为“AtpACVoltParam”,COM组件生成方式为动态链接库形式“dll”,其他设置不变。然后添加接口和接口方法。对于ACVolt信号来说其接口为“IAtpACVoltParam”,它的3个参数分别是幅值(Ampl)、频率(Freq)、直流偏移量(Dc off—set),接口方法和接口参数如下:
其次要创建接口对象。选择“Edit Objects”按钮,创建“coAtpACVoltParam”对象并将其与接口“IAt—pACVoltParam”相关联,并创建回调函数“COAtpAC—VoltParam_Callback”。最后编辑接口方法实现代码。将“.h”文件中的内容拷贝到自己创建的文件“AtpAC—VoltParamImp.C”中,激活绿色标注区内容,并将接口方法的回调函数编辑为默认的返回S OK,删除带有“Tag”标志的结构。Idl文件不需要修改。
3 信号组件的验证
采用Labwindows/cVI 8.0作为开发环境,通过SetAcAmpl函数存储客户程序输入的幅值信息,然后用COMGetAcAmpl函数读取客户程序输入的幅值信息,验证界面如图1所示。这两个函数完成了存储信号参数信息的功能。通过COMSetAcAmpl函数存储测试结果,最后用GetAcAmpl函数读取测试结果,验证界面如图2所示。通过以上验证说明ACVolt信号组件可以实现对信号信息的存储,为下一步面向信号自动测试系统的实现提供参考。