專利名稱:一種實時推進下的多平臺混合通信機制的制作方法
技術領域:
本發明屬軍事裝備模擬訓練仿真技術領域,涉及一種模擬訓練系統實時推進下的多平臺混合通信難題的解決方法。
背景技術:
為滿足軍事裝備日常操作訓練的需要,解決實裝訓練中人多機少和效費比低等矛盾,在充分考慮部隊訓練需要的基礎上,開發了模擬訓練系統,其中軟件系統的開發是模擬訓練系統研制的核心,而通信是連接軟件系統各功能模塊的紐帶。基于單一通信手段的軟件通信已經得到了很好的解決,但是綜合運用多種通訊手段,實現其優勢互補已經成為新的趨勢。模擬訓練系統是由多個平臺模塊組成的綜合性裝置,各個平臺模塊由于硬件組成的不同而各具特點。為實現各個平臺模塊之間的高效實時的通信,保證模擬訓練系統按正確的時序關系實時推進,開發出而基于多種通訊手段的多·平臺混合通信機制成為軍事裝備模擬訓練領域的新的難題,此難題的解決將具有重大的軍事意義。
發明內容
本發明的目的在于解決多平臺多模塊間軟件通信難題,確保軟件系統數據交換得以較好地實現,滿足武器模擬訓練系統軟件對通信實時、可靠和高效的要求。本發明的技術解決方案為I主控機和從控機之間的串行通信在模擬訓練系統中,主控機和從控機等控制節點異步工作,為了檢測系統性能,要求各控制節點通過串行通信端口實時發送本節點的檢測數據、數據有效時刻與發送時刻之間的延遲量。本發明在各個節點中結合實時鐘(Real-time clock,RTC),實現串口數據的精確實時發送。在各個節點中,PC104模塊為節點的主控模塊,其主要功能是接收外部節點發送的指令及數據。同時本節點接收外部節點發送的校時命令,實現與整個模擬訓練系統的時鐘統一。實時鐘運行原理如圖I所示。檢測數據實時發送的基本原理是RTC模塊維持系統時鐘,數據生成模塊準備檢測數據并記錄數據產生時刻,數據發送模塊讀取發送時刻時鐘計算數據延遲量并發送數據,如圖2所示。當某幀數據正在被發送時,即使發送FIFO可寫,也不能再寫入下一幀數據,因為其發送時刻不確定。利用發送中斷的產生原理,在ISR中進行數據發送,當發送完成后產生一次發送保持器中斷即可發送下一幀數據。因此,設計合理的中斷控制方式是實現多幀數據實時發送的關鍵。(I)實時鐘中斷掛接及中斷處理RTC基本I/O端口是0x70 0x71,0x70被用作RTC芯片內部寄存器的地址索引端口,而端口 0x71則被用作RTC芯片內部寄存器的數據端口。在讀寫一個RTC寄存器之前,必須先把該寄存器在RTC芯片內部的地址索引值寫到端口 0x70中。RTC芯片具有A、B、C、D等4個控制寄存器。其中,寄存器A控制計時的基頻和輸出頻率;寄存器B控制RTC的工作方式;寄存器C是一系列的標志,反映了芯片向CPU申請中斷的情況;D是RAM有效位的標記寄存器。①實時鐘中斷掛接首先,使能RTC周期中斷,必須將RTC寄存器B的PIE位置1,其中,PIE為周期中斷允許位,PIE = I表示允許周期中斷,PIE = O表示禁止周期中斷。然后使能IRQ8,由于IRQ8由8259A從片控制,因此還必須使能IRQ2。②實時鐘中斷處理實時鐘中斷頻率為1024Hz,主要功能是維持系統時鐘count,每中斷一次產生一 個時鐘滴答(TICK),系統時鐘count增I。在ISR中必須讀RTC的寄存器C,否則RTC將不再產生下一次中斷。由于RTC中斷由8259A從片控制,因此,中斷結束時必須向2片8259A發送中斷結束信號(EOI)。(2)串口中斷掛接及中斷處理①串口中斷掛接串口中斷掛接時,禁止UART中斷,但要使能串口相應的IRQ(如IRQ4)。另外,必須使能UART寄存器MCR中的0UT2位,否則UART芯片的中斷不能向8259A發送中斷信號。由于使用了發送FIFO,還必須將寄存器FCR的BITO置I發送FIFO,其流程圖如圖3所示。②串口中斷處理串口 ISR主要完成數據的發送和中斷禁止控制。在ISR中,查詢數據標識是否有效,數據有效時讀取當前時鐘,并根據數據時刻計算延遲量;將數據和延遲量按幀格式寫入發送FIFO;最后判斷是否還有數據需要發送,無數據需要發送時禁止中斷。其流程如圖4所
/Jn ο完成以上主要模塊設計后,即可在主程序中循環查詢數據標識,當數據有效時使能串口發送中斷。CPU將響應中斷,執行串口 ISR完成數據發送。2主控機和從控機之間的網絡通信在模擬訓練系統中,針對仿真系統對通信性能的要求,結合TCP和UDP網絡協議的優點,提出采用如下通信機制在客戶端,以TCP協議為基礎,加入QoS控制,將數據信息傳遞給服務器。而在服務器端,以UDP協議為基礎,加入差錯控制、主從廣播發送、數據報文定義以及一定的組包和發包策略,將解算得到的相關數據傳遞給客戶端。在允許一定的丟包率的仿真環境中,該種策略可以建立實時性較好的網絡傳輸控制協議。具體說明如下(I)TCP是面向連接的可靠服務,在進行實際數據傳輸之前必須在信源端與信宿端建立一條連接;UDP是面向無連接的不可靠的服務。(2)TCP提供報文序列、流控制、差錯檢測、優先級等控制,對系統資源要求較多;UDP則不需提供控制,對系統資源要求較少。(3)UDP協議減少了建立連接的額外開銷,沒有進行相關控制的負擔,因而具有較高的實時性,UDP實時數據傳輸的好壞直接受網絡帶寬和計算機性能的影響。
(4)流量控制利用TCP方式進行通信時,因為TCP協議已經提供了阻塞監測和流量控制機制,所以不再需要額外的加入流量控制技術;利用UDP方式進行通信,需要加入阻塞監測和流量控制技術。阻塞監測和流量控制都是在發送方,借助發送緩沖來實現。服務端定時檢測發送緩沖,如果發送緩沖被占用到一定的比例,則說明發送出去的報文很多都沒有收到確認,可能是報文沒有到達接收方,也可能是接收方的確認沒有到達發送方。在這種情況下,若發生網絡阻塞,可以通過流量控制加以解決。流量控制主要是控制報文發送的時間間隔,采用Internet標準推薦的慢啟動(Slow-start)和加速遞減(Multiplicative-decrease)技術。3輔助模塊與主控功能模塊之間通信輔助模塊與主功能模塊之間的通信主要存在于主控機中,主控機中相互通信的模塊設計成進程的形式,在通信過程中選用進程間通信機制來實現數據交換。進程間的通信機制包括管道、消息隊列、郵槽等。管道和郵槽是單向通信機制,不滿足訓練系統雙向通信的需要,所以選擇消息隊列來實現各個功能模塊之間的通信。 利用消息實現進程間通信時,為保證數據交換正常進行,需要制定相互間通信協議。協議主要包括兩個方面,一個是輔助模塊發送至主功能模塊的信息的格式,另一個是主功能模塊發往輔助模塊的信息的格式。兩種信息格式相同,但數據編碼字段長度不同,信息格式如圖5所示。信息標識字段占2個字節,在輔助模塊向主功能模塊傳遞數據時可以設為無效,也可以按照需要進行相應的設置。主控功能模塊向輔助模塊傳遞數據時標識信息的來源。主控功能模塊與輔助模塊之間的進程通信流程如圖6所示。輔助模塊中的數據收發線程首先采集操作者發出的各種控制信號,根據通信協議將這些信號進行封裝;然后搜索接收數據的進程,若未找到則發出語音提示,接著進行下一次的搜索,直至找到指定的主功能模塊進程,并將封裝好的數據寫入緩沖區;同時向找到的這一主功能模塊進程發出接收數據消息,主控功能模塊進程在接到通知后,根據消息內指向緩沖區的指針等參數讀取數據,對數據進行解析和處理處理結果一方面通過自身實現人機交互;另一方面傳送到輔助模塊中,由輔助模塊進行相應的響應。根據這一流程,輔助模塊與其它主功能模塊不斷地進行通信,完成各進程間的數據交換。4各功能模塊內部線程間通信軟件系統是基于Windows非實時性操作系統開發的,為了實現模擬訓練的實時性,軟件系統采用多線程技術來滿足訓練系統的要求,主控機上的輔助模塊和從控機上的功能模塊創建兩個線程,一個用于收發數據,另一個運行訓練程序,在主功能模塊中另外創建一個線程用于聲音提示,根據數據交換需要采用全局變量法建立起線程間的通信。線程運行期間,如果數據收發線程正在訪問某一資源,當數據收發線程被掛起,程序切換到數據處理線程運行時,當前線程讀取的數據可能是數據收發線程訪問資源過后的不穩定值,導致程序運行出錯。為了避免這種情況的發生,保證線程間通信的正確,采用互斥對象技術實現線程間同步運行,互斥對象屬于系統內核對象,擁有互斥對象的線程能夠獨占某個系統資源,其它線程無法對這個系統資源進行訪問,這樣就可以避免多個線程同時訪問同一個全局變量的情況。軟件系統的線程間通信流程原理如圖7所示。
圖I是RTC運行原理圖;圖2是串口通信基本原理圖;圖3是串口中斷掛接流程圖;圖4是串口中斷處理流程圖;圖5是進程間通信的信息格式圖; 圖6是進程通信流程圖;圖7是線程間通信流程原理圖。
具體實施例方式下面將提出的多平臺混合通信機制應用于某模擬訓練系統中。該模擬訓練系統由測控計算機、PXI機箱、單片機等平臺組成。其中,測控計算機與單片機采用串口通信方式,測控計算機與PXI機箱采用網絡通信方式,具體實現過程如下(I)在實時鐘中斷掛接及中斷處理過程中,RTC寄存器的宏定義如下#define RTC_READ(addr)({outportb((addr),0x70) ;inportb (0x71) ;})#define RTC_WRITE (val, addr) ({outportb((addr),0x70) ;outportb((val),0x71) ;})寄存器A、B中相關位的含義分別為DO RS0、Dl RSI、D2 RS2、D3 RS3、D4 DV0、D5 DV1、D6 DV2、D7 UIP ;D0 DSE、D1 M24、D2 DM、D3 SQWE、D4 UIE, D5 AIE、D6 PIE、D7 TE。UIP為周期更新標志,DVO DV2為選擇22級分頻器的輸入基準頻率,系統初始化為010,即32768Hz ;RS0 RS3為選擇32分頻器的輸出信號頻率,系統初始化為0110,即1024Hz ;PIE為周期中斷允許位,PIE = I表示允許周期中斷,PIE = O表示禁止周期中斷。實時鐘中斷主要代碼為void interrupt new_int70 (...){BYTE regl ;count++ ;regl = inportb (0x70);RTC_READ (Oxb);outportb (0x70, regl);outportb (0x20, Ε0Ι);outportb (xOaO, Ε0Ι) ;}(2)將測控計算機、PXI機箱分別設置為服務器端和客戶端。在客戶端,以TCP協議為基礎,加入QoS控制,將數據信息傳遞給服務器。而在服務器端,以UDP協議為基礎,力口入差錯控制、主從廣播發送、數據報文定義以及一定的組包和發包策略,將解算得到的相關數據傳遞給客戶端。利用UDP方式進行通信時,加入慢啟動和加速遞減技術以進行阻塞監測和流量控制。將發送間隔時間Tint的最大最小值分別定義為Tmax和Tmin,當發生阻塞時,立即將發送間隔時間調整為Tmax,等到下一次發送時,再次檢查是否阻塞,如果不阻塞,則將發送間隔時間Tint調整為Tmax-Tstep,其中Tstep為發送間隔時間的調整步長,數值往往較小,通常為差值的1/32或者1/64。(3)故障診斷模塊、操作效果考評模塊等軟件模塊安裝于測控計算機內,它們之間的通信選用進程間通信機制來實現數據交換。(4)各軟件模塊在運行時,其內部創建兩個線程,一個用于收發數據,另一個運行訓練程序,為保證線程間通信的正確,采用互斥對象技術實現線程間同步運行。本發明提供了一種多平臺間混合通信難題的解決方法,可以保證軟件系統數據交換得以較好地實現,滿足了模擬訓練系統軟件對通信實時、可靠和高效的要求。該通信機制在某武器系統模擬訓練系統中得到了成功應用。該模擬訓練系統在多個海軍軍械技術保障大隊進行了試訓,得到了一致好評,應用單位認為該仿真訓練系統工能夠滿足某型武器系統實際訓練需要,可大大提高訓練效率、迅速提高戰斗力。有利于延長實際裝備的使用壽命,安全經濟,具有重大的軍事、經濟和社會效益。·
權利要求
1.利用串行通信、網絡通信、進程通信和線程通信等技術設計了多平臺多模塊間的混合通信機制。
2.模擬訓練系統在使用串口傳輸數據時,將實時時鐘中斷掛接及中斷處理技術和串口中斷掛接及中斷處理技術相結合,實現了多幀異步數據的實時發送。
3.模擬訓練系統在使用網絡傳輸數據時,將TCP和UDP網絡協議相結合,提出了一種組件間不對稱通信機制,提高了仿真系統的實時性和準確性。
4.將主控機中相互通信的模塊設計成進程的形式,在通信過程中選用進程間通信機制來實現數據交換,選擇消息隊列來實現各個功能模塊之間的通信。
5.采用互斥對象技術實現線程間同步運行,互斥對象屬于系統內核對象,擁有互斥對象的線程能夠獨占某個系統資源,其它線程無法對這個系統資源進行訪問,這樣就可以避 免多個線程同時訪問同一個全局變量的情況。
全文摘要
本發明屬軍事裝備模擬訓練仿真技術領域,提出了一種虛擬仿真實時推進下的多平臺混合通信難題的解決方法。針對串口實時通信難題,將實時鐘中斷掛接及中斷處理技術和串口中斷掛接及中斷處理技術相結合,實現了多幀異步數據的實時發送;針對網絡實時通信難題,將TCP和UDP網絡協議相結合,提出了一種組件間不對稱通信機制,提高了仿真系統的實時性和準確性;為了實現模擬訓練的實時性,軟件系統采用多線程技術來滿足訓練系統的要求,采用全局變量法建立起線程間的通信。本發明設計的通信機制可以保證軟件系統數據交換得以較好地實現,滿足了武器模擬訓練系統軟件對通信實時、可靠和高效的要求。
文檔編號H04L29/08GK102970316SQ20121003319
公開日2013年3月13日 申請日期2012年2月15日 優先權日2012年2月15日
發明者胡云安, 耿寶亮, 李海燕, 韋建明, 程春華 申請人:中國人民解放軍海軍航空工程學院