文常保, 時曉文, 茹 鋒, 李演明, 王 飚
(長安大學 電子與控制工程學院 微納電子研究所, 陜西 西安 710064)
網絡分析儀能夠動態掃描輸入信號,測量頻率響應、幅頻、相位、駐波比以及阻抗等參數,因此成為射頻、微波研究領域的主要測試儀器之一[1-3]。然而,網絡分析儀屬于貴重儀器,體積較大、操作復雜,對測試環境和條件有嚴格要求,在測試的便捷性、靈活性和移動性方面較差。為了滿足遠程測試的需求,Agilent提出用網卡和LAN實現網絡分析儀的遠程連接,在一定程度上滿足了遠程測試的需要。但是,LAN連接存在布線、靈活性差等問題[4]。隨著智能移動端的廣泛使用,開發智能移動端的無線測試功能,將可以實現網絡分析儀的遠程測試,提高測試的便捷性、靈活性和儀器設備的利用率[5]。
目前,智能移動端的操作系統主要有IOS和Android兩種。IOS系統主要用Objective-C語言設計開發,而Android操作系統主要用Java語言開發。由于Android操作系統是基于Linux內核開發的開源操作系統,具有豐富的開發資源和成熟的、高度集成化的開發環境,開發難度較低、效率更高[6-7],且國內用戶量龐大,所以本文提出了一種基于Android的網絡分析儀的無線移動端測量系統。
基于Android的網絡分析儀無線移動測量系統由智能移動端、實驗室儀器端和包括WiFi模塊的服務器端組成(見圖1)。智能移動端通過WiFi連接到服務器端,向服務器端實時傳輸控制信號。服務器端通過LAN連接接口與網絡分析儀建立連接,動態向網絡分析儀傳輸可編程儀器標準指令(standard commands for programmable instruments,SCPI)[8-9],網絡分析儀根據操作指令完成測量任務。

圖1 系統物理連接圖
網絡分析儀的無線移動測量系統設計包括智能移動端設計、服務器端設計和實驗室儀器端設計。智能移動端包括TCP/IP的連接模塊、測量參數設置模塊、校準模塊、結果輸出模塊和測量分析模塊,其具體結構如圖2所示;服務器端設計包括TCP/IP的連接、網絡分析儀連接和各種功能函數的程序設計。

圖2 無線移動測量系統結構圖
智能移動端的TCP/IP連接模塊實現與服務器端連接,完成器件測量的初始化工作。測量參數設置部分控制網絡分析儀設置校準和測量參數。結果輸出模塊分別輸出測量圖像和測量數據,可以將數據和圖像保存在服務器端和智能移動端。測量分析模塊主要對測量結果進行標記分析、極限分析和比較分析。
服務器端的TCP/IP部分與智能移動端連接,接收智能移動端傳輸的控制指令。在網絡分析儀連接部分,服務器端通過LAN接口連接到網絡分析儀。功能函數中包括用于控制網絡分析儀的多種方法,這些方法相互配合進行參數的測量。
智能移動端設計主要包括TCP/IP的連接模塊、測量參數設置模塊、校準模塊、結果輸出模塊和測量分析模塊,其設計結構如圖3所示。

圖3 智能移動端設計結構圖
在TCP/IP連接模塊中,根據TCP/IP協議將WiFi連接的無線局域網下的智能移動端和服務器端分別設置為客戶端(Client)和服務端(Server)。其客戶端實現程序為:
Socket client=new Socket(″192.168.0.103″,″1213″)
其中“192.168.0.103”參數是服務器端在局域網下的IP地址,其值可以通過命令提示符獲得。″1213″是設置的服務器端口值,服務器(Server)端程序為:
ServerSocket server = new ServerSocket(1213″) Socket socket = server.accept()
將智能移動端和服務器端連通后,通過開發語言中的I/O流來傳輸和接收具體的信號,服務器端根據不同的指令來實現對應的功能。
在測量參數設置模塊中,包括控制網絡分析儀設置S-Parameter、Power-Ranger、Center、Span、Points和IF-Bandwidth等參數,也可以設置Amplitude-Frequency、Phase-Frequency和Impendance等Format顯示類型。測量參數設置部分選擇下拉框和單選按鈕進行設計,根據選擇來確定輸出流傳輸給服務器端的信息。因Android的UI主線程中應當避免執行耗時程序,以防界面刷新造成卡頓現象,所以在子線程中執行消息傳輸過程。通過Android中的Handler消息傳遞機制實現消息的傳輸,傳輸設計的關鍵程序為:
Looper.prepare(); recevieHandler = new Handler(); public void handleMessage(Message msg) { dos.writeUTF(msg.obj.toString().trim() + ″ ″); } Looper.loop();
對于校準模塊和結果輸出模塊,同樣是根據所設置參數值的不同,向服務器端傳輸不同的操作指令。服務器端調用相應的功能函數來實現對網絡分析儀的控制,常用于網絡分析儀操作的SCPI控制指令如表1所示。
測量結果輸出模塊從服務器端讀取相應的圖片信息和數據信息。設計用于圖片和數據傳輸的子程序來接收圖片,子程序接收到信息后,將信息解碼成Bitmap位圖信息,然后經Handler消息機制通知UI主線程的ImageView圖像組件來動態顯示相應的圖片信息。

表1 網絡分析儀SCPI儀器常用控制指令
測量分析模塊用于對測量結果進行分析,包含標記分析、極限分析和比較分析。由智能移動端向服務器端發送測量分析指令,通過服務器端控制網絡分析儀完成測量結果的分析。在分析結束后,利用Android系統中的Environment.getExternalStorageDirectory()方法在智能移動端上新建文件,將分析得到的結果保存在文件中,以便后續處理和共享。
服務器端程序的設計要能夠實現服務器向網絡分析儀發送SCPI指令,實時控制網絡分析儀。與在VB編程環境下編寫控制網絡分析儀程序不同的是:Java編程環境中并未提供像VISA-COM一樣集成的Windows接口,無法直接調用已有的接口程序,所以需要解決服務器和網絡分析儀之間的通信控制問題。
Agilent提供了一種名為VISA(virtual instrument software architecture)的儀器標準I/O API。這種API適用于開發與網絡分析儀進行I/O連接的儀器驅動程序和應用。在VISA中提供了打開儀器的viOpenDefaultRM和viOpen函數、向儀器中寫入命令和從儀器中讀取結果的viWrite和viRead等函數,這些函數使得開發網絡分析儀的無線移動測量系統成為可能。
雖然VISA庫中提供了可以與網絡分析儀進行交互控制的功能函數,但是在Java編程環境中并不能直接調用這些原生函數,而且在函數重寫過程中無法確定函數中參數的具體類型。在Java開發環境下,若要使用VISA庫中的原生函數,需要調用一個開源的Java框架JNA(Java native access),該框架由SUN公司主導開發,是在經典的JNI(Java native interface)的基礎上開發的一個框架。JNA提供了一個由C語言編寫的動態轉發器,可以自動實現Java和C語言的數據類型映射。借助于JNA框架,在Java環境中調用儀器設備的原生函數,完成對網絡分析儀的底層操作。JNA框架調用實現代碼為
VISA32 INSTANCE= (VISA32) Native.loadLibrary (″VISA32″, VISA32.class)
調用VISA庫后,重寫儀器的原生函數,使得在Java編程環境中能夠實現原生函數的功能。主要是服務器端向網絡分析儀發送SCPI指令、控制儀器執行相應的操作,然后從網絡分析儀中讀取反饋結果。
在測量結果輸出部分,服務器端從網絡分析儀中讀取圖像和數據并遵從IEEE488.2的網絡傳輸協議。文件采用數據塊(block data)的方式進行傳輸。在讀取的數據流中,傳輸的數據塊具有固定的規范格式,如圖4所示。

圖4 網絡分析儀數據傳輸的規范格式
當服務器端讀取到來自網絡分析儀的反饋信息時,需要按照規范的數據格式進行解包,將有效的輸出信息解析出來進行顯示和處理。
選取中心頻率為101.764 MHz的聲表面波器件作為測量對象,驗證網絡分析儀無線移動測量系統的適用性。
在同一局域網前提下,將智能移動端和服務器端通過TCP/IP協議連接,連接到服務器端時需要設置服務器IP地址和登錄端口信息。在確認連接到指定的服務器并登錄后,系統將自動跳轉到測量參數設置界面進行測量參數的設置。
測量開始時,先在測量參數界面設置網絡分析儀的IP地址,點擊“連接到VNA”使服務器端與網絡分析儀的連接。如果連接失敗,會以Toast的方式返回一個連接失敗的消息提示;如果成功連接到網絡分析儀,同樣以Toast的方式顯示所連接的網絡分析儀的相關信息。在測量參數設置界面中包括多種常用測量參數[10-11],S參數設置了4個用于雙端口網絡的散射參量值S11、S21、S12、S22。同時也設置了Center、IF-bandwidth以及Span等參數的可選值,更加方便了多種狀態的測量。如果在設置參數過程中出現一些誤操作,可以通過“重置”按鈕重新設置。當所有設置完成之后,網絡分析儀會動態顯示當前測量的結果圖。
在校準過程中,選用85032F校準套件進行雙端口校準。根據基于12項誤差模型的SOLT校準技術的校準步驟,對網絡分析儀的端口1和端口2分別進行開路校準(open cal)、短路校準(short cal)、負載校準(load cal)或者全單端口校準(full 1 port),接著對網絡分析儀的端口1和端口2進行直通校準(thru cal)或者全雙端口校準(full 2 port)[12-14]。校準操作之后,能夠修正網絡分析儀的測量誤差,并將測量狀態進行保存。
根據12項誤差模型SOLT校準技術,對網絡分析儀端口1執行一次完整的校準過程,如圖5所示。在校準過程中,網絡分析儀內部的校準算法會自動補償校準時出現的誤差,在測量過程中能夠有效地消除這部分誤差。在測量實驗中,可以從網絡分析儀獲取屏幕圖片,在圖中可以看到各點的損耗值。

圖5 移動端控制網絡分析儀端口1校準
網絡分析儀還能對測量結果進行分析,常見的分析方法有標記分析、極限分析和比較分析。
標記分析允許測量人員在被測器件的頻率范圍內對測量結果進行單點的標記分析。當輸入Frequency值后,點擊“MAKER分析”,網絡分析儀將在對應的頻率值點處標記出該點的對應信息。每次進行標記分析的數據都能夠保存到移動端的內存中,借助智能移動端的優勢進行分享、備份及后續處理。
在極限分析操作界面中,設置完成Type、Begin Stimulus、End Stimulus、Begin Response和End Response參數,點擊“LIMIT TEST”之后將對測量結果進行極限分析。極限分析將篩選出損耗過大的聲表面波器件,并對相應的點進行記錄。極限分析操作如圖6(a)所示。
網絡分析儀的比較分析是對不同測量類型下聲表面波器件的響應進行分析。圖6(b)中顯示的是聲表面波器件在S參數為S11和S12時測量得到的幅頻響應特性,雙窗口界面更加形象地顯示了不同測量參數下器件的響應特性,使得器件比較分析更加直觀。

圖6 測量結果分析界面
圖6(b)所示為測量的聲表面波器件在S參數為S12時,其中心頻率處的反向傳輸損耗為-39.143 dB;當S參數為S11時,其中心頻率處的反射損耗在測量范圍內最大為-43.239 dB。在對比分析中,能夠更加方便地表征出器件在不同S參數類型下其損耗的情況,從而更加有利于器件研究。
實驗結果表明,基于Android的網絡分析儀無線移動測量系統能夠實現網絡分析儀與智能移動端的連接,完成設置校準參數和儀器校準,也可以實現測量結果的分析和輸出功能。
基于Android的網絡分析儀無線移動測量系統實現了遠程操控網絡分析儀進行校準、測量以及分析的整體功能。該設計大大地降低了網絡分析儀的使用成本和維護費用,也降低了測量人員的操作難度和工作量。將網絡分析儀的使用集成到移動智能端,不僅為實驗室儀器設備信息化管理和使用提供了可行的方案,而且也為教學研究提供了高效、便捷的實驗室儀器操作平臺。