新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于多線程技術(shù)的天線實(shí)時(shí)測量系統(tǒng)研究

基于多線程技術(shù)的天線實(shí)時(shí)測量系統(tǒng)研究

作者: 時(shí)間:2015-07-19 來源:網(wǎng)絡(luò) 收藏

  2.1 軟件分層結(jié)構(gòu)與信息交互

本文引用地址:http://www.butianyuan.cn/article/277447.htm

  系統(tǒng)軟件是整個(gè)系統(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í)將數(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ù)指令交給硬件接口部分。

  硬件接口部分,完成計(jì)算機(jī)與儀器之間的通信,一方面將指令和數(shù)據(jù)等程序語言轉(zhuǎn)化為儀器可識別的機(jī)器語言輸送到儀器;另一方面將儀器傳輸回來的數(shù)據(jù)和狀態(tài)信息等轉(zhuǎn)換為可編程處理的數(shù)據(jù),以供數(shù)據(jù)處理部分使用。

  2.2 軟件任務(wù)分析

  根據(jù)系統(tǒng)工作原理,系統(tǒng)軟件需要完成以下任務(wù):

  (1)建立計(jì)算機(jī)與轉(zhuǎn)臺控制箱之間的通信:建立通道,使計(jì)算機(jī)可以讀取轉(zhuǎn)臺實(shí)時(shí)運(yùn)行狀態(tài),并可以隨時(shí)控制轉(zhuǎn)臺以改變其運(yùn)行狀態(tài)。

  (2)轉(zhuǎn)臺運(yùn)行狀態(tài)的顯示:將轉(zhuǎn)臺運(yùn)動速度及角度信息顯示到用戶界面并實(shí)時(shí)更新。

  (3)轉(zhuǎn)臺運(yùn)行參數(shù)的設(shè)置:按照用戶輸入設(shè)置轉(zhuǎn)臺的運(yùn)動速度、起止位置以及脈沖輸出方式,并控制其運(yùn)動的起止。

  (4)建立計(jì)算機(jī)與的通信:建立通道,使計(jì)算機(jī)可以讀取矢網(wǎng)狀態(tài)及測量數(shù)據(jù),并可以隨時(shí)控制矢網(wǎng)以改變其運(yùn)行狀態(tài)。

  (5)的初始化以及測量參數(shù)的設(shè)置:使用基于VISA 庫的SCPI指令,對矢網(wǎng)進(jìn)行初始化使其進(jìn)入測量狀態(tài),按照用戶輸入完成測量參數(shù)的設(shè)置。

  (6)測量數(shù)據(jù)存儲文檔的建立與更新:在計(jì)算機(jī)中建立文檔用于測量數(shù)據(jù)的存儲,將測量過程從由矢網(wǎng)讀取的測量數(shù)據(jù)按特定格式進(jìn)行實(shí)時(shí)記錄。

  (7)系統(tǒng)測量進(jìn)度的顯示:在測量過程中的軟件運(yùn)行節(jié)點(diǎn)、測量過程中完成某次測量時(shí)以及測量完成后輸出相應(yīng)提示性文字到用戶界面。

  在實(shí)時(shí)測量系統(tǒng)中,要求計(jì)算機(jī)能同時(shí)完成多項(xiàng)任務(wù),且具有很高的實(shí)時(shí)性要求,多線程技術(shù)以其避免阻塞、能同時(shí)執(zhí)行多項(xiàng)任務(wù)、減小運(yùn)行過程和用戶界面的相互影響,以及最大程度地利用多處理器性能的獨(dú)特優(yōu)點(diǎn)很好地滿足了這一要求。

  2.3 軟件多線程的實(shí)現(xiàn)

  MFC 中有兩類線程,用戶界面線程和工作者線程。前者有自己的消息隊(duì)列和消息循環(huán),一般用于處理獨(dú)立于其他線程執(zhí)行之外的用戶輸入,響應(yīng)用戶及系統(tǒng)所產(chǎn)生的事件和消息等;后者沒有消息循環(huán),通常用來執(zhí)行后臺計(jì)算和維護(hù)任務(wù),如冗長的計(jì)算過程,數(shù)據(jù)的循環(huán)讀取等。

  任意一個(gè)MFC 程序至少具有一個(gè)線程,也是程序的主線程。通過主線程能夠生成或終止任意多的線程,主線程一直存在直至程序終止。其中用戶界面線程是程序默認(rèn)啟動的主線 程,主要實(shí)現(xiàn)軟件的運(yùn)行和響應(yīng)用戶操作及控制。根據(jù)軟件任務(wù)分析部分,在主線程中生成三個(gè)工作者線程,通過計(jì)算機(jī)與測量儀器的通信,完成儀器參數(shù)的設(shè)置以 及數(shù)據(jù)的實(shí)時(shí)采集、處理等后臺工作。

  各線程工作順序及生存時(shí)間如圖3所示。

  

 

  三個(gè)工作者線程所完成的具體工作如下:

  轉(zhuǎn)臺狀態(tài)線程:建立計(jì)算機(jī)與轉(zhuǎn)臺控制箱的通信,不斷讀取轉(zhuǎn)臺的位置信息和速度信息并將其更新顯示到用戶界面,對應(yīng)軟件任務(wù)分析部分的任務(wù)(1)和(2),流程如圖4所示。

  



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉