閆成亮 曹鳳才 岳鳳英
摘? 要: 北斗衛(wèi)星導(dǎo)航信號(hào)接收機(jī)分布較為廣泛,地處偏遠(yuǎn),而且機(jī)箱內(nèi)部芯片的程序又需要及時(shí)更新,這就造成了開發(fā)維護(hù)人員不能及時(shí)、方便地對(duì)芯片內(nèi)的程序進(jìn)行更新的問(wèn)題。從環(huán)境的約束、人力成本、便利性等角度考慮,在這種情況下,以常規(guī)的方式對(duì)設(shè)備中的芯片進(jìn)行軟件更新是難以實(shí)現(xiàn)的。為了解決這個(gè)問(wèn)題,提出基于ZYNQ的遠(yuǎn)程并行固化設(shè)計(jì),在Linux運(yùn)行環(huán)境下,利用遠(yuǎn)程計(jì)算機(jī)、FPGA和以太網(wǎng)通信組成一種遠(yuǎn)程并行固化系統(tǒng),對(duì)FLASH中的程序進(jìn)行固化更新。系統(tǒng)目前已在實(shí)際中得到應(yīng)用,極大地提升了開發(fā)人員的效率,節(jié)省了大量的人力成本,具有很高的實(shí)際應(yīng)用價(jià)值。
關(guān)鍵詞: 遠(yuǎn)程程序; 并行固化設(shè)計(jì); 程序更新; 控制模塊設(shè)計(jì); 軟件設(shè)計(jì); 系統(tǒng)測(cè)試
中圖分類號(hào): TN927?34; TP274? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2020)10?0038?05
ZYNQ?based parallel curing design for remote program
YAN Chengliang, CAO Fengcai, YUE Fengying
(School of Electrical and Control Engineering, North University of China, Taiyuan 030051, China)
Abstract: The Beidou satellite navigation signal receiver is widely distributed and located in remote areas, and the program of chip in its crate needs to be updated timely, which makes it impossible for developers and maintainers to update the program inside the chip timely and conveniently. In consideration of the environment′s constraint, labor cost and convenience, it is difficult to achieve the software update of the chip in the device in the usual way. A remote program parallel curing design based on ZYNQ is proposed to solve above problems. A remote parallel curing system is composed of remote computer, FPGA and Ethernet communication in the Linux operating environment to cure and update the programs in FLASH. This system has been applied in practice, which has greatly improved the developers′ working efficiency and saved a lot of labor cost.
Keywords: remote program; parallel curing design; program update; control module design; software design; system test
0? 引? 言
隨著“一帶一路”建設(shè)對(duì)北斗導(dǎo)航衛(wèi)星沿線國(guó)家服務(wù)的需要,需要在全球范圍內(nèi)部署地面接收機(jī)。因國(guó)防技術(shù)發(fā)展的日新月異,北斗精度算法不斷迭代,需要對(duì)已經(jīng)完成全球部署的地面接收機(jī)實(shí)時(shí)進(jìn)行功能更新,以滿足我軍技術(shù)的不斷發(fā)展。已經(jīng)部署在全球的地面接收機(jī),如赤道、沙漠、南北極等,設(shè)備數(shù)量龐大,人工實(shí)地軟件升級(jí)成本巨大。北斗地面接收機(jī)具有基于軟件定義的無(wú)線通信協(xié)議而非通過(guò)硬連線實(shí)現(xiàn)。頻帶、空中接口協(xié)議和功能可通過(guò)軟件遠(yuǎn)程下載和更新來(lái)升級(jí),而不用更換硬件。為滿足當(dāng)前地面接收機(jī)發(fā)展需求,設(shè)計(jì)基于ZYNQ的遠(yuǎn)程程序并行固化系統(tǒng)。
ZYNQ?7000可擴(kuò)展處理平臺(tái)是賽靈思新一代FPGA(Artix?7與Kintex?7系列FPGA)所采用的最新系列產(chǎn)品。該芯片可編程邏輯可由用戶配置,并通過(guò)“互連”一起,這樣可以提供用戶自定義的任意邏輯功能,從而擴(kuò)展處理系統(tǒng)的性能及功能[1]。且該芯片采用帶有NEON及雙精度浮點(diǎn)引擎的雙核ARM Cortex?A9 MPCore處理系統(tǒng),該系統(tǒng)通過(guò)硬連線完成了包括L1,L2緩存、存儲(chǔ)器控制器以及常用外設(shè)在內(nèi)的全面集成,該處理系統(tǒng)不僅能在開機(jī)時(shí)啟動(dòng),并運(yùn)行各種獨(dú)立于可編程邏輯的操作系統(tǒng),而且還可根據(jù)需要配置可編程邏輯。ZYNQ?7000主要包含PS(Processing System)和PL(Programmable Logic)兩部分,將ARM CPU和外設(shè)集成在一個(gè)芯片內(nèi),使得ZYNQ?7000系列具有處理器和FPGA的雙重特性,適用軟硬件協(xié)同設(shè)計(jì)。相對(duì)于ARM與FPGA結(jié)合的系統(tǒng)[2],其優(yōu)勢(shì)主要為以下幾點(diǎn):
1) 高集成度、高性能、低功耗。導(dǎo)航信號(hào)接收機(jī)分布在世界各地,其中不乏炎熱、干旱地區(qū),機(jī)箱內(nèi)溫度過(guò)高會(huì)影響系統(tǒng)運(yùn)行的穩(wěn)定性。
2) PS與PL間的高速數(shù)據(jù)傳輸協(xié)議。PS與PL間通過(guò)AXI總線協(xié)議進(jìn)行數(shù)據(jù)傳輸。AXI總線協(xié)議具有低延遲、數(shù)據(jù)吞吐能力強(qiáng)的特性,最大帶寬可達(dá)1 200 MB/s,極大地提高了PS與PL之間的數(shù)據(jù)傳輸速率。
3) PS端將接收到的配置文件按照數(shù)據(jù)協(xié)議直接寫入PL端不同地址中,免去了FPGA在控制固化不同的板卡時(shí)檢測(cè)板卡ID號(hào)的步驟,釋放了更多的引腳資源。
1? 并行固化總體方案
1.1? 系統(tǒng)概述
采集主板上的ZYNQ?7000芯片作為系統(tǒng)的主控核心,其ARM端(Linux運(yùn)行環(huán)境[3?4])通過(guò)TCP/IP協(xié)議與遠(yuǎn)程計(jì)算機(jī)進(jìn)行通信[5],接收配置文件并解包,根據(jù)數(shù)據(jù)包中不同的板卡號(hào)將配置文件通過(guò)AXI?Lite總線接口寫到主板的PL層的邏輯單元地址中。FPGA端在地址中讀取該板卡的配置文件,對(duì)其解包后根據(jù)包格式中的FLASH號(hào)將配置文件固化到對(duì)應(yīng)的FLASH中。同時(shí)將地址中對(duì)應(yīng)信號(hào)處理板的配置文件取出,通過(guò)LVDS協(xié)議轉(zhuǎn)發(fā)至每塊信號(hào)處理板中,由信號(hào)處理板中的ZYNQ芯片對(duì)其進(jìn)行讀寫FLASH操作。系統(tǒng)功能架構(gòu)如圖1所示。數(shù)據(jù)流向圖如圖2所示。
1.2? 硬件電路構(gòu)成
本系統(tǒng)由信號(hào)采集傳輸板卡、高速傳輸背板、信號(hào)處理板構(gòu)成。其中采集傳輸主板由Xilinx的ZYNQ?7000系列芯片XC7Z015作為系統(tǒng)的控制核心。一片Xilinx公司的XC7K410T和一片XC7K325T Kintex?7系列芯片作為被配置FPGA,三片TI的TMS320C6655芯片作為被配置DSP,實(shí)現(xiàn)數(shù)字信號(hào)處理的輔助計(jì)算和通信功能,一片PHY芯片作為網(wǎng)口通信的協(xié)議通信芯片[6?7]。高速傳輸背板的功能是負(fù)責(zé)信號(hào)采集傳輸主板和信號(hào)處理板的板間高速互連和電源分配。
信號(hào)處理板由Xilinx的ZYNQ?7000系列芯片XC7Z015作為系統(tǒng)的控制核心。一片Xilinx公司的XC7K410T芯片作為被配置FPGA,兩片TI公司的TMS320C6747芯片作為被配置DSP。
本設(shè)計(jì)使用恒憶公司設(shè)計(jì)生產(chǎn)的FLASH存儲(chǔ)模塊N25Q128芯片作為被固化存儲(chǔ)設(shè)備,通過(guò)SPI串行總線接口配置芯片讀/寫,128 MB數(shù)據(jù)存儲(chǔ)空間,最高支持108 MHz時(shí)鐘頻率。在每塊板卡中都有一片接口模擬開關(guān)TS3L301DGG,用于切換寫FLASH和從FLASH中加載程序。
1.3? ARM與FPGA數(shù)據(jù)傳輸
綜合考慮系統(tǒng)的傳輸類型、傳輸速度需求以及功耗等各個(gè)因素,ARM與FPGA端的通信協(xié)議選擇AXI4?Lite協(xié)議,其通常用于允許由某種形式的CPU或微控制器控制設(shè)計(jì)。使用VIVADO軟件自定義ZYNQ的IP核,利用AXI4?Lite總線將ZYNQ核與編碼模塊連接到一起,并為IP核添加編碼模塊到FPGA端的地址和數(shù)據(jù)通道。自定義ARM的IP核如圖3所示。
其中l(wèi)ocal_wrcs[15:0],local_rdcs[15:0]分別為寫、讀片選信號(hào);local_wren,local_rden分別為寫、讀使能信號(hào);local_wradd[31:0],local_wrdat[31:0]分別為寫地址、寫數(shù)據(jù)通道;local_rdadd[31:0],local_rddat[511:0]為讀地址、讀數(shù)據(jù)通道;local_rdvad[15:0]為讀數(shù)據(jù)有效信號(hào)。
主板中ZYNQ芯片的ARM端作為master,F(xiàn)PGA端作為slave,通過(guò)AXI?Lite協(xié)議將配置文件發(fā)送到FPGA端。ARM調(diào)用寫函數(shù)時(shí)自定義IP地址映射為0x4000_0000,為每一塊板卡分配不同的地址空間。采用AXI4?Lite協(xié)議的突發(fā)式讀寫模式,master模塊通過(guò)讀地址通道發(fā)出寄存器的地址值,然后通過(guò)讀數(shù)據(jù)通道讀取slave模塊對(duì)應(yīng)done信號(hào)地址空間中的done信號(hào)值,若done信號(hào)為0,master模塊則根據(jù)遠(yuǎn)程計(jì)算機(jī)發(fā)送的數(shù)據(jù)包協(xié)議,通過(guò)寫地址通道和寫數(shù)據(jù)通道將每塊板卡的配置文件地址值和配置數(shù)據(jù)發(fā)送到slave模塊,slave模塊接收到數(shù)據(jù)后對(duì)配置數(shù)據(jù)進(jìn)行解包,完成固化并返回固化完成的done信號(hào),并將done信號(hào)寫到對(duì)應(yīng)的讀地址空間中。master模塊通過(guò)讀地址通道發(fā)出寄存器地址值,讀取slave端返回的done信號(hào)為1,停止發(fā)送對(duì)應(yīng)板卡的配置文件。
1.4? FLASH控制模塊設(shè)計(jì)
FPGA與FLASH之間的數(shù)據(jù)傳輸采用串行SPI接口[8?10]。時(shí)鐘由FPGA 控制,在時(shí)鐘移位脈沖下,數(shù)據(jù)按位傳輸,高位(MSB)在前,低位(LSB)在后;SPI接口有兩根單向數(shù)據(jù)線,為全雙工通信,目前應(yīng)用中的數(shù)據(jù)速率可達(dá)幾Mb/s的水平,能滿足本設(shè)計(jì)傳輸速率的需要。在向FLASH中寫配置文件時(shí),由XC7Z015通過(guò)模擬開關(guān)TS3L301DGG選通XC7Z015到N25Q128芯片通路,并通過(guò)片選信號(hào)選中目標(biāo)FLASH,此時(shí)由XC7Z015通過(guò)SPI接口向N25Q128中寫入數(shù)據(jù);當(dāng)從FLASH中啟動(dòng)已經(jīng)固化的程序時(shí),通過(guò)模擬開關(guān)選通XC7K325T到N25Q128芯片通路,實(shí)現(xiàn)由上位機(jī)軟件控制程序加載。主控芯片XC7Z015、被配置芯片XC7K325T、存儲(chǔ)元件N25Q128之間的連接原理圖如圖4所示。
在對(duì)FLASH進(jìn)行寫操作時(shí),必須嚴(yán)格按照FLASH的時(shí)序控制信號(hào)進(jìn)行。在FLASH上電后,首先對(duì)FLASH進(jìn)行初始化操作,將指定區(qū)域進(jìn)行擦除操作,主板FPGA將ARM端寫入FPGA地址的配置文件寫入數(shù)據(jù)緩存隊(duì)列(First Input First Output,F(xiàn)IFO)中,根據(jù)數(shù)據(jù)包協(xié)議,設(shè)置FIFO位寬為32,為防止FIFO溢出,設(shè)置FIFO的深度為8 192。當(dāng)主板FPGA檢測(cè)到對(duì)應(yīng)主板配置文件的FIFO非空時(shí),開始按照數(shù)據(jù)手冊(cè)中的時(shí)序圖通過(guò)SPI接口向FLASH中寫入配置數(shù)據(jù)。
N25Q128的寫時(shí)序圖如圖5所示,首先拉低片選信號(hào)CS,在時(shí)鐘上升沿將指令寫入FLASH,在指令之后是24位的首地址,地址發(fā)送完成后開始寫入數(shù)據(jù),頁(yè)面編程一次最多能夠輸入256個(gè)字節(jié),大于256個(gè)字節(jié)時(shí),保留最后輸入的數(shù)據(jù)。在輸入不全為0的首地址后,從首地址開始寫入數(shù)據(jù),直到該頁(yè)的最后,接著從下一頁(yè)的起始地址進(jìn)行寫入,寫入數(shù)據(jù)完成后拉高片選信號(hào)。
在對(duì)FLASH進(jìn)行讀操作時(shí),N25Q128的讀時(shí)序圖如圖6所示,首先拉低片選信號(hào)CS,在時(shí)鐘上升沿向FLASH中寫入讀數(shù)據(jù)指令,讀數(shù)據(jù)指令寫完成后寫入24位的首地址,在寫入地址完成后,F(xiàn)LASH中的數(shù)據(jù)將按照輸入的首地址輸出數(shù)據(jù)。首地址數(shù)據(jù)輸出完成后地址自動(dòng)增加,指向下一個(gè)地址,繼續(xù)輸出數(shù)據(jù),輸出數(shù)據(jù)完成后,拉高片選信號(hào),讀FLASH完成。
2? 軟件設(shè)計(jì)
遠(yuǎn)程計(jì)算機(jī)作為人機(jī)交互界面,承擔(dān)著連接網(wǎng)絡(luò)服務(wù)器,查詢和修改IP地址,選擇固化文件,復(fù)位、模擬上電,顯示下載進(jìn)度和狀態(tài)信息等功能。開始固化時(shí),遠(yuǎn)程計(jì)算機(jī)根據(jù)軟件接口協(xié)議向下位機(jī)發(fā)送數(shù)據(jù)包,數(shù)據(jù)包中包含設(shè)備號(hào)、命令字、聯(lián)網(wǎng)模式、參數(shù)類型、工作模式、通道號(hào)、參數(shù)包長(zhǎng)度、CRC校驗(yàn)、參數(shù)包等內(nèi)容,每次發(fā)送配置文件的有效數(shù)據(jù)的長(zhǎng)度為20 KB,經(jīng)實(shí)驗(yàn)測(cè)得每次發(fā)包的間隔為15 ms。每當(dāng)下位機(jī)接收到一個(gè)完整的配置文件后,向遠(yuǎn)程計(jì)算機(jī)返回一個(gè)對(duì)應(yīng)的完成指令,并且根據(jù)指令內(nèi)容打印下載進(jìn)度。固化完成后,通過(guò)遠(yuǎn)程計(jì)算機(jī)軟件發(fā)送模擬上電指令,由XC7Z015芯片控制從FLASH中加載程序。
2.1? 軟件接口協(xié)議
數(shù)據(jù)幀格式定義如圖7所示。
參數(shù)包具體數(shù)據(jù):第一個(gè)4 B為數(shù)據(jù)的包號(hào);第二個(gè)4 B為參數(shù)包的校驗(yàn)和;第三個(gè)4 B為參數(shù)包中有效數(shù)據(jù)長(zhǎng)度,參數(shù)包大小以B為單位。
2.2? 下載和啟動(dòng)程序
固化的過(guò)程,根據(jù)以下步驟進(jìn)行:
1) 遠(yuǎn)程計(jì)算機(jī)發(fā)送命令字和配置文件,發(fā)送命令字?jǐn)?shù)據(jù)包、文件長(zhǎng)度、文件CRC校驗(yàn)到下位機(jī),若下位機(jī)返回的數(shù)據(jù)長(zhǎng)度、文件長(zhǎng)度和CRC校驗(yàn)成功,則上位機(jī)將配置文件下載到下位機(jī),每個(gè)數(shù)據(jù)包的大小為20 KB;若校驗(yàn)失敗則嘗試重新發(fā)送失敗指令。
2) 下位機(jī)將接收到來(lái)自遠(yuǎn)程計(jì)算機(jī)發(fā)送的數(shù)據(jù)包進(jìn)行解包,數(shù)據(jù)包的幀格式中包含配置文件對(duì)應(yīng)的板卡號(hào),并將配置數(shù)據(jù)進(jìn)行存儲(chǔ)。
3) 下位機(jī)接收配置數(shù)據(jù)完成后檢測(cè)信號(hào)采集傳輸主板的FPGA端發(fā)送過(guò)來(lái)的done標(biāo)志,若done標(biāo)志為0,則根據(jù)不同的板卡號(hào)通過(guò)AXI接口向主板的PL層的邏輯單元地址中寫入配置文件,每包數(shù)據(jù)大小為32 bit。
4) 采集傳輸主板側(cè)的FPGA在地址中讀取該板卡的配置文件,對(duì)其解包后根據(jù)包格式中的FLASH號(hào)將配置文件固化到對(duì)應(yīng)的FLASH中。同時(shí)將地址中對(duì)應(yīng)信號(hào)處理板的配置文件取出,通過(guò)LVDS協(xié)議并行轉(zhuǎn)發(fā)至每塊信號(hào)處理板中,由信號(hào)處理板中的XC7Z015芯片對(duì)其解包,根據(jù)包格式中的FLASH號(hào)將固化文件寫入FLASH。
5) 當(dāng)FPGA檢測(cè)到固化數(shù)據(jù)長(zhǎng)度和文件長(zhǎng)度一致時(shí),向下位機(jī)返回done標(biāo)志為1,此時(shí)下位機(jī)停止發(fā)送配置文件,并向遠(yuǎn)程計(jì)算機(jī)返回固化完成信號(hào),打印下載進(jìn)度。
固化完成后,啟動(dòng)FLASH中的程序需要對(duì)板卡進(jìn)行掉電重啟或者由軟件控制對(duì)被配置芯片進(jìn)行模擬上電??紤]到設(shè)備投放地點(diǎn)環(huán)境較為復(fù)雜且距離較遠(yuǎn),不方便研究人員的操作,所以采用軟件控制,由遠(yuǎn)程計(jì)算機(jī)發(fā)送復(fù)位協(xié)議到下位機(jī),下位機(jī)對(duì)數(shù)據(jù)包進(jìn)行解包,通過(guò)XC7Z015芯片控制對(duì)其進(jìn)行模擬上電,實(shí)現(xiàn)程序的在線加載,并且在加載的過(guò)程中不影響接收機(jī)正常工作。程序下載流程圖如圖8所示。
2.3? 多機(jī)箱并行固化
由于導(dǎo)航信號(hào)處理機(jī)箱可能處于全球不同的地理位置,分布范圍較大且數(shù)量較多,每次操控單個(gè)機(jī)箱會(huì)耗費(fèi)科研人員大量的精力,致使其工作效率降低。因此,多機(jī)箱通過(guò)交換機(jī)同時(shí)并行固化的方案將會(huì)極大降低人力成本,提升工作效率。
ZYNQ的寄存器共有三個(gè)區(qū):Bank0,Bank1,Bank2,其中Bank0是ZYNQ的本地寄存器空間0x4000_0000~0x4000_0FFF。該分區(qū)用于對(duì)SPI FLASH的固化操作,在Bank0未被使用的地址空間中寫入每個(gè)機(jī)箱的初始IP地址。使用上位機(jī)連接機(jī)箱后,通過(guò)發(fā)送對(duì)應(yīng)的修改IP指令,為每個(gè)機(jī)箱配置不同的IP地址。修改IP完成后,將多個(gè)機(jī)箱通過(guò)交換機(jī)連接到上位機(jī)后,即可同時(shí)為每個(gè)機(jī)箱發(fā)送配置文件,進(jìn)行多機(jī)箱并行固化。
遠(yuǎn)程計(jì)算機(jī)界面如圖9所示。
3? 系統(tǒng)測(cè)試
將boot.bin文件通過(guò)JTAG固化到信號(hào)采集傳輸主板和信號(hào)處理板中,固化完成后掉電重啟系統(tǒng)。將多個(gè)機(jī)箱通過(guò)交換機(jī)連接到遠(yuǎn)程計(jì)算機(jī),為每臺(tái)機(jī)箱配置不同的IP地址,并為待配置芯片選擇對(duì)應(yīng)的配置文件,然后開始固化。系統(tǒng)測(cè)試時(shí),為FPGA選擇的配置文件大小為28 MB,為DSP選擇的配置文件大小為3 MB。在串行測(cè)試的情況下,每個(gè)FPGA固化所用時(shí)間大約為10 min 25 s,每個(gè)DSP固化所用時(shí)間大約為2 min 14 s,整個(gè)機(jī)箱固化總共需要176 min左右,如果對(duì)多個(gè)機(jī)箱進(jìn)行固化時(shí),耗時(shí)非常多,將極大降低開發(fā)人員的工作效率。而在并行測(cè)試的情況下,由于各個(gè)芯片同時(shí)開始固化,固化所用時(shí)間與最大固化文件的大小以及下載文件時(shí)間有關(guān),所以實(shí)際固化多個(gè)機(jī)箱時(shí)只需要大約11 min,并且固化過(guò)程中板卡內(nèi)原有的閃燈測(cè)試程序繼續(xù)運(yùn)行。固化完成后,通過(guò)遠(yuǎn)程計(jì)算機(jī)對(duì)各個(gè)板卡進(jìn)行復(fù)位,然后對(duì)每個(gè)被固化的芯片進(jìn)行模擬上電,遠(yuǎn)程計(jì)算機(jī)界面更新芯片狀態(tài)顯示已經(jīng)固化,板卡上的閃燈已經(jīng)按照新的程序閃爍。
系統(tǒng)測(cè)試時(shí)間對(duì)比如表1所示。
4? 結(jié)? 語(yǔ)
本文設(shè)計(jì)開發(fā)一種在Linux系統(tǒng)下,利用上位機(jī)軟件、FPGA和以太網(wǎng)通信組成一種遠(yuǎn)程程序并行固化系統(tǒng),對(duì)設(shè)備中的FLASH進(jìn)行固化更新。與目前文獻(xiàn)中出現(xiàn)的在線并行固化FLASH方式有較大的技術(shù)突破,主要體現(xiàn)在以下幾點(diǎn):
1) 在線并行固化。采用集ARM與FPGA結(jié)合的ZYNQ芯片,ARM與FPGA通過(guò)AXI總線協(xié)議,在使用時(shí)更靈活且數(shù)據(jù)傳輸速率更高。并且經(jīng)由ARM芯片直接將每個(gè)板卡的配置文件寫入到FPGA端不同的地址中,并且通過(guò)主板上的FPGA將不同地址中的配置文件通過(guò)LVDS總線協(xié)議分發(fā)到不同的板卡中,由每塊板卡上的FPGA芯片去控制FLASH讀寫。而通過(guò)FPGA檢測(cè)板卡號(hào)的方式首先需要在硬件上將控制板卡號(hào)的幾個(gè)引腳拉高或拉低,占用了過(guò)多的引腳資源,在開發(fā)此芯片的其他功能時(shí)可能會(huì)產(chǎn)生引腳沖突。
2) 啟動(dòng)程序的時(shí)間可控。在FPGA的程序設(shè)計(jì)中,添加了復(fù)位模塊和模擬上電模塊。通過(guò)檢測(cè)接收到的數(shù)據(jù)進(jìn)行解析,識(shí)別到復(fù)位協(xié)議或模擬上電指令時(shí),通過(guò)FPGA發(fā)出相應(yīng)的操作。并且在固化的過(guò)程中,芯片中的原有程序正常運(yùn)行,使得接收機(jī)在升級(jí)過(guò)程中始終能夠正常工作。
3) 查詢和修改IP功能。地面的導(dǎo)航信號(hào)接收機(jī)分布在全球各地,并且在一個(gè)基站內(nèi)需要很多個(gè)機(jī)箱對(duì)數(shù)據(jù)進(jìn)行接收處理。即使使用并行固化的方式,單獨(dú)為每個(gè)接收機(jī)進(jìn)行升級(jí)需要的人力資源和時(shí)間也是十分龐大的。而查詢和修改IP的功能即可快速查詢基站內(nèi)的每個(gè)機(jī)箱配置的IP地址,并且為這些機(jī)箱配置不同的IP地址,然后將所有機(jī)箱通過(guò)交換機(jī)經(jīng)由以太網(wǎng)連接至遠(yuǎn)程計(jì)算機(jī),就能同時(shí)對(duì)接收機(jī)基站內(nèi)的機(jī)箱進(jìn)行固化升級(jí),節(jié)省大量的時(shí)間。
本系統(tǒng)已實(shí)際應(yīng)用于導(dǎo)航信號(hào)接收機(jī)的升級(jí),目前系統(tǒng)運(yùn)行穩(wěn)定,多次對(duì)接收機(jī)機(jī)箱升級(jí)未出現(xiàn)異常情況。
參考文獻(xiàn)
[1] 龔行梁,周強(qiáng),趙天恩,等.CAN總線實(shí)現(xiàn)的ZYNQ?7000程序在線升級(jí)方法 [J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2018(11):63?66.
[2] 林天靜,阮翔,劉春.基于FLASH控制器的FPGA在線加載功能設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(1):88?91.
[3] 夏凌云.嵌入式Linux通信軟件開發(fā)中的設(shè)計(jì)模式[J].數(shù)字通信世界,2017(11):67?68.
[4] 陳文偉,于卓智,張葉峰.基于Linux系統(tǒng)的智慧安全型專網(wǎng)無(wú)線通信模塊設(shè)計(jì)[J].電子設(shè)計(jì)工程,2019,27(5):121?126.
[5] 鄭述堂.基于以太網(wǎng)傳輸?shù)腇PGA在線配置[C]//全國(guó)第五屆信號(hào)和智能信息處理與應(yīng)用學(xué)術(shù)會(huì)議??ǖ谝粌?cè)).銀川:計(jì)算機(jī)工程與應(yīng)用雜志社,2011:246?248.
[6] 汪灝,張學(xué)森.一種基于串行方式的FPGA遠(yuǎn)程加載電路[J].電子科學(xué)技術(shù),2016,3(2):171?173.
[7] 張學(xué)森,李宏.一種遠(yuǎn)程配置FPGA的設(shè)計(jì)方法[J].中國(guó)科技信息,2010(14):95?96.
[8] 陳炳成.基于FPGA的SPI FLASH控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2013(12):137.
[9] 張立為,鐘慧敏.實(shí)現(xiàn)基于FPGA的SPI FLASH控制器設(shè)計(jì)[J].微計(jì)算機(jī)信息,2010,26(17):124?126.
[10] 李春雨,夏敏磊.基于CPLD的SPI FLASH程序在線加載方案[J].自動(dòng)化與儀器儀表,2015(12):140?141.