桂严 赵慧 伏玉明 陈瑞
(1.中国电子科技集团公司第三十二研究所 上海市 201808 2.兰州工业学院 甘肃省兰州市 730050)
随着我国航天技术的不断发展以及对航天产品的需求不断增加,卫星系统越来越复杂,对卫星地面测试的要求也更苛刻,测试需求日趋多样化和复杂化。卫星地面综合测试系统(简称“地测系统”)能实现实时操控、实时数据整理、计算机通讯、事后分析等多种功能,主要用来测试接口与仪器、卫星功能的检测与预期性能完备程度的匹配等功能,从而对系统软硬件的可靠性和兼容性进行判断。传统的地测系统一般是由研制总体单位根据本单位地测设备的测试任务和测试特点定制开发,并没有形成统一的规范,不同厂商和不同型号设备的接口和通信协议差别较大,这就导致了系统通用性不强,且开发成本较高。因此,构建自动化程度高、通用性和扩展性强、集中监控管理的卫星地面综合测试系统是非常必要的。
地测系统通过地测服务器对综测前端采集的数据进行存储、处理,响应终端电脑发送的测试指令,其工作流程如图1 所示。用户通过人机交互界面进行配置,将指令信息按照指定的报文格式进行封装,通过地测前端将遥控指令发送给搭载综合电子单机。搭载综合电子单机通过地测前端将遥测数据发送到地测服务器,地测系统按相应的报文格式进行解析、处理、存储和显示。
图1: 地测系统工作流程
本文从地测系统的通用性需求分析出发,提出了支持动态配置的技术途径,并围绕需求设计一种通信接口动态配置、软件协议动态更新和算法动态自定义的技术架构,用户通过修改配置文件,使得地测系统兼容不同型号的地测设备,为地测系统的遥控注数、遥测解析、历史数据存储与查询等功能提供支撑。
传统地测系统仅针对单一型号地测设备进行定制化设计,底层通信接口和软件协议是固定不变的,协议中字段采用的算法也不能改变,因此无法对不同地测设备做到通用。为了摒弃传统地测系统存在的缺陷,本文设计的地测系统尽可能采用配置的方式,实现遥控注数、遥测接收解析、数传数据接收解析等功能,且使地测系统兼容不同通信接口和不同软件协议的地测设备。地测系统应具备以下功能:
地测系统根据遥控协议,计算校验和、包长、帧CRC、帧长等信息,生成完整的遥控帧,通过底层通信接口向综合电子单机上注。
地测系统通过底层通信接口接收综合电子单机输出的遥测数据,根据遥测协议解帧和拼包,将完整的包数据进行显示与存储,且支持导出及查询功能。
数传数据作为遥测数据的一种特例,它的每一帧就是一包完整的数据,不需要按包内容解析,只需识别包头进行统计、存储与查询。
将遥控协议和遥测协议分别定义成表格文件,用户通过新增、修改、删除表格中的记录来更新协议内容,地测系统导入协议的Excel 文件,获取遥控协议和遥测协议的帧格式,从而动态更新系统的软件协议。
遥测数据解析后的字段源码需要进行一些算法处理,用户可以自行设置采用某种算法,地测系统解析遥测数据后,自动识别用户的自定义算法,对字段采用相应算法进行计算并显示。
针对遥控指令集合,一个角色拥有其中一部分遥控指令的权限,系统只开放当前角色拥有权限的遥控注数功能;同样,针对遥测帧,一个角色拥有其中一部分字段的查看权限,系统只开放当前角色拥有权限的遥测字段显示功能。
本文设计采用一种可扩展、可配置、可裁剪、开放式的系统性解决方案,整个搭载综合电子单机地测系统均采用动态可配置的设计,包括底层通信接口可配置、软件协议可配置、算法可配置、用户权限可配置、存储路径可配置等,通过配置文件进行统一管理。在保证功能性和实用性的同时,考虑到传统文本存取存在读取繁琐、可靠性低、完整性差等问题,本系统采用MySQL 数据库进行数据管理,系统的体系架构如图2 所示。
图2: 地测系统体系架构
配置文件提供用户对地测系统中涉及的协议、接口、权限等做出一些规定和约束,包括数据库配置、通信接口配置、存储路径配置、遥控表配置和遥测表配置。其中数据库配置文件用来设置数据库的IP、用户名和密码,以便地测系统能够正确访问数据库;通信接口配置文件使用户能够根据当前地测设备的底层接口配置情况,灵活选择特定接口进行遥控注数和遥测接收,并对接口参数进行设置;存储路径配置文件用来设置遥控注数信息、遥测数据和数传数据的存储位置;遥控协议配置文件用来定义遥控指令格式和控制权限;遥测协议配置文件用来定义遥测帧和遥测包格式,并对不同角色访问字段进行限制。地测系统无需修改程序源码,通过配置文件即可实现兼容不同型号的地测设备。
通过设计数据表结构和表关系,将地测系统运行过程中所产生和关联的数据,记录到数据库中进行维护,实现数据的共享和扩充,包括日志表、登录表、角色表、用户表、遥控表、遥测表、遥测详细表等。其中,日志表记录遥控指令、遥测数据和数传数据的历史相关信息;登录表记录上一次系统登录的用户名、密码以及是否保存密码的信息;角色表记录遥控协议和遥测协议中规定的遥控角色和遥测角色的相关信息;用户表记录地测系统中所有用户的信息,包含用户名、密码、遥控角色、遥测角色和描述信息;遥控表记录所有遥控指令格式和控制权限的信息;遥测表记录所有遥测源包的信息;遥测详细表是一系列遥测包协议表的集合,每一种遥测包对应一个遥测包协议表,记录遥测包格式和字段访问权限的详细信息。
地测系统主要分为遥控注数、遥测解析、数传数据、协议管理、用户管理和日志管理六大功能模块,通过读取配置文件实现通信接口、算法、协议的动态配置,利用数据库与各功能模块进行数据交互。其中,遥控注数模块实现遥控K指令组包、遥控D 指令组包和指令信息存储的功能,按照遥控包格式对指令进行封装,通过指定的接口发送出去;遥测解析模块监听指定的通信接口,对收到的帧数据进行解析,按照遥测包格式进行遥测包的拼接,将完整的遥测包存储到数据库中;数传数据模块根据帧头统计数传数据的个数,并将数传数据源码保存到数据库中,提供按时间段检索的功能;协议管理模块实现遥控协议和遥测协议的更新,用户通过选择协议的Excel 文件,手动更新数据库中的软件协议;用户管理模块提供新增用户、编辑用户、删除用户和检索用户的功能,对地测系统中的所有用户进行管理;日志管理模块实现对系统的历史数据进行管理,提供日志检索功能,并支持历史数据的导出。
搭载综合电子单机地测系统基于C/S 架构设计,采用Qt 作为开发工具,运用数据库技术、通信技术、多线程技术等,实现遥控注数、遥测解析、历史数据存储与查询等功能,且提供协议动态配置、算法动态配置和通信接口动态配置,解决了不同类型地测设备的兼容性问题。从模块设计角度出发,地测系统分为数据库表结构设计、配置文件结构设计、遥控注数设计、遥测解析设计、数传数据设计、协议管理设计、用户管理设计和日志管理设计,如图3 所示。
图3: 地测系统模块组成
地测系统使用多张数据库表存储交互数据信息和历史数据记录。登录表结构采用用户名、密码和是否保存密码三个字段进行设计,记录上一次用户登录信息,当用户登录成功后,及时更新登录表中的内容。角色表结构采用遥控协议和遥测协议中的角色名称、数据库中对应的角色名称和角色类型三个字段进行设计,为系统按角色检索数据提供依据。用户表结构采用用户名、密码、遥控角色、遥测角色和描述信息五个字段进行设计,存储地测系统中所有用户的信息,为系统的用户管理提供支撑。遥控表结构根据遥控协议的表头信息动态生成字段进行设计,在遥控协议发生变化时同步更新遥控表。遥测表结构根据遥测协议文件中的“源包信息表”动态生成字段进行设计,根据遥测帧中的标识符检索出遥测包名称,从而提供遥测详细表的名称。遥测详细表结构是根据每个遥测协议详细表的表头动态生成字段进行设计,为遥测数据解析提供依据。日志表结构采用遥测或遥控名称、时间、通信接口、数据类型、指令码或标识符、数据存储位置六个字段进行设计,存储历史遥控指令和遥测数据的相关信息。
为了兼容不同地测设备的通信接口和软件协议,地测系统采用配置文件实现系统的通用性。数据库配置文件包含数据库的IP、用户名和密码,采用文本格式进行设计,各信息之间使用英文逗号进行分隔。通信接口具有多种类型,比如同步串口、异步串口、LVDS 接口、SPACEWIRE 接口等,采用通信接口配置文件设置遥控注数和遥测接收的通信接口,由于接口参数较为复杂,普通文本文件不易解析,因此通信接口配置采用xml 文件进行设计。存储路径配置文件包含遥控包存储路径、遥测包存储路径和数传数据包存储路径的设置,采用文本格式进行设计,每一行字符串代表一个路径。遥控协议和遥测协议具有固定的帧格式结构,只是每个字段的取值不同,从而生成不同类型的遥控指令和遥测信息,本系统采用Excel 表格保存遥控协议和遥测数据的字段信息,表头定义软件协议的所有字段,表格中的每一条记录代表了每一种遥控指令或遥测信息的协议。
遥控注数通过人机交互界面提供用户选择遥控指令,分为遥控K 指令和遥控D 指令。界面设计采用单选框选择通信接口,根据用户权限检索当前用户具有的控制指令,以下拉框提供用户选择,发送时间选择本地时间或输入卫星时间,手动输入参数或导入参数文件。根据用户选择的指令,在数据库中检索出对应的遥控帧格式,通过界面控件获取遥控字段的值,快速构建指令的遥控帧,采用按钮将指令从指定接口实现“一键发送”。同时,将遥控包源码写入文件,指令名称、指令码、发送时间、遥控包路径等信息存入数据库。
遥测解析分为实时数据解析和历史数据解析。采用单选框选择解析类型,若选择实时数据解析,则对指定端口收到的遥测数据进行实时解析,及时更新遥测字段的显示内容,并将遥测包源码写入文件,遥测包名称、标识符、接收时间、遥测包路径等信息存入数据库;当对某个遥测源码包进行历史数据解析时,历史数据解析单选框自动被选中。采用多选框选择遥测数据的接收接口,每个接口的接收程序对应一个线程,实现多个接口同时接收遥测数据。根据用户权限检索当前用户具有权限查看的所有遥测字段,以表格显示字段对应的遥测编号、名称、字段源码和算法处理后的数值。
数传数据作为遥测数据的一种特例,用户不关心数据包实时解析字段的内容,只需识别包头对数传数据进行统计和查询。采用多选框选择数传数据的接收接口,每个接口的接收程序对应一个线程,实现多个接口同时接收数传数据。通过数据库检索数传数据的字段结构,根据数据帧中的识别符实时统计不同类型数据包的个数,以表格显示包应用过程标识符及其对应的个数,并将数传数据包源码写入文件,数传数据包名称、标识符、接收时间、数传数据包路径等信息存入数据库。此外,提供按应用过程标识符、起始日期时间、结束日期时间的条件对数传数据的检索功能,并显示检索记录的个数。
协议管理功能是实现遥控协议和遥测协议的动态更新,当用户协议发生变化时,通过文件对话框提供用户选择相应的Excel 协议文件,读取并解析Excel 表格内容,并将数据库中的协议表同步更新。同时,在界面上显示所有指令和遥测数据的字段信息。
用户管理是对地测系统的所有用户进行统一管理,根据不同的用户做出不同的权限限制,是管理员才具有的权限。系统提供按用户名、遥控角色和遥测角色的检索功能,将符合条件的所有用户记录以表格进行显示。新增用户提供一个对话框,给新用户设置用户名、密码、权限和用户相关描述信息,其中权限选项来自于遥控协议和遥测协议中的角色;编辑用户不可更改用户名,可以修改密码、权限和用户相关描述信息;删除用户可以通过选择某个用户进行删除,或者通过选中多个用户进行批量删除。
日志记录地测系统的操作信息,包括遥控注数和遥测数据的相关信息。当遥控指令发送完成后,遥控指令相关信息会自动写入数据库;当遥测数据和数传数据接收完成后,数据包相关信息也会自动写入数据库。日志管理还提供按接口、数据类型、起始日期、结束日期、指令码或标识符等条件检索的功能,以表格显示检索记录,同时支持将检索结果导出Excel 文件。
地测系统部署在地测服务器上,由用户输入用户名和密码登录进入系统,登录界面和主界面实现效果分别如图4 和图5 所示。
图4: 登录界面实现效果
图5: 主界面实现效果
鉴于卫星地面测试需求日趋多样化和复杂化,针对传统地测系统功能单一、通用性差等问题,本文提出并实现了一种搭载综合电子单机地测系统,提供了遥控注数、遥测解析、数传数据、协议管理、用户管理和日志管理等功能,并实现了通信接口、算法和软件协议的动态配置。本系统作为新一代的地测系统,兼容不同型号地测设备的接口和软件协议,具备良好的可扩展性、灵活性和易用性,为卫星软硬件测试提供支撑。