APP下载

航天器信息物理测试系统的数据处理研究

2021-09-18孙小舒刘立士臧晶沈峙宇

科技资讯 2021年14期
关键词:验证数据处理

孙小舒 刘立士 臧晶 沈峙宇

摘  要:随着中国航天科技事业的快速发展,各类航天的需求量不断增加,使用正确的工作方法,使航天器件各部分之间的数据处理更加易于控制、辨析、检验就显得尤为重要。该文以航天器信息物理测试系统的开发为基础,通过接口化的程序设计实现数据处理的组包解包功能,最终通过半物理仿真任务进行数据处理的相关验证。

关键词:数据处理  组包  解包  验证

中图分类号:V55                           文献标识码:A文章编号:1672-3791(2021)05(b)-0059-03

Abstract: With the rapid development of China's aerospace science and technology, the demand for various types of aerospace is increasing. It is particularly important to use correct working methods to make the data processing between various parts of aerospace devices easier to control, analyze, and inspect. Based on the development of the spacecraft cyber-physical test system, this paper realizes the function of data processing grouping and unpacking through the interface programming, and finally performs the relevant verification of the data processing through the semi-physical simulation task.

Key Words: Data processing; Grouping; Unpacking; Verification

衛星遥测遥控数据处理的方式有基于文本、基于配置文件、基于XML和基于XTCE等方式,但是都需要开发人员维护数据库,并且XML语言相对复杂,语言解析速率相对较慢[1-3]。该文采用JSON数据描述语言,实现航天器信息物理测试系统的数据处理。

1  航天器信息物理测试系统

航天器信息物理测试系统在开发过程中主要分为两部分:一是基于模型仿真验证平台;二是对硬件资源进行调配的终端系统。该系统是通过对卫星各类器件或各个分系统进行数字化模型创建并连接星载航天器件的协同仿真实现的[4-6]。因此,在航天器信息物理测试系统中,遥测遥控数据传输硬件是仿真过程中的重要部分。

2  数据处理的设计方法

航天器信息物理测试系统的数据处理模块在接收到存储有遥控遥测数据协议配置信息的JSON语言后,调用组包程序将业务数据转化为二进制数据,或调用解包模块将二进制数据转化为业务数据。数据处理模块接收到JSON串后,会将解析出的所有协议抽象为一个库,定义为平台协议库,由统一的接口函数进行调用。

根据相关的JSON协议,航天器信息物理测试系统的数据处理模块调用组/解包程序,将接收到的业务数据或者二进制数据按照协议信息周期性地进行数据转化与处理,其程序流程如图1所示。

在航天器信息物理测试系统的数据处理研究中,组/解包程序设计流程的关键点是在组/解包过程中使用了递归函数来完成对协议各节点的遍历,并且使用了等待的方法代替判断用来监测数据接收接口,这样可以减少占用CPU资源[6]。

3  数据处理的实现与验证

该文中,因遥测遥控数据的组包协议与解包协议的构建基本相同,因此在协议配置过程中,采用了配置一次生成两种模型的设计方案。组包过程与解包过程的实现流程也大致形同,以解包过程的实现为例,伪代码如下:

void EPOLL::ThreadEntry() //接收硬件数据并通知解包模块

int ProtocolImple::OnReceive(const char* buff, size_tlen) {  //解包的入口

LOGGING_DEBUG("ProtocolID[%d] Recv Data:\n", protocol_id_);

if (PkgSrhType::kNoSch == type_container_.root_attr.srh_type) {

Decode(buff, len); } else {...}}

//确定所有位置和分支,并获取所有值.

auto get_attr = [this](int id) { return param_attr_list_.find(id); };

auto get_value = [this](int id) { return param_value_list_.find(id); };

package_tree_->Decode(bc, get_attr, get_value, 0);

Print();

//通知接收到的数据

cb_(protocol_id_, param_value_list_);

//递归函数遍历所有节点

size_tPackageTree::Decode(const core::BitContainer&bc, GetParamAttrget_attr,

GetParamValueget_value, size_t pos) {

TreeNode&attr = get_attr(data_.param_id)->second;...}

for (const auto&sub_node : children_) {

if (sub_node->data_.is_branch_invalid) {

data_.len += sub_node->Decode(bc, get_attr, get_value, pos + data_.len);

attr.len = data_.len; } }

return data_.len;}

該代码使用递归遍历“协议树”的所有节点。以一个半物理组包测试仿真任务为例,针对组包数据的一致性进行实验结果对比。组包初始化输入数据如图2所示,在终端log打印中以十六进制数据显示,组包数据以1acffc1d开始以0001结束。调用组包程序,将数据进行组包处理,并通过平台系统的数据显控功能将组包完成数据进行过滤回传。组包完成数据以十六进制显示,如图3所示。

经过对比图2的组包初始化输入数据和图3的组包完成数据,可以发现数据大小、数据长度和数据位置3个方面均相同,该实验结果证明了航天器信息物理测试系统的数据交互和数据处理模块能够完成数据的正确转换。

4  结语

该文首先阐述了航天器信息物理测试系统的功能与应用,实现了FMU模型的业务数据与实物硬件的二进制数据之间的相互转换,并将其统一为遥控遥测数据处理的组包与解包过程。最终通过实验证明,航天器信息物理测试系统的数据处理结果正确。

参考文献

[1] 何舒.基于XML的协议动态测试工具设计[J].软件,2021,42(2):108-111.

[2] 张东,杨军.XTCE在遥测事后数据处理中的应用研究[J].电子设计工程,2021,29(4):159-163.

[3] 刘慧君,吴家菊,纪斌.基于数据模型的通用数据处理方法研究[J].电脑与信息技术,2020,28(3):22-25.

[4] 玉绍康,关世杰,苏一博.基于Java环境下的Redis发布订阅的设计与实现[J].科技创新导报,2019,16(14):3,5.

[5] 陈永恒,韩东奇.利用Redis进行数据通信的研究与测试[J].科技创新导报,2018,15(14):173-174.

[6] 余思维.低成本的电机硬件在环实时仿真平台设计[D].长沙理工大学,2018.

猜你喜欢

验证数据处理
电容式传感系统数据处理电路的设计
基于ARCGIS 的三种数据处理方法的效率对比研究
贵州开建FAST科学研究与数据处理中心
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
视频大数据处理的设计与应用
合理猜想,有效验证
小题也可大做
弹药保障需求分析实验模型输出数据的验证研究
汽车外后视镜抖动问题模型的试验验证