基于多線程技術的天線實時測量系統研究
2.1 軟件分層結構與信息交互
本文引用地址:http://www.104case.com/article/277447.htm系統軟件是整個系統的控制核心,它的功能對用戶是透明的,對于用戶而言,只要選擇和輸入了正確的測量參數,系統就能自動完成相應的測量功能。
根據軟件需求和功能,可將其分為三層結構部分:
用戶界面部分、數據處理部分和硬件接口部分。
系統軟件各層之間的信息交互如圖2所示。

用戶界面部分,響應用戶操作,將硬件設置傳輸到硬件接口部分,將輸入數據送到數據處理部分,同時將數據處理部分送來的數據與狀態信息顯示給用戶,使用戶可以便捷地完成測量控制與監控。數據處理部分,一方面將硬件接口傳遞來的數據與狀態信息進行處理,轉換為用戶需要的格式以供顯示和存儲;另一方面將用戶設置的數據信息轉換為數據指令交給硬件接口部分。
硬件接口部分,完成計算機與儀器之間的通信,一方面將指令和數據等程序語言轉化為儀器可識別的機器語言輸送到儀器;另一方面將儀器傳輸回來的數據和狀態信息等轉換為可編程處理的數據,以供數據處理部分使用。
2.2 軟件任務分析
根據系統工作原理,系統軟件需要完成以下任務:
(1)建立計算機與轉臺控制箱之間的通信:建立通道,使計算機可以讀取轉臺實時運行狀態,并可以隨時控制轉臺以改變其運行狀態。
(2)轉臺運行狀態的顯示:將轉臺運動速度及角度信息顯示到用戶界面并實時更新。
(3)轉臺運行參數的設置:按照用戶輸入設置轉臺的運動速度、起止位置以及脈沖輸出方式,并控制其運動的起止。
(4)建立計算機與矢量網絡分析儀的通信:建立通道,使計算機可以讀取矢網狀態及測量數據,并可以隨時控制矢網以改變其運行狀態。
(5)矢量網絡分析儀的初始化以及測量參數的設置:使用基于VISA 庫的SCPI指令,對矢網進行初始化使其進入測量狀態,按照用戶輸入完成測量參數的設置。
(6)測量數據存儲文檔的建立與更新:在計算機中建立文檔用于測量數據的存儲,將測量過程從由矢網讀取的測量數據按特定格式進行實時記錄。
(7)系統測量進度的顯示:在測量過程中的軟件運行節點、測量過程中完成某次測量時以及測量完成后輸出相應提示性文字到用戶界面。
在實時測量系統中,要求計算機能同時完成多項任務,且具有很高的實時性要求,多線程技術以其避免阻塞、能同時執行多項任務、減小運行過程和用戶界面的相互影響,以及最大程度地利用多處理器性能的獨特優點很好地滿足了這一要求。
2.3 軟件多線程的實現
MFC 中有兩類線程,用戶界面線程和工作者線程。前者有自己的消息隊列和消息循環,一般用于處理獨立于其他線程執行之外的用戶輸入,響應用戶及系統所產生的事件和消息等;后者沒有消息循環,通常用來執行后臺計算和維護任務,如冗長的計算過程,數據的循環讀取等。
任意一個MFC 程序至少具有一個線程,也是程序的主線程。通過主線程能夠生成或終止任意多的線程,主線程一直存在直至程序終止。其中用戶界面線程是程序默認啟動的主線 程,主要實現軟件的運行和響應用戶操作及控制。根據軟件任務分析部分,在主線程中生成三個工作者線程,通過計算機與測量儀器的通信,完成儀器參數的設置以 及數據的實時采集、處理等后臺工作。
各線程工作順序及生存時間如圖3所示。

三個工作者線程所完成的具體工作如下:
轉臺狀態線程:建立計算機與轉臺控制箱的通信,不斷讀取轉臺的位置信息和速度信息并將其更新顯示到用戶界面,對應軟件任務分析部分的任務(1)和(2),流程如圖4所示。

評論