1. 模块化仪器——灵活的自定义软件和可扩展硬件
设备的日趋复杂和技术的渐进融合迫使测试系统变得更加灵活。尽管成本的压力要求系统具有更长的生命周期,测试系统仍须适应设备随时间变化而带来的各种变化。而实现这些目标的唯一途径便是采用一种软件定义的模块化架构。本文将通过使用虚拟仪器来解释软件定义的概念,为硬件平台和软件实现提供多种选择,并讨论模块化系统是如何满足理想ATE的需求。
目前就本质而言,有两种类型的仪器应用,虚拟仪器和传统仪器。图1描述了这两种类型仪器的架构。
Figure 1. Comparing traditional and virtual instrumentaTIon architectures, both share similar hardware components; the primary difference between the architectures is where the software resides and whether it is user-accessible.
两种类型仪器的相似之处。两者都具有测量硬件、一个机箱、一个电源、一根总线、一个处理器、一个操作系统和一个用户界面。由于这两类仪器使用相同的基本组件,所以从纯硬件的角度来看,两者间最明显的区别在于如何将这些组件进行封装。一个传统的(或独立的)仪器会将所有的组件放在同一个盒子(这个盒子适用于任何一个独立仪器)中。通过GPIB、USB或LAN/局域网控制的手动仪器便是这类独立仪器的一个范例。这些仪器是作为独立实体设计的,其主要设计目的并不是系统应用。虽然传统仪器数量众多,但就仪器本身而言,其软件处理和用户界面都是固定的,仅当厂商选择更新时才可以被更新,而且如何更新也取决于厂商的选择(例如,通过固件升级)。因此,用户要想进行传统仪器功能列表中未包括的测量是不可能的,而且,对于一个传统仪器,根据新的标准进行测量,或者根据需求的变化调整原系统,都是极具挑战的。
相比之下,一个通过软件定义的虚拟仪器使得用户可以访问来自硬件的原始数据,以便自定义测量和用户界面。通过这种软件定义的方式,用户可以进行定制测量,根据新的标准进行测量,或者根据需求变化调整系统(例如增加仪器、通道或测量)。尽管用户定义软件可用于独立的、特殊应用的硬件,但其理想的搭配还是通用的模块化硬件,它能使测量软件的灵活性和性能得到充分发挥。这种灵活的自定义软件与可扩展硬件的组合,便是模块化仪器的核心所在。
2. 支持系统扩展的模块化硬件
模块化仪器可以采取多种形式。在一个设计良好的模块化仪器系统中,许多组件,例如机箱和电源,都为多个仪器模块所共用,而不是为某一仪器功能重复配置这些组件。这些仪器模块也可以包含不同类型的硬件,包括示波器、函数发生器、数字化仪与RF等。在某些情形下(如图2所示),测量硬件仅仅是一个安装于主机的某个外设端口或外设插槽的外设。在此情形下,主机PC提供用以完成软件测量的处理器,以及用于电源供应和I/O的机箱。
Figure 2. Examples of measurement hardware choices for modular instrumentaTIon include a USB peripheral module on the left, and a PCI Express plug-in module on the right.
在另一些情形下,例如PXI(PCI的仪器拓展)——一个用于测试、测量和控制的稳固平台,并由超过70个成员公司所支持——测量硬件被安装于一个工业机箱(如图3所示)。
Figure 3. This example of a modular instrumentaTIon system uses PXI hardware and NI LabVIEW graphical development software.
在一个PXI系统中,主机可以嵌入机箱(如图3所示),或者是通过线缆接口控制测量硬件的独立的便携机、台式机或服务器。由于一个PXI系统使用与PC内部相同的总线(PCI和PCI Express)和现有的PC组件来实现对系统的控制,因此,无论是使用PXI系统还是PC,相同的模块化仪器概念均可等同应用。(然而,PXI确实为模块化仪器提供了一些此处未展现的其它优点,如更高的通道数、便携性和稳固性(了解关于PXI的更多信息,请访问ni.com/china/pxi)。)不论系统使用PXI、带有内插式模块的台式机或是带有外设I/O模块的台式机,这种共享机箱和控制器的方式都大大降低了成本,同时也使用户能够对测量与分析软件进行控制。虽然模块化仪器存在多种配置选择,但该类型仪器与传统仪器的区别之处在于,其软件是开放的,因此当测试需求发生变化或传统仪器无法完成测量时,用户可以自定制测量。
值得注意的是,这种模块化方法并不意味着,在与将所有功能连接到单一盒子内的传统仪器相比时,会存在仪器或通道间同步的问题。相反地,模块化仪器的设计目的在于可被集成以供系统使用。所有的模块化仪器均通过共享的时钟和触发器,提供定时和同步的能力。例如,就最高同步精度而言,基带、IF和RF仪器可以以低于100 ps仪器间偏移的精度进行同步——优于同一台仪器的多个通道间的同步偏移。
3. 模块化降低了成本与外形尺寸,提高了吞吐量,并延长了生命周期
虽然术语“模块化”有时会仅仅基于硬件封装而被错误使用,但模块化仪器所涵盖的内容远不止封装。用户期望一个模块化系统能带来三方面的收益——通过共用机箱、背板和处理器带来成本的降低和外形尺寸的减小,通过与主处理器的高速连接带来更快的吞吐量,以及通过用户定义的软件实现更大的灵活性与更长的生命周期。
如上所述,一个模块化仪器系统中的所有仪器共用一个电源、机箱和控制器。而独立仪器则为每一个仪器重复配置电源、机箱和(或)控制器,从而增加了成本与尺寸并降低了可靠性。事实上,无论使用何种总线结构,每个自动化测试系统都需要计算机进行控制;在模块化架构下,所有仪器共用同一个控制器,从而使得在整个系统范围内分担成本。在模块化仪器系统中,G赫兹计算机处理器通过软件分析数据并完成测量。其测量结果十倍于甚至百倍于仅由传统仪器构建的测试系统(这些系统使用内置的厂商定义的固件和专用处理器)的吞吐量。例如,一个典型的矢量信号分析仪(VSA)每秒可以完成0.13次带内功率测量,然而一个NI模块化VSA每秒可以完成4.18次带内功率测量——提高近33倍。
模块化仪器需要一个高带宽、低延迟的总线将仪器模块与共享处理器相连接,以执行用户定义的测量。虽然USB在易用性方面提供了极好的用户体验,但PCI与PCI Express(以及以这些总线为基础拓展所得的PXI平台)在模块化仪器中提供了最佳性能。目前, PCI Express提供高达4 GB/s的插槽,而PXI提供带宽高达2GB/s的插槽——超过高速USB 33倍,100 Mb/s以太网的160倍,甚至是即将推出的千兆以太网的16倍(如图4所示)。外设总线(例如LAN与USB)总是通过一个内部总线(例如PCI Express)与PC处理器相连,因而理论上总会导致性能下降。我们以一个模块化RF采集系统为例,来讨论高速总线如何影响测试与测量。在一个台式机或PXI系统中,一个带有4个2 GB/s的PCI Express插槽,可以将两个通道100 MS/s 的16位IF(中频)数据直接输送到处理器供运算。由于LAN与USB都不能满足这些需求,所以需要提供这样性能水平的仪器总是包含一个嵌入式的、厂商定义的处理器,以完成测量——这样的仪器就不再是模块化的了。
Figure 4. PCI and PCI Express provide the highest bandwidth and lowest latency, decreasing test TIme and delivering flexibility and longevity through user-defined software.
对于一个模块化仪器,与主机的高速连接是提供灵活性和长生命周期的关键,因为它使软件而非仪器驻留于主机。通过在主机上运行软件,用户(而不是厂商)可以定义仪器如何运行。这样的架构使您能够:1)进行那些不够普遍以致未能包含在典型的、厂商定义的、非模块化的途径中的测量;2)为尚未发布的标准创建测量; 3)定义用于进行特殊测量的算法。软件的用户定义本质也意味着,当待测设备发生变化时,您可以对测量甚至仪器进行增加或调整。您也可以使用软件的直接访问,通过网络来监听或控制这些模块化仪器。
值得注意的是,这些硬件的实现并没有牺牲测量性能。目前,通过模块化仪器方法的设计的仪器,包括业界最高分辨率的数字化仪、最高带宽的任意波形发生器和最精确的7位半数字万用表。
4. 灵活的自定义测量软件
模块化仪器中软件的作用是不容忽视的。软件将来自硬件的原始比特流转换为一个有用的测量值。一个设计良好的模块化仪器系统能兼顾软件的多层结构,包括I/O驱动程序、应用开发程序和测试管理程序。
Figure 5. Software layers are often used in a modular instrumentation system.
位于最底层的测量与控制服务,是最常被忽略的,但却是一个模块化仪器系统最关键的要素之一。该层代表I/O驱动软件和硬件配置工具。这个驱动软件非常关键,因为它为测试开发软件和用于测量与控制的硬件之间提供连接。
仪器驱动程序提供一个高层、直接可读的、与仪器交互的函数的集合。每个仪器驱动程序都是为特定的仪器模块量身定做,以提供一个调用其独特功能的接口。对于一个仪器驱动程序,特别重要的是其与开发环境的集成,以便仪器命令成为应用开发的无缝集成的一部分。系统开发人员需要根据所选的开发环境(如NI LabVIEW、C、C++或Microsoft .NET)对仪器驱动进行优化。
同样包含在测量与控制服务中的是配置工具。这些配置工具包括用于配置和测试I/O的资源,存储扩展、校准和通道混叠信息。这些工具对于一个仪器系统的快速构建、故障排除和维护非常重要。
位于应用开发环境层的软件能提供用于开发应用所需的代码或程序的工具。虽然图形化编程不是每一个模块化仪器系统所必需的,但出于易用性和快速开发的考虑,这些系统经常使用图形化工具。图形化编程使用“图标”或符号函数,以绘图方式表示所要执行的操作,如图7所示。这些符号通过传递数据并确定执行顺序的“线”相连。LabVIEW提供了业界最常用的、也是最完整的图形化开发环境。
Figure 5. Code for a typical stimulus/response application using modular instrumentation, written in LabVIEW, 1) generates a signal from an arbitrary waveform generator; 2) acquires the signal with a digitizer/oscilloscope; 3) performs a fast Fourier transform; and 4) graphs the result of the FFT on the user interface (front panel)。
一些应用还需要一个名为软件管理的附加层,用于测试执行或测试数据的可视化。对于高度自动化的测试系统,测试管理软件为顺序执行、分支/循环、报告生成和数据库集成提供了一个框架。测试管理工具还必须提供与创建专用代码的开发环境的紧密集成。例如,NI TestStand提供了用于顺序执行、分支、报告生成和数据库集成的框架,并包含与所有常用开发环境的连接。对于其它需要可视化观察大量测试数据的应用,其他的工具或许有用。这些需求包括快速访问大量的离散数据、持续报告和数据可视化。这些软件工具,针对数据采集过程中所采集到的数据和(或)仿真过程中所生成的数据,为管理、分析和报告这些数据提供辅助。
对于一个模块化仪器系统,该软件架构中的每一层都应当予以重视。
5. 模块化仪器——满足自动化测试的需求
随着设备变得愈为复杂并涵盖更多迥异的技术,测试系统必须变得更为灵活。测试系统必须适应随时变化的设备,然后与此同时,成本的压力要求系统具有更长的生命周期。实现这些目标的唯一途径便是采用一种软件定义的模块化架构。通过共享组件、高速总线和开放的用户定义软件,模块化仪器便是满足当今和未来自动化测试需求的最合适的选择。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』