CN107547574A - 一种基于通用协议的通信***及方法 - Google Patents
一种基于通用协议的通信***及方法 Download PDFInfo
- Publication number
- CN107547574A CN107547574A CN201711047451.0A CN201711047451A CN107547574A CN 107547574 A CN107547574 A CN 107547574A CN 201711047451 A CN201711047451 A CN 201711047451A CN 107547574 A CN107547574 A CN 107547574A
- Authority
- CN
- China
- Prior art keywords
- item
- agreement
- data
- protocol
- general term
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明涉及一种基于通用协议的通信***及方法,是为了解决现有的协议转换过程中由于需要对于一种用户接口协议定制一套专用的处理方法,易导致扩展代码难度大、开发周期长、通用性差等问题的缺点而提出的,包括:发送端以及接收端,发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,信息接受模块,用于接收来自发送端的信息;协议元素解析模块,用于分析来自发送端的信息,判断信息中每个协议项的协议元素的种类;还包括普通项元素处理模、协议项元素处理模块以及分支项元素处理模块。本发明适用于制定通用用户接口协议。
Description
技术领域
本发明涉及一种基于通信协议的通信***,具体涉及一种基于通用协议的通信***及方法。
背景技术
本发明提及的用户接口协议,是指设备之间用户自定义的传输数据帧的格式(而非世界组织指定的标准协议),是通信双方对进行通信的数据格式的一种共同约定,通信双方必须共同遵守。协议转换是指将按源协议格式打包的数据信息按照目的协议的格式输出。
为实现协议转换,目前通常采用的做法是对于一种用户接口协议定制一套专用的处理方法,通过程序员编写用户接口协议的编码和解码程序实现对某一种用户接口协议的编码和解码,从而实现异构资源设备的互联和信息共享。这种方法虽然能解决不同体系结构的***进行互联时的通信协议不匹配问题,但是当有新的协议版本出现时,需要程序员重新编写新协议的编解码程序,随着试验装备复杂性的日渐提高,这种处理方式易导致扩展代码难度大、开发周期长、通用性差等问题。因此,基于特定协议的专用协议转换方法设计支持所有协议的通用协议转换方法,并在此基础上开发相应的协议编解码软件,实现通用用户接口协议的自动编解码,对于实现异构试验***的互联和信息共享具有非常重要的意义。
要实现协议转换的通用性,需要有一个通用的协议描述标准,由于不同试验***的数据信息不同,描述数据的协议标准也不相同,因此实现所有领域用户接口协议的通用性描述比较困难,也难以实现真正意义上的通用。
发明内容
本发明的目的是为了解决现有的协议转换过程中由于需要对于一种用户接口协议定制一套专用的处理方法,易导致扩展代码难度大、开发周期长、通用性差等问题的缺点,而提出一种基于通用协议的通信***及方法。
一种基于通用协议的通信***,包括发送端以及接收端,其特征在于,所述发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,
接收端具体包括:
信息接受模块,用于接收来自发送端的信息。
协议元素解析模块,用于分析来自发送端的信息,判断信息中每个协议项的协议元素的种类。
普通项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为普通项元素时,将普通项元素中的数据按照协议集中预设的函数关系变换为具有实际物理意义的目标元素。
协议项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为协议项元素时,根据协议项元素中的数据判断该协议项嵌套的子协议项中的元素为普通项元素、分支项元素、协议项元素、动态项元素中的哪一种,再根据判断结果选择相应的处理模块进行处理。
分支项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为分支项元素时,根据分支项元素的取值确定分支项中具体包含哪些分支,每种分支包含多个元素,每种元素的类型可以是普通项元素、分支项元素、协议项元素、动态项元素其中的一种。
动态项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为动态项元素时,根据动态项元素的值确定动态项元素中包含的动态元素的数量和长度。
优选地,普通项元素处理模块具体包括:无处理单元,用于将普通项元素中的数据直接作为目标数据值;物理值计算单元,用于将普通项元素中的数据乘以预设的倍率系数,再加上偏移量,得到目标数据值;位解析单元,判断普通项元素中的数据为bit类型还是非bit类型,若为非bit类型,则将普通项元素中的数据按位拆分处理;若为bit类型数据则不做处理;位解析-物理值计算单元,用于当位解析单元判断出普通项元素中的数据为bit类型时,将普通项元素中的数据中选定的数值乘以预设的倍率系数,再加上偏移量,得到目标数据值;BCD码处理单元,用于将普通项元素中的数据按照8421码进行转换得到目标数据值;组合函数处理单元,用于现将普通项元素中的数据按照8421码进行转换处理,再将转换处理的结果乘以预设的倍率系数,再加上偏移量,得到目标数据值。
优选地,每个协议项还包括帧头、帧尾以及校验数据元素,接收端还包括校验模块,用于按照预设的校验计算方法计算出校验结果,将校验结果与校验数据元素进行比较,若相同,则表示数据传输正确,若不同,则表示数据传输发生错误。
优选地,预设的校验计算方法为16bit校验和计算法或8bit校验和计算法。
本发明还提供一种基于通用协议的通信方法,所述方法用于在发送端和接收端之间传输信息,其特征在于,所述发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,
接收端用于执行如下步骤:
接收来自发送端的信息。
分析来自发送端的信息,判断信息中每个协议项的协议元素的种类。
当协议元素解析模块解析出协议项的元素种类为普通项元素时,将普通项元素中的数据按照协议集中预设的函数关系变换为具有实际物理意义的目标元素。
当协议元素解析模块解析出协议项的元素种类为协议项元素时,根据协议项元素中的数据判断该协议项嵌套的子协议项中的元素为普通项元素、分支项元素、协议项元素、动态项元素中的哪一种,再根据判断结果选择相应的处理模块进行处理。
当协议元素解析模块解析出协议项的元素种类为分支项元素时,根据分支项元素的取值确定分支项中具体包含哪些分支,每种分支包含多个元素,每种元素的类型可以是普通项元素、分支项元素、协议项元素、动态项元素其中的一种。
当协议元素解析模块解析出协议项的元素种类为动态项元素时,根据动态项元素的值确定动态项元素中包含的动态元素的数量和长度。
优选地,当协议元素解析模块解析出协议项的元素种类为普通项元素时,具体执行以下步骤:将普通项元素中的数据直接作为目标数据值;将普通项元素中的数据乘以预设的倍率系数,再加上偏移量,得到目标数据值;判断普通项元素中的数据为bit类型还是非bit类型,若为非bit类型,则将普通项元素中的数据按位拆分处理;若为bit类型数据则不做处理;当位解析单元判断出普通项元素中的数据为bit类型时,将普通项元素中的数据中选定的数值乘以预设的倍率系数,再加上偏移量,得到目标数据值。
优选地,在接收来自发送端的信息之后,在分析来自发送端的信息之前,还包括校验步骤,校验步骤用于按照预设的校验计算方法计算出校验结果,将校验结果与校验数据元素进行比较,若相同,则表示数据传输正确,若不同,则表示数据传输发生错误。
优选地,预设的校验计算方法为16bit校验和计算法或8bit校验和计算法。
本发明的有益效果为:协议转换过程中不需要对于一种用户接口协议定制一套专用的处理方法,而是使用一套统一的接口协议,使得扩展代码难度较低、开发周期短、通用性强。开发周期能够至少缩短20%的时间。
附图说明
图1为本发明的通用协议的通信***的原理结构图;
图2为本发明的通用用户接口协议格式示意图;
图3为通用协议模板编辑软件类图;
图4为某无线通信传输协议结构图;
图5为SLIP协议的用户信息帧封装格式示意图。
具体实施方式
本发明通过分析航空电子、雷达、舰船、无线电传输等***和某些工业部门的试验设备之间进行通信的用户接口协议格式,抽象协议共有特征,设计出能够覆盖这些领域用户接口协议特征描述的通用用户接口协议格式,并在此基础上开发包括用户接口协议模板编辑工具。
一种基于通用协议的通信***,包括发送端以及接收端,其特征在于,所述发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,接收端具体包括:
信息接受模块,用于接收来自发送端的信息。
协议元素解析模块,用于分析来自发送端的信息,判断信息中每个协议项的协议元素的种类。
普通项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为普通项元素时,将普通项元素中的数据按照协议集中预设的函数关系变换为具有实际物理意义的目标元素。
协议项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为协议项元素时,根据协议项元素中的数据判断该协议项嵌套的子协议项中的元素为普通项元素、分支项元素、协议项元素、动态项元素中的哪一种,再根据判断结果选择相应的处理模块进行处理。
分支项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为分支项元素时,根据分支项元素的取值确定分支项中具体包含哪些分支,每种分支包含多个元素,每种元素的类型可以是普通项元素、分支项元素、协议项元素、动态项元素其中的一种。
动态项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为动态项元素时,根据动态项元素的值确定动态项元素中包含的动态元素的数量和长度。
普通项元素处理模块具体包括:
无处理单元,用于将普通项元素中的数据直接作为目标数据值。
物理值计算单元,用于将普通项元素中的数据乘以预设的倍率系数,再加上偏移量,得到目标数据值。
位解析单元,判断普通项元素中的数据为bit类型还是非bit类型,若为非bit类型,则将普通项元素中的数据按位拆分处理;若为bit类型数据则不做处理。
位解析-物理值计算单元,用于当位解析单元判断出普通项元素中的数据为bit类型时,将普通项元素中的数据中选定的数值乘以预设的倍率系数,再加上偏移量,得到目标数据值。
BCD码处理单元,用于将普通项元素中的数据按照8421码进行转换得到目标数据值。
组合函数处理单元,用于现将普通项元素中的数据按照8421码进行转换处理,再将转换处理的结果乘以预设的倍率系数,再加上偏移量,得到目标数据值。
每个协议项还包括帧头、帧尾以及校验数据元素,接收端还包括校验模块,用于按照预设的校验计算方法计算出校验结果,将校验结果与校验数据元素进行比较,若相同,则表示数据传输正确,若不同,则表示数据传输发生错误。预设的校验计算方法可以为16bit校验和计算法或8bit校验和计算法。
具体而言,本发明使用的协议集如图2所示,其中协议格式的各部分内容的含义如下:
(1)协议集是指由多个协议项组成的协议的集合,在联合试验***工作时,***/设备之间通常需要传输大量的指令、状态、工作参数、测量数据等信息,各类信息都需要采用相应的用户接口协议进行传输,因此,需要多个协议项组成协议集定义各类信息的传输规范。
(2)协议项是指一条具体的协议信息,一般结构为“帧头+数据元素+帧尾+校验数据元素”。在通信协议中通常需增加校验机制来保证通信过程中数据传输的正确性,因此为协议项添加“是否需要校验”属性用来标识该协议项在接收到协议数据包时是否需要对协议数据包进行校验和计算。常用的校验和算法包括16bit校验和计算法、8bit校验和计算法。具体实现方法是:在发送端通过校验和算法计算出校验数据元素值,在接收端针对接收到的数据包,利用相同的校验和算法计算出校验数据元素值,如果二者相等,则认为数据传输正确,否则,不正确。
(3)协议帧头置于协议项的最前端,协议帧尾置于协议项的最后端,帧头由一个或多个数据项组成,帧尾可有可无。通常,帧头/帧尾由不可变值的数据项组成,数据值由用户指定,帧头/帧尾就是基于这些不可变值的数据项组合来唯一标识一个协议集中的各个协议项。特殊情况下,帧头/帧尾中包含可变值数据元素,可变值数据元素不能作为标识协议项的数据项。因此,在协议项中,帧头至少必须包含一个不可变值数据项。在协议识别过程中依靠不可变值的帧头/帧尾进行匹配,而忽略可以变值的帧头/帧尾。
(4)协议元素是指***/设备之间传输的真正有效的数据,为了实现协议格式的通用性描述,将协议元素分为普通项元素、分支项元素、协议项元素和动态项元素。
(5)普通项元素是指需要进行函数处理的协议元素,函数处理是指将数据包中的元素值经过函数计算或转换才能得到具有实际物理意义的目标元素,处理函数有:
a)“不处理”是指不需要进行转换,数据包中的数据值即为目标数据值;
b)“物理值计算”是指数据包中的数据值需要乘以倍率系数才能得到目标数据值,有时还需要加上偏移量,可以表示为y=kx+b。元素在进行物理值计算时需要考虑源数据的最高位是否为符号位,源数据经过物理值计算后,数据类型可能会发生改变,由源数据类型转换为目标数据类型;
c)“位解析”分为bit类型元素的位解析和非bit类型元素的位解析。非bit类型元素的位解析是指元素的某些位或位组合表示特定的含义,当解析数据包时需要对该数据元素进行按位拆分处理;bit类型元素的位解析是指元素的某些取值表示特定的含义,元素值是一个整体,不需要进行拆分处理;
d)“位解析or物理值”是针对bit类型元素特有的一种处理函数,是指元素的某个或某些取值表示特定含义,而除了特定含义之外的其他取值需要进行物理值计算。例如某bit类型元素的长度为2位,当元素取值00时表示“设备故障”,取值为01、10、11时需要进行物理值计算y=100x+10获得相应的目标数据值110、210、310。
e)“BCD编码”是指将数据包中的数据值按照8421码进行转换得到目标数据值。例如某DWORD无符号整形数值为776,二进制表示为0011 0000 1000经过BCD编码后获得目标数据值为308,需要进行BCD编码的源数据必须是无符号数;
f)“组合函数处理”即将上述处理函数进行组合,按函数组合顺序依次处理,例如“BCD编码”+“物理值计算y=0.1x”组合,输入DWORD类型数据元素为777经过BCD编码后输出309,再乘以倍率0.1,最终得到的FLOAT类型目标数据元素30.9。
(6)分支项元素是指该元素根据不同的元素取值有多种不同的分支路径,每个分支中又可以包含若干个数据元素,分支中的元素类型可以是普通项、分支项、协议项、动态项中的任意类型。
(7)协议项元素是指该元素中包含了一个子协议项,存在协议项元素的协议称为嵌套协议,协议项元素中的子协议的元素类型可以是普通项、分支项、协议项、动态项中的任意类型。
(8)动态项元素是指该元素中包含了一些可重复出现的数据元素,这些数据元素都是普通项元素类型,分为静态元素和动态元素。静态元素是指在数据包中能够且只能够出现一次的数据元素,动态元素是指在数据包中可以连续重复出现多次的数据元素,每次出现的数据值可以不同。每个动态项元素中包含一组连续的动态元素,可能包含也可能不包含静态元素。动态项元素的数据值代表它内部重复出现的动态元素的长度,以字节为单位表示。一个协议项中可以包含多段可重复出现的动态元素,即一个协议项中可包含多个动态项元素,每个动态项元素中只包含一段可重复出现的动态元素。
协议的具体实现可以参照图3中示出的通用协议模板编辑软件类图,下面对图中各类分别进行介绍:
(1)协议管理器类:该类提供添加协议项、删除协议项、更新协议项、加载协议和保存协议等功能。
(2)协议项类:协议项信息是一条协议的完整描述,其中协议帧头、帧尾信息和协议元素信息采用链表的方式进行存储。协议可重复性是子协议特有的属性,以枚举的方式表示。重复次数为“1”表示该子协议一定出现且出现次数为1;重复次数为“0..1”表示该子协议可能出现也可能不出现,若出现只会出现一次;重复次数为“1..n”表示该子协议项一定出现且可能出现多次;重复次数为“0..n”表示该子协议项可能出现也可能不出现,若出现可能出现多次。
(3)帧头帧尾类:该类表示协议项中每个帧头/帧尾。
(4)元素类:协议元素所规定的内容是在实际通讯传输过程中的物理数据单元。其中“处理方式信息”用于存储普通项元素的处理函数信息,以枚举方式表示;元素位数组用于存储位解析处理函数的位信息;组合函数链表用于存储组合函数信息;“元素分支链表”用于存储分支项元素的分支;“子协议项映射表”用于存储协议项元素的子协议信息;“动态项元素链表”用于存储动态项元素所包含的静态和动态元素;
(5)分支类:该类表示了分支项元素的一个分支的属性,包含分支项序号、跳转值以及该分支中的元素数组等。
(6)元素位类:该类代表基本数据类型元素中的某些元素位组合取值表示的特定含义。
(7)bit类型元素位类:该类代表bit类型元素的某些取值表示的特定含义。
(8)物理值类:该类代表普通项元素的物理值处理函数类,包含有无符号位、系数k、系数b、目标数据类型等属性。
各类之间具有相关性:一个协议项中一定包含帧头和元素,可能包含帧尾,所以协议项类和帧头类、元素类之间是复合聚合关系,和帧尾类之间是共享聚合关系。若元素为普通项,元素可能具有某一处理函数;若元素为分支项,元素中会包含若干分支;若元素为协议项,元素中会包含若干子协议;若元素为动态项,元素中会包含若干元素。所以元素类和元素位类、bit类型元素位类、物理值类之间是共享聚合关系;元素类和分支类是共享聚合关系;元素类和协议项类是共享聚合关系;元素类和元素类是共享聚合关系。元素的一个分支中一定会包含若干元素,所以分支类和元素类是复合聚合关系。
本发明还包括一种基于通用协议的通信方法,所述方法用于在发送端和接收端之间传输信息,其特征在于,所述发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,
接收端用于执行如下步骤:
接收来自发送端的信息;分析来自发送端的信息,判断信息中每个协议项的协议元素的种类;当协议元素解析模块解析出协议项的元素种类为普通项元素时,将普通项元素中的数据按照协议集中预设的函数关系变换为具有实际物理意义的目标元素;当协议元素解析模块解析出协议项的元素种类为协议项元素时,根据协议项元素中的数据判断该协议项嵌套的子协议项中的元素为普通项元素、分支项元素、协议项元素、动态项元素中的哪一种,再根据判断结果选择相应的处理模块进行处理;当协议元素解析模块解析出协议项的元素种类为分支项元素时,根据分支项元素的取值确定分支项中具体包含哪些分支,每种分支包含多个元素,每种元素的类型可以是普通项元素、分支项元素、协议项元素、动态项元素其中的一种;当协议元素解析模块解析出协议项的元素种类为动态项元素时,根据动态项元素的值确定动态项元素中包含的动态元素的数量和长度。
当协议元素解析模块解析出协议项的元素种类为普通项元素时,具体执行以下步骤:将普通项元素中的数据直接作为目标数据值;将普通项元素中的数据乘以预设的倍率系数,再加上偏移量,得到目标数据值;判断普通项元素中的数据为bit类型还是非bit类型,若为非bit类型,则将普通项元素中的数据按位拆分处理;若为bit类型数据则不做处理;当位解析单元判断出普通项元素中的数据为bit类型时,将普通项元素中的数据中选定的数值乘以预设的倍率系数,再加上偏移量,得到目标数据值。
在接收来自发送端的信息之后,在分析来自发送端的信息之前,还包括校验步骤,校验步骤用于按照预设的校验计算方法计算出校验结果,将校验结果与校验数据元素进行比较,若相同,则表示数据传输正确,若不同,则表示数据传输发生错误。
预设的校验计算方法为16bit校验和计算法或8bit校验和计算法。
本发明的方法与前述的基于通信协议的通信方法是对应相同的,是用于实现本发明***的方法,此处对方法的原理不再做详述。
本发明至少可以适用于指控***与雷达用户接口协议、无线通信传输协议、运输车设备用户接口协议、导弹与载机用户接口协议、控制台与电台用户接口协议。具体而言:
一、某指控***与雷达用户接口协议分析:
在分布式仿真试验***中,许多设备资源采用以太网接口进行数据通信。舰船指控***、作战***,测量雷达与指控***等底层通信多采用以太网进行数据传输。通过以太网构成的分布式仿真测试***内部各设备资源之间进行数据通信,部分设备还需要依靠所接收的数据和指令,执行某些操作,多个网络节点设备资源协调工作共同完成***任务。因此在应用层或应用层之上的用户层等高层协议与规范上应满足开放***的要求,满足互操作条件。目前商用计算机设备之间是通过FTP(文件传送协议)、HTTP(WWW协议)等应用层协议进行信息访问的,但这些协议所定义的数据结构等特性不适合应用于分布式仿真测试领域资源设备之间的实时通信。为满足分布式仿真测试***的应用要求,必须建立完整的、有效的应用层、用户层通信服务模型,形成通用的应用层、用户层协议即用户接口协议,进而形成开放的标准。
下面将对基于以太网接口通信的具有典型特征的某些***的用户接口协议格式进行分析,并总结各用户接口协议的特征,作为本文通用用户接口协议格式设计的依据。表2-1为雷达要接入到某指控***中,指控***与雷达之间信息交换协议。指控***控制雷达工作过程如下:
第1步:开机后,指控***向雷达发送自检指令,雷达反馈工作状态信息;
第2步:指控***向雷达发送复位指令,雷达反馈工作状态信息;
第3步:指控***向雷达发送初始化指令,设定雷达工作参数,雷达按照接收到的工作参数设定工作模式,并反馈工作状态以及工作模式信息;
第4步:指控***向雷达发送启动工作指令,雷达反馈工作状态信息;
第5步:雷达启动工作,周期性地向指控***发送雷达数据信息;
第6步:试验结束,指控***向雷达发送停止工作指令,雷达反馈工作状态信息。
表2-1某指控***与某雷达之间信息交换协议
下面依次对表2-1每个信息单元的协议进行详细说明:
(1)自检指令
自检指令比较简单,只需向雷达发送自检指令码即可,将实际自检指令协议经过脱密处理后整理的通信协议如表2-2所示。复位、启动工作、停止工作指令与自检指令类似,只是指令码不同,在此不再赘述。
从表2-2中可以得知,自检指令数据包长度为9个字节,“数据单元序号”、“数据单元标识”和“数据单元长度”可以作为协议帧头。其中,“数据单元序号”在每次编辑数据包时数值改变,属于变值帧头元素,不能作为协议标识依据。“数据单元标识”和“数据单元长度”有固定的数据值,可以作为协议标识的依据。“时戳”元素表示了数据产生时刻,由表中LSB最低有效位为0.1可知,数据包中的数据值要转化为实际意义的时戳需要乘以倍率0.1。“自检指令码”元素值为A1H,当雷达接收到自检指令码时,向指控***反馈工作状态信息。
表2-2自检指令通信协议
(1)初始化指令
初始化指令除了向雷达发送初始化指令码,同时还需发送初始化参数,经过脱密处理后整理的初始化指令通信协议格式如表2-3所示。
从表中可以得知,初始化指令数据包长度为15个字节,“数据单元序号”、“数据单元标识”和“数据单元长度”可以作为协议帧头。其中,“数据单元序号”为变值帧头,“数据单元标识”和“数据单元长度”为固定帧头。“状态控制字1”、“状态控制字2”、“I频点”和“H频点”中数据位组合表示不同的状态信息,因此,需要对元素按位拆分处理。
表2-3初始化指令通信协议
(3)雷达状态信息
雷达状态信息在接收到控制指令,执行完相应操作后,向指控***发送雷达的工作状态信息。雷达接收到不同的指令后进入不同的工作模式,不能简单地用同一个状态字表示所有工作状态,在雷达状态信息通信协议中,用子协议区分不同的工作状态,如表2-4所示。雷达状态信息通信协议中包含两个子协议项,分别是自检状态子协议和初始化状态子协议,在该协议中自检状态子协议和初始化状态子协议不会同时出现,需要通过状态标志进行识别数据包中携带的是哪个子协议项。
经过脱密处理后整理的自检状态子协议如表2-5所示,当状态标志为41H时,表示为自检状态。经过脱密处理后整理的初始化状态子协议如表2-6所示,当状态标志为43H时,表示为初始化状态。初始化状态不仅包含雷达工作状态信息,还包含目前雷达的工作模式信息,通过状态字1、状态字2、I工作频点、H工作频点返回。
表2-4雷达状态信息通信协议
(4)雷达数据信息
雷达数据信息用于向指控***提供发现的目标信息,由于雷达可同时探测多个目标,在雷达数据信息通信协议中,目标的类型、特征、位置等信息将根据目标个数重复多次,属于动态元素。目标位置信息的表示方式由“目标参数表示方式”元素的取值决定,“目标参数表示方式”元素属于分支元素。当元素值为C1H,目标位置信息采用相对坐标表示,数据包中携带的数据值表示“目标距离”和“目标方位”;当元素值为C2H,目标位置信息采用绝对坐标表示,数据包中携带的数据值表示“目标坐标X”、“目标坐标Y”和“目标坐标Z”。根据实际雷达数据信息协议经过脱密处理后整理的雷达数据信息通信协议格式如表2-7所示。
表2-6初始化状态子协议
表2-7雷达数据信息通信协议
表2-7(续表)
从表2-7中可以得知,由于雷达数据信息通信协议中包含重复多次的动态元素和存在分支路径的分支元素,所以协议长度不确定,和上述协议不同的是“数据单元长度”在编辑数据包时数值会改变,属于变值帧头。在该协议的数据元素中,“目标批号”需要进行BCD码转换;“目标航迹质量”需要进行按位拆分处理;“目标距离”、“目标方位”、“目标坐标X”、“目标坐标Y”和“目标坐标Z”需要乘以相应倍率才能获得具有实际意义的目标元素值。
雷达数据信息通信协议的最后字段为校验和字段,校验和字段是采用校验和算法将用户数据包的数据进行校验,保证传输数据的正确性。在该协议中采用的是16位累加的反码运算,在发送数据包时,用户数据包校验和计算方法如下:
步骤1:把校验和字段置为0;
步骤2:把需要校验的数据按16位逐一累加,依次进行二进制反码求和,累加结果保存于一个32位的数值中,如果总的字节数为奇数,则最后一个字节单独相加;
步骤3:将累加结果中的高16位再加到低16位上,重复这一过程直到高16位为全0;
步骤4:将获得的16位值取反,存入校验和字段。
根据某无线通信传输信息协议,经过脱密处理后整理的协议格式如表2-8所示。该协议以bit为基本单位进行数据传输。从表2-8中可以得知,该通信协议数据长度为72bit,其中,“信号标识”和“信号校验”可分别作为协议的帧头和帧尾,具有固定值,可用于协议识别和协议校验。“坐标控制位”元素长度为1bit,属于分支元素,该元素有2个分支。当“坐标控制位”值为0时进入经纬度坐标分支,该分支中的元素为“经纬度系数控制位”,“经纬度系数控制位”元素长度为2bit,也属于分支元素,不同分支对应不同分辨率系数,该元素具有3个分支,每个分支下包含3个元素,分别是“经度”、“纬度”和“高度”。当“坐标控制位”值为1时进入XY值坐标分支,该分支中包含3个元素“X坐标”、“Y坐标”和“Z坐标”。“设备状态”元素的不同位组合表示不同含义。“目标航速”元素的000值表示特殊含义,其他值需要乘以倍率0.01再加上偏移量10将获得具有实际意义的目标航速值。通过对表2-8中协议格式的分析,将该协议格式整理后表示为图4所示。
表2-8某无线通信传输协议
表2-8(续表)
通过对上述某指控***与雷达通信协议和某无线通信传输协议格式的分析,总结出基于以太网接口的用户接口协议的特征如下:
(1)协议元素的数据类型除了基本数据类型byte\char\short\word\int\dword\float\double还包括字符串类型;
(2)协议帧头存在固定帧头和可变帧头,只有固定帧头能用作协议识别;
(3)某些协议元素需要进行函数处理转换,处理函数包括物理值计算、BCD编码、按位解析处理;
(4)协议中存在具有不同分支路径的分支元素;
(5)协议中存在包含子协议的元素;
(6)协议中存在可重复出现多次的动态元素;
(7)协议数据按bit设计。
二、某运输车设备用户接口协议分析
某运输车中各设备间底层通过CAN总线通信,CAN总线通信协议是建立在OSI七层开放互联参考模型基础之上的,但CAN总线通信协议只定义了OSI参考模型的最下面两层——数据链路层和物理层,仅保证了节点间无差错的传输数据。CAN的应用层通信协议即用户接口协议由用户参照一些国际组织指定的标准协议自行定义。随着CAN总线通讯技术在车辆电子领域应用越来越广泛,协议的一致性规范描述变得越来越重要。
根据某基于CAN总线通信的运输车装置间的通信协议,经过脱密处理后整理的通信协议如表2-9所示,表中表示了A装置及设备的用户接口协议。从表2-9中可以看出,该数据包的长度为8个字节,其中“信号标识”占1个字节,有固定的数据值70H,“信号标识”可以理解为该协议的帧头,当接收端解析出接收到的数据包的第一个字节值为70H,即得知该数据包表示的是A装置的状态信息。“状态标识”占1个字节,当“状态标识”8位全为0即00H表示正常,当“状态标识”8位全为1即FFH表示数据未准备好,即“状态标识”的表示含义是由数据位决定的。“设备状态”元素表示A-1设备的状态,由表2-10可知,该字节的8位分别表示了不同的含义。“频率”元素由表中LSB最低有效位为0.1可知,数据包中的数据值要转化为实际意义的频率值需乘以系数0.1,同样的处理方式还有“相电压”元素。“相电流”元素则不需要进行倍率转换,数据包中的数据值即实际意义的相电流值。“状态参数”元素也是按bit位拆分表示了不同的含义,其中低2位Bit1~0表示了信号状态,高6位Bit7~2分别表示了1~6号传感器的连接状态。
表2-9A装置通讯协议
表2-9(续表)
表2-10 A-1设备状态定义
通过对上述某运输车上的A装置及设备的用户接口协议格式分析,总结出基于CAN接口的用户接口协议的特征如下:
(1)数据按位解析表示不同的含义;
(2)数据需要进行倍率转换才能得到目标数据值;
(3)目标数据值的数据类型和源数据类型不同,由整数转为浮点数;
(4)不需要进行处理,直接获得目标数据值。
三、某导弹与载机用户接口协议分析
某导弹与载机之间底层通过1553B接口进行通信,表2-11为根据某导弹与载机之间基于1553B通信的用户接口协议,经过脱密处理后整理的协议格式,表中只选取了通信协议中的部分数据元素。在该协议中,数据元素分为处理和不处理两种。在需要处理的数据元素中,分为有符号位和无符号位两种。有符号位的数据元素最高位为符号位,对元素进行处理时,需要先判断元素的正负,然后将除符号位之外的数据元素值乘以倍率加上偏移。对于无符号位的数据元素,处理时获取包括最高位的数据值再乘以倍率加上偏移获得目标数据。
表2-11某导弹与载机通信协议
通过对上述基于1553B通信的用户接口协议格式分析,总结出基于1553B接口的用户接口协议的特征如下:
(1)数据需要进行倍率转换才能得到目标数据值,某些数据元素还需要加上偏移量;
(2)数据元素在进行物理值计算时分为有符号位和无符号位,有符号位元素的最高位表示符号位;
(3)不需要进行处理,直接获得目标数据值。
四、某控制器与电台用户接口协议分析
在某些实用的通信***中,需要在计算机和某个的硬件设备之间传输数据包,硬件设备只提供了一个标准的RS422或RS232串行接口可与外部通信,此时,它们之间只能通过串行方式传输数据。串行通信方式通常选择SLIP协议即串行线路网际协议(Serial LineInternet Protocol)作为数据传输协议。下面以某控制器与电台通信协议为例,分析RS422接口下的用户接口协议。设备之间的控制接口采用RS422异步串行通信接口,传输协议采用SLIP协议,SLIP协议的用户信息帧封装格式如图5所示。
SLIP是一个简单的面向字符的协议,将用户信息帧进行SLIP封装步骤如下:
步骤1:在每个用户信息帧的首尾各加一个特殊的标志字节END(7EH),封装成为SLIP帧;
步骤2:若用户信息帧中的某一个字节与标志字节END(7EH)相同,那么将这一字节更换成(DBH,DCH),这里的特殊字符(DBH,DCH)称为SLIP转义字符ESC;
步骤3:若用户信息帧中的某两个字节与特殊字符(DBH,DCH)相同,则将这两个字节更换成(DBH,DDH),这里的特殊字符(DBH,DDH)称为二层转义字符ESC。
基于上述某设备SLIP协议封装格式及封装过程,总结出基于RS422的用户接口协议在进行SLIP协议封装后的处理过程如下:
可以将特殊标志字节END(7EH)作为协议帧头,该协议帧头的转义字符为DBDCH,占2个字节,该转义字符DBDCH的二层转义字符为DBDDH,占2个字节。在协议数据包的发送端对协议数据进行编码时,若协议项中某元素值为7EH,打包时将该元素值转换成DBDCH写入数据包,若协议项中某元素值为DBDCH,打包时将该元素值转换成DBDDH写入数据包。在接收端对协议数据包进行解码时,在协议帧头匹配成功后,首先判断协议数据包中是否存在DBDCH元素,若存在将其转换为7EH,然后判断协议数据包中是否存在DBDDH,若存在将其转换成DBDCH,这样处理后协议数据包将恢复为真实数据值。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种基于通用协议的通信***,包括发送端以及接收端,其特征在于,所述发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,
接收端具体包括:
信息接受模块,用于接收来自发送端的信息;
协议元素解析模块,用于分析来自发送端的信息,判断信息中每个协议项的协议元素的种类;
普通项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为普通项元素时,将普通项元素中的数据按照协议集中预设的函数关系变换为具有实际物理意义的目标元素;
协议项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为协议项元素时,根据协议项元素中的数据判断该协议项嵌套的子协议项中的元素为普通项元素、分支项元素、协议项元素、动态项元素中的哪一种,再根据判断结果选择相应的处理模块进行处理;
分支项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为分支项元素时,根据分支项元素的取值确定分支项中具体包含哪些分支,每种分支包含多个元素,每种元素的类型可以是普通项元素、分支项元素、协议项元素、动态项元素其中的一种;
动态项元素处理模块,用于当协议元素解析模块解析出协议项的元素种类为动态项元素时,根据动态项元素的值确定动态项元素中包含的动态元素的数量和长度。
2.根据权利要求1所述的基于通用协议的通信***,其特征在于,普通项元素处理模块具体包括:
无处理单元,用于将普通项元素中的数据直接作为目标数据值;
物理值计算单元,用于将普通项元素中的数据乘以预设的倍率系数,再加上偏移量,得到目标数据值;
位解析单元,判断普通项元素中的数据为bit类型还是非bit类型,若为非bit类型,则将普通项元素中的数据按位拆分处理;若为bit类型数据则不做处理;
位解析-物理值计算单元,用于当位解析单元判断出普通项元素中的数据为bit类型时,将普通项元素中的数据中选定的数值乘以预设的倍率系数,再加上偏移量,得到目标数据值;
BCD码处理单元,用于将普通项元素中的数据按照8421码进行转换得到目标数据值;
组合函数处理单元,用于现将普通项元素中的数据按照8421码进行转换处理,再将转换处理的结果乘以预设的倍率系数,再加上偏移量,得到目标数据值。
3.根据权利要求1或2所述的基于通用协议的通信***,其特征在于,每个协议项还包括帧头、帧尾以及校验数据元素,接收端还包括校验模块,用于按照预设的校验计算方法计算出校验结果,将校验结果与校验数据元素进行比较,若相同,则表示数据传输正确,若不同,则表示数据传输发生错误。
4.根据权利要求3所述的基于通用协议的通信***,其特征在于,预设的校验计算方法为16bit校验和计算法或8bit校验和计算法。
5.一种基于通用协议的通信方法,所述方法用于在发送端和接收端之间传输信息,其特征在于,所述发送端以及接收端之间的通信协议集由多个协议项组成,每个协议项均包括一个协议元素,协议元素的种类具体为普通项元素、分支项元素、协议项元素、动态项元素其中的一种,
接收端用于执行如下步骤:
接收来自发送端的信息;
分析来自发送端的信息,判断信息中每个协议项的协议元素的种类;
当协议元素解析模块解析出协议项的元素种类为普通项元素时,将普通项元素中的数据按照协议集中预设的函数关系变换为具有实际物理意义的目标元素;
当协议元素解析模块解析出协议项的元素种类为协议项元素时,根据协议项元素中的数据判断该协议项嵌套的子协议项中的元素为普通项元素、分支项元素、协议项元素、动态项元素中的哪一种,再根据判断结果选择相应的处理模块进行处理;
当协议元素解析模块解析出协议项的元素种类为分支项元素时,根据分支项元素的取值确定分支项中具体包含哪些分支,每种分支包含多个元素,每种元素的类型可以是普通项元素、分支项元素、协议项元素、动态项元素其中的一种;
当协议元素解析模块解析出协议项的元素种类为动态项元素时,根据动态项元素的值确定动态项元素中包含的动态元素的数量和长度。
6.根据权利要求5所述的基于通用协议的通信方法,其特征在于,当协议元素解析模块解析出协议项的元素种类为普通项元素时,具体执行以下步骤:
将普通项元素中的数据直接作为目标数据值;
将普通项元素中的数据乘以预设的倍率系数,再加上偏移量,得到目标数据值;
判断普通项元素中的数据为bit类型还是非bit类型,若为非bit类型,则将普通项元素中的数据按位拆分处理;若为bit类型数据则不做处理;
当位解析单元判断出普通项元素中的数据为bit类型时,将普通项元素中的数据中选定的数值乘以预设的倍率系数,再加上偏移量,得到目标数据值。
7.根据权利要求5或6所述的基于通用协议的通信方法,其特征在于,在接收来自发送端的信息之后,在分析来自发送端的信息之前,还包括校验步骤,校验步骤用于按照预设的校验计算方法计算出校验结果,将校验结果与校验数据元素进行比较,若相同,则表示数据传输正确,若不同,则表示数据传输发生错误。
8.根据权利要求7所述的基于通用协议的通信方法,其特征在于,预设的校验计算方法为16bit校验和计算法或8bit校验和计算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711047451.0A CN107547574B (zh) | 2017-10-31 | 2017-10-31 | 一种基于通用协议的通信***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711047451.0A CN107547574B (zh) | 2017-10-31 | 2017-10-31 | 一种基于通用协议的通信***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547574A true CN107547574A (zh) | 2018-01-05 |
CN107547574B CN107547574B (zh) | 2020-08-25 |
Family
ID=60968373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711047451.0A Active CN107547574B (zh) | 2017-10-31 | 2017-10-31 | 一种基于通用协议的通信***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547574B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462530A (zh) * | 2018-10-23 | 2019-03-12 | 中电科航空电子有限公司 | 一种基于RS422总线和Slip协议的飞机数字音频传输方法 |
CN109474707A (zh) * | 2019-01-16 | 2019-03-15 | 济南浪潮高新科技投资发展有限公司 | 基于串口协议的二层协议设计及数据传输方法及*** |
CN110147076A (zh) * | 2019-04-15 | 2019-08-20 | 杭州电子科技大学 | 一种视觉控制装置及方法 |
CN110471776A (zh) * | 2019-06-27 | 2019-11-19 | 浙江口碑网络技术有限公司 | 应用数据通信方法、装置及*** |
CN111510159A (zh) * | 2020-05-13 | 2020-08-07 | 中国科学院自动化研究所 | 遵循通用信息交换协议规范的智能编码方法及编码器 |
CN113098873A (zh) * | 2021-04-02 | 2021-07-09 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置、计算机设备和计算机可读存储介质 |
CN113329064A (zh) * | 2021-05-13 | 2021-08-31 | 河南中州智慧水利研究院有限公司 | 基于水利数据采集和控制的物联网交互协议的通信方法 |
CN114143383A (zh) * | 2021-12-01 | 2022-03-04 | 福建雪人氢能科技有限公司 | 一种转换can协议的方法及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271288A1 (en) * | 2005-09-10 | 2011-11-03 | International Business Machines Corporation | Object request broker |
CN106230826A (zh) * | 2016-08-02 | 2016-12-14 | 哈尔滨工业大学 | 应用***接口协议自动解析装置 |
CN106657149A (zh) * | 2017-01-24 | 2017-05-10 | 恒生电子股份有限公司 | 通讯协议转换方法与装置 |
-
2017
- 2017-10-31 CN CN201711047451.0A patent/CN107547574B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271288A1 (en) * | 2005-09-10 | 2011-11-03 | International Business Machines Corporation | Object request broker |
CN106230826A (zh) * | 2016-08-02 | 2016-12-14 | 哈尔滨工业大学 | 应用***接口协议自动解析装置 |
CN106657149A (zh) * | 2017-01-24 | 2017-05-10 | 恒生电子股份有限公司 | 通讯协议转换方法与装置 |
Non-Patent Citations (2)
Title |
---|
XIANGYU TIAN ET AL.: "Development of Packet Codec Software Based on User Interface Protocol", 《THIRTEENTH INTERNATIONAL CONFERENCE ON INTELLIGENT INFORMATION HIDING AND MULTIMEDIA SIGNAL PROCESSING》 * |
李微: "HIT-TENA通用协议转换软件开发", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462530A (zh) * | 2018-10-23 | 2019-03-12 | 中电科航空电子有限公司 | 一种基于RS422总线和Slip协议的飞机数字音频传输方法 |
CN109462530B (zh) * | 2018-10-23 | 2021-05-18 | 中电科航空电子有限公司 | 一种基于RS422总线和Slip协议的飞机数字音频传输方法 |
CN109474707B (zh) * | 2019-01-16 | 2021-02-02 | 浪潮集团有限公司 | 基于串口协议的二层协议设计及数据传输方法及*** |
CN109474707A (zh) * | 2019-01-16 | 2019-03-15 | 济南浪潮高新科技投资发展有限公司 | 基于串口协议的二层协议设计及数据传输方法及*** |
CN110147076A (zh) * | 2019-04-15 | 2019-08-20 | 杭州电子科技大学 | 一种视觉控制装置及方法 |
CN110471776A (zh) * | 2019-06-27 | 2019-11-19 | 浙江口碑网络技术有限公司 | 应用数据通信方法、装置及*** |
CN110471776B (zh) * | 2019-06-27 | 2022-02-08 | 浙江口碑网络技术有限公司 | 应用数据通信方法、装置及*** |
CN111510159A (zh) * | 2020-05-13 | 2020-08-07 | 中国科学院自动化研究所 | 遵循通用信息交换协议规范的智能编码方法及编码器 |
CN111510159B (zh) * | 2020-05-13 | 2022-03-08 | 中国科学院自动化研究所 | 遵循通用信息交换协议规范的智能编码方法及编码器 |
CN113098873A (zh) * | 2021-04-02 | 2021-07-09 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置、计算机设备和计算机可读存储介质 |
CN113098873B (zh) * | 2021-04-02 | 2021-11-16 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置、计算机设备和计算机可读存储介质 |
CN113329064A (zh) * | 2021-05-13 | 2021-08-31 | 河南中州智慧水利研究院有限公司 | 基于水利数据采集和控制的物联网交互协议的通信方法 |
CN114143383A (zh) * | 2021-12-01 | 2022-03-04 | 福建雪人氢能科技有限公司 | 一种转换can协议的方法及终端 |
CN114143383B (zh) * | 2021-12-01 | 2024-03-15 | 福建雪人氢能科技有限公司 | 一种转换can协议的方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN107547574B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547574A (zh) | 一种基于通用协议的通信***及方法 | |
CN103139822B (zh) | 一种对无线通信***物理层进行自动化测试的方法 | |
CN106330593A (zh) | 协议检测方法及装置 | |
CN106230826A (zh) | 应用***接口协议自动解析装置 | |
CN113238936B (zh) | 一种可扩展的通用嵌入式软件通信接口测试方法及装置 | |
CN104902504A (zh) | 一种多天线移动终端的吞吐量的测试***及测试方法 | |
CN107957956A (zh) | 软件差异覆盖率的测试方法、装置及可读存储介质 | |
CN109634841A (zh) | 电子装置、接口自动化测试方法及存储介质 | |
CN109962711B (zh) | 一种数据压缩方法、电子设备及存储介质 | |
CN109561106A (zh) | 一种船舶通信报文实时解析过滤方法 | |
CN106851513A (zh) | 一种电子产品的测试方法和*** | |
CN107770786A (zh) | 一种网络性能的测试方法、设备及*** | |
CN107222251B (zh) | 卫星外场试验中与试验基地遥测数据交互方法及*** | |
CN111935767B (zh) | 一种网络仿真*** | |
CN107294814A (zh) | 一种片上网络的测试方法及装置 | |
CN110222815A (zh) | 适用于深度学习硬件加速器的可配置激活函数装置及方法 | |
CN107623555B (zh) | 一种通用型通信仿真平台的实现方法及装置 | |
CN107943625A (zh) | 一种可模拟多种通讯接口的mcu测试方法 | |
CN112054938B (zh) | 一种1553b总线的bm软件通用测试方法 | |
CN201114167Y (zh) | 动态可重组多路串行接口连接器 | |
CN107231278A (zh) | Can节点的测试方法、装置及*** | |
CN104170478A (zh) | 混合组网中数据的发送方法、装置和*** | |
EP4250581A1 (en) | Apparatus and method for providing mimo layer coverage | |
CN115243301B (zh) | 一种软件模拟5g移动网络环境的装置 | |
CN111858781A (zh) | 一种基于预设通信协议的仿真方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |