基于信号接口的自动测试系统软件的设计与实现
javascript:window.open(this.src);" style="cursor:pointer;"/>
Dim mySig as Source
Set mySig=A2K.Require("SinusoidalVoltage") //建立信号
mySig.Amp.Units=V
mySig.Amp=0.5
mySig.Freq="1000Hz"
Set cnx=A2K.Require("OneWire") //建立节点
Cnx="PL-1"
Set cnx.in=mySig.out //连接节点
Set cnx=Nothing //节点初始化
mySig.out.Run //产生信号
mySig.out.Stop //撤销信号
mySig.in=Nothing
mySig=Nothing
ATLAS 2K作为测试标准信号,实现了代码重用和移植。对于新ATS,只要结合新测试资源信息,对ATLAS 2K代码重新编译就可在新系统中运行。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 IVI-Signal Interface标准
IVI-Signal Interface标准是IVI基金会在IVI-MSS模型的基础上进一步发展起来的,它对IVI-MSS的RCM进一步封装,以信号接口的形式对外提供测试服务。
2.1 IVI-Signal Interface模型
IVI-Signal Interface模型的体系结构如图3所示。
IVI信号组件是带有标准信号接口的IVI-MSS角色组件,通过这些接口可用一系列方法执行信号操作,如初始化、建立、连结、更改等。它允许客户应用程序控制仪器设备上的物理信号,如初始化、切换等操作。下面的VB代码给出了在地址为1的某GPIB仪器上产生振幅为0.5V、频率为1000Hz的正弦信号的全过程。
Dim mySigSource as IviSignalSource
MySigSource.Init("GPIB:1:INSTR") //初始化
Dim control as ParamValSet
control.Add("Amp",0.5) //指定信号电流参数
control.Add("Freq",1.0E6,2.0) //指定信号频率参数
mySigSource.Setup(SENSOR,"AcSignal",control)
//给定信号的角色、类型和参数,并产生信号
IVI信号组件控制一台或多台仪器产生客户需要的信号,完成客户的测试需求。它对仪器的控制是通过VISA、IVI驱动器、SCPI命令等实现的。程序执行过程中,IVI信号组件需要的服务由IVI共用组件(如IVI Factory、IVI Configuration Store、IVI Event Server)提供。
测试资源信息是一个数据模块,用来存储IVI信号组件的测试/激励能力和配置信息,为用户选择仪器、设计测试方案提供参考;同时提供程序访问功能,实现测试资源的自动分配和信号路径的切换。它提供的IVI信号组件信息包括:
(1)组件支持的信号种类;
(2)每类信号需要的参数;
(3)每类信号的量程、精确定指标;
(4)IVI信号组件接口和仪器接口的连接关系等。
2.2 IVI-Signal Interface的信号类型标准
为了提高IVI信号组件的重用性和可移植性,组件开发者和使用者都迫切要求使用标准的接口信号信息,如信号类型、参数、物理意义等,因此信号类型的标准化问题亟待解决。IVI基金会没有严格定义接口信号类型标准,这需要由面向仪器控制的用户或其它组织来完成。在ATLAS测试语言标准中,用SMML定义了信号类型,笔者认为可以沿用这一定义。
2.3 仪器互换问题
更换仪器后,驱动器不再是困扰系统更新的难题,因为测试资源信息明确地描述了IVI信号组件的功能,标准的接口语义声明也明确地描述了组件的接口实现。设计人员可根据这些描述进行新仪器的IVI信号组件开发,实现同样的功能。
IVI信号组件提供了访问综合性仪器(Synthetic Instrument,即具备两类或多类仪器功能的仪器或仪器集合)的功能。在满足测试需求前提下,一个信号组件可以包含硬件仪器的部分或全部功能。这一切为仪器互换提供了广阔的空间,不但可以实现同类仪器、异类仪器的互换,还可以实现综合性仪器的互换。
3 基于信号接口的通用ATS软件设计
由以上分析可知,ATLAS 2K和IVI-Signal Interface有很多相似和互补的功能。比如,在一个测试系统中,ATLAS 2K面向UUT,实现代码移植和重用,而IVI-Signal Interface面向测试资源,实现了仪器互换;IVI-Signal Interface模型给ATLAS 2K代码提供了执行机制,而其也可沿用ATLAS 2K用SMML语言对信号类型定义的方法;二者均基于COM技术,提供了标准信号接口等。因此,通过信号接口集成二者,可实现通用ATS软件设计。
3.1 系统结构设计
基于信号接口的通用ATS软件结构框架如图4所示。
仪器信息模块是一个文件,它记录系统中所有仪器的测试功能信息,由IVI-Signal Interface模型提供。矩阵开关信息模块和适与器信息模块与仪器信息模块类似,前者记录了矩阵开关模块的连接信息;后者记录了适配器在UUT和矩阵开关之间的转换信息。
ATLAS 2K TPS根据自己对UUT的测试需求的描述,从Run-Time System请求相应的信号对象。若ATS的测试能力允许,Run-Time System开始查询从UUT到仪器端口的连接信息,并对其进行验证。这一切完成后,Run-Time System开始例化IVI-Signal Interface信号组件和ATLAS 2K信号组件,执行测试操作。
IVI-Sinal Interface组件和矩阵开关驱动器通过VISA、IVI-C、SCPI命令等控制底层仪器,在TPS执行期间,Run-Time System应自动完成测试资源的分配和信号路径的切换。
综上,基于信号接口的ATS软件设计可描述为:通过ATLAS 2K语言,将UUT的测试需求标定为对激励/测量信号的需求,这个虚拟资源需求通过设备驱动器接口内部服务机制的解释和定位转换成真资源,再驱动仪器完成测试任务。
3.2 系统实现
图5给出了基于信号接口开发ATS软件的全过程。
ATLAS 2K TPS和IVI-Signal Interface组件由COTS产品开发,如VB、VC++等。IVI-Signal Interface组件由系统方案设计者给出,由系统集成者使用。
使用Windows写字板记录测试资源信息,如设备信号、适配器信息等,并随同IVI信号组件一同发布。
IVI-Signal Interace标准和ATLAS 2K模型在功能上是互补的,二者的结合给通用ATS软件设计提供了解决方案,工程应用前景非常广阔。另外,二者均基于COM技术,不依赖于特定的开发工具,方便了系统的实现,节省了费用。同时,这一设计思想还可以有效地结合当前正在发展着的VXI、PXI、IVI-COM、VISA-COM等技术,为最终实现仪器互换和软件移植打下坚实的基础。当然,由于ATS设计的复杂性,有关细节仍需进一步论证,如资源自动分配的优化问题、信号路径切换的选择问题等。