在构建自动化测量系统时,性能往往不会特别出色。提高性能对生产测试和基于GPIB的数据采集应用有显著影响。通过提高系统性能,您可以:
- 提高测试吞吐量并在更短时间内测试更多产品
- 快速验证新产品,在市场竞争中脱颖而出
- 更大限度地减少测试设备的资本支出
从本质上讲,节省时间意味着能够超出客户的交付预期,更快地开发产品,以及对测试设备进行更明智的投资,这些都会对盈利能力产生积极的影响。由于IEEE 488 (GPIB)总线是当今许多自动化测量系统的主干,因此评估有助于提高GPIB系统性能的不同选项意义重大。测试和研发工程师一如既往地使用GPIB,原因在于GPIB接口易于使用且久经考验,支持十分广泛的测量设备选择,您可以将这些设备集成到自动化测量系统中。鉴于以上原因,本应用指南将讨论八个适用于GPIB的选项,帮助提高系统性能。
下面的八种解决方案都涵盖了硬件和软件选项,您可以直接使用这些选项来提高GPIB系统性能。您可以组合或单独使用这八种解决方案,并采纳最适合您的特定系统的建议。
一旦通过GPIB接收数据,PCI就能提供卓越的数据传输性能。与基于ISA的计算机不同,在基于PCI的计算机中,没有可通过外围设备卡共享的专用DMA控制器来将数据直接传输到PC内存。为了获得出色性能,PCI外围设备板卡必须有自己的板载DMA控制器,才能有效地将数据直接传输到PC内存,以便微处理器处理数据。具有此类功能的板卡被识别为总线主控,这意味着它们可以控制PCI总线并独立于系统中的微处理器传输数据。
没有总线主控功能的外围设备卡会中断微处理器,使其停止所有处理任务,仅仅是为了传输数据。这种中断可能会使应用程序卡顿并严重妨碍整体系统性能。
HS488是IEEE 488的高速扩展,可将GPIB的最大吞吐能力提高到8 MB/s。基准测试将性能从25%提升到了3,000%。最近使用示波器进行的一项基准测试显示,PC和仪器之间的数据传输速率高达7.4 MB/s。HS488易于使用,因为它是在GPIB控制器硬件中实现的;您无需对应用软件进行任何更改即可获得更高性能。HS488经过现场测试,与现有的IEEE 488仪器完全兼容。高速和标准IEEE 488仪器可在同一系统中共存,不会出现兼容性问题。
NI现可提供兼容HS488的GPIB控制器。有关HS488的更多信息,请参阅下面的链接。
从GPIB仪器获取测量结果时,处理命令并将测量信息存入仪器的GPIB输出缓冲区会是一项耗时的任务。仪器供应商必须优化这些潜在的瓶颈,以确保尽可能高的测量性能。可以通过板载微处理器和内部系统总线的速度和类型来获知仪器的处理能力。但是,如果没有经优化的固件,就无法充分利用强大的硬件。如果仪器供应商没有提供有关这方面的任何产品规格或基准测试信息,那么在大多数情况下,您必须使用不同的仪器进行实验,以了解哪些仪器在跨GPIB配置测量和获取测量结果时性能更优。
IVI驱动程序旨在通过记住特定仪器的状态来提高系统性能。状态缓存引擎可跟踪仪器上硬件设置的状态。此功能显著提高了测试性能,因为它仅在需要修改硬件设置的值时才执行仪器I/O,从而可帮助系统智能运行。例如,只是简单地扫描激励信号的频率,而无需一遍又一遍地重新发送幅值、波形形状、相位和其他类型的信号信息,因为这些信息是多余的。当前VXI即插即用仪器驱动程序不提供状态缓存功能。
使用IVI驱动程序,您还可以将仪器驱动程序配置为在特殊模式下运行,以便在测试开发或系统部署期间获得理想结果。例如,您可以将驱动程序配置为自动检查尝试发送到仪器的所有值的范围,并在必要时将它们强制变为有效值。您还可以将驱动程序设置为在向仪器发送每个命令后自动检查仪器的状态字节。当您在生产线上部署测试程序时,可以快速关闭所有这些“开发模式”设置,以尽可能快地执行。您将获得两全其美的优势,即卓越的调试功能和更快的运行速度。
有关如何利用这些功能的详细信息,请参阅IVI驱动程序帮助。IVI驱动程序是根据IVI基金会发布的开放行业规范创建的,该基金会由20多个不同的用户和供应商公司组成。
基准测试范例 - 测量系统响应幅值与频率的关系
思考一下确定未知系统频率响应的任务。这需要波形/函数发生器来生成各种频率的正弦波,并且需要DMM或示波器来测量待测系统的输出电压。您可以在下面看到一个测试程序的伪码,其使用高层仪器驱动程序调用来对函数发生器和示波器进行编程。
扫描正弦测试的伪代码和测试设置:
初始化和配置示波器
初始化和配置频率发生器
While(频率 < EndFreq)
开始循环
生成正弦波
读取激励波形(示波器通道1)
读取响应波形(示波器通道2)
计算激励和响应存储幅值与相位增加频率之间的幅值和相位差
结束循环
绘制幅值和相位差
关闭DMM
关闭频率发生器
该测试过程是使用HP 33120A函数发生器和HP 54645D示波器实现的。表1突出显示了IVI驱动程序和传统驱动程序在此特定测试中的性能差异。
表1.状态缓存基准测试
状态缓存 | 测试时间(秒) | 性能差异 |
关 (传统VXI即插即用驱动程序) | 35.0 | N/A |
开 (IVI驱动程序) | 13.2 | 265% |
我们可以看到仪器处理和分析能力在不断改进。然而,仪器供应商很难与PC行业保持同步,提供最新的处理技术。很多时候,加入新处理器需要供应商重新设计仪器。您可能必须购买新版本的仪器才能享受到更高的性能。
为确保始终拥有强劲的处理能力,您应该考虑将部分计算密集型分析卸载到PC上,而不是依赖仪器的内部处理能力,有时这种处理能力甚至是过时的。通常,PC功能的发展速度比仪器功能的发展速度更快。我们更换PC的频率很可能会高于仪器更换频率。对于每款新一代PC,您可以通过选择使用该PC进行部分测量处理和分析来直接实现新的性能提升。
此外,由于仪器是封闭式台式设备,您无法自定义分析。使用PC,您可以轻松地添加自定义分析,因为许多仪表软件供应商提供完整的信号处理、滤波和常规分析库,可大大简化定义自定义分析例程的任务。
多线程是一种编程方法,其中应用程序的工作被划分为不同的任务,即不同线程。这些不同的线程由应用程序的主线程创建,可以独立于系统中的其他线程执行。当一个线程完成其任务时,便会退出。应用程序的主线程负责在所有任务完成后关闭应用程序。如果您的系统有多个处理器,可以通过在不同的处理器上同时执行不同的线程来提高应用程序的性能。您还可以通过为应用程序中的每个线程分配适当的处理器时间片来调整单处理器系统,从而获得更高的性能。通过配置为每个线程分配的处理器时间量,您可以提高应用程序的性能,因为处理器可以在等待外部事件的同时继续执行某个线程,然后再执行另一个线程,这是GPIB应用程序中的常见场景。
GPIB应用程序可以通过多种方式利用多线程。多线程可以帮助您隔离单独的应用程序任务,从而更有效地管理系统资源。您可以使用多线程将时间要求严格的任务隔离在单独的线程中,这样就可以一边监测服务请求(SRQ)等时间要求严格的任务,一边处理内存中已有的数据。
例如,一个应用程序可能有三个具有不同职责的线程:一个管理用户输入,另一个采集和记录数据,第三个负责处理和显示数据。处理和显示数据可能非常耗时且占用大量处理器资源。数据量和获取数据的频率可能会有所不同。很多时候,应用程序还可能不断地检查来自仪器的SRQ。与应用程序中其他正在进行的活动相比,用户交互可能是偶发事件。使用多线程,您可以隔离这些任务并满足每个单独任务的处理需求。此外,对于使用多个GPIB接口的应用程序,可以专门用一个线程来管理每个GPIB接口和每个接口控件的仪表。
NI的NI-488.2软件具有多线程安全性,可为多线程应用程序提供全面的功能。 NI LabWindows™/CVI和LabVIEW也进一步完善了仪器控制应用程序的多线程功能。有关LabVIEW和LabWindows/CVI中使用多线程的更多信息,请参阅“使用LabVIEW创建多线程应用程序以获得出色性能和可靠性”以及“LabWindows/CVI中的多线程”。
微处理器以二进制格式进行测量计算。但是,在通过GPIB传输数据时,数据经常会转换为字母数字格式(通常是ASCII)。由于进行两次数据转换需要耗费一定时间,因此性能会受到影响。第一次转换发生在仪器中,二进制数据转换为ASCII以通过GPIB传输。这种转换可能非常耗时,因为仪器中处理器的处理能力通常远远低于当今市场上的最新PC。第二次转换发生在您编写数据解析例程的PC中,该例程将测量数据从ASCII转换为二进制,以便进一步处理和分析数据。要消除这两项操作的开销,可考虑以仪器的原生数据格式(二进制)传输数据。
对于需要流式传输数据、快速小规模数据传输以及非常精确的同步和触发功能的应用,可考虑使用模块化插入式仪器进行部分测量。这些仪器可用于PCI、PXI/CompactPCI和VXI平台。使用其中任意平台,您都可以轻松控制GPIB仪器,从而获得两全其美的优势。
从成本的角度来看,PXI/CompactPCI坚固耐用,并且直接基于与台式PC相同的PCI总线,可为生产测试环境提供一种经济的解决方案。基于PXI/CompactPCI的模块化插入式仪表具有多种优势:
模块化仪表解决方案是颇具吸引力的选择,因为这些系统能满足测量和自动化系统中存在的三种不同需求。第一个要求是能够将大量数据流式传输到PC内存和从PC内存传出。示波器、任意函数发生器和高速数字化仪等设备需要足够的总线带宽,以确保在尽可能短的时间内将数据传入和传出PC内存。
第二个要求是与传输数据量非常小的设备(例如计数器/定时器、电源和数字万用表)进行有效通信。这些设备的有效通信主要取决于发送第一个信息字节所需的时间(首字节延迟)。因为要传输的数据总量很小,所以开销很大。PCI、PXI/CompactPCI和VXI的首字节延迟范围为10到100 ns。对于GPIB,首字节延迟约为100 µs。较低的首字节延迟可确保与传输数据量较小的设备的快速通信。
第三个要求是能够连接到不适用于模块化平台的现有GPIB仪器。NI现成的GPIB控制器板卡/模块可满足这一要求。
提高GPIB系统性能有多种选择。本应用指南中讨论的选项涵盖您选择使用的仪器、购买的GPIB控制器以及用于构建应用程序的软件和设计方法。您可以根据上述提示或您自己想到的其他方法,制定一份实际的检查清单,然后确保通过适当的措施直接解决这些问题。您可能会发现当前的GPIB系统具有尚未充分利用的性能潜力。
有关NI的GPIB和仪器控制接口的更多信息,请参阅下面的相关链接。
LabWindows标志经Microsoft Corporation授权使用。Windows是Microsoft Corporation在美国和其他国家/地区的注册商标。