2. R&S测试仪表与通信测试基础
在搭建R&S通信测试自动化平台之前,必须先弄清楚一件事:我们到底在控制哪些仪表,它们各自负责什么,以及平台通过什么方式与它们对话。R&S(Rohde & Schwarz)的测试仪表种类很多,但在通信测试自动化中最常打交道的核心仪表主要有三类:矢量信号发生器(VSG)、频谱分析仪(SA)和无线通信测试仪(如CMW系列)。它们分别承担“产生信号”“分析信号”和“综合测试终端”的角色,理解这三者的功能定位,是后续编写自动化脚本、设计测试用例的基础。
三类核心仪表的功能定位
矢量信号发生器(Vector Signal Generator,VSG)的核心任务是产生可控的射频信号。与普通信号源只输出正弦波不同,VSG能够生成带有幅度和相位信息的调制信号,例如QPSK、16QAM、OFDM等数字调制波形。在自动化测试中,VSG通常作为“激励源”,为被测设备(DUT)提供符合标准(如5G NR、LTE、WLAN)的输入信号。以R&S SMBV100B或SMW200A为例,平台需要控制的关键参数包括:中心频率(如3.5 GHz)、输出功率(如-20 dBm)、调制方式、带宽、以及加载的波形文件。VSG的自动化控制重点在于“精确设定信号参数并稳定输出”。
频谱分析仪(Spectrum Analyzer,SA)则相反,它负责“看”信号。SA测量信号在频域上的功率分布,能够显示载波功率、邻道泄漏比(ACLR)、杂散、谐波等关键指标。在自动化平台中,SA常作为“分析仪”使用,例如测量DUT发射信号的频谱模板是否符合标准。R&S FSW或FSV系列频谱仪支持多种测量应用,平台通过SCPI指令设置中心频率、扫宽(Span)、分辨率带宽(RBW)、参考电平(Ref Level)等参数,然后读取迹线数据或自动测量结果。SA的自动化重点在于“正确配置测量参数并可靠读取结果”。
无线通信测试仪(Wireless Communications Tester),以R&S CMW500/CMX500为代表,是集成了信号发生和分析能力的综合测试平台。它既能模拟基站(下行信号),又能分析终端发射信号(上行信号),还能进行信令交互和端到端吞吐量测试。在自动化测试中,CMW系列通常用于手机、模组等终端的射频一致性测试和功能测试。平台通过SCPI控制CMW建立呼叫、配置测量项(如功率、EVM、频率误差)、读取测量结果。CMW的自动化控制最为复杂,因为它涉及信令状态机和多测量项并行。
SCPI指令体系:仪表远程控制的通用语言
SCPI(Standard Commands for Programmable Instruments)是通信测试仪表远程控制的事实标准。它定义了一套基于ASCII文本的指令语法,通过物理接口(LAN、USB、GPIB)传输。理解SCPI的层次结构,是编写自动化控制代码的前提。
SCPI指令采用树状层次结构,用冒号分隔层级。以设置频谱分析仪中心频率为例:
:SENSe:FREQuency:CENTer 3500000000
这条指令的含义是:进入SENSe子系统,选择FREQuency分支,设置CENTer参数为3.5 GHz(单位Hz)。SCPI指令分为两类:设置指令(不带问号)用于配置参数,查询指令(带问号)用于读取参数或测量结果。例如:
:SENSe:FREQuency:CENTer? // 查询中心频率,返回 3.500000E+09
:READ:ACPower? // 读取邻道功率测量结果
:SOURce:FREQuency:CW 3500000000 // VSG设置连续波频率
:SOURce:POWer:LEVel:IMMediate:AMPLitude -20 // VSG设置输出功率 -20 dBm
在实际自动化平台中,通常不会直接拼接字符串发送SCPI,而是使用厂商提供的驱动库或VISA(Virtual Instrument Software Architecture)接口。R&S提供了VISA库和Python、C#等语言的示例代码。一个典型的Python控制流程如下:
import pyvisa
rm = pyvisa.ResourceManager()
# 通过LAN连接SMW200A,地址为仪表IP
vsg = rm.open_resource('TCPIP::192.168.1.100::INSTR')
vsg.timeout = 5000
# 设置频率3.5GHz,功率-20dBm
vsg.write(':SOURce:FREQuency:CW 3500000000')
vsg.write(':SOURce:POWer:LEVel:IMMediate:AMPLitude -20')
vsg.write(':SOURce:MODulation:STATe ON')
# 查询实际输出功率
actual_power = vsg.query(':SOURce:POWer:LEVel:IMMediate:AMPLitude?')
print(f"VSG输出功率: {actual_power.strip()} dBm")
这段代码展示了自动化平台与仪表交互的基本模式:打开资源、发送设置指令、查询状态、关闭连接。需要注意的是,不同仪表的SCPI指令集存在差异,例如CMW500的信令控制指令与VSG的波形设置指令完全不同,平台需要针对每种仪表封装对应的驱动类。
远程控制接口与连接方式
R&S仪表支持多种远程控制接口,选择哪种接口直接影响自动化平台的稳定性和速度。常见接口对比如下:
| 接口类型 | 典型速率 | 适用场景 | 注意事项 |
|---|---|---|---|
| LAN(TCP/IP) | 100 Mbps ~ 1 Gbps | 平台与仪表距离较远、多仪表组网 | 需固定IP,注意防火墙和端口设置 |
| USB(TMC) | 480 Mbps(USB 2.0) | 单台仪表直连、便携测试 | 需安装VISA驱动,资源地址动态变化 |
| GPIB(IEEE-488) | 8 Mbps | 老旧仪表、高可靠性场景 | 需GPIB卡,线缆笨重,逐渐被替代 |
在自动化平台开发中,推荐优先使用LAN接口,因为它支持多台仪表同时连接,且可以通过交换机灵活组网。使用LAN时,需要在仪表端配置静态IP,并在平台端通过VISA资源地址(如TCPIP::192.168.1.100::INSTR)建立连接。如果仪表支持HiSLIP或VXI-11协议,还可以获得更好的同步性能。
从仪表控制到测试任务
理解了三类仪表的功能定位和SCPI控制方式后,就可以把它们组合成完整的测试任务。例如,一个典型的发射机测试流程可能是:VSG产生标准上行信号→DUT接收并处理→DUT发射信号→SA或CMW分析发射信号质量→平台读取EVM、ACLR、频率误差等结果并判断是否通过。在这个过程中,平台需要协调多台仪表的时序,确保信号稳定后再触发测量。
实际开发中,还需要注意SCPI指令的同步问题。设置指令发送后,仪表需要一定时间才能稳定输出或完成测量。常用的同步方法是使用*OPC?查询或*WAI指令,确保上一条指令执行完毕后再发送下一条。例如:
vsg.write(':SOURce:FREQuency:CW 3500000000')
vsg.write('*OPC?')
vsg.read() # 阻塞等待,直到频率切换完成
此外,R&S仪表通常支持状态寄存器(Status Byte、Standard Event Status)来报告错误和完成事件。平台可以通过*ESR?查询标准事件状态,或使用SYSTem:ERRor?读取错误队列,及时发现配置错误或硬件异常。这些机制是构建稳定自动化平台的重要保障。
总结来说,矢量信号发生器负责“发”,频谱分析仪负责“收”,无线通信测试仪负责“综合测”。SCPI是控制它们的通用语言,VISA是连接它们的桥梁。掌握这三类仪表的功能边界和SCPI指令的基本用法,就具备了开发R&S通信测试自动化平台的核心基础。