基于1553B的卫星通用测试平台的设计与实现*
2020-05-18安然罗小成冯剑锋李惠媛张国栋
安然,罗小成,冯剑锋,李惠媛,张国栋
(上海航天电子技术研究所,上海 201109)
0 引言
卫星测试是指地面测试设备对卫星的各通信指标进行测试,如指令控制、数据发送、数据采集和测量、数据解析等。卫星测试分为单机测试,系统级测试和整星联试等阶段,是卫星研制过程中的重要环节[1]。目前卫星研制任务重、卫星设计复杂程度高、多任务并行,从而对测试设备的要求也越来越高。为每台单机配备专门的测试设备,既浪费人力和财力又耗时,已不再适用当前形势的需要。通用测试平台,通过加载不同任务的测试配置项,可以实现相应任务的测试需求,这使得通用测试平台可以同时适用于多个卫星型号的单机测试和系统测试,这极大地节约了卫星型号测试设备的研制周期,方便了卫星型号的研制[2]。
1553B 总线是MIL-STD-1553B总线的简称,其全称是飞机内部时分制命令/响应式多路复用数据总线。基于其数据传输速率高,传输机制可靠和总线效率高等优点,最初由美国空军用于飞机航空电子系统,目前已成为一种国际标准,被广泛应用在航船、航天等领域[3]。我国于1987年颁布了相应的军标。1553B总线是目前卫星的主要通信方式。基于其总线形式的拓扑结构,我国卫星和飞船型号上广泛采用1553B总线接口进行测控分系统、数传分系统、有效载荷分系统等分系统综合管理单元有权机和各单机之间的数据传输[4-5]。
首先,进行基于1553B总线的卫星通用测试平台的设计,描述通用测试平台的硬件连接图和软件设计思路;然后,进行通用化测试平台的建模,明确开发环境,进行功能需求分析和建模;最后,以某型号单机为例,绘制主控软件流程图和客户端软件的实现界面,描述软件实现。经验证,该基于1553B的卫星通用化测试平台,通用性好,测试覆盖性全,能较好的满足多个型号分系统和单机产品的测试需求。
1 卫星通用测试平台的设计
1.1 硬件连接图
1553B 总线采用指令/响应型通信协议,它有3种终端类型:总线控制器(bus controler,BC)、远程终端(remote terminal,RT)和总线监视器(bus monitor,BM);信息格式有BC到RT,RT到BC,RT到RT,广播方式和系统控制方式;传输媒介为屏蔽双绞线,1553B 总线耦合方式有直接耦合和变压器耦合;1553B 总线为多冗余度总线型拓扑结构,具有双向传输特性,其传输速度为1 Mbit/s,传输方式为半双工方式,采用曼彻斯特进行编码传输[6]。采用这种编码方式是因为适用于变压器耦合,由于直接耦合不利于终端故障隔离,会因为一个终端故障而造成整个总线网络的完全瘫痪,所以其协议中明确指出不推荐使用直接耦合方式[7-8]。
如图1所示,地面测试设备为总线控制器BC,被测目标如数管系统某单机为远程终端RT(以某卫星型号xx-3为例),总线控制器BM是备选的接入设备,用来实时监控总线上的数据传输。由总线监视器组织总线数据传输。
图1 基于1553B总线的硬件连接图Fig.1 Hardware connection relation based on 1553B
1.2 软件设计
通用测试平台设计采用分布式软件架构[9],以满足各类1553B消息的发送和采集、分析处理、实时查询、显示、设备自检等功能要求。通用测试平台的设计特点是通用性,软件设计时考虑硬件接口标准化设计、功能模块化设计[10]、软件配置项[11-12]等几个方面。
采用功能模块化设计思路,把整个测试平台分为3个模块:主控软件、数据库软件和客户端软件,软件设计架构如图2所示。3个模块软件按照功能划分,各有分工,组合实现完整的测试流程。
图2 软件设计构架图Fig.2 Software design architecture diagram
3个模块之间通过消息中间件通信。消息中间件是网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连和互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性。如图3所示。
图3 消息中间件示意图Fig.3 Software design architecture diagram
因此,测试平台各模块之间耦合性低,各模块内部的功能、性能改进性修改不会影响到其他模块。同时,软件具有良好的扩展性,如需增加功能,则在相应模块增加接口,不会对整个软件架构造成冲击。
(1) 主控软件
主控软件是整个系统的核心,负责本系统的硬件接口以及对外的信息流交互,负责数据的收发、数据存储管理、数据查询和日志管理等功能。
主控软件的数据收发功能,是指数据通信的处理过程,通过多线程实现;数据存储管理功能,是指数据处理时的缓存存储,不同于服务器的数据本地存储;数据查询功能,是指数据从接收线程到解析线程的内部查询;日志管理功能,是指数据的接收和发送等信息实时日志存储。
对外接口采用硬件接口标准化设计,可随着硬件设备的升级换代,无缝升级软件的接口驱动,从而保证软件平台兼容硬件板卡的升级。具体实施步骤:
Step 1.在软件代码中维护2个全局变量列表
一个是硬件设备号列表,另一个是硬件接口的静态链接库列表。
Step 2.硬件设备接入过程
当有新的硬件设备首次接入时,需要在软件界面上添加设备并保存,此时在软件代码中实现给2个列表增加新值;当选择已有设备时,需要在软件界面上选中设备。
Step 3.设备的初始化过程
设备的初始化过程封装成标准的接口函数,输入参数有2个,硬件设备号和硬件接口的静态链接库。在完成上述步骤后,从软件界面读取选中设备,并完成输入参数赋值。
由此实现硬件接口标准化设计,不需要修改软件代码,即可实现软件平台兼容多型号硬件板卡。
(2) 数据库软件
数据库软件负责存储在整个测试过程中接收、发送、数据处理前、数据处理后的数据,分为实时存储和数据备份2部分功能。
数据库开发选择Microsoft SQL Server工具,只在后台运行。主控软件或客户端的数据通过消息中间件实时传送给数据库,无传输时延。数据库在本地存储接收到的所有数据作数据备份,当需要数据查询时,直接在客户端的软件界面,设置查询选项,用SQL查询语句实现,通过消息中间件查询并输出,从而实现数据备份的功能。
(3) 客户端软件
客户端软件是用户直接操作的软件,位于最上层,主要负责将数据和数据分析处理结果以表格、图像、曲线等多种方式呈现,同时负责接收响应用户的消息发送指令和数据查询操作。客户端软件采用软件配置项的设计,软件运行首先加载配置项,根据配置需求,定制UI界面。
软件配置项包含很多内容,包括硬件设备配置、数据通信配置、页面布局配置和日志存储路径配置等。在软件工程建立之前,通过软件配置项设置相关参数的初始值,完成界面布局,建立消息链表等通信前的准备工作。软件配置项的各参数保存在本地xml文件中,每次软件运行时自动加载,可以在配置界面修改配置并保存修改。软件配置项中,最重要部分是1553B消息列表,在下面章节2.2和2.3中具体详述。
1.3 软件设计关键点
基于1553B总线的软件设计,测试需求有较多的周期消息,周期最小为0.5 s,周期误差范围为±80 ms,周期之间呈整数倍关系,软件实现对周期精度要求严格。
1553B通信周期消息的实现有以下几种方式:软件定时器、软中断和硬中断[13-14]。软件定时器:依靠应用软件设定的周期时间,周期性的调用函数。硬件中断:当中断事件发生时,设备向主机产生一个硬件中断的信号,操作系统或设备驱动响应中断信号并使用应用软件,应用软件触发回调函数。软件中断:应用软件周期性的读取寄存器的中断使能标志位,如果该位置1则触发中断,软件执行回调函数。
三者相较,软件定时器最简单,完全依靠软件的周期控制。但是,当周期任务较多时,定时器的周期精准度比较差,误差太大,故不作考虑。再来比较软件中断和硬件中断:软件中断不需要和操作系统进行交互,从而操作上更简单和方便;软件中断需要周期性的读取设备板卡的寄存器值,故而更消耗计算机内存。在计算机内存允许的情况下,软件中断比硬件中断响应速度更快,应优先选择软件中断;当软件处理任务多,复杂度高的情况下,应优先选择硬件中断。通用测试平台的设计选择软件中断的方式实现周期消息的收发。
2 卫星通用测试平台的建模
2.1 开发环境
通用测试平台的操作系统选用Windows Microsoft XP及以上,32位或64位;主控软件以及客户端软件开发语言选择Visual Studio C#或C++,开发平台选择Visual Studio 2013或以上版本;数据库开发选择Microsoft SQL Server。
2.2 功能需求分析
根据MIL-STD-1553B协议的约定,数据通信通过消息的收发实现,消息有4个固有属性:地址,子地址、传输方向、消息字数[15]。地址标记某个RT终端,取值范围0~31,31表示广播地址;子地址标记BC与RT终端通信的某种消息,取值范围0~31,分为发送子地址和接收子地址。每条消息最多传输32个字,超过32个字的数据拆分为多条消息传输。
总结多个卫星型号的基于1553B总线通信的单机产品的测试需求和实际测试经验,提出编写消息列表,填入软件配置项的设计思路,实现通用设计。
下面以某型号数管系统某单机为例,以子地址分类,分析测试需求的所有消息内容,总结消息列表的编写原则,见表1~3。
分析上述消息内容发现,各消息之间并非互相独立,有一定的相关性。工程遥测送数传消息,在结束时关联结束字消息,标记该类型数据发送完成;长抱环测试包括发送和返回2个步骤等等。由此总结出消息的3个特征属值:周期属性,结束字属性,返回字属性。归纳出该型号单机的消息列表,如表4所示。
消息列表是覆盖所有测试需求的数据通信的集合,消息列表的每条消息包含固有属性和特征属性。针对某个型号,用户通过配置软件配置项的消息列表,覆盖测试的所有功能。
2.3 建模过程
首先,客户端软件读取软件配置项,初始化消息列表。
表1 接收子地址Table 1 Receive sub-address message collection
表2 发送子地址Table 2 Transmit sub-address message collection
表3 广播子地址Table 3 Broadcast sub-address message collection
表4 某型号单机消息列表Table 4 Message collection of a product example
方式字命令消息放在首位,设置成中断消息,通过设置延时消息加循环消息列表的方式控制最小实现周期,即方式字命令消息的周期。
然后,采用软件中断的方式执行消息。
主控软件读取消息列表中消息的属性,向远程终端发送或接收消息。当中断触发时,依次判断消息列表中各消息是否满足执行条件。满足条件,则以消息插入的方式把该类消息插入消息列表,单次执行;不满足条件,则跳过。
最后,按照协议解析并转发消息给总线控制器;同时,数据库存储消息,客户端软件显示消息。整个业务流程图如图4所示。
图4 软件业务流程图Fig.4 Software transaction flow diagram
3 卫星通用测试平台的实现
3.1 主控软件流程图
主控软件的流程图如图5所示,根据软件配置项,依次对消息列表中的消息,按照其属性实现消息的发送或接收。对周期消息,每次判断消息的周期条件是否满足;对单次触发消息,每次判断消息的触发标志是否为真。
3.2 客户端软件界面
客户端软件的实现界面在此详细列举,以某型号数管系统某单机为例,分别为总线指令界面、遥测界面、数据注入界面、长抱环与广播消息界面,如图6所示。根据软件配置项,选择需要的功能模块,以Tab页的形式,显示在软件界面上。
总线指令界面:在左侧指令列表双击选中某条指令,在右侧显示详细的指令信息,点击发送按钮或者重新选择按钮,实现相应功能;在下方记录栏记录指令发送的日志。
遥测界面:点击开始或停止按钮,开始或停止遥测数据的接收。当数据接收时,在中间列表框显示接收的遥测信息,包括遥测原码和解析值;在下方记录遥测接收帧数。
数据注入界面:在界面上选择注数文件和注数类型,点击注数按钮,完成数据的注入,在下方记录栏记录数据注入的日志。
图5 软件消息实现的流程图Fig.5 Main software flow diagram
图6 客户端软件界面Fig.6 Client software UI
长抱环与广播信息界面:分区域显示长抱环和广播信息,每部分有单独的开始和停止按钮,分别控制各类信息的启停。当周期性的消息收发通信时,在各区域分栏记录通信日志。
4 结束语
基于1553B总线接口设计的通用化测试平台,适用于卫星型号的1553B总线接口的单机测试和系统测试。该平台采用硬件接口标准化设计、功能模块化设计、软件配置项的设计思路,分为主控软件、数据库软件、客户端软件3个子软件实现。该平台已参与多个卫星型号的单机测试和验收,能够全面覆盖基于1553B总线的卫星通信测试需求。
基于1553B的卫星通用化测试平台,可以同时适用于多个卫星型号的地面测试,节省了人力成本和时间成本,给卫星地面测试带来了极大的方便,从而有效保障了卫星型号的研制进度。