面向飞控计算机的新型总线体系架构研究
2022-05-30吴军锋韩冰张志君李建峰宇峰张磊磊黄家俊曹建安
吴军锋,韩冰,张志君,李建峰,宇峰,张磊磊,黄家俊,曹建安
(1.中国西安飞机工业集团股份有限公司,陕西西安,710089;2.西安交通大学电气工程学院,陕西西安,710049)
0 引言
总线体系结构具有良好的开放性、透明性、可靠性和通用性[1],实现业务的通讯管理、业务调度与数据传输。而传统的嵌入式计算机多采用模块化的整机式体系结构,总线带宽和扩展能力有限,并且不具备动态重构、数据信号综合处理能力[2]。
在飞行器中应用于计算和控制的总线,多为机箱内部的高速并行总线PXI,和外设低速的串行总线;而基于PXIe的高速串行总线正在逐渐取代PXI并行总线。基于外部串行总线的LRM体系结构的弹载计算机,包含了先进计算机体系结构松耦合、高内聚的特点[3]。这一系统吸收了美国空军综合模块化航空电子设备IMA的设计思想,以串行总线为核心,将任务控制模块、惯导模块、大气数据计算模块、无线电高度计算模块等,均以资源的方式挂载在串行背板总线上[4]。
目前串行背板总线多采用ARINC429、1553B、AFDX、FC等,通讯速率从48kbps到2Gbps,能够满足航空电子系统日益增长的对数据要求高速和低延迟传输的需求[5]。但是采用不同的总线协议,会给系统通讯解析带来更大的工作量,即需要处理器处理多种复杂的通讯协议问题。多数背板总线已经从并行处理的PXI总线过渡到串行的PXIe总线,从而获得了更高的处理速度[6]。
软件功能由操作系统粗粒度层次上的静态分时、分区,按时间出发协议运行;和内嵌业务类及监控目标的细粒度实时管理与故障推理,实现资源有效管理的动态运行模式[7]。其最大特点是支持故障监控与隔离和系统重构,适合构建裕度配置的高可靠、高容错的弹载计算机。采用多处理器互连的计算机物理架构[8],能有效的提高数据处理速度,实现并行处理技术。但是这种架构的复杂性将降低系统运行的可靠性,同时,因为程序的并行执行,造成这种结构中存在多处理器内核对总线的竞争使用问题[9]。虽然采用排队模型可以避免总线仲裁的问题,但是这种由于核间总线竞争造成的时间开销具有不确定性,使得该整机系统的可靠性无法保证。
采用国产ARM系列多核处理器构建的嵌入式计算机应用,在安全方面具有较大优势,可用于航天航空领域[10,11]。但是国产化ARM处理器的数据处理速度和可靠性仍需要提高。为此,通过合理设计,将外设的数据接口和高速的数据处理分离,能有效提高系统处理能力,进而满足飞行器大数据量处理的要求。文献[12]提出一种可扩展的一体化空间综合电子系统构架,实现整机的外部接口总线和内部背板总线一体化,具有较好的兼容性和可扩展性,实现系统的标准化。只是按照该文献的方法,仍无法实现低速串行通讯数据的接口与解析,和高速数据处理之间的协调,以及设备扩展能力的提高,系统优化仍有提高空间。
1 现状分析及存在问题
串行总线可适用于飞行器的工程应用,既能满足高速、大容量的数据检测需求,也能满足大量外部设备的混合串并联结构。一个典型的航空串行总线应用示意如图 1所示。
图1 传统串行通讯总线时序图
图中,横坐标为系统时标,主控制器每50ms进行一次全部设备的轮询TX,能RX回复的表示正常工作,如果连续3次询问均不能回复,则视为有故障。设备2和设备4可同时接收主控器的数据发送请求TX;而设备1~3只能由主控器轮流发送请求TX。每次的轮询总是主控制器作为发起者,其他设备作为接收者;只有被轮询到的设备才能将其检测数据上传。
显然,这种应用方式能有序地进行数据获取和设备控制,但是主控制器的通讯效率较低:1)每次都需要主控制器进行轮询,浪费总线带宽;2)大数据量容易造成总线阻塞,只能进行少量的数据交换;3)关键设备的数据无法得到优先交换,其实时性得不到保证;4)系统扩展能力受限。
面向飞行器应用的总线系统,其特点是:1)各种电子设备较多,且设备分散分布于整机系统中,只能采用串行总线进行数据交换;2)电子设备越来越复杂,导致其向主控器上传数据量越来越大,而下行数据量是有限的。为此,结合多核主控器,本文提出混合串行通讯总线体系结构,无论是背板总线还是外部总线,均可采用串行结构。
2 新型通讯体系架构的提出
本文所提出的新型通讯体系架构采用多核处理器作为控制核心。使用多核处理器中一个Core,专门负责所有串行接口的数据接收与解析,并为该Core分配独立的运行空间和数据存储空间。而后续的数据处理则由其他Core完成,使得该多核处理器中的各个Core完全处于并行运行状态,既能保证串行数据的高速接收与解析,也能保证数据的高速处理,形成一种新型串行通讯体系架构,最大化的实现串行总线大数据量的吞吐能力。
2.1 混合串行通讯总线体系结构
一种混合通用航空总线体系结构串行通讯时序如图2所示。图中,既有多设备共享一路串行总线的通讯模式,如设备1~3;也有多个设备采用独立串行总线的模式,如设备4~n。这既是一种网状、也是一种树形的串行总线分层结构。设备1~3共享一条串行通讯总线,和上位机通讯时,显然每个时刻只允许一个设备进行通讯。因而,通讯速度较低,传输数据量较小,如ARINC429等;而设备4~n独立使用一根串行通讯总线,每个设备可采用高速通讯模式,如PXIe或FC。
图2 混合串行通讯体系结构
该混合串行通讯体系结构的关键在于采用多核处理器中的一个Core(如Core1),单纯进行数据的收发与管理,不参与数据的计算与处理;而该处理器中的其他Core2,通过进程间通讯(IPC),将Core1接收的数据进行处理,而不涉及通讯数据的收发与管理。这样,多核处理器中的Core2和Core1在微观上完全是并行运行,因而能够提高处理器运行效率,提高系统数据处理速度。
设备和处理器之间的数据通讯模式可采用地址优先级或数据优先级,这样既要保证各个设备在系统中的相同地位,也要保证关键设备的优先级。
2.2 地址优先级模式
广泛用于车载系统的CAN总线采用隐形地址优先的原则,可以将高优先级的设备设置为低位地址,实现抢占串行总线、优先发送数据的模式,如图3所示。
图3 地址优先通讯模式
CAN总线在发送数据前,先发送地址,并同时检测总线上的地址是否和发出去的地址一致,如一致,则是本设备发出的;如不一致,则是高优先级设备发出的。如设备m的地址(以4bit为例)为0b0010,设备n地址为0b0100。当着两个设备在时间戳时刻同时发出地址时,显然设备m地址优先级较高,将CAN总线拉到低电平。设备n从总线上检测不到其自身地址0b0100,故放弃CAN总线的控制,由高优先级的设备m继续发送地址和数据。
当设备检测到紧急事件时,可通过地址抢占模式上传数据。设备分配地址时,将0b0001作为最高优先级的设备地址(0b0000作为主控制器的地址)备份,仅在地址抢占模式下使用。如设备n,采用抢占模式,将自己的地址变更为0b0001,可优先传输数据;当重要数据传输完成,其地址回复到轮询模式。所有设备都在实时监测总线是否空闲,如果还有一个设备想抢占总线,需要等待总线释放0b0001地址。
2.3 数据处理模式
不同功能的设备,其数据采样频率、数据位数,通过串行上传的数据量都是不同的,设备数据的重要程度也是不同的。为此,在数据存储器中开设不同数据量大小的缓冲区Buffer,形成数据池如图4所示。
图4 数据优先通讯模式
图中数据池模型,其宽度越大,代表的数据池越大。显然,设备4的数据Buffer较大,设备2的数据Buffer较小;循环的箭头代表每个设备的数据Buffer都是环形数据池,即数据存入和取出都是地址循环模式;且每次上传的数据都带有时间戳。正常工作模式下,每个设备都是根据自己的地址(即地址优先级),轮流进行发送数据,并填充在该数据池。处理器内核根据时间戳的顺序,同时取出所有数据,并进行处理;如果有没有价值的数据,就抛弃。
数据的存入与取出,都是按照时间戳进行,数据池不会出现溢出。如果出现数据即将填满整个数据池时,接口内核将启用中断机制,通过处理器内核间的IPC(图2),将数据发送给数据处理内核。
3 混合串行通讯的设计与分析
本文在国产FPGA中植入软多核处理器,并分配相应的硬件资源;混合串行接口设计有高速和低速三种模式。
3.1 通讯速率
根据飞行器串行通讯的特点,设备上传的数据格式如图5所示。在正常情况下,设备1~4只是在每个时间戳的时刻,进行数据发送。
图5 混合通讯模式的时序示意图
这些数据都是先发送地址信息,然后发送数据。如果主控制器需要紧急发布命令,会在时间戳时刻,发出0b0000的地址信息,此时,设备就停止发送,总线使用权留给主控器。
由此可见,通过额外的接口内核全职接收数据,将原来的交互通讯模式,设计成设备上传数据模式,能有效的提高数据传输速率。
如果对于串行背板总线,即采用PXIe总线,仍采用这种模式,也可实现PXIe机箱内部的高速数据采集与处理。
3.2 基于FPGA的多核处理器设计
传统的多核处理器在执行程序的过程中,宏观上展现的是并行;但由于多核处理器的内部多个Core,都共享一个SDRAM控制器,使得所有Core在微观执行代码的过程中,表现为串行工作模式。因而,相比较单核处理器,多核并非将工作效率提高了多倍。为了能够实现高速混合串行通讯,本设计采用国产FPGA开发板。
图6 基于FPGA实现混合通讯示意图
3.3 通讯结构的实现
在该混合串行通讯总线的设计中,其软件由总线API、总线接口、总线管理和总线服务构成。
总线API向用户提供一组函数,用户调用这些函数,向系统登记和注册设备特征,实现总线管理。如所有串行设备首先需要进行时间同步处理,由总线API下发时间戳到各个串行设备;其次,完成设备的地址优先级管理、功能备注、采样数据的缓冲等功能。
采用如图7所示的国产FPGA开发板验证该混合串行高速通讯。该FPGA板含有828kbits的块状SRAM和41kbits的静态SRAM。在该FPGA中采用ARM架构v6-M的Cortex-M1作为数据处理内核,采用AHB-Lite接口单元为用作为串行数据解析内核,该单元能实现高性能的同步串口解析和内部互连。开发板上的SDRAM作为Cortex-M1的程序和数据存储器;FPGA内部的SRAM作为AHB-Lite的数据池。
图7 基于国产FPGA的实验板
外部混合串行总线可设计一个高速的Ethernet网络,两个低速的SPI总线和CAN总线,实现该混合串行总线的验证。
4 结论
通过上述的设计和分析,采用本文提出的飞控计算机架构对飞行器主控器进行优化设计,能达到以下效果:(1)能有效的提高串行总线效率、提高系统数据处理能力;(2)分离数据收发管理与数据处理过程,能提高系统可靠性。(3)能提高系统的扩展能力和动态重构能力。