用SMML语言构建的类名为SignalFunction的信号基类模型。SMML源于Haskell Function Language,提供了用于描述信号属性和方法的机制,通过制定语法规则和大量预定义动作来实现对信号类的定义。通常情况下,信号基类包括信号输入端(In)、事件输入端(Sync)、信号输出端(Out)、控制参数输入端(属性)、被测信号输出端(Value)等功能接口。当然,不同类型的信号也可以包括不同的接口,如激励信号类可以没有In接口、Value只对传器信号有效等。
信号(Signal)和事件(Event)是标准化的信号类接口,组成元素包括属性和方法。属性标志着信号对象的当前状态,如运行、暂停、停止等;方法则实现在状态之间切换。
信号基类模型提供了消息(连续的为信号,离散的为事件)传送机制,用来改变信号对象的状态和行为。信号对象可以通过In/Sync接口接收其它对象送来的消息,也可以把消息通过Out接口传递给其它对象。例如,一个Ready事件可把信号对象由停止(Stop)状态变为运行(Run)状态;一个Active事件可以让传感器信号对象执行数据采集操作等。
信号类经例化后,可以仿真某些角色信号(如激励信号、测试信号、事件调节器信号、信号调节器信息等)、UUT节点等。
ATLAS 2K模型的基本信号组件层提供了可重用、经格式化描述的基本信号(底层信号),它们是基于COM技术的对信号类继承、封装并进一步标准化的产物。每个基本信号组合件都存在一个静态SMML描述和一个抽象的运行期控制模型,前者定义信号特片,后者在某一特定ATS中定义信号的行为。通过这些基本信号组件可以定义所有较高层的信号。
ATLAS 2K模型的复合信号组件库与ATLAS的EXTEND功能类似,通过定义基本信号组件产生的复合信号和使用这些信号的规则,实现了对信号的扩展。图2给出了由基本信号组件1和2实现复合信号n的示意图。复合信号组件可以仿真复杂信号,如射频(RF)信号、数据总线信号等。
1.2 ATLAS 2K的工程应用
在支持COM组件开发的编程平台(如VC++、VB等和相应开发工具的支持下,ATLAS 2K可应用在“面向信号”的ATS设计中。具体应用如下:装配信号组件实现对UUT的测试需求描述,生成ATLAS 2K TPS;通过编译器编译后,转变成能在ATS上执行的代码;在充分考虑自身时序要求和仪器功能限制的前提下,实现与特定ATS的集成。
下面的VB代码给出了应用信号组件在某一测试节点PL-1上建立和撤销一个振幅为0.5V、频率为1000Hz的信号的全过程。
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代码重新编译就可在新系统中运行。
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设计的复杂性,有关细节仍需进一步论证,如资源自动分配的优化问题、信号路径切换的选择问题等。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |