劉飛
(中國電子科技集團第29所,四川成都,611731)
大多數電子系統到研制末期,都要經歷漫長的外場試驗、性能評估等環節。典型的是航空、軍工領域。在整個過程中經常涉及到設備的升級,尤其是軟件升級尤其多。
在航空設備中,如果升級方式在系統設計之初沒有經過特殊的考慮,就可能面臨需要在復雜的機載設備中去拆卸需要升級的設備,機體空間狹小,操作及其困難。加上航空設備對安全要求很高,拆卸設備管理手續復雜,導致軟件升級更新工作量巨大,耗時漫長。影響客戶對研制方評價,這些因素綜合起來就觸發OTA(Over-the-AirTechnology)升級方式的提出。其核心訴求就是需要一種方便高效的升級方式。
在目前的電子系統設計中,大多數的處理都以FPGA為核心,經常是單個模塊設計自己的加載(更新)軟件端口,這種加載口設計在各個模塊上,升級軟件時需要連接仿真器(下載軟件工具)到各個模塊,然后用電腦逐片把軟件燒寫入FPGA的加載prom( flash)中。傳統的加載接口如圖1所示樣式。

圖1 傳統的軟件加載(升級)口設計
這種加載設計的弊端在如下幾個方面:
⑴加載時間長,以Xinlinx公司Virtex6這種中大規模的FPGA芯片為例,加載每一片Prom文件燒寫時間大約需要30分鐘,如果一個功能模塊有3-4片。總共升級時間需要接近2個小時。如果需要升級多個功能模塊的話,經常升級時間實際按天計算。無疑這種時間在爭分奪秒的外場試驗階段,工作是非常被動的。
⑵操作不方便,這種加載口留在各個功能模塊面板上或印制板上,在設備裝機之后,有些面板難以觸及。需要復雜的拆卸才能觸及到加載接口,無法快速升級軟件。
⑶導致接口不統一,各個模塊采用各個模塊的加載口設計風格,有單排線、雙排線、自定義加載線順序的。升級維護就需要帶多種轉接線、加載頭。升級維護執行起來非常困難。
如上諸多弊端共同影響下,外場升級工作時間長、操作性差、設備升級麻煩。為了提高設備的維護性,結合FPGA芯片設計的加載方式,我們提出新一種新的升級設計方式。
為了滿足整個電子系統的快速升級,我們將系統的全部軟件集中放置到“軟件數據載板”上,留一個統一的升級接口(網口),再將網口連接到容易觸及的地方。以方便升級連接使用。設計的軟件加載結構示意如圖2所示。

圖2 系統加載示意
從圖2中可以看到我們的設計思路如下:
⑴為了便于升級維護設計了一個專門的軟件數據載板,存放全系統所有的軟件數據。
⑵設計了統一的維護接口,在單片機和FPGA的配合下。網口可以完成對軟件數據載板上所有的Prom的訪問更新。
在系統正常工作時,“軟件數據載板”上的FPGA使用主動加載技術,從FPGA旁邊的PROM中加載需要的軟件,如圖所示的XC2VP40芯片。在這個FPGA加載正常工作后,當FPGA檢測到系統不是處于復位并且功能模塊正常加電的情況下,同時讀取旁邊PROM芯片1~N中的數據,通過母板給每一個需要加載的功能模塊加載軟件。這里需要用到FPGA的從加載(Slave)技術。
在系統維護時,用外部電腦連接網口,在單片機和FPGA(圖中的XC2VP40)的配合下,給軟件數據載板上的PROM1~N更新軟件。這里需要單片機和維護電腦之間有軟件協議進行通信。包括通信文件格式,數據地址的約定等。
在這個設計中,最核心的部分是,由于各個PROM中的數據要更新,需要一片FPGA做時序控制,那么各個PROM對應的功能模塊如果采用主動加載模式,勢必造成加載時序不受控制,更新端網口不好設計。怎么保證“軟件數據載板”上的FPGA把放在PROM1~N中的數據加載到各個功能模塊1~N中去,并且要正常運行,還要兼顧升級一端對PROM的軟件更新操作。這里必須所有的時序要在“軟件數據載板”上的FPGA的控制協調下進行。各個功能模塊不能各自控制自己的加載時序。
這里必須要使用FPGA的“從加載模式”(Slave Mode)來實現,“從加載模式”又分為串行模式和并行模式。這兩種模式互有優劣,可以取長補短使用。
FPGA加載模式較多,根據FPGA是否能夠主動加載配置數據,可以分為主(Master mode)加載模式、從加載(Slave mode)模式、JTAG模式。其中主模式是指由被配置的FPGA自己產生加載時鐘和時序信號,從外部PROM(或 flash)中讀取配置流數據,如:軟件數據載板上的XC2VP40就采用主動加載模式。從模式為加電后由外部的智能處理器(如另外的FPGA、處理器或DSP等智能器件)產生加載時鐘和時序把配置數據加載給FPGA,FPGA在加載過程中是被動的,這個時候軟件數據存儲非常靈活,可以是在硬盤上、PROM中、甚至是在其他軟件的軟件代碼中。從加載模式應用非常靈活。JTAG模式主要用于調試過程中,可以將計算機中的BIT文件通過JTAG仿真器下載到FPGA中,斷電及丟失,可以提高調試效率。
FPGA的加載模式可以通過配置管腳M2、M1、M0的上下拉來選擇,FPGA種類和型號較多,配置時序間略有差異,這里以XC2VP40和XC4VFX60為例進行圖例介紹。
從串行模式加載示意如圖3所示,等待配置的為器件XC4VFX60,生成配置時序的FPGA型號為XC2VP40。

圖3 FPGA從串行模式配置示意圖
要對XC4VFX60進行從串行配置,要將從(Slave)模式的模式選擇M2、M1、M0設置為“111”(不同型號的FPGA有差異),硬件上XC4VFX60對應的CCLK、Din、PROG_B,INIT_B,DONE管腳連接到控制加載芯片(圖中為XC2VP40)的可編程的IO管腳上。將對應信號CCLK,PROG_B,INIT_B,DONE進行上下拉處理(如圖3)。其中CCLK有些需要上拉100Ω,也需要下拉100Ω,其余信號均需要4.7k上拉,以幫助在時序作用時,建立穩定確定的時序。
從串行模式配置時序可參看文獻3中相應的章節.大致可描述為XC2VP40給XC4VFX60器件PROG_B一個脈寬大于300ns的負脈沖信號啟動配置,在啟動配置后,INIT_B信號隨之變低,當PROG_B的信號拉高后,開始檢測INIT_B是否變高,當檢測到INIT_B變高說明XC4VFX60已經做好加載準備,開始接收DIN管腳上的數據信號,這個數據信號和CCLK同步。DIN數據就是配置的串行數據,當數據全部正確接收完成后,DONE信號變高,這個時候CCLK多保持幾個時鐘周期,保證配置時序正確停止。整個配置過程需要比配置文件BIT長度更多的時鐘周期。
這種串行模式只需要1根數據線(DIN)+ 4根控制線(CCLK,PROG_B,INIT_B,DONE),共5根硬件連接線,硬件連接非常簡潔,但是加載速度不快,比較適合容量不大的FPGA或者是連接線數量很緊張的情況。例如射頻模塊、射頻放大器中的控制類FPGA。
對于目標FPGA容量較大的,采用串行模式加載有時候不能滿足快速啟動要求,需要采用并行加載模式,主要區別在于,并行加載模式加載線為8位,理論上速度是串行加載速度的8倍。
FPGA的從并行在線配置連接示意圖如圖4所示。

圖4 FPGA從并行模式配置示意圖
從加載芯片XC4VFX60必須正確連接M2、M1、M0三個配置模式管腳為“110”,硬件上正確連接CCLK、PROG_B、DIN[7:0]、CS_B、RDWR_B、INIT_B、DONE、BUSY等信號,在控制芯片XC2VP40一側的FPGA上,這些信號要連接到可編程的IO端口,控制側FPGA(XC2VP40)需要編程產生XC4VFX60從模式需要的加載時序,其中INIT_B、CCLK、PROG_B、DONE等信號要進行相應的上下拉處理(如圖4)。其中CCLK有些需要上拉100Ω,也需要下拉100Ω,其余信號均需要4.7k上拉,以幫助在時序作用時,建立穩定的時序。
從并行模式配置時序可參考文獻3中相應的章節。大致可以描述如下XC2VP40通過PROG_B給CX4VFX60一個脈寬大于300ns的負脈沖啟動配置,在PROG_B信號變低后,INIT_B信號隨之變低,當檢測到INIT_B信號變高后,表明XC4VFX60已經做好準備,CS_B相應的置低可以使能并行數據總線,這時開始接收D[7:0]傳送的和CCLK同步的并行配置數據。若數據全部正確接收后,DONE信號變高,軟件正常運行。若INIT_B變低說明配置出錯,需要重新配置。
其中需要注意的是,和串行模式不同。在并行模式中,需要對加載BIT文件進行位翻轉。這就意味著,XC2VP40需要在將加載數據進行位翻轉后在傳給XC4VFX60。這里并行配置數據是配置文件按照字節進行位翻轉后的。整個過程可以始終保持CCLK時鐘。
從并行加載方式,需要8根數據線(D[7:0])+7根控制線(CCLK、PROG_B、CS_B、RDWR_B、INIT_B、DONE、BUSY)來實現,其中圖4中未畫出BUSY連接,共需要15根硬件連線。雖然要較多的連接線,但是實際的數據加載線為8根,理論上加載速度為串行加載速度的8倍。適合大容量的FPGA或者對加載速度有較高要求的場景。例如常用的信號處理類功能模塊。
針對從加載串行模式和并行模式,兩者互有優缺點,在實際工程中需要靈活處理,既能合理利用資源又能滿足工程實際需要。
串行模式優點是需要的硬件連接線較少,加載時不需要做格式轉換,所以在加載控制電路上較容易實現。其劣勢是加載速度相對較慢,不適合對加載速度有高要求的地方。
并行加載模式優點是加載速度較快,適合對加載速度有要求,或者是FPGA容量較大的場合。劣勢是需要使用較多的硬件線連接,時序相比串行要復雜;加載時需要對文件進行格式轉換,實現電路(軟件)比較復雜。
需要在實際工程上兩者結合互補長短才能發揮各自優勢。
設計電子系統的外場試驗越來越多,售后服務壓力越來越大、升級更新的頻率越來越高。傳統的升級設計在目前的情形下再也難以滿足需求變化。在實際升級需求的倒逼之下,本人覺得改變傳統的升級方式也日益迫切。在這里提出這種以FPGA從加載模式為基礎的OTA升級設計思路。供業內的人士共同探討。機載、軍工設備的OTA升級設計,由于設備安全等原因,肯定不能像汽車、手機等智能設備一樣可以通過遠程的互聯網絡來實現。但是在強烈的外場需求倒逼之下,可以借鑒一些先進的設計思路,采取一些折中的辦法,既保證設備的安全,也兼顧升級維護的便利性,讓外場設備的更新升級變得更容易一些。設備的維護性、保障性變得更好一些。