logo资料库

安捷伦N9030A频谱仪Scpi接口协议.pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
系统开发者指南 使用 SCPI 和直接 I/O vs. 驱动程序 应用指南 1465 - 13 这套应用指南告诉您如何利用 目录 开放连通性标准,如仪器驱动程序 简化测试系统的集成。这些应用指 南的总体目标是帮助您得到可靠的 结果,符合您的吞吐率要求,并将成 本控制在预算范围内。 使用 SCPI 和直接 I/O vs.驱动程 序 是本系列中的第五篇应用指南, 讲述输入 / 输出 (I/O)软件、应用 软件,以及在当前和未来系统中最 大化仪器互换和软件重用能力之间 的关系。本文应与应用指南 1465-9 至1465-12配套阅读,这些指南阐述 测试系统中使用 LAN 接口的好处, 描述 LAN 基测试系统的安全拓扑, 说明如何实现 PC 与可启用 LAN 仪 器的通信,并概述 USB 在测试和测 量中的使用。 确定如何通信 方案想定 实现连通 标准化 API 更自由地选择 应用指南 1465-9-1465-11 概要 实现通信 标准化直接 I/O 改进互换和重用 探索应用的替代方案 简化基本分析任务 比较开发环境 最大化性能和灵活性 Microsoft® Visual Studio® 具有 Agilent 测试和测量工具集的 Visual Studio Agilent VEE Pro 评估 I/O 软件替代方案 仪器驱动程序 vs. 直接 I/O ADE vs. I/O API ADE vs. 仪器驱动程序 成就测试系统的未来 本系列其它应用指南的题目见 术语 相关文献 第 11 页。 2 2 3 3 3 3 4 4 5 5 5 6 7 7 7 8 9 9 9 9 10 10 11
连通性是实现通信的必要条件, 但还不是充分条件。就像您给另一 国的朋友打电话:您拿起电话听筒, 开始拨号,但却是朋友的母亲接电 话。由于彼此语言不通而不能作有 意义的交谈。您有了一个连接,但没 有实现沟通。 这与测试系统的情况相同。即 使您的应用已与仪器连通,还必须 使用正确的命令和协议实现通信、 控制、数据传输等。 确定如何通信 方案想定 您一旦选定了系统的 I/O 接口 GPIB、LAN、USB 或它们的组 合 下一步就是如何建立连通性和 实现系统内主计算机与仪器间的通 图 1 中的框图是我们的出发点。 它把讨论的概念层 软件和硬件层 与包括计算机、I/O 电缆和测试 设备的实际测试系统相连接。在这 信。近来,实现连通性和通信的方法 一模型中,来自应用程序的命令和 已从特定厂商的命令、库和接口转 信息流经过软件和硬件层、电缆到 向工业标准命令集、应用程序接口 (API)和仪器驱动程序。 达仪器,然后再返回。 请注意图的左上方,应用程序 是您购买、下载或编写用于控制测 试系统的程序。I/O软件层是使能应 用程序与物理 I/O 硬件 PC 中 GPIB、LAN、USB 或 RS-232 接口 间通信的翻译器。这三种部件都驻 存在主PC中,用以实现与测试仪器 的连通能力。 图 1. 驻存在系统主 PC 中的三种基本仪器通信部件 在系统开发中,标准的使用带 来两项主要好处:通过最大化软件 重用加速开发,因更易于使用不同 仪器而提高了系统的灵活性。标准 通过允许您在应用中把直接 I/O 与 可编程仪器的标准命令(SCPI,发 音为“skippy”)及基于仪器驱动程 序的通信相组合,而帮助实现您的 目标。 选择最好的 I/O 软件与许多因 素有关,如系统中的仪器数量和类 型,要使用的仪器功能,系统吞吐率 要求和要部署的系统数。它也取决 于您应用所使用的开发环境,以及 您当前的编程水平。 2
实现连通 在早期自动测试中,系统控制 器称为台式计算器或仪器控制器 它只有有限的处理能力和少量的 存储器。为使语法尽可能简单,设备 制造商采用短命令,先是二进制,后 采用 ASCII。 不同制造商定义他们自己的命 令串,通常是针对各仪器特定功能 的专有命令。在系统中要把仪器更 换至另一厂家的仪器,甚至用新仪 器更换同一厂家的较老仪器,都可 能需要完全重写系统软件。1 仪器命令还不是故事的全部。 控制器和系统仪器间的连接性需要 另增的软件层。历史上的I/O软件层 包 括 了 库 , 如 标 准 仪 器 控 制 库 (SICL)或 NI-488。应用软件通过使 用这些库实现与仪器的直接通信。 各厂商都有专用于与自己 I/O 接口 通信的专有应用程序接口(API)。这 给用不同厂家设备建造测试系统的 系统开发者带来很大困难 当然, 许多系统用过的(和还在使用的)设 备确实来自多家厂商。 标准化 API 为更容易构建多厂商测试系统, 一组仪器厂商建立了虚拟仪器软件 体系结构(VISA)。它提供标准化的 API,允许通过公共接口 直接或 使用驱动程序控制仪器。从应用的 观点来看,各厂商的VISA似乎相同。 对于 V I S A 必须注意:虽然 VISA API 是标准的,但各厂商则是 用VISA层下的不同层控制硬件。此 外,各厂商还可能为它应用层的独 特特性作了增强。为使其能完成所 有工作,主计算机中安装的 VISA 版 本必须与 I/O 硬件兼容(这正是 PC 标准 I/O,如 LAN 和 USB 的另一优 点,支持这些接口的任何版本 VISA 都能工作,因为低级驱动程序已标 准化)。 更自由地选择 与测试和测量行业 I/O 的进步 同时,PC 行业一直在追求 I/O 和程 序语言的独立性。Microsoft 建立了 组件对象模型(COM),这是允许不 同软件厂商制作的组件组合进入各 种应用的软件体系结构。COM 不依 赖于任何特定的程序语言。 为 融 入 语 言 独 立 性 的 优 点 , Agilent 开始建立作为 VISA 标准伙 伴的 VISA COM。VISA COM 是 VISA API 面向对象的表述;VISA API 通过使用组件对象模型而进入 应用层。 其结果是:VISA COM 使您能 自由选取最流行的 I/O 配置,从选 择“COM友好”语言,如C#、Visual Basic 6 和 Visual Basic .NET 诸语言 中获益。如我们后面的讨论,您选择 的应用开发环境(ADE)将影响对 您应用的最佳库和 API 选择。 应用指南 1465-9/1465-11 概要 测试系统中的一些因素会增加 I/O连接的负担。比如系统中的仪器 数,要执行的测试数,命令量、状态 消息,以及要传送的测试数据。LAN 技术是解决负担问题的最好方法。 它是 GPIB 的快速和低价的替代方 案,在连接距离和锁定连接器上也 超过 USB 。 当前一代 PC 多数都有内置的 LAN 端口,因此测试系统的计算部 分只需最小的物理配置。测试仪器 拥有 LAN 端口也越来越平常。此 外,像 Agilent E5810A LAN/ GPIB 网关这样的装置能在基于 LAN 的测 试系统中容易地包括仅有 GPIB 的 较老仪器。 作出系统 I/O 使用 LAN 的决定 也能更容易地与同事共享数据、结 果、报告等。但它也为可能影响系统 性能和完整性的恶意威胁和不经意 的风险开启了大门。幸而有保护的 专用 LAN 能屏蔽网络免受大部份风 险,并保证最大的吞吐率。大多数 Windows PC 和低价网络设备的这 些标准能力有两种可行的实现方 法:一种是围绕 LAN 路由器建造, 另一种是基于配有两块 LAN 卡的 PC 。 为在 PC 中建立与 LAN 使能仪 器的透明通信,还需要做一些工作。 成功取决于 Microsoft Windows XP 的 LAN 服务,以及 Agilent IO Li- braries Suite 14 所提供简化和加速 连接过程的一些附加能力。 1 为更多了解仪器控制的发展,请参看应用指南 1465-3理解驱动程序和直接 I/O,2-5页 www.agilent.com/find/systemcomponents 3
今天,SCPI 仍是使用最多的仪器控 制形式。 实现通信 标准化直接 I/O 当您使能了连通能力后,就要 决定如何实现主计算机和系统仪器 间的通信。有两种可选方案,即直接 I/O 和仪器驱动程序。直接 I/O 建立 与各仪器的直接连接,它较快,但限 制了仪器的互换和软件重用。大多 数仪器驱动程序使用直接 I / O 和 SCPI,但有时它会隐藏连接。总之, 驱动程序以降低灵活性(可能还有 速度)为代价换取改进的互换性和 重用能力。在许多情况下,您可既使 用仪器驱动程序,又使用直接 I/O, 以实现最佳速度、灵活性和测量功 能的平衡。 1989 年,HP2 推出称为测试和 测量系统语言(TMSL)的仪器通信 语言,在改进一致性和易用性上作 了尝试。其后 HP 和其它八家制造 商以 TMSL 为起点,共同致力建立 通用的仪器控制方法。其成果是 SCPI,即可编程仪器的标准命令。 SCPI 在仪器固件中的实现使用 于直接 I/O 的程序语法更鲁棒和更 可预期。语法定义了严格的层次,规 定了跨仪器型号的一致性命令、响 应和数据格式。所定义的这些命令 和响应适用于源、敏感和开关装置。 表 1: 这一 Visual Basic 6 框图使用 SCPI 和 VISA COM I/O 与函数发生器通信 Dim Fgen As VisaComLib.FormattedIO488 ' Code removed: Set up the connection to the instrument With Fgen WriteString "*RST" IO.Clear ' Reset the function generator ' Clear errors and status registers WriteString "FUNCtion PULSe" ' Select pulse waveshape WriteString "OUTPut:LOAD 50" ' Set the load impedance to 50 Ohms (default) WriteString "VOLTage:LOW 0" ' Low level = 0 V WriteString "VOLTage:HIGH 0.75" ' High level = .75 V WriteString "PULSe:PERiod 1e-3" ' 1 ms intervals WriteString "PULSe:WIDTh 100e-6" ' Pulse width is 100 us WriteString "PULSe:TRANsition 10e-9" ' Edge time is 10 ns (rise time = fall time) WriteString "OUTPut ON" ' Turn on the instrument output For I = 0 To 18 ' Vary edge by 5 nsec steps WriteString "PULSe:TRANsition " & (0.00000001 + I * 0.000000005) Sleep 300 ' Wait 300 msec Next I End With 2 1999年 HP把它的测试和测量业务分拆 至Agilent。 4
改进互换和重用 SCPI 是一项重大进步,但仪器 驱动程序的后续发展已使互换和重 用达到全新的水平。仪器驱动程序 (或简称“驱动程序”)是使能 PC 与 仪器间的通信,针对特定仪器(或特 定仪器门类)的高层软件部分。对软 件开发者来说,驱动程序通过指导 开发者完成各必要编程步骤和在程 序环境内提供仪器能力简化编程和 缩短开发时间(而不是像 SCPI 和直 接 I/O 那样在手册中)。 第一代驱动程序针对特定厂商, 通常使用特定 ADE 工作(有些遗存 的应用程序还在使用这样的专用驱 动程序)。但今天已有三种类型的标 准化仪器驱动程序。它们与多种 ADE 一道工作,能使仪器与任何厂 商的 I/O 硬件通信。 VXI即插即用:它们原来是为模 块化VXI仪器开发,后来又扩展 到非 VXI 仪器。通过 VISA 库, 一致性的驱动程序提供 I / O 。 VXI 即插即用 WIN32 驱动程序 规范能在所有流行语言中工作, 是今天使用最广的驱动程序体系 结构。 IVI-C: IVI- C 有二个明显不同的 驱动程序。该术语通常适用于基 于 NI 专有工具的驱动程序。由 于 IVI 标准的出现,NI 为遵循 标准更新了它的工具,但基于专 有工具的许多系统仍在使用中。 为获得重用和可互换能力,IVI- C 需要用附加补丁软件围绕不直 接支持软件互换能力的核心 DLL 技术,应用程序必须调用中间驱 动程序(一个“IVI-C 类驱动程 序”),然后由它接着调用实现该 功能的专门仪器驱动程序。 IVI-COM: 通过利用 COM 计算 机标准,该标准能最大限度实现 可互换性和重用。 IVI-COM 驱动 程序与标准 PC 组件体系结构软 件 相 集 成 , 从 熟 悉 和 方 便 的 ADE控制仪器,以得到生产能力 的极大改进。IVI-COM 驱动程 序用 V I S A (V I S A C O M 或 VISA-C)控制VXI或 GPIB仪器。 由于许多新的仪器包括计算机标 准 I/O,如 LAN 和 USB,用于非 GPIB 仪器的 IVI- COM 驱动程 序并不要求使用 VISA,虽然许 多使用了 VISA。 如果您不能确定使用的是何种 I/O 技术或驱动程序,可检查仪器通 信所使用的连接串或“仪器地址”。 V I S A 型串的形式如“T C P I P : 34980A.tm.agilent.com::inst0:: INSTR”,而基于SICL的串则如“lan [34980A.tm.agilent.com]:inst0”。 探索应用的替代方案 打包的压缩软件通常以性能和 灵活性为代价,提供测量和分析的 便利。这样的产品一般非常适合产 品开发期间使用的小型系统或一次 性系统。与其相反,定制软件往往是 需要高性能和最大灵活性的设计验 证和生产测试这类应用的最好答案。 简化基本分析任务 有一些替代通用开发环境的方 案。一个例子是“目标应用”,它针 对特定的测量或技术领域,或针对 产品开发生命期中的特定阶段或任 务。这些应用包括为非经常性测量 所设计的软件(手动或半自动)。这 些软件一般用于产品开发的较早阶 段或设计验证期间。 像Agilent IntuiLink 连通性软件 (免费)和 Agilent BenchLink(低价) 这类应用软件能容易地用于执行半 自动测量,收集数据和分析来自各 种仪器的结果。这两种应用软件使 用驱动程序或直接 I/O 以实现仪器 通信、控制和数据传输。 www.agilent.com/find/systemcomponents 5
IntuiLink: 这种连通性应用软件 通过在流行 PC 应用软件,如 Windows Word 和 Excel 中增加 工具条简化数据传输。Intuilink 能从测量仪器直接取回数据,使 您能保持在 PC 应用软件中,并 使用其熟悉的界面。通过支持 GPIB、USB、LAN 和FireWire接 口,Intuilink也消除了仪器与 PC 间的壁垒。 BenchLink: 这种低价的应用软 件 有 支 持 各 种 仪 器 的 版 本 。 BenchLink 是 Windows 基应用软 件(图 2),它用电子数据表格式 流程化数据收集、展示和分析。 它也能通过包括在 I/O 软件中的 LAN、USB或GPIB 与仪器通信。 还有对 BenchLink 的更高售价 替代方案,包括适用于功能测试的 仪器控制软件和特定域应用软件。 产品范围从一般测试执行程序到针 对应用的程序,如蜂窝电话管制测 试工具。所有这些都服务于减少仪 器编程、连通和通信的负担。 图 2. Agilent BenchLink Data Logger 提供电子数据表形式的测试设置,以及对测量的实时显示和分析 比较开发环境 您行将选择的软件环境对建立 和维护测试系统所需要的时间、工 作量和成本有极为显著的影响。开 发环境可以是图形式的,或者是文 本式的。如 Agilent VEE Pro 和 NI LabVIEW 这样的图形环境使用图示 方法,工程师掌握这种方法比较容 易。您只需操纵代表命令和功能的 图标,用程序流线把它们连接。这样 做能更容易看到执行路径和交互; 它也为您屏蔽了下层的语法。针对 测试和测量的图形环境还有扩展的 I/O 和仪器驱动程序,以及与测量相 关的数学运算及图形能力。图形编 程最适合小型和中型的测量应用 而对大型程序,可视接口则变得难 以理解。 相反,文本程序则较难掌握,因 为需要全面和深入了解编程语言的 命令和语法。但由于多数文本语言 是基于开放标准,它们提供对开发 环境、软件工具和培训机会的更大 选择。而且有众多适用的第三方驱 动程序、工具和插卡。文本程序最适 合大型复杂程序,因为更容易浏览 和理解。 过去,文本编程所产生的应用 程序在运行时间上有明显的速度优 势,它超过图形编程所产生的应用 程序。但在今天,这两种方法产生的 应用程序在运行速度上相差甚小。 6
屏上帮助:IntelliSense 特性和 “F1 帮助”能力与基于 COM 和 .NET 的第三方驱动程序和软件 协 同 工 作 。 例 如 驱 动 程 序 的 IntelliSense 窗显示所有可用的操 作,对每一项操作的简要描述, 以及所有允许参数的概要和说 明。对于各种驱动程序或部件, 只需按 F1 键,就打开展现该驱 动程序在线帮助手册的新视窗。 这种上下文相关的屏上帮助要比 翻阅印刷的编程手册快得多。 这种测试系统应用软件也有一 项缺点:即 Visual Studio 中的新 . N E T 基 语 言 难 以 使 用 C A P I 。 Microsoft程序语言最新版用.NET技 术与驱动程序及第三方软件通信 .NET 迅速扬弃了 C API 技术。这影 响到 VISA I/O 库的 C API 版本,以 及IVI-C 和 VXI即插即用驱动程序。 为解决这一问题,Agilent 为 VISA APL 提供 .NET 的包装程序。该包 装程序可免费从 w w w . a g i l e n t . com/find/iolib下载;它也已包括在 Agilent IO 库产品中。 最大化性能和灵活性 您可选择支持定制测量软件创 建的方案。其范围从测试自动化应 用软件到使用图形或文本编程的全 功能开发环境。您选中的方案将确 定仪器通信的最好选择。 Microsoft Visual Studio Visual Studio 是文本式的编程 解决方案,它提供扩展的开发工具 和内置的帮助能力,以加速 Win- dows 基应用软件的开发。集成的 开发环境为所有支持语言提供一致 性的接口,包括 Visual Basic,C++ 和 C#。 作为标准化的主流开发产品, Visual Studio 有如下优点: 开放性:由于 Visual Studio 是开 放和应用广泛的标准,因此能与 任何其它编程技术通信。这样, 您就能用数以千计的第三方工具 软件和驱动程序等 来支持 您的开发工作。 COM友好: Visual Studio 能使用 基于 Microsoft COM 的编程技术 良好工作。包括 VISA COM 和 IVI-COM。 具有 Agilent 测试和 测量工具集的 Visual Studio Agilent 测试和测量工具集 2.0 具有测试自动化能力,它使用一套 集成和易于使用的软件工具和组件 项目向导、API、类库、widgets、 图形、驱动程序和其它工具扩展Vi- sual Studio 的 .NET 版。所建立的环 境简化了把测试和测量融入定制应 用软件的过程。在 Visual Studio 环 境中使用测试和测量工具集2.0,您 就可使用所中意的文本编程语言, 把您的新代码与在其它语言中编写 的已有代码相集成。 测试和测量工具集 2.0 还提供 加速和简化系统开发的一些其它 能力: DirectIO 类: 这是直接向仪器发 送命令的最简单方法。 包装的 VXI即插即用驱动程序: 它把驱动程序集成至 .NET,具 有全部 IntelliSense 和 F1 帮助能 力。测试和测量工具集也能认识 和使用带有内置 IntelliSense 的 IVI-COM 驱动程序。 仪器资源管理器:用这一工具能 容易地看到和编辑仪器 I/O 配置, 初始化与仪器的通信。 www.agilent.com/find/systemcomponents 7
IO 监视程序:这一公共程序使 您能更容易地使用仪器控制软件 和仪器驱动程序 IVI-COM, VXI 即插即用驱动程序 通过 监视直接 I/O 下层发送至仪器的 命令和返回的结果数据诊断问题 (图 3)。 这样,Visual Studio和测试和测 量工具集的有机结合就能解决与定 制应用软件连接和控制测试设备相 关的许多难题。 Agilent VEE Pro 对于寻求替代文本编程的工程 师来说,Agilent VEE Pro 7.0 是能 加速建造和编程测试系统进程的强 大而易用的程序环境。为创建一个 程序,您从宏大的库中选择高级图 形对象,把它们用直线或“导线”连 接。导线连接规定了直观框图中的 功能和序列。 图 3. 测试和测量工具集的 IO 监视程序跟踪 I/O 层,提供 Agilent VISA,VISA COM,SICL 和 SICL 细 节,帮助您找到源代码中的瓶颈问题。 由于 VEE Pro 是开放和对标准 友好的环境,它也为测试系统开发 提供一些好处: 直接 I/O: 通过其容易和强大的直 接 I/O 能力,VEE Pro 提供对直 接 I/O 的极好支持,以控制任何 标准仪器和许多厂商的 PC 插卡。 仪器驱动程序:VEE Pro 支持各 种工业标准驱动程序,如 IVI- COM 和 VXI 即插即用驱动程序。 它支持上千种驱动程序,以及 70 多家制造商的流行仪器。 COM 和 .NET: 对于不熟悉 .NET 程序语言而又需要使用这些能力 的工程师来说,VEE Pro 关注各 种细节,可确保 COM 与 .NET 软件的成功交互。 8
分享到:
收藏