系统开发者指南
使用 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