卫星软件系统
AI 摘要:卫星软件系统是指运行在星载计算机上、用于控制和管理卫星各分系统工作、实现任务功能的软件集合,通常分为系统软件(操作系统与板级支持包)和应用软件(姿轨控、星务管理、载荷管理、测控等)两个层次。其核心特征是“无人值守下的自主运行”:卫星发射后大部分任务时间软件在无地面干预下独立工作,必须能够自主从故障中恢复。星载软件通常采用分层架构(操作系统层、中间件层、应用层),遵循 ECSS-E-ST-40C 或 NASA NPR 7150.2 等航天软件工程标准。中国新一代卫星姿轨控软件已实现基于操作系统的星载应用软件并行开发和在轨编程能力。
一句话定义
卫星软件系统是指运行在星载计算机上、用于控制和管理卫星各分系统工作、实现卫星任务功能的软件集合,通常包括系统软件(操作系统、板级支持包、中间件)和应用软件(姿轨控、星务管理、载荷管理、测控通信等)两个层次,是卫星在无人值守条件下实现自主运行的核心。
概念边界:星载软件与地面软件的根本差异
卫星软件系统与地面软件的核心区别不在于功能复杂度,而在于运行环境的不可干预性。AIAA 期刊的一篇立方星飞行软件研究明确指出:飞行软件的实现比商业嵌入式软件更具挑战性——“卫星发射后,除非卫星与地面站建立联系,否则用户无法与其交互。即使建立联系,也只能在短暂、间歇的时间窗口内通过上行和下行链路通信。大部分任务时间,飞行软件在无地面监督的情况下运行”-7。
这一特性决定了星载软件必须具备自主故障恢复能力。AIAA 研究进一步指出:“飞行软件必须能够自行从故障中恢复。为实现这一点,尽管近年来技术取得了诸多进步,任务开发资源的很大一部分仍被分配给飞行软件的开发”-7。
星载软件与地面软件的另一区别是资源约束的刚性。星载计算机的处理能力、内存和存储空间受限于卫星平台的质量和功耗预算,软件设计必须在有限资源内实现所需功能。
分层架构:操作系统、中间件与应用
卫星软件系统通常采用分层架构,以实现硬件与软件的解耦和软件模块的可复用性。中国空间技术研究院(CAST)的软件参考架构是典型代表,其基于 CCSDS 的星载接口服务(SOIS)和欧空局(ECSS)的分组利用标准(PUS)设计,分为三个层次-3。
| 层次 | 功能 | 关键技术 |
|---|---|---|
| 操作系统层 | 封装操作系统接口,提供统一 API,管理硬件资源 | 板级支持包(BSP)、实时内核 |
| 中间件层 | 提供标准程序接口和协议,实现数据交换与跨平台支持 | 消息传递、数据管理、任务调度 |
| 应用层 | 包含航电系统的通用功能,不同项目实现可能不同 | 姿轨控、星务、载荷管理 |
CAST 架构的设计目的是解决航天项目中的软件复用问题。测试和验证结果表明,该软件架构对软件复用具有显著的正向效果-3。
中间件层是分层架构中的“黏合剂”。一项微纳卫星软件管理调度架构专利描述了中间件的核心服务:消息传递服务(支持点对点、发布订阅、请求响应等通信模式)、数据管理服务(遥测、遥控、载荷、配置数据的存储与查询)、任务调度服务(定时任务、事件触发任务、优先级任务)、故障管理服务(故障诊断、隔离、恢复)和安全管理服务(身份认证、权限控制、加密解密)-9。
应用软件:姿轨控与星务管理
应用层软件是卫星任务功能的直接实现者,其中最核心的两类是姿轨控软件和星务管理软件。
姿轨控软件负责卫星姿态和轨道的确定与控制。中国新技术试验卫星 C 星、D 星的姿轨控分系统通过基于操作系统的姿轨控应用软件架构设计和基于动态链接库的在轨编程设计,首次实现了基于操作系统的星载应用软件并行开发。通过一个软件配置项实现双星功能,解决了双星研制周期短、工作模式复杂等问题-2-10。
星务管理软件负责数据处理、任务调度、通信管理和时间管理。嵌入式系统软件体系结构设计的研究指出,星载控制计算机软件可分为三部分:系统引导程序、系统软件、应用软件。姿轨控软件的主要功能包括:设置系统工作模式、部件工作状态;接收星务总线传来的轨道参数和在轨编程信息;实时采集数据并进行处理;根据控制律计算控制指令;在轨检测和系统重构-18。
标准化与工程规范
卫星软件系统的开发受航天软件工程标准的严格约束。欧空局(ESA)的 ECSS-E-ST-40C Rev.1(2025 年 4 月发布)是欧洲空间软件工程的核心标准,覆盖了空间软件工程的所有方面,包括需求定义、设计、生产、验证和确认、移交、运行和维护-4-12。该标准明确指出其关注的是“产品软件”,即作为空间系统产品树一部分、在空间项目中开发的软件-4。
NASA 的 NPR 7150.2 和配套的 NASA-STD-8739.8B 定义了软件保证和软件安全的任务要求,包括软件同行评审/检查、软件测量、静态分析工具的使用(用于检测缺陷、软件安全、代码覆盖率和软件复杂度)等-5-13。
中国空间技术研究院基于 CCSDS SOIS 和 ECSS PUS 标准设计了软件参考架构,并在中国国家航天局领导下通过专门的工作组推动其获得 CCSDS 标准化地位-3。
常见问题 FAQ
卫星软件系统和地面软件有什么区别?
核心区别在运行环境的不可干预性。AIAA 的立方星飞行软件研究指出:卫星发射后,除非卫星与地面站建立联系,否则用户无法与其交互;即使建立联系,也只能在短暂、间歇的时间窗口内通信。大部分任务时间,飞行软件在无地面监督的情况下运行,必须能够自行从故障中恢复-7。地面软件在出问题时可以随时重启或人工干预,而星载软件在测控间隙出现故障时,没有人工介入的窗口,故障恢复必须由软件自主完成。
星载软件为什么需要操作系统?
因为任务复杂度和并行性要求。新技术试验卫星 C 星、D 星的姿轨控软件架构设计采用了基于操作系统的方案,“首次实现基于操作系统的星载应用软件并行开发”-2-10。操作系统提供了任务调度、内存管理、文件系统、网络通信等基本服务,使多个应用软件可以并行运行而不会相互干扰。微纳卫星软件管理调度架构的专利描述了操作系统层的作用:“负责管理和控制卫星的硬件资源,如处理器、内存、存储设备、传感器、执行器等。它提供了卫星系统的基本功能和服务,如任务调度、内存管理、文件系统、网络通信、安全保护等”-9。
什么是“在轨编程”?
在轨编程是指卫星发射后,通过地面上传新的软件代码或参数来修改星上软件行为的能力。新技术试验卫星 C 星、D 星通过“基于动态链接库的在轨编程设计”实现了这一能力-2-10。在轨编程的工程价值在于:软件在发射前无法穷尽所有在轨场景的验证,在轨编程提供了在发现软件缺陷或需要调整任务策略时进行修复和升级的手段,而无需重新发射卫星。ECSS-E-ST-40C 标准中也包含了“飞行中修改能力的要求”-20。
中国卫星软件系统有哪些标志性进展?
中国卫星软件系统的标志性进展包括:新技术试验卫星 C 星、D 星首次实现基于操作系统的星载应用软件并行开发,通过一个软件配置项实现双星功能-2-10;中国空间技术研究院基于 CCSDS SOIS 和 ECSS PUS 标准设计了软件参考架构,正在推动其获得 CCSDS 标准化地位-3;北斗三号采用综合电子架构,中心管理单元(CMU)的管理职能几乎涵盖卫星各个方面,使卫星在地面测控站故障时仍能自主运行至少 60 天。