1 引言
所謂 通信協議是指通信雙方的一種約定,約定包括對數據格式、同步方式、傳送速度、檢糾錯方式以及控制字符定義等問題作出統一規定,通信雙方必須共同遵守[1]。不同體系結構的系統一般采用不同的通信協議完成系統內部成員之間的通信,這固然為本系統的設計帶來了很大的方便,但因為不同系統的通信協議往往不同,當本系統需要同其他系統進行通信時,會因為協議的不同造成通信障礙[2]。為解決異構系統之間因通信協議不匹配造成的通信困難,需要在兩個系統之間添加一個協議轉換器。目前的通信協議轉換器大多選用或者自行開發專用的網關,但是專用網關由于重用性差,將導致多次的重復開發,浪費大量的人力和物力[3]。
由于不同通信協議的協議格式有許多相近之處(如數據幀由幀頭、數據項、幀尾等組成,包含校驗等處理信息),這就使得設計一個一定程度的通用協議轉換器成為可能[4]。本文通過對現有協議的分析,提供了一種比較通用的協議格式模板,通過對該模板的實例化可得到各種實際協議的格式信息。另外,本文還實現了對符合用本模板所描述協議格式的協議數據處理及轉換過程,并在由哈爾濱工業大學開發的HIT-GPTA平臺上進行了驗證。
2 需求分析
通用網關協議轉換軟件的用戶需求定義如下:
分析現有通信協議格式,提出各種協議的表達方法,并抽象出一個能夠涵蓋大多數常用雷達、導彈協議的協議格式模板,通過對該模板的實例化能夠得到現有格式的描述信息。所建立的模板應提供最基礎的協議元素編輯支持,提供不同數據類型的協議元素的支持,提供元素位定義支持,提供開放式的函數處理功能支持,提供格式描述信息的串行化輸出功能,能夠保存已建立的協議格式信息并在需要時導入該信息。設計符合HIT-GPTA平臺接口規范的協議編解碼組件,該組件能夠加載格式描述文件。協議編解碼組件應提供協議數據的動態處理功能,能夠根據格式描述信息加載相應動態鏈接庫,調用相應動態鏈接庫函數,根據函數參數列表對協議數據元素進行相應處理。
根據用戶的需求定義,可將本系統劃分為兩個主要的功能模塊:協議格式庫管理軟件和協議編解碼軟件。格式庫管理軟件通過對格式模板的實例化,生成具體協議的格式描述信息并串行化輸出為格式特征描述文件;協議編解碼軟件加載格式特征描述文件,并根據用戶所配置的信息初始化網絡收發信息,在平臺開始運行后,接收由網絡傳來的數據并解碼發布,根據所訂購到的數據信息編碼輸出到相應設備。系統用例如圖1所示。
3 協議格式模板設計
協議轉換器的通用性決定于協議格式模板的通用性,為了抽象出一個較為通用的協議格式模板,需要先對通信協議進行分層管理以方便數據結構的設計,然后分析多種具體的協議格式,并得到他們之間格式上的相似之處,進而抽象這些相似之處,形成本系統的數據結構。根據協議分層管理的概念,可將協議分為三個層次:協議集、協議項、協議元素,如圖2所示。
對一些有代表性的協議項進行分析可得以下概念:一個系統所有協議的集合稱之為協議集,可為協議集設計名稱、ID、協議項列表等屬性;每一個協議項又應該有名稱、ID、幀頭列表、元素列表、幀尾列表等屬性。以上協議集和協議項的屬性是一般協議所共有的,對于協議項的組成部分如幀頭、元素、幀尾的具體結構則因協議的不同會有較大的差異。
基于上述概念,采用面向對象的思想,可以進行協議格式模板的設計。協議可以分層表示為協議格式集、格式項和協議元素,故在設計數據結構時可分別設計為格式集類(CProtocolMuster)、格式項類(CProtocolItem)、協議元素類(CProtocolElement)。另外,為了描述協議項的傳輸特性,設計了幀頭、幀尾(CHeadFormat)類;為了支持位處理功能及函數處理功能設計了數據元素位類(CDataBit)和處理函數類(CProcessFun)。
4 軟件的設計與實現
基于用戶需求定義及系統功能分析,采用面向對象的方法對系統進行詳細設計。根據需求分析,需要設計兩個軟件,分別是協議格式管理軟件和協議編解碼組件。格式管理軟件的設計包括軟件的靜態模型、交互模型及用戶界面的設計[5]。協議編解碼組件的設計包含四個方面的內容:解碼類設計、編碼類設計、平臺組件接口類設計和用戶交互界面設計。
格式庫管理軟件為用戶提供可視化界面操作,其內部數據結構為組成格式模板的幾個類,用戶可以利用該軟件建立自己的協議格式庫或加載現有協議格式特征描述文件,其類圖如圖3所示。
協議編解碼軟件加載格式管理軟件所生成的格式特征描述文件,在接收到協議時自動識別協議數據所符合的格式項,利用該格式進行解碼并將協議數據按照HIT-GPTA平臺能夠識別的方式發布出去。另一方面,訂購相關數據并按照與解碼項所對應的編碼項進行編碼并輸出。協議編解碼軟件類圖如圖4所示。
5 軟件測試及結果
本系統測試環境由兩臺通過局域網連接起來的節點計算機組成,其中一臺結點計算機上安裝了格式庫管理軟件和HIT-GPTA平臺,協議轉換在該計算機上完成,另一臺節點計算機作為異構系統與平臺進行通信測試。
系統的測試包括三個部分:格式庫管理軟件的測試、解碼功能測試、編碼功能測試。
格式庫管理軟件測試主要目的是檢測該軟件能否按照需求分析中的要求描述現階段所需要轉換的所有自由協議。
解碼功能的測試方法是由異構系統的功能模塊向HIT-GPTA平臺發送數據,協議轉換軟件接收數據后進行解碼并將協議元素按屬性通過本地通信代理進行發布,或編碼后進行輸出。
編碼功能的測試由試驗組件發起,協議轉換組件將所訂購的數據編碼發布到異構系統的功能模塊,若異構系統所接收的數據符合理論值則測試通過。以下僅給出一條測試用例:
注:輸出數據經過了函數處理,處理方式為是元素0或元素1加上元素2之后乘以元素3。
通過對格式庫管理軟件、解碼過程、編碼過程的測試可以看出,格式庫管理軟件能夠描述常用的雷達、導彈、艦船通信協議的格式;解碼過程能夠將通用的通信協議轉換為HIT-GPTA平臺能夠識別的屬性數據并發布,以供其他組件使用;編碼過程能夠將來自于其他組件的協議數據按照目的設備的協議格式進行編碼并通過網絡傳輸到目的設備。
6 結束語
抽象出了一個通用的格式模板,并為其設計了用戶交互界面;設計了協議轉換組件,能夠轉換符合格式模板的通信協議,使通用計算機具備了HIT-GPTA網關的功能,并結合測試實例進行了軟件測試,實現了通用協議轉換軟件的設計。
參考文獻:
[1] 桑偉.基于ARM的通信協議轉換器的設計[J].自動控制,2007,(4):44-45.
[2] 張源,魏冬邦,康昊.基于XML的測控軟件通信協議的研究[J].遙測遙控,2010,(31-6):42-46.
[3] 張娟鋒,師衛,劉振國.通用通信協議轉換接口的研究與實現[J].電腦開發與應用,2009,(22-5):25-26.
[4] 蔣浩天.綜合網絡多協議轉換的研究和實現[D].成都:電子科技大學,2007.
[5] 趙錦蓉.通信協議轉換器及其構造[J].軟件學報,1995,(6):91-98.
作者簡介:佟立飛(1979-),男,工程師,研究方向:指揮控制。