?

可變消息格式報文編解碼工具設計

2016-08-10 09:48畢學軍徐大超劉海寧石長愛
兵器裝備工程學報 2016年7期
關鍵詞:編解碼

畢學軍,徐大超,肖 慶,劉海寧,石長愛,高 飛

(1.裝甲兵工程學院 信息工程系,北京 100072; 2.中國兵器科學研究院,北京 100012;3. 95942部隊,武漢 430313)

?

可變消息格式報文編解碼工具設計

畢學軍1,徐大超1,肖慶1,劉海寧2,石長愛3,高飛3

(1.裝甲兵工程學院 信息工程系,北京100072; 2.中國兵器科學研究院,北京100012;3. 95942部隊,武漢430313)

摘要:VMF(可變消息格式)報文有著廣泛應用前景。但當前的模擬生成方法生成報文效率低,對原系統數據庫依賴大,在應用過程中無法滿足實際需要。為了解決這一矛盾,分析了VMF的報文格式,建立了VMF戰術消息結構描述數據庫,從關鍵代碼和算法上改進了VMF編解碼代碼生成技術,設計了VMF報文編解碼工具。

關鍵詞:指揮信息系統;VMF;編解碼

本文引用格式:畢學軍,徐大超,肖慶,等.可變消息格式報文編解碼工具設計[J].兵器裝備工程學報,2016(7):94-101.

Citationformat:BIXue-jun,XUDa-chao,XIAOQing,etal.DesignofVMFMessageEncodingandDecodingTool[J].JournalofOrdnanceEquipmentEngineering,2016(7):94-101.

近年來,隨著VMF逐漸展露其優越性,各國軍隊廣泛采用了VMF報文。VMF報文具有大小可變,節省帶寬以及在惡劣通信條件下有強大的生存能力等諸多優點[1]。

目前,VMF報文在應用過程中存在著很多不足之處,如VMF編解碼效率低,對原系統的數據庫依賴大,無法滿足實際的需要。本文設計了一種VMF報文編解碼工具,實驗證明能夠大幅度提高編解碼效率。

1VMF報文的應用現狀及報文結構描述方式

1.1VMF報文的應用現狀

戰術消息標準是指揮控制系統中戰術系統間信息交換的信息表示、編碼規范,是保證各系統實現互連、互通、互操作的基礎。目前美國等國家的指揮控制系統中主要采用VMF戰術消息與其他系統進行數據交換。

現在大多數的指揮控制系統中的報文編解碼構件以C++ 函數調用的方式為應用程序提供二次開發接口,它需要滿足針對單個應用程序的報文的編解碼處理需求。在2.4GHz主頻,2G內存,100M帶寬局域網環境下,現有指揮控制系統報文編解碼構件對本地編解碼動態庫的編碼速度要求為≤80ms(不超過250字節的報文)。該性能指標基本滿足單個應用軟件處理單條報文的需求,但無法滿足大批量交互報文的編解碼性能的需求。

同時VMF有很多技術優勢,如:

1) 信息編碼標準是面向比特。它不僅可以減少發送的數據量,而且可以提高機器自動識別度和處理效率;

2) 由于其編碼標準,VMF可利用網絡資源,提高信息的適應性和有效性;

3)VMF的具體格式和長度可以在實際應用中調整;

4) 由于其靈活的語法,VMF只允許用戶發送必要的信息,所需信息的大小可以改變,從而減少傳輸的數據量并節省帶寬[2]。

綜上所述,VMF報文編解碼有著極大的技術優勢,但同時在應用方面還存在著諸多不足。

1.2VMF報文結構描述方式

VMF在進行信息交換時,會受到各種各樣干擾因素的影響,對其產生影響較大的是傳輸信號的強弱。一般來講,在對VMF實行傳輸時,可以使用按需傳輸的思想,通過這種思想進行傳輸,將會極大增加傳輸信息的效率。

VMF消息格式采用如表1的形式進行描述,報文標準中每條報文以Kn.m形式進行標識,其中K為報文所屬系列,n是報文數據的目前方位,m是報文的唯一編號。根據報文內容和字段的需要,VMF中包含了多種元素,因而它可作為對數據元素字典的參考,數據元素字典的結構如圖1所示,數據元素字典對各數據元素的值域、取值含義進行定義,包含了標識數據元素類別的數據域標識(datafieldsidentifier,DFI)、標識數據域使用方式的數據使用標識(datauseidentifier,DUI)、描述屬性的數據項(dataitem,DI)[3]。

表1 VMF消息結構描述方式

圖1 VMF數據字典結構

表2給出了一個實際的VMF消息結構示例,在該表中可以看到,一條自由文電消息由一個FRI指示符和一個可重復的文本字段構成,該報文最多可傳輸6條長度不超過2048個字符的字符串信息。如需要通過自由文電報文傳輸一條內容為“請求空中支援”的文本信息時,該文本信息被編碼為“2ED7 81E7 77E1 83 4DAD4FA9 5D01 0F”14個二進制字節數據,可見,相對于固定長度的報文格式,VMF消息格式可自動根據傳輸內容調整數據編碼長度,最大限度地節約傳輸信道資源。

表2 自由文電報文實例分析

2VMF報文編解碼工具設計

在通信過程中,戰術消息的編碼解碼是一個較為復雜而又必須解決的問題。指揮控制系統報文編解碼構件服務中的各構件相互依賴性強,耦合度高,其設計目的是針對低密度的報文進行編解碼,性能指標不能滿足大數量級報文處理的需求。因此,需要設計低耦合,可以高速處理大量報文的編解碼工具。

2.1VMF報文編解碼方法

當前指揮控制系統中的報文編解碼構件通過構建統一的報文規則模型,實現戰術數據報文的編解碼、報文校驗、報文轉換功能?,F有指揮控制系統報文編解碼構件由通用報文編解碼、報文基礎數據腳本管理、報文編解碼數據文件等多個部分組成。其操作流程是首先通過報文基礎數據腳本管理組件建立報文描述的數據文件;其次在報文編碼前確定編碼報文的類型和子類型,在模版分類表中映射到相應的記錄并獲得模版編號;再次,從待編碼報文結構中提取相應的數據元素;最后,將模版編號和數據元素按需組裝成短報文[4]。解碼的過程就是對上述操作的逆處理,如圖2所示。

圖2 VMF報文編解碼處理流程

2.2VMF戰術消息結構描述數據庫

本文建立戰術消息結構描述數據庫,對戰術消息結構及其處理規則進行描述,并在其基礎上,通過建立輔助代碼生成工具生成VMF報文編解碼程序代碼的方式解決上述問題。

VMF編解碼程序生成工具的設計邏輯圖如圖3所示。VMF編解碼生成工具依托報文結構數據庫,結合應用程序源文件生成.cpp和.h文件,通過“硬編碼”的方式,與C++ 編譯器、鏈接器連接,生成應用程序可執行文件。該方式獨立于各類編譯器和構件,不同于現有報文編解碼構件服務編解碼過程中的對腳本和數據元素字典的逐次訪問,在設計理念上優越于傳統指揮控制系統報文編解碼構件服務。

圖3 VMF編解碼程序邏輯框圖

通過VMF戰術消息結構描述數據庫對戰術消息標準規定的所有數據項、數據項字典、數據變換關系以及戰術消息組成結構進行描述,作為戰術消息編解碼工具生成各消息編解碼程序代碼的基礎。

數據庫由數據項、數據域、數據字典和數值變換規則4個數據表組成,如圖4所示。

圖4 VMF戰術消息結構描述數據庫

其中〈pk〉表示數據表的主鍵,〈fk〉表示數據表的外鍵。數據項表描述了戰術消息結構最簡單的各類信息。數據域描述了某一條消息具體的邏輯構成。數據字典描述了數據項可變值的具體含義。數據變換表描述了數據物理值到邏輯值的線性映射。以經度數據項為例,經度的物理的表示不能在報文中直接傳輸,應轉換為二進制編碼,通過下列分段函數完成從整數到二進制編碼的變換(l為經度物理值,L為變換后的經度邏輯值)。

(1)

2.3基本數據類型字段編碼處理過程

VMF消息中的基本數據字段,從數據類型上看可分為兩種基本類型:整數類型和字符串類型,各種類型需要采取不同的方式進行處理。

對整數數據字段編解碼處理的算法模型偽代碼如下:START_BYTE_ADDR_BUF()

CALCULATE_BITOFFSET()

WHILE(!RECHEDTHETOTALNUMBEROFENCODING)

{INPUT_VALUEISSHIFTEDTOTHERIGHTONE

IF(THELOWESTINPUTVALUEFORTHEINPUTVALUEIS1)

SET_P_BITOFFSET=1

BITOFFSET++ //BITOFFSET代表位偏移量

IF(BITOFFSET= 8)

{BITOFFSET= 0

P++}

IF(REACHEDTHETOTALNUMBEROFENCODING)

CODE_SUCCESS}

CALCULATETHEENDADDRESSOFTHEINPUTBUFFER

CALCULATE_BITOFFSET()

V=0

IF(BITOFFSET==1)

SETTHELOWESTLEVELOFVTO1

BITOFFSET--

IF(BITOFFSET==0)

BITOFFSET=7

P--

IF(REACHEDTHETOTALNUMBEROFENCODING)

DECODE_SUCCESS對于整數數據字段的編解碼處理流程如圖5、圖6所示。

可變消息格式是按位編解碼的處理方式,不同于計算機處理按字節處理的方式,所以采用位操作的方式進行編解碼操作。在可變消息格式報文中,字符串數據采取可變長度的連續8位字節流表示,在字符串實際長度不足最大編碼位數時,以8位連續的0作為結束標志,而在字符串實際長度與最大編碼位數相同時,則不需填充結束標志。因字符串編碼處理過程的特點,程序中需記錄消息標準中字符串數據的最大編碼長度,因此程序通過下述結構對字符串數據進行描述。

圖5 整數數據類型字段編碼處理過程

圖6 整數數據類型字段解碼處理過程

字符串數據的編碼處理如圖7、圖8所示。

圖7 字符串數據編碼處理過程

圖8 字符串數據解碼處理過程

2.4可選與可重復數據項表示及編碼處理

在VMF消息中,數據項之前都可附加PFI或GFI指示符,表明該數據項在實際消息中是否存在。如果對應的指示符為0,表明后續的數據項在實際消息內容中不存在,為此,程序中使用下述算法模型對帶有出現指示符的可選數據項進行描述。

ENCODE1BYTETOPRESENT

IF(PRESENT= 1)

ENCODINGVALUETOOUTPUTBUFFER

DECODEABITTOPRESENTFROMTHEINPUTBUFFER

IF(PRESENT=1 )

DECODEVALUESFROMTHEINPUTBUFFER通過上述結構設計,可選數據項采用的編解碼過程如圖9、圖10所示。

圖9 可選數據項編碼處理過程

圖10 可選數據項解碼處理過程

在VMF消息中,數據項前可以使用FRI或GRI指示符進行控制,表明該數據項或組可以在消息中多次出現,如果指示符值為0,表明該項是最后一次出現,否則,表明該項后仍然存在同類數據內容。

通過上述結構設計,可重復數據項采用的編解碼過程如圖11、圖12所示。

圖11 可重復數據項編碼處理過程

圖12 可重復數據項解碼處理過程

VMF消息中整數類型數據項可采取枚舉值或數值變換方式,用以表示實際的物理含義,為便于統一處理,根據上述數據庫中數據項的描述記錄描述程序中定義函數:

bool(*strtoval) (constsd::string&str,__v_int32 &val);

bool(*valtostr) (const__v_int32 &val,std::string&str);

將數據項取值在字符串表示的物理值和邏輯值之間進行轉換,并針對每個整數類型的基本數據項,生成對應的數據值轉換函數。

2.5VMF報文輔助代碼生成工具設計

一套較為完備的消息標準,通常含有大量的VMF消息類型[5],而每條消息也通常具有較為復雜的內部結構[6],為表示這些消息的內部結構并實現消息的編解碼處理,完全由手工編寫程序代碼顯然不現實。因此,需要開發軟件工具輔助程序代碼的生成,為便于消息結構描述和編解碼程序代碼的自動生成,程序中定義如表3所示的一組宏。

表3 編、解碼輔助宏定義

在這組宏的輔助下,依據數據庫中對于戰術消息結構的描述,經過處理即可完成戰術消息表示和編解碼處理的程序代碼,以用于標識導航的Kμ.β報文為例,通過結構化的程序獲得的報文數據結構如表4所示。

表4 通過程序得到報文數據結構解析

通過已經定義的編、解碼輔助宏,以Kμ.?作為TYPENAME的參數,依次使用BEGIN_PACK、END_PACK、BEGIN_UNPACK、END_UNPACK完成對Kμ.?導航報文的編解碼。初始報文各項參數大小的值分別為0,0,3,4,7,0,1 600。經過編碼的處理后各項參數大小的值仍為0,0,3,4,7,0,1 600。其0代表數組數據類型,非0代表數據類型的大小。上述結果證明報文編解碼過程在結構上準確無誤。

2.5.1VMF報文編解碼工具的實現

VMF編解碼輔助生成工具用于自動生成VMF報文編解碼程序。用戶通過該工具可進行VMF消息基本數據項和VMF消息結構的編輯,編輯的結果存放在消息結構描述數據庫中。完成VMF消息基本數據項和VMF消息結構的編輯后,工具首先進行數據項的依賴分析,然后按依賴關系將數據項進行排序并依次生成數據項的值變換處理函數和VMF消息表示數據結構,最后生成各VMF消息的編解碼函數。其處理過程如圖13所示。

圖13 報文編解碼程序代碼生成處理過程

VMF編解碼輔助生成工具軟件運行界面如圖14所示。左側數據項窗口顯示消息描述數據庫中的數據項,通過右鍵點擊的方式可以編輯相應數據項的數據字典。右側VMF消息中顯示消息描述數據庫中的VMF消息類型。

圖14 VMF編解碼輔助生成工具軟件運行界面

2.5.2與現有報文編解碼構件編解碼性能比較

在相同硬件條件下,通過對不同大小的報文分別用實裝報文編解碼構件和VMF報文編解碼工具進行編解碼,測量編解碼所需時間以比較兩種工具的性能。

測試對象:編解碼戰術定位報文所需的時間

硬件環境:2.53GHz主頻,IntelCore3CPU,4G內存的計算機

操作系統:WindowsXP

分組方法:設置戰術定位報文中重復組個數1~64,其相應的報文大小為24~1493字節

測試方法:由于單次編解碼報文的時間極短難以測量,在考慮到不影響實驗結果并減小誤差的情況下,本實驗采用將同一報文編解碼105次取平均值的方法計算單次編解碼報文的時間。分別采樣開始編解碼時間t1和結束編解碼時間t2,取它們之間的差值,然后除以105即為對相同報文編、解碼一次的時間t0

(2)

測量結果:分別測量VMF編解碼輔助工具所產生代碼與實裝報文、解碼構件對戰術定位報文的編解碼耗費時間,對比詳細結果如表5所示。

現有指控軟件報文編解碼構件與本文提出的VMF編解碼方法的編解碼時間執行效率比較如圖15所示。

圖15 VMF編解碼與現有指揮控制系統報文編解碼構件執行效率比較

表5 VMF與實裝報文編解碼構件編解碼時間的數據結

由于VMF編解碼方法的編解碼效率遠高于實裝報文編解碼構件的編解碼的效率,圖15很難看出VMF編碼解碼時間的相互關系,將VMF編解碼方法隨著戰術定位報文中重復組個數增加,所需時間線性變化的過程如圖16所示。

圖16 VMF編解碼執行效率比較

結果分析:通過兩種方法對戰術定位報文編解碼執行時間的比較,可見在報文大小為1493字節時,VMF解碼效率提高了34倍,編碼效率提高了118倍。從其中可以看出,兩種編解碼方法的時間復雜度都隨報文大小增加呈線性增長即O(cn),但現有指控軟件報文編解碼構件和本文提出的VMF編解碼方法在線性復雜度常數c上存在很大差異(現有指控軟件報文編解碼構件與本文提出的VMF編解碼方法在編解碼效率上相差兩個數量級)。其原因是,現有指控軟件報文編解碼構件將報文的結構和數據字典信息存放在數據文件中,在報文編解碼的過程中需要頻繁地訪問數據文件,而本文提出的VMF編解碼方法將報文的結構和數據字典信息硬編碼在自動生成的C++ 源代碼中,在運行時不再需要訪問外部數據,大大提高了編解碼的效率,從而滿足數據網關集中處理大量戰術消息的需求。

3結論

本研究在對VMF報文結構描述的基礎上,通過分析VMF報文編解碼方法,創造性的建立了VMF戰術消息結構描述數據庫,從關鍵代碼和算法上研究了VMF編解碼代碼生成技術,最終完成了VMF報文編解碼工具的設計。經過實驗驗證,本方法大大提高了編解碼的效率。本工具的設計具有極高的應用價值,可以大大提高程序員編寫相應指控軟件速度,還能應用到部隊指揮控制軟件中,從而大大提高作戰時信息傳遞效率。

參考文獻:

[1]張佳晨,吳澤民,田暢.VMF編、解碼器與指控系統通用接口的設計[J].軍事通信技術,2011(3):1-7.

[2]劉巍,張慕華,劉永平,等.無連接多級可靠傳輸協議的研究與設計[J].計算機應用,2007(B12):29-31.

[3]耿臘元,毛玉泉,丁笑亮,等.基于VMF的近距空中支援應用研究[J].艦船電子工程,2009,29(7):9-12..

[4]RODRIGUESRB,MENDESVMF,CATALAOJPS.LightningDataObservedWithLightningLocationSysteminPortugal[J].IEEETransactionsonPowerDelivery,2010,25(2):870-875.

[5]WANGP,LUM,LIY,etal.AnAirborneLaser(ABL)WeaponSimulationSystemBasedonHLA[J].JournalofNorthwesternPolytechnicalUniversity,2011,29(2):198-204.

[6]王璇,羅強一,陳少卿.可變報文格式測試工具設計方法[J].測試技術學報,2015(1):41-47.

(責任編輯楊繼森)

收稿日期:2016-01-29;修回日期:2016-02-29

作者簡介:畢學軍(1975—),男,碩士,副教授,主要從事指揮信息系統、軟件測試研究;徐大超(1992—),男,碩士研究生,主要從事指揮信息系統、軟件測試研究。

doi:10.11809/scbgxb2016.07.021

中圖分類號:TP311.1

文獻標識碼:A

文章編號:2096-2304(2016)07-0094-08

DesignofVMFMessageEncodingandDecodingTool

BIXue-jun1,XUDa-chao1,XIAOQing1,LIUHai-ning2,SHIChang-ai3,GAOFei3

(1.InformationandCommunicationEngineering,AcademyofArmoredForcesEngineering,Beijing100072,China; 2.ChineseAcademyofArmamentScience,Beijing100089,China;3.TheNo. 95942ndTroopofPLA,Wuhan430313,China)

Abstract:VMF (Variable Message Format) message has a broad application prospects. But today’s simulation generation is too low and has a great dependence on the original system database, which can not meet our needs in practical applications. To solve this cntradiction, firstly, paper analyzed the VMF message format. Then, we established the VMF tactics memssage structure describes database, and improved the VMF codec code generation from the key code and algorithms. We designed VMF message codec tools.

Key words:command information system; VMF; encoding and decoding

【信息科學與控制工程】

猜你喜歡
編解碼
ASN.1 的PER 分層運行庫系統的設計和實現
基于單片機的紅外解碼器設計
基于FPGA的CMI編解碼設計
基于FPGA的AMI編解碼設計
1553B總線控制器編解碼設計
盲去模糊的多尺度編解碼深度卷積網絡
為多重編解碼世界做好準備
大型民機試飛遙測視頻編解碼方法研究
數字水準儀測量編解碼技術研究
基于Netty的RPC通信系統的編解碼技術研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合