蔣欣等
摘 要: 現(xiàn)場可編程邏輯門陣列(FPGA)在機載設備、通信設備等眾多領域廣泛應用,但是基于本地開發(fā)環(huán)境的JTAG接口更新FPGA配置數(shù)據(jù)已經(jīng)難以滿足相關工程的需求。在此介紹基于FC總線協(xié)議和FTP協(xié)議的FPGA配置方法,該方法既能夠滿足機載航電設備的現(xiàn)場可更換模塊(LRM)中的FPGA動態(tài)遠程更新,又能支持調(diào)試測試的靜態(tài)本地配置,使得FPGA的調(diào)試和升級更加通用化、智能化。
關鍵詞: FC總線; FTP; 機載航電設備; 現(xiàn)場可更換模塊; 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 引 言
為了滿足高度綜合化機架間和機架內(nèi)現(xiàn)場可更換模塊(以下簡稱:LRM模塊)之間大容量數(shù)據(jù)通信、高速與低速總線之間數(shù)據(jù)交互通信需求,高度綜合化的總線技術硬件平臺越來越普遍使用,并且隨著FPGA規(guī)模和性能的不斷提高,使得FPGA在綜合化的航空電子領域內(nèi)有廣泛的應用。但是FPGA具有掉電易失特性,需要在每次上電之后對它進行重新配置。隨著FPGA的規(guī)模越來越大,F(xiàn)PGA的功能越來越豐富,F(xiàn)PGA的配置文件的容量也越來越大,這對于配置電路的吞吐率、抗干擾能力都提出了較高的要求。高度集成化航空電子設備中的每個LRM模塊都具有FPGA,需要在不同時刻實現(xiàn)不同的功能,配置電路既能支持FPGA的在線動態(tài)配置,又能支持FPGA的本地調(diào)試。
而傳統(tǒng)的FPGA配置方法靈活性差,即LRM模塊升級時都必須重新連接下載電纜對存儲器件進行燒寫。為此,本文提出了一種基于FC總線和以太網(wǎng)FTP協(xié)議的通用化FPGA配置方法,利用高度集成化的航空電子設備的通用高速總線(FC總線和以太網(wǎng)調(diào)試總線)實現(xiàn)了各個LRM模塊中的FPGA配置數(shù)據(jù)升級。
1 系統(tǒng)設計
1.1 設計指導思想
隨著航空電子的綜合化程度越來越高,LRM模塊功能的也越來越集成,超大規(guī)模的FPGA和SoC被頻繁使用,但是體積小、重量輕、功耗低的要求也隨之增高。為了滿足各個LRM模塊的FPGA配置文件的批量、快速升級,筆者羅列出以下硬件設計指導思想:
(1) 利用航空電子的通用總線,不增加系統(tǒng)的負荷;
(2) 提供硬件電路的靈活性、可擴充特性;
(3) 在設計避免復雜的總線仲裁、沖突結(jié)構(gòu),盡量將各總線分開,簡化設計,提高升級電路的可靠性;
(4) 硬件設計綜合化、通用化、智能化。
1.2 主要總線選擇情況
1.2.1 動態(tài)遠程配置FPGA的總線選擇
綜合化航電設備都具有高帶寬、低延時和低誤碼率的高速串行通信協(xié)議的光纖通道(Fibre Channel,F(xiàn)C總線),通常的FC總線都是該航電設備的外部總線,因此選擇FC總線作為機架內(nèi)各個LRM模塊模塊的FPGA遠程升級的途徑。本文方案中的FC總線選擇了采用多模光纖傳輸、光波長為850 nm、光纖芯徑為62.5 μm/125 μm的光數(shù)轉(zhuǎn)換芯片進行接收和發(fā)送,其傳輸速率為1.062 5~4.25 Gb/s可選,該設計中使用2.125 Gb/s速率。
1.2.2 靜態(tài)本地配置FPGA的總線選擇
綜合化航電設備都具備在線調(diào)試功能,因此利用調(diào)試途徑的以太網(wǎng),可用于各個LRM模塊模塊的FPGA本地升級。通常采用FTP協(xié)議,通過以太網(wǎng)傳輸配置文件。文件傳輸協(xié)議(FTP)是TCP/IP的一種具體應用,是網(wǎng)絡中最廣泛的服務之一。它工作在開放系統(tǒng)互連(OSI)模型的第7層,TCP模型的應用層,它是Internet文件傳送的基礎,它由一系列規(guī)格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質(zhì)對用戶透明和可靠高效地傳送數(shù)據(jù)。
1.2.3 FPGA的配置模式選擇
本方案的FPGA均采用Xilinx公司的Virtex系列,采用Virtex系列FPGA的SelectMAP模式配置模式。在SelectMAP模式下,F(xiàn)PGA接收來自外部的配置時鐘和并行數(shù)據(jù)總線進行FPGA配置文件的加載。
1.3 硬件平臺設計
1.3.1 系統(tǒng)架構(gòu)設計
既可支持FC總線遠程升級,又可支持以太網(wǎng)本地調(diào)試升級的FPGA綜合化硬件平臺,設計系統(tǒng)架構(gòu)如圖1所示。
可利用航電設備的對外接口FC總線,也可利用航電設備的對外接口以太網(wǎng),將各個LRM模塊的FPGA配置數(shù)據(jù),按照各個LRM模塊的版本控制信息有序地存放到大容量數(shù)據(jù)存儲LRM模塊中。
動態(tài)遠程配置路徑:綜合化航電設備的網(wǎng)絡交換LRM模塊的FC接口處理單元將FC總線上的各個LRM模塊的FPGA配置數(shù)據(jù)(.bit文件),在中央核心控制LRM模塊配置管理軟件的控制下,存放到大容量數(shù)據(jù)存儲LRM模塊中,再在中央核心控制LRM模塊的配置管理軟件指導下,在綜合化航電設備中,通過點對點的RapidIO網(wǎng)絡進行動態(tài)配置,有利于綜合化航電設備在不下電的情況下,進行FPGA的重配置、功能調(diào)整。
靜態(tài)本地配置路徑:該綜合化航電設備應用的是VxWorks操作系統(tǒng),這樣可以使用Tornado或是Workbench自帶的FTP服務器端程序,通過以太網(wǎng)將各個LRM模塊的FPGA配置數(shù)據(jù)(.bit文件)直接上傳到大容量數(shù)據(jù)存儲LRM模塊中,通過中央核心控制LRM模塊的配置管理軟件下載到各個LRM模塊的本地FPGA存儲器中。
1.3.2 板間總線硬件設計
本方案的板間總線硬件平臺(中央核心控制LRM)采用了當前主流且功能強大的ASIC(PPC處理器)+RapidIO交換構(gòu)架,PPC處理器主要完成數(shù)據(jù)協(xié)議解析和FPGA配置數(shù)據(jù)轉(zhuǎn)發(fā)工作。如何使FPGA和PPC之間的數(shù)據(jù)在更高帶寬和更低延時內(nèi)完成,成為該硬件平臺具有高性能設計的關鍵之處。由于需要兼容對外連接FC總線,其速率為2.125 Gb/s,根據(jù)當前高速串行總線的成熟應用情況,選擇了RapidIO總線作為各個LRM模塊間的數(shù)據(jù)總線。
RapidIO總線具有串行接口、差分傳輸、交換結(jié)構(gòu)等特點。串行傳輸可以減少引腳數(shù)目,同時將時鐘嵌入數(shù)據(jù)傳輸之中能夠避免單獨傳輸時鐘引起的時鐘的畸變,導致接收方與發(fā)送方不能同步。用差分方式可以提升硬件電路的電磁輻射特性,可支持更高的數(shù)據(jù)傳輸速率。交換結(jié)構(gòu)能將多個點到點的傳輸并行地組織到一起,總線帶寬成倍增加。其RapidIO交換式結(jié)構(gòu)網(wǎng)絡局部框圖如圖2所示。
大容量數(shù)據(jù)存儲LRM模塊存儲著的各個LRM模塊的FPGA配置數(shù)據(jù),通過中央核心控制LRM模塊的RapidIO總線控制,對各個LRM模塊的FPGA進行點對點的配置。整個綜合化航電設備的FPGA配置數(shù)據(jù)數(shù)據(jù)流,如圖3所示。
各個LRM模塊的FPGA配置數(shù)據(jù)存放完成后,中央核心控制LRM模塊啟動FPGA配置管理軟件,利用板級內(nèi)總線(RapidIO總線)從大容量數(shù)據(jù)存儲LRM模塊中將各個LRM模塊的FPGA配置數(shù)據(jù)讀出,寫入到各個LRM模塊的FPGA配置存儲器中(本地靜態(tài)配置)或者直接(遠程動態(tài)配置)配置到各個LRM模塊的FPGA中運行。
1.3.3 FPGA配置數(shù)據(jù)配置模式通用化設計
各個LRM模塊的FPGA配置控制部分,都主要由RapidIO網(wǎng)絡控制芯片、CPLD芯片和FLASH芯片構(gòu)成。CPLD連接RapidIO網(wǎng)絡控制芯片,完成FPGA配置數(shù)據(jù)在RapidIO網(wǎng)絡數(shù)據(jù)的接收和處理,以及通過SelectMAP的被動模式進行FPGA芯片的配置管理,同時CPLD外接了一片F(xiàn)LASH芯片,當中央核心控制LRM模塊動態(tài)配置軟件失效時,能夠讀取FLASH芯片中本地FPGA配置數(shù)據(jù),完成對FPGA的配置,保證各個LRM模塊能夠順利啟動,達到系統(tǒng)的穩(wěn)定運行。各個LRM模塊的通用化FPGA配置模式設計如圖4所示。
系統(tǒng)首先通過網(wǎng)絡交換LRM模塊的通用網(wǎng)絡接口(FC總線接口和以太網(wǎng)總線接口),將FPGA配置數(shù)據(jù)在中央核心控制LRM模塊的配置管理軟件指導下,按照版本控制規(guī)則,下載到大容量數(shù)據(jù)存儲LRM模塊中,再通過板間總線RapidIO網(wǎng)絡,將FPGA配置數(shù)據(jù)傳輸?shù)礁鱾€需要更新的LRM模塊的配置管理CPLD芯片中。
CPLD將FPGA配置數(shù)據(jù)再按照中央核心控制LRM模塊的配置管理軟件的要求,選擇直接存放到本地配置FLASH中,還是直接產(chǎn)生FPGA配置所需的SelectMAP模式時序,將配置數(shù)據(jù)逐步導入到FPGA中,指導FPGA運行。
FPGA動態(tài)配置是通過CPLD專用配置邏輯(SelectMAP模式)實現(xiàn)的,當FPGA接收到配置版本命令后,CPLD按照RapidIO網(wǎng)絡的總線指令,解析是動態(tài)遠程配置還是靜態(tài)本地配置:
(1) 動態(tài)遠程配置:CPLD的動態(tài)遠程配置狀態(tài)配置寄存器置標志位,CPLD等待接收下一幀RapidIO網(wǎng)絡的FPGA配置數(shù)據(jù),再進行協(xié)議解析和FPGA運行的.bit文件格式數(shù)據(jù)重組,啟動SelectMAP配置模式,配置FPGA完成后,釋放FPGA和CPLD的握手信息,同時復位FPGA的相關功能子電路,F(xiàn)PGA按照新的配置數(shù)據(jù)運行。
(2) 靜態(tài)本地配置:CPLD的靜態(tài)本地配置狀態(tài)配置寄存器置標志位,CPLD等待接收下一幀RapidIO網(wǎng)絡的FPGA配置數(shù)據(jù),再進行協(xié)議解析和FPGA運行的[.bit]文件格式數(shù)據(jù)重組,計算出配置起始地址,將.bit文件記入到本地配置FLASH中,CPLD置FPGA本地配置文件更新標志位,系統(tǒng)下電后,再上電,CPLD啟動SelectMAP配置模式,從FLASH中讀取配置數(shù)據(jù)讀取新的配置數(shù)據(jù),配置FPGA。
需要將CPLD的運行文件通過JTAG接口燒寫到CPLD中。CPLD運行文件包含3個工作模塊(RocketIO接口控制模塊、FLASH控制模塊和SelectMAP配置模塊),CPLD的連接關系與工作模式為:
(1) 通過RocketIO接口控制模塊與RapidIO網(wǎng)絡控制器進行連接,將Rapid網(wǎng)絡的數(shù)據(jù)進行搬家;
(2) 與FLASH的數(shù)據(jù)線、地址線和控制線連接,實現(xiàn)對FLASH的讀/寫、擦除等操作;
(3) 通過專用配置管腳與需要配置的FPGA相連,實現(xiàn)SelectMAP模式配置FPGA。
CPLD的功能主要由3個模塊組成:RocketIO接口控制模塊,F(xiàn)LASH控制模塊和SelectMAP配置模塊。
FPGA配置過程,主控制CPLD由Xilinx系列芯片實現(xiàn),內(nèi)部邏輯功能主要包括RocketIO總線控制和FPGA配置控制部分。進入正常工作狀態(tài)的CPLD持續(xù)監(jiān)視RapidIO網(wǎng)絡,收到FGPA配置命令時,進入接收配置數(shù)據(jù)狀態(tài),并開始配置FGPA,當數(shù)據(jù)接收完畢后,結(jié)束配置,并檢查FPGA是否配置成功,將FGPA狀態(tài)返回主控制器。
1.4 軟件控制流程
整個綜合化航電設備各個LRM模塊的FPGA配置管理都是由中央核心控制LRM模塊上運行的FPGA配置管理軟件完成,對配置管理軟件的工作模式進行了總結(jié),工作模式分為了遠程動態(tài)更新和本地靜態(tài)配置。將FPGA配置管理軟件的工作流程如圖5所示。
2 系統(tǒng)驗證
在綜合化航電系統(tǒng)平臺上,將5個不同功能的LRM模塊FPGA配置數(shù)據(jù)分別通過FC總線和以太網(wǎng)總線進行分時傳輸和同時傳輸,分別驗證該設計方案的實時性和有效性,測試結(jié)果如表1所示。
根據(jù)表1的測試數(shù)據(jù),發(fā)現(xiàn)該方法在整個系統(tǒng)不管是重新動態(tài)配置FPGA,還是靜態(tài)配置FPGA的本地存儲器,都能夠準確完成各個LRM模塊中FPGA配置,也滿足利用了綜合航電系統(tǒng)的現(xiàn)有總線FC總線和以太網(wǎng)總線,也可以利用兩種總線本身傳輸速率的不一致,避免兩種配置方式的時序沖突。
3 結(jié) 語
本文介紹了基于FC總線協(xié)議和FTP協(xié)議的通用化FPGA配置方法,實現(xiàn)了FPGA的在線配置更新功能,方便FPGA的更新,以實現(xiàn)FPGA更多的功能。本設計還有提高的余地,比如可以將RapidIO網(wǎng)絡協(xié)議實現(xiàn)也集成到CPLD中,以簡化系統(tǒng),降低成本,同時更能提高整個綜合化航電設備的可靠性。
參考文獻
[1] 丁玉美,高西全.數(shù)字信號處理[M].3版.西安:西安電子科技大學出版社,2009.
[2] 李燕斌,李燕春.用XCF32P實現(xiàn)FPGA的高速動態(tài)配置[J].電訊技術,2006(6):199?202.
[3] 陳曦,沈佐峰.一種可靠的FPGA動態(tài)配置方法及實現(xiàn)[J].通信技術,2012,45(3):105?107.
[4] 張江偉.基于Virtex?5和FLASH實現(xiàn)FPGA的多重配置[J].計算機與網(wǎng)絡,2012(3):130?132.
[5] 王元強,朱為.一種通過PCI總線配置FPGA的設計方法[J].現(xiàn)代電子技術,2010,33(2):90?92.
[6] 南希,龔龍慶,田衛(wèi),等.基于FPGA的動態(tài)可重構(gòu)系統(tǒng)設計與實現(xiàn)[J].現(xiàn)代電子技術,2009,32(6):4?7.