卞新豪,赵巾卫,方 猛,夏宇垠,许 猛
(中国航天科工集团8511研究所,江苏南京 210007)
星载设备通用化自动测试系统是使用计算机代替人工操作,按照预定的程序,控制和管理被测载荷的地面仪器设备。测试系统能对信号激励、信号采集、信号测量实施控制,对测试信息进行处理、判读和记录,并给出测试结果报告[1]。
从20世纪80年代中后期开始,以美国为代表的西方主要发达国家就开始致力于自动化测试系统的通用化,并逐步形成了以军种为单位的通用化系列标准。但是目前通用自动化测试系统依然存在应用范围有限、开发和维护成本过高、系统间缺乏互操作性、测试诊断新技术难以融入已有系统等诸多不足。我国航天型号自动测试系统从20世纪80年代初开始研制,至今主要经历了2代:CAMAC自动测试系统和VXI自动测试系统。开发出的相应测试系统主要包括:卫星控制系统、卫星整星自动测试系统、遥测测试系统、运载火箭测试系统、仿真系统等[2-3]。其中专门针对卫星载荷的自动测试系统相对较少。
我国现有的航天测试系统多为人工参与程度较高的简单通用测试平台,或为仅供某一特定型号使用的测试系统。主要存在以下问题:1)通用性差:缺乏统筹规划,大多采用一套测试系统对应一套被测设备的模式,无法适应一对多的方式。若一套测试系统可同时控制测试多套被测设备,则可以缩减测试时间,减少测试人员。2)兼容性差,沿用性差:测试系统相互间不兼容,无法沿用,不同设备使用的测试系统无法统一,需重复投入,重复开发。3)人工参与程度高:设计师测试工作量大,并且人为失误也会影响对被测设备功能性能的判断。4)指令遍历性不够:指令受人为因素影响过高,无法遍历所有指令,导致测试覆盖性不够。5)痕迹回溯性差:测试痕迹、测试时间、测试内容事后匹配程度差,无法回溯测试状态及复现测试环境。
本文设计了一种基于开放式硬件和软件设计的通用化自动测试系统,能有效提高自动测试系统的通用性、复用性、测试覆盖性及自动化程度,是解决航天测试系统现有痼疾的一种有效途径。
通用化自动测试系统的研制,基于“开放式、模块化”的设计思想,硬件方面采用标准的商业架构,减少了设备复杂性、缩短了开发周期、降低了成本,软件方面采用模块化+开放式协议的方式,利于重复使用,使系统具有很好的互操作性和可移植性[4-5]。通用化自动测试系统主要由地检硬件和地检软件构成,其中地检软件又可分为地检驱动软件、显控软件及自动控制测试软件。
通用化自动测试系统的组成及工作原理如图1所示。
图1 通用化自动测试系统组成及工作原理
为满足通用性及复用性,通用化自动测试系统采用开放式架构来实现。
通用化自动测试系统的硬件平台为地检设备(以下称“地检硬件”),主要起上传下达的作用,其主要功能为模拟整星星务管理系统、数传分系统等系统功能,对被测载荷完成控制、遥测、数据下传等功能,检验被测载荷的功能性能是否正常。
地检硬件基于市面上常用的商业架构——PXIe总线架构进行构建。采用模块化的方案来实现相关信号的收发,所有模块均安装在9槽的PXIe机箱中,由机箱的控制器通过PXIe总线完成对模块化仪器的控制及采集数据的读取,并提供各种总线接口,不同项目根据需要加插不同板卡。地检设备硬件主要受地检驱动软件的控制及调用。
软件平台按照功能可分为3种可执行软件,分别为地检驱动软件、显控软件及自动控制测试软件。
3种软件之间的工作流程如图2所示。
软件按照分层的方法进行设计,主要包括应用层、协议引擎、库函数、驱动程序四层,如图3所示。
显控软件和自动测试软件为应用层面软件,主要针对不同被测设备的不同协议进行协议编辑,并存入协议数据库中,使用过程中从数据库进行调用,地检驱动软件为调用库函数,调配各板块驱动运行方式。所有的软件采用开放式协议方式,可由不同的设计师自行修改及分配。
系统实现通用化设计的核心为协议编辑软件,根据开放式的协议自动生成用户所需的界面,实现多种不同协议之间的重新配置,如图4所示。
图2 自动测试系统工作流程图
图3 软件架构原理框图
当更换被测设备后,在协议编辑软件上对被测设备的协议进行重新编辑,然后将协议存储至SQLITE数据库,保存为DB文件,各软件在初始化过程中加载DB文件,并且将数据库中映射信息加载至控件的隐藏弹窗属性中,实现软件的加载,如此则可满足不同课题的不同协议进行。
地检驱动软件接收到被测设备发送的数据,将不同的数据根据协议进行分类后,送至显控软件,显控软件根据加载的协议数据报文包头包尾判断所属协议内容,并调用数据库中对应的协议数据包进行数据解析,如图5所示,在解析过程中为满足通用化使用,特在协议编辑软件中设计了几种常规的字段格式:
图4 协议编辑软件主界面
图5 显控软件主界面
1)偏移:字段相对包头的偏移(即从包头开始第几个有效含义);
2)所占字节:有效字段所占的字节位数;
3)解算方式:有效字段的类型(位表示、固定值、变长消息标识符等);
4)属性:有效字段的属性(即该字段表示的含义)。
系统实现自动测试的基础即自动测试软件,自动测试软件通过联动显控软件及驱动软件,同时控制信号源或频谱仪来实现智能化自动控制,为满足自动测试软件能按照预设的时间和指令方式运行,专门设计了任务规划功能,在任务规划中加入了指令测试链表,以时间轴作为基线,进行灵活配置。每个指令链规定了执行的时间、执行的指令类型等,如图6所示。软件采用C#的动态脚本编译技术实现,测试线程启动后会解析测试链表中的每一个测试步骤,根据指令类型控制信号源或者频谱仪的设置,同时发送指令命令显控软件将指令发送至驱动软件进行执行,显控软件接收回馈的数据进行解析,最后根据测试要求自动生成测试结果,完成测试。
图6 自动测试软件指令测试链表
目前,通用化自动测试系统已成功应用于多种型号的星载载荷研制测试过程中,从实际应用情况来看,该系统具有以下几项显著效果:
1)适应了不同型号课题的测试需求,减少了资金及人力的重复投入;
2)具备了单套测试系统对多台套被测载荷同时进行控制处理的功能,大幅提高了测试效能,原多台套被测载荷线形测试流程转变为并行测试流程,节约了50%以上的测试时间;
3)实现了智能化、无人化、并行测试后,可减少50%以上的测试人员,且大幅降低了测试工程师的工作强度;
4)提高了测试覆盖性及指令的遍历性,实现了对指令自我判读的功能,减少了人为误判现象;
5)保护了被测载荷的正常运行,在被测载荷非正常运行情况下能自动报警,极端情况下可根据预设定的处理方式对被测载荷进行关机,实现对被测载荷的保护。
针对我国现有的航天测试系统通用性差、兼容性差、人工参与程度高、指令遍历性不够、痕迹回溯性差等诸多问题,本文设计了一种基于星载设备的通用化自动测试系统,通过开放性硬件及软件设计,满足并适应了不同卫星型号的测试需求,且具备一套测试系统对应多套被测设备的功能,在测试时间、人力资源和资金投入上具有明显的优势,使用过程中取得了较好的效果。该设计对构建航天自动测试体系具有一定的参考价值。