ATEUnitRemote的使用说明

ATEUnitRemote程序使用作为TCP服务器端,为产测程序提供了仪器接口。

使用ATEUnitRemote时,要在ATEUnit的程序文件夹中打开ATEUnitRemote,因为该程序依赖同目录下的库文件。

ATEUnitRemote的基本使用

打开后,ATEUnitRemote界面如下:

初始使用,先要进行配置。点击“Configuations”按钮进入配置界面。如下:

点击“Refresh”按钮,将刷新当前PC连接的仪器信息。

选择要使用的VST卡,并将进打勾选中。选中时,还可以配置该卡对应连接的NI 5541配置。如下:

配置完成后,点击“Save”按钮。界面关闭后,主程序加自动读取新配置。如果非点“Save”进行关闭,改动的配置将不保存。

配置将保存在ATEUnit目录中的ATEUnitRemote.xml文件中,每次启动时将自动加载该配置文件。

在程序的最下面状态栏中,将显示当前配置的VST卡和是否使用NI 5541。

点击“Start”将加载VST卡并启用服务,注意,其时不要有其它程序占用将使用的VST,不然后导致启动失败。

由于NI的VST卡的库比较大,在启动刚开始时,会不出现信息刷新,需要略等待一下,时间不会超过30s,将出现下面信息:

当整体启动完成后,将显示下面状态信息:

线损校准

为了更加准确的对设备进行测试,ATEUnitRemote提供了方便的线损校准工具,用于校正测试线路径的损耗。点击主界面的“Cable Loss”将打开该工具。需要注意的是,该工具测试时需要调用VST卡的功能,所以,要先打开(Start)服务。如果未打开服务,该工具只能查看目录下的校准文件,而无法进行新测试。

该工具有界面分为几个部分:

  • 最左上角,为文件操作区域,可加载、保存、删除校准文件。
  • 文件操作区域下面为端口选择区域,可选择VST卡、5541的端口,选择后,下面的表格将显示当前选中端口的内容。
  • 上面的中间为连接向导区域,用于指导在测试线损过程中,如何连接测试线。
  • 上面的右侧为日志区域,用于提示状态信息。
  • 下面的数据区域,用于显示和更改线损及相关功能。

线损的文件保存在ATEUnit目录的CableLoss子目录中,以cableloss_xxx.xml作为文件名,其中xxx为本程序下拉列表中显示的名称。

在数据区域的第一个Tab页中,显示线损数据:

第二个Tab页中,可以测试线损外的其它外部损耗:

在第三个Tab页中,有一些高级工具,目前提供了转发QDART线损文件的工具:

在最左上角的下拉列表中,将列出CableLoss目录下的所有线损文件:

选中线损文件后,点击“Load”将提示是否加载选中的线损文件:

线损加载后,如下图:

注意上图中,线损的tx和rx是相对于仪器而言的,而非DUT看上去的方向。

测试线损

在数据区域的第一个Tab页右侧,有一些测试选项可以配置。

  • Reset按钮将列表中的数据重置为WLAN的2.4G和5G所有用到的频点。
  • PowerDivider中,可配置要测试功分器的天线数量。
  • TestItems中,可配置测试项目。(建议不要改动)

注意:在测试过程中,需要始终使用一根射频馈线进行各个连接步骤,以保证准确的线损值。

选择对应的VST卡及5541端口后,点击“Start Test”可对其进行线损测试。

向导区域提示了你连线方式,连接好后,点击“Next”按钮。(需要注意的是,这里的NI VST中,下面的灰色方块表示VST卡SMA头连接的3dB衰减器,测量测试线线损时,需要去掉Out接口的3dB衰减器,保留In接口的3dB衰减器。)

测试过程中将不断刷新每个频点的值。

测试结束后,在向导区域将向你确认该值是否正确,如果测试过程中发现问题,可以点击“Retry”重新进行该项测试,如果没问题,点击“Next”进行下一项测试。

在测试“Tx”损减时,仍会先指导你连接射频线,连好后点击“Next”开始测试。

然后在测试过程中,会不断刷新测试数据。

在当前Ant的“Tx”损减时,也会向你确认。

当“Tx”损减测试完成后,还会测试“Rx”的损减。

在最后一部测试完成后,将退出测试模式。

此时,可以将测试数据进行保存。在左上的下拉列表中,选择或手动输入一个要保存的名称。

点击”Save“后,将提示你是否确认保存。

保存成功后,将在右测的日志区域显示信息。

测试线损的一些建议:

  1. 测试线损前先要校准5644R。先让5644R工作一段时间,让它的温度稳定下来,再使用VST Calibrate校准一下5644R。
  2. 先使用ATEUnitRemote中的CableLoss工具来测线损。UDT的IPEX到功分器SMA的衰减,通过CableLoss里的ExternalAtten来设置。

远程接口

ATEUnitRemote使用TCP连接,以Josn格式的数据作为调用接口,每条数据需以回车符作为结尾,数据的中间不允许出现换行和回车符。

ATEUnitRemote监听的端口默认为8082,也可以通过配置页面更改该端口。

Josn数据格式定义如下:

类型 内容 说明
调用 {”cmd“: string,
“data”:{
“unit”: int,
“port”: int,
“antenna”: int,
“standard”: string,
“bandwidth”: int,
“extBandOffset”: int,
“frequency”: double,
“frequency2”: double,
“rate”: int,
“mcs”: int,
“txpower”: double,
“refLevel”: double,
“averages”: int,
“count”: int,
“cableLossTable”: string,
“usingCableLoss”: bool
}}
cmd: 命令类型
unit: VST单元,一般为0或1
port: 5541的端口0-7,未使用5541可以为0
antenna: 功分器的天线1-8
standard: 协议标准,可以为b,a,g,ag,n,ac,ac1,ac2,ax
bandwidth: 带宽,为Hz
extBandOffset: 增加频率偏移,向低为-1,向高为1,0表示无
frequency: 工作中心频率
frequency2: 第二个中心频率
rate: 传统速率值
mcs: MCS速率
txpower: 发射功率,dBm
refLevel: 初始时测试用功率电平,可通过AutoLevel调整
averages: 使用几次测试结果进行平均
count: 发送时的包数量,0表示持续发送
cableLossTable: 在服务器端使用的线损
usingCableLoss: 是否在服务器端处理线损
返回 {”success“: bool,
“error”: string,
“errorCode”: int,
“data”:{
“serviceVersion”: string,
“instrument”: string,
“units”: array(string),
“portCount”: int,
“cableLossTables”: array(string),
“cableLossTable”: string,
“cableLoss”: object,
“evm”: double,
“power”: double,
“errorFrequency”: double,
“spectralMask”: double,
“usingLevel”: double,
“usingAtten”: string
}}
success: 是否执行成功
error: 错误信息
errorCode: 错误代码
serviceVersion: 服务器程序版本
instrument: 仪器型号
units: 仪器的测试单元列表
portCount: 仪器支持的测试端口数量
cableLossTables: 当前线损文件列表
cableLossTable: 当前使用的线损文件名称
cableLoss: 线损文件的内容
evm: EVM指标,dB
power: 接收到的功率,dBm
errorFrequency: 频率偏移, Hz
spectralMask: 频谱模板
usingLevel: 测试使用的refLevel,dBm,通过AutoLevel调整后的
usingAtten: 使用的衰减值

命令及数据定义:

命令 调用示例 返回示例
getInfo {“cmd”:“getInfo”} {“success”:true,“data”:{
“serviceVersion”:“1.0.0.0”,“instrument”:“NI-VST”,“units”:[“RIO0:0308BBCD”],“portCount”:8,“cableLossTables”:[“0622”,“0709”],“cableLossTable”:null}}
getCableLoss {“cmd”:“getCableLoss”,“data”:{
“cableLossTable”:“0709”}}
setCableLoss {“cmd”:“setCableLoss”,“data”:{
“cableLossTable”:“0709”,“usingCableLoss”:true}}
{“success”:true}
anaWlanIqMask {“cmd”:“anaWlanIqMask”,“data”:{
“unit”:0,“port”:0,“antenna”:3,“standard”:“n”,“bandwidth”:40000000,“extBandOffset”:0,“frequency”:5510000000.0,“frequency2”:0.0,“rate”:0,“mcs”:7,“txpower”:0.0,“refLevel”:20.0,“averages”:1,“count”:0}}
{“success”:true,“data”:{
“evm”:-38.4807911698221,“power”:19.416999600057455,“errorFrequency”:321.0109940393283,“spectralMask”:0.0,“usingLevel”:28.838206479719666,“usingAtten”:“7.88,26.8898774736328”}}
anaWlanPower {“cmd”:“anaWlanPower”,“data”:{
“unit”:0,“port”:0,“antenna”:3,“standard”:“n”,“bandwidth”:20000000,“extBandOffset”:0,“frequency”:5530000000.0,“frequency2”:0.0,“refLevel”:16.0,“averages”:1}}
{“success”:true,“data”:{
“power”:16.77307467995897,“usingLevel”:26.239985925584925,“usingAtten”:“7.66,26.6598112050781”}}
anaWlanFreqErr {“cmd”:“anaWlanFreqErr”,“data”:{
“unit”:0,“port”:0,“antenna”:4,“extBandOffset”:0,“frequency”:5500000000.0,“refLevel”:20.0,“averages”:1}}
{“success”:true,“data”:{
“errorFrequency”:-5630.6306304931641,“frequency”:5499994369.3693695}}
genWlanPacket {“cmd”:“genWlanPacket”,“data”:{
“unit”:0,“port”:0,“antenna”:0,“standard”:“n”,“bandwidth”:40000000,“extBandOffset”:0,“frequency”:2452000000.0,“frequency2”:0.0,“rate”:0,“mcs”:7,“txpower”:-63.0,“count”:200}}
{“success”:true,“data”:{
“usingAtten”:“9.13,36.9316345850545”}}
genWlanStop {“cmd”:“genWlanPacket”,“data”:{
“unit”:0,“port”:0}
{“success”:true}