亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的遠(yuǎn)程快速在線升級技術(shù)研究

        2023-09-05 01:38:16徐思遠(yuǎn)胡瑾賢
        艦船電子對抗 2023年4期
        關(guān)鍵詞:看門狗鏡像上位

        李 霄,徐思遠(yuǎn),胡瑾賢

        (中國船舶集團(tuán)有限公司第七二三研究所,江蘇 揚(yáng)州 225101)

        0 引 言

        現(xiàn)場可編程門陣列(FPGA)以其優(yōu)越的性能在電子對抗裝備中廣泛應(yīng)用,尤其在多通道數(shù)字接收機(jī)、波束合成陣列等復(fù)雜設(shè)備中,FPGA芯片的個數(shù)通常達(dá)數(shù)十甚至上百個。隨著高質(zhì)量發(fā)展理念的不斷推進(jìn),對FPGA進(jìn)行升級和維護(hù)的頻率越來越高[1-2]。使用現(xiàn)有Platform Cable USB調(diào)試器通過JTAG接口進(jìn)行現(xiàn)場升級的調(diào)試方式,僅升級1片F(xiàn)PGA就需要0.5 h左右,故更新維護(hù)具有大量FPGA的設(shè)備通常以天計算,非常耗時[3]。不僅如此,當(dāng)產(chǎn)品已經(jīng)列裝于集成大系統(tǒng)中時,通常需要先進(jìn)行拆解,定位調(diào)試接口,再配合不同的轉(zhuǎn)接頭,通過多次拔插調(diào)試器的方式對每片F(xiàn)PGA依次完成升級,耗費大量人力物力;并且,當(dāng)設(shè)備被極端溫度或震動環(huán)境等因素影響時,長時間的配置過程會導(dǎo)致配置失敗的概率升高,降低其升級可靠性[4]。

        為了提高調(diào)試和試驗效率,降低升級維護(hù)成本,提高系統(tǒng)維護(hù)的可靠性,本文基于FPGA的配置原理,研究了遠(yuǎn)程在線升級Multiboot的方法,提出了FLASH配置區(qū)域的自定義分區(qū)規(guī)劃方法。該方法不需要多次現(xiàn)場拔插JTAG調(diào)試接口,僅通過1根網(wǎng)線就能實現(xiàn)基于千兆以太網(wǎng)的所有FPGA設(shè)備的遠(yuǎn)程在線快速升級,降低了FPGA分批多次配置的復(fù)雜度,大量節(jié)省FPGA升級配置時間及成本。該方法同時具有出錯后及時回退機(jī)制,提高了FPGA升級配置的安全性。

        1 硬件系統(tǒng)實現(xiàn)

        整個系統(tǒng)框圖如圖1所示,電腦端Multiboot升級平臺與各FPGA通過網(wǎng)絡(luò)交換機(jī)相連,通過不同的IP實現(xiàn)遠(yuǎn)程在線升級Multiboot的功能。其中FLASH以串行外固設(shè)備接口(SPI)配置模式與FPGA相連,FPGA收到網(wǎng)絡(luò)數(shù)據(jù)包后解析給Microblaze。Microblaze基于lwip協(xié)議棧,每塊FPGA為獨立的IP,可對多個不同的IP匹配不同的配置文件。lwip協(xié)議棧是一個輕量級開源TCP/IP協(xié)議棧,FPGA片內(nèi)資源占用約1 kB隨機(jī)存取存儲器(RAM)和40 kB 只讀存儲器(ROM),無需操作系統(tǒng)支持,適用于各類主流FPGA平臺。在PC端依次將鏡像通過不同的IP地址發(fā)出,各FPGA分別解析對應(yīng)IP的配置文件,就可以通過1根網(wǎng)線遠(yuǎn)程完成對所有在線FPGA的一鍵配置升級工作。尤其針對任意一片F(xiàn)PGA,其配置操作通過網(wǎng)絡(luò)直接實現(xiàn),而不是Platform Cable USB調(diào)試器,這種機(jī)制大大簡化了配置鏈路,實測1塊FPGA的升級配置只需數(shù)分鐘,配置速度大幅提升。

        圖1 硬件系統(tǒng)框圖

        2 遠(yuǎn)程在線升級Multiboot

        整體流程如圖2所示,FLASH分為5個部分:Golden區(qū)、定時器1、Update區(qū)、定時器2、版本號區(qū),用Tcl腳本把這4個部分整合到1個mcs文件里。FLASH里該5個區(qū)的各個地址排布如表1所示。

        表1 地址排布

        圖2 Multiboot、回退機(jī)制、FLASH存儲結(jié)構(gòu)、配置步驟示意圖

        Golden區(qū):只包含基礎(chǔ)的遠(yuǎn)程升級功能,當(dāng)Update區(qū)數(shù)據(jù)出錯時,FPGA加載此區(qū)鏡像保證系統(tǒng)安全。

        定時器1:設(shè)置尋找Update鏡像SYNC字的最長時間。如果在定時器1計時內(nèi)找到完整的Update鏡像,則Update鏡像正常加載。否則,觸發(fā)回退機(jī)制,FPGA加載Golden鏡像。

        Update區(qū):具有完整功能并帶遠(yuǎn)程升級功能的鏡像,每次升級系統(tǒng)時對當(dāng)前區(qū)進(jìn)行更新數(shù)據(jù)。

        定時器2:設(shè)置加載完整Update鏡像的最長時間。如果在定時器2計時內(nèi)加載了一個完整的Update鏡像,則忽略;否則定時器2觸發(fā)回退機(jī)制,FPGA加載Golden鏡像。

        版本號區(qū):存放當(dāng)前程序的版本號,用于版本控制。

        第1次燒寫用JTAG接口將上述5個部分全部寫入,后續(xù)通過網(wǎng)口更新Update區(qū),其中其他FLASH地址均被保護(hù)。

        2.1 鏡像的生成

        在golden工程的xdc約束文件由以下語句使能Multiboot功能:

        set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x009FFC00 [current_design]

        set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]

        set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

        set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]

        在update工程的xdc約束文件由以下語句使能Multiboot功能:

        set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]

        set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

        set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]

        一個內(nèi)部產(chǎn)生的脈沖(IPROG)由NEXT_CONFIG_ADDR觸發(fā),它設(shè)置了配置跳轉(zhuǎn)到update鏡像,該鏡像的地址保存在golden鏡像的WBSTAR(Warm Boot Start Address)寄存器。其中0x009FFC00是本設(shè)計的定時器1的地址,也就是WBSTAR寄存器值,可根據(jù)實際情況設(shè)置。

        首先生成Golden鏡像,它只包括最基礎(chǔ)的遠(yuǎn)程升級功能。然后根據(jù)項目的功能需求生成Update鏡像,用Xilinx的腳本工具生成Timer1和Timer2鏡像,在VIVADO里用TCL命令生成最終的mcs文件,然后用JTAG燒錄,具體命令如下:

        write_cfgmem -force -format mcs -interface SPIX4 -size 64 -loadbit "up 0x00000000 golden.bit up 0x009FFBFF update.bit"-loaddata “up 0x009FFC00 timer1.bin up 0x009FFFFF version.bin up 0x02C00000 timer2.bin” golden_update_full.mcs

        2.2 FPGA內(nèi)部加載流程

        具體流程如下:

        (1) PFGA在flash地址0處加載Golden鏡像,內(nèi)含的IPROG指令使得跳轉(zhuǎn)到儲存在WBSTAR寄存器里的地址,也就是定時器1的地址。

        (2) 定時器1在較短一段時間內(nèi)開始計時,尋找Update鏡像的SYNC字。

        (3) 如果在定時器1計時內(nèi)找到完整的Update鏡像,則Update鏡像正常加載;如果發(fā)現(xiàn)出錯的或丟失的數(shù)據(jù),例如Update鏡像的起始處沒有SYNC字(AA995566),FPGA忽略數(shù)據(jù)或命令,開始一直往后面的FLASH尋找有效的SYNC字,直到定時器1超時,此時觸發(fā)回退機(jī)制,FPGA加載Golden鏡像。

        (4) 如果在定時器2計時內(nèi)加載了一個完整的Update鏡像,則忽略;如果在定時器2計時內(nèi)發(fā)現(xiàn)Update區(qū)的鏡像的中間或最后的數(shù)據(jù)出現(xiàn)破損,這種情況下FPGA沒有完整加載Update鏡像,定時器2觸發(fā)回退機(jī)制,FPGA加載Golden鏡像。

        2.3 Multiboot上位機(jī)升級軟件

        如圖3所示,上位機(jī)升級軟件通過用戶數(shù)據(jù)協(xié)議(UDP)與FPGA通訊。流程如圖4所示,上位機(jī)發(fā)送FPGA擦除幀,當(dāng)FPGA執(zhí)行命令擦除FLASH成功后,回復(fù)上位機(jī)擦除成功確認(rèn)幀,上位機(jī)開始下發(fā)要升級的數(shù)據(jù)幀,數(shù)據(jù)長度默認(rèn)1024字節(jié)。FPGA收到數(shù)據(jù)幀后首先檢查序列號,判斷是否有丟包、循環(huán)冗余校驗(CRC)校驗錯誤等問題,然后回復(fù)上位機(jī)數(shù)據(jù)確認(rèn)幀。如果數(shù)據(jù)有誤,上位機(jī)就重發(fā)這幀數(shù)據(jù),否則上位機(jī)繼續(xù)發(fā)下一幀。如果連續(xù)丟包3次,說明系統(tǒng)工作異常,則終止本次升級。當(dāng)FPGA正常接收數(shù)據(jù)后會把數(shù)據(jù)寫進(jìn)FLASH,并對數(shù)據(jù)進(jìn)行回讀,確保寫入數(shù)據(jù)的正確性。當(dāng)把所有要升級的數(shù)據(jù)完整無誤寫入FLASH后,FPGA給上位機(jī)上報升級成功確認(rèn)幀,升級結(jié)束。

        圖3 Multiboot升級平臺

        圖4 上位機(jī)流程圖

        3 測試驗證

        3.1 升級速度測試

        使用不同大小的mcs可執(zhí)行文件,對1片型號為xc7vx690tffg1926的Xilinx Virtex-7系列FPGA開發(fā)板進(jìn)行升級速度測試,FLASH類型為mx25u6435f。常規(guī)方法升級時間與本文的升級方法速度對比結(jié)果繪制在圖5中。

        圖5 常規(guī)方法升級時間與本文的升級方法速度對比

        配置大小為10 MB的文件,使用本文方法需要6 min,而常規(guī)方法需要20 min;配置大小為30 MB的文件,使用本文方法只需要12 min,而常規(guī)方法需要接近43 min。本文的遠(yuǎn)程快速升級方式比常規(guī)Platform Cable USB調(diào)試器配置方法升級速度提高了3倍以上。

        考慮實際升級過程,常規(guī)方法在FPGA板卡集成大系統(tǒng)時,對其進(jìn)行拆解、JTAG接口定位、更換調(diào)試轉(zhuǎn)接頭和拔插Platform Cable USB調(diào)試器等操作的時間,本文方法亦可為設(shè)備維護(hù)人員提供更高效的遠(yuǎn)程在線升級環(huán)境,大大提高了FPGA的升級速度。

        3.2 校驗回退機(jī)制測試

        系統(tǒng)通過讀取BOOT_STATUS寄存器各狀態(tài)位的狀態(tài)值判定升級狀態(tài)是否正常。圖6中以ERROR結(jié)尾的狀態(tài)位值均為0,且STATUS_VALID和INTERNAL_PROG值為1,表明成功跳轉(zhuǎn)到Update鏡像,配置正確。

        若發(fā)生錯誤,錯誤類型對應(yīng)ERROR結(jié)尾的狀態(tài)位被拉高,觸發(fā)回退機(jī)制。觸發(fā)回退機(jī)制的錯誤主要有:IDCODE錯誤、CRC錯誤、看門狗定時器超時錯誤等,下面對其測試方法進(jìn)行說明。

        (1) IDCODE錯誤

        在生成的可執(zhí)行文件中找到配置數(shù)據(jù)字0x30018001,0x30018001為IDCODE寄存器指令,后接的數(shù)據(jù)字為IDCODE,將Update鏡像中的IDCODE修改成錯誤的數(shù)據(jù),用網(wǎng)絡(luò)加載損壞的Update鏡像。

        (2) CRC錯誤

        在重設(shè)CRC指令和CRC指令之間手動修改數(shù)據(jù),制造CRC錯誤,驗證配置的正確性,用網(wǎng)絡(luò)加載損壞的Update鏡像。

        (3) 看門狗定時器超時錯誤

        將Update鏡像起始的一個扇區(qū)的FLASH擦除,導(dǎo)致FPGA找不到Update鏡像,產(chǎn)生看門狗定時器超時,用網(wǎng)絡(luò)加載損壞的Update鏡像。

        下面模擬看門狗定時器超時錯誤,測試驗證回退機(jī)制。

        配置錯誤發(fā)生后,PC端BOOT_STATUS寄存器的狀態(tài)如圖7所示。與圖6對比分析:FALLBACK為1表明Update鏡像出錯,觸發(fā)了回退機(jī)制;WATCHDOG_TIMEOUT_ERROR值為1指明錯誤原因為看門狗定時器超時錯誤;STATUS_VALID和INTERNAL_PROG為1表明回退機(jī)制成功啟動并配置了Golden安全鏡像,配置文件回退成功,FPGA以升級前的安全版本繼續(xù)運行。

        圖7 Multiboot回退到Golden鏡像

        另外,在2.3節(jié)圖3中,通過上位機(jī)軟件中的版本號查詢,可直接獲取當(dāng)前的程序版本。

        4 結(jié)束語

        本文基于FPGA可執(zhí)行文件,通過Multiboot技術(shù),對FLASH芯片進(jìn)行自定義分區(qū)規(guī)劃,并分別存放Golden、Timer1、Update以及Timer2。其中,Timer1和Timer2是看門狗,保證燒寫途中斷電或CRC校驗錯誤導(dǎo)致加載失敗后能返回Golden,用戶能夠重新升級,Golden是具有最基礎(chǔ)的遠(yuǎn)程升級功能的鏡像,Update是用戶根據(jù)項目需求生成的鏡像且具有遠(yuǎn)程升級功能。電腦端Multiboot升級平臺在升級下載時與FPGA同時檢查序列號,判斷是否有丟包、CRC校驗錯誤等問題。本文方法采用雙備份方式,安全可靠,確保寫入數(shù)據(jù)的正確性。

        本文為復(fù)雜電子對抗系統(tǒng)維護(hù)過程中大量FPGA的批量升級需求提供了一種解決方法。該方法不需要多次現(xiàn)場拔插設(shè)備JTAG調(diào)試接口,利用設(shè)備自身通信接口進(jìn)行遠(yuǎn)程在線快速升級,從FPGA配置機(jī)制上降低了配置復(fù)雜度,具備出錯后及時回退機(jī)制。本文方法能夠節(jié)省FPGA升級配置時間及成本,降低FPGA分批多次配置的復(fù)雜度,提高FPGA升級配置的安全性,可為平日或戰(zhàn)時設(shè)備維護(hù)升級爭取大量寶貴時間,亦對通用硬件架構(gòu)的軟件可重定義提供了快速實現(xiàn)途徑,具有一定的工程實用價值。

        猜你喜歡
        看門狗鏡像上位
        鏡像
        把他叫醒
        鏡像
        小康(2018年23期)2018-08-23 06:18:52
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        “三扶”齊上位 決戰(zhàn)必打贏
        基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
        一種采用FPGA實現(xiàn)的通用看門狗電路
        大眾科技(2015年11期)2015-11-24 01:57:16
        以新思路促推現(xiàn)代農(nóng)業(yè)上位
        把它叫醒
        鏡像
        小康(2015年4期)2015-03-31 14:57:40
        97久久婷婷五月综合色d啪蜜芽| 最新国产美女一区二区三区| 亚洲国产av中文字幕| 456亚洲人成在线播放网站| 亚洲一区二区三区高清视频| 国产一品二品三品精品在线| 人妻丝袜av中文系列先锋影音| 欧美日韩中文制服有码| 区一区一日本高清视频在线观看| 亚洲不卡在线免费视频| 国产一区二区三区在线电影| 草莓视频成人| 久久精品国产亚洲av桥本有菜| 亚洲精品中文字幕视频色| 精品无码国产自产拍在线观看蜜| 成人区人妻精品一区二区不卡网站| 精品一区二区三区人妻久久| 国产自拍偷拍视频免费在线观看| 国产午夜福利在线观看红一片| 国模私拍福利一区二区| 亚洲中文字幕熟女五十| 国产一区二区三区av天堂| 中国内射xxxx6981少妇| 国产精品白浆视频免费观看| 国产激情小视频在线观看| 国产av国片精品有毛| 欧美黑人乱大交| 亚洲视频在线播放免费视频| 国产一区二区三区在线蜜桃| 欧美黑人性暴力猛交喷水黑人巨大| 久久久久国产一级毛片高清版A| 午夜宅男成人影院香蕉狠狠爱 | 亚洲春色视频在线观看| 国产精品蝌蚪九色av综合网| 日韩高清在线观看永久| 亚洲欧洲日产国码无码| 中文字幕精品一区二区的区别| 粗大的内捧猛烈进出视频| 小12箩利洗澡无码视频网站| 日本91一区二区不卡| 日日摸天天碰中文字幕你懂的|