劉飛
(中國(guó)電子科技集團(tuán)第29所,四川成都,611731)
大多數(shù)電子系統(tǒng)到研制末期,都要經(jīng)歷漫長(zhǎng)的外場(chǎng)試驗(yàn)、性能評(píng)估等環(huán)節(jié)。典型的是航空、軍工領(lǐng)域。在整個(gè)過(guò)程中經(jīng)常涉及到設(shè)備的升級(jí),尤其是軟件升級(jí)尤其多。
在航空設(shè)備中,如果升級(jí)方式在系統(tǒng)設(shè)計(jì)之初沒(méi)有經(jīng)過(guò)特殊的考慮,就可能面臨需要在復(fù)雜的機(jī)載設(shè)備中去拆卸需要升級(jí)的設(shè)備,機(jī)體空間狹小,操作及其困難。加上航空設(shè)備對(duì)安全要求很高,拆卸設(shè)備管理手續(xù)復(fù)雜,導(dǎo)致軟件升級(jí)更新工作量巨大,耗時(shí)漫長(zhǎng)。影響客戶對(duì)研制方評(píng)價(jià),這些因素綜合起來(lái)就觸發(fā)OTA(Over-the-AirTechnology)升級(jí)方式的提出。其核心訴求就是需要一種方便高效的升級(jí)方式。
在目前的電子系統(tǒng)設(shè)計(jì)中,大多數(shù)的處理都以FPGA為核心,經(jīng)常是單個(gè)模塊設(shè)計(jì)自己的加載(更新)軟件端口,這種加載口設(shè)計(jì)在各個(gè)模塊上,升級(jí)軟件時(shí)需要連接仿真器(下載軟件工具)到各個(gè)模塊,然后用電腦逐片把軟件燒寫入FPGA的加載prom( flash)中。傳統(tǒng)的加載接口如圖1所示樣式。
圖1 傳統(tǒng)的軟件加載(升級(jí))口設(shè)計(jì)
這種加載設(shè)計(jì)的弊端在如下幾個(gè)方面:
⑴加載時(shí)間長(zhǎng),以Xinlinx公司Virtex6這種中大規(guī)模的FPGA芯片為例,加載每一片Prom文件燒寫時(shí)間大約需要30分鐘,如果一個(gè)功能模塊有3-4片。總共升級(jí)時(shí)間需要接近2個(gè)小時(shí)。如果需要升級(jí)多個(gè)功能模塊的話,經(jīng)常升級(jí)時(shí)間實(shí)際按天計(jì)算。無(wú)疑這種時(shí)間在爭(zhēng)分奪秒的外場(chǎng)試驗(yàn)階段,工作是非常被動(dòng)的。
⑵操作不方便,這種加載口留在各個(gè)功能模塊面板上或印制板上,在設(shè)備裝機(jī)之后,有些面板難以觸及。需要復(fù)雜的拆卸才能觸及到加載接口,無(wú)法快速升級(jí)軟件。
⑶導(dǎo)致接口不統(tǒng)一,各個(gè)模塊采用各個(gè)模塊的加載口設(shè)計(jì)風(fēng)格,有單排線、雙排線、自定義加載線順序的。升級(jí)維護(hù)就需要帶多種轉(zhuǎn)接線、加載頭。升級(jí)維護(hù)執(zhí)行起來(lái)非常困難。
如上諸多弊端共同影響下,外場(chǎng)升級(jí)工作時(shí)間長(zhǎng)、操作性差、設(shè)備升級(jí)麻煩。為了提高設(shè)備的維護(hù)性,結(jié)合FPGA芯片設(shè)計(jì)的加載方式,我們提出新一種新的升級(jí)設(shè)計(jì)方式。
為了滿足整個(gè)電子系統(tǒng)的快速升級(jí),我們將系統(tǒng)的全部軟件集中放置到“軟件數(shù)據(jù)載板”上,留一個(gè)統(tǒng)一的升級(jí)接口(網(wǎng)口),再將網(wǎng)口連接到容易觸及的地方。以方便升級(jí)連接使用。設(shè)計(jì)的軟件加載結(jié)構(gòu)示意如圖2所示。
圖2 系統(tǒng)加載示意
從圖2中可以看到我們的設(shè)計(jì)思路如下:
⑴為了便于升級(jí)維護(hù)設(shè)計(jì)了一個(gè)專門的軟件數(shù)據(jù)載板,存放全系統(tǒng)所有的軟件數(shù)據(jù)。
⑵設(shè)計(jì)了統(tǒng)一的維護(hù)接口,在單片機(jī)和FPGA的配合下。網(wǎng)口可以完成對(duì)軟件數(shù)據(jù)載板上所有的Prom的訪問(wèn)更新。
在系統(tǒng)正常工作時(shí),“軟件數(shù)據(jù)載板”上的FPGA使用主動(dòng)加載技術(shù),從FPGA旁邊的PROM中加載需要的軟件,如圖所示的XC2VP40芯片。在這個(gè)FPGA加載正常工作后,當(dāng)FPGA檢測(cè)到系統(tǒng)不是處于復(fù)位并且功能模塊正常加電的情況下,同時(shí)讀取旁邊PROM芯片1~N中的數(shù)據(jù),通過(guò)母板給每一個(gè)需要加載的功能模塊加載軟件。這里需要用到FPGA的從加載(Slave)技術(shù)。
在系統(tǒng)維護(hù)時(shí),用外部電腦連接網(wǎng)口,在單片機(jī)和FPGA(圖中的XC2VP40)的配合下,給軟件數(shù)據(jù)載板上的PROM1~N更新軟件。這里需要單片機(jī)和維護(hù)電腦之間有軟件協(xié)議進(jìn)行通信。包括通信文件格式,數(shù)據(jù)地址的約定等。
在這個(gè)設(shè)計(jì)中,最核心的部分是,由于各個(gè)PROM中的數(shù)據(jù)要更新,需要一片F(xiàn)PGA做時(shí)序控制,那么各個(gè)PROM對(duì)應(yīng)的功能模塊如果采用主動(dòng)加載模式,勢(shì)必造成加載時(shí)序不受控制,更新端網(wǎng)口不好設(shè)計(jì)。怎么保證“軟件數(shù)據(jù)載板”上的FPGA把放在PROM1~N中的數(shù)據(jù)加載到各個(gè)功能模塊1~N中去,并且要正常運(yùn)行,還要兼顧升級(jí)一端對(duì)PROM的軟件更新操作。這里必須所有的時(shí)序要在“軟件數(shù)據(jù)載板”上的FPGA的控制協(xié)調(diào)下進(jìn)行。各個(gè)功能模塊不能各自控制自己的加載時(shí)序。
這里必須要使用FPGA的“從加載模式”(Slave Mode)來(lái)實(shí)現(xiàn),“從加載模式”又分為串行模式和并行模式。這兩種模式互有優(yōu)劣,可以取長(zhǎng)補(bǔ)短使用。
FPGA加載模式較多,根據(jù)FPGA是否能夠主動(dòng)加載配置數(shù)據(jù),可以分為主(Master mode)加載模式、從加載(Slave mode)模式、JTAG模式。其中主模式是指由被配置的FPGA自己產(chǎn)生加載時(shí)鐘和時(shí)序信號(hào),從外部PROM(或 flash)中讀取配置流數(shù)據(jù),如:軟件數(shù)據(jù)載板上的XC2VP40就采用主動(dòng)加載模式。從模式為加電后由外部的智能處理器(如另外的FPGA、處理器或DSP等智能器件)產(chǎn)生加載時(shí)鐘和時(shí)序把配置數(shù)據(jù)加載給FPGA,F(xiàn)PGA在加載過(guò)程中是被動(dòng)的,這個(gè)時(shí)候軟件數(shù)據(jù)存儲(chǔ)非常靈活,可以是在硬盤上、PROM中、甚至是在其他軟件的軟件代碼中。從加載模式應(yīng)用非常靈活。JTAG模式主要用于調(diào)試過(guò)程中,可以將計(jì)算機(jī)中的BIT文件通過(guò)JTAG仿真器下載到FPGA中,斷電及丟失,可以提高調(diào)試效率。
FPGA的加載模式可以通過(guò)配置管腳M2、M1、M0的上下拉來(lái)選擇,F(xiàn)PGA種類和型號(hào)較多,配置時(shí)序間略有差異,這里以XC2VP40和XC4VFX60為例進(jìn)行圖例介紹。
從串行模式加載示意如圖3所示,等待配置的為器件XC4VFX60,生成配置時(shí)序的FPGA型號(hào)為XC2VP40。
圖3 FPGA從串行模式配置示意圖
要對(duì)XC4VFX60進(jìn)行從串行配置,要將從(Slave)模式的模式選擇M2、M1、M0設(shè)置為“111”(不同型號(hào)的FPGA有差異),硬件上XC4VFX60對(duì)應(yīng)的CCLK、Din、PROG_B,INIT_B,DONE管腳連接到控制加載芯片(圖中為XC2VP40)的可編程的IO管腳上。將對(duì)應(yīng)信號(hào)CCLK,PROG_B,INIT_B,DONE進(jìn)行上下拉處理(如圖3)。其中CCLK有些需要上拉100Ω,也需要下拉100Ω,其余信號(hào)均需要4.7k上拉,以幫助在時(shí)序作用時(shí),建立穩(wěn)定確定的時(shí)序。
從串行模式配置時(shí)序可參看文獻(xiàn)3中相應(yīng)的章節(jié).大致可描述為XC2VP40給XC4VFX60器件PROG_B一個(gè)脈寬大于300ns的負(fù)脈沖信號(hào)啟動(dòng)配置,在啟動(dòng)配置后,INIT_B信號(hào)隨之變低,當(dāng)PROG_B的信號(hào)拉高后,開始檢測(cè)INIT_B是否變高,當(dāng)檢測(cè)到INIT_B變高說(shuō)明XC4VFX60已經(jīng)做好加載準(zhǔn)備,開始接收DIN管腳上的數(shù)據(jù)信號(hào),這個(gè)數(shù)據(jù)信號(hào)和CCLK同步。DIN數(shù)據(jù)就是配置的串行數(shù)據(jù),當(dāng)數(shù)據(jù)全部正確接收完成后,DONE信號(hào)變高,這個(gè)時(shí)候CCLK多保持幾個(gè)時(shí)鐘周期,保證配置時(shí)序正確停止。整個(gè)配置過(guò)程需要比配置文件BIT長(zhǎng)度更多的時(shí)鐘周期。
這種串行模式只需要1根數(shù)據(jù)線(DIN)+ 4根控制線(CCLK,PROG_B,INIT_B,DONE),共5根硬件連接線,硬件連接非常簡(jiǎn)潔,但是加載速度不快,比較適合容量不大的FPGA或者是連接線數(shù)量很緊張的情況。例如射頻模塊、射頻放大器中的控制類FPGA。
對(duì)于目標(biāo)FPGA容量較大的,采用串行模式加載有時(shí)候不能滿足快速啟動(dòng)要求,需要采用并行加載模式,主要區(qū)別在于,并行加載模式加載線為8位,理論上速度是串行加載速度的8倍。
FPGA的從并行在線配置連接示意圖如圖4所示。
圖4 FPGA從并行模式配置示意圖
從加載芯片XC4VFX60必須正確連接M2、M1、M0三個(gè)配置模式管腳為“110”,硬件上正確連接CCLK、PROG_B、DIN[7:0]、CS_B、RDWR_B、INIT_B、DONE、BUSY等信號(hào),在控制芯片XC2VP40一側(cè)的FPGA上,這些信號(hào)要連接到可編程的IO端口,控制側(cè)FPGA(XC2VP40)需要編程產(chǎn)生XC4VFX60從模式需要的加載時(shí)序,其中INIT_B、CCLK、PROG_B、DONE等信號(hào)要進(jìn)行相應(yīng)的上下拉處理(如圖4)。其中CCLK有些需要上拉100Ω,也需要下拉100Ω,其余信號(hào)均需要4.7k上拉,以幫助在時(shí)序作用時(shí),建立穩(wěn)定的時(shí)序。
從并行模式配置時(shí)序可參考文獻(xiàn)3中相應(yīng)的章節(jié)。大致可以描述如下XC2VP40通過(guò)PROG_B給CX4VFX60一個(gè)脈寬大于300ns的負(fù)脈沖啟動(dòng)配置,在PROG_B信號(hào)變低后,INIT_B信號(hào)隨之變低,當(dāng)檢測(cè)到INIT_B信號(hào)變高后,表明XC4VFX60已經(jīng)做好準(zhǔn)備,CS_B相應(yīng)的置低可以使能并行數(shù)據(jù)總線,這時(shí)開始接收D[7:0]傳送的和CCLK同步的并行配置數(shù)據(jù)。若數(shù)據(jù)全部正確接收后,DONE信號(hào)變高,軟件正常運(yùn)行。若INIT_B變低說(shuō)明配置出錯(cuò),需要重新配置。
其中需要注意的是,和串行模式不同。在并行模式中,需要對(duì)加載BIT文件進(jìn)行位翻轉(zhuǎn)。這就意味著,XC2VP40需要在將加載數(shù)據(jù)進(jìn)行位翻轉(zhuǎn)后在傳給XC4VFX60。這里并行配置數(shù)據(jù)是配置文件按照字節(jié)進(jìn)行位翻轉(zhuǎn)后的。整個(gè)過(guò)程可以始終保持CCLK時(shí)鐘。
從并行加載方式,需要8根數(shù)據(jù)線(D[7:0])+7根控制線(CCLK、PROG_B、CS_B、RDWR_B、INIT_B、DONE、BUSY)來(lái)實(shí)現(xiàn),其中圖4中未畫出BUSY連接,共需要15根硬件連線。雖然要較多的連接線,但是實(shí)際的數(shù)據(jù)加載線為8根,理論上加載速度為串行加載速度的8倍。適合大容量的FPGA或者對(duì)加載速度有較高要求的場(chǎng)景。例如常用的信號(hào)處理類功能模塊。
針對(duì)從加載串行模式和并行模式,兩者互有優(yōu)缺點(diǎn),在實(shí)際工程中需要靈活處理,既能合理利用資源又能滿足工程實(shí)際需要。
串行模式優(yōu)點(diǎn)是需要的硬件連接線較少,加載時(shí)不需要做格式轉(zhuǎn)換,所以在加載控制電路上較容易實(shí)現(xiàn)。其劣勢(shì)是加載速度相對(duì)較慢,不適合對(duì)加載速度有高要求的地方。
并行加載模式優(yōu)點(diǎn)是加載速度較快,適合對(duì)加載速度有要求,或者是FPGA容量較大的場(chǎng)合。劣勢(shì)是需要使用較多的硬件線連接,時(shí)序相比串行要復(fù)雜;加載時(shí)需要對(duì)文件進(jìn)行格式轉(zhuǎn)換,實(shí)現(xiàn)電路(軟件)比較復(fù)雜。
需要在實(shí)際工程上兩者結(jié)合互補(bǔ)長(zhǎng)短才能發(fā)揮各自優(yōu)勢(shì)。
設(shè)計(jì)電子系統(tǒng)的外場(chǎng)試驗(yàn)越來(lái)越多,售后服務(wù)壓力越來(lái)越大、升級(jí)更新的頻率越來(lái)越高。傳統(tǒng)的升級(jí)設(shè)計(jì)在目前的情形下再也難以滿足需求變化。在實(shí)際升級(jí)需求的倒逼之下,本人覺(jué)得改變傳統(tǒng)的升級(jí)方式也日益迫切。在這里提出這種以FPGA從加載模式為基礎(chǔ)的OTA升級(jí)設(shè)計(jì)思路。供業(yè)內(nèi)的人士共同探討。機(jī)載、軍工設(shè)備的OTA升級(jí)設(shè)計(jì),由于設(shè)備安全等原因,肯定不能像汽車、手機(jī)等智能設(shè)備一樣可以通過(guò)遠(yuǎn)程的互聯(lián)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。但是在強(qiáng)烈的外場(chǎng)需求倒逼之下,可以借鑒一些先進(jìn)的設(shè)計(jì)思路,采取一些折中的辦法,既保證設(shè)備的安全,也兼顧升級(jí)維護(hù)的便利性,讓外場(chǎng)設(shè)備的更新升級(jí)變得更容易一些。設(shè)備的維護(hù)性、保障性變得更好一些。