• 
    

    
    

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

      基于MicroBlaze 的多FPGA 及DSP 遠程更新系統(tǒng)設(shè)計

      2021-04-30 07:25:12趙參王小龍郝國鋒
      電子設(shè)計工程 2021年7期
      關(guān)鍵詞:配置文件上位遠程

      趙參,王小龍,郝國鋒

      (中科芯集成電路有限公司,江蘇無錫 214072)

      在航空航天、工業(yè)控制、雷達等領(lǐng)域,以現(xiàn)場可編程門陣列(FPGA)+數(shù)字信號處理器(DSP)設(shè)計的設(shè)備使用的非常廣泛,這些設(shè)備通常需要不斷地更新完善系統(tǒng)軟件[1]。對于大型系統(tǒng)有多個設(shè)備和機箱的情況下,通過JTAG 接口連接仿真器的方式進行更新系統(tǒng)軟件,不僅耗時耗力,而且有一定的風(fēng)險,因此不利于設(shè)備的維護和管理[2]。

      文中設(shè)計了基于MicroBlaze 軟核的遠程更新系統(tǒng),把多個設(shè)備和PC 機通過交換機連接在同一個網(wǎng)絡(luò)中,上位機設(shè)定設(shè)備對應(yīng)的IP 地址,可以對相應(yīng)的設(shè)備程序進行更新,通過更改不同的IP 地址,可以對多個設(shè)備進行更新,這樣可以完成對整個系統(tǒng)的更新[3]。通過遠程更新的方式,使得FPGA 和DSP 更新程序的方式更加便捷,有效提高效率。

      1 遠程更新系統(tǒng)架構(gòu)

      遠程更新系統(tǒng)的主要組成如圖1 所示,系統(tǒng)主要包括上位機、PHY、FPGA、DSP 和FLASH。上位機通過網(wǎng)絡(luò)連接到PHY,PHY 芯片連接到FPGA,F(xiàn)PGA通過SPI 接口下發(fā)更新應(yīng)用程序的數(shù)據(jù)到FLASH,F(xiàn)LASH 用于存儲FPGA 的應(yīng)用程序。另外,F(xiàn)PGA 通過UART 和DSP 進行數(shù)據(jù)交互,把DSP 的應(yīng)用程序存儲到DSP 片內(nèi)的FLASH 中[4-5]。

      圖1 硬件系統(tǒng)結(jié)構(gòu)框圖

      2 遠程更新方法

      2.1 FPGA遠程更新方法

      FPGA 的遠程更新功能采用了QuickBoot 的方法,通過快速、健壯的配置方法和高效的基于HDL系統(tǒng)編程設(shè)計的互補組合,將編程方法與基于特殊配置頭的特殊配置方法集成在一起,實現(xiàn)了可靠的遠程更新功能[6-7]。FPGA 的程序加載運行是通過讀取FLASH 中的數(shù)據(jù)進行的,F(xiàn)LASH 包括3 個部分:Header、golden bitstream area 和update bitstream area。Header 包括關(guān)鍵開關(guān)字和熱啟動跳轉(zhuǎn)序列。該系統(tǒng)采用SPI 配置模式,所以關(guān)鍵開關(guān)字為0xAA995566。如果關(guān)鍵開關(guān)字為打開狀態(tài),則執(zhí)行熱啟動跳轉(zhuǎn)序列,然后跳轉(zhuǎn)到update bitstream area 區(qū)域,讀取此區(qū)域中的數(shù)據(jù)配置到FPGA 中運行;如果關(guān)鍵開關(guān)字為關(guān)閉狀態(tài),則繼續(xù)向下讀取數(shù)據(jù),這樣就把golden bitstream area 中 的 數(shù) 據(jù) 配 置 到FPGA 中。FPGA 的 遠程更新主要是更新golden bitstream area 中的配置文件,步驟如下:

      1)擦除關(guān)鍵開關(guān)字的塊或者扇區(qū),使關(guān)鍵開關(guān)字為關(guān)閉狀態(tài);

      2)擦除golden bitstream area 中的配置文件;

      3)將要更新的bit 文件寫入到golden bitstream area 區(qū)域中;

      4)驗證寫入的文件是否正確;

      5)驗證通過后,將關(guān)鍵開關(guān)字打開。

      通過Xilinx 提供的TCL 指令和腳本文件,利用要加載的含有遠程更新功能的bit 文件生成兩個文件:download_initial.mcs和download_update.bin。download_initial.mcs 文件包含上述FLASH 需要的3 個部分,其 中g(shù)olden bitstream area 和update bitstream area 中的配置文件都含有遠程更新的功能。download_update.bin 是上位機下發(fā)的要存儲到FLASH 中update bitstream area 區(qū)域的文件。首先,通過JTAG 燒錄download_initial.mcs 文件到FLASH中,設(shè)備重新上電后,通過上位機下發(fā)download_update.bin 文件,此文件會寫入FLASH 的update bitstream area 區(qū)域,下次上電后,設(shè)備運行的就是更新后的配置文件。如果要更新的文件寫入失敗,則設(shè)備啟動的是golden bitstream area 中的文件,此文件也包含有遠程更新的功能,這樣就保證了可以重新利用上位機下發(fā)更新配置文件寫入到FLASH 的update bitstream area 區(qū)域,完成程序的更新,這樣的配置更新方法增加了系統(tǒng)的可靠性。

      2.2 DSP遠程更新方法

      DSP 上電復(fù)位后,觸發(fā)復(fù)位中斷,中斷指向固化在片內(nèi)ROM 的Bootloader 代碼,此代碼是出廠就存在的引導(dǎo)程序,不可修改。此代碼執(zhí)行后,讀取相關(guān)I/O 口的電平,決定Bootloader 模式并初始化相關(guān)接口,從該接口讀取Bootloader 代碼到DSP 的程序空間,讀取完成后程序指針跳轉(zhuǎn)到此代碼的起始位置并執(zhí)行,將目的源程序復(fù)制到FLASH 中執(zhí)行,實現(xiàn)真正的代碼搬移[8]。上位機發(fā)送DSP 遠程更新文件后,F(xiàn)PGA 啟動配置DSP 的模式管腳電平狀態(tài),使得Bootloader 模式為SCIA 模式,然后通過接口下發(fā)二級引導(dǎo)程序并執(zhí)行,將上位機下發(fā)的源程序搬移到DSP 內(nèi)部的FLASH 中。下次重新上電后,DSP 讀取到I/O 口的默認電平為全高,從而運行DSP 內(nèi)部FLASH 中的程序,完成了DSP 的遠程更新。

      3 遠程更新系統(tǒng)設(shè)計

      3.1 遠程更新主要結(jié)構(gòu)

      FPGA 和DSP 的遠程更新主要是通過FPGA 內(nèi)部的軟核和邏輯設(shè)計實現(xiàn)的[9]。其內(nèi)部主要結(jié)構(gòu)如圖2 所示,F(xiàn)PGA 中使用了MicroBlaze 軟核,軟核中用到了Lwip 協(xié)議,此協(xié)議在保持了TCP 協(xié)議主要功能的基礎(chǔ)上減少了對資源的占用。對于FPGA 的更新,上位機通過以太網(wǎng),將要更新的FPGA 配置文件通過網(wǎng)口下發(fā)給FPGA 內(nèi)部的MicroBlaze 軟核,此軟核通過Lwip 網(wǎng)絡(luò)協(xié)議解析出有效的數(shù)據(jù)后,通過AXI 總線把數(shù)據(jù)傳輸給FPGA 的fpga_load_ctrl 加載模塊,此加載模塊會緩存數(shù)據(jù)并通過SPI 接口把數(shù)據(jù)存儲到FLASH 中。下次上電后,F(xiàn)PGA 從FLASH 中的update bitstream area 區(qū)域加載數(shù)據(jù),從而完成了遠程更新。如果遠程更新過程中配置出現(xiàn)錯誤(比如突然掉電)或者CRC 校驗失敗,那么FPGA 就從golden bitstream area 區(qū)域加載數(shù)據(jù),保證了系統(tǒng)的可靠性[10]。對于DSP 的更新,也是通過上位機下發(fā)DSP的更新配置文件,軟核接收到數(shù)據(jù)后,通過AXI 總線與axi_uart 模塊和dsp_load_ctrl 模塊進行數(shù)據(jù)和指令的交互,把配置文件存儲到DSP 的片上FLASH 中。

      圖2 FPGA內(nèi)部主要結(jié)構(gòu)

      3.2 MicroBlaze軟核設(shè)計

      MicroBlaze 軟核的主要流程如圖3 所示,上位機通過Lwip 協(xié)議解析上位機下發(fā)的數(shù)據(jù)包,提取有效數(shù)據(jù)判斷是否更新FPGA 或DSP,當(dāng)需要更新FPGA或DSP 時,判斷是否滿足發(fā)送數(shù)據(jù)包的條件,當(dāng)滿足時繼續(xù)發(fā)送下一包數(shù)據(jù),直到所有的配置文件數(shù)據(jù)都發(fā)送完畢為止。最后向上位機反饋FPGA 或DSP更新后的狀態(tài),上位機界面顯示更新后的狀態(tài)信息。

      圖3 MicroBlaze軟核主要流程

      3.3 FPGA遠程更新模塊設(shè)計

      FPGA 遠程更新模塊主要是fpga_load_ctrl 模塊的實現(xiàn),流程如圖4 所示。此模塊和MicroBlaze 軟核通過AXI 總線進行數(shù)據(jù)交互,當(dāng)檢測到遠程更新啟動信號后,就開始對FLASH 進行操作。首先擦除FLASH 關(guān)鍵字,然后擦除FLASH 的update bitstream area 區(qū)域,擦除完成后寫入更新配置文件,寫完畢后,驗證寫入的數(shù)據(jù)是否正確,當(dāng)正確時,打開FLASH 關(guān)鍵字,反之則關(guān)閉關(guān)鍵字。操作完成后,反饋給軟核此次更新后的狀態(tài),軟核通過網(wǎng)絡(luò)傳輸給上位機顯示更新狀態(tài)[11]。outDone_X4 拉高后,表示為更新成功的狀態(tài)信息。即使此次更新失敗,下次上電啟動后,F(xiàn)PGA 檢測到FLASH 關(guān)鍵字關(guān)閉,也會繼續(xù)讀取FLASH 中的數(shù)據(jù),從而加載golden bitstream area 區(qū)域中的文件,保證了FPGA 可以正常運行程序。

      圖4 fpga_load_ctrl模塊流程圖

      3.4 DSP遠程更新模塊設(shè)計

      DSP 遠程更新模塊包括兩個部分:dsp_load_ctrl模塊和axi_uart 模塊。dsp_load_ctrl 模塊主要實現(xiàn)二級引導(dǎo)的功能。當(dāng)更新DSP 的啟動標(biāo)志信號有效后,開始通過波特率為9 600 bit/s 的串口發(fā)送二級引導(dǎo)的數(shù)據(jù),發(fā)送完畢后,給軟核反饋數(shù)據(jù)有效標(biāo)志,同時把串口收發(fā)信號切換到axi_uart 模塊,axi_uart模塊通過串口接收軟核發(fā)送過來的配置文件,寫入到DSP 的片內(nèi)FLASH 中[12-13]。

      dsp_load_ctrl 模塊實現(xiàn)的主要功能是對二級引導(dǎo)數(shù)據(jù)的發(fā)送,具體實現(xiàn)過程如下:

      1)發(fā)送數(shù)據(jù)頭,共兩個字節(jié):0x41,0xAA;

      2)發(fā)送二級引導(dǎo)數(shù)據(jù),共7 079 個字節(jié);

      3)延時50 ms;

      4)發(fā)送5個字節(jié):0xD0、0x2A、0x8D、0xFF、0xFE;

      5)DSP 返回9 個字節(jié):0x01、0xE0、0x00、0x00、0xD0、0xF4、0xCA、0xFF、0xFE;

      6)發(fā)送9 個字節(jié):0x00、0x01、0xC2、0x00、0xD9、0x75、0x7B、0xFF、0xFE;

      7)DSP 返回9 個字節(jié):0x00、0x01、0xC2、0x00、0xD9、0x75、0x7B、0xFF、0xFE。

      當(dāng)完成上述過程后,說明二級引導(dǎo)過程成功[14]。然后,把串口收發(fā)接口切換給axi_uart 模塊,通過軟核發(fā)送更新DSP 的應(yīng)用數(shù)據(jù)給到此模塊,波特率為115 200bit/s。

      3.5 遠程更新上位機軟件設(shè)計

      為了實現(xiàn)FPGA 和DSP 遠程更新,用C++語言開發(fā)了遠程更新工具,其內(nèi)部集成了網(wǎng)絡(luò)協(xié)議、自定義的收發(fā)數(shù)據(jù)和控制協(xié)議,通過和FPGA 內(nèi)部的軟核進行數(shù)據(jù)交互,把配置文件下發(fā)出去。首先,填寫IP地址,此IP 地址要和軟核中設(shè)定的IP 地址保持一致,選擇要更新的文件后點擊遠程更新按鍵,上位機通過網(wǎng)絡(luò)開始下發(fā)指令和數(shù)據(jù)給MicroBlaze 軟核,最后軟核反饋遠程更新后的狀態(tài)給上位機,進而在界面上顯示出來[15-20]。圖5 和6 分別是FPGA 和DSP遠程更新成功后的顯示界面。更改IP 地址后,可以遠程更新其他設(shè)備板卡的FPGA 和DSP,這種實現(xiàn)遠程更新的方式不需要任何硬件狀態(tài)的改變,極大地降低了風(fēng)險。

      圖5 FPGA遠程更新成功界面

      4 結(jié)束語

      文中設(shè)計了通過上位機軟件和基于MicroBlaze軟核的硬件設(shè)備進行通信,對多片F(xiàn)PGA 和DSP 進行遠程更新的系統(tǒng)。該設(shè)計方案對設(shè)備的程序升級和維護帶來極大的便利,提高了系統(tǒng)運行可靠性,可以用在許多工程應(yīng)用領(lǐng)域。

      圖6 DSP遠程更新成功界面

      猜你喜歡
      配置文件上位遠程
      讓人膽寒的“遠程殺手”:彈道導(dǎo)彈
      軍事文摘(2022年20期)2023-01-10 07:18:38
      提示用戶配置文件錯誤 這樣解決
      遠程工作狂綜合征
      英語文摘(2021年11期)2021-12-31 03:25:18
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      忘記ESXi主機root密碼怎么辦
      遠程詐騙
      特斯拉 風(fēng)云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      班戈县| 仙游县| 炉霍县| 嘉鱼县| 湖北省| 板桥市| 景洪市| 通道| 区。| 南木林县| 陵川县| 盐源县| 思南县| 黔江区| 阳山县| 色达县| 宣汉县| 开平市| 新建县| 垦利县| 巩义市| 蕲春县| 仁寿县| 两当县| 灌云县| 驻马店市| 神农架林区| 景宁| 台南市| 寿阳县| 邢台市| 新津县| 建宁县| 白水县| 岑巩县| 察哈| 天峨县| 合江县| 彝良县| 太湖县| 明光市|