何烨贞,李 健,彭 宏
(中国电子科技集团公司第三十二研究所,上海 嘉定 201822)
随着卫星技术不断发展,星载综合射频系统的功能需求变得越来越复杂和多样化。传统的星载综合射频系统平台通常基于硬件设备,其配置和功能相对固定;因此当计算需求增长或发生变化时,需要手动添加、升级或更换硬件设备,这可能导致配置变得烦琐和耗时,并限制了平台的可扩展性。此外,传统平台通常需要手动配置和管理,包括网络设置、设备调整和故障排除等。这需要大量的人工干预和操作,容易出现人为错误,并且会增加管理的复杂性和成本。传统平台中的硬件设备通常只能为特定的应用程序或服务提供资源,而不能灵活共享和利用资源。这导致资源利用率较低,可能造成资源浪费和性能瓶颈。传统平台通常缺乏自动化和编程接口,无法实现快速配置、自动化管理和编程化的操作。这使得平台的管理和维护过程更加烦琐和耗时,并且限制了平台的灵活性和可扩展性。传统平台通常缺乏全局视图和整体管理的能力。管理人员可能需要在不同的设备和系统之间切换,无法全面了解整个系统,这增加了管理的复杂性和困难。
本文设计了一种星载综合射频系统软件定义平台,将波形软件与底层硬件平台分离,促进波形软件的可移植性和重复使用,避免重新开发波形的成本。鉴于星载系统的特殊环境和资源限制,该设计方案致力于应对资源紧张环境所带来的轻量通信、动态重构及潜在的单粒子翻转问题。
为了实现星载综合射频系统中的软硬件解耦[1],本文采用了软件组件化和硬件构件化的方法[2],由管理系统动态映射软硬件之间的关系[3],实现系统的灵活重构。本文提出的软件定义星载综合射频系统的软件架构如图1 所示。
图1 系统基础软件支撑平台技术架构
软件定义卫星通信载荷系统包括嵌入式操作系统、数字信号处理器(Digital Signal Processor,DSP)操作系统、星载综合射频系统构件化集成部署运行环境、星载应用和波形应用。嵌入式操作系统和DSP 操作系统分别运行在主控模块和信号处理模块上。波形应用包括组件、节点、平台和应用。通过波形组件化和组件复用,开发人员开发波形的效率得到了提高。
星载应用包括CPU 构件、DSP 构件和现场可编程门阵列(Field Programmable Gate Arrays,FPGA)构件。在波形运行时,波形组件会动态映射到构件上。当某个构件发生故障时,系统可以通过故障检测和动态重构的方式,用其他可用的构件替代受损的构件,从而提高系统的稳定性。
集成部署运行管理框架是构件化运行环境的核心功能部件[4],是对底层软件和硬件的高层次抽象,提供域管理服务、设备管理服务、应用管理服务、日志服务等功能。系统资源状态监控服务实时显示系统中的所有节点信息。实时监测系统的CPU、内存、磁盘等资源使用情况,提供性能指标和警报,有助于优化系统性能。轻量级分布式通信中间件屏蔽底层通信机制,提供统一消息格式和硬件访问接口。
本节主要对上述系统架构中关键复杂技术进行基本阐述。基于软件组件化、硬件构件化、软硬件动态映射的基本思想[5],并考虑到星载系统的特殊环境和资源限制,有3 个关键问题需要解决:(1)软件组件和硬件构件之间的动态重构问题;(2)构件之间的通信问题;(3)潜在的单粒子翻转问题。第1 个通过应用部署蓝图实现,第2 个通过轻量级分布式通信中间件和地址映射表实现,最后一个通过三模冗余进行安全加固。
系统的动态重构是指系统在资源和任务情况发生改变时,基于重构规则,使用不同的映射或配置方式,实现系统软硬件资源的映射关系调整。
系统重构的实现依赖于重构规则。重构规则包括资源的选择原则和优先级策略等,是整个系统资源分配策略的核心。重构规则需要综合考虑冗余、空闲资源、运行模式、任务优先级、降级配置等因素的限制,对重构的条件、动作和约束进行规范。在重构规则的约束下,软件蓝图、硬件蓝图和应用部署蓝图有机结合,使系统重构能够适应承载各种不同功能组件,将功能模式所需的软件能力映射到具体的硬件模块上运行,从而实现不同的任务模式。
系统重构的标准规则包括以下要点:
(1)模块必须处于加电且正常工作状态,处理器类型需符合软件模块要求;
(2)处理器当前的处理能力和内存要满足软件构件的需求,模块当前的通信接口速率要满足软件组件的要求;
(3)优先选择负载较轻的模块;
(4)若仍然没有可用资源,则重构失败。
这些规则确保了系统重构过程中的资源选择和配置满足要求,从而保证了系统的稳定性和性能。系统重构可分为规划重构和故障重构两种类型。
2.1.1 规划重构
规划重构是在工作模式改变时进行的重构[6],星载综合射频系统的工作模式包括电子侦察模式、通信广播模式和微波成像模式。规划重构针对所有软件组件,根据重构规则从硬件构件CPU、DSP 和FPGA 模块中选择目标处理器进行部署。
重构流程如下:
(1)发起功能重构并指定重构工作模式;
(2)收集重构节点的硬件设备状态;
(3)根据重构模式指令,检索和验证存储设备中相应的软件蓝图,结合硬件设备状态信息,按照重构规则分析资源是否满足软件重构部署的需求,并控制完成规划重构。
2.1.2 故障重构
故障重构是在硬件构件CPU、DSP 和FPGA 模块发生故障时,重新为软件组件选择可以替代故障处理器的目标处理器,它不会改变现有的工作模式和部署状态。通过这种方式,系统能够在故障时高效地替换单个构件,以保证系统的稳定性和功能的完整性。
星载综合射频系统中的硬件包括CPU、DSP 和FPGA。CPU 和DSP 分别搭载嵌入式实时操作系统和DSP 实时操作系统,它们采用轻量级分布式通信中间件作为通信方式[7],而FPGA 没有操作系统支持,因此它采用地址映射表通信[8]。
2.2.1 轻量级分布式通信中间件
CPU 与CPU、CPU 与DSP、DSP 与DSP 之 间的通信可以通过轻量级分布式通信中间件来进行。传统的分布式通信方法,如TCP/IP,具有较高的运行成本,并且TCP/IP 协议栈在小型系统如DSP 上不适用。本文设计的轻量级分布式通信中间件体系结构如图2 所示,其具有以下特点:
图2 轻量级分布式通信中间件
(1)同时兼容不同操作系统、CPU 和传输媒介,适用于整个分布式异构系统中的本地通信和远程通信。该中间件允许不同平台之间进行通信,并且支持多种通信介质,包括共享内存、RapidIO、千兆以太网和网络协议栈。
(2)具备灵活的扩展性,可以适应大型系统,并支持任意拓扑结构,使得分布式系统能够实现平台间的相互独立连接。
轻量级分布式通信中间件协议栈由会话层和传输层两个层级组成。会话层负责实现传输功能,其中包括通过名称查找通信终端的命名服务,以及异步通知通信关闭的链接监控服务。传输层则负责实现可靠有序传输任意大小消息的机制,并根据不同的传输媒介使用相应的传输协议。
会话层在系统中承担着远程通信和本地通信的功能。在远程通信中,会话层负责解析远程通信终端的名称,建立或删除与远程通信终端的本地代理,并进行源端到目的端系统之间的通信。而在本地通信中,会话层处理本地操作系统与应用程序之间的交互。
传输层为会话层提供可靠的传输机制。在非可靠传输媒介(如以太网)的情况下,传输层需要实现流控和重传机制,以应对丢包情况,并提供对端监控机制,以增加传输的可靠性。这增加了传输层的复杂性。而在可靠传输媒介(如共享内存和RapidIO)的情况下,传输层可以简化处理。
通过以上两个层级的结合,轻量级分布式通信中间件协议栈能够提供高效可靠的进程间通信解决方案,适应不同传输媒介和异构系统的需求。
轻量级分布式通信中间件的基本操作包括以下步骤:
(1)加载核心程序:在操作系统启动后,加载轻量级分布式通信中间件的核心程序。
(2)建立物理连接:根据通信需求选择合适的通信介质(如TCP、以太网卡、共享内存),建立物理连接。
(3)创建逻辑连接:在物理连接建立后,创建逻辑连接。
(4)应用程序通信:创建通信节点,并通过通信节点进行通信操作,发送数据给对端或接收对端发送的数据。
(5)通信信号(Signal):定义信号的结构体,并为信号数据包分配内存,填充数据后进行发送。
(6)搜寻通信节点:搜索对端节点,获取对端节点的标识。
(7)发送数据(Send):向对端发送数据。
(8)接收数据(Receive):接收对端发送的数据。
(9)监控对端节点:监控对端节点的状态,当对端关闭时会接收到特定的信号。
2.2.2 基于地址映射表的通信
FPGA 与FPGA、FPGA 与DSP、FPGA 与CPU之间的通信可以通过基于地址映射表的通信规范来进行[9]。地址映射表是维护逻辑地址和物理地址之间映射关系的表格,每个逻辑名称和逻辑标识都对应着唯一的物理端口信息。用户只需要关注通信两端的逻辑ID,而无须关注实际的物理端口。这样的设计简化了通信操作,提供了方便的接口。
静态随机存取存储器(Static Random Access Memory,SRAM)型FPGA 以其可重复编程和高度灵活性等特性,广泛应用于宇航电子设备中。然而,在宇宙辐射环境中,FPGA 容易受到单粒子翻转(Single Event Upset,SEU)的影响。这种现象发生在宇宙高能粒子射入FPGA 的敏感区域时,可能导致FPGA 中存储单元的逻辑状态翻转,从而引发软件错误,严重时甚至可能损坏硬件电路。尤其随着FPGA 晶体管尺寸不断缩小,辐射对SRAM 存储单元的影响日益显著。
此外,随着集成电路工艺尺寸不断减小,瞬态脉冲在传输过程中很难被衰减。由于电路工作速度的提高和时钟频率的增大,单粒子瞬态(Single Event Transients,SET)对软件错误的影响越来越明显,特别是对组合逻辑电路而言。
为了缓解SEU 和SET 的影响,常见的方法之一是采用三模冗余[10](Triple Modular Redundancy,TMR)。如图3 所示,TMR 利用3 个相同的模块(module)同时执行相同的操作,其中3 路信号通过多数表决器(voter)进行投票,根据少数服从多数的原则输出结果。这样可以确保一个模块的错误输出不会传播到下一个模块,只要不同模块不同时发生故障,就可以抵消错误,保证最终输出的准确性。这种方法能够显著增强单粒子效应对电路的影响。
图3 三模冗余进行安全加固
本文提出了一种面向星载综合射频系统的软件定义平台,其核心设计思想是软件组件化和软硬件解耦。通过将系统功能划分为独立的组件,实现了模块化开发和维护的优势。同时,平台还支持软硬件之间的动态重构,能够根据任务模式和资源状态的变化,灵活地调整软硬件之间的映射关系,提高系统的适应性和灵活性。为了满足不同传输媒介和异构系统的需求,该平台采用了一种轻量级分布式通信机制。该通信机制具有高效可靠的特性,能够提供可靠的进程间通信解决方案。它可以适应不同的传输媒介,确保数据的可靠传输和及时交互,满足异构系统之间的通信需求。同时,星载综合射频系统由于其运行环境的特殊性,需要考虑宇宙空间环境中的射线、辐射、电磁干扰等造成的粒子翻转问题。通过在系统中引入冗余模块,并三路投票,保证最终输出的正确性。
综上所述,本文提出的面向星载综合射频系统的软件定义平台通过软件组件化、软硬件解耦、动态重构、三模冗余和轻量级分布式通信机制等关键技术,为星载综合射频系统提供了灵活、高效、可靠的软件定义解决方案。