我们经常被问到我们的频谱分析仪是否支持SCPI编程。答案是肯定的!
SCPI是什么?
SCPI代表“可编程仪器的标准命令”,它用于控制测试仪器的编程“语言”。它提供了通用的语法,
命令结构和数据交换格式,可在多个SCPI兼容的测试和测量仪器中使用。命令是层次化的,它是基于
容易理解的英语语法结构。SCPI命令通过许多接口(通常是GPIB,VXI,USB,以太网等)发送到仪器。
SCPI旨在为测试系统程序员提供用于编写测试仪器自动化脚本的标准化环境,从而通过消除学习新的
专有软件语法的需要来缩短实施时间。
Signal Hound通过其Spike软件使用SCPI兼容性命令为其频谱分析仪提供远程接口和控制功能。我们的Spike软件
使用通用的图形用户界面(GUI)提供对所有Signal Hound频谱分析仪的控制,以提供高级的信号分析测量和显示。
通过TCP/IP协议将SCPI命令发送到Spike,可以对其进行远程操作。您可以通过任何VISA实现或允许SOCKET编程
的任何编程语言连接和交互Spike软件。
设置VISA套接字连接
Spike软件将接受单个网络连接,在该网络中它可以接收SCPI命令并发送响应。通过TCP / IP端口可连
接Spike软件来执行仪器控制,在此端口上,用户可以发送和接收原始SCPI命令,不需要使用VISA之
类的I/O库与Spike软件进行通信,但是可以简化多个操作。使用套接字编程可以直接在套接字上进
行通信。与Spike软件通信的计算机不必运行Spike软件,也不必是Windows平台。
图1 使用C ++和VISA的自动相位噪声测量
如果可以,建议使用VISA库。VISA的几种实现方式,常用的选项包括Keysight的I/O库和NI的VISA库。您还可以
使用其他语言/环境(例如MATLAB,LabVIEW和Python)中存在的VISA实现。
使用VISA连接到套接字接口如下所示:
viOpen(rm, “TCPIP::localhost::5025:SOCKET”, VI_NULL, VI_ NULL, &inst);
此外,在使用VISA库时,必须将VI_ ATTR_TERMCHAR_EN属性设置为真实。当接收到终止符时,将终止读取操作。
如果默认情况下未设置终止符,则应将其设置为换行符(\ n)。代码如下:
viSetAttribute(inst, VI_ATTR_TERMCHAR_EN, VI_TRUE);
viSetAttribute(inst, VI_ATTR_TERMCHAR, ‘\n’);
一次只能与Spike软件建立一个连接。可以通过关闭套接字连接来终止连接,也可以通过使用的套接字库,通过
viClose函数(如果使用的是VISA库)或通过关闭应用程序来终止。当前一个套接字结束时,Spike将立即开始
等待另一个套接字连接。
支持的SCPI命令
Spike当前的SCPI命令集涵盖了Spike软件中最常见的频谱分析仪/接收机功能。
图2 可将远程命令发送到设备,例如* IDN?标识当前连接的频谱分析仪的命令
下表详细说明了当前SCPI命令集涵盖的功能。后续会继添加其他功能。如果没有您所需要的功能,
请通过aj@signalhound.com与我们联系以提出要求。
表1 当前Signal Hound SCPI命令(2018年秋)
Functionality 功能 |
是否支持 |
Swept Analysis – Sweep Settings 扫描分析–扫描设置 |
是 |
Swept Analysis – Trace controls 扫描分析–跟踪控件 |
是 |
Swept Analysis – Marker controls 扫频分析–标记控件 |
是 |
Swept Analysis – Channel power, occupied bandwidth 扫频分析–信道功率,占用带宽 |
是 |
Swept Analysis – Channel power, occupied bandwidth 扫频分析–信道功率,占用带宽 |
是 |
Swept Analysis – Peak table 扫描分析–峰值表 |
否 |
Swept Analysis – Sweep recording/playback 扫频分析–扫频记录/播放 |
否 |
Path Loss Tables 路径损耗表 |
否 |
Limit Lines 极限线 |
是 |
Spectrogram/Waterfall plot controls 频谱图/瀑布图控件 |
否 |
Persistence display controls 持久性显示控件 |
否 |
Real-Time (Since real-time shares several controls with swept analysis, any functionality provided for swept analysis will be available for real-time measurement mode) 实时(由于实时与扫频分析共享多个控件,因此为扫频分析提供的任何功能将可用于实时测量模式) |
部分支持 |
Zero-Span 零跨度 |
否 |
Harmonic Measurements 谐波测量 |
是 |
Scalar Network Analysis 标量网络分析 |
是 |
Phase Noise Measurements 相位噪声测量 |
是 |
Digital Modulation Analysis 数字调制分析 |
是 |
EMC Pre compliance EMC预合规 |
否 |
Analog Demodulation 模拟解调 |
是 |
Interference Hunting 干扰搜寻 |
否
|
编程选择
所有Signal Hound频谱分析仪,包括SM200,BB60,SA44和SA124,都可以使用三种方法进行编程
(图3)。前两个通过Spike软件
在本地或通过Internet远程使用SCPI命令,第三是通过使用特定于设备的本地API进行快速,直接的
API编程。所有Signal Hound频谱分析仪均免费提供API。
由于SCPI命令使用TCP/IP套接字连接,因此您可以从任何PC /操作系统控制Spike软件。例如,Windows PC运行
Spike,但是Windows PC上Spike的远程控制可以在Linux或Apple系统上进行。使用Signal Hound提供的特定设
备的API进行的传统编程仍可用于快速直接的设备控制。特定设备的API使用C接口,并且可以从大多数现代编程语
言和环境(例如C / C ++,C#,Python,Java,LabVIEW和MATLAB)中调用这些函数。
图3 可以使用三种方法对Signal Hound频谱分析仪进行编程:前两种方法是通过Spike软件在本地或通过Internet远程
使用SCPI命令。第三种方法是通过使用特定于设备的本地API进行快速,直接的API编程
欲了解更多信息
Signal Hound软件开发套件(SDK)包括使用SCPI来自动执行Spike软件的几个测量过程的示例程序。
这些程序可以为您构建自定义程序提供基础,以使Signal Hound频谱分析仪更加自动化。
Spike的SCPI功能可作为Spike软件下载的一部分立即免费获得。Spike SCPI编程手册和示例作为Signal Hound
SDK的一部分提供。该手册介绍了SCPI命令的基础知识,如何开始对Spike软件进行编程,并介绍了Spike软件实
现的完整SCPI命令集。随着Spike软件的发展,SCPI命令将会随着改变。建议在通过SCPI控制的安装中更新Spike时,
请查看版本说明并确定是否需要更新任何功能。