楊 冬 陳 君 李慶洪
?
基于以太網(wǎng)接口的FPGA遠(yuǎn)程在線升級(jí)實(shí)現(xiàn)
楊 冬 陳 君 李慶洪
中國(guó)電子科技集團(tuán)公司第二十六研究所,重慶 400060
從實(shí)際工程應(yīng)用出發(fā),提出了一種基于SRAM結(jié)構(gòu)的FPGA遠(yuǎn)程在線升級(jí)技術(shù)。利用以太網(wǎng)接口實(shí)現(xiàn)FPGA配置程序的遠(yuǎn)程傳輸,再利用FPGA將接收到的配置程序燒寫于外置FLASH內(nèi),從而實(shí)現(xiàn)FPGA的不斷電遠(yuǎn)程在線升級(jí)。
FPGA;在線升級(jí);以太網(wǎng)
基于FPGA的嵌入式系統(tǒng)在工業(yè)控制、消費(fèi)電子和軍事裝備等領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。目前,主流FPGA大多采用SRAM工藝制造,因此采用此工藝的FPGA是易失的,F(xiàn)PGA掉電后數(shù)據(jù)將會(huì)全部丟失。因此需要外置FLASH保存FPGA配置數(shù)據(jù)[1]。FPGA每次上電后必須重新配置才能正常工作。外置的FLASH恰好為FPGA的在線升級(jí)提供了設(shè)備基礎(chǔ),如果需要遠(yuǎn)程在線更新FPGA的程序時(shí),只需要利用FPGA外圍的接口接收目標(biāo)配置文件,再將新的配置文件燒錄至外部FLASH即可實(shí)現(xiàn)FPGA的功能更新。本文以實(shí)際工程應(yīng)用為背景,使用以太網(wǎng)傳輸目標(biāo)配置文件,實(shí)現(xiàn)某公司內(nèi)部廣泛分布于600畝范圍內(nèi)的40多個(gè)視頻監(jiān)控設(shè)備內(nèi)部的Xilinx公司SPARTAN-6系列FPGA的在線升級(jí)。
本工程中FPGA采用SPI的配置方式,F(xiàn)PGA上電主動(dòng)從外置的FLASH中讀取目標(biāo)程序,程序加載配置完成后運(yùn)行。當(dāng)需要更新FPGA的目標(biāo)程序時(shí),目前的常用方法是將FPGA設(shè)備開蓋,通過(guò)專用 JTAG口在Xilinx公司提供的專用開發(fā)環(huán)境下,使用IMPACT工具完成目標(biāo)程序燒寫,整個(gè)工作流程繁瑣復(fù)雜。當(dāng)設(shè)備處于狹小空間或遠(yuǎn)程時(shí),再使用上述的方法進(jìn)行程序更新則會(huì)變得極其困難。如圖1所示,本方法中首先在PC電腦上將新的目標(biāo)配置文件進(jìn)行編輯和生成,生成完后利用以太網(wǎng)為傳輸鏈路,在視頻監(jiān)控設(shè)備中以太網(wǎng)接口與FPGA相連,配置文件通過(guò)以太網(wǎng)傳輸至監(jiān)控設(shè)備后由FPGA進(jìn)行簡(jiǎn)析,簡(jiǎn)析完成后再將數(shù)據(jù)經(jīng)由SPI方式發(fā)送至外部的FLASH。采用此方案進(jìn)行在線更新可以實(shí)現(xiàn)設(shè)備的不斷電工作,并且更新過(guò)程中不需要進(jìn)行任何拆卸工作。

圖1 以太網(wǎng)在線升級(jí)總體方案圖
Xilinx公司的SRAM型FPGA支持第三方SPI配置的目標(biāo)程序?yàn)镸CS格式[2]。當(dāng)需要在線更新FPGA程序時(shí),上位機(jī)通過(guò)以太網(wǎng)線向視頻監(jiān)控設(shè)備發(fā)送程序更新命令。如圖2所示,指令由FPGA接收解析后FPGA立即對(duì)外部FLASH進(jìn)行擦除操作,當(dāng)FLASH的擦除工作完成后反饋給上位機(jī);上位機(jī)收到FPGA的反饋信息后,將待更新的目標(biāo)程序以字節(jié)為單位通過(guò)打包后發(fā)送至FPGA,F(xiàn)PGA解析收到的數(shù)據(jù)后再次進(jìn)行數(shù)據(jù)校驗(yàn),當(dāng)校驗(yàn)通過(guò)后表示此字節(jié)正確,再將收到的字節(jié)寫入外部FLASH,直到目標(biāo)程序的所有字節(jié)傳輸并寫入完畢;當(dāng)FPGA完成所有數(shù)據(jù)完成以后,再次進(jìn)行校驗(yàn)工作,從FLASH中讀取剛才寫入的數(shù)據(jù),將讀取出的數(shù)據(jù)回傳至上位機(jī),上位機(jī)將收到的數(shù)據(jù)與之前的MCS文件進(jìn)行對(duì)比:如果校驗(yàn)正確則表示寫FLASH的程序正確,反之則有錯(cuò)誤,則需要再次進(jìn)行配置。當(dāng)FPGA完成了外部FLASH的重新配置以后還需要進(jìn)行重新加載才能讓剛配置的目標(biāo)文件生效,此時(shí)需要給FPGA的PROG_B管腳一個(gè)低脈沖,重新觸發(fā)FPGA再次進(jìn)行程序加載,此時(shí)整個(gè)程序在線更新過(guò)程完成[3]。

圖2 遠(yuǎn)程在線更新數(shù)據(jù)處理流程圖
以Xilinx公司SPARTAN-6系列FPGA為載體,采用HALO千兆以太網(wǎng)接口搭建遠(yuǎn)程在線升級(jí)驗(yàn)證平臺(tái)。具體實(shí)物圖如圖3所示:
本文所述的基于以太網(wǎng)的FPGA在線升級(jí)技術(shù)解決了嵌入式系統(tǒng)內(nèi)FPGA遠(yuǎn)程在線更新的問題。該方法非常適合封閉、不易拆卸和遠(yuǎn)程目標(biāo)的在線升級(jí),本方法簡(jiǎn)便實(shí)用,具有良好的工程實(shí)用前景。目前該方法已經(jīng)成功應(yīng)用于某監(jiān)控設(shè)備的在線更新系統(tǒng)中,具有較高的推廣價(jià)值。
[1]王靈芝,林培杰,黃春暉.FPGA的配置及其接口電路的設(shè)計(jì)[J].電子測(cè)量與儀器學(xué)報(bào),2007,21(2):109-l12.
[2]Xilinx.PROMGen-Description of PROM/EEPROM file formats:MCS[Z].2012.
[3]Spartan-6 FPGA Configuration User Guide[S]. UG380(V2.5)January 23,2013.
The remote online upgrade of the FPGA based on Ethernet interface
Yang Dong Chen Jun Li Qinghong
26thInstitute of China electronics technology group,Chongqing 400060
Based on the practical engineering application, this paper proposes a FPGA based on the structure of SRAM remote online upgrade technology. Using FPGA to realize the Ethernet interface configuration program of remote transmission,using FPGA will receive the configuration program written in the external FLASH burning,so as to realize the continuous electric remote online upgrade of FPGA.
FPGA;Online upgrade;Ethernet
TN791;TP273
A
1009-6434(2017)01-0141-02