一种卫星发射场试验鉴定业务消息交互方法及系统与流程

文档序号:30096854发布日期:2022-05-18 11:09阅读:176来源:国知局
一种卫星发射场试验鉴定业务消息交互方法及系统与流程

1.本发明属于航天器试验鉴定领域,尤其涉及一种卫星发射场试验鉴定业务消息交互方法及系统。


背景技术:

2.随着信息化战争对航天装备的需求和依赖日益强烈,我军面临着航天装备由“试验型”转变为真正“装备型”的挑战。近年来,我军一直在探索、尝试以增强航天装备研制能力为目标的试验考核策略和方法。
3.确保卫星在轨服役期间“好用管用”是开展卫星发射场试验鉴定的初衷,而我国传统的航天装备试验鉴定一直以来是在系统发射后才开展,其中暴露出的缺陷在航天装备在轨运行中往往难以修正,同时试验数据和评估结果对采办程序的关键决策支撑力度弱,从而很难达到降低采办风险的目的,因此开展航天装备发射场试验鉴定,将其作为卫星上天之前的最后一道关口是十分必要的。
4.卫星发射场试验鉴定工作需要从各个卫星研制单位获取数据,而不同研制单位的数据格式和信息交互流程多种多样,导致卫星发射场试验鉴定业务传输、采集和解析数据的难度很大,目前大部分系统都采用自定义应用层协议或xml、json等标准数据格式来实现数据的解析及传输。对于这一类的协议解析大多存在以下问题:
5.1)采用自定义应用层协议:一般采用协议头+消息体策略,其中协议头是固定边界,消息体是混合编码,此种协议需要根据约定的字节序逐个读取每个字节,以便于程序中其他代码逻辑的编写,由于不能直观的判断拼接的字节流协议是否正确,而且扩展或修改协议时,数据的生产者和消费者都要修改程序,工作量极大。
6.2)使用xml/json描述的协议:xml格式解析效率较低,同时xml需要传输标记,会导致数据比自定义协议字节流数据、数据在数据量上极大的增加,当传输的数据量大的时候,传输效率就成为了很大的问题。使用json描述的协议:数据结构较简单,对于复杂数据结构的支持有限。
7.3)前向和后向兼容性不高:当系统间协议升级后,所有相关部分都必须重新编写协议解析部分,否者将不能正确解析协议。


技术实现要素:

8.为解决上述问题,本发明提供一种卫星发射场试验鉴定业务消息交互方法及系统,基于protobuf数据协议快速统一不同研制单位卫星装备产品产生的格式多样的数据,提高了卫星发射场试验鉴定系统的数据处理效率和稳定性。
9.一种卫星发射场试验鉴定业务消息交互方法,试验鉴定业务系统与各卫星研制单位数据系统通过消息总线进行消息交互时,获取消息的一方为消息数据消费者,发出消息的一方为消息数据生产者;
10.其中,所述消息数据生产者根据待传输的原始消息数据所属的数据类型,调用对
应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对待传输的原始消息数据的每个字段进行编码,得到二进制格式的序列化消息,并将序列化消息传输至消息总线;
11.所述消息数据消费者通过订阅的方式从消息总线获取序列化消息,根据序列化消息所属的数据类型,调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对接收到的序列化消息进行解析,得到序列化消息中包含的各个字段的数据,最后将各个字段的数据读取至由通用编程语言构建的当前数据类型对应的消息结构中,形成标准化消息对象。
12.进一步地,不同的数据类型对应不同的proto文件,其中,数据类型包括遥测源码、遥测参数结果、遥控指令信息、环境数据信息以及文件传输信息。
13.进一步地,当数据类型为遥测源码时,其对应的proto文件所定义的消息结构为消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、虚拟信道vcid、源包识别pkid以及源码数据data;
14.当数据类型为遥测参数结果时,其对应的proto文件所定义的消息结构为消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time以及数据内容vals,其中,数据内容是可重复单元,且每个单元均包括参数代号param、参数类型type、源码值raw、工程值val以及展示内容display;
15.当数据类型为遥控指令信息时,其对应的proto文件所定义的消息结构为消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、指令源地址source、指令目的地址target以及指令内容data;
16.当数据类型为环境数据信息时,其对应的proto文件所定义的消息结构为消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、温度temp以及湿度humi;
17.当数据类型为文件传输信息时,其对应的proto文件所定义的消息结构为消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time以及文件全路径filepath。
18.进一步地,所述二进制格式的序列化消息依次由数据头、数据区以及数据尾拼接而成,其中,数据头包含数据长度字段和数据类型字段,数据区包含原始消息数据的每个字段进行编码后得到的protobuf数据字段,数据尾包含对数据区进行循环冗余校验后得到的crc校验字段。
19.进一步地,所述消息数据消费者获取序列化消息后,先执行多重判断操作再对序列化消息进行解析,其中,所述多重判断操作为:
20.判断序列化消息是否为由数据头、数据区以及数据尾拼接而成的完整消息,若为是,则判断数据头中包含的数据长度信息与序列化消息的实际长度是否一致,若一致,则判断数据头中包含的数据类型是否存在对应的proto文件,若存在,则调用对应的proto文件对数据区中的protobuf数据字段进行解析。
21.进一步地,若各卫星研制单位数据系统为消息数据生产者时,待传输的原始消息数据为完成试验鉴定业务所需的数据;
22.若试验鉴定业务系统为消息数据生产者时,待传输的原始消息数据为对卫星的操
控指令数据。
23.进一步地,所述通用编程语言为java、c++或python。
24.进一步地,一种卫星发射场试验鉴定业务消息交互系统,包括卫星数据采集模块、第一鉴定消息序列化模块、第一鉴定消息反序列化模块、卫星鉴定业务处理模块、第二鉴定消息序列化模块、第二鉴定消息反序列化模块以及卫星指令发送模块;
25.所述卫星数据采集模块用于采集卫星测控现场的各种不同类型的请求消息,完成数据的汇聚任务并生成json对象数据;
26.所述第一鉴定消息序列化模块用于根据所述json对象数据所属的数据类型调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对json对象数据进行编码,得到二进制格式的序列化消息,并将序列化消息传输至消息总线;
27.所述第二鉴定消息反序列化模块用于订阅消息总线中的序列化消息,根据序列化消息所属的数据类型,调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对接收到的序列化消息进行解析,最后将解析得到的数据读取至由通用编程语言构建的当前数据类型对应的消息结构中,得到还原后的json对象数据,并将json对象数据存入数据缓存区;
28.所述卫星鉴定业务处理模块用于从数据缓存区获取所述json对象数据,然后按照请求消息的类型将json对象数据中的请求消息分发给对应的处理函数进行处理,得到设定的任务要求,最后按照设定的任务要求生成对卫星的操控指令信息;
29.所述第二鉴定消息序列化模块用于调用操控指令信息对应的proto文件进行编译,得到操控指令信息对应的消息结构,再使用当前得到的消息结构对操控指令信息进行编码,得到二进制格式的操控指令信息,并将二进制格式的操控指令信息传输至消息总线;
30.所述第一鉴定消息反序列化模块用于订阅消息总线中的操控指令信息,调用操控指令信息对应的proto文件进行编译,得到操控指令信息对应的消息结构,再使用当前得到的消息结构对操控指令信息进行解析,最后将解析得到的数据读取至由通用编程语言构建的当前数据类型对应的消息结构中,得到还原后的操控指令信息;
31.所述卫星指令发送模块用于将第一鉴定消息反序列化模块解码得出原始的指令消息数据发送至卫星,对卫星进行操控。
32.有益效果:
33.1、本发明提供一种卫星发射场试验鉴定业务消息交互方法,试验鉴定业务系统与各卫星研制单位数据系统均分发有proto文件,验鉴定业务系统与各卫星研制单位数据系统之间需要进行数据传输时,按照待传输数据的类型采用不同的proto文件将待传输数据转换为设定的消息结构,解决了不同研制单位卫星装备产品的数据格式多样、传输效率低、传输数据量大以及不向前向后兼容等问题,提高了卫星发射场试验鉴定系统的数据处理效率和稳定性,保证了转化的准确与高效性,一旦需求有变,可以更新数据结构,而不会影响已部署程序,能够降低数据报文中挟带数据的长度,同时降低数据的序列化以及反序列化成本。
34.2、本发明提供一种卫星发射场试验鉴定业务消息交互方法,基于protobuf数据协议对试验鉴定数据进行序列化处理以及反序列化,具有良好的“向前向后”兼容性,不必破
坏依靠“老”数据格式的程序就可以对数据结构进行升级,不用担心因为消息结构的改变,而造成大规模的代码重构或者程序迁移。
35.3、本发明提供一种卫星发射场试验鉴定业务消息交互方法,为遥测源码、遥测参数结果、遥控指令信息、环境数据信息以及文件传输信息均设置了对应的proto文件,满足不同研制单位卫星装备产品的数据格式多样化的需求。
36.4、本发明提供一种卫星发射场试验鉴定业务消息交互系统,其中设计的卫星发射场试验鉴定数据采集、传输和解析接口协议标准,实现对各类鉴定卫星的数据兼容,解决传统试验鉴定模式下不同研制单位跨系统孤立的难题,将集中化解析及封装各卫星研制单位采集终端与试验鉴定数据中心的通信数据,数据可读性好,操作简单,减少上层业务系统对终端通信协议的依赖,使发射场具备对军用卫星的独立鉴定试验评估和快速测试发射能力。
附图说明
37.图1为本发明提供的消息交互原理图;
38.图2为本发明提供的遥测源码proto消息定义格式;
39.图3为本发明提供的遥测参数结果proto消息定义格式;
40.图4为本发明提供的遥控指令信息proto消息定义格式;
41.图5为本发明提供的环境数据信息proto消息定义格式;
42.图6为本发明提供的文件传输proto消息定义格式;
43.图7为本发明提供的序列化消息传输格式定义;
44.图8为本发明提供的卫星发射场试验鉴定业务消息交互系统原理框图;
45.图9为本发明提供的试验鉴定数据处理流程图;
46.图10为本发明提供的鉴定消息序列化流程图;
47.图11为本发明提供的鉴定消息反序列化流程图。
具体实施方式
48.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
49.实施例一
50.如图1所示,一种卫星发射场试验鉴定业务消息交互方法,试验鉴定业务系统与各卫星研制单位数据系统通过消息总线进行消息交互时,获取消息的一方为消息数据消费者,发出消息的一方为消息数据生产者;也就是说,若试验鉴定业务系统需要从各卫星研制单位数据系统获取信息,则试验鉴定业务系统为消息数据消费者,各卫星研制单位数据系统为消息数据生产者,若试验鉴定业务系统需要向各卫星研制单位数据系统发送信息,则试验鉴定业务系统为消息数据生成者,各卫星研制单位数据系统为消息数据消费者。
51.其中,所述消息数据生产者根据待传输的原始消息数据所属的数据类型,调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对待传输的原始消息数据的每个字段进行编码,得到二进制格式的序列化消息,并将序列化消息传输至消息总线。其中,若各卫星研制单位数据系统为消息数据生产者时,待传输的
原始消息数据为完成试验鉴定业务所需的数据;若试验鉴定业务系统为消息数据生产者时,待传输的原始消息数据为对卫星的操控指令数据。
52.所述消息数据消费者通过订阅的方式从消息总线获取序列化消息,根据序列化消息所属的数据类型,调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对接收到的序列化消息进行解析,得到序列化消息中包含的各个字段的数据,最后将各个字段的数据读取至由java、c++或python等通用编程语言构建的当前数据类型对应的消息结构中,形成标准化消息对象。
53.下面以试验鉴定业务系统与各卫星研制单位数据系统分别作为消息数据生产者和消息数据消费者为例,对本发明的一种卫星发射场试验鉴定业务消息交互方法进行举例说明,如图9所示,其过程如下:
54.1)试验鉴定业务系统和各卫星研制单位数据系统均具有proto文件,可以对proto文件进行编译,得到消息类型对应的指定消息结构;其中,proto文件为图2~图6规定protobuf数据的定义文件,分发给消息数据的生产者和消费者,进入步骤2。
55.进一步地,不同的数据类型对应不同的proto文件,其中,数据类型包括遥测源码、遥测参数结果、遥控指令信息、环境数据信息以及文件传输信息;图2~图6针对试验鉴定的遥测源码、遥测参数结果、遥控指令信息、环境数据信息、文件传输信息,分别规定了对应的proto文件,具体如下:
56.图2规定卫星发射场试验鉴定业务遥测源码结构化数据文件(.proto),包括消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、虚拟信道vcid、源包识别pkid、源码数据data。
57.图3规定卫星发射场试验鉴定业务遥测参数结果结构化数据文件(.proto),包括消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、数据内容vals(重复嵌套),其中数据内容是可重复单元,每个单元包括参数代号param、参数类型type、源码值raw、工程值val、展示内容display。
58.图4规定卫星发射场试验鉴定业务遥控指令信息结构化数据文件(.proto),包括消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、指令源地址source、指令目的地址target、指令内容data。
59.图5规定卫星发射场试验鉴定业务环境数据信息结构化数据文件(.proto),包括消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、温度temp、湿度humi。
60.图6规定卫星发射场试验鉴定业务文件传输信息结构化数据文件(.proto),包括消息长度msglen、消息类型msgtype、型号代号sat、数据流标识flow、消息计数cnt、生成时间time、文件全路径filepath。
61.2)各卫星研制单位数据系统首先作为消息数据的生产者获取试验鉴定业务所需的原始消息数据,按照数据类型,对原始消息数据使用对应的消息结构进行序列化处理,将数据结构或对象转换成二进制数据格式,进入步骤3。
62.3)对步骤(2)产生的序列化消息数据进行网络传输至消息总线,进入步骤4。
63.4)试验鉴定业务系统此时作为消息数据消费者通过订阅的方式从消息总线获取序列化处理后的消息进行反序列化处理,具体为根据消息类型调用对应的消息结构对收到
的消息进行解析,获得原始消息数据各个字段的含义,并根据遥测源码、遥测参数结果、遥控指令信息、环境数据信息、文件传输信息类型组成一个或多个标准化消息对象,进行试验鉴定业务数据处理工作,进入步骤5。
64.5)如果试验鉴定业务系统需要进一步操控卫星,则进入步骤6,否则进入步骤9。
65.6)试验鉴定业务系统此时作为消息生产者根据下一步任务要求生成对卫星的操控指令数据,按照数据类型,对消息数据使用对应的消息结构进行序列化处理,将数据结构或对象转换成二进制数据格式,推送至消息总线,进入步骤7;
66.7)卫星数据系统此时作为指令消息数据消费者通过订阅的方式从消息总线获取序列化处理后的指令消息进行反序列化处理,具体为根据指令消息类型调用对应的消息结构对收到的指令消息进行解析,获得原始消息数据各个字段的含义,并根据遥控指令信息类型组成消息对象,进行遥控指令发送操作,进入步骤8。
67.8)进入步骤2。
68.9)流程退出。
69.进一步地,本发明一种动态可重构的卫星发射场试验鉴定业务消息交互方法,基于图2~图6规定的结构化数据文件(.proto),proto文件中规定的protobuf数据字段,设计了一种通用的鉴定消息传输格式,如图7所示,包含数据头、数据区和数据尾,具体如下:
70.数据头包含数据长度和数据类型,其中数据长度字段占用4个字节,值为本数据包所包含的总字节数,用于界定数据包的界限,接收方可以依据此字段的值将本数据包从接收字节流中提取出来,还可以验证本数据包的数据完整性;数据类型字段标识该数据包的消息类型,用于对消息进行相应的处理。
71.数据区:此为试验鉴定protobuf数据字段,为完成试验鉴定业务所需的数据或者对卫星的操控指令数据,该数据是由protobuf序列化后得到的二进制数据。接收方需要将其进行反序列化得到原始protobuf数据再进行处理。
72.数据尾:crc校验字段:占用4个字节,包含对数据区进行循环冗余校验后得到的crc校验字段。
73.进一步地,本发明所述的序列化过程,如图10,具体步骤如下:
74.1)消息生产者采集到消息数据之后,确定消息的数据类型,这里的数据类型是指遥测源码、遥测参数结果、遥控指令信息、环境数据信息、文件传输信息类型,进入步骤2。
75.2)根据数据类型调用由该类型的proto文件编译生成的消息结构,将消息里的每个字段进行编码,生成二进制字节流,完成原始数据序列化编码,构成消息数据区,进入步骤3。
76.3)获取message消息对象序列化后的字节数,得到消息长度,结合消息类型,构成消息数据头,进入步骤4。
77.4)计算整个消息的crc,构成消息数据尾,进入步骤5。
78.5)将数据头、数据区、数据尾拼接,序列化形成一个完整的鉴定消息数据结构。
79.同时,本发明所述的反序列化过程,如图11,具体步骤如下:
80.1)开始接收消息数据,判断接收缓冲区中的数据是否是一条完整消息数据,如果是,则进入步骤2;如果否,则进入步骤1。
81.2)判断消息数据头中的长度信息是否与消息实际长度一致,如果一致则进入步骤
3,如果不一致则说明消息有错,进行错误处理后则进入步骤6。
82.3)根据消息数据头和消息数据区计算crc校验,与消息数据尾中的crc校验进行比对,如果一致则进入步骤4,如果不一致则说明消息有错,进行错误处理后则进入步骤6。
83.4)判断消息类型是否是遥测源码、遥测参数结果、遥控指令信息、环境数据信息、文件传输信息中的一种,如果是,则进入步骤5,如果不一致则说明消息有错,进行错误处理后则进入步骤6。
84.5)按照消息类型,调用由该类型的proto文件编译生成的消息结构,将序列化过程中所生成的二进制串转换成数据结构或者对象,将数据存入缓存区,然后按照请求消息的类型将请求消息分发给相应的处理函数进行处理。进入步骤1。
85.6)反序列化过程结束。
86.由此可见,本发明提供了一种动态可重构的卫星发射场试验鉴定业务消息交互方法,使用protobuf数据协议进行序列化处理以及反序列化,保证了转化的准确与高效性;一旦需求有变,可以更新数据结构,而不会影响已部署程序,能够降低数据报文中挟带数据的长度,同时降低数据的序列化以及反序列化成本;也就是说,本发明具有良好的“向前向后”兼容性,不必破坏依靠“老”数据格式的程序就可以对数据结构进行升级,不用担心因为消息结构的改变,而造成大规模的代码重构或者程序迁移。
87.实施例二
88.进一步地,如果试验鉴定业务系统需要通过各卫星研制单位数据系统进一步操控卫星,则需要将控制需求等消息使用protobuf数据协议进行序列化处理以及反序列化,再由各卫星研制单位数据系统对外发送给卫星。
89.基于此,如图8所示,本发明提供了一种动态可重构的卫星发射场试验鉴定业务消息交互系统,包括卫星数据采集模块、第一鉴定消息序列化模块、第一鉴定消息反序列化模块、卫星鉴定业务处理模块、第二鉴定消息序列化模块、第二鉴定消息反序列化模块以及卫星指令发送模块;其中,卫星数据采集模块、第一鉴定消息序列化模块、第一鉴定消息反序列化模块以及卫星指令发送模块布置于卫星装备地面测控系统,第二鉴定消息序列化模块、第二鉴定消息反序列化模块以及卫星鉴定业务处理模块布置于卫星装备试验鉴定系统。
90.所述卫星数据采集模块用于采集卫星测控现场的各种不同类型的请求消息,完成数据的汇聚任务并生成json对象数据;
91.所述第一鉴定消息序列化模块用于根据所述json对象数据所属的数据类型调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对json对象数据进行编码,得到二进制格式的序列化消息,并将序列化消息传输至消息总线;
92.所述第二鉴定消息反序列化模块用于订阅消息总线中的序列化消息,根据序列化消息所属的数据类型,调用对应的proto文件进行编译,得到当前数据类型对应的消息结构,再使用当前得到的消息结构对接收到的序列化消息进行解析,最后将解析得到的数据读取至由通用编程语言构建的当前数据类型对应的消息结构中,得到还原后的json对象数据,并将json对象数据存入数据缓存区;
93.所述卫星鉴定业务处理模块用于从数据缓存区获取所述json对象数据,然后按照
请求消息的类型将json对象数据中的请求消息分发给对应的处理函数进行处理,得到设定的任务要求,最后按照设定的任务要求生成对卫星的操控指令信息;
94.所述第二鉴定消息序列化模块用于调用操控指令信息对应的proto文件进行编译,得到操控指令信息对应的消息结构,再使用当前得到的消息结构对操控指令信息进行编码,得到二进制格式的操控指令信息,并将二进制格式的操控指令信息传输至消息总线;
95.所述第一鉴定消息反序列化模块用于订阅消息总线中的操控指令信息,调用操控指令信息对应的proto文件进行编译,得到操控指令信息对应的消息结构,再使用当前得到的消息结构对操控指令信息进行解析,最后将解析得到的数据读取至由通用编程语言构建的当前数据类型对应的消息结构中,得到还原后的操控指令信息;
96.所述卫星指令发送模块用于将第一鉴定消息反序列化模块解码得出原始的指令消息数据发送至卫星,对卫星进行操控。
97.由此可见,本发明解决了传统试验鉴定模式下不同研制单位跨系统孤立的难题,将集中化解析及封装各卫星研制单位采集终端与试验鉴定数据中心的通信数据,数据可读性好,操作简单,减少上层业务系统对终端通信协议的依赖,使发射场具备对军用卫星的独立鉴定试验评估和快速测试发射能力。
98.当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当然可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1