3. 仪器接口与通信基础
在多仪器联动系统里,接口不是“插上线就能通”的物理细节,而是决定系统带宽、实时性、拓扑形态和软件复杂度的第一道工程约束。同一台数字万用表,用 RS-232 读 10 个读数/秒和用 LAN 读 1000 个读数/秒,能支撑的测试任务完全不同。理解接口,要同时看三层:电气层(电平、驱动方式、终端匹配、隔离)、协议层(帧格式、寻址、握手、命令语义)和系统层(拓扑、线缆长度、可挂设备数、驱动与软件栈)。选型就是在这三层之间做权衡。
一、五类接口的电气与协议特征
GPIB(IEEE-488)采用 8 位并行数据线加 8 根控制/握手线,共 24 线,TTL 负逻辑电平,总线型拓扑,一条总线最多挂 15 台设备,总缆长不超过 20 m,设备间距不超过 2 m。它使用三线握手(DAV/NRFD/NDAC)保证异步可靠传输,理论速率约 1 MB/s,实际常为 200~800 kB/s。GPIB 的核心优势是“命令与数据分离”的清晰协议和成熟稳定的多机寻址,至今仍是台式仪器程控的可靠选择。
RS-232 是点对点串行接口,使用 ±3~±15 V 电平(逻辑 1 为负),全双工,最少只需 TXD、RXD、GND 三线。它没有总线寻址能力,一台主机只能连一台设备,典型速率 9600~115200 bit/s,线缆建议不超过 15 m。其价值在于极简、低成本和广泛存在,适合低速、单台、配置类通信。
USB 是主从式串行总线,采用差分信号(D+/D−),支持热插拔和总线供电。USB 2.0 全速 12 Mbit/s、高速 480 Mbit/s,USB 3.x 可达 5 Gbit/s 以上。它通过集线器构成星型拓扑,最多 127 个地址。对仪器而言,USB-TMC(USBTMC)把 GPIB 的 488.2 命令语义映射到 USB 端点,使 SCPI 命令可原样使用,是当前中低端仪器最主流的接口。
LAN(以太网)使用差分双绞线,100BASE-TX 为 100 Mbit/s,1000BASE-T 为 1 Gbit/s,交换式星型拓扑,单段 100 m。仪器侧普遍支持 VXI-11、HiSLIP 或原始 socket 三种协议承载 SCPI。LAN 的优势是距离远、带宽高、天然支持多主机与远程访问,缺点是协议栈复杂、确定性受网络负载影响。
VXI/PXI 属于模块化仪器总线。VXI 基于 VME 背板,扩展了触发和模拟总线,机箱内模块共享背板时钟与触发线,确定性极强;PXI 基于 CompactPCI,加入 10 MHz 参考时钟、星型触发和 PXI 触发总线,并衍生出 PXIe(PCI Express 串行背板),单槽带宽可达数 GB/s。二者都把“仪器”变成插卡,用背板替代线缆,适合高通道数、高同步要求的场景。
二、协议层次:从物理电平到 SCPI 命令
把接口按层次拆开,能看清“换接口不换命令”的原因。最底层是物理/电气层:GPIB 的 TTL 负逻辑、RS-232 的 ±12 V、USB 的差分、LAN 的隔离变压器、PXI 的背板差分对,各自定义电压、阻抗和终端。往上是链路/传输层:GPIB 用三线握手,RS-232 用起止位,USB 用事务与端点,LAN 用 TCP 重传,PXIe 用 PCIe 事务层。再往上是消息层:488.2 定义了通用命令(*IDN?、*RST、*OPC?)和状态模型,SCPI 在其上定义仪器专属命令树。最上层是应用/驱动层:VISA 用统一资源字符串屏蔽差异,例如 GPIB0::12::INSTR、USB0::0x2A8D::0x0101::MY12345678::INSTR、TCPIP0::192.168.1.50::inst0::INSTR。同一段 *IDN? 代码,换资源字符串即可换接口,这正是分层的价值。
三、选型依据:用需求反推接口
选型不应从“哪个接口新”出发,而应从四个问题出发:要传多少数据、要多快、要多同步、要多远。
- 低速单台配置类(如电源设定、万用表慢速读数):RS-232 或 USB 足够,优先 USB 以获得即插即用。
- 中速多台台式仪器(如多台万用表、示波器轮询):GPIB 或 LAN。GPIB 确定性好、协议成熟;LAN 距离远、可多主机。
- 高速大数据量(如示波器波形、频谱数据):优先 LAN 或 USB 3.x,GPIB 会成为瓶颈。
- 高通道数、强同步(如多通道同步采集、相参测试):选 PXI/PXIe 或 VXI,用背板时钟和触发线保证通道间确定性。
一个常见的工程判断是:当单次传输数据量超过约 1 MB 且要求秒级完成时,GPIB 基本不可行;当通道间同步误差要求小于 1 μs 时,线缆型接口(GPIB/USB/LAN)难以保证,应转向 PXI 背板触发。
四、实操示例:同一台仪器的三种连接与验证
以一台支持 GPIB、USB、LAN 的台式数字万用表为例,假设其 LAN 地址为 192.168.1.50,GPIB 地址为 12,USB 序列号为 MY12345678。三种连接方式下,VISA 资源字符串与验证命令如下:
# GPIB 连接
res = "GPIB0::12::INSTR"
# USB 连接
res = "USB0::0x2A8D::0x0101::MY12345678::INSTR"
# LAN 连接(VXI-11)
res = "TCPIP0::192.168.1.50::inst0::INSTR"
# 统一验证:读取身份并检查状态
*IDN? → 期望返回厂商,型号,序列号,版本
*RST → 复位到已知状态
*OPC? → 返回 1 表示操作完成
CONF:VOLT:DC → 配置直流电压测量
READ? → 触发并读取一个读数
验证时先确认物理层:GPIB 检查总线是否两端有终端、地址是否冲突;USB 检查设备管理器是否识别为 USBTMC 设备;LAN 先用 ping 192.168.1.50 确认链路,再用 VISA 打开资源。若 *IDN? 超时,优先排查资源字符串、地址和线缆,而不是怀疑仪器命令。若 READ? 返回异常值,检查量程、输入阻抗和触发源配置。