基于多線程技術(shù)的天線實時測量系統(tǒng)研究
2.1 軟件分層結(jié)構(gòu)與信息交互
本文引用地址:http://www.ex-cimer.com/article/277447.htm系統(tǒng)軟件是整個系統(tǒng)的控制核心,它的功能對用戶是透明的,對于用戶而言,只要選擇和輸入了正確的測量參數(shù),系統(tǒng)就能自動完成相應(yīng)的測量功能。
根據(jù)軟件需求和功能,可將其分為三層結(jié)構(gòu)部分:
用戶界面部分、數(shù)據(jù)處理部分和硬件接口部分。
系統(tǒng)軟件各層之間的信息交互如圖2所示。
用戶界面部分,響應(yīng)用戶操作,將硬件設(shè)置傳輸?shù)接布涌诓糠?,將輸入?shù)據(jù)送到數(shù)據(jù)處理部分,同時將數(shù)據(jù)處理部分送來的數(shù)據(jù)與狀態(tài)信息顯示給用戶,使用戶可以便捷地完成測量控制與監(jiān)控。數(shù)據(jù)處理部分,一方面將硬件接口傳遞來的數(shù)據(jù)與狀態(tài)信息進(jìn)行處理,轉(zhuǎn)換為用戶需要的格式以供顯示和存儲;另一方面將用戶設(shè)置的數(shù)據(jù)信息轉(zhuǎn)換為數(shù)據(jù)指令交給硬件接口部分。
硬件接口部分,完成計算機與儀器之間的通信,一方面將指令和數(shù)據(jù)等程序語言轉(zhuǎn)化為儀器可識別的機器語言輸送到儀器;另一方面將儀器傳輸回來的數(shù)據(jù)和狀態(tài)信息等轉(zhuǎn)換為可編程處理的數(shù)據(jù),以供數(shù)據(jù)處理部分使用。
2.2 軟件任務(wù)分析
根據(jù)系統(tǒng)工作原理,系統(tǒng)軟件需要完成以下任務(wù):
(1)建立計算機與轉(zhuǎn)臺控制箱之間的通信:建立通道,使計算機可以讀取轉(zhuǎn)臺實時運行狀態(tài),并可以隨時控制轉(zhuǎn)臺以改變其運行狀態(tài)。
(2)轉(zhuǎn)臺運行狀態(tài)的顯示:將轉(zhuǎn)臺運動速度及角度信息顯示到用戶界面并實時更新。
(3)轉(zhuǎn)臺運行參數(shù)的設(shè)置:按照用戶輸入設(shè)置轉(zhuǎn)臺的運動速度、起止位置以及脈沖輸出方式,并控制其運動的起止。
(4)建立計算機與矢量網(wǎng)絡(luò)分析儀的通信:建立通道,使計算機可以讀取矢網(wǎng)狀態(tài)及測量數(shù)據(jù),并可以隨時控制矢網(wǎng)以改變其運行狀態(tài)。
(5)矢量網(wǎng)絡(luò)分析儀的初始化以及測量參數(shù)的設(shè)置:使用基于VISA 庫的SCPI指令,對矢網(wǎng)進(jìn)行初始化使其進(jìn)入測量狀態(tài),按照用戶輸入完成測量參數(shù)的設(shè)置。
(6)測量數(shù)據(jù)存儲文檔的建立與更新:在計算機中建立文檔用于測量數(shù)據(jù)的存儲,將測量過程從由矢網(wǎng)讀取的測量數(shù)據(jù)按特定格式進(jìn)行實時記錄。
(7)系統(tǒng)測量進(jìn)度的顯示:在測量過程中的軟件運行節(jié)點、測量過程中完成某次測量時以及測量完成后輸出相應(yīng)提示性文字到用戶界面。
在實時測量系統(tǒng)中,要求計算機能同時完成多項任務(wù),且具有很高的實時性要求,多線程技術(shù)以其避免阻塞、能同時執(zhí)行多項任務(wù)、減小運行過程和用戶界面的相互影響,以及最大程度地利用多處理器性能的獨特優(yōu)點很好地滿足了這一要求。
2.3 軟件多線程的實現(xiàn)
MFC 中有兩類線程,用戶界面線程和工作者線程。前者有自己的消息隊列和消息循環(huán),一般用于處理獨立于其他線程執(zhí)行之外的用戶輸入,響應(yīng)用戶及系統(tǒng)所產(chǎn)生的事件和消息等;后者沒有消息循環(huán),通常用來執(zhí)行后臺計算和維護(hù)任務(wù),如冗長的計算過程,數(shù)據(jù)的循環(huán)讀取等。
任意一個MFC 程序至少具有一個線程,也是程序的主線程。通過主線程能夠生成或終止任意多的線程,主線程一直存在直至程序終止。其中用戶界面線程是程序默認(rèn)啟動的主線 程,主要實現(xiàn)軟件的運行和響應(yīng)用戶操作及控制。根據(jù)軟件任務(wù)分析部分,在主線程中生成三個工作者線程,通過計算機與測量儀器的通信,完成儀器參數(shù)的設(shè)置以 及數(shù)據(jù)的實時采集、處理等后臺工作。
各線程工作順序及生存時間如圖3所示。
三個工作者線程所完成的具體工作如下:
轉(zhuǎn)臺狀態(tài)線程:建立計算機與轉(zhuǎn)臺控制箱的通信,不斷讀取轉(zhuǎn)臺的位置信息和速度信息并將其更新顯示到用戶界面,對應(yīng)軟件任務(wù)分析部分的任務(wù)(1)和(2),流程如圖4所示。
評論