微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 电子测量仪器IO模拟器设计

电子测量仪器IO模拟器设计

时间:07-08 来源:电子产品世界 点击:

摘要: 本文介绍一种电子测量仪器IO模拟器实现方法。以网络分析仪HP8753E为例讨论了模拟器的部分实现细节及模拟结果。

关键词:
 仪器;IO模拟器;状态机;网络分析仪


  2008年4月25日收到本文。陈飞:高级工程师,研究方向为电子测量技术。

引言

  自动测试系统经常使用各种电子测量仪器进行系统集成。由于订货周期限制,这些仪器可能要到系统集成的后期才能到货,因此软件系统被迫延迟到到货后才能进行与仪器设备进行联调。由于联调中发现的问题引发的设计更改,将大大延缓系统交付的时间。

  通过预先得到的技术资料设计IO模拟器,模拟实际设备的IO响应,可以在仪器设备到货前开始与软件系统的联调。另一方面,开发人员常常需要并行进行系统和分机调试,采用模拟器也可解决实际设备数量限制问题,提高系统开发效率。

  本文提出的IO模拟器,根据输入IO数据流进行状态转换,并由当前状态实现模拟数据输出。由于采用文本格式的自定义数据文件控制模拟器实例化过程,测试系统内可以同时模拟多种不同测量仪器的IO响应,并具有良好的可扩展性。

模拟器工作原理

  如图1所示,应用程序的IO操作由虚拟IO驱动程序传递入模拟设备。IO模拟器通过加载描述设备工作模式的数据文件实现设备IO行为仿真。当物理IO驱动与虚拟IO驱动程序继承于同一个父类时,应用程序可以通过配置驱动程序在运行时进行物理设备IO与模拟设备IO的动态切换。对实际设备的写入操作就自动转发给模拟设备,并由模拟设备对读出等操作进行响应,返回相应数据流到应用程序。


图1  模拟器工作原理示意图

IO模拟器根据数据文件实现一个用户定义的有限状态机。如图2所示:继承自抽象基类(IOManager)的VISimulator类用于实现IO模拟器。将模拟器替代实际IO管理器对象(VisaIOManger)进行配置后,模拟器将截获上层应用程序发出的IO指令,并模拟实际设备进行响应。


图2  模拟器类结构示意图

VISimulator的成员states为模拟器可用状态表,variables为变量表,current为当前状态。状态表是状态类(VIState类)对象的集合,变量表为变量类(VIVariable类)对象的集合,变量值可用于状态和变量值的入口检查及计算。

  当写入操作(Write)发生时,模拟器遍历所有的变量及状态,检查其入口条件(entrance),对符合入口条件的变量,更新(Update)变量值(value)。如符合状态入口条件,则将该状态设置为当前状态。对于当前状态,还需检查其出口条件(exitus),如符合则设置当前状态为空。

  当读出操作(Read)发生时,模拟器由当前状态的模拟方法(Simulate)计算并返回模拟实际测量结果的数据。如当前状态设置读操作为出口条件,则模拟器在读出完成后返回空闲状态。如当前状态为空或非可读状态,模拟器将按照变超时设置延迟后返回无效数据,真实地模拟IO指令序列错误造成的测试过程现象。

  ViSimulator的Load方法用于数据文件装入,由数据文件的描述建立状态表和变量表。由状态和变量的静态方法Parse完成解析并返回实例对象。

实现及模拟结果

  笔者在实际测试系统开发过程中设计了前述模拟器,并根据仪器程控手册编写Agilent公司的HP8753E和E5071C等矢量网络分析仪的数据文件,实现了对这些实际仪器IO功能的模拟。下面以HP8753E电压驻波比测量为例详细介绍IO模拟器实现方法。

  矢量网络分析仪用于测量射频元件的端口特性,常用于测量端口电压驻波比、衰减、阻抗等参数。因此其测量结果就包括多种格式不同的数据组合。当用HP8753E进行电压驻波比测试时,网络分析仪会返回一个坐标数组,坐标的两维分别是驻波测量值和测量频率。

  根据HP8753E程控手册定义状态SWRWaveform用于模拟电压驻波比测量状态:

<SWRWaveform:state>//状态名
length:101  //模拟波形长度  format:value(1.00,1.1)|linear (StartFreq:10,EndFreq:100)
  //模拟波形坐标点格式
entrance:outpform(Format=swr) //状态
            入口点及辅助条件
exituse:[Read] //状态出口
  … …
<\SWRWaveform> //状态结束标志

  以上文本描述了状态的工作模式,当在写入数据流中检测到字符串outpform时,如模拟器变量表中变量Format=swr时模拟器进入状态SWRWaveform。此时如收到读出指令,模拟器将由SWRWaveform状态模拟输出电压驻波比波形,返回一个101点的两维坐标数组,其中X为1到1.1之间的随机数,Y为从模拟器变量表中变量StartFreq到EndFreq的线性递增数值。

  图3为测试系统由模拟器实际得到的测量波形,模拟器根据IO数据流正确地进入了SWRWaveform状态,并以正确的频率范围返回了仿真数据。

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

网站地图

Top