摘 要: 建立了一套基于多線程技術的天線實時測量系統。實時測量系統具有很高的實時性要求,多線程技術以其能同時執行多項任務、最大程度利用多處理器性能的獨特優點很好地滿足了這一要求。系統軟件用戶界面可以完成所有測量參數的輸入和設置并及時響應用戶操作,除此線程外建立額外的工作者線程實現其他功能的并行工作,提高系統實時性,在用戶界面實時更新顯示儀器的運行狀態和系統的測量進度以供用戶了解系統狀態,同時對測量數據進行實時地讀取和保存,便于后期的進一步處理和研究。
關鍵字: 多線程技術; 天線; 實時測量系統; 用戶界面; 并行工作
中圖分類號: TN820?34 文獻標識碼: A 文章編號: 1004?373X(2013)13?0115?05
Antenna real?time measuring system based on multithreading technology
HAN Xu, WEI Gao, LI Rui?yang, FU Li
(School of Electronics and Information, Northwestern Polytechnical University, Xi’an 710129, China)
Abstract: An antenna real?time measuring system based on multithreading technology was established, which has high demand of real?time. Multithreading technology with its unique advantages can well meet the need , which can carry out multi?tasks concurrently and make full use of the performance of multiprocessor. All measured parameters could be inpu into the syetem software UI, and the UI would respond the user operation timely. In addition to this thread, extra worker threads could be created to make additional functions work in parallel, thus the real?time of the system is increased. The running status of the instruments and the measuring progress of the system is updated and displayed in real?time on the UI so as to show the system status to users. At the same time, the measuring data is read and saved in real?time for further dispose and research in the future.
Keywords: multithreading technology; antenna; real?time measuring system; UI; concurrent working
0 引 言
隨著計算機技術和現代電子測量技術在儀器領域的應用和普及,特別是電子測量儀器計算機接口及相應標準的出現,使得計算機與儀器間的通信簡單易得,用戶可以通過計算機程序進行儀器控制和數據讀取與存儲,這些技術的發展使得天線自動測量系統的實現成為可能[1?4]。
以往基于單線程的簡單測量系統,對用戶操作的響應以及多任務之間的切換需要使用“中斷處理”來完成,極大地影響了系統的實時性和工作效率,測量過程中軟件進入數據讀取與存儲的循環過程,使得用戶界面進入“假死”狀態,無法對測量進行控制和了解系統測量的實時進度。為了彌補這些不足,需要做到多任務的并行工作,而多線程技術以其避免阻塞、同時執行多項任務、減小運行過程和用戶界面的相互影響,以及最大程度地利用多處理器性能的獨特優點很好地滿足了這一要求[5?6]。
本文設計了一套基于多線程技術的天線實時測量系統,提供了布局簡潔而功能完善的用戶界面,可以完成所有測量參數的輸入和設置并及時響應用戶操作,使用不同線程實現多個任務的并行工作,提高系統實時性,在用戶界面實時更新顯示儀器的運行狀態和系統的測量進度以供用戶了解系統狀態,同時實現了測量數據的實時讀取和保存,便于后期的進一步處理和研究[7?9]。
1 系統概述
1.1 系統工作原理
本測量系統使用旋轉天線測量法,輔助天線(源天線)連接到矢網發射端口,待測天線連接到矢網接收端口,使待測天線的待測平面與轉臺旋轉平面平行,使用矢網測量不同角度的傳輸參數(S參數),利用這些數據便可以做出特定頻率下的天線方向圖。此外矢網的掃頻特性為天線測量提供了另外一個優勢,即在一次測量中,可以得到在某一頻段內多個頻點的測量數據,可以通過對比不同頻點的數據和天線方向圖對天線的頻率特性進行比較和分析。
1.2 系統組成
該測試系統由五部分組成:微波暗室,計算機(系統軟件),矢量網絡分析儀,程控轉臺和源天線。其布局如圖1所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t1.tif>
圖1 系統組成
主控計算機與矢量網絡分析儀通過LAN線互連,與傳統的GPIB總線模式比較,突破了通信距離限制,具有數據流量大、控制靈活、易于設備共享、數據共享等優點[10]。
矢量網絡分析儀用于掃頻信號的發射與接收,源天線通過同軸線與連接到矢量網絡分析儀功率發射端的功率放大器相連,待測天線通過同軸線與矢量網絡分析儀的功率接收端口相連。
主控計算機與轉臺控制箱通過USB接口相連,不需要考慮轉臺控制的機械流程,只需要編程完成與控制箱的通信,即可控制轉臺和獲取轉臺狀態數據。
矢量網絡分析儀與轉臺控制箱之間通過BNC接頭同軸電纜連接,轉臺控制箱通過此電纜向矢量網絡分析儀發送測量所需的觸發脈沖。
2 系統軟件實現
編寫系統軟件使用的編譯環境是基于VC++的MFC(Microsoft Foundation Classes),使用面向對象的程序設計(Object Oriented Programming,OOP)方法[11?13],分別使用基于VISA(Virtual Instrument Software Architecture)庫的SCPI(Standard Commands for Programmable Instruments)指令和Mint運動控制語言進行編程完成計算機與矢量網絡分析儀和轉臺的通信,控制儀器并讀取信息和數據[14?15]。
2.1 軟件分層結構與信息交互
系統軟件是整個系統的控制核心,它的功能對用戶是透明的,對于用戶而言,只要選擇和輸入了正確的測量參數,系統就能自動完成相應的測量功能。
根據軟件需求和功能,可將其分為三層結構部分:用戶界面部分、數據處理部分和硬件接口部分。
系統軟件各層之間的信息交互如圖2所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t2.tif>
圖2 軟件各層之間的信息交互
用戶界面部分,響應用戶操作,將硬件設置傳輸到硬件接口部分,將輸入數據送到數據處理部分,同時將數據處理部分送來的數據與狀態信息顯示給用戶,使用戶可以便捷地完成測量控制與監控。
數據處理部分,一方面將硬件接口傳遞來的數據與狀態信息進行處理,轉換為用戶需要的格式以供顯示和存儲;另一方面將用戶設置的數據信息轉換為數據指令交給硬件接口部分。
硬件接口部分,完成計算機與儀器之間的通信,一方面將指令和數據等程序語言轉化為儀器可識別的機器語言輸送到儀器;另一方面將儀器傳輸回來的數據和狀態信息等轉換為可編程處理的數據,以供數據處理部分使用。
2.2 軟件任務分析
根據系統工作原理,系統軟件需要完成以下任務:
(1)建立計算機與轉臺控制箱之間的通信:建立通道,使計算機可以讀取轉臺實時運行狀態,并可以隨時控制轉臺以改變其運行狀態。
(2)轉臺運行狀態的顯示:將轉臺運動速度及角度信息顯示到用戶界面并實時更新。
(3)轉臺運行參數的設置:按照用戶輸入設置轉臺的運動速度、起止位置以及脈沖輸出方式,并控制其運動的起止。
(4)建立計算機與矢量網絡分析儀的通信:建立通道,使計算機可以讀取矢網狀態及測量數據,并可以隨時控制矢網以改變其運行狀態。
(5)矢量網絡分析儀的初始化以及測量參數的設置:使用基于VISA庫的SCPI指令,對矢網進行初始化使其進入測量狀態,按照用戶輸入完成測量參數的設置。
(6)測量數據存儲文檔的建立與更新:在計算機中建立文檔用于測量數據的存儲,將測量過程從由矢網讀取的測量數據按特定格式進行實時記錄。
(7)系統測量進度的顯示:在測量過程中的軟件運行節點、測量過程中完成某次測量時以及測量完成后輸出相應提示性文字到用戶界面。
在實時測量系統中,要求計算機能同時完成多項任務,且具有很高的實時性要求,多線程技術以其避免阻塞、能同時執行多項任務、減小運行過程和用戶界面的相互影響,以及最大程度地利用多處理器性能的獨特優點很好地滿足了這一要求[7?9]。
2.3 軟件多線程的實現
MFC中有兩類線程,用戶界面線程和工作者線程。前者有自己的消息隊列和消息循環,一般用于處理獨立于其他線程執行之外的用戶輸入,響應用戶及系統所產生的事件和消息等;后者沒有消息循環,通常用來執行后臺計算和維護任務,如冗長的計算過程,數據的循環讀取等。
任意一個MFC程序至少具有一個線程,也是程序的主線程。通過主線程能夠生成或終止任意多的線程,主線程一直存在直至程序終止[7]。其中用戶界面線程是程序默認啟動的主線程,主要實現軟件的運行和響應用戶操作及控制。根據軟件任務分析部分,在主線程中生成三個工作者線程,通過計算機與測量儀器的通信,完成儀器參數的設置以及數據的實時采集、處理等后臺工作。
各線程工作順序及生存時間如圖3所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t3.tif>
圖3 各線程工作順序及生存時間
三個工作者線程所完成的具體工作如下:
轉臺狀態線程:建立計算機與轉臺控制箱的通信,不斷讀取轉臺的位置信息和速度信息并將其更新顯示到用戶界面,對應軟件任務分析部分的任務(1)和(2),流程如圖4所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t4.tif>
圖4 轉臺狀態線程
轉臺啟動線程:首先進入等待狀態,在矢網初始化以及數據文檔建立完成后,向轉臺控制箱發送指令設置轉臺的運行參數使其開始運動,對應軟件任務分析部分的任務(3),流程如圖5所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t5.tif>
圖5 轉臺啟動線程流程圖
矢網工作線程:其功能為向矢網發送指令進行初始化設置,使矢網進入觸發等待狀態,并建立數據存儲文檔,在測量過程中不斷讀取矢網的測量狀態,每完成一次測量,將測量數據讀取并保存到文檔中,同時將測量進度顯示到用戶界面,對應軟件任務分析部分的任務(4)~(7),流程如圖6所示。
3 系統性能
3.1 系統軟件用戶界面
系統軟件用戶界面根據功能進行區域劃分和布局,保證視圖清晰和操作方便,如圖7所示,其中序號標注的區域功能如下:
(1)系統菜單:可以完成一些系統常規設置,如儀器切換,數據輸出格式以及儀器運行方式的選擇等。這些設置不需要經常改動,對于一般測試使用默認設置即可。
(2)常用設置:用于輸入矢網測量參數和轉臺運行參數,以及文件輸出位置的選擇和自定義文件名的輸入。此部分為系統運行時經常需要改動的設置,與用戶交互頻繁。
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t6.tif>
圖6 矢網工作線程流程圖
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t7.tif>
圖7 用戶界面主對話框
(3)測量控制:控制測量的啟動與停止,也可以在非測量狀態下控制轉臺的運行。用戶對此部分進行操作便可完成對系統運行的控制,以及對轉臺進行位置調整等。
(4)系統運行狀態顯示:實時顯示轉臺的轉動速度和當前位置,在測量過程中不斷更新顯示系統的運行進度。通過這些信息用戶可以對系統狀態了如指掌,以便做出適當操作。
3.2 測量實例
選擇實驗室內BJ?32標準矩形角錐喇叭天線,使用Agilent和Anritsu矢量網絡分析儀分別進行測量,相關參數見表1。
選取兩次測量所得數據文檔中3.26 GHz頻率點的數據做出天線歸一化方向圖,如圖8和圖9所示。
表1 實測參數
[設置項目\設置參數\輸出功率 /dBm\-10\頻率范圍 /GHz\2.5~4\掃頻點數/點\101\角度范圍 /(°)\0~360\脈沖間隔 /(°)\1\測量速度 /((°)/s)\Agilent 5\Anritsu 2.5\]
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t8.tif>
圖8 Agilent測量結果
<\\192.168.0.25\$d\8月\8-2\補\補!現代電子技術201313\Image\21t9.tif>
圖9 Anritsu測量結果
4 結 論
本系統以計算機為核心,充分利用了實驗室先進儀器的計算機通信接口,系統軟件的用戶界面布局清晰、功能全面,減少了對儀器的直接操作,對貴重儀器起到了保護作用從而降低了維護費用。系統中使用矢量網絡分析儀使得系統具有一次性掃描測量便可獲得多頻點天線數據的能力。編程中采用通用標準指令,增強了軟件的可移植性和可擴展性。多線程技術的使用,實現了多任務的并行工作,滿足了系統實時性要求,使用戶可以通過用戶界面直觀了解到系統運行狀態及測量進度,同時還可將天線測量數據即時讀取并保存,以便進一步處理和研究。
參考文獻
[1] KRAUS J D, MARHEFKA R J.天線[M].章文勛,譯.北京:電子工業出版社,2004.
[2] 林昌祿.天線測量技術[M].成都:成都電訊工程學院出版社, 1987.
[3] 熊繼袞.天線測量技術的進展與展望[J].系統工程與電子技術,1984(8):19?29.
[4] 毛乃宏,俱新德.天線測量手冊[M].北京:國防工業出版社,1987.
[5] 張福順,張進民.天線測量[M].西安:西安電子科技大學出版社,1995.
[6] 戴晴,黃紀軍,莫錦軍.現代微波與天線測量技術[M].北京:電子工業出版社,2008.
[7] 程昌品,張愉榮.VC實現Windows操作系統下多線程的調度與應用[J].計算機應用與軟件,2004(12):118?120.
[8] 劉金寧.LabWindows/CVI下多線程技術在某發控設備測試中的應用[J].電子測量與儀器學報,2002(16):710?714.
[9] 喬立巖.多線程測控程序設計方法研究[J].測試技術學報,2002(16):1145?1149.
[10] 秦凡,韋高.基于VISA庫及SCPI命令的儀器程控測量[J].現代電子技術,2011,34(11):118?120.
[11] 譚浩強.C++程序設計[M].北京:清華大學出版社,2004.
[12] 錢能.C++程序設計教程[M].北京:清華大學出版社,2005.
[13] 侯俊杰.深入淺出MFC[M].2版.武漢:華中科技大學出版社, 2005.
[14] 陳光踽,代俊光.VISA:虛擬儀器軟件構架的結構及應用[J].國外電子測量技術,1997(1):12?14.
[15] 張磊.利用VISA控制儀器設備各種接口[J].電子測試,2008(10):58?61.
[16] 何敏佳,陰雷鳴,何英武,等.基于高檔數控的實時多線程實現[J].現代電子技術,2011,34(5):138?140.
[17] 苗專生.基于VB多線程技術的FTP的實現[J].現代電子技術,2008,31(8):59?60.
[18] 樊莉,王勇.基于多線程技術的機載總線仿真系統的研究與實現[J].現代電子技術,2005,28(13):26?28.