邢卓异 朱舜杰 黄晓峰 盛瑞卿
(北京空间飞行器总体设计部,北京 100094)
软件定义技术从20世纪90年代出现以来,已经在网络[1-2]、大数据存储[3-4]、汽车[5-6]等行业得到充分的应用,其核心思想是通过统一的界面实现软硬件解耦,从“面向专用功能,软硬件定制化设计”转向“标准化硬件预置,软件面向应用需求快速迭代升级”。软件定义技术及思想启发了航天领域,并在航天器上得到应用,从早期的天线频段、功率、覆盖度可调,到出现“软件定义航天器”的概念,软件定义技术有望从根本上改变航天器的生产模式与产业生态,引发航天产业新一轮的技术革新[7]。
国内外从“软件定义载荷”、“开放式应用加载”、“平台与载荷电气解耦”等方面开展了软件定义航天器研究。这些尝试多是在传统航天器系统架构的基础上,进行“局部”的更改和升级,无法全面满足未来航天器的发展需求。本文首先分析了未来航天器发展的总体趋势和软件定义航天器的发展现状,针对未来航天器灵活、快速和自主的发展需求,提出了一种软件定义航天器系统架构,并对该架构的技术特征、技术优势和可行性进行了分析,对其中的关键技术进行研究,希望未来能够在统一的软件定义航天器系统架构下形成标准的协议规范,促进软件定义航天器技术的发展。
自1957年10月4日苏联发射人类第1颗人造地球卫星斯普特尼克-1(Sputnik-1)以来,航天器逐步从冷战时期彰显国力的科技制高点,变为服务民众的基础设施。近年来,以太空探索技术(SpaceX)公司的“星链”计划为代表的商业航天项目大量涌现,航天活动持续蓬勃发展,每年火箭发射次数连续“破百”,每年发射的航天器数量激增,从2013年100多颗每年增加到目前1200多颗每年。未来,航天器的发射数量预期将持续快速增长。随着天地一体化信息网络的建立、人工智能等技术的广泛应用,航天产品和服务将全面融入人类社会的学习、生产和生活。届时,人们可以随时、随地、按需获得航天器各类便捷服务,诸如实景图像、全球全时卫星通信、灾害即时预警及太空旅游等。航天服务将极大提升人类生活的便利性和幸福感。纵观通信、导航、遥感、空间科学、载人和深空探测六大航天领域,未来航天器将具有更强的灵活性、快速性和自主性。
(1)灵活性。随着技术水平的不断进步,航天器设计寿命不断提升。例如,“国际通信卫星”设计寿命从1990年以后就基本达到15年左右并在不断提高,目前国际通信卫星-20的设计寿命已达到了25年。在如此长的寿命周期内,相关技术会持续进步且新技术也会不断涌现,但是航天器一般在发射前几年就已经将技术状态固化,无法适应用户需求的快速迭代。未来航天器必然需要更高的灵活性,能够通过在轨升级、在轨重构实现航天器功能在轨可定义,灵活适应不同的用户需求及工作场景。
(2)快速性。随着航天器的发射数量不断增加、用户各种新需求不断涌现,未来航天器需要更快速地实现设计、生产、测试等一系列研制活动,大幅度缩短研制周期、降低成本,实现批量化生产。
(3)自主性。随着航天器发射数量和寿命的增长,在轨运行的航天器数量将出现爆发式增长(例如“星链”计划包含4万多颗卫星),当前高度依赖地面的航天器运行方式将难以维系。因此,未来航天器必然具有更高的自主性,具备长期自主运行的能力,能够独立完成任务。随着人工智能技术的发展,航天器将具备智能化服务的能力。
软件定义技术可以使航天器的软硬件解耦,支持硬件通用化、在轨功能定义等,为满足航天器未来发展需求提供了技术途径。美国、欧洲、中国等均开展了“软件定义航天器”的尝试,大致可以分为“传统航天器+软件定义载荷”、“平台+中间件+载荷”及“智能航天器”3条不同的技术路线。
波音公司的波音卫星系统-702(BSS-702)系列[8-9]、欧洲通信卫星公司的“量子”(Quantum)卫星[10]、空客公司的“一星”(OneSat)[11]、泰雷兹-阿莱尼亚航天公司的“太空灵感”(Space Inspire)[12]等任务,采用型谱化航天器平台配置“软件定义载荷”的架构,以满足频率、波束、覆盖区域重构的任务需求,进而灵活实现通信、侦察、导航等功能。这一路线的优点是技术成熟,缺点是功能定义能力局限在载荷部分,航天器平台的功能定义能力受限,并且仍是传统的研制模式,敏捷设计能力有限。
美国国防高级研究计划局(DARPA)为实现多用途批量生产,提出了“黑杰克”(Black Jack)[13]架构验证项目。“黑杰克”项目相对传统航天器增加了中间件,负责整星业务管理,实现数据融合、指挥与控制,平台仅负责与载荷机构连接,平台、载荷与中间件独立研制,采用标准接口连接。“黑杰克”架构的优点是航天器平台与载荷解耦,通过中间件实现整星功能定义,可实现性较强;缺点是没有完全实现软硬件解耦,平台、载荷内部缺乏功能定义能力,一定程度上限制了软件定义技术优势的发挥。
中国科学院软件所的天智一号[14]、洛马公司的“智星”(SmartSat)[15]、矢量空间(Vector Space)公司的银河天空-1(Galactic Sky-1)等任务,以“计算机+外设”的思路设计航天器架构,其本质是在型谱化的航天器平台装上一个操作系统。操作系统实现了软件和硬件的解耦,为航天应用软件创造了一个与航天器平台无关的执行环境,用户可以根据航天器任务要求上传所需要的任何应用程序。这种类似于计算机的智能航天器架构的优点是智能、开放,用户可访问、可定义航天器功能,天然地适应软件定义和互联网模式,缺点也是过于计算机化,未涵盖对航天器自身特点及对机械和热接口的针对性设计。
可见,“传统航天器+软件定义载荷”、“平台+中间件+载荷”的模式,均是在现有航天器平台基础上的升级,对航天器平台缺乏软件定义能力,无法实现完全的“功能可定义”,航天器的灵活性、快速性受到限制。“智能航天器”的模式把航天器简单地看作与计算机类似的电子电气系统,忽视了航天器的固有特征。例如,设备需要温度控制,以适应空间环境,需要承受发射过程的振动条件等。“智能航天器”的架构固然简洁,但其底层硬件配置、功能服务框架没有针对航天器基本功能需求进行设计,设备的机械、热控、电源接口没有纳入到架构设计中。为此,本文从未来航天器灵活、自主和快速的发展需求出发,基于软件定义技术软硬件解耦的核心思想,设计了一种软件定义航天器系统架构。该架构考虑航天器是一种融机、电、热、信息于一体的复杂物理信息系统,通过标准化的机、电、热、信息接口,将通用化硬件设备相互连接,利用器载操作系统实现软件和硬件解耦,提供航天器姿态/轨道控制、温度控制等基础服务,并向用户开放应用。相比以往的软件定义航天器架构,该架构将软件定义扩展至整个航天器,并充分考虑了航天器的固有特征。
系统架构是对系统元素及元素之间关系的抽象描述。系统架构的重要性在于它决定了一个系统的主体结构、宏观特性,以及具有的基本功能和特性。正如大型建筑物设计成功的关键在于主体结构,复杂系统设计成功的关键在于系统宏观层次上结构设计的正确性和合理性。航天器的系统元素包括感知器、作动器、计算平台、电源装置等硬件设备和操作系统、硬件抽象、功能服务等软件组件;元素关系包括硬件设备之间的机、电、热、信息接口,硬件与软件之间的抽象接口及软件组件之间的应用接口等。
本文基于软硬件解耦的核心思想,对上述航天器系统元素及元素关系进行架构设计,提出了一种软件定义航天器系统架构,如图1所示。
图1 软件定义航天器系统架构Fig.1 Architecture for software-defined spacecraft
图1中,系统架构分为4层,自底向上分别为设备层、连接层、功能层和应用层。设备层对外界物理环境进行感知和作动,将航天器的各类信息通过连接层形成数据流、控制流、能源流与上层交互,在功能层实现对航天器的功能抽象。用户可以根据航天器任务需求,通过功能层中的功能组合,定制不同的应用层服务。
设备层包含航天器系统中的各种物理实体,如感知部件、作动部件、计算部件、电源部件及结构支撑部件等,是航天器与外界环境交互的终端,可以通过传感器感知外界信息,并接收系统的指令驱动作动器与外界环境相互作用,同时为系统提供电源、计算、结构等硬件资源。
软件定义航天器系统架构中设备层为标准化、产品化设备,需要满足规范的机、电、热、信息接口要求,从而实现硬件可替换。设备层可以分为平台设备,器载超算平台和载荷设备。它们都采用模块化设计,并通过可重构接口单元接入系统,实现设备即插即用[16-17]。可重构接口单元具有相同的硬件,但是根据不同的设备可以配置不同的固件或定制的软件,从而可以最大限度地兼容各类设备,并向上层系统提供统一的接口,实现硬件可重构。器载超算平台集成了各种计算/存储资源,如中央处理器(CPU),图像处理单元(GPU),数字信号处理器(DSP),可编程门阵列(FPGA),非易失大容量存储(FLASH)阵列等,具备强大的器上实时信息处理和海量数据存储能力,是整个航天器的信息中枢。器载超算平台上运行着支持动态加载的器载操作环境。
连接层实现了航天器系统中各种物理实体的有效连接。航天器各类物理设备确定后,通过连接层实现节点的各类物理连接,以满足物理实体的安装需求、供电需求、热控需求及信息交互需求等。
软件定义航天器系统架构中连接层由标准统一的热总线、数据总线和电源母线组成,所有的设备都通过可重构接口单元接入系统。可重构接口单元向上级系统提供标准的热接口、数据接口、电接口,对下级模块化设备支持各种常见的接口,如RS422,LVDS,1553B等。系统需要升级或更换某个功能模块时,只需要对接口单元的固件进行相应的升级和配置就可以适应新模块。连接层与设备层构成了航天器的硬件部分,是实现软件定义航天器的硬件核心,总体上采用以器载超算平台为中心的集中式拓扑结构。
功能层是对航天器系统中各类物理实体动作的抽象,向下通过连接层转换为数据流、控制流和能源流,驱动物理设备实现航天器的各项功能,向上为应用层提供应用接口,便于用户进行配置、组合、调用,以实现对应的服务。
功能层是将航天器基本功能向硬件动作转换的桥梁,通过驱动协议控制物理设备,也为航天器应用软件提供相应接口。软件定义航天器系统架构中功能层由操作系统和服务框架两个部分组成。功能层的最底层是实时操作系统,如SPACEOS,RT-Linux,VxWorks,RTEMS等,负责基础的进程调度、底层硬件驱动等。操作系统还包括一个硬件抽象子层,它将硬件抽象化,隐藏硬件设备的接口细节,为操作系统提供虚拟硬件资源,从而实现软硬件分离。航天器软硬件之间的耦合关系解除后,器载软件及算法便可以独立研制和快速迭代。操作系统之上建立器载服务框架。该服务框架将器载应用常用的基础业务封装起来,为开发者提供统一的服务接口。开发者只需要在此框架内完成自身的主要业务内容即可,而不用为航天器如何通信、如何控制姿态这样基础且专业的问题而“重新发明轮子”。
应用层是面向用户的,主要负责完成用户定制的各类服务/任务,用户不需要考虑底层物理设备的工作机制或原理,只需要通过应用接口方便快捷地与航天器进行交互。
软件定义航天器架构中器载应用包括系统应用和用户应用,系统应用一般具有更高的权限,可以控制航天器的最底层。用户应用的权限是有限的,被置于系统的监管之下,由应用层中的器载应用综合调度管理程序进行控制。用户可以在轨发布应用(APP)、动态加载各种软件组件,把各种强大的新算法不断地集成到航天器系统中,不但可以通过在轨重构为航天器系统增加新的功能,还可以通过改进算法提升航天器的性能,或者对出现的故障进行修复。
本文提出的架构充分体现了软件定义技术的核心思想,即通过统一的交界面,将软件与硬件解耦合。在硬件性能足够的前提下,软件开发者负责满足不同用户的差异化需求,硬件开发者在统一的规范架构下专注于提高硬件性能。这种软件定义的方式可以最大化地降低开发周期与成本,赋予系统功能更新与升级的灵活度。该架构的技术特征可以归纳为设计分层化、接口规范化、硬件通用化、功能软件化、资源虚拟化。
(1)设计分层化。采用分层化设计,实现软硬件解耦。通过统一界面将软硬件剥离,打破传统的软硬件耦合结构。软件由用户自定义,硬件全面标准化。
(2)接口规范化。构建规范架构,统一软硬件的界面。操作系统向上开放标准化接口,并通过硬件抽象层,向下兼容各类硬件平台。
(3)硬件通用化。采用标准化机、电、热、信息接口,保证硬件通用性。硬件的通用化为实现系统功能与硬件“脱钩”奠定基础,使硬件设计关注底层的通用功能,而与系统的具体任务解绑定。
(4)功能软件化。系统功能主要由应用软件来实现。系统提供基础的功能服务框架,应用软件在此框架内利用不同的基础功能服务进行配置或重构,从而迅速适应各种不同应用场景的功能需求。
(5)资源虚拟化。在软件和硬件之间提供一个抽象层,实现将物理资源转换为逻辑或虚拟的资源。运行在抽象层之上的应用或管理软件,能在不掌握底层资源物理细节的条件下管理和使用这些资源。
3.2.1 系统架构对比
传统航天器系统架构的各层之间没有形成标准化接口,设备层采用定制化设备,连接层需要根据设备层定制,功能层与硬件紧密耦合,无法实现在轨功能重构。一旦某个设备或者需求发生变化,将会传导至整个系统,研制周期和成本居高不下。应用层一般需要根据工作程序,通过地面指令完成用户任务,灵活性、自主性不足,系统不具备开放性。
软件定义航天器系统架构设备层采用符合接口标准的设备,支持即插即用。连接层采用标准机、电、热、信息接口,将标准化设备接入航天器。连接层可访问所有硬件资源,实现内部资源全开放。功能层由操作系统统一管理,并通过服务框架为应用层的程序提供基本功能的管理与调用接口。接口完全封装,与硬件、应用程序解耦。应用层向第三方开放,运行航天器系统自带的基础应用程序和丰富的商业应用,应用程序及系统软件均可以在轨加载和更新。
3.2.2 研制模式对比
传统航天器系统架构下,航天器的研制试验主要采用针对具体任务和用户需求的“量身定制”模式。过去的航天器设计、研制和验证过程全部围绕特定任务展开,航天器的设计与具体任务紧密联系,软硬件设计相互耦合。硬件产品形式各异,无法实现部组件互换。软件产品互不兼容,软件重用性差。研制周期长、成本高,在轨使用不灵活,功能重构能力差。
如图2所示,在软件定义航天器系统架构下,航天器的研制试验向标准化、产品化发展。航天器不再针对特定任务进行设计和验证,而是主要考虑用户的通用需求,通过预置硬件资源和基础服务功能,形成成熟可靠的通用型谱。针对用户的特殊需求,通过应用软件的方式进行快速响应和持续迭代升级。软件定义航天器系统架构采用开放的应用软件接口规范,应用软件设计人员只需要按照接口规范编制满足用户特定需求的应用即可,而不需要考虑航天器的具体设计。应用软件可以在虚拟化数字平台中完成测试和验证,再上注至在轨航天器即可实现用户需求。因此,软件定义航天器的研制试验与具体应用场景相剥离,航天器甚至可以在具体应用确定前预先开展设计、试验、生产、发射和部署,航天器的研制周期将有效缩短。
本文提出的软件定义航天器系统架构,能够适应不同用户的需求,可以很好解决现有研制模式存在的不足,满足未来航天器灵活、快速和自主的发展需求,具体如下。
软件定义航天器系统架构支持功能可重构、资源全开放、信息深加工,可以满足未来航天器灵活性的发展需求。功能可重构是指通过动态加载应用软件和系统组件,重新定义航天器的在轨功能。资源全开放是指在确保航天器安全前提下内部资源完全开放可访问,通过软件重构发挥航天器硬件的全部潜力。信息深加工是指实现在轨数据灵活处理,促使航天器从数据提供者向信息提供者转变。
软件定义航天器系统架构支持敏捷化设计、批量化生产、数字化测试,可以满足未来航天器快速性的发展需求。敏捷化设计是指在硬件通用化、架构标准化的支持下,设计场景走向“硬件和基础功能预置+应用软件设计”的模式,地面仅完成硬件和基础软件的设计验证,更多的应用功能通过在轨软件定义实现,极大简化设计流程。批量化生产是指将航天器硬件的生产、验证与具体任务“脱钩”,实现航天器平台化、模块化,极大压缩制造、总装时间。数字化测试是指大部分功能性能测试将在数字化的模拟平台实现,“设计-制造-测试-改进”流程中设计与测试可以并行开展,缩短整体研制流程。
软件定义航天器系统架构支持自主运行、智能服务,可以满足未来航天器自主性的发展需求。自主运行是指航天器能够自主完成健康监测与修复、器上数据管理及在轨资源调度,降低对地面的依赖。智能服务是指从简单的信息获取向服务提供转变,具备较高的智能水平,可识别、提取用户需求,并针对性实施任务。
实现软件定义航天器系统架构的关键技术包括开放架构与规范、器载操作系统、器载超算平台和安全机制共4个方面,如图3所示。
图3 关键技术示意Fig.3 Diagram of key technologies
为了最大程度实现一器多用,利用软件定义技术实现航天器功能重构,需要建立开放的架构与接口规范,保证软硬件接口开放,降低航天器的建造和使用成本,从而充分调动市场力量挖掘新技术、新需求与新应用。具体包括:①制定用户应用软件规范,定义航天器应用软件的标准接口,实现航天器基本功能框架。应用软件规范要求易懂且方便推广,航天器基本功能框架要求完备且简洁。②制定通用硬件接口规范,定义航天器设备的机、电、热、信息标准接口,确保符合规范的设备可接入航天器。③统一软硬件解耦架构,保证标准硬件与软件可以顺利地接入航天器,所有硬件资源可被用户访问。
操作系统是连接航天器硬件与软件的界面,是调度航天器资源的平台。软件定义航天器需要操作系统统一调度资源,完成航天器基本管理,并在此基础上支持用户应用。具体包括:①支持航天器应用与软件的在轨重构。②支持设备虚拟化,保证设备能够即插即用,通用设备可互换。③支持软件加载重定向,可根据需求加载新的系统软件,实现操作系统在轨升级。
器载超算平台为器上自主任务管理、海量数据处理、信息智能提取等复杂任务提供强大的计算资源保障。具体包括:①空间高性能计算机架构设计。②多种异构计算平台的容错高可靠性设计。③环境适应性设计,保证超算平台能够适应以热环境、单粒子等空间辐射环境为代表的空间环境,保持连续、可靠运行。
航天器开放必然带来安全性方面的风险,需要系统开展安全性研究,建立贯穿航天器设计、制造与运行始终的安全机制。具体包括:①器载操作系统安全技术,维护操作系统长期可靠运行,维持系统功能稳定,能够对威胁航天器安全的操作进行检测与隔离。②软件缺陷检测技术,在航天器软件上注之前进行缺陷检测,确保航天器安全。③入侵检测及隔离技术,对入侵等恶意攻击行为进行检测与隔离。④地面站安全防护技术,保证地面站在引入商业应用后依然能够保持足够的安全性。
软件定义技术将显著改变未来航天器的设计、生产与应用模式。发展软件定义航天器的首要任务是提出合适的系统架构。本文提出的软件定义航天器架构能够有效地实现软硬件分离。硬件方面采用即插即用的标准化设备,形成通用化的航天器平台,显著降低航天器成本与研制周期。在软件方面,建立了基础功能框架,支持开放式应用软件加载,将应用软件开发从系统设计中剥离,降低航天器应用成本与技术门槛,扩大航天器应用范围与用户群体。该架构具有设计分层化、接口规范化、硬件通用化、功能软件化、资源虚拟化的技术特征,能够很好地满足未来航天器的发展需求。下一步,将在该系统架构的基础上,形成软硬件接口协议规范,推动软件定义航天器技术的发展。