李繼秀 田易 孟真 張興成 鐘燕清 劉謀
(中國科學院微電子研究所,北京 100029)
目前基于的數(shù)據(jù)采集及分析都是針對數(shù)字信號,對于模擬信號的性能分析,只能依靠一些外在工具如頻譜儀,手動進行設置及觀察,或者硬件再加一級A/D 轉換器生成數(shù)字信號,從而進行數(shù)據(jù)采集及后續(xù)分析。這不利于實現(xiàn)真正應用中的尤其批量產品模擬信號的自動化測試,另外對于批量產品中的模擬信號的一些性能指標,也很難直接定量化評判和測試。頻譜分析儀,作為一類不可或缺的頻域測量和分析儀器,多用來研發(fā)通信器件設備,或是檢測和分析科研環(huán)境的信號。頻譜分析儀的功能強大,可以將信號從時域變換到頻域得到時域所沒有的一些特性分析,比如頻率、功率、噪聲等[1]。本測試系統(tǒng)通過VC軟件設計的友好界面能夠靈活控制M AT L AB 遠程控制頻譜儀,獲取頻譜儀數(shù)據(jù)進行保存和分析,從而對產品輸出的模擬信號進行定量化評判和測試。
本系統(tǒng)總體架構如圖1 所示。
主機一方面控制嵌入式設備產生模擬信號并通過專用線纜把模擬信號傳送到頻譜儀;另一方面主機遠程控制頻譜儀進行參數(shù)設置以及數(shù)據(jù)獲取并在獲取頻譜儀數(shù)據(jù)以后對該數(shù)據(jù)進行保存及分析并進行圖形化顯示,從而完成對模擬信號的性能指標進行定量化評判和測試。
本系統(tǒng)硬件架構如圖2所示,硬件主要包含嵌入式設備(產生模擬信號)、羅德施瓦茨頻譜儀、上位機三個部分。主機通過串口控制嵌入式設備產生所需模擬信號;嵌入式設備通過專用數(shù)據(jù)線纜與頻譜儀通信;主機通過網(wǎng)口控制頻譜儀進行參數(shù)傳遞以及數(shù)據(jù)獲取。
3.1.1 界面設計
上位機通過簡單界面程序,設置起始頻率、終止頻率、參考電平等參數(shù)傳遞給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路徑;庫函數(shù)路徑需要包括當前工程路徑及MATLAB的LIB路徑;另外需要在當前的工程鏈接里加入五個庫文件,四個為MATLAB庫文件,mclmcr.lib,mclmcrrt.lib,libmat.lib,libmx.lib,另一個為(1)中所生成的庫文件[2]。
2)代碼鏈接庫文件
圖1 系統(tǒng)框架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)設置參數(shù)并調用M AT L AB 遠程頻譜儀
mwArray startFrq(1,1,mxDOUBLE_CLASS);創(chuàng)建起始頻率數(shù)組
mwArray stopFrq(1,1,mxDOUBLE_CLASS);創(chuàng)建終止頻率數(shù)組
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();
(1)頻譜儀遠程通信架構??梢耘c頻譜儀進行遠程通信的軟件比較多,比較成熟的有MA TL AB,C#,L ABV IE W 和CV I。該軟件采用MATLAB 軟件平臺實現(xiàn)與頻譜儀的通信,這里對操作系統(tǒng)、MATLAB版本、還有IO庫都有比較高的要求,要求如下:
MATLAB 2013或者更高版本
WindowsXP/VISTA/WIN7(WIN 7 64bit)
NI VISA I/O library 15.0或者更高。
該軟件采用的MATLAB 2014 a ,WindowsXP操作系統(tǒng),NI VISA I/O library 15.5,接口采用LAN,通信協(xié)議采用TCPIP協(xié)議[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)頻譜儀的參數(shù)設置
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);設置掃描點數(shù)
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');屏幕拷貝
由于VC采用可視化的集成開發(fā)環(huán)境(IDE),在工程應用中,可以實現(xiàn)人機交互界面、數(shù)據(jù)采集和實時監(jiān)控等。其友好的界面便于客戶操作,其較高的開發(fā)效率比較易于工程師上手。在該系統(tǒng)中可以通過操作界面,靈活進行MATLAB、頻譜儀參數(shù)配置,并對結果進行可視化界面顯示。
在該系統(tǒng)中借助MATLAB平臺遠程頻譜儀,MATLAB具有強大的計算繪圖能力,并提供了大量的函數(shù)庫,幾乎涵蓋了所有的工程計算領域,所以在數(shù)據(jù)處理分析、算法工具和繪制數(shù)據(jù)圖形等方面,該測試系統(tǒng)具有強大的工程科學計算能力和繪圖能力。
目前基于的數(shù)據(jù)采集及分析都是針對數(shù)字信號,對于模擬信號的性能分析,只能依靠一些外在工具如頻譜儀,手動進行設置及觀察,或者硬件再加一級A/D 轉換器生成數(shù)字信號,從而進行數(shù)據(jù)采集及后續(xù)分析。這不利于實現(xiàn)真正應用中的尤其批量產品模擬信號的自動化測試,另外對于該產品中的模擬信號的一些性能指標,也很難直接定量化評判和測試。該系統(tǒng)通過遠程頻譜儀進行數(shù)據(jù)獲取和計算并最終進行性能分析和圖形顯示,實現(xiàn)了模擬信號的自動化測試,并對該信號性能進行了定量化評判和測量。
本系統(tǒng)采用上位機遠程頻譜儀架構,實現(xiàn)了V C 調用MATLAB 進行參數(shù)配置和圖形化顯示,實現(xiàn)了MATLAB遠程頻譜儀進行參數(shù)配置和數(shù)據(jù)獲取、保存以及數(shù)據(jù)分析,最終實現(xiàn)了模擬信號的自動化測試以及對模擬信號的性能指標進行了一系列的分析和測量。