1. 星务软件任务调度与资源分配概述

星务软件(On-Board Software,OBSW)是运行在卫星星载计算机上的核心软件系统,承担整星的任务管理、姿态与轨道控制、遥测遥控、能源管理、热控、载荷数据管理等职能。它介于底层硬件与上层飞行任务之间,是卫星"自主运行"能力的载体。星务软件的任务调度与资源分配,指的是在有限的计算、存储、总线带宽和能源条件下,决定"哪些任务在什么时刻、以什么优先级、占用哪些资源运行"的决策过程。这一过程直接决定了卫星能否在规定时间内完成关键动作,例如姿态机动、载荷成像、数据下传和故障处置。

星务软件在卫星系统中的位置

从系统层次看,星务软件位于星载计算机硬件(CPU、存储器、总线接口)之上,向下通过驱动层访问敏感器、执行机构、电源控制器和测控应答机,向上为飞行程序、载荷管理程序和地面遥控指令提供服务。它通常运行在实时操作系统(RTOS)之上,采用周期调度与事件驱动相结合的混合模型。典型的星务软件由以下几部分构成:

  • 任务管理:维护任务表,按周期或事件触发任务,管理任务状态与优先级。
  • 时间管理:维护星上时间基准,处理校时、延时指令和绝对时刻触发。
  • 模式管理:管理安全模式、对日定向、正常模式、载荷工作模式等整星状态切换。
  • 资源管理:管理CPU时间、内存、总线带宽、能源和热控资源。
  • 故障诊断与恢复:监测异常,执行降级、复位或切换备份机。

星务软件不是孤立运行的,它与星务计算机硬件、星上总线(如1553B、CAN、SpaceWire)以及地面测控系统共同构成闭环。地面注入的指令序列经遥控解码后进入任务队列,星务软件按调度策略执行,产生的遥测数据再经测控链路回传地面,形成"指令—执行—遥测"的完整回路。

任务调度与资源分配的基本概念

任务是星务软件中可被调度执行的最小逻辑单元,通常对应一个函数或一段处理流程,具有周期、执行时间、优先级、截止时间和资源需求等属性。例如"姿态控制周期任务"可能每100 ms执行一次,最坏执行时间8 ms,优先级高,需要访问陀螺和动量轮接口。

调度是决定任务执行顺序和时机的机制。常见策略包括:

  • 周期调度:按固定时间片轮转执行,适合确定性要求高的控制任务。
  • 优先级抢占调度:高优先级任务可打断低优先级任务,适合事件响应。
  • 时间触发调度:按预置时间表执行,适合载荷成像、数传等计划性任务。
  • 事件触发调度:由遥测越限、故障报警等事件驱动,适合应急处理。

资源分配则是在任务竞争有限资源时做出的分配决策。资源包括CPU时间、内存空间、总线带宽、能源功率和热耗散能力。例如,当载荷成像任务与数传任务同时请求总线时,需要根据优先级和带宽预算决定谁先占用;当太阳帆板输出功率不足时,需要决定关闭哪些非关键负载。

核心关系:调度决定"何时运行",资源分配决定"运行多少、占用什么"。二者耦合:调度策略影响资源占用峰值,资源约束反过来限制可调度任务集合。

典型约束与挑战

星务软件的任务调度与资源分配面临与地面系统显著不同的约束:

约束类型具体表现对调度的影响
计算资源受限星载CPU主频通常为几十至几百MHz,内存几十至几百MB任务不能无限增加,需严格控制执行时间和内存占用
能源受限太阳帆板输出随光照角变化,蓄电池容量有限高功耗任务需安排在光照期或电量充足时
通信窗口受限测控站可见时间每天仅数十分钟数传任务必须在窗口内完成,调度需与轨道预报配合
实时性要求姿态控制周期通常为10~100 ms控制任务必须满足截止时间,否则姿态失稳
空间环境单粒子翻转、辐照、温度交变需冗余设计、看门狗和故障恢复调度
不可维修性发射后无法人工干预硬件调度策略需具备自主降级和重构能力

这些约束带来的核心挑战是确定性与灵活性的平衡。确定性要求任务在可预测的时间内完成,便于验证和认证;灵活性要求系统能应对故障、任务变更和资源波动。工程上通常采用"静态时间表+动态优先级"的混合方案:关键控制任务按固定周期调度,保证确定性;非关键任务和应急任务按优先级动态插入,保留灵活性。

一个简化的调度与资源分配示例

假设某卫星星务软件在一个1 s的主周期内需要调度以下任务(示例参数,用于说明方法):

任务名          周期     最坏执行时间   优先级   资源需求
姿态控制        100 ms   8 ms          高       CPU、陀螺、动量轮
电源管理        500 ms   5 ms          中       CPU、电源控制器
热控监测        1 s      3 ms          中       CPU、温度传感器
载荷成像        按计划   200 ms        中       载荷、存储器、总线
数传下传        按窗口   300 ms        低       发射机、总线、能源
遥测采集        1 s      10 ms         低       CPU、存储器

在一个1 s周期内,姿态控制任务执行10次,共占用80 ms CPU时间;电源管理2次,10 ms;热控1次,3 ms;遥测1次,10 ms。若载荷成像和数传同时被触发,则CPU需求可能超过1 s,此时调度器需要根据优先级和截止时间决定:姿态控制不可延误,必须优先保证;载荷成像若错过成像窗口则任务失败,应优先于数传;数传可延后至下一个可见窗口。资源分配上,若电池剩余电量低于阈值,则数传发射机功率需降低或延后,优先保障姿态控制和热控。

这个例子说明,星务软件的任务调度不是简单的"先来先服务",而是需要在时间、能源、带宽和任务价值之间做多目标权衡。实际工程中,这些决策通常由调度表、优先级队列和资源预算模型共同完成,并通过地面仿真和星上遥测不断验证和修正。

星务软件任务调度与资源分配关系图 地面测控站 遥控指令 / 轨道预报 星务计算机(OBC) 实时操作系统 + 星务软件 任务管理 / 时间管理 / 模式管理 调度器 优先级队列 + 时间表 + 事件触发 资源管理器 CPU / 内存 / 总线 / 能源预算 任务队列 周期任务 / 计划任务 / 应急任务 姿态控制任务 周期100ms / 高优先级 载荷成像任务 按计划 / 中优先级 数传下传任务 按窗口 / 低优先级 星上硬件资源 CPU · 存储器 · 1553B/CAN总线 · 电源控制器 · 敏感器 · 执行机构 · 发射机 遥测回传 状态/异常 注入 取任务 申请 遥测下行(状态/异常/资源使用) 约束:CPU时间有限 · 能源受限 · 通信窗口短 · 实时性要求 · 空间环境不可维修