嵌入式异构平台DDS中间件设计

2021-08-19 09:02吴翼虎钱宏文朱江伟
电子与封装 2021年8期
关键词:主控板中间件信号处理

吴翼虎,钱宏文,朱江伟

(中科芯集成电路有限公司,江苏无锡214072)

1 引言

随着网络和人工智能技术的不断发展,如何实现各个网络节点间的快速通信以及对不同应用的高效管理尤为重要。特别在航天、航空领域,一机多用、一弹多用、一星多用将成为未来武器装备的发展趋势。未来武器装备电子系统势必从单平台走向分布式异构平台,系统架构设计从封闭式走向开放式、多功能、可重构一体化。基于此,如何解决在异构平台下软硬件解耦合、不同系统间的通信成为关键。

中间件是一个软件适配层,向下能够为底层网络、硬件、操作系统和编程语言的差异性提供屏蔽,向上为应用程序开发提供一致的计算模型,具备开放性、高可用、可扩展等特征。这些优势使得中间件成为软件化定义系统中的关键技术,随着技术的不断发展,目前已经应用到多个领域,例如软件化雷达、软件化卫星以及综合电子系统等。

本文基于发布/订阅模式中间件,针对嵌入式系统有限资源和不同处理器的异构平台,提出基于发布/订阅模式的数据分发服务DDS中间件[1]设计方案,并在基于CPU+DSP+FPGA的异构平台上进行实现和功能测试。

2 DDS中间件及其特点

数据分发服务DDS中间件是一种以数据为中心的发布/订阅模式中间件,包含了一个抽象的编程模型规范和互操作链路协议规范。语言无关的标准编程模型定义了发布/订阅服务在应用程序层次标准化的接口和行为,使得用户程序可以在不同的DDS间实现移植;链路协议保证了不同的DDS实现后的互操作性。DDS分为2层:数据中心发布/订阅层DCPS和数据本地重构层DLRL。

2.1 DCPS层

DCPS层中主要包含域、参与者、发布者、订阅者、数据写入者、数据读取者、主题、监听器等通信实体。同一个数据域内可能存在多个数据发布者和订阅者,各个通信实体共同构建出一个全局数据空间,在空间中通过主题来标识数据对象,完成数据的发布/订阅。同时也通过质量保证策略Qos[2]为不同的数据标定不同的优先级,在同一个域内,主题匹配且Qos相互兼容的发布者和订阅者才能相互通信。DCPS模型架构如图1所示。

图1 DCPS模型架构

2.2 DLRL层

DLRL层将DCPS层数据重构为数据对象,添加对象属性,同时也反映对象的继承和关联关系,这使得应用程序以面向对象的方法在本地访问数据。DLRL层在本地维护了一个发布/订阅对象的缓存、缓存中对象的属性、继承和关联关系对应着全局数据空间中发布/订阅数据。数据生产者对其缓存中数据对象的改动会自动反映到其订阅者的缓存中,增加了DDS的发布/订阅功能。DLRL层架构如图2所示。

图2 DLRL层架构

3 嵌入式异构平台组成

异构嵌入式硬件平台基于VPX标准设计,整个系统分成3个功能板卡,包含主控板、预处理板和信号处理板。在管理和业务层面,平台设计了统一管理总线(SPI),板卡管理总线(千兆以太网),高速数据总线(SRIO),使得板卡的通信接口统一化和标准化。系统运行由软件统一配置管理,各条总线的传输由软件监管,具备软件化系统的条件。

主控板采用赛灵思公司Zynq-7000系列的XC7Z045芯片作为主处理器,同时包含以太网和SRIO交换网络模块,以太网的交换芯片采用Broadcom公司的BCM5396,该总线为平台管理总线。SRIO交换芯片采用IDT的CPS1848,进行各功能板卡之间的数据交换。

预处理板的主要功能是将接收到的光纤数据进行预处理后发送到平台内部的SRIO交换网络中。采用 高 性 能Virtex UltraScale+中 的XCVU13P-2FHGB2104I型号FPGA,其光纤接口采用zQSFP+光电连接器,每路4个lane,单lane的线速率为25 Gbit/s。采用molex的zQSFP+光电连接方案,满足系统大数据量交互的需求。

信号处理板采用4个德州仪器公司TI TMS320C6678多核DSP组成,以满足计算密集型算法的工程实现,同时具备强大的并行处理能力。每片DSP芯片分别通过一组SRIO 4×接口与本地SRIO交换芯片连接,每2片DSP芯片之间还通过一组HyperLink接口和SGMII互联,这样的连接方式既可以实现2片芯片的并行操作,也可将其进行级联,实现流水操作,可以为算法工程化实现的灵活性提供支持。

4 中间件架构设计与实现

4.1 架构设计

异构嵌入式平台中间件需要在CPU、DSP、FPGA 3种不同异构处理器间实现,每种类型的处理器实现不同功能。

1)CPU运行RTLinux操作系统,主要完成中间件代理的实现,包含组件的注册、消息订阅和发布管理、整个系统的健康管理等;响应上位机或者上层系统的任务下发,同时也完成部分计算功能。

2)DSP运行SYS/BIOS操作系统,其中Core0响应系统中心节点配置服务,Core1~Core7加载不同的计算组件,组件通信采用任务调度,不同的任务分配不同的数据和接口资源。

3)FPGA运行MircoBlaze嵌入式CPU,由其响应系统中心节点的响应,同时不同组件模块按照类似数据流接口、配置接口等组成标准组件,组件间通过Crossbar完成全连接互联。

4)不同处理器间通过以太网进行数据交换,基于TCP/IP协议,进行中间件通信。

异构中间件架构设计如图3所示。

图3 异构中间件架构设计

4.2 中间件实现方案路线

在异构处理平台中间件的实现方案选择过程中,本公司调研了对象管理组织的实时数据分发服务的C++开源实现方案OpenDDS[3],凌华科技的Vortex OpenSplice的开源版本和西班牙分布式网络中间件解决方案提供商eProsima公司的Micro XRCE-DDS[4],3款实时分布式网络中间件产品各自特点如下。

OpenDDS是对象管理组织针对数据分发服务的一种开源C++实现,遵循数据分发服务规范和实时发布/订阅互操作性通信协议规范,由OCI公司设计开发并一直在维护。由于OpenDDS采用C++语言,通过多线程的方式实现域参与者的互发现、发布/订阅数据、可靠性连接的维持等,所以运行环境需要提供C++编程语言和多线程的支持。本公司在异构处理器平台CPU处理器(ARM Cortex A9)Linux环境中完成了OpenDDS的移植实现,但是要基于异构处理器平台DSP和FPGA来实现OpenDDS的适配非常困难。

凌华科技长期专注于对象管理组织的数据分发服务的研发,Vortex OpenSplice基于对象管理组织的数据分发服务标准实现,提供设备对设备的实时数据共享和安全的大量数据传输。Vortex OpenSplice和OpenDDS一样采用C++语言实现,通过多线程的方式实现域参与者的互发现、发布/订阅数据、可靠性连接的维持等,代码量庞大,也不适合在异构处理器平台DSP和FPGA上实现。

eProsima公司的Micro XRCE-DDS产品是基于对象管理组织发布的一种针对极端资源受限环境下数据分发服务的标准协议实现的分布式网络中间件产品,为将资源极端受限的设备加入数据分发服务网络提供了解决方案。它基于资源受限的低功耗设备与代理端之间的客户端-服务器协议定义了极端资源受限环境数据分发服务的标准协议服务,该服务使设备能够与数据分发服务网络进行通信并在特定的域发布和订阅相关主题的数据。Micro XRCE-DDS开源,支持多平台,OS依赖项被视为可插入模块,用户可以轻松地在特定平台上实现Micro XRCE-DDS客户端的适配。Micro XRCE-DDS客户端使用纯c99标准实现,没有使用其他版本的C编译器,所以运行环境只要支持c99语言标准,即可实现Micro XRCE-DDS客户端的适配。Micro XRCE-DDS并非基于特定的传输协议(如串口或UDP)构建,与所使用的传输方式无关,并提供了快速实施其量身定制传输方式的可能性,比如RapidIO;默认情况下,提供了UPD、TCP和串口传输。

对比OCI OpenDDS、凌华科技Vortex OpenSplice以及eProsima Micro XRCE-DDS 3款开源分布式网络中间件产品,本公司最终选择基于eProsima Micro XRCE-DDS完成异构处理平台中间件的实现。

4.3 中间件实现

4.3.1 主控板中间件实现

主控板主要功能是对整个处理机的配置管理,对各个节点DSP/FPGA的动态加载和配置都由主控板完成。其核心使用赛灵思公司Zynq-7000系列的XC7Z045芯片作为主处理器。Zynq XC7Z045 PS端为ARM Cortex-A9 CPU,ARM Cortex-A9 CPU运 行RTLinux操作系统软件,主控板作为整机的综合控制单元,需要实现Micro XRCE-DDS的代理端和客户端。基于RTLinux操作系统软件以太网驱动,Linux TCP/IP协议栈为Micro XRCE-DDS客户端和Micro XRCE-DDS客户端提供传输插件的支撑,实现主控板分布式网络中间件应用的数据传输。异构处理平台的主控板中间件实现方案架构如图4所示。

图4 主控板中间件实现方案

4.3.2 信号处理板中间件实现

信号处理板由多核DSP组成,中间件实现基于SYS/BIOS操作系统。SYS/BIOS针对TI DSP的一个可扩展的实时内核,它是为需要实时调度和同步或实时分析的应用程序而设计的,提供了抢占式多线程、硬件抽象、实时分析和配置工具,帮助目标设备实现最小化的内存使用和CPU运算,支持任务的调度和管理,提供网络开发工具NDK组件,支持网络协议栈包括IPv4、TCP、UDP,提供C/C++程序运行环境。

信号处理板作为Micro XRCE-DDS客户端接入分布式网络中间件系统,TI TMS320C6678 DSP信号处理板上运行SYS/BIOS操作系统,基于TI SYS/BIOS实时操作系统以太网驱动和TI NDK TCP/IP协议栈[5]为Micro XRCE-DDS客户端提供传输层的支撑,实现信号处理板中间件应用的数据传输。异构处理平台的信号处理板中间件实现方案见图5。

图5 信号处理板中间件实现方案

4.3.3 预处理板中间件实现

预处理板由高性能FPGA构成,考虑其无硬核处理器,采用基于MicroBlaze软核[6]进行中间件实现。MicroBlaze软核是一个被赛灵思公司优化过的可以嵌入在FPGA中的RISC精简指令集计算机处理器软核,充当CPU,这个IP核是由FPGA内部的逻辑资源组合而成的,具有运行速度快、占用资源少、可配置性强等优点。接口板作为Micro XRCE-DDS客户端接入分布式网络中间件系统,同时基于LwIP轻量级协议栈[7]为中间件提供传输层的支撑,实现无操作系统环境中间件组件的移植。异构处理平台的预处理板中间件实现方案架构如图6所示。

图6 预处理板中间件实现方案

4.4 中间件验证

4.4.1 主控板与信号处理板中间件验证

1)主控板与信号处理板中间件验证场景

主控板和信号处理板通过以太网连接,主控板和信号处理板分别通过调试串口连接主机,在主机中连接主控板调试串口的本地串口为COM8,连接信号处理板调试串口的本地串口为COM10。主控板运行RTLinux操作系统,同时部署代理端和客户端A,客户端A在域0中以Topic 1主题发布数据;信号处理板运行SYS/BIOS操作系统,部署客户端B,客户端B在域0中以Topic 1主题订阅数据。主控板与信号处理板中间件验证场景如图7所示。

图7 主控板与信号处理板中间件验证场景

2)主控板与信号处理板中间件验证结果

在主机中通过SecureCRT终端仿真工具打开COM8和COM10,在主控板运行代理端和客户端A程序,在信号处理板上运行客户端B程序。程序运行后,主控板客户端A与主控板代理端建立连接,信号处理板客户端B与主控板代理端建立连接,主控板客户端A以Topic 1主题发布数据,主控板代理端收到主题为Topic 1的数据并转发给信号处理板客户端B,信号处理板中运行的客户端B订阅到主控板客户端A发布的数据,测试结果如图8所示。

图8 主控板与信号处理板中间件通信测试

3)主控板与信号处理板中间件验证结论

基于信号处理板中间件应用客户端B订阅到主控板中间件应用客户端A发布的以Topic 1为主题的数据试验结果显示,基于主控板和信号处理板完成了中间件的实现。

4.4.2 主控板与预处理板中间件验证

1)主控板与预处理板中间件验证场景

主控板和预处理板通过以太网连接,主控板和预处理板分别通过调试串口连接主机,在主机中连接主控板调试串口的本地串口为COM8,连接预处理板调试串口的本地串口为COM9。主控板运行RTLinux操作系统,同时部署代理端和客户端C,客户端C在域0中以Topic 2主题发布数据;预处理板支持LwIP协议栈,以无操作系统形式接入系统,仅部署客户端D,客户端D在域0中以Topic 2主题订阅数据。主控板与预处理板中间件验证场景如图9所示。

图9 主控板与预处理板中间件验证场景

2)主控板与预处理板中间件验证结果

在主机中通过SecureCRT终端仿真工具打开COM8和COM9,在主控板运行代理端和客户端C程序,在预处理板上运行客户端D程序。程序运行后,主控板客户端C与主控板代理端建立连接,预处理板客户端D与主控板代理端建立连接,主控板客户端C以Topic 2主题发布数据,主控板代理端收到主题为Topic 2的数据并转发给预处理板客户端D,预处理板中运行的客户端D订阅到主控板客户端C发布的数据,测试结果如图10所示。

图10 主控板与预处理板中间件通信测试

3)主控板与预处理板中间件验证结论

基于预处理板中间件应用客户端D订阅到主控板中间件应用客户端C发布的以Topic 2为主题的数据试验结果显示,基于主控板和信号处理板完成了中间件的实现。

4.4.3 信号处理板与预处理板中间件验证

1)信号处理板与预处理板中间件验证场景

信号处理板和预处理板分别通过以太网与主控板连接,主控板、信号处理板和预处理板分别通过调试串口连接主机,在主机中连接主控板调试串口的本地串口为COM8,连接预处理板调试串口的本地串口为COM9,连接信号处理板调试串口的本地串口为COM10。主控板运行RTLinux操作系统,部署代理端,信号处理板运行SYS/BIOS操作系统,部署客户端E,客户端E在域0中以Topic 3主题发布数据,预处理板支持LwIP协议栈,以无操作系统的形式接入系统,部署客户端F,客户端F在域0中以Topic 3订阅数据。信号处理板与预处理板中间件验证场景如图11所示。

图11 信号处理板与预处理板中间件验证场景

2)信号处理板与预处理板中间件验证结果

在主机中通过SecureCRT终端仿真工具打开COM8、COM9和COM10,在主控板运行代理端程序,在信号处理板上运行客户端E程序,在预处理板上运行客户端F程序。程序运行后,信号处理板客户端E与主控板代理端建立连接,预处理板客户端F与主控板代理端建立连接,信号处理板客户端E以Topic 3主题发布数据,主控板代理端收到主题为Topic 3的数据并转发给预处理板客户端F,预处理板中运行的客户端F订阅到信号处理板客户端E发布的数据,测试结果如图12所示。

图12 信号处理板与预处理板中间件通信测试

3)信号处理板与预处理板中间件验证结论

基于预处理板中间件应用客户端F订阅到信号处理板中间件应用客户端E发布的以Topic 3为主题的数据,试验结果显示,基于信号处理板和预处理板完成了中间件的实现。

5 结论

本文基于Micro XRCE-DDS中间件,将其适配到由CPU、FPGA、DSP等异构处理器组成的嵌入式系统,实现了异构处理器平台不同主题的发布/订阅服务,并提出基于MicroBlaze软核加LwIP协议栈在FPGA实现中间件通信的实现方案,为软件中间件硬件化提供一种新的解决思路。后续可在此基础上继续开展DDS中间件实时性、分布式、QoS等方面的研究,使其满足军用场景下“在正确的时间、正确的地点获得正确的数据”的“3R”要求,为软件定义嵌入式实时系统提供支撑平台,实现系统在时间、空间及数据流上的解耦。

猜你喜欢
主控板中间件信号处理
一种快速可靠的主控冗余及切换机制的设计与实现
重庆轨道交通闸机三杆机芯主控板的技术自主化探究
升级双主控板交换机ISO
RFID中间件技术及其应用研究
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
基于Android 平台的OSGi 架构中间件的研究与应用
中间件在高速公路领域的应用