微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 集成传统测试仪器与模块化仪器

集成传统测试仪器与模块化仪器

时间:01-09 来源:互联网 点击:

消息和基于寄存器的定义最早出现在VXI规范中。本文中,假定所用PCIe仪器都是基于寄存器的。

基于消息和基于寄存器的设备差别给模块化仪器创造了速度的优势。在传统基于消息的仪器中,SCPI命令用ASCII码发送,例如:MEASure:VOLTage:DC? 10.0,0.001

这个命令要求进行一个直流电压测量,最大值10V,分辨率1mV。然而仪器是不懂得这种类似英文的命令的。仪器内部处理出必须解析(翻译)一个命令以理解需要做什么。SCPI解析通常需要若干毫秒来完成。

然后测量开始执行,由内部寄存器访问仪器硬件。根据测量,这种操作仅需要若干微妙。上述电压测量在100微秒内可完成,得到二进制格式的结果。然后仪器把结果转为ASCII码,发回给控制器。控制器把ASCII码转为二进制来存储或者和限制标准比较。整个过程要几个毫秒,即使测量仅仅需要微秒级。

对于基于寄存器的设备,这个过程完全不同。软件驱动被调用直接执行寄存器操作。结果作为二进制数据直接被控制器使用,不需转化。速度提高50倍已经被证实。

然而,还有一个易用性的折中。SCPI命令容易使用和读取。也是可移植的;可以在任何操作系统或自动环境中工作。可以避免使用驱动,尽管驱动在某些请况很有用。如果测量速度不是至关重要的,或者测量时间远远大于命令翻译时间,基于消息的仪器都是一个好的选择。考虑所有这些原因,很多系统都是既包括传统的基于消息的仪器,也包括模块化的基于寄存器的仪器。

集成混合系统

集成传统和模块化仪器在一个混合系统中,第一部分是选择互连和配置。LXI仪器需要使用以太网。而LAN网络不是完全相同的。很少直接把仪器连接到企业LAN网中。网络中的数据可能会干扰和减慢实时仪器控制执行,而仪器也会显著增加网络流量。通常,LXI仪器被置于一个完全不同的网络。

这样,控制器需要两个LAN接口:一个连接到企业LAN网,可以管理测试计划和结果,另一个专用于仪器控制。使用一个以太网开关从控制器到每一台仪器。这需要在控制器中安装第二块NIC(网卡)。

基于PCIe的模块化系统也是类似的。从控制器到企业是LAN网的通信,而仪器通信是通过PCIe。大多数计算机内部有PCIe。和LXI不同,仪器是同一PCIe网络的一部分,内存映射和所有其他计算机外设一样,这就是如何获得速度提升的原因。

内部PCIe总线必须采用缓冲,以避免加载这些外部仪器的时间。这样,必须安装PCIe接口卡,允许PCIe扩展为像一根电缆对于PXI,AXIe,或VXI 4.0机架。这缓冲了PCIe总线但保持相同的内存映射。如一个系统使用多个PCIe机架,需要每个都安装额外的接口卡,或者机架扩展。下图所示系统配置了LAN和PCIe作为通信信道。下一步是添加所需软件。



仪器软件分层

无论是基于消息的仪器还是基于寄存器的仪器,都需要I/O命令。简单的基于SCPI的仪器需要某种方式把控制器的命令发送给仪器,这就需要VISA。VISA是一种业界标准的API,用于从PC和仪器通信。VISA版本可以从接口卡厂商处获得。VISA也支持和LXI仪器的通信,以及PCIe内存映射仪器,如PXI,AXIe和VXI 4.0。

VISA,或者相应的I/O库,是基于消息的仪器需要的最少的软件。安装VISA后,可以根据手册命令进行仪器SCPI编程。

VISA本身,很少足够控制PCIe仪器。还需要驱动程序来生成仪器的功能。IVI驱动,基于由IVI联盟管理的标准API,被设计用于从PC环境实现仪器控制。

IVI驱动设计为了处理两个问题:软件完成实际寄存器操作,是仪器功能的核心;并在驱动层面保证不同类型仪器和不同厂商仪器之间的兼容性。这样,IVI借用SCPI来定义基于产品类别的类(Classes),采用的API看起来和SCPI命令特别类似。例如,同样的IVI功能调用数字万用表(DMM,digital multimeter)是这样:

dmm.DCVoltage.Measure(10.0, 0.001)

因为这条调用在编译时完成,很少时间损失在命令执行时。执行时不需要命令解析。

IVI驱动有好几种,如IVI-C,IVI-COM,为不同环境优化。PXI和AXIe产品几乎毫无例外地支持IVI-C,它可用于任何微软自动化环境,包括Microsoft Visual Studio,LabView, Matlab, Agilent VEE。要使用IVI驱动还需要同时安装一些共享组件。IVI Foundation网站提供了关于使用这些驱动的细节。仪器厂商也可以根据不同操作环境提供特别订制的驱动。包括LabView和Matlab驱动。

安装好需要的软件驱动,仪器可以编程用于自动化环境。模块化仪器使用选定的驱动来编程。尽管基于消息的仪器可以直接用SCPI编程,很多时候也可以被相同的IVI驱动控制,和模块化仪器一样,例如IVI-C或LabView。这使得多了额外一层一致性,并允许在传统

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

网站地图

Top