频谱仪编程手册.docx
《频谱仪编程手册.docx》由会员分享,可在线阅读,更多相关《频谱仪编程手册.docx(15页珍藏版)》请在冰豆网上搜索。
频谱仪编程手册
E8000手持频谱仪
编程手册
Ver1.0
天津市德力电子仪器有限公司
地 址:
中国天津市南开区宜宾道40号
服务电话:
(022)27631088,27631288
传真:
(022)27645002
网 址:
电子邮件:
*******************.cn
1
编程指南
E8000手持频谱分析仪可以用标准网口进行远程操作,WorkBench提供了一个集成解决方案,它可以通过网络同时控制多台仪器,并且可以实现波形绘制,命令发送,报表生成等功能。
绝大部分在频谱仪上能操作的都在WorkBench上实现。
由于各种原因,用户可能仍然需要自己写软件控制E8000,本章的目的就是让这部分读者阅读以后可以自己写一个控制软件。
SCPI基础
1.1.1简介
E8000采用通用的SCPI(StandardCommandsforProgrammableInstruments)指令集作为控制指令,使用此指令集的优点是:
(1)字符串格式,方便理解
(2)通用性强,可以和大部分其他品牌,其他类型的仪器通用。
在使用其之前,首先必须了解它的语法,本文不会对SCPI的每个细节都做出介绍,若要查询详细资料,请参考:
IEEEStandard488.1-1987,IEEEStandardDigitalInterfaceforProgrammableInstrumentation.NewYork,NY,1998.
IEEEStandard488.2-1987,IEEEStandardCodes,Formats,ProtocolsandCommentCommandsforUsewithANSI/IEEEStd488.1-1987.NewYork,NY,1998.
1.1.2命令关键字和语法
一条典型的命令是由一些以冒号为分隔的关键字组成的,关键字后面可能还会有参数信息。
例:
SENSe:
FREQuency:
STARt1.5MHZ
指令并不区分大小写,在本文档中,大写的部分代表一个关键字的缩写。
一个关键字可以写成全称也可以写成缩写形式
例:
Sens:
Freq:
Star1.5mhz
例:
SENSE:
FREQ:
start1.5MHz
上面这两条指令实现的功能就是一样的。
注意下面的写法是错误的:
SENS:
FREQU:
STAR
因为FREQU既不是关键字的全称也不是缩写。
只有完整的全称或完整的缩写才能被识别。
1.1.3
创建有效的命令
由于命令是不区分大小写的,所以一条命令可能会有多种可能的表示方法,下面是有效的命令举例:
命令语法
有效命令
[SENSe:
]BANDwidth[:
RESolution]
Sense:
Band:
Res1700
sens:
band1.7KHZ
band1.7kHz
UNIT:
POWer?
Unit:
Pow?
UNIT:
POW?
uNIT:
POWER?
[:
SENSe]:
DETector[:
FUNCtion]NEGative|POSitive|SAMPle
DET:
FUNCneg
Detector:
FuncPos
INITiate:
CONTinuousON|OFF|1|0
INIT:
CONTON
init:
continuous1
1.1.4命令中的特殊字符
特殊
字符
含义
举例
|
竖线,代表‘或’的关系。
一种表示参数选择,表示有若干选择取其一。
选择不同的命令执行后会有不同的效果。
TRIGger[:
SEQuence]:
FIELdODD|EVEN
ODD和EVEN就是两种选择
比如TRIG:
FIELDODD就是一种选择
另一种表示一条命令可以有多种表达方式。
两种写法同时只能出现一次关键字
SENSe:
BANDwidth|BWIDth:
OFFSet
对上面的指令来说,下面的写法都是正确的SENSE:
BWIDTH:
OFFSET
SENSE:
BAND:
OFFSET
[]
[]内的关键字在整个命令字符串中是可省略的。
[SENSe:
]BANDwidth[:
RESolution]:
AUTO
对上面的指令来说,下面的写法都是正确的:
bandwidth:
auto
band:
resolution:
auto
sense:
bandwidth:
auto
<>
<>内的单词并不是像字面上表达的意思,他们描绘了参数信息
SENS:
FREQ
在这条命令里,应该被替换为实际的一个频率数值,比如:
SENS:
FREQ9.7MHz.
1.1.5
命令中的参数
有四种基本的参数类型:
布尔型,关键字,变量和二进制数。
(1)布尔型:
OFF|ON|0|1
布尔型表示一个二值化数值,数字0等效于字符串OFF,数字1或任何非零的数字等效于ON。
查询时将返回ON或OFF
例:
BWIDth:
VIDeo:
AUTOON表示将VBW自动置为有效。
(2)关键字型:
在每个特定的命令里,都有特定的关键字。
下面的特殊的关键字也可以用到部分命令里,但不是所有的命令都支持
•UP–增大参数数值
•DOWN–减小参数数值
(3)变量
数值型的变量可能是带单位的。
使用哪个单位取决于变量的类型(下文中描述)。
如果没写单位,系统会识别为默认单位。
单位和数字之间可以有也可以没有空格。
参数
含义
类型
单位
默认
普通整数
整型数
---
---
普通小数
浮点数
---
---
频率
有理数
Hz,kHz,MHz,GHz.
Hz
带宽
正有理数
Hz,kHz,MHz,GHz.
Hz
时间
正有理数
s,ms,us,ns
ns
幅度
正有理数
dBm,dBmV,dBuV,mV
dBm
相对幅度
有理数
dB
dB
百分百
0-100
PCT
PCT
字符串
字符串
---
---
(4)二进制数
以类型代表二进制数。
取名二进制数据是区别于上三种,上三种都是可见字符。
而当传波形数据都情况下,直接传送二进制数不仅提高传输效率,也利于编程解析。
二进制数类型数据中以“#”开头,后面还有若干可见字符。
例:
#512320开头,
5代表后面有5个ASSIC字符
12320代表后面有12320个二进制数据
控制方法
1.1.6连接方法
计算机与E8000相连可以有两种方式,一种通过交叉网线直接相连,另一种就是通过将计算机和E8000都通过直通网线连接到一个以太网内。
图:
121直接与计算机相连
图:
12在以太网内连接
在网线制作时,EIA/TIA的布线标准中规定了两种双绞线的线序:
568B与568A。
序号
标准568A
标准568B
1
绿白
橙白
2
绿
橙
3
橙白
绿白
4
蓝
蓝
5
蓝白
蓝白
6
橙
绿
7
棕白
棕白
8
棕
棕
直通网线的两头线序相同,即都是568A或者都是568B;交叉网线一头为568A,一头为568B。
即1和3互换,2和6互换。
网线
交叉线
1<---->1
1<---->3
2<---->2
2<---->6
3<---->3
3<---->1
4<---->4
4<---->4
5<---->5
5<---->5
6<---->6
6<---->2
7<---->7
7<---->7
8<---->8
8<---->8
上面是最简单的一一连接方式,实际上,一台计算机可以连接多台E8000,一台DSA8853也可以与多台计算机连接,这样就可以组成网状拓扑结构。
图:
13网络拓扑
1.1.7命令说明
发送和接收的命令都以回车换行为结束标记,对应的二进制码为0x0d,0x0a
例:
发送取得序列号命令*IDN?
实际应该发送*IDN?
/0x0d/0x0a共7个字符。
在命令中,有?
的都是有返回值的,否则都是控制语句。
在编程时采用标准SOCKET通讯即可,值得注意的是某些大数据量的传输,比如TRACe?
,取得当前一场波形数据,返回501个点的float型数据,加上文件头#42004和文件尾0x0d0x0a共2012个字节。
在网络传输上通常MTU(最大传输单元)被设置为1500字节。
此时这个数据就会被拆成两个包,计算机上的编程人员应考虑包合并的问题。
频谱分析模式命令列表
1.1.8频率
命令
含义
输入/输出
[SENSe:
]FREQuency:
CENTer
设置中心频率
频率值
[SENSe:
]FREQuency:
CENTer?
读取中心频率
频率值
[SENSe:
]FREQuency:
STARt
设置起始频率
频率值
[SENSe:
]FREQuency:
STARt?
读取起始频率
频率值
[SENSe:
]FREQuency:
STOP
设置终止频率
频率值
[SENSe:
]FREQuency:
STOP?
读取终止频率
频率值
[SENSe:
]FREQuency:
CENTer:
STEP
设置中心频率步进
频率值
[SENSe:
]FREQuency:
CENTer:
STEP?
读取中心频率步进
频率值
[SENSe:
]FREQuency:
CENTer:
STEP:
AUTO
设置频率步进自动与否
ON|OFF
代表自动|手动
[SENSe:
]FREQuency:
CENTer:
STEP:
AUTO?
读取频率步进自动与否
ON|OFF
代表自动|手动
[SENSe:
]FREQuency:
CENTer
步进设置中心频率
UP|DOWN
代表增大|减小
[SENSe:
]FREQuency:
SPAN
设置带宽
频率值
[SENSe:
]FREQuency:
SPAN?
读取带宽
频率值
[SENSe:
]FREQuency:
SPAN:
FULL
设置频谱分析仪为全带扫宽
---
[SENSe:
]FREQuency:
SPAN:
PREVious
前次扫宽
---
例1:
设置中心频率为300.33MHz
命令:
FREQ:
CENT300.33MHz
例2:
读取频率步进是否为自动
命令:
FREQuency:
CENTer:
STEP:
AUTO?
返回值:
ON
代表自动
1.1.9幅度
命令
含义
输入/输出
DISPlay:
WINDow:
TRACe:
Y[:
SCALe]:
RLEVel
设置参考电平值
幅度值
DISPlay:
WINDow:
TRACe:
Y[:
SCALe]:
RLEVel?
读取参考电平值
幅度值
UNIT:
POWerDBM|DBMV|DBUV|V|MV|UV|NV
设置参考电平的单位
字符串
UNIT:
POWer?
读取参考电平的单位
字符串
[:
SENSe]:
POWer[:
RF]:
ATTenuation
设置衰减器数值
dB值
[:
SENSe]:
POWer[:
RF]:
ATTenuation?
读取衰减器数值
dB值
[:
SENSe]:
POWer[:
RF]:
ATTenuation:
AUTO
设置衰减器自动与否
ON|OFF
代表自动|手动
[:
SENSe]:
POWer[:
RF]:
ATTenuation:
AUTO?
读取衰减器自动与否
ON|OFF
代表自动|手动
[:
SENSe]:
POWer[:
RF]:
GAIN[:
STATe]
设置前置放大器开关
ON|OFF
代表打开|关闭
[:
SENSe]:
POWer[:
RF]:
GAIN[:
STATe]?
读取预放大器开关状态
ON|OFF
代表打开|关闭
DISPlay:
WINDow:
TRACe:
Y[:
SCALe]:
SPACingLOGarithmic|LINear
设置刻度为线性或对数
字符串
命令
含义
输入/输出
DISPlay:
WINDow:
TRACe:
Y[:
SCALe]:
SPACing?
读取刻度为线性或对数形式
字符串
DISPlay:
WINDow:
TRACe:
Y[:
SCALe]:
PDIVision
设置单位/格
单位/格
DISPlay:
WINDow:
TRACe:
Y[:
SCALe]:
PDIVision?
读取单位/格
单位/格
DISPlay:
WINDow:
TRACe:
Y:
[SCALe]:
RLEVel:
OFFSet:
STATe
设置参考电平开关
ON|OFF
代表打开|关闭
DISPlay:
WINDow:
TRACe:
Y:
[SCALe]:
RLEVel:
OFFSet:
STATe?
读取参考电平开关
ON|OFF
代表打开|关闭
DISPlay:
WINDow:
TRACe:
Y:
[SCALe]:
RLEVel:
OFFSet
设置参考电平偏移量
dB值
DISPlay:
WINDow:
TRACe:
Y:
[SCALe]:
RLEVel:
OFFSet?
读取参考电平数值
dB值
[:
SENSe]:
IMPedance?
读取OHM数
75|50
例1:
设置参考电平为73.6dBuV
命令:
DISP:
WIND:
TRAC:
Y:
RLEV73.6dBuV
例2:
设置为线性模式
命令:
DISP:
WIND:
TRAC:
Y:
SPACLOG
例3:
读取衰减器
命令:
POW:
ATT?
返回值:
10
代表当前衰减器为10dB
1.1.10CPL(RBW,VBW,扫描时间,平均,自动)
命令
含义
输入/输出
[SENSe:
]BANDwidth|BWIDth[:
RESolution]
设置RBW
带宽值
[SENSe:
]BANDwidth|BWIDth[:
RESolution]?
读取RBW
带宽值
[SENSe:
]BANDwidth|BWIDth[:
RESolution]:
AUTO
设置RBW自动与否
ON|OFF
代表自动|手动
[SENSe:
]BANDwidth|BWIDth[:
RESolution]:
AUTO?
读取RBW自动与否
ON|OFF
代表自动|手动
[SENSe:
]BANDwidth|BWIDth:
VIDeo
设置VBW
带宽值
[SENSe:
]BANDwidth|BWIDth:
VIDeo?
读取VBW
带宽值
[SENSe:
]BANDwidth|BWIDth:
VIDeo:
AUTO
设置VBW自动与否
ON|OFF
代表自动|手动
[SENSe:
]BANDwidth|BWIDth:
VIDeo:
AUTO?
读取VBW自动与否
ON|OFF
代表自动|手动
[SENSe:
]SWEep:
TIME
设置扫描时间
时间值
[SENSe:
]SWEep:
TIME?
读取扫描时间
时间值
[SENSe:
]SWEep:
TIME:
AUTO
设置扫描时间自动与否
ON|OFF
代表自动|手动
[SENSe:
]SWEep:
TIME:
AUTO?
读取扫描时间自动与否
ON|OFF
代表自动|手动
INITiate:
CONTinuous
设置单次扫描与否
ON|OFF
代表连续|单次
命令
含义
输入/输出
INITiate:
CONTinuous?
读取单次扫描与否
ON|OFF
代表连续|单次
[SENSe:
]AVERage[:
STATe]
设置视频平均开关与否
ON|OFF
代表开|关
[SENSe:
]AVERage[:
STATe]?
读取视频平均开关与否
ON|OFF
代表开|关
[SENSe:
]AVERage:
COUNt
设置视频平均次数
平均次数
[SENSe:
]AVERage:
COUNt?
读取视频平均次数
平均次数
COUPleALL|NONE
设置全自动与否
ALL|NONE
代表全自动|非自动
COUPle?
读取全自动与否
ALL|NONE
代表全自动|非自动
SPECtrum:
CAPTure
设置快速扫描模式是否打开
ON|OFF
代表快速|普通扫描
SPECtrum:
CAPTure?
读取频谱捕捉模式是否打开
ON|OFF
代表快速|普通扫描
例1:
设置RBW为300KHz
命令:
BWIDth300KHz
例2:
读取当前扫描时间
命令:
SWEEP:
TIME?
返回值:
20000000
代表当前扫描时间为20ms
例3:
设置扫描时间为1.5s
命令:
SWEEP:
TIME1.5s
例4:
读取视频平均是否打开
命令:
AVER?
返回值:
OFF
代表平均关闭
例5:
将RBW,VBW,扫描时间设置为自动
命令:
COUPLeALL
1.1.11
检波方式、触发方式、解调
命令
含义
输入/输出
[SENSe:
]DETector[:
FUNCtion]POSitive|NEGative|SAMPl|AVERage|NORMAL
设置检波方式
代表正峰值|负峰值|采样值|平均值|普通值
[SENSe:
]DETector[:
FUNCtion]?
读取检波方式
POSitive|NEGative|SAMPl|AVERage|NORMAL
TRIGger[:
SEQuence]:
SOURceIMMediate|VIDeo|LINE
设置触发方式
代表自由触发|视频触发|行触发
TRIGger[:
SEQuence]:
SOURce?
读取触发方式
IMMediate|VIDeo|LINE
TRIGger[:
SEQuence]:
VIDeo:
LEVel
设置视频触发电平百分比
百分比
命令
含义
输入/输出
TRIGger[:
SEQuence]:
VIDeo:
LEVel?
读取视频触发电平百分比
百分比
TRIGger[:
SEQuence]:
SLOPePOSitive|NEGative
设置视频触发方式
代表上升沿|下降沿
TRIGger[:
SEQuence]:
SLOPe?
读取视频触发方式
POSitive|NEGative
TRIGger[:
SEQuence]:
STANdardPAL|NTSC
设置行触发制式
代表PAL|NTSC标准
TRIGger[:
SEQuence]:
STANdard?
读取行触发制式
PAL|NTSC
TRIGger[:
SEQuence]:
FIELdODD|EVEN
设置行触发场
代表奇数场|偶数场
TRIGger[:
SEQuence]:
FIELd?
读取行触发场
ODD|EVEN
TRIGger[:
SEQuence]:
LINE
设置行触发行
行数
TRIGger[:
SEQuence]:
LINE?
读取行触发行
行数
DEModeAM|FM
设置解调方式
代表调幅|调频
DEMode?
读取解调方式
AM|FM
DEMode:
FMGain
设置调频增益
频率值
DEMode:
FMGain?
读取调频增益
频率值
例1:
设置检波方式为采样值检波
命令:
DETector[:
FUNCtion]SAMPl
例2:
读取当前触发方式
命令:
TRIGger[:
SEQuence]:
SOURce?
返回值:
IMMediate
代表当前触发方式为自由触发
例3:
设置行触发在第17行
命令:
TRIGger:
LINE17
注意:
设置触发行必须首先是行触发方式,否则此语句不起作用。
类似的上一级单词(如TRIGer)的内容若未设置,本次设置(LINE)可能不起作用。
下同。
1.1.12轨迹
命令
含义
输入/输出
TRACe[:
DATA]?
读取轨迹数据
不同模式输出不同,但每个数据都为float型(4字节)
模式
字节头
总长度
含义
频谱
#41684
1692
421个点的幅度数据,单位同参考电平