基于FC总线协议和FTP协议的通用化FPGA配置方法
   来源:现代电子技术     2021年01月27日 23:57

基于FPGA的航空总线协议接口设计

蒋欣等

摘 要: 现场可编程逻辑门阵列(FPGA)在机载设备、通信设备等众多领域广泛应用,但是基于本地开发环境的JTAG接口更新FPGA配置数据已经难以满足相关工程的需求。在此介绍基于FC总线协议和FTP协议的FPGA配置方法,该方法既能够满足机载航电设备的现场可更换模块(LRM)中的FPGA动态远程更新,又能支持调试测试的静态本地配置,使得FPGA的调试和升级更加通用化、智能化。

关键词: FC总线; FTP; 机载航电设备; 现场可更换模块; FPGA配置

中图分类号: TN915.04?34; TP336 文献标识码: A 文章编号: 1004?373X(2015)11?0057?04

Universalization FPGA configuration method based on FC bus protocol and FTP

JIANG Xin1, CHENG Bo2, ZHANG Wei?dong1, DUAN Xiao?hu1

(1. AVIC Xian Aeronautic Computing Technique Research Institute, Xian 710019, China;

2. Military Representative Office Stationed in AVIC Xian Aeronautic Computing Technique Research Institute, Xian 710019, China)

Abstract: Since FPGA is widely used in airborne equipment, communication equipment, etc., JTAG interface update based on local development environment for FPGA configuration date is hard to meet the associated projects demands. In this paper, FPGA configuration method based on fiber channel (FC) protocol and FTP is introduced, which can realize FPGA dynamic remote update of line replaceable model (LRM) in airborne avionics equipment, and support static local configuration for debugging and testing. It made the debugging and upgrade of FPGA more universal and intelligent.

Keywords: FC bus; FTP; airborne avionics equipment; LRM; FPGA configuration

0 引 言

为了满足高度综合化机架间和机架内现场可更换模块(以下简称:LRM模块)之间大容量数据通信、高速与低速总线之间数据交互通信需求,高度综合化的总线技术硬件平台越来越普遍使用,并且随着FPGA规模和性能的不断提高,使得FPGA在综合化的航空电子领域内有广泛的应用。但是FPGA具有掉电易失特性,需要在每次上电之后对它进行重新配置。随着FPGA的规模越来越大,FPGA的功能越来越丰富,FPGA的配置文件的容量也越来越大,这对于配置电路的吞吐率、抗干扰能力都提出了较高的要求。高度集成化航空电子设备中的每个LRM模块都具有FPGA,需要在不同时刻实现不同的功能,配置电路既能支持FPGA的在线动态配置,又能支持FPGA的本地调试。

而传统的FPGA配置方法灵活性差,即LRM模块升级时都必须重新连接下载电缆对存储器件进行烧写。为此,本文提出了一种基于FC总线和以太网FTP协议的通用化FPGA配置方法,利用高度集成化的航空电子设备的通用高速总线(FC总线和以太网调试总线)实现了各个LRM模块中的FPGA配置数据升级。

1 系统设计

1.1 设计指导思想

随着航空电子的综合化程度越来越高,LRM模块功能的也越来越集成,超大规模的FPGA和SoC被频繁使用,但是体积小、重量轻、功耗低的要求也随之增高。为了满足各个LRM模块的FPGA配置文件的批量、快速升级,笔者罗列出以下硬件设计指导思想:

(1) 利用航空电子的通用总线,不增加系统的负荷;

(2) 提供硬件电路的灵活性、可扩充特性;

(3) 在设计避免复杂的总线仲裁、冲突结构,尽量将各总线分开,简化设计,提高升级电路的可靠性;

(4) 硬件设计综合化、通用化、智能化。

1.2 主要总线选择情况

1.2.1 动态远程配置FPGA的总线选择

综合化航电设备都具有高带宽、低延时和低误码率的高速串行通信协议的光纤通道(Fibre Channel,FC总线),通常的FC总线都是该航电设备的外部总线,因此选择FC总线作为机架内各个LRM模块模块的FPGA远程升级的途径。本文方案中的FC总线选择了采用多模光纤传输、光波长为850 nm、光纤芯径为62.5 μm/125 μm的光数转换芯片进行接收和发送,其传输速率为1.062 5~4.25 Gb/s可选,该设计中使用2.125 Gb/s速率。

1.2.2 静态本地配置FPGA的总线选择

综合化航电设备都具备在线调试功能,因此利用调试途径的以太网,可用于各个LRM模块模块的FPGA本地升级。通常采用FTP协议,通过以太网传输配置文件。文件传输协议(FTP)是TCP/IP的一种具体应用,是网络中最广泛的服务之一。它工作在开放系统互连(OSI)模型的第7层,TCP模型的应用层,它是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。

1.2.3 FPGA的配置模式选择

本方案的FPGA均采用Xilinx公司的Virtex系列,采用Virtex系列FPGA的SelectMAP模式配置模式。在SelectMAP模式下,FPGA接收来自外部的配置时钟和并行数据总线进行FPGA配置文件的加载。

1.3 硬件平台设计

1.3.1 系统架构设计

既可支持FC总线远程升级,又可支持以太网本地调试升级的FPGA综合化硬件平台,设计系统架构如图1所示。

可利用航电设备的对外接口FC总线,也可利用航电设备的对外接口以太网,将各个LRM模块的FPGA配置数据,按照各个LRM模块的版本控制信息有序地存放到大容量数据存储LRM模块中。

动态远程配置路径:综合化航电设备的网络交换LRM模块的FC接口处理单元将FC总线上的各个LRM模块的FPGA配置数据(.bit文件),在中央核心控制LRM模块配置管理软件的控制下,存放到大容量数据存储LRM模块中,再在中央核心控制LRM模块的配置管理软件指导下,在综合化航电设备中,通过点对点的RapidIO网络进行动态配置,有利于综合化航电设备在不下电的情况下,进行FPGA的重配置、功能调整。

静态本地配置路径:该综合化航电设备应用的是VxWorks操作系统,这样可以使用Tornado或是Workbench自带的FTP服务器端程序,通过以太网将各个LRM模块的FPGA配置数据(.bit文件)直接上传到大容量数据存储LRM模块中,通过中央核心控制LRM模块的配置管理软件下载到各个LRM模块的本地FPGA存储器中。

1.3.2 板间总线硬件设计

本方案的板间总线硬件平台(中央核心控制LRM)采用了当前主流且功能强大的ASIC(PPC处理器)+RapidIO交换构架,PPC处理器主要完成数据协议解析和FPGA配置数据转发工作。如何使FPGA和PPC之间的数据在更高带宽和更低延时内完成,成为该硬件平台具有高性能设计的关键之处。由于需要兼容对外连接FC总线,其速率为2.125 Gb/s,根据当前高速串行总线的成熟应用情况,选择了RapidIO总线作为各个LRM模块间的数据总线。

RapidIO总线具有串行接口、差分传输、交换结构等特点。串行传输可以减少引脚数目,同时将时钟嵌入数据传输之中能够避免单独传输时钟引起的时钟的畸变,导致接收方与发送方不能同步。用差分方式可以提升硬件电路的电磁辐射特性,可支持更高的数据传输速率。交换结构能将多个点到点的传输并行地组织到一起,总线带宽成倍增加。其RapidIO交换式结构网络局部框图如图2所示。

大容量数据存储LRM模块存储着的各个LRM模块的FPGA配置数据,通过中央核心控制LRM模块的RapidIO总线控制,对各个LRM模块的FPGA进行点对点的配置。整个综合化航电设备的FPGA配置数据数据流,如图3所示。

各个LRM模块的FPGA配置数据存放完成后,中央核心控制LRM模块启动FPGA配置管理软件,利用板级内总线(RapidIO总线)从大容量数据存储LRM模块中将各个LRM模块的FPGA配置数据读出,写入到各个LRM模块的FPGA配置存储器中(本地静态配置)或者直接(远程动态配置)配置到各个LRM模块的FPGA中运行。

1.3.3 FPGA配置数据配置模式通用化设计

各个LRM模块的FPGA配置控制部分,都主要由RapidIO网络控制芯片、CPLD芯片和FLASH芯片构成。CPLD连接RapidIO网络控制芯片,完成FPGA配置数据在RapidIO网络数据的接收和处理,以及通过SelectMAP的被动模式进行FPGA芯片的配置管理,同时CPLD外接了一片FLASH芯片,当中央核心控制LRM模块动态配置软件失效时,能够读取FLASH芯片中本地FPGA配置数据,完成对FPGA的配置,保证各个LRM模块能够顺利启动,达到系统的稳定运行。各个LRM模块的通用化FPGA配置模式设计如图4所示。

系统首先通过网络交换LRM模块的通用网络接口(FC总线接口和以太网总线接口),将FPGA配置数据在中央核心控制LRM模块的配置管理软件指导下,按照版本控制规则,下载到大容量数据存储LRM模块中,再通过板间总线RapidIO网络,将FPGA配置数据传输到各个需要更新的LRM模块的配置管理CPLD芯片中。

CPLD将FPGA配置数据再按照中央核心控制LRM模块的配置管理软件的要求,选择直接存放到本地配置FLASH中,还是直接产生FPGA配置所需的SelectMAP模式时序,将配置数据逐步导入到FPGA中,指导FPGA运行。

FPGA动态配置是通过CPLD专用配置逻辑(SelectMAP模式)实现的,当FPGA接收到配置版本命令后,CPLD按照RapidIO网络的总线指令,解析是动态远程配置还是静态本地配置:

(1) 动态远程配置:CPLD的动态远程配置状态配置寄存器置标志位,CPLD等待接收下一帧RapidIO网络的FPGA配置数据,再进行协议解析和FPGA运行的.bit文件格式数据重组,启动SelectMAP配置模式,配置FPGA完成后,释放FPGA和CPLD的握手信息,同时复位FPGA的相关功能子电路,FPGA按照新的配置数据运行。

(2) 静态本地配置:CPLD的静态本地配置状态配置寄存器置标志位,CPLD等待接收下一帧RapidIO网络的FPGA配置数据,再进行协议解析和FPGA运行的[.bit]文件格式数据重组,计算出配置起始地址,将.bit文件记入到本地配置FLASH中,CPLD置FPGA本地配置文件更新标志位,系统下电后,再上电,CPLD启动SelectMAP配置模式,从FLASH中读取配置数据读取新的配置数据,配置FPGA。

需要将CPLD的运行文件通过JTAG接口烧写到CPLD中。CPLD运行文件包含3个工作模块(RocketIO接口控制模块、FLASH控制模块和SelectMAP配置模块),CPLD的连接关系与工作模式为:

(1) 通过RocketIO接口控制模块与RapidIO网络控制器进行连接,将Rapid网络的数据进行搬家;

(2) 与FLASH的数据线、地址线和控制线连接,实现对FLASH的读/写、擦除等操作;

(3) 通过专用配置管脚与需要配置的FPGA相连,实现SelectMAP模式配置FPGA。

CPLD的功能主要由3个模块组成:RocketIO接口控制模块,FLASH控制模块和SelectMAP配置模块。

FPGA配置过程,主控制CPLD由Xilinx系列芯片实现,内部逻辑功能主要包括RocketIO总线控制和FPGA配置控制部分。进入正常工作状态的CPLD持续监视RapidIO网络,收到FGPA配置命令时,进入接收配置数据状态,并开始配置FGPA,当数据接收完毕后,结束配置,并检查FPGA是否配置成功,将FGPA状态返回主控制器。

1.4 软件控制流程

整个综合化航电设备各个LRM模块的FPGA配置管理都是由中央核心控制LRM模块上运行的FPGA配置管理软件完成,对配置管理软件的工作模式进行了总结,工作模式分为了远程动态更新和本地静态配置。将FPGA配置管理软件的工作流程如图5所示。

2 系统验证

在综合化航电系统平台上,将5个不同功能的LRM模块FPGA配置数据分别通过FC总线和以太网总线进行分时传输和同时传输,分别验证该设计方案的实时性和有效性,测试结果如表1所示。

根据表1的测试数据,发现该方法在整个系统不管是重新动态配置FPGA,还是静态配置FPGA的本地存储器,都能够准确完成各个LRM模块中FPGA配置,也满足利用了综合航电系统的现有总线FC总线和以太网总线,也可以利用两种总线本身传输速率的不一致,避免两种配置方式的时序冲突。

3 结 语

本文介绍了基于FC总线协议和FTP协议的通用化FPGA配置方法,实现了FPGA的在线配置更新功能,方便FPGA的更新,以实现FPGA更多的功能。本设计还有提高的余地,比如可以将RapidIO网络协议实现也集成到CPLD中,以简化系统,降低成本,同时更能提高整个综合化航电设备的可靠性。

参考文献

[1] 丁玉美,高西全.数字信号处理[M].3版.西安:西安电子科技大学出版社,2009.

[2] 李燕斌,李燕春.用XCF32P实现FPGA的高速动态配置[J].电讯技术,2006(6):199?202.

[3] 陈曦,沈佐峰.一种可靠的FPGA动态配置方法及实现[J].通信技术,2012,45(3):105?107.

[4] 张江伟.基于Virtex?5和FLASH实现FPGA的多重配置[J].计算机与网络,2012(3):130?132.

[5] 王元强,朱为.一种通过PCI总线配置FPGA的设计方法[J].现代电子技术,2010,33(2):90?92.

[6] 南希,龚龙庆,田卫,等.基于FPGA的动态可重构系统设计与实现[J].现代电子技术,2009,32(6):4?7.

模块 总线 文章