背景技术
近年来,无人机互操作性引起世界军事强国的日益重视。国际无人机系统标准化组织也制定了一系列互操作性标准,包括北约组织(NATO)发布的标准化协议(STANAG:Standardization Agreements)和机动车工程师协会无人机系统工作组SAE AS-4发布的联合无人系统体系结构(JAUS:Joint Architecture)。
测控与信息传输是互操作性标准中必不可少的。目前,国内已经制定了《无人机测控与信息传输系统通用链路协议》、《无人机测控与信息传输系统通用信道要求》等多项标准,具备了一定的研究基础和技术储备。但相比国外无人机系统互操作性标准,体系还不完善,标准之间的协调性不强,且现有标准的技术覆盖面与型号通用性上还存在一定差距。
在我国无人机型号多样但标准指导性和应用性不强的现状下,国内无人机地面站的互操作性很差。尤其是软件部分,几乎每个型号都要重新设计,造成了严重的重复建设和资源浪费。尽管现状不能即刻改变,但基于现状,如何利用先进的数据处理和软件设计方法提高地面站测控软件的互操作性也是很有研究价值的一个课题。
无人机地面站测控软件本质上是一个数据处理的软件,主要包括数据发送/接收,数据编码/解码,数据/界面交互三部分。因此不同型号的地面站测控软件设计过程大致相同,但受限于遥控/遥测帧结构的差异,在工程实际中往往需要通过大量重复性工作。
经过分析,制约地面站测控软件互操作性的因素主要体现在三个耦合关系上。一是无人机型号与遥控/遥测帧结构的耦合关系;二是遥控指令、遥测参数与遥控/遥测帧结构的耦合关系;三是软件界面与遥控指令、遥测参数的耦合关系。
首先,《无人机测控与信息传输系统通用链路协议》只是粗略地定义了遥控/遥测帧结构的格式与大小,实际操作性不强。而且受设备厂商、设计思想、保密竞争等因素影响,不同型号的无人机往往具有不尽相同的遥控遥测需求。这就造成了国内大部分无人机型号对差异化遥控/遥测帧结构的依赖。
其次,在软件设计过程中,遥控指令编码和遥测参数解码很自然地会跟该型号的遥控/遥测帧结构产生耦合关系。比如遥控编码过程中起飞指令占用几个字节,放在遥控帧的什么位置;遥测解码过程中飞机航向角占用几个字节,在遥测帧的什么位置,比例系数是多少。诸如此类编解码过程中的耦合关系几乎是无法避免的,并且还会随着数据应用的深入而加剧。
最后,用户所关心的遥控指令与遥测参数的相应操作与显示都会反映在界面上。程序员在把数据进行界面显示的过程中,实际上是把界面与数据进行了绑定。虽然参与绑定的数据有可能已经是独立结构的对象,但这些对象依然是依赖帧结构产生和赋值的。这就带来了第三个耦合问题。
综上,三个耦合问题产生的根源都在于遥控/遥测帧结构的不同。而不同型号的帧结构存在差异是我国无人机行业的一项基本现状。基于这样的现状,测控软件的通用性设计困难重重。
发明内容
本发明的目的是为了解决上述问题,提出无人机遥控指令/遥测参数帧通用分层设计方法,主要包括通用参数帧的设计,基于通用参数帧的数据处理流程设计,基于插件机制的数据转换与参数读写设计。
本发明的无人机遥控指令/遥测参数帧通用分层设计方法,包括以下几个步骤:
第一步,设计通用指令/参数对象帧;
通用指令/参数对象帧以指令/参数对象为基本单位,各个遥控指令对象按照统一格式进行描述,所有遥测参数对象也具有统一的描述方式。
第二步,设计基于通用指令/参数对象帧的测控软件数据处理流程;
遥测数据的处理过程为:在软件数据层将接收的原始遥测数据按照遥测帧结构存储为遥测结构帧对象,然后将遥测结构帧对象转化为通用参数对象帧;在软件业务层将通用参数对象帧中的各个遥测参数提取出来进行逻辑处理,生成参数应用量,输入到软件界面层;软件界面层依据各个遥测参数对象的显示要求,进行相应显示处理。
遥控数据的处理过程为:在软件界面层采集操作者输入或触发的遥控操作,将遥控数据放入遥控应用量中;软件业务层收到上层的通知后,把相应的遥控应用量,依据通用指令对象帧格式进行遥控指令对象描述赋值、组帧,形成通用指令对象帧;软件数据层将通用指令对象帧转化为遥控结构帧,并将遥控结构帧发送出去。
第三步,针对不同型号的无人机,设计对应型号的通用对象帧适配插件,当测控软件适用某型号的无人机时,调用对应型号的通用对象帧适配插件;所述的通用对象帧适配插件的功能是:将遥测结构帧对象转化为通用参数对象帧,将通用指令对象帧转化为遥控结构帧。
本发明的优点和积极效果在于:
(1)采用通用指令/参数对象帧设计,提高无人机地面站软件的通用性;
(2)对遥控/遥测结构帧与通用指令/参数对象帧之间的转换处理,采用通用对象帧适配插件设计机制,提高了无人机地面站软件的扩展性;
(3)避免重复软件建设,节约成本;
(4)软件界面统一,有利于操作手对软件的适应。
具体实施方式
下面将结合附图和具体实施例对本发明作出进一步的详细说明。
本发明从数据处理及软件设计的方法入手,实现测控软件的通用化设计。
如图1所示,从数据处理和应用的角度,无人机测控软件可以分为三层:数据层、业务层、界面层。
数据层的主要工作是依据基于结构的遥控/遥测帧(结构帧)对遥控/遥测数据进行发送、接收、帧处理等操作。由于结构帧数据对象是依据无人机遥控/遥测帧结构而产生的,因此不同帧结构的测控软件,数据层的处理过程各异。如果任务层、界面层的数据处理过程都依据遥控/遥测帧结构进行,整个测控软件的设计都会存在严重的数据耦合关系。
本发明设计了通用指令/参数对象帧(对象帧)。在数据层与业务层之间进行结构帧与对象帧的转化。基于通用化的设计思路,数据层用于结构帧数据的处理以及结构帧与对象帧的转化。业务层的主要工作是进行对象帧相关的数据处理工程。界面层是在业务层的基础上实现人机交互的过程。由于引入通用对象帧的概念,对于不同的结构帧,本发明提出的测控软件业务层和界面层数据处理方法不存在与之耦合的关系,因此业务层和界面层是通用的数据处理过程。
当同一套测控软件需要适用为了不同型号无人机时,通过替换软件数据层的结构帧与对象帧转化部分即可实现。为了提高软件的设计效率和可扩展性,本发明采用插件机制设计结构帧与对象帧转化部分,例如对图1中的A型机、B型机、C型机等,分别设计有对应型号的通用对象帧适配插件,以实现结构帧与对象帧的转化,通过动态加载通用对象帧适配插件的方式可以完成软件对不同机型的适应性扩展。
本发明的无人机遥控指令/遥测参数帧通用分层设计方法,具体实施方式包括以下几个步骤:
第一步,设计通用指令/参数对象帧。分析不同型号无人机遥控/遥测帧结构的共同属性,设计以指令/参数对象描述为基本单位的通用帧结构。其中各个遥控指令对象按照统一格式进行描述,所有遥测参数对象也具有统一的描述方式。
首先通用指令/参数对象帧必须满足以下三个条件。
第一:指令/参数全面。通用指令/参数对象帧能够覆盖不同无人机型号中所有遥控/遥测帧的指令和参数内容,不能有所遗漏。
第二:基于对象。通用指令/参数对象帧由多个指令/参数对象组成,每个指令/参数都以对象方式描述。
第三:兼容不同类型。通用指令对象帧能够满足开关指令、组合指令等不同类型指令兼容要求。通用参数对象帧能够对连续参数、离散参数进行统一描述。
基于上面提出的三个条件要求,通过分析不同型号无人机遥控/遥测帧结构的遥控指令量、遥测参数量的数量、类别以及其他共同属性。本发明提出以指令/参数对象描述为基本单位的通用对象帧。其中各个遥控指令对象按照统一格式进行描述,所有遥测参数对象也具有统一的描述方式。
为了说明通用指令/参数对象帧设计的优势,首先简要描述一下基于结构的遥控/遥测帧。
常用的遥控/遥测帧结构一般包括帧头、帧尾和数据区。帧头、帧尾用于数据的同步和校验,数据区依次存放各个参数/指令数据。不同的参数/指令数据占用字节空间可能不同。有时为了节约帧结构位置,几个参数或指令可能共用一个字节,或者通过设置循环标志对某几个字节循环使用。受不同型号无人机的数据需要、人为设计等因素影响,遥控/遥测帧结构排布的方式有很大差异。以一般遥测帧的结构为例,如表1,说明遥测帧的常用格式,遥控帧的结构类似。
表1一般遥测帧结构
序号名称 |
类型 |
说明 |
0帧头 |
unsigned char[2] |
数据同步开始 |
1第一副帧头 |
unsigned char |
副帧标志 |
2地理高度 |
unsigned char[4] |
比例关系为:k1 |
3空速 |
unsigned char[2] |
比例关系为:k2 |
4航向角 |
unsigned char[2] |
比例关系为:k3 |
5方位角 |
unsigned char[2] |
比例关系为:k4 |
6俯仰角 |
unsigned char[2] |
比例关系为:k5 |
…… |
|
|
i第二副帧头 |
unsigned char |
副帧标志 |
…… |
|
|
n-1校验 |
unsigned char |
帧内数据加和校验 |
n帧尾 |
unsigned char[2] |
数据同步结束 |
本发明的通用对象帧包括通用指令对象帧和通用参数对象帧。
通用指令对象帧由各遥控指令对象组成,结构示意见表2。每个遥控指令对象具有统一的描述格式,见表3。
表2通用指令对象帧示意表
序号 |
参数名 |
类型 |
说明 |
0 |
起飞 |
遥控指令通用描述结构 |
见表4 |
1 |
盘旋 |
遥控指令通用描述结构 |
见表4 |
2 |
8字飞 |
遥控指令通用描述结构 |
见表4 |
3 |
返航 |
遥控指令通用描述结构 |
见表4 |
4 |
航线查询 |
遥控指令通用描述结构 |
见表4 |
… |
…… |
|
|
表3遥控指令通用描述结构
序号名称 |
类型 |
说明 |
0英文检索名 |
string |
指令检索使用 |
1中文检索名 |
string |
指令检索使用 |
2指令代码 |
unsigned char |
|
3指令长度 |
int |
等于指令代码重复次数 |
4附加数据长度 |
int |
|
5附加数据 |
unsigned char[] |
组合指令所带的注入数据 |
6指令类型1 |
enum |
开关指令或组合指令 |
7指令类型2 |
enum |
飞机平台指令或任务载荷指令 |
……… |
|
|
本发明对遥控指令对象采用如表3所示的统一格式进行描述,其中包括中英文检索名、指令代码、指令长度、附加数据长度、附加数据、以及各种指令类型等。
通用参数对象帧由若干个遥测参数对象组成见表4,每个遥测参数对象有通用的描述格式,见表5。
表4通用参数对象帧
序号 |
参数名 |
类型 |
说明 |
0 |
地理高度 |
遥测参数通用描述结构 |
见表2 |
1 |
空速 |
遥测参数通用描述结构 |
见表2 |
2 |
航向角 |
遥测参数通用描述结构 |
见表2 |
3 |
方位角 |
遥测参数通用描述结构 |
见表2 |
4 |
俯仰角 |
遥测参数通用描述结构 |
见表2 |
5 |
高度表故障标志 |
遥测参数通用描述结构 |
见表2 |
… |
…… |
|
|
表5遥测参数对象通用描述
所有遥测参数对象采用如表5所示的格式进行描述,其中包括中英文检索名、数据类型、状态、标志、数值、数值的文字描述、阈值上下限、附加数据长度、附加数据、数据是否有更新等等。
第二步,基于通用指令/参数对象帧的测控软件数据处理流程设计。
如图2所示,在数据处理流程上,将无人机测控软件分为数据层、业务层和界面层。基于第一步设计的通用指令/参数对象帧,测控软件在数据层依据基于结构的遥控/遥测帧(以下简称结构帧)对遥控/遥测数据进行发送、接收、帧处理等操作。在数据层与业务层之间,进行结构帧与通用指令/参数对象帧(以下简称对象帧)的转化。业务层和界面层的数据操作依据对象帧进行,解除了与结构帧的耦合关系。
分别设计遥测和遥控的数据处理过程。首先,遥测数据的处理过程如下。
在数据层,软件接收原始的遥测数据,按照遥测帧结构存储为遥测结构帧对象。然后调用某型号通用对象帧适配插件将遥测结构帧对象转化为通用参数对象帧。作为业务层的输入之一,软件业务层将通用参数对象帧中的各个遥测参数提取出来进行相关逻辑处理,生成参数应用量,输入到软件界面层。软件界面层依据各个遥测参数对象的显示要求,进行相应显示处理。
遥控数据处理过程顺序正好与上述遥测数据处理过程相反。操作者首先在软件界面上输入或触发相应的遥控操作,界面层采集到这一操作,并将遥控数据放入遥控应用量中,待处理。收到上层的通知后,软件业务层把相应的遥控应用量,依据通用指令对象帧进行遥控指令对象描述赋值、组帧,形成遥控对象帧。然后,数据层调用某型号通用对象帧适配插件将指令对象帧转化为遥控结构帧。最后,通过某种通信方式将遥控结构帧发送出去。
在遥控/遥测三个层次理数据处理过程中,数据对象经历了原始数据、结构帧、对象帧、应用量、界面对象五个阶段。其中,数据层与原始数据和结构帧相关,完成了结构帧的底层处理及结构帧与对象帧的转化。业务层和界面层的数据对象及处理过程都是基于通用对象帧进行的,与结构帧的形式无关。软件通过对象帧与结构帧的转化解除了软件业务层和界面层与结构帧的耦合关系,提高了软件的通用性。
第三步,基于插件机制的不同结构帧数据处理。
本发明第二步设计了基于通用指令/参数对象帧的测控软件数据处理流程,如图2。其中的结构帧与参数帧转化部分,对于不同型号无人机遥控/遥测帧结构,其处理过程是不同的。同一套测控软件为了适用多种型号的无人机,需要替换测控软件中的结构帧与参数帧转化部分。将遥测结构帧对象转化为通用参数对象帧,将通用指令对象帧转化为遥控结构帧,转化过程就是对应描述方式的转化。
为了提高不同型号替换的效率,使同一款测控软件适用不同型号的无人机,提高软件的扩展性,本发明采用插件机制设计结构帧的数据处理与向对象帧的转化。插件机制的特点在于宿主程序与插件能够通信,而且在宿主程序不变的情况下,可以通过增减或修改插件来调整宿主程序的功能。因此把遥控/遥测结构帧与通用指令/参数对象帧转化部分设计成插件,应用到测控软件这一宿主程序中,这一设计可以有效地解决不同结构帧数据处理问题,提高测控软件的通用性和扩展性。需要适应不同型号无人机时,可以通过加载不同的通用对象帧适配插件完成。
如图3所示,将每个型号无人机的遥控/遥测结构帧与通用指令/参数对象帧的转化部分设计成一个插件。宿主程序设计包括插件管理、插件调用函数和接口实现。当测控软件适用于A型无人机时,测控软件调用A型机通用对象帧适配插件。
经过以上步骤,在一定程度上降低了无人机测控软件设计过程与遥控/遥测帧结构的耦合关系,实现了适应多型号无人机的测控软件通用化设计。本发明方法适用于不同遥控/遥测帧结构,提高了无人机测控软件的通用性和扩展性。