2. Keysight射频测试仪器与自动化接口概览
在射频自动化测试系统中,仪器本身只是执行者,真正决定系统能否稳定运行的是“控制通道”和“命令语言”这两层基础设施。Keysight(是德科技)的射频测试仪器——信号源、频谱分析仪、矢量网络分析仪、示波器——几乎都同时提供多种程控接口,并统一使用 SCPI(Standard Commands for Programmable Instruments)作为命令语言。理解接口的物理/协议差异与 SCPI 的语法结构,是搭建自动化测试平台的第一步。
一、四类核心射频仪器及其典型程控接口
不同仪器对接口的偏好并不相同,这与它们的数据吞吐量、实时性要求和历史演进有关。
- 信号源(如 N5182B MXG、E8267D PSG):主要下发频率、功率、调制、扫描等参数,数据量小、实时性要求中等。常见接口为 LAN(LXI)、GPIB、USB-TMC,部分支持 VXI-11。
- 频谱分析仪(如 N9020B MXA、N9040B UXA):需要回传大量迹线(trace)数据,单次扫描可能返回数万个点。LAN 是首选,GPIB 因带宽限制在高速采集场景下逐渐被替代。
- 矢量网络分析仪(如 E5080B、PNA 系列):S 参数扫描点数多、数据量大,且常需与外部开关矩阵协同。现代 VNA 普遍以 LAN 为主接口,GPIB 作为兼容保留。
- 示波器(如 Infiniium 系列):时域波形采样率高,单次采集数据量可达 MB 级,几乎全部依赖 LAN(部分型号支持 USB 3.0)。
从工程实践看,LAN 已成为新建射频自动化系统的默认接口,GPIB 更多用于维护老旧系统或对时序确定性要求极高的场合。
二、四种程控接口的定位与差异
GPIB(IEEE-488)是并行总线,一条总线最多挂 15 台设备,线缆长度受限,速率通常在 1 MB/s 量级,优势是成熟稳定、时序确定。LAN 基于 TCP/IP,速率可达百兆甚至千兆,支持长距离和网络化部署,是 LXI 标准的基础。USB 即插即用、成本低,USB-TMC 提供标准仪器控制协议,适合单机台面场景。VXI-11 是一种基于 ONC RPC 的 LAN 仪器控制协议,早期用于把 GPIB 风格的控制迁移到网络,现在多被更高效的 HiSLIP 或原始 socket 取代,但仍在部分 Keysight 仪器中保留兼容。
选择接口时可参考以下判断:需要多台仪器同步、长距离布线、大数据量回传,选 LAN;需要极低抖动触发、老旧系统兼容,选 GPIB;单台仪器快速搭建、无需网络,选 USB。
三、SCPI 命令基础:从“能连上”到“能控住”
SCPI 是一套树状层级的文本命令语言,命令头用冒号分隔层级,参数紧跟其后,查询在末尾加问号。例如设置信号源频率:
:SOURce:FREQuency 2.4GHz
:SOURce:POWer -10dBm
:OUTPut:STATe ON
查询当前频率则写 :SOURce:FREQuency?,仪器返回类似 +2.40000000E+09。SCPI 对大小写不敏感,但习惯上把可省略部分用小写表示,如 :SOUR:FREQ 是 :SOURce:FREQuency 的缩写。同一层级的多条命令可用分号连接:
:SOUR:FREQ 2.4GHz;:SOUR:POW -10dBm;:OUTP ON
此外,IEEE-488.2 定义了一组通用命令,以星号开头,如 *IDN? 查询仪器身份、*RST 复位、*OPC? 等待操作完成。这些命令在所有支持 SCPI 的仪器上通用,是编写自动化脚本时最常用的同步手段。
四、一个最小可用的控制示例
假设用 Python + PyVISA 通过 LAN 控制一台 N5182B 信号源,设置 2.4 GHz、-10 dBm 并开启输出,核心代码如下:
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource('TCPIP0::192.168.1.50::inst0::INSTR')
print(inst.query('*IDN?'))
inst.write(':SOUR:FREQ 2.4GHz')
inst.write(':SOUR:POW -10dBm')
inst.write(':OUTP ON')
inst.query('*OPC?') # 等待设置完成
print(inst.query(':SYST:ERR?')) # 检查错误队列
这里 TCPIP0::...::inst0::INSTR 是 VISA 资源地址,inst0 表示使用 HiSLIP 或 VXI-11 的仪器会话。执行后应返回 +0,"No error",表示命令被正确接受。若返回非零错误码,则需检查参数范围或命令拼写。
:SYST:ERR? 读取错误队列,是排查 SCPI 命令是否被仪器接受的最直接方法。错误队列为空时返回 +0,"No error"。
五、接口与命令的配合要点
接口决定“怎么连”,SCPI 决定“说什么”,两者配合时需注意:LAN 连接下要确认仪器 IP 与端口(通常 5025 为原始 socket,4880 为 VXI-11);GPIB 需设置正确的地址(0–30);USB 需安装 Keysight IO Libraries 并确认 USB-TMC 驱动。无论哪种接口,VISA 层都会把资源地址映射为统一的读写接口,因此同一段 SCPI 代码通常只需更换资源字符串即可在不同接口间迁移。