- UID
- 863084
|
基于数据包的航天器数管模拟器软件设计 更新于2012-06-12 04:23:19 文章出处:互联网
数据包 航天器 模拟器
摘要:随着空间技术的快速发展,使用数管模拟器模拟数管分系统进行测试已成为趋势。为了使数管模拟器软件能够适应航天器数据管理新的变化,降低软件实现难度,根据用户需求和已有硬件平台,提出了一种软件设计。本设计采用数据处理分层体制协议来降低软件实现的复杂性,使用数据包进行数据处理,并利用数据帧来完成数据的传输。该模拟器进行了100 h的各项功能老练试验,结果表明,该设计可靠、稳定、能满足设计要求。
关键词:数管模拟器;空间技术;数据包;软件设计
数管分系统作为航天器平台的重要支柱。实现航天器数据的采集、传输、处理和利用,是航天器的信息中心,也是提高航天器利用效率的关键。数管模拟器全面模拟航天器数管分系统功能,实现与电源、姿轨控、热控以及有效载荷的对接,完成对平台及有效载荷的遥控、遥测、统一时间勤务等管理。随着航天器产品数量的不断增加和复杂度的不断提高,在航天器研制过程中使用数管模拟器模拟数管分系统对航天器平台及有效载荷进行测试能有效缩短航天器试验研制周期,降低航天器的研制成本。某航天器数管模拟器是航天器平台服务设备,需要对不同信源、不同速率、不同性质的多种信息统一管理,形成综合数据流,以满足多种信息传输的需要,使得上下行信道可以为航天器平台和有效载荷的各个不同应用过程所共有:在信息传输过程中,要求能够根据当前实际需要改变上下行通道传输的数据类型和数据量,从而提高数管系统的效率和效益;在模拟器协议实现中要求采用分层结构,系统软件和应用过程任务软件分别设计,在系统软件上通过添加/删除应用过程任务软件可以实现不同功能的组合。
1 软硬件体系
数管模拟器硬件平台由中央处理器模块、遥测采集模块、开关指令等模块组成,设备组成及与外部设备接口如图1所示。
中央处理模块主要完成与地面总控计算机的通讯,接收地面总控发出的控制命令来完成器上时间校准、间接指令的发送、内存下卸以及总线数据的注入等功能,这个模块主要模拟航天器数管计算机功能。中心处理模块通过1553B总线和星上其他设备进行通信,在这个总线系统中,中央处理模块作为总线BC端,其他设备作为总线RT端。
遥测采集模块模拟航天器远置单元的数据采集功能,它将采集到的各种离散的遥测量组包后通过串口发送给中央处理模块。
开关指令模块接收从中央处理模块来的命令和数据,完成遥控指令的分配、输出功能。开关指令模块模拟远置单元间接指令功能,即开关指令的驱动输出。
数管模拟器软件包括有遥测采集模块软件与中央处理单元系统软件,数管模拟器正常工作时,两者同时运行,两软件及外部设备数据流关系如图2所示。遥测采集模块软件负责采集验证器上各种模拟量与温度量,并且以150 ms为周期,定时被中央控制单元系统软件采集;中央控制单元系统软件还通过1553B总线采集星上设备数据,经过组帧后通过RS422总线传送给地面总控软件。中央控制单元系统软件同时也接收并执行地面总控软件发送的时间校准指令、直接指令、指令组指令、内存下卸指令、总控数据注入等指令。
2 软件机制
2.1 数据包
随着航天技术的发展,航天器上下行数据的信息量急剧增大,种类繁多复杂,各种信息的特点和对传输的要求差异大,信源已经不是单点信息字,而是经过处理的信息集合,同时多用户信源的信息需要通过同一物理信道传输。传统的PCM测控传输帧已很难适应这些变化。
数据包是由星上信源(分系统或设备)的一个应用过程产生的数据包,它包含了一组观测数据及相应的辅助数据。数据包概念的本质是航天器内运行的多个应用系统创建各自的单元数据,允许航天器上各数据系统通过空地通信信道传输这些数据。
数据包由航天器内的应用系统根据数据处理需要产生,间隔和长度固定或者可变,数据包允许各个应用系统优化它的数据结构和长度,这样每个数据源就可以独立于其他数据源定义与自身相适应数据结构。除了标识数据源和包特征的包头外,数据内容完全由航天器上各个应用系统决定。
同传统的传输帧格式比较,基于数据包的传输帧包含有应用系统及数据路由信息,数据装配能力强,数据传输灵活,采样时间间隔可以不固定。这样就对航天器和地面设备之间的数据通信带来了很大的方便。
2.2 数据处理分层体制
现代数据系统主要面向数据包信源信宿,用户可以按照“需求驱动”的原则自主转换数据包格式和内容,使用分层数据处理的方法,为用户提供更高的灵活性。
数管模拟器使用分层数据处理体制可以利用数据包,将复杂的航天器控制过程简化为由各层一系列简单的标准操作同等实现,层与层之间按照一定的协议有标准的数据格式接口,其层次模型可以用图3说明。
应用过程层主要完成星上设备数据的管理和分发功能,这个层中不同应用过程构成一个系统,分别对应管理星上某一个任务,对应于与模拟器对接的各个星上设备数据的产生与接收。
分包层的业务是提供星上设备和数管模拟器之间端对端的用户应用数据传输。数据下传时,分包层接收应用过程层经过格式转换后的具体数据流,将它封装在标准的交换数据格式中,依靠分段层支持,完成数据下传功能。数据上传时,分包层将分段层发送过来的数据解析,并以数据包的形式发送给应用过程层。
分段层完成数管模拟器与地面总控设备的数据传输。数据下传时,提供的业务是单向的。数据上传时,分段层接收地面总控设备信息,并将数据解析后以数据包发送给不同的星上设备。
信道业务层是数管模拟器和地面总控设备通信的物理链路,本模拟器使用RS422总线通信,通信速率为115.2kb/s。
3 软件实现
3.1 上下行通道数据帧
在新一代航天器应用中不同的应用程序产生的数据源包可能是不同的发生率和包长度,这些源包是自主发生的,源包之间是异步的。数管模拟器需要接收组织这些数据包,并在分段层内完成下行数据帧的组织发送,参见CCSDS遥测数据链路协议建议,设计下行数据帧格式如图4所示。
下行数据帧长度固定,共有768个字节。头两个字节为数据帧的帧同步字,占用两个字节,用于完成相邻帧的区分;星上时间共占用了6个字节的长度:第768个字节为帧计数,大小为0~255:第9个字节到第767个字节存放源包数据,如果源包数据小于767个字节,将下行数据帧中的多余部分填充为0。数据域中的数据包可以是遥测采集数据包、GNC数字量遥测数据包、下卸内存包等。
上行通道是数管模拟器接收地面总控设备发送数据帧的链路。如果使用传统的脉冲编码调制上行数据,航天器需要做二次设计,这样分系统间遥控接口不统一,软件通用化很低,这和软件产品化思想背道而驰。数管模拟器与地面总控设备的上行通道协议,采用数据帧的方式进行,所有数据要求遵循表1的格式。上行数据帧根据数据帧的指令码,共分为器上时间校准数据帧(指令码8e55),间接指令数据帧(指令码d1d1),指令组发送数据帧(指令码5a5a),内存下卸数据帧(指令码b2b2)以及1553B总线数据注入数据帧(指令码b1b1)等。
数据帧的帧头为EB90,用于完成帧同步,长度字占用了两个字节,表示指令码和数据域总长度,因为每条协议都要有指令码,因此长度字最小值为0002H。指令码用于区分数据域中数据的用途,数据域用来保存有效数据。数管模拟器系统软件接收到地面总控设备发送的数据帧后解析指令码,并根据不同指令码完成特定的操作。
3.2 数管模拟器系统软件
系统软件每个任务执行周期为150 ms,执行周期定时器通过FPGA硬件实现,单个执行周期误差小于5 ms,时间零点为2010年01月01日00时00分00秒00毫秒。系统软件通过基于时间片的轮转调度分配处理器模块的处理资源,做到对多种任务的准实时处理。
地面总控通过RS422给数管模拟器发出遥控指令,CPU响应RS422总线中断,置串口中断有效标志,在主程序中,判断中断标志,在处理函数中执行相应的指令动作,通过不同的命令字执行相应的操作。
系统软件流程图如图5所示,软件开始执行时首先初始化系统的各种资源及寄存器,清看门狗后等待地面总控设备发送的数据帧;如果地面总控设备发送了数据帧,系统软件首先解析数据帧的指令码并根据指令码内容决定本周期执行的任务。系统软件只负责多任务的调度和固定时间片的分配,具体任务由应用过程任务软件来完成。
3.3 遥测采集模块软件
遥测采集模块软件主要完成接收遥测板发送的传统遥测量,共计164个字节的遥测数据。遥测采集模块组织这些数据并将这些数据以数据包的形式发送给中央处理单元。
系统软件每150 ms向遥测采集模块发送要数命令,接收到系统软件发送的要数命令后遥测采集模块开始传统遥测量的采集,组包后将数据通过串口发送给数据处理模块。系统软件进入串口中断后,将数据包放入到下行数据帧中,并等待下行数据发送任务执行时,将下行数据帧发送出去。
4 实现与验证
数管模拟器的CPU模块由TI的DSP器件TMS320F2812和512 kbit的RAM组成,与FPGA一起对各种接口进行控制。
本文中的软件设计使用C语言来实现,使用CCS3.3软件开发环境开发,调试计算机使用Windows XP操作系统。模拟器进行了100个小时的老练试验,期间进行了遥控指令发送、姿轨控内存数据下载、星上时间校准、模拟量遥测数据采集等功能测试。测试结果表明使用该软件设计的数管模拟器能够可靠、稳定地完成模拟数据管理分系统的任务。相比传统数管模拟器,基于数据包的航天器模拟器能够适应不同的应用程序产生的不同发生率和包长度的数据源包,简化软件的开发过程,提高有效数据利用率。
5 结束语
在综合分析了模拟器的需求后,实现了数管模拟器的软件设计,其功能和性能在系统试验中得到了充分验证。软件设计体现了模块化设计的思想,使用静态周期轮转的方式实现任务的调度,实现起来比较简单,有助于软件任务正常执行,使用分层设计的思想,实现不同信源信宿数据的统一管理,有利于软件的标准化和组件化。 |
|