SCA 异构平台系统波形部署技术研究与实现*
2020-06-08赵蕾
赵 蕾
(中国电子科技集团公司第十研究所,四川 成都 610036)
0 引 言
传统电台通常是针对特定的波形和任务设计的,电台之间互通往往存在问题。因此美国国防部于1997 年批准了联合战术无线电通信系统(JTRS,Joint Tactical Radio Systems)计划。软件无线电的目标是在开放的、可扩展的、模块化的通用平台上,构建可重构、可配置、可升级、可互通的构件化软件,更多的电台功能由软件实现,而不是通过硬件实现[1]。美军基于软件无线电技术开展了长期的研究工作,联合规划执行办公室(JPEO:Joint Program Executive Office)制定了软件通信架构(SCA,Software Communication Architecture)标准。SCA 通过面向对象方法划分软件/硬件结构,建立了开放的系统标准,提供了与具体实现无关的软件无线电开发框架。
SCA 标准在实践中不断演进更新,JTRS 先后发布1.0 到4.1 多个版本,目前各国现役装备大都基于2.2 和2.2.2 版本设计的。2019 年美国国防部正式宣布在美军陆海空战术装备中全面强制部署SCA 4.1 标准,取代之前部署的SCA 2.2.2 标准[2]。SCA4.1 与SCA2.2.2 的主要区别在于修改了部分接口、增加了组件定义、支持组件的可裁剪、优化并统一了组件的注册管理机制、支持嵌套应用等,以更好支持各量级平台设备和提升系统软件运行效率。
SCA4.1 已不强制使用CORBA(Common Object Request Broker Architecture)作为传输机制,但在目前的技术条件下CORBA 仍然是SCA 传输机制的首要选择,因为CORBA 支持IDL,对组件间端口通信比较友好。另一方面,为了满足高速的数字信号处理发展需求,需要采用DSP 和FPGA 芯片做信号处理,但是DSP 和FPGA 版本的CORBA 产品在资源消耗和传输性能上不能满足系统需求,所以DSP 和FPGA 没有运行CORBA,而是采用MHAL(Modem Hardware Abstract Layer)进行通信,导致使用CORBA 作为通信机制的核心框架不能对DSP和FPGA 上的软硬件资源进行管理。本文提出了一种基于代理的SCA 波形部署设计方案,在GPP 上构建代理,通过代理对DSP 和FPGA 的组件加卸载及组件的基础应用接口进行管理。
1 硬件架构
本文采用硬件架构如图 1 所示,包括天线、射频前端、射频信道、2 块信号处理模块、数据处理模块,信号处理模块中包含两片Tsi6678 DSP 和 两片485T FPGA 芯片,数据处理模块采用P2020 处理器,支持4 通道。DSP、FPGA 和GPP 之间通过1x 2.5Gbps Rapid IO 串行总线互连,DSP 与FPGA 中间通过EMIF 互连。
图1 系统硬件架构
2 系统软件设计
系统软件构架如图2 所示[3],由操作系统、传输机制、核心框架控制组件、设备与服务、应用及应用组件组成。操作系统为系统运行的所有软件(包括应用、设备和服务等)提供多线程、文件系统等支持;传输机制为组件间提供通信方法;核心框架控制组件完成对系统软硬件资源的管理,包括设备服务的启动和应用的部署管理;设备组件对硬件平台中的设备进行封装,为应用提供访问设备资源的标准接口;服务是平台提供的各种非硬件的、由软件实现的组件。
图2 系统软件架构
2.1 系统建模
对系统的软硬件资源进行抽象建模,建模包括应用建模和节点建模,应用是对功能软件的抽象,节点是对硬件的抽象。应用由组件构成,组件划分原则要注意划分粒度,如果粒度太大,不便于组件的复用,如果粒度太小,就会导致资源利用率太低,重构时间长。节点建模主要是对设备和服务的建模,设备主要包括可加载/可执行设备、标准外设设备,将独立于波形、不随波形切换变化的软件部分抽象为服务。
GPP 上通常部署网络层、链路层等组件和核心框架软件,DSP、FPGA 组件不支持CORBA 中间件,因此在GPP 上为DSP 组件和FPGA 组件抽象出代理组件,为DSP 设备和FPGA 设备抽象出代理设备。
应用组件可根据系统需要裁减继承基础应用接口,本文中应用组件继承了ComponentIdentifier、PortAccessor、LifeCycle、PropertySet、ControllableInterface 接口。
2.2 代理组件设计
DSP 组件和FPGA 组件通过部署在GPP 上的代理组件接受核心框架的管理。DSP 组件和FPGA 组件软件由基础应用接口和功能软件两部分构成,基础应用接口负责接收执行代理组件发送的生命周期管理、控制管理及属性管理等命令,功能软件完成信号处理算法功能。核心框架应用管理组件通过装配组件调用代理组件的基础应用接口,代理组件封装MHAL 消息包,使用MHAL 传输机制发送消息给DSP 组件和FPGA 组件,DSP 组件和FPGA 组件基础应用接口接收执行控制指令,通过MHAL 回传执行结果给代理组件,代理组件工作原理如图3 所示。
图3 代理组件工作原理
2.3 代理设备设计
核心框架通过运行在GPP 上的代理设备完成DSP 组件和FPGA 组件的加载。代理设备是可执行设备,实现文件映射管理、加载、卸载、执行和终止组件功能。文件映射完成代理组件与DSP 组件和FPGA 组件的映射;核心框架在创建应用时,代理设备DSP Device 和FPGA Device 首先加载代理组件,然后封装加载控制消息,通过MHAL 传输机制给DSP 和FPGA 的加载管理程序发送消息,加载管理加载并执行指定的程序,并将处理结果回传给代理设备,代理设备工作原理如图4 所示。
2.4 波形部署预案设计
SCA 核心框架创建波形应用时如不指定设备与组件的部署关系,应用工厂会根据组件运行所需(如处理器、操作系统、处理能力等)要求来自动查找匹配加载设备;但是在系统开发中,需要考虑负载均衡和代理关系,故本文采用另外一种指定部署预案的方式。部署预案既可以根据自定义策略解析SAD(Software Assembly Descriptor)和DCD(Device Configuration Descriptor)动态生成,也可如图5 所示,预先规划应用组件与设备的部署关系[4][5][6]。
图4 代理设备工作原理
图5 波形部署预案图
2.5 波形部署过程
波形部署流程如图 6 所示,可视化人机界面与核心框架控制组件通过CORBA 传输机制进行交互实现波形部署。通过可视化人机界面拖拽待部署波形到指定通道,选择对应的部署预案,解析部署预案获得波形组件与设备的部署关系,判断是否是已创建过的应用工厂,如果不是,执行安装应用操作创建应用工厂;根据组件与设备的部署关系创建应用,首先加载组件到指定的设备,建立组件间的连接,再初始化所有应用组件;启动应用,即启动组件间的数据通信。
3 系统验证
依据硬件架构设计实现节点如图7 所示,节点包括DomainManager、DeviceManager、GPPDevice、代 理设备、MHALDevice、ControlService、SerialDevice[4][5][6]。
GPPDevice 是GPP 设备,负责加卸载GPP 组件;DSPDevice 是DSP 代理设备,负责加卸载DSP代理组件和DSP 组件;FPGADevice 是FPGA 代理设备,负责加卸载FPGA 代理组件和FPGA 组件;MHALDevice 负责GPP 组件与非GPP 组件之间的通信;ControlService 是控制服务,负责与上位机通信、参数配置、数据转发;SerialDevice 是串口设备,为波形组件提供标准的串口访问接口。
图6 波形部署流程
图7 节点模型
构建应用模型如图8 所示,包括Assembly、ProtocolComp、AudioComp、WfParamConfigComp、DSPComp、FPAGComp 组件。ProtocolComp 负责协议处理,与ControlService 通信;AudioComp 负责音频处理;WfParamConfigComp 负责波形参数配置。在部署阶段,DSPComp、FPAGComp 是代理组件。
4 结 语
本文研究了SCA 异构平台系统波形部署技术,针对核心框架不能管理DSP 和FPGA 上软硬件资源的问题,提出一种基于代理的SCA 波形部署设计方法。该方法在异构硬件平台上,为DSP 和FPGA 设计实现了代理设备和代理组件,构建应用波形和节点,进行功能验证,结果表明方案可行,解决了DSP 和FPGA 软件接入SCA 系统的问题,可为基于SCA 异构架构的软件无线电台的设计和开发提供参考。