可变消息格式报文编解码工具设计

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报文编解码方法

当前指挥控制系统中的报文编解码构件通过构建统一的报文规则模型,实现战术数据报文的编解码、报文校验、报文转换功能。现有指挥控制系统报文编解码构件由通用报文编解码、报文基础数据脚本管理、报文编解码数据文件等多个部分组成。其操作流程是首先通过报文基础数据脚本管理组件建立报文描述的数据文件;其次在报文编码前确定编码报文的类型和子类型,在模版分类表中映射到相应的记录并获得模版编号;再次,从待编码报文结构中提取相应的数据元素;最后,将模版编号和数据元素按需组装成短报文[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通信系统的编解码技术研究