基于远程频谱仪通信的测试系统设计
2021-03-24李继秀田易孟真张兴成钟燕清刘谋
李继秀 田易 孟真 张兴成 钟燕清 刘谋
(中国科学院微电子研究所,北京 100029)
0 引言
目前基于的数据采集及分析都是针对数字信号,对于模拟信号的性能分析,只能依靠一些外在工具如频谱仪,手动进行设置及观察,或者硬件再加一级A/D 转换器生成数字信号,从而进行数据采集及后续分析。这不利于实现真正应用中的尤其批量产品模拟信号的自动化测试,另外对于批量产品中的模拟信号的一些性能指标,也很难直接定量化评判和测试。频谱分析仪,作为一类不可或缺的频域测量和分析仪器,多用来研发通信器件设备,或是检测和分析科研环境的信号。频谱分析仪的功能强大,可以将信号从时域变换到频域得到时域所没有的一些特性分析,比如频率、功率、噪声等[1]。本测试系统通过VC软件设计的友好界面能够灵活控制M AT L AB 远程控制频谱仪,获取频谱仪数据进行保存和分析,从而对产品输出的模拟信号进行定量化评判和测试。
1 系统原理及组成
1.1 系统框架
本系统总体架构如图1 所示。
1.2 系统工作原理
主机一方面控制嵌入式设备产生模拟信号并通过专用线缆把模拟信号传送到频谱仪;另一方面主机远程控制频谱仪进行参数设置以及数据获取并在获取频谱仪数据以后对该数据进行保存及分析并进行图形化显示,从而完成对模拟信号的性能指标进行定量化评判和测试。
2 系统硬件架构
本系统硬件架构如图2所示,硬件主要包含嵌入式设备(产生模拟信号)、罗德施瓦茨频谱仪、上位机三个部分。主机通过串口控制嵌入式设备产生所需模拟信号;嵌入式设备通过专用数据线缆与频谱仪通信;主机通过网口控制频谱仪进行参数传递以及数据获取。
3 系统软件架构
3.1 VC调用MATLAB软件设计
3.1.1 界面设计
上位机通过简单界面程序,设置起始频率、终止频率、参考电平等参数传递给M A T L A B 程序,M A T L A B 通过VISA库对频谱仪进行设置,并采集频谱仪显示的信号频谱功率值,进行SNR、SFDR的计算,并进行图形化显示。
3.1.2 代码设计
(1)MATLAB通过VC编译器生成DLL文件。1)设置编译器:Mex setup设置VC编译器进行文件编译。2)生成DLL文件:MCC W CPPLIB:MYLIB T LINK:LIB MY.M;在文件目录下生成MYLIB.lib,MYLIB.dll,MYLIB.h。
(2)VC调用MATLAB。首先需要把(1)中生成的三个文件拷贝到当前V C 工程目录下。
1)VC路径设置
头文件路径需要包括当前工程路径及MATLAB的Bin下面的INCLUDE路径;库函数路径需要包括当前工程路径及MATLAB的LIB路径;另外需要在当前的工程链接里加入五个库文件,四个为MATLAB库文件,mclmcr.lib,mclmcrrt.lib,libmat.lib,libmx.lib,另一个为(1)中所生成的库文件[2]。
2)代码链接库文件
图1 系统框架Fig.1 System framework
图2 上位机界面Fig.2 Upper computer interface
#pragma comment(lib,"mclmcrrt.lib")
#pragma comment(lib,"libmx.lib")
#pragma comment(lib,"libmat.lib")
#pragma comment(lib,"mclmcr.lib")
3)初始化MA TLA B调用
libvc_matlab_fswInitialize()
4)设置参数并调用M AT L AB 远程频谱仪
mwArray startFrq(1,1,mxDOUBLE_CLASS);创建起始频率数组
mwArray stopFrq(1,1,mxDOUBLE_CLASS);创建终止频率数组
startFrq.SetData(&(stafrq),1);起始频率赋值
stopFrq.SetData(&(stpfrq),1);终止频率赋值
vc_matlab_fsw(startFrq,stopFrq,varef,stringTemp,brbw,bvbw,vaSapoint);调用MATLAB进行通信
5)结束MATL AB调用
libvc_matlab_fswTerminate();
mclTerminateApplication();
3.2 MATLAB调用频谱仪软件设计
(1)频谱仪远程通信架构。可以与频谱仪进行远程通信的软件比较多,比较成熟的有MA TL AB,C#,L ABV IE W 和CV I。该软件采用MATLAB 软件平台实现与频谱仪的通信,这里对操作系统、MATLAB版本、还有IO库都有比较高的要求,要求如下:
MATLAB 2013或者更高版本
WindowsXP/VISTA/WIN7(WIN 7 64bit)
NI VISA I/O library 15.0或者更高。
该软件采用的MATLAB 2014 a ,WindowsXP操作系统,NI VISA I/O library 15.5,接口采用LAN,通信协议采用TCPIP协议[3]。
(2)MATLAB远程频谱仪设计。上位机MATLAB平台通过VXI-11 Protocol来对IO库VISA进行访问。MATLAB通过VISA与频谱仪的通信是基于信息的同步模式,除非上位机要求,否则频谱仪对上位机MATLAB 的命令不会回复,通信的命令架构为SCPI(short for Simple Commands for Programmable Instruments)[4]。
(3)代码设计
1)远程连接
specan=VISA_Instrument(['TCPIP::',ip,'::INSTR'])
idnResponse=specan.QueryString('*IDN?');
2)频谱仪的初始化
specan.Write('*RST;*CLS'); 复位频谱仪,清除错误队列
specan.Write('SYST:DISP:UPD ON');启动更新设置
3)频谱仪的参数设置
specan.Write('FREQ:START %0.9f',startfrq);设置起始频率specan.Write('FREQ:STOP %0.9f',stopfrq);设置停止频率
specan.Write('BAND %f', rbw);设置分辨率RBW
specan.Write('DISP:WIND:TRAC:Y:RLEV %0.2f',ref);
specan.Write('SWE:POIN %d',swpoint);设置扫描点数
4)启动扫描
specan.Write('INIT');
5)获取扫描点功率及转换为ASCii码值
traceASC=specan.QueryASCII_ListOfDoubles('FORM ASC;:TRAC? TRACE1',sweepPoints);
6)利用扫描点计算SNR、SFDR
spectp=10.^(traceASC/10);转换为原始功率值
Ps= sum(spectp(F_in-span:F_in+span));计算信号功率值
p=sum(spectp(10: stopfrq));计算全频带功率值
Pc=max(max(traceASC(10:F_in-span)),
max(traceASC(F_in+span:N)));
SFDR =max_dB-Pc;
Pn=p-Ps;
SNR=10*log10(Ps/Pn);
7)获取频谱仪频谱图片并保存
specan.Write('HCOP:DEV:LANG
PNG;:MMEM:NAME ''c:TempDevice_Screenshot.png''');设置屏幕拷贝
specan.Write('HCOP:IMM');屏幕拷贝
4 优势
4.1 系统的灵活的可操作性和可配置性
由于VC采用可视化的集成开发环境(IDE),在工程应用中,可以实现人机交互界面、数据采集和实时监控等。其友好的界面便于客户操作,其较高的开发效率比较易于工程师上手。在该系统中可以通过操作界面,灵活进行MATLAB、频谱仪参数配置,并对结果进行可视化界面显示。
4.2 系统强大的数据分析及绘图能力
在该系统中借助MATLAB平台远程频谱仪,MATLAB具有强大的计算绘图能力,并提供了大量的函数库,几乎涵盖了所有的工程计算领域,所以在数据处理分析、算法工具和绘制数据图形等方面,该测试系统具有强大的工程科学计算能力和绘图能力。
4.3 模拟信号性能的定量化评判和测量
目前基于的数据采集及分析都是针对数字信号,对于模拟信号的性能分析,只能依靠一些外在工具如频谱仪,手动进行设置及观察,或者硬件再加一级A/D 转换器生成数字信号,从而进行数据采集及后续分析。这不利于实现真正应用中的尤其批量产品模拟信号的自动化测试,另外对于该产品中的模拟信号的一些性能指标,也很难直接定量化评判和测试。该系统通过远程频谱仪进行数据获取和计算并最终进行性能分析和图形显示,实现了模拟信号的自动化测试,并对该信号性能进行了定量化评判和测量。
5 结语
本系统采用上位机远程频谱仪架构,实现了V C 调用MATLAB 进行参数配置和图形化显示,实现了MATLAB远程频谱仪进行参数配置和数据获取、保存以及数据分析,最终实现了模拟信号的自动化测试以及对模拟信号的性能指标进行了一系列的分析和测量。