摘要:原始的現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)軟件開發(fā)調(diào)試基于有線聯(lián)合測試工作組(Joint Test Action Group,JTAG)模式,這對于FPGA的應(yīng)用擴展具有一定的局限性和弊端。文章提出了一種新的FPGA遠程更新策略,可通過無線模式實現(xiàn)遠程更新功能,極大地方便了FPGA的調(diào)試維護工作?;贑PU+FPGA架構(gòu)模式,文章設(shè)計了合理的數(shù)據(jù)緩存和處理機制,F(xiàn)PGA可通過IP核進行Flash中數(shù)據(jù)的讀寫更新。進一步地,文章將該策略應(yīng)用到衛(wèi)星通信系統(tǒng)中,通過衛(wèi)星信道對遠端設(shè)備進行程序更新,實現(xiàn)了真正意義上的遠程更新功能。實驗證明該方案是可行的,且該系統(tǒng)靈活、可靠,尤其在無線衛(wèi)星通信領(lǐng)域具有較高的使用價值和應(yīng)用前景。
關(guān)鍵詞:FPGA;CPU;遠程更新;衛(wèi)星通信
中圖分類號:TN911" 文獻標志碼:A
0 引言
現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)具有豐富的編程資源和靈活的運用方式,在無線通信領(lǐng)域具有非常廣泛的應(yīng)用,尤其在航空航天領(lǐng)域應(yīng)用頗多[1-2]。在越來越多的小型化系統(tǒng)和設(shè)備應(yīng)用中,使用傳統(tǒng)模式的有線聯(lián)合測試工作組(Joint Test Action Group,JTAG)有線調(diào)試工具顯得尤為復雜和困難,迫切須要設(shè)計一種更為便捷高效的FPGA遠程更新策略,進而能夠?qū)崿F(xiàn)遠程更新功能[3-7]。
受此啟發(fā),本系統(tǒng)采用CPU+FPGA的系統(tǒng)架構(gòu),提出了一種新的FPGA遠程更新策略,實現(xiàn)了通過有線網(wǎng)口對Altera公司的CycloneⅤ系列芯片的遠程更新,從而極大地方便了FPGA調(diào)試維護工作。更進一步地,本文將遠程更新策略應(yīng)用到衛(wèi)星通信系統(tǒng)中,可以利用本地設(shè)備對遠端設(shè)備進行遠程更新加載,實現(xiàn)了真正意義上的遠程更新升級。
1 系統(tǒng)架構(gòu)
本系統(tǒng)的主要組成部分是CPU和FPGA。CPU利用本地網(wǎng)口或無線衛(wèi)星信道接收程序源文件數(shù)據(jù)和指令,將數(shù)據(jù)傳送給FPGA;FPGA通過讀寫本地加載Flash,實現(xiàn)對加載固件的更新。
系統(tǒng)的硬件電路主要由FPGA、CPU、Flash、DDR3等構(gòu)成。CPU通過PHY芯片與外部網(wǎng)絡(luò)相連,同時,可以接收無線信道解調(diào)下來的載荷數(shù)據(jù),自動識別更新指令和原始數(shù)據(jù),對數(shù)據(jù)進行解析和存儲。此外,CPU可以通過總線訪問FPGA的緩存空間,F(xiàn)PGA設(shè)計控制邏輯對數(shù)據(jù)接收緩存操作和外掛Flash讀寫操作進行控制。CPU與FPGA協(xié)同配合,完成遠程更新操作。同時,系統(tǒng)實時收集和反映當前更新狀態(tài),并對外進行反饋,本地設(shè)備可以非常直觀地監(jiān)測更新過程,確保更新功能的正確性。系統(tǒng)硬件組成如圖1所示。
2 系統(tǒng)設(shè)計
本系統(tǒng)研究的內(nèi)容主要包括2個方面:如何實現(xiàn)軟件的遠程更新加載和如何在衛(wèi)星通信系統(tǒng)中應(yīng)用。
2.1 遠程更新加載流程設(shè)計
本系統(tǒng)采用CPU+FPGA協(xié)同工作的模式,將Rpd格式文件(Raw Programing Data File)寫入Flash。Rpd格式文件是包含bitstream的二進制文件,由Pof文件生成,可以直接寫入Flash。
程序更新啟動由外部觸發(fā),CPU接收外部網(wǎng)絡(luò)或無線信道的數(shù)據(jù)文件和啟動指令。CPU在接收到指令后,將源文件中的數(shù)據(jù)以非連續(xù)的方式發(fā)送給FPGA,CPU與FPGA之間通過總線進行傳輸[8]。同時,CPU下發(fā)擦除Flash指令,F(xiàn)PGA啟動擦除操作。
FPGA在接收到數(shù)據(jù)后,將其寫入Flash,由于CPU與FPGA之間總線傳輸速率遠高于數(shù)據(jù)寫入Flash的速率,須要設(shè)計控制策略對數(shù)據(jù)流量進行控制。FPGA將接收的數(shù)據(jù)進行緩存,并通過ASMI IP核將緩存數(shù)據(jù)寫入Flash[9-10]。同時,F(xiàn)PGA實時反饋緩存狀態(tài)給CPU,CPU通過緩存狀態(tài)判斷是否對緩存寫入新的數(shù)據(jù)。在整個過程中,F(xiàn)PGA部分邏輯設(shè)計控制狀態(tài)機,使緩存空間始終維持一個動態(tài)平衡,從而保證更新過程的正確性和可靠性。
在更新的過程中,CPU向外部監(jiān)控軟件發(fā)送程序正在更新狀態(tài)的標識。當CPU將待更新程序文件中的數(shù)據(jù)全部發(fā)送給FPGA,并判定FPGA緩存狀態(tài)為空(此時FPGA已經(jīng)將全部的程序源數(shù)據(jù)更新進Flash)時,向外部給出程序更新完成標識。具體的加載流程如圖2所示。
2.2 衛(wèi)星通信系統(tǒng)中遠程更新設(shè)計
本文將FPGA遠程更新策略應(yīng)用到衛(wèi)星通信系統(tǒng)中,需要解決的主要問題是如何將待更新文件數(shù)據(jù)通過無線信道進行傳輸。為此,本文須要定義特殊格式的更新指令和原始數(shù)據(jù)幀。在更新的過程中,須要保持本地設(shè)備與遠端設(shè)備的雙向無線鏈路暢通,本地設(shè)備將待更新數(shù)據(jù)加入傳輸載荷數(shù)據(jù)并進行編碼調(diào)制,通過無線信道發(fā)射給衛(wèi)星。
通過衛(wèi)星轉(zhuǎn)發(fā),遠端設(shè)備接收到載荷信息,通過解碼解調(diào),CPU對數(shù)據(jù)進行解析,通過固定標識識別到FPGA遠程更新數(shù)據(jù)并進行緩存。為了增加無線遠程更新的可靠性,遠端設(shè)備通過判斷接收數(shù)據(jù)的幀計數(shù)和校驗來確保更新數(shù)據(jù)的正確性和完整性。此外,在接收到本地設(shè)備發(fā)送的啟動指令后,遠端設(shè)備就會開啟更新流程。衛(wèi)星通信系統(tǒng)中FPGA軟件遠程更新設(shè)計如圖3所示。
3 系統(tǒng)的實現(xiàn)驗證
為了驗證系統(tǒng)設(shè)計的可行性,搭建模擬衛(wèi)星通信的實驗環(huán)境[11]。本地設(shè)備和遠端設(shè)備之間采用模擬轉(zhuǎn)發(fā)器來模擬衛(wèi)星無線通信環(huán)境。首先,通過Quartus" "Ⅱ的JTAG工具將FPGA原始程序固件燒寫進遠端設(shè)備的Flash;燒寫完成后對遠端設(shè)備重新加電,從監(jiān)控軟件處可以看到FPGA原始程序啟動正常,并上報當前版本號為V1.0;其次,設(shè)置信道參數(shù),確保本地設(shè)備與遠端設(shè)備之間的模擬信道通信正常;最后,通過模擬信道本地設(shè)備給遠端設(shè)備發(fā)送待更新程序文件數(shù)據(jù),完成后發(fā)送遠程更新啟動標識。至此,本地設(shè)備可以通過模擬信道,將啟動標識傳輸給遠端設(shè)備。
遠端設(shè)備在接收到遠程更新啟動標識后,通過監(jiān)控軟件上報更新狀態(tài),這時可以看到正在進行的FPGA程序更新升級。值得注意的是,在此過程中,F(xiàn)PGA軟件依然可以正常工作,鏈路始終保持暢通。在更新操作完成后,監(jiān)控軟件可以看到更新完成的標識。此時,工作人員將遠端設(shè)備重新加電,在監(jiān)控軟件處能夠看到FPGA啟動正常,上報版本號為V1.1,由此說明遠程更新FPGA固件成功。
4 結(jié)語
本文給出了一種新的FPGA更新調(diào)試系統(tǒng),通過采用CPU+FPGA架構(gòu),設(shè)計了合理的數(shù)據(jù)緩存處理機制,實現(xiàn)了FPGA的遠程更新調(diào)試功能,具有較高的靈活性和可擴展性,并通過實驗表明此系統(tǒng)設(shè)計的合理性與可靠性。該系統(tǒng)最大的優(yōu)點是兼容性強、可移植性強。隨著航空航天特殊設(shè)備和小型化設(shè)備使用需求的日益增多,F(xiàn)PGA遠程更新的應(yīng)用前景會越來越廣闊。
參考文獻
[1]楊海鋼,孫嘉斌,王慰.FPGA器件設(shè)計技術(shù)發(fā)展綜述[J].電子與信息學報,2010(2):714-727.
[2]宋克非.FPGA在航天遙感器中的應(yīng)用[J].光機電信息,2010(12):49-55.
[3]周駿,宋凱,沈洋,等.一種基于重構(gòu)的FPGA遠程更新方法[J].雷達與對抗,2022(2):58-61.
[4]陸禮紅,尹煥亭.基于CPLD技術(shù)的FPGA快速加載方案研究[J].電子技術(shù)與軟件工程,2013(22):43.
[5]黃勇.一種新型的FPGA快速動態(tài)配置和遠程加載技術(shù)[J].通信技術(shù),2013(12):93-96.
[6]陳曦,沈佐峰.一種可靠的FPGA動態(tài)配置方法及實現(xiàn)[J].通信技術(shù),2012(3):105-107.
[7]宋凱,林黃峰,謝明輝.一種FPGA的遠程在線加載和更新系統(tǒng)設(shè)計[J].無線電電子學,2020(10):7-10.
[8]Intel. Avalon Interface Specifications[EB/OL]. (2022-09-26)[2024-05-10]. https://www.intel.com/content/www/us/en/docs/programmable/683091/22-3/introduction-to-the-interface-specifications.html.
[9]Intel. Active Serial Remote System Upgrade Reference Design[EB/OL]. (2013-07-31)[2024-05-10]. https://www.intel.com/content/www/us/en/content-details/654467/an-603-active-serial-remote-system-upgrade-reference-design.html.
[10]Intel. Cyclone Ⅲ Active Parallel Remote System Upgrade Reference Design [EB/OL].(2009-08-03)[2024-05-10]. https://www.intel.com/content/www/us/en/content-details/654884/an-521-cyclone-iii-active-parallel-remote-system-upgrade-reference-design.html.
[11]陳巡,張翔,韓戴如,等.基于FPGA+MPC8260內(nèi)核的微納衛(wèi)星地面站通信機設(shè)計[J].電子設(shè)計工程,2020(1):144-148.
(編輯 沈 強)
FPGA remote update technology for satellite communication system
ZHAO" Yuanwei
(The 54th Research Institute of CETC, Shijiazhuang 050081, China)
Abstract: Since its development and debugging should be based on the wired JTAG mode, the original FPGA software has some limitations and drawbacks. A new FPGA remote update strategy is proposed in this paper that greatly simplifies FPGA debugging and maintenance by enabling wireless implementation of the remote update function. A reasonable data caching and processing mechanism is designed using the CPU+FPGA architecture mode, enabling the IP core of the FPGA to read and write data stored in Flash. In addition, the actual remote update function is realized because the strategy is applied to the satellite communication system to update the program of remote equipment through the satellite channel. Exploratory outcomes confirm that the scheme is plausible and the framework is adaptable and dependable, particularly has a high worth of utilizations and an astounding possibility in the field of wireless satellite communication correspondence.
Key words: FPGA; CPU; remote update; satellite communication
作者簡介:趙園偉(1991— ),男,工程師,碩士;研究方向:衛(wèi)星通信。