999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于多種并發機制的衛星電子設備地面測試軟件設計方法

2012-04-17 07:29:48華更新衣學慧
空間控制技術與應用 2012年3期
關鍵詞:數據庫系統

龔 健,華更新,孫 越,衣學慧

(北京控制工程研究所,北京 100190)

測試是衛星電子設備研制過程中一個重要的環節,衛星電子設備測試系統是一個集數字電路、模擬電路、嵌入式軟件、以及專用軟件為一體的復雜系統,其實現一般由測試設備硬件和地面測試軟件兩大部分組成,測試設備的硬件一般包括采用單片機或處理器的硬件板卡、單純模擬或數字電路的硬件板卡;地面測試軟件是直接與用戶交互的測試系統專用軟件,一般具有圖形化的用戶界面,需要訪問測試設備硬件以便完成測試,并通過數據庫訪問完成測試數據的存儲和管理.目前有多種開發環境支持這種專用軟件的開發和設計,例如Microsoft公司的Visual C++和 Visual Basic,National Instruments公司的 LabView 和 LabWindows[1-6].雖然經過十幾年的發展,以LabView為代表的新開發工具層出不窮,但Microsoft公司的Visual C++依賴其對底層硬件訪問十分便捷、良好的兼容性、廣泛的用戶基礎和技術支持,目前依然是各種測試和監控系統最主要的軟件開發環境之一[2-3].采用Visual C++開發星用地面測試軟件的好處主要有:便于與硬件進行接口,尤其適合星用非標準硬件板卡的編程;適合通信協議解析等復雜邏輯的程序設計;具有廣泛的技術支持獲取渠道;能避免購買昂貴的專用測試板卡,降低開發成本.

在衛星電子設備測試系統中,地面測試軟件的特點是頻繁地訪問測試設備硬件,與其進行數據交換,并通過數據庫保存測試數據,此外還要響應用戶的指令,這就要求軟件能夠協調好測試數據獲取、測試數據保存以及用戶指令響應3個方面的工作.在實際測試過程中,地面測試軟件正確工作最為關鍵的是其能否可靠地訪問測試設備的各種硬件,可靠地進行數據交換,而不使測試數據發生錯誤和丟失.在軟件中采用單線程的停等數據接收處理方法或是結構欠佳的多線程數據接收處理方法都不能較好的解決問題,很容易造成用戶輸入長時間得不到響應、丟失測試數據或是數據處理不及時造成測試錯誤.

論文針對星用地面測試軟件的上述特點以及程序設計時出現的問題,提出一種適用于衛星電子設備測試的基于多種并發技術的軟件設計方法,并采用該方法設計了星用測試設備的地面測試軟件.

1 基于多種并發機制的軟件設計方法

作為一種衛星電子設備測試系統的專用軟件,地面測試軟件的功能主要包括:

1)提供用戶接口和界面,及時響應用戶的指令.衛星電子設備的測試一般采用人機交互方式,用戶通過軟件發出測試指令并查看測試結果,因此地面測試軟件需要及時響應用戶的輸入.

2)對測試設備硬件進行訪問,其軟件的功能與硬件結構直接相關.在實際測試系統中,與地面測試軟件進行數據交換的測試設備硬件多采用網絡、串行總線以及各種專用接口,地面測試軟件通過訪問這些硬件發送測試指令,并接收測試的數據和結果,測試軟件對測試設備硬件的訪問是其最重要的功能.

3)提供數據庫訪問功能,實現大數據量存儲.在測試過程中,一般需要保留測試過程數據和測試結果,且數據量較大,因此地面測試軟件中需采用數據庫對數據進行存儲和管理.

基于上述功能需求,地面測試軟件處理好對多種硬件的訪問、基于數據庫的數據存儲、以及用戶界面之間的協調同步是軟件正確和可靠的保證.為此,本文提出一種采用多線程、消息機制、共享緩沖區和P-V操作4種并發機制相結合的地面測試軟件設計方法.

1.1 測試系統的組成結構

衛星電子設備測試系統的典型組成結構如圖1所示,由用戶、測試系統和被測系統3個部分組成,測試系統又可分為測試系統硬件和地面測試軟件.測試過程是用戶通過地面測試軟件輸入測試指令,軟件對指令進行分析后通過測試系統硬件再把測試指令發送到星上電子設備,星上電子設備把測試結果返回給測試系統的硬件,地面測試軟件從測試系統硬件中讀取測試結果輸出到用戶界面,并訪問數據庫保存測試的過程數據和結果數據.

星上的電子設備作為被測系統,通過線纜直接與測試系統的硬件相連接,這部分接口的信號一般既包括數字信號又包括模擬信號,測試系統硬件通過接收地面測試軟件的指令控制數字和模擬信號的輸出,對衛星電子設備施加激勵信號,取得電子設備在指定激勵下的響應,并把響應作為測試結果返回給測試系統.

在圖1的測試系統組成結構中,影響地面測試軟件可靠性和并發性的最核心部分是測試過程處理程序,該程序提供3類外部接口完成地面測試軟件的并發處理:①與硬件板卡的接口;②與數據庫的接口;③與用戶的接口.軟件運行過程中,外部接口對軟件功能和實時性的需求不同,用戶界面接口需要的響應時間一般是百毫秒級,硬件數據訪問一般是納秒級或者更快,而數據庫訪問主要涉及磁盤訪問和檢索指令,只有當大量數據寫入或檢索時才需要較長時間.衛星電子設備測試系統中涉及的硬件接口形式多樣,常用的有以太網、RS422串口、CAN總線、1553B總線,以及各種專用接口,而且在一個實際的測試系統中往往存在多種硬件接口,如果對這些復雜多樣的硬件接口處理不好,則會造成數據丟失、測試數據錯誤、用戶輸入不能響應甚至程序崩潰.因此,在星用地面測試軟件設計的關鍵是協調好各種硬件接口、數據庫訪問,以及響應用戶輸入之間的關系,保證地面測試軟件的可靠運行.

1.2 軟件設計方法

針對衛星電子設備測試系統的需求,在地面測試軟件中采用多種并發機制,即多線程、消息機制、共享緩沖區、P-V操作,并在程序設計中把他們結合起來使用.

(1)多線程的程序框架

線程是Windows操作系統中能被調度的最小單位,與進程相比較具有資源開銷較小,且線程間通信處理簡單的特點,采用多線程進行程序設計能有效提高系統的并發性.在衛星電子設備測試軟件中采用多線程結構的主要目的是保證通過訪問硬件接口實現可靠的數據發送、接收和處理.這種數據一般都具有某種協議和格式,在發送數據時,需要封裝一些協議信息,最終交由硬件傳輸的數據則是包含了協議信息的數據;接收數據時過程正好相反.收發數據的層次結構如圖2所示.

圖2 硬件數據收發的層次結構Fig.2 Hardware hierarchical structure for data receive and transmission

在實際的測試系統中,地面測試軟件需要負責多種硬件接口數據的收發和處理,因此程序中采用4類線程:①程序的主線程,用于處理用戶界面,并負責創建和管理其他子線程;②每個硬件板卡對應一個數據接收線程,只負責從該板卡接收數據;③一個或多個數據處理線程,負責對從硬件接收的數據進行協議解析,以及向硬件發送帶有協議的數據;④數據庫訪問線程,負責數據庫讀寫.整個地面測試軟件的結構如圖4所示,主線程不斷處理用戶輸入、顯示輸出信息,并協調各子線程的工作,其余每個線程都設置一個無限循環,不斷處理各自負責的任務,在每次循環中都要自掛起一段時間,以便交出處理器時間讓其他線程能夠調度.

(2)基于共享緩沖區的數據交互

建立了多線程結構的軟件中,各線程間需要進行數據交互,例如硬件數據接收線程需要把收到的數據傳遞給數據處理線程,以便對數據進行協議解析,而數據處理線程又需要把解析好的數據傳遞給主線程以便顯示和存儲.共享存儲區是多任務間通信的主要方法,在多線程的程序中就表現為全局性的變量.地面測試軟件采用共享緩沖區實現線程間的數據交換,共享緩沖區設置如圖5所示,緩沖區采用順序循環結構,并設置讀寫兩個指針分別指示讀寫的位置,每個單元代表一個數據記錄,數據緩沖區的大小根據實際應用情況決定,當采用合適的長度時能夠可靠地實現數據接收.數據緩沖區的典型數據結構如圖3所示.

圖3 數據緩沖區的典型數據結構Fig.3 Tytical bata structure of data buffer

(3)基于P-V操作的共享緩沖區讀寫保護

當兩個或兩個以上的線程同時訪問共享緩沖區時,可能發生數據訪問沖突,這種情況下容易造成緩沖區中數據的不一致,因此需要引入臨界資源互斥訪問機制,P-V操作能較好地解決對共享緩沖區的互斥訪問.以兩個線程同時訪問一個共享緩沖區為例,其通過P-V操作的訪問過程如圖6所示.

圖6 兩個線程采用P-V操作訪問共享緩沖區的過程Fig.6 Two threads accessing shared buffer with P-V operation

線程通過P-V操作訪問共享緩沖區的算法如下:

①Create Mutex Mbuf;

②P(Mbuf);

③Access to shared buffer;

(4)利用消息機制實現即時通知

多線程間采用共享緩沖區機制進行數據交互更多是一種查詢的通信方式,需要數據接收線程不斷查詢數據緩沖區中是否有新的數據達到以便進行處理,而引入消息機制則提供了線程間的類似中斷式的高效通信方式,這種方式能夠及時的把諸如數據接收完成等信息傳達給其他線程,以便能及時的處理、存儲或顯示信息.可見為了實現高效運行,地面測試軟件的多個線程間除了采用共享緩沖區和P-V操作進行數據交換外,還需要利用消息機制進行協調.

地面測試軟件的消息機制主要可以用于下層線程通知上層線程,即服務線程通知被服務線程.在衛星電子設備測試系統中,每次測試由用戶通過地面測試軟件輸入測試指令主動發起,測試指令經過發送數據緩沖區并由數據處理線程發送給測試系統的硬件,測試結果的接收通過與硬件相對應的硬件數據接收線程i實現,硬件數據接收線程i完成數據接收后可通過消息通知數據處理線程,數據處理線程完成數據處理后把結果通過消息傳遞給用戶界面,此時主線程即能夠顯示測試結果,并把數據保存到數據庫中.利用Visual C++的消息機制,可以方便的實現消息通信,消息機制主要由消息映射表和消息處理函數組成,消息映射表用于把指定的消息與其處理函數聯系起來,當接收到消息時自動調用消息處理函數;消息處理函數則包含了用戶實現的對該消息的處理程序.地面測試軟件的利用消息實現的通信過程和消息機制如圖7所示.

2 一個測試系統的實例

采用上述軟件設計方法,開發了某星用電子設備測試系統的地面測試軟件.整個測試系統的組成結構可參見圖1,測試系統與被測電子設備的連接接口有兩種:以太網和RS422串口;數據庫采用ACCESS數據庫.地面測試軟件的開發采用Visual C++6.0,軟件的組成結構如圖8所示,對網絡的訪問采用從CSocket繼承的類實現,由于CSocket類的數據接收函數OnReceive()的消息映射也是一種并發機制,因此對網絡接口不再使用線程進行實現;對于RS422串口數據接收采用單獨的線程;創建一個數據處理線程負責對以太網接口和RS422串口的數據進行處理,完成接收數據解析以及帶有幀格式數據的發送;對數據庫訪問采用單獨線程.線程之間通過帶有P-V操作的共享數據緩沖區交換數據,此外數據處理線程通過消息機制及時把數據處理情況通知主線程.

3 結論

論文針對衛星電子設備地面測試軟件需要處理多種硬件接口的特點,提出一種采用多線程、消息機制、共享緩沖區和P-V操作多種并發機制相結合的程序設計方法.地面測試軟件具體設計方法是,軟件首先建立在層次化的多線程結構之上,底層線程向上層線程提供服務,在相鄰兩層線程之間通過共享緩沖區交換數據,同時把共享緩沖區作為臨界資源進行保護,采用P-V操作進行訪問,防止出現數據的不同步,此外底層服務線程采用消息機制通知用戶界面數據處理的狀態和結果.最后,論文給出了一個某型號衛星電子設備地面測試軟件的實現,實際應用表明這種并發程序設計方法是成功和有效的.

[1] 雷訇,李強,左鐵釧.新型大功率激光光束光斑質量測試儀的軟件開發[J].北京工業大學學報,2001,27(2):197-201 Lei H,Li Q,Zuo T C.Software development of new type high-power laser beam quality analyzer[J].Journal of Beijing Polytechnic University,2001,27(2):197-201

[2] 王俊國,周建中.Visual C++6.0環境下的過程控制系統軟件設計與實現[J].工業儀表與自動化裝置,2005(6):45-47 Wang J G,Zhou J Z.The software design and implementation of a process control system based on the Visual C++6.0[J].Industrial Instrumentation & Automation ,2005,(6):45-47

[3] 黎建偉,干方建,王碩桂.基于運動控制器的數控軟件研究與開發[J].工業控制計算機,2009,22(6):30-31 Li J W,Gan F J,Wang S G.Research and develop on CNC software based on motion controller[J].Industrial Control Computer,2009,22(6):30-31

[4] 陳敏,湯曉安.虛擬儀器軟件LabVIEW與數據采集[J].小型微型計算機系統,2001,22(4):501-503 Chen M,Tang X A.Virtual instrument software-labview and data acqusition[J].Journal of Chinese Computer Systems ,2001,22(4):501-503

[5] 陳懷民,安玉嬌,王亮.基于LabWindows/CVI虛擬測試系統軟件設計與實現[J].測控技術,2009,28(11):59-62 Chen H M,An Y J,Wang L.Design and implementation of virtual test system based on LabWindows/CVI[J].Measurement& Control Technology,2009,28(11):59-62

猜你喜歡
數據庫系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 欧美在线精品怡红院| 欧美日韩中文字幕二区三区| 国产中文一区a级毛片视频| 亚洲乱码视频| 自拍欧美亚洲| 香蕉综合在线视频91| 1级黄色毛片| 亚洲精品卡2卡3卡4卡5卡区| av一区二区三区高清久久| 奇米影视狠狠精品7777| 亚洲a级毛片| 国产香蕉在线| 精品剧情v国产在线观看| 9966国产精品视频| 国产精品成人免费综合| 欧美激情视频在线观看一区| 五月激情综合网| 在线无码av一区二区三区| 呦女精品网站| 91在线激情在线观看| 久久中文字幕av不卡一区二区| 亚洲欧美综合另类图片小说区| 97免费在线观看视频| 手机在线看片不卡中文字幕| 天堂亚洲网| 成年人视频一区二区| 手机在线免费不卡一区二| 国产96在线 | 亚洲视频欧美不卡| 国产精品午夜福利麻豆| 香蕉视频在线观看www| 日本三级精品| 国产午夜不卡| 国产成人做受免费视频| 久久香蕉国产线看观看亚洲片| 不卡午夜视频| 亚洲成aⅴ人在线观看| 国产成人8x视频一区二区| 国产视频欧美| 欧美成人精品一区二区| 无码中文字幕乱码免费2| 色哟哟国产精品| 免费一级成人毛片| 另类欧美日韩| 国产性生大片免费观看性欧美| 欧美精品v日韩精品v国产精品| 亚洲国产亚洲综合在线尤物| 亚洲va视频| 国产精品久久久久久久伊一| 国产精品视频免费网站| 日韩无码精品人妻| 欧美成人在线免费| 亚洲精品麻豆| 欧美日在线观看| 被公侵犯人妻少妇一区二区三区| 亚洲熟女中文字幕男人总站| 毛片久久久| 欧美日韩va| V一区无码内射国产| 一级一级一片免费| 自拍偷拍欧美日韩| 亚洲中文字幕精品| 精品久久香蕉国产线看观看gif| 天天躁夜夜躁狠狠躁躁88| 无码专区在线观看| 在线va视频| 看av免费毛片手机播放| 91极品美女高潮叫床在线观看| 亚洲欧美精品日韩欧美| 欧美亚洲综合免费精品高清在线观看| 中文字幕精品一区二区三区视频| 欧美亚洲欧美区| 日本一本正道综合久久dvd| 亚洲中文字幕久久精品无码一区| 日韩精品一区二区三区中文无码| 國產尤物AV尤物在線觀看| 高清无码手机在线观看| 国产香蕉97碰碰视频VA碰碰看| 爽爽影院十八禁在线观看| 思思热精品在线8| аⅴ资源中文在线天堂| 在线观看免费黄色网址|