+ 赵军锁 吴凤鸽 刘光明 李丹 潘晏涛(中国科学院软件研究所)
软件定义的说法始于软件定义无线电。美国国防部1990s提出了模块化开放体系架构(MOSA)的概念。MOSA的核心思想是:首先通过软硬件解耦将系统分解为一系列标准化的软硬件模块,然后再通过对这些软硬件模块进行不断的升级和重组,逐步提升整个系统的效能。采用MOSA架构的设备,不但便于引入新技术、便于升级改造,而且由于可选择的供应商多,也便于控制和降低成本。美军基于MOSA和软件定义的思想,对其电台和雷达进行了升级和改造,都取得了良好的效果。软件定义无线电、软件定义雷达的成功,显示了MOSA和软件定义的巨大威力[1,2]。
随着计算机、通信和人工智能技术的发展,软件和算法在各行各业中发挥的作用越来越大,在互联网生态环境下,软件定义正在成为一种新的发展趋势。从软件定义无线电、软件定义雷达,到软件定义网络、软件定义存储、软件定义数据中心,再到软件定义一切[3]、软件定义世界,人的智力通过软件和算法快速向外延伸,极大地提高了各行各业的智能化程度和整个社会的智能化水平,人类的生活再也离不开软件代码了,在数以百亿计的各种处理器上日夜运行的代码成为驱动这个世界正常运转和向前发展的最为重要、最为强大的力量之一。
与开放的互联网生态环境相比,航天产业显得相对封闭,其研发基本上还是以硬件为主,软件为辅。比较常见的做法是为某个具体的功能或任务定制一颗卫星,研发周期长、研发成本高。不同型号的卫星在硬件上互不适配,部组件无法互换;在软件上互不兼容,为某个型号研制的软件无法在另一个型号的卫星上直接运行。广大的第三方也无法为某个卫星型号开发并在其上部署软件。
这种以硬件为主、软件为辅的研发思路已经成为制约航天技术发展的重要瓶颈之一。发展以天基先进计算平台和星载通用操作环境为核心,采用开放系统架构,支持有效载荷即插即用、应用软件按需加载、系统功能按需重构的新一代卫星系统势在必行。
发展软件定义卫星关键在于解除卫星产品软硬件之间的耦合关系,使得卫星软件可以独立演化、按需加载、动态重构,从而可以在不改变硬件的情况下实现更多的功能,完成更多的任务。本文将围绕如何解除卫星产品软硬件之间的紧耦合关系,以实现卫星软件的独立演化,提高卫星智能化水平为主线,讨论发展软件定义卫星技术的总体思路和一些工程实践活动。
天智工程的目标是发展天基智能,该计划将通过一系列新技术试验卫星的研制,推动软件定义卫星技术的发展,对软件定义卫星所涉及的一些关键技术进行在轨演示验证,加快传统卫星向智能卫星演化速度。
天智工程所使用的卫星模型称之为CACAS (Computing platform, Apps, Communicators, Actuators, Sensors),即任何卫星都包含若干传感器(Sensors)、执行器(Actuators)和通信单元(Communicators),并以计算平台(Computing platform)为核心,支持多种多样的应用程序(Apps)。CACAS模型是典型的开放系统架构,以通用计算平台为核心,通过接入不同的有效载荷,加载不同的Apps,即可快速重构出具有不同功能的卫星系统。这是一个通用模型,不仅使用于各种类型的卫星,也适用于很多形式的端系统节点(例如无人机、无人车等),如图1所示。
在CACAS模型中,通用计算平台是核心。天智工程希望借助通用计算平台解除卫星软硬件之间的紧耦合关系,使其可以各自独立演化。在API之上,一切皆可编程;在API之下,以模块化、标准化为基础,遵循“如无必要,勿增实体”的原则,简化硬件实现。
通过不断提升天基先进计算平台的计算性能,不断丰富、改进星载软件和算法,对卫星平台和有效载荷进行瘦身(将其功能尽可能地迁移到计算平台之上,改用软件实现)。通过软件和算法的快速迭代和演化,实现卫星产品的持续演进。在天基先进计算平台和星载通用操作环境之上,安装不同的软件,即可实现不同的功能,完成新的空间任务。通过软件升级,还可以对既有功能进行完善,或者提高其性能、修复其故障。
此外,天基先进计算平台还具有丰富的接口形式,可以支持各类有效载荷的即插即用,包括多模通信单元、各种传感器和执行机构。
在技术实现上,CACAS中的天基先进计算平台采用了以POE TTE交换机为核心的技术路线,如图2所示。
其中计算节点的一般实现形式为CPU+FPGA(或其他专用计算引擎)。如图3所示。
图1 软件定义卫星的概念模型CACAS
图2 CACAS模型中的计算平台
计算节点之间通过POE TTE交换机相连,并可以通过标准板级接口连接至接口扩展卡,最终连接至传感器、执行机构、天线或通信单元。根据计算节点的CPU和FPGA的选型、DDR和Flash的容量和性能,可以把计算节点细分为通用计算节点、算法加速节点、高速存储节点和大容量存储节点。
可以看出,天基先进计算平台在体系架构上和互联网中最为常见的计算环境是兼容的,这样做的目的也是为了能够更多地使用现有的高质量的开源代码资源,降低广大程序员开发星载软件的学习门槛。和互联网主流计算环境不同的是,天智先进计算平台中采用了冗余架构,并大量使用的FPGA作为算法加速部件。这样做有三个考虑,一是为了容错,提供可靠性,二是为了提高星载计算效能,三是为了方便接口扩展,能够支持更多的现有载荷。
星载通过操作环境是面向卫星的一个平台化的软件解决方案,我们称之为Sputnix。Sputnix是基于Linux和大量的第三方函数库构建出来的,在保持简单性、灵活性、可扩展性的同时,拥有强大的可重构能力、计算能力和容错能力。其系统架构如图4所示。
星载通用操作环境由“有效载荷接入和算法加速环境”、“基于软件容错技术的高性能分布式计算环境”、“与地面主流计算环境兼容的应用程序执行环境”、“实时数据处理引擎”、“智能信息处理引擎”、“离线数据处理引擎”组成。
图3 计算节点的通用形式
图4 标准化的星载通用操作环境
其中“有效载荷接入和计算加速环境”以FPGA为主,用于提供有效载荷接入所需要的各种接口,并承担计算密集型载荷数据预处理算法的计算加速、实时性要求高的控制密集型算法的实时性保障和带宽要求高的IO密集型的数据收发;
“与地面主流计算环境兼容的应用程序执行环境”用于支撑星载APP的动态加载、执行和调度;
“基于软件容错技术的高性能分布式计算环境”是整个星载操作环境的核心,其作用相当于操作系统,用于管理CPU计算阵列、Flash存储阵列、FPGA计算阵列、DSP计算阵列、GPU计算阵列等硬件资源池。除了资源调度之外,其主要功能是检测硬件故障、隔离硬件故障、修复硬件故障,对上提供连续有效的可靠计算服务、存储服务和信息交换服务。
“实时数据处理引擎”用于支持在轨实时数据处理任务。
“智能信息处理引擎”用于支持在轨智能信息数据任务。
“离线数据处理引擎”用于支持无实时性要求的一般性后台数据处理任务。
天智工程的主要任务是研制一系列的新技术试验卫星,以推动软件定义卫星技术的发展,其主要目标如下:
(1)建立开放的卫星系统架构。与传统卫星大多属于封闭系统不同,软件定义卫星应该采用开放的系统架构。首先,这将有利于提升卫星系统对有效载荷的适配能力、对软件/算法的兼容能力,做到符合标准的硬件部件和软件组件可以即插即用、互相替换。其次,这将有助于催生更多的第三方厂商,形成更多的货架级产品,从而有效降低整星的研发成本,缩短其研发周期。
(2)借助平台化的软件解决方案解除卫星系统软硬件之间的紧耦合关系,让卫星软件可以脱离硬件而独立演化,而不再和某个具体的卫星型号、特定的硬件单机绑定。就像Unix/Linux/Windows/MacOS这些平台化软件解决方案对互联网产业、Android/ios对移动互联网产业产生了巨大的推动作用一样,面向卫星的平台化软件解决方案可能引发航天产业生态的变革。
(3)发展第三方应用程序,不断提升卫星在轨智能信息处理能力,加速传统卫星向智能卫星的演变。通过不断升级软件和算法逐渐提升卫星自身的环境自感知能力、自主运行能力和在轨智能信息处理能力以及决策能力,可有效降低卫星的运维成本,让卫星能够完成更为复杂的空间任务,发挥更大的效能,在国防、经济发展中发挥更大的作用,为商业航天建立更好的生态环境。
图5 天智星云开放式试验环境
图6 各自为政的航天测控网方案
图7 统一协议标准的航天测控网方案
图8 天智星云测运控平台
为了达到上述三个目标,只着眼于天智系列新技术试验卫星明显是不够的。还有两件事情亟待推进,一是拉近卫星与开发者的距离,让普通程序员就可以开发和发布星载APP;二是拉近卫星与大众的距离,让普通大众可以方便地访问和使用卫星。为此,天智工程组搭建了天智星云开放式试验环境,其功能和组成如图5所示。
其中,天智星云测运控平台的目的是最大程度地发挥现有天地基测控资源的效能,为在轨运行的天智系列新技术试验卫星(用于软件定义卫星技术的开发、测试和在轨试验验证)提供灵活高效的测运控服务。天智星云大数据平台的目的是对来自天智系列新技术试验卫星的数据进行接收、转换、存储、汇总、分析、解释、利用、交换与分发,为不同行业的用户提供及时准确的信息服务,以发挥其最大效能,二者均可基于云计算平台或超算平台构建。
天智星云访问者门户,承担着打通天智系列新技术试验卫星和互联网用户之间的信息链路的作用,方便用户通过互联网访问卫星。
天智星云开发者平台用于为天智系列新技术试验卫星、天智星云测运控平台、天智星云大数据平台开发软件。
天智系列新技术试验卫星、天智星云测运控平台和天智星云大数据平台均采用开放系统架构,支持第三方应用程序的部署。为了保证天智系列新技术试验卫星、天智星云测运控平台、天智星云大数据平台三者之间最大程度地兼容和互操作性,必须制定统一的API/ABI规范和数据规范。为了保证不同厂家的星载产品能够互换,必须制定开放的天基先进计算架构规范;为了保证天智系列新技术试验卫星、天地基测运控资源、天智星云测运控平台之间能够互联互通,行业用户能够方便地访问天智系列新技术试验卫星,必须建立相关的通信、服务和安全规范。上述问题是软件定义卫星标准化工作的核心问题,对于推动智能卫星的发展至关重要。标准规范的建立是软件定义卫星技术联盟的主要工作之一。
现有的卫星和测控站一般都自成体系。测控站和卫星之间、广大用户和测控站之间只能采用私有协议进行通信和交互,极大地阻碍了对测控资源的综合利用,也阻碍了卫星效能的发挥。如图6所示。
在这种模式下,一般卫星公司只能选择和个别测运控公司合作,一般卫星用户也只能选择从个别测运控公司接收载荷数据,造成了测控资源巨大浪费。这是一个壁垒重重,需要不断重复发明轮子的生态环境。很明显,这样的生态环境十分不利于航天测控网的健康发展,同时也阻碍了军民深度融合。
为了建立良好的生态环境,航天测控采用统一的协议标准十分重要。标准分为两个部分,首先是星地接口部分,其次是地面系统部分。建立了星地接口标准之后,原则上卫星公司可以选择任意地面站对其卫星进行测控。建立了地面系统标准之后,原则上卫星用户便可以通过标准接口经由互联网VPN访问符合标准的地面站,访问不同的卫星。如图7所示。
但这里边有一个问题,虽然在卫星、测控站和卫星用户之间建立了统一的技术接口,但各家仍然需要面临不同的商务接口。为了利用更多的资源,无论是卫星厂商、测控服务提供商、还是卫星用户,都需要和多家公司进行商务谈判,签订多份合约。在这种生态环境下,并不能对隶属多家公司的测控资源进行综合利用,也不利于卫星用户方便地获取卫星服务。
由此可见,无论是传统的测运控环境,还是正在逐步走向标准化的下一代测运控系统,都无法充分对在轨卫星资源和测控资源进行高效利用,为不同行业的用户提供更为方便和全面的服务。其开放性和共享性都有待增强。
因此,建立一个开放、共享的测运控试验环境,发展智能测运控技术是十分必要的。天智星云测运控平台就是针对上述问题而建立的。
天智星云测运控平台是一个可以集成第三方天地基测控资源的云平台。建立该平台的目的有三个,第一,对天智系列新技术试验卫星进行测运控;第二,通过互联网对外提供服务,让普通人能够方便地通过智能手机、或者浏览器访问天智系列新技术试验卫星;第三,进行测运控新体制、新技术试验,发展一种能够调配数千个测控站、数传站为在轨运行的成千上万个卫星提供智能测运控服务的能力。
天智星云测运控平台采用的是可以共享的开放系统架构,不但可以方便地动态集成第三方测控资源,包括天基、地基和海基,还可以集成广大第三方开发的测运控软件,例如:数据解析与可视化、任务规划、智能信息处理、协议转换、星地时统、加解密、解压缩、卫星遥测大数据分析、故障诊断和预测等。如图8所示。
天智星云测运控平台欢迎第三方闲置的测控资源能够接入进来,也欢迎任何组织和个人为平台开发软件。除了为天智系列新技术试验卫星进行测运控之外,该平台还可以为其他商业卫星提供测运控服务。
天智星云开放式大数据试验平台是一个典型的云计算环境,其概念视图如图9所示:
首先,该平台可以接入各种类型的卫星数据,经过格式转换之后,存入存储服务器和数据库。其次,可以支撑广大第三方的智能信息处理程序,将卫星数据转化为信息,为各行各业的用户提供服务。
天智星云开发者平台是以天智系列新技术试验卫星为基础,用于推动软件定义卫星技术发展、推动传统卫星向智能卫星转变的星载软件云端协同开发环境。在天智星云应用开发者平台上,开发人员可以基于云端开发环境和虚拟卫星在线完成星载App软件的全部开发工作和大部分测试工作,然后通过天智星云测运控平台在桌面卫星上完成少量与硬件紧密相关的测试工作,最后将其App发布到在太空中飞行的天智系列新技术试验卫星上,开展在轨飞行试验。天智星云应用开发者平台大大降低了程序员开发星载App的难度并且提高了开发效率。如图10所示。
天智星云应用开发者平台的主要功能是为每一个开发者提供一个专属的云端开发环境和一颗与之配套使用的虚拟卫星。开发者通过浏览器界面可以更改虚拟卫星的默认配置、查看虚拟卫星的飞行状态,在其上加载、运行、测试自己开发的App。开发者通过浏览器可以登录到云端开发环境,在线完成App软件的全部开发和大部分调试测试工作。借助云端开发环境,可以免去开发人员亲自动手搭建和维护本地开发环境的繁杂工作,让开发人员专注于开发本身,并且可以利用云端的代码资源和数据资源,从而大幅度提高开发效率。
图10 天智星云开发者平台
图9 天智星云航天大数据平平台
在开发过程中,除了可以利用虚拟卫星开展App的调试、测试之外,还可以通过天智星云测运控系统将App发布到桌面卫星上,在“真实”的运行环境下进行模飞测试,甚至将App发布到在轨飞行的天智一号卫星上开展在轨飞行试验。虚拟卫星和天智一号卫星具有完全兼容的应用程序执行环境,桌面卫星是天智一号卫星的模样星,在电性能上和在太空中飞行的天智一号卫星没有任何差别。利用虚拟卫星和桌面卫星,开发者可以在正式发布App之前进行充分的测试。
天智星云测运控系统和天智一号桌面卫星直接相连,并通过测控站、数传站和在太空中飞行的天智一号卫星相连。开发者无论是在虚拟卫星、桌面卫星还是在天智一号卫星上均可运行自己开发的App软件,并且通过浏览器或者“追星App”查看任务执行结果。
发展软件定义卫星技术的路线图如下:
(1)以卫星开放系列架构为基础,规范软件定义卫星技术的发展。建立起软件定义卫星开放系统架构相关的标准规范体系。涵盖天基超算平台、星载操作环境、星载APP开发规范、有效载荷接入规范、有效载荷数据规范等多个方面。
(2)以天智星云开发者平台为依托发展航天软件。在完善卫星平台化软件解决方案Sputnix的同时,通过举办航天应用创新设计大赛,鼓励高校和科研院所的科研人员、研究生、大学生积极投入到航天软件的开发中来,形成数量众多、功能丰富的航天应用软件库,以支持空间应用的灵活实现。
(3)以天智系列新技术试验卫星为抓手推动软件定义卫星技术的发展。研制天智系列新技术试验卫星,对软件定义卫星关键技术进行在轨验证,包有效载荷动态重组、应用软件动态重配、卫星功能按需重构等,全面评估软件定义卫星对通信、导航、遥感、气象、科学探测等空间任务的支持能力,推动传统卫星向智能卫星演变。
其中(1)、(3)工作主要在软件定义卫星技术联盟框架下进行;(2)则完全开放,任何组织和个人均可注册和登录到天智星云开发者平台,参与航天软件的开发。
软件定义卫星的未来是智能卫星。而智能卫星的发展取决于三个方面:一是星载计算能力,二是有效载荷性能,三是软件和算法。
随着软件容错技术的提高、硬件加固工艺的改进,越来越多的工业级高性能器件将被用于卫星平台,这势必大幅度提高星载计算能力,为发挥有效载荷的效能,支撑更多的在轨信息处理任务创造必要的条件。
目前,很多有效载荷通过硬件设计进一步提升其性能均遇到了较大的瓶颈,在接下来的一段时间之内,软件和算法将在提升有效载荷的功能和性能方面发挥较大的作用,例如通过计算摄影技术提升成像质量。按照接口标准化、硬件最小化、软件最大化的指导思想,尽可能以软件形式实现载荷的功能,并将这部分软件从载荷内部迁移到通用计算平台之上,借助于计算能力的提升、算法的改进,即可不断扩充有效载荷的功能、提升其性能。通过提高相关算法的通用性、提高相关软件(含可以配置到FPGA中的IP核资源)的复用度,可以不断缩短有效载荷的研制周期、降低有效载荷的研制成本。通过公开底层硬件细节,鼓励第三方参与有效载荷软件的研发,将逐步推动有效载荷向开放式、模块化、可重配、自适应的方向发展。
智能卫星的特点就是有丰富的应用软件,尤其是智能软件。随着开放卫星系统架构的建立和平台化软件解决方案的完善,势必出现大量的第三方应用程序,在卫星资源的调度和管理、有效载荷接入、载荷数据的预处理和智能信息处理、卫星状态信息分析和故障预判、自主任务规划、星地通信、星间通信等方面发挥重要作用。随着软件和算法的发展,未来的卫星在智能感知、智能控制、智能组网、智能服务方面将日益增强,原来需要在地面完成的数据处理工作将逐步迁移到星上执行,信息处理的时效性将大大提高;原来需要人在回路的管理和控制工作将由卫星自主完成,地面测运控的压力将大幅降低。
最后,智能卫星星群的发展有助于我们从太空对地球进行更精细、更全面的实时观测,为全球任何角落的用户提供更好的通信、定位和导航服务,将极大地增强全球范围内的经济繁荣、安全与和平。
[1]Nelson John A. Net centric radar technology and development using an open system architecture approach[J]. IEEE National Radar Conference Proceedings,2010, 1476-1479.
[2]DoD. Department of Defense Instruction:5000.02.2008.
[3]梅宏. 软件定义一切——机遇和挑战. CNCC2017