• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于重構(gòu)的FPGA遠(yuǎn)程更新方法

      2022-08-26 11:24:22駿,宋凱,沈洋,丁
      雷達(dá)與對抗 2022年2期
      關(guān)鍵詞:上位嵌入式重構(gòu)

      周 駿,宋 凱,沈 洋,丁 遜

      (中國船舶集團(tuán)有限公司第八研究院,南京 211153)

      0 引 言

      近年來FPGA遠(yuǎn)程更新多采用ARM、CPLD等微處理器輔助方式實現(xiàn)[1-4],上位機通過網(wǎng)絡(luò)通信接口將新程序發(fā)送給微處理器,并由微處理器寫入非易失性存儲器中。FPGA配置的加載由微處理器通過I/O口模擬FPGA配置信號時序,將新程序加載到FPGA中,完成更新。在雷達(dá)應(yīng)用中,F(xiàn)PGA承擔(dān)復(fù)雜的信號處理算法,需要大量邏輯實現(xiàn),將遠(yuǎn)程更新邏輯與用戶業(yè)務(wù)邏輯耦合在一起會大量占用業(yè)務(wù)可使用的邏輯資源。本文提出一種基于重構(gòu)的FPGA遠(yuǎn)程更新方法,將Flash芯片分成遠(yuǎn)程更新程序區(qū)域和用戶業(yè)務(wù)邏輯區(qū)域,通過ICAP原語與IPROG命令實現(xiàn)遠(yuǎn)程更新程序和用戶業(yè)務(wù)邏輯的跳轉(zhuǎn)加載。在遠(yuǎn)程更新程序中完成Flash用戶業(yè)務(wù)邏輯區(qū)域配置文件的更新與維護(hù),在完成更新后,跳轉(zhuǎn)至用戶業(yè)務(wù)邏輯,實現(xiàn)不斷電遠(yuǎn)程更新程序的目的。

      1 工作原理

      基于重構(gòu)的FPGA遠(yuǎn)程更新功能依靠網(wǎng)絡(luò)通信功能和FPGA的MultiBoot能力[5],其中MultiBoot功能是指FPGA在不斷電的情況下,可以重新加載Flash中不同地址的配置文件,實現(xiàn)FPGA整片邏輯重構(gòu)。將Flash按照最大配置文件大小分成用戶業(yè)務(wù)邏輯區(qū)域和遠(yuǎn)程更新邏輯區(qū)域兩個區(qū)域:前者存儲用戶業(yè)務(wù)程序,后者存儲遠(yuǎn)程更新程序。所有配置程序均包含重構(gòu)模塊,重構(gòu)模塊通過將配置區(qū)域Flash地址寫入ICAP原語并發(fā)送IPROG命令的方法,實現(xiàn)FPGA整片邏輯重構(gòu)。

      遠(yuǎn)程更新程序邏輯由重構(gòu)模塊、MicroBlaze系統(tǒng)以及運行于Microblaze系統(tǒng)上的嵌入式程序構(gòu)成,可采用TCP/IP協(xié)議接收上位機傳輸?shù)腇PGA新配置,并寫入Flash用戶業(yè)務(wù)邏輯區(qū)域,實現(xiàn)配置文件的遠(yuǎn)程更新,完成后再重構(gòu)加載用戶業(yè)務(wù)程序即可。由圖1所示的工作原理可以看出,F(xiàn)PGA通過網(wǎng)絡(luò)接口模塊和一個簡單的狀態(tài)機以及ICAP原語完成用戶業(yè)務(wù)程序和遠(yuǎn)程更新程序的切換,由于兩個配置邏輯文件完全獨立,可以使產(chǎn)品具備遠(yuǎn)程更新功能的同時不占用用戶業(yè)務(wù)邏輯資源。

      圖1 遠(yuǎn)程更新工作原理框圖

      2 設(shè)計實現(xiàn)

      2.1 硬件架構(gòu)

      2.1.1 硬件設(shè)計

      為了滿足低成本、小型化需求,系統(tǒng)硬件采用單片F(xiàn)PGA處理模塊、Flash芯片、網(wǎng)絡(luò)芯片構(gòu)成,其硬件框如圖2所示。FPGA選用Xilinx公司的Virtex 6芯片,該芯片有充足的邏輯資源、DSP資源和RAM資源,滿足導(dǎo)航雷達(dá)復(fù)雜信號處理的需求,同時該芯片內(nèi)置專用加載模塊,支持MultiBoot功能。網(wǎng)絡(luò)接口芯片采用88E1111,F(xiàn)lash選擇Mircon公司的JS28F512P30,存儲64 MB,滿足存儲兩個bin文件的需求。在本系統(tǒng)中,遠(yuǎn)程更新邏輯與用戶業(yè)務(wù)邏輯共用相同網(wǎng)絡(luò)通信鏈路,避免了網(wǎng)絡(luò)交換芯片的使用。

      圖2 遠(yuǎn)程更新硬件框圖

      2.1.2 嵌入式軟核設(shè)計

      遠(yuǎn)程更新邏輯需要實現(xiàn)網(wǎng)絡(luò)協(xié)議通信及Flash芯片控制,系統(tǒng)采用構(gòu)建MicroBlaze嵌入式軟核來替代傳統(tǒng)方法中的ARM芯片。MicroBlaze系統(tǒng)設(shè)計如圖3所示,外設(shè)方面包括網(wǎng)絡(luò)接口模塊、Flash控制模塊、定時模塊、調(diào)試模塊、中斷管理模塊、存儲模塊等,其中由于本系統(tǒng)無DDR3芯片,為了給嵌入式程序提供足夠的運行空間,通過AXI總線將一個片內(nèi)BlockRAM模塊連接到MicroBlaze的M_AXI_DC和M_AXI_IC端口充當(dāng)緩存。

      圖3 遠(yuǎn)程更新MicroBlaze系統(tǒng)框圖

      2.2 軟件設(shè)計

      2.2.1 重構(gòu)模塊

      用戶業(yè)務(wù)邏輯和遠(yuǎn)程更新邏輯均有重構(gòu)模塊,該模塊利用FPGA的Multiboot功能可以不斷電加載Flash中不同區(qū)域FPGA配置文件,完成整片F(xiàn)PGA重構(gòu)。當(dāng)收到重構(gòu)跳轉(zhuǎn)命令后,重構(gòu)模塊狀態(tài)機向ICAP原語寫入內(nèi)部加載邏輯指令序列,將重構(gòu)區(qū)域Flash地址填入加載起始地址寄存器(WBSTAR)中,并寫入IPROG控制指令完成重構(gòu)加載。

      重構(gòu)跳轉(zhuǎn)邏輯如圖4所示。設(shè)備上電時,F(xiàn)PGA默認(rèn)加載遠(yuǎn)程更新程序,如果在一定時間內(nèi)無法連接上位機,則跳轉(zhuǎn)至用戶業(yè)務(wù)程序,否則等待上位機操作;當(dāng)FPGA跳轉(zhuǎn)至用戶業(yè)務(wù)程序后,如果接收網(wǎng)絡(luò)重構(gòu)命令,通過重構(gòu)模塊將遠(yuǎn)程更新邏輯區(qū)域的Flash地址寫入ICAP原語,并發(fā)送IPROG命令,F(xiàn)PGA將從遠(yuǎn)程更新邏輯區(qū)域地址開始加載遠(yuǎn)程更新邏輯,實現(xiàn)FPGA由用戶業(yè)務(wù)邏輯向遠(yuǎn)程更新邏輯的重構(gòu)。當(dāng)FPGA重構(gòu)為遠(yuǎn)程更新邏輯時,通過TCP/IP協(xié)議連接上位機服務(wù)器,接收由上位機發(fā)送的新用戶業(yè)務(wù)邏輯bin文件數(shù)據(jù)流,寫入用戶業(yè)務(wù)邏輯區(qū)域,實現(xiàn)遠(yuǎn)程更新功能。當(dāng)完成更新時,遠(yuǎn)程更新邏輯將再次利用ICAP原語,使FPGA從用戶業(yè)務(wù)區(qū)域加載更新后的程序,完成不斷電用戶業(yè)務(wù)程序更新。

      圖4 重構(gòu)模塊原理流程圖

      2.2.2 嵌入式內(nèi)核程序設(shè)計

      嵌入式內(nèi)核程序運行于FPGA構(gòu)建的MicroBlaze嵌入式軟核內(nèi),其設(shè)計基于FreeRTOS操作系統(tǒng),并運行LWIP網(wǎng)絡(luò)協(xié)議棧,實現(xiàn)TCP/IP通信。嵌入式內(nèi)核程序流程如圖5所示:首先完成Flash操作庫和LWIP網(wǎng)絡(luò)庫初始化,然后連接指定IP的TCP服務(wù)器。如果在一定時間內(nèi)無法連接,則對重構(gòu)模塊發(fā)送命令跳轉(zhuǎn)至用戶業(yè)務(wù)模塊。如果連接成功,將等待上位機操作。當(dāng)需要更新程序時,上位機軟件通過TCP協(xié)議發(fā)送新的用戶業(yè)務(wù)程序數(shù)據(jù)包給嵌入式內(nèi)核程序,嵌入式內(nèi)核程序接收數(shù)據(jù)包,并寫入Flash中的用戶業(yè)務(wù)邏輯區(qū)域,將接收到的數(shù)據(jù)包CRC32校驗值和寫入的Flash數(shù)據(jù)包總大小返回給上位機程序。當(dāng)上位機完成新程序文件發(fā)送,并接收到正確的CRC32校驗值和數(shù)據(jù)包大小時,認(rèn)為更新完成,發(fā)送重構(gòu)命令給嵌入式內(nèi)核程序,實現(xiàn)新用戶業(yè)務(wù)程序的加載。

      2.2.3 上位機程序設(shè)計

      上位機采用MFC設(shè)計,通過TCP/IP協(xié)議與嵌入式內(nèi)核程序進(jìn)行通信,主要完成創(chuàng)建更新TCP服務(wù)端,UDP重構(gòu)命令發(fā)送,用戶文件讀取等功能。當(dāng)FPGA重構(gòu)為遠(yuǎn)程更新邏輯時,嵌入式內(nèi)核程序?qū)⒅鲃舆B接上位機的TCP服務(wù)端。在嵌入式內(nèi)核程序連接服務(wù)器成功后,上位機讀取本地用戶更新文件,并發(fā)送給嵌入式內(nèi)核程序?qū)崿F(xiàn)更新。更新完成后,上位機發(fā)送UDP重構(gòu)命令,實現(xiàn)FPGA由遠(yuǎn)程更新邏輯跳轉(zhuǎn)至用戶業(yè)務(wù)邏輯;當(dāng)FPGA重構(gòu)為用戶業(yè)務(wù)邏輯時,上位機軟件發(fā)送UDP重構(gòu)命令,F(xiàn)PGA收到命令后重構(gòu)為遠(yuǎn)程更新邏輯,并實現(xiàn)用戶業(yè)務(wù)邏輯更新。

      圖5 嵌入式內(nèi)核程序流程圖

      2.2.4 更新失敗處理

      本文方法將Flash區(qū)域劃分為用戶業(yè)務(wù)邏輯區(qū)域和遠(yuǎn)程更新邏輯區(qū)域,其中后者起始地址為0,使FPGA上電默認(rèn)啟動區(qū)域。當(dāng)對用戶業(yè)務(wù)邏輯區(qū)域進(jìn)行更新時,系統(tǒng)出現(xiàn)斷電、斷網(wǎng)等突發(fā)情況,導(dǎo)致用戶業(yè)務(wù)邏輯更新失敗,此時并沒有操作遠(yuǎn)程更新邏輯區(qū)域的配置文件;當(dāng)系統(tǒng)重新上電時,F(xiàn)PGA默認(rèn)加載遠(yuǎn)程更新邏輯,可以繼續(xù)實現(xiàn)對用戶業(yè)務(wù)邏輯的更新,可見采用遠(yuǎn)程更新邏輯和用戶業(yè)務(wù)邏輯分離設(shè)計的方式有較高的可靠性。

      3 試驗結(jié)果

      為了驗證本文方法,以一型導(dǎo)航雷達(dá)信號處理板卡為硬件平臺,該平臺采用Xilinx V6芯片,編寫了遠(yuǎn)程更新程序和雷達(dá)信號處理程序。由于系統(tǒng)的小型化,沒有采用DDR芯片,遠(yuǎn)程更新程序使用FPGA芯片內(nèi)部Block Ram作為MicroBlaze程序運存,消耗17 203個寄存器、17 316個查找表以及296個RAMB36E1,其中使用的存儲資源約占整個芯片存儲資源的27%,而用戶業(yè)務(wù)程序中使用的重構(gòu)模塊僅使用了31個寄存器和70個查找表。可以看出,本文方法大大減少了遠(yuǎn)程更新功能對用戶業(yè)務(wù)邏輯的占用。采用本文方法對15 MB大小的bin文件進(jìn)行遠(yuǎn)程更新僅需40 s,較采用JTAG下載線方式有明顯優(yōu)勢。由于采用TCP協(xié)議傳輸文件流時,協(xié)議本身具備校驗和重發(fā)機制,因此本文方法可靠性較高,能為采用單片F(xiàn)PGA的小型化系統(tǒng)提供遠(yuǎn)程更新功能。

      4 結(jié)束語

      本文基于重構(gòu)的FPGA遠(yuǎn)程更新方法利用FPGA的MultiBoot功能,實現(xiàn)遠(yuǎn)程更新程序和用戶業(yè)務(wù)程序的分離式設(shè)計,減小遠(yuǎn)程更新功能對資源的占用,不需要設(shè)計額外微處理芯片電路進(jìn)行輔助,同時與用戶業(yè)務(wù)程序共用相同的網(wǎng)絡(luò)鏈路,利于設(shè)備小型化、低成本設(shè)計。目前該方法已應(yīng)用于雷達(dá)產(chǎn)品,為其提供了穩(wěn)定可靠的遠(yuǎn)程更新功能。

      猜你喜歡
      上位嵌入式重構(gòu)
      長城敘事的重構(gòu)
      攝影世界(2022年1期)2022-01-21 10:50:14
      北方大陸 重構(gòu)未來
      特斯拉 風(fēng)云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      搭建基于Qt的嵌入式開發(fā)平臺
      北京的重構(gòu)與再造
      商周刊(2017年6期)2017-08-22 03:42:36
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      論中止行為及其對中止犯的重構(gòu)
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      绥滨县| 尉氏县| 石河子市| 都匀市| 呼图壁县| 仪陇县| 平乐县| 郁南县| 永昌县| 泸溪县| 黄浦区| 本溪市| 尖扎县| 福建省| 西城区| 卢龙县| 屏东县| 开封县| 合阳县| 乌兰县| 平山县| 二连浩特市| 共和县| 临沧市| 晴隆县| 南京市| 揭阳市| 普定县| 湟源县| 张家川| 曲靖市| 奉节县| 五台县| 永川市| 海兴县| 榆社县| 南平市| 永丰县| 云梦县| 鹤山市| 阿拉善右旗|