999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MicroBlaze 的多FPGA 及DSP 遠程更新系統設計

2021-04-30 07:25:12趙參王小龍郝國鋒
電子設計工程 2021年7期
關鍵詞:程序設備系統

趙參,王小龍,郝國鋒

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

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

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

1 遠程更新系統架構

遠程更新系統的主要組成如圖1 所示,系統主要包括上位機、PHY、FPGA、DSP 和FLASH。上位機通過網絡連接到PHY,PHY 芯片連接到FPGA,FPGA通過SPI 接口下發更新應用程序的數據到FLASH,FLASH 用于存儲FPGA 的應用程序。另外,FPGA 通過UART 和DSP 進行數據交互,把DSP 的應用程序存儲到DSP 片內的FLASH 中[4-5]。

圖1 硬件系統結構框圖

2 遠程更新方法

2.1 FPGA遠程更新方法

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

1)擦除關鍵開關字的塊或者扇區,使關鍵開關字為關閉狀態;

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

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

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

5)驗證通過后,將關鍵開關字打開。

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

2.2 DSP遠程更新方法

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

3 遠程更新系統設計

3.1 遠程更新主要結構

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

圖2 FPGA內部主要結構

3.2 MicroBlaze軟核設計

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

圖3 MicroBlaze軟核主要流程

3.3 FPGA遠程更新模塊設計

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

圖4 fpga_load_ctrl模塊流程圖

3.4 DSP遠程更新模塊設計

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

dsp_load_ctrl 模塊實現的主要功能是對二級引導數據的發送,具體實現過程如下:

1)發送數據頭,共兩個字節:0x41,0xAA;

2)發送二級引導數據,共7 079 個字節;

3)延時50 ms;

4)發送5個字節:0xD0、0x2A、0x8D、0xFF、0xFE;

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

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

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

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

3.5 遠程更新上位機軟件設計

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

圖5 FPGA遠程更新成功界面

4 結束語

文中設計了通過上位機軟件和基于MicroBlaze軟核的硬件設備進行通信,對多片FPGA 和DSP 進行遠程更新的系統。該設計方案對設備的程序升級和維護帶來極大的便利,提高了系統運行可靠性,可以用在許多工程應用領域。

圖6 DSP遠程更新成功界面

猜你喜歡
程序設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 最近最新中文字幕在线第一页| 国产永久无码观看在线| 亚洲视频色图| 国产美女无遮挡免费视频| 成人免费网站久久久| 国产精品性| 亚洲第一黄色网| 久久国产高清视频| 免费A级毛片无码无遮挡| 亚洲男人天堂久久| a亚洲天堂| 国产欧美日韩综合一区在线播放| 色网站免费在线观看| 黄色免费在线网址| 91福利免费| 福利小视频在线播放| 操国产美女| 亚洲女人在线| 欧美综合成人| 伊人久久大香线蕉成人综合网| 99久久精品国产麻豆婷婷| 久久一日本道色综合久久| 久久视精品| 亚洲天堂视频在线免费观看| 美女一级免费毛片| 亚洲日韩久久综合中文字幕| 国产不卡一级毛片视频| 无码又爽又刺激的高潮视频| 毛片免费在线视频| 国产拍揄自揄精品视频网站| 久久国产精品麻豆系列| 99久久人妻精品免费二区| 亚洲日韩每日更新| 国内a级毛片| 91在线无码精品秘九色APP | 激情综合网址| 9啪在线视频| 熟妇丰满人妻| 亚洲中文字幕在线观看| 精品国产成人高清在线| 久久夜色撩人精品国产| 91亚洲影院| 欧美精品啪啪| 色爽网免费视频| 精品视频第一页| 亚洲热线99精品视频| 亚洲欧美另类日本| 欧美福利在线播放| 啪啪永久免费av| 亚洲人成网站18禁动漫无码| 久久a级片| 丁香五月激情图片| 久久香蕉国产线看观看式| 综合久久久久久久综合网| 热99精品视频| 成人免费黄色小视频| 亚洲熟妇AV日韩熟妇在线| 国产成人一二三| 波多野结衣第一页| 亚洲另类国产欧美一区二区| 日日碰狠狠添天天爽| 91无码视频在线观看| 久久福利网| 色悠久久综合| 成人国产一区二区三区| 伊人91视频| 国产精品露脸视频| 日韩乱码免费一区二区三区| 久久久久免费看成人影片| 亚洲人妖在线| 五月婷婷伊人网| 黄色国产在线| 国产91成人| 一本综合久久| 国产免费好大好硬视频| 99在线观看免费视频| 国产在线日本| 一级毛片网| 亚洲日韩欧美在线观看| AV不卡无码免费一区二区三区| 伦精品一区二区三区视频| 亚州AV秘 一区二区三区|