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

基于以太網(wǎng)的FPGA遠(yuǎn)程升級可靠性設(shè)計(jì)

2020-05-15 09:58:40康志杰

康志杰

摘要:現(xiàn)場可編程門陣列(FPGA)廣泛應(yīng)用在通信及信息處理等眾多領(lǐng)域,傳統(tǒng)的基于本地開發(fā)環(huán)境的FPGA升級方式無法滿足工程現(xiàn)場維護(hù)的需求,基于以太網(wǎng)傳輸方式設(shè)計(jì)了FPGA遠(yuǎn)程升級系統(tǒng)方案,實(shí)現(xiàn)對FPGA配置文件的更新,為產(chǎn)品的升級維護(hù)提供了便利。升級過程中的異常情況,通過分析數(shù)據(jù)處理流程和引發(fā)常見問題的異常情況,分別設(shè)計(jì)了不同的異常處理機(jī)制,解決了遠(yuǎn)程升級失敗的問題。對異常處理機(jī)制進(jìn)行了充分測試,驗(yàn)證了設(shè)計(jì)的可靠性。

關(guān)鍵詞:現(xiàn)場可編程門陣列;遠(yuǎn)程升級;可靠性

中圖分類號:TP393文獻(xiàn)標(biāo)志碼:A文章編號:1008-1739(2020)08-61-4

0引言

現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)具有并行處理架構(gòu),高速數(shù)據(jù)處理能力遠(yuǎn)優(yōu)于一般CPU,因而在航空航天、醫(yī)療設(shè)備、通信、汽車及工控等領(lǐng)域得到了廣泛應(yīng)用[1]。而FPGA的配置文件升級維護(hù),通常需要工程人員到現(xiàn)場利用JTAG進(jìn)行升級。當(dāng)待升級設(shè)備和技術(shù)人員處在不同地點(diǎn)時(shí),傳統(tǒng)的升級方式將造成時(shí)間和人力的浪費(fèi)。而遠(yuǎn)程在線升級技術(shù),可以利用以太網(wǎng)實(shí)現(xiàn)設(shè)備升級,不受人機(jī)地點(diǎn)的限制。此外,基于以太網(wǎng)的升級方式可以同時(shí)進(jìn)行大批量的設(shè)備升級。目前針對遠(yuǎn)程升級的方案,主要有利用FPGA內(nèi)部邏輯更新Flash[2-3]和利用CPU直接更新Flash[4]。通常情況下,遠(yuǎn)程升級成功的關(guān)鍵在于升級包數(shù)據(jù)準(zhǔn)確無誤地寫入Flash,在升級包數(shù)據(jù)傳輸過程中一旦發(fā)生斷電、傳輸錯(cuò)誤及CPU軟復(fù)位等異常,F(xiàn)lash中原有的配置文件完整性可能被破壞,這種情況下只能依賴JTAG重新下載配置文件。為規(guī)避這些異常帶來的風(fēng)險(xiǎn),本文針對CPU+FPGA架構(gòu)類型的板卡,提出了一種可靠的FPGA遠(yuǎn)程升級方案,已成功應(yīng)用在通信系統(tǒng)上。

1遠(yuǎn)程升級關(guān)鍵技術(shù)

對于CPU+FPGA架構(gòu)類型的板卡,在遠(yuǎn)程升級過程中需要解決CPU軟復(fù)位、板卡意外斷電及數(shù)據(jù)傳輸錯(cuò)誤等關(guān)鍵問題。

如果不做特殊處理,升級失敗就會導(dǎo)致FPGA無法加載,產(chǎn)生災(zāi)難性后果。一旦發(fā)生,只能拆開設(shè)備通過JTAG重新下載程序。針對這些問題,分別設(shè)計(jì)了不同的處理技術(shù)以實(shí)現(xiàn)升級的穩(wěn)定可靠。

1.1握手幀和傳輸狀態(tài)機(jī)技術(shù)

升級過程中,CPU可能在任意時(shí)刻軟復(fù)位,從而導(dǎo)致數(shù)據(jù)傳輸中斷。針對該情況,設(shè)計(jì)了CPU和FPGA握手幀格式,如圖1所示。

FPGA處理升級包的狀態(tài)機(jī),如圖2所示。

上述狀態(tài)機(jī)中設(shè)計(jì)了超時(shí)計(jì)數(shù)狀態(tài),用來處理CPU因復(fù)位導(dǎo)致的意外停發(fā)。在幀頭標(biāo)志字接收、配置地址長度字接收、rbf文件接收下發(fā)及校驗(yàn)結(jié)果接收等狀態(tài)時(shí),若在限定時(shí)間內(nèi)未接收到CPU的數(shù)據(jù),該狀態(tài)機(jī)將強(qiáng)制回到空閑狀態(tài),以等待下次升級。

1.2 Flash狀態(tài)字保護(hù)技術(shù)

意外斷電發(fā)生在FPGA訪問Flash期間,會對系統(tǒng)產(chǎn)生影響,其他時(shí)間斷電不會對系統(tǒng)產(chǎn)生任何影響,只需重新上電,系統(tǒng)即可恢復(fù)到升級前狀態(tài)。因此,需要對訪問Flash期間的意外斷電進(jìn)行保護(hù),升級過程中FPGA訪問Flash流程,如圖3所示。

在FPGA訪問Flash時(shí),首先擦除狀態(tài)字節(jié)(地址0x7FFFF),待訪問完畢后,重新在狀態(tài)字打上0xA5標(biāo)志,這樣任何時(shí)刻在訪問Flash時(shí)發(fā)生斷電,再次上電時(shí),因不滿足由出廠配置跳轉(zhuǎn)到用戶配置的條件,系統(tǒng)只停留在出廠配置運(yùn)行。出廠配置中包含升級功能,可重新啟動升級過程,該方法能有效避免斷電帶來的“災(zāi)難性”影響。

1.3數(shù)據(jù)傳輸保護(hù)技術(shù)

升級過程中,升級包字節(jié)傳輸錯(cuò)誤同樣會導(dǎo)致不可預(yù)知的程序功能異常,為保證整個(gè)鏈路數(shù)據(jù)正確傳輸,整個(gè)升級過程共包含3次校驗(yàn),有效保證了數(shù)據(jù)的正確傳輸。

第1次校驗(yàn):升級包由PC機(jī)下發(fā)到板卡的CPU,升級包內(nèi)包含MD5校驗(yàn)字節(jié),CPU在收到升級包后,同樣會進(jìn)行MD5值計(jì)算,計(jì)算所得結(jié)果與升級包內(nèi)MD5校驗(yàn)字節(jié)進(jìn)行比對,若一致,則認(rèn)為升級包正常接收,否則會提示升級失敗。該次校驗(yàn)保證了數(shù)據(jù)包從PC機(jī)到板卡CPU的正確傳輸。

第2次校驗(yàn):CPU與FPGA的握手幀CRC校驗(yàn),主要為了保證握手幀中用戶配置地址和升級包長度接收無誤。如果該部分字節(jié)錯(cuò)誤,可能造成Flash內(nèi)原始固化的出廠文件損壞或?qū)懭脲e(cuò)誤的用戶配置,這種情況下可能造成系統(tǒng)“變磚”。借助CRC校驗(yàn),有效避免了這種情況的發(fā)生。

第3次校驗(yàn):CPU下發(fā)的升級包和FPGA從Flash回讀的升級包進(jìn)行對比,完全一致后,CPU向上位機(jī)和FPGA分別發(fā)送升級成功標(biāo)志,這樣保證了要升級的程序正確寫到了Flash內(nèi)部,避免升級完成后程序功能出現(xiàn)異常。

2遠(yuǎn)程升級系統(tǒng)方案

2.1系統(tǒng)架構(gòu)

遠(yuǎn)程升級系統(tǒng)架構(gòu)如圖4所示。

升級文件經(jīng)由PC機(jī)、網(wǎng)線、CPU及FPGA傳輸?shù)紽lash配置芯片[5]。

2.2 CPU端處理框圖

PC機(jī)通過以太網(wǎng)與CPU進(jìn)行數(shù)據(jù)交互,CPU內(nèi)模塊處理流程圖,如圖5所示。

PC端上位機(jī)下發(fā)的升級包包含rbf文件(依賴于FPGA綜合工具生成)和隨路MD5校驗(yàn)值兩部分。CPU接收到升級包后提取rbf文件,計(jì)算MD5,與隨路MD5校驗(yàn)值比較,如果二者一致,則認(rèn)為CPU正確地接收了升級包。然后CPU與FPGA握手,提取rbf文件下發(fā)到FPGA中,等待FPGA從Flash回讀rbf文件進(jìn)行校驗(yàn),最后下發(fā)校驗(yàn)結(jié)果到FPGA并且上報(bào)到PC端。

2.3 FPGA端處理流程圖

FPGA端處理框圖如圖6所示。

各個(gè)模塊的功能如下:

①Flash管理模塊:負(fù)責(zé)接收升級數(shù)據(jù)包、升級完成后向上發(fā)送回讀數(shù)據(jù)包及升級完成后指導(dǎo)配置切換模塊切換配置文件。

②配置切換模塊:負(fù)責(zé)用戶配置和出廠配置的切換。

③用戶邏輯:為用戶自定義功能邏輯塊。

④UART_ASMI模塊:工作在50 MHz時(shí)鐘下,負(fù)責(zé)從串口接收數(shù)據(jù),串行轉(zhuǎn)并行后發(fā)送到ASMI_FIFO中,接收UART_FIFO發(fā)送過來的數(shù)據(jù)并行轉(zhuǎn)串行向上發(fā)送。

⑤ASMI_FIFO,UART_FIFO模塊:負(fù)責(zé)進(jìn)行時(shí)鐘域的轉(zhuǎn)換,UART_ASMI與FIFO交互時(shí)鐘為50 MHz,ASMI_CONTROL模塊與FIFO交互時(shí)鐘為10 MHz。

⑥ASMI_CONTROL:負(fù)責(zé)控制ASMI_UPDATE(ASMI_PARALLEL)核,向外部串行Flash寫入升級數(shù)據(jù),從Flash讀取升級數(shù)據(jù)包,擦除Flash等。

⑦ASMI_UPDATE_IP:訪問外部Flash的IP,該IP核直接控制Flash的讀寫。

⑧RU_CB及REMOTE_ UPDATE_IP:負(fù)責(zé)出廠配置文件和用戶配置文件的切換。

FPGA遠(yuǎn)程升級程序流程圖如圖7所示。

3 Flash地址空間及配置文件跳轉(zhuǎn)

FPGA升級完成后,能正常運(yùn)行的條件是:①Flash內(nèi)部按預(yù)設(shè)的地址空間存儲著正確的配置文件;②由出廠配置向用戶配置的跳轉(zhuǎn)關(guān)系成立。

3.1 Flash地址空間分配

Flash芯片內(nèi)部地址空間如圖8所示。

出廠配置文件(FAC)存儲在Flash存儲空間的前半部分,F(xiàn)AC內(nèi)包含升級功能及用戶基本功能。而用戶配置文件存放在0x40000~0x7FFFE的地址空間。0x7FFFF地址用來存儲狀態(tài)字,用來標(biāo)識用戶配置文件是否正確完好。

3.2配置文件跳轉(zhuǎn)

Flash內(nèi)配置文件跳轉(zhuǎn)關(guān)系如圖9所示。

板卡出廠情況下,F(xiàn)lash內(nèi)要固化出廠配置和用戶配置文件。板卡上電后,系統(tǒng)應(yīng)能正確檢測出用戶配置文件的正確與否,然后決定是否由出廠配置文件跳轉(zhuǎn)到用戶配置文件去執(zhí)行。

一旦Flash內(nèi)部存儲的出廠配置文件、用戶配置文件被破壞,配置文件將無法正常執(zhí)行,這種情況下只能依賴JTAG重新下載出廠配置文件。升級過程中的意外斷電和CPU軟復(fù)位,將會造成用戶配置文件被破壞。而數(shù)據(jù)傳輸錯(cuò)誤可能造成出廠配置文件、用戶配置文件被破壞。在用戶配置文件被破壞的條件下,仍然需要依賴出廠配置文件重新遠(yuǎn)程升級,實(shí)現(xiàn)新的用戶配置文件的寫入。因此,遠(yuǎn)程升級的關(guān)鍵技術(shù)在于:在意外斷電、數(shù)據(jù)傳輸錯(cuò)誤和CPU軟復(fù)位情況發(fā)生后,系統(tǒng)仍然能夠再次遠(yuǎn)程升級,而不是通過JTAG去下載。

4測試結(jié)果及分析

4.1測試環(huán)境

測試硬件環(huán)境為通信系統(tǒng)板卡,板載CPU是NXP的SOC芯片,F(xiàn)PGA是ALTERA的EP4C,上位機(jī)軟件是自研管理軟件。上位機(jī)能獲取FPGA正在運(yùn)行的配置文件版本號,從而能夠驗(yàn)證升級成功與否[6]。FPGA出廠配置文件版本號為V01,初始用戶配置文件版本號為V02,升級后的用戶配置文件版本號為V03。

4.2測試用例及結(jié)果

測試1:CPU意外軟復(fù)位對升級的影響

設(shè)計(jì)了4個(gè)時(shí)刻插入CPU軟復(fù)位,測試結(jié)果如表1所示。

通過測試,在CPU異常軟復(fù)位后,系統(tǒng)均能重新利用網(wǎng)絡(luò)進(jìn)行升級。其中,在測試用例4的測試情況下,板卡重上電后,由于用戶配置已被擦除,故只能執(zhí)行出廠配置。在出廠配置運(yùn)行時(shí),可以重新進(jìn)行升級。上述測試用例每個(gè)進(jìn)行100次測試,最終能100%升級成功。

測試2:板卡意外斷電對升級的影響

設(shè)計(jì)了2個(gè)測試用例測試升級過程中意外斷電的影響,測試結(jié)果如表2所示。

每個(gè)測試用例均測試100次,最終100%升級成功。測試結(jié)果表明,在系統(tǒng)升級過程中,因異常斷電導(dǎo)致的系統(tǒng)升級失敗,在重新上電后,能重新利用網(wǎng)絡(luò)進(jìn)行再次升級。

測試3:數(shù)據(jù)傳輸錯(cuò)誤對升級的影響

為測試對抗數(shù)據(jù)傳輸錯(cuò)誤的能力,對數(shù)據(jù)傳輸鏈路上部分字節(jié)進(jìn)行修改后,測試結(jié)果如表3所示。

當(dāng)握手幀出現(xiàn)錯(cuò)誤字節(jié)后,均無法成功握手。此外,故意修改FPGA從Flash回讀的配置文件,當(dāng)送到CPU校驗(yàn)時(shí),無法通過校驗(yàn)。測試結(jié)果表明,設(shè)計(jì)方案能應(yīng)對數(shù)據(jù)傳輸中出現(xiàn)的錯(cuò)誤。

5結(jié)束語

通過工程實(shí)際測試,該遠(yuǎn)程升級方法實(shí)現(xiàn)簡單、穩(wěn)定可靠,不會導(dǎo)致系統(tǒng)“變磚”,不需要修改硬件,易于移植。適用于大批量、非易接觸設(shè)備的板卡升級,已在多種板卡上應(yīng)用。

參考文獻(xiàn)

[1]劉永恩,王俊芳.FPGA遠(yuǎn)程升級技術(shù)的分析與實(shí)現(xiàn)[J].無線電工程,2012,42(9):48-50,60.

[2]閆雙山,胡學(xué)龍,季靜,等.串口更新FPGA配置文件的一種實(shí)現(xiàn)方法[J].國外電子測量技術(shù),2019,38(10):79-83.

[3]丁丁,湯曉斌,陳立德,等.基于μClinux的FPGA遠(yuǎn)程更新系統(tǒng)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2014,40(3):6-8.

[4]姚遠(yuǎn).基于JTAG接口實(shí)現(xiàn)ARM對FPGA的Firmware遠(yuǎn)程配置[D].沈陽:沈陽航空航天大學(xué),2011.

[5]李強(qiáng),羅超,夏威,等.FPGA遠(yuǎn)程更新系統(tǒng)[J].儀表技術(shù)與傳感器,2014(7):72-74.

[6]周瓊,周鵬.單核FPGA系統(tǒng)的可靠性遠(yuǎn)程升級設(shè)計(jì)[J].中國新通信,2018,20(2):47-49.

主站蜘蛛池模板: 国产精品女主播| 久久综合色播五月男人的天堂| 久久免费精品琪琪| AV无码无在线观看免费| 久久性妇女精品免费| 日本午夜网站| 免费啪啪网址| 国产最爽的乱婬视频国语对白| 亚洲综合激情另类专区| 欧美一区二区福利视频| 精品国产免费观看| 国产精品主播| 无码久看视频| 日韩精品欧美国产在线| 亚洲成a人在线播放www| 全部毛片免费看| 在线免费a视频| 一区二区理伦视频| 成人午夜精品一级毛片| 日本国产一区在线观看| 久久久久免费精品国产| 日韩中文字幕免费在线观看| 久久这里只有精品8| 亚洲娇小与黑人巨大交| 特级毛片8级毛片免费观看| 国产69精品久久久久妇女| 亚洲成av人无码综合在线观看| 成人午夜视频免费看欧美| 国产成人资源| 四虎AV麻豆| 深爱婷婷激情网| 久久久久久久久久国产精品| 大学生久久香蕉国产线观看| 少妇精品在线| 国产第八页| 国产成人1024精品| 国产精品福利尤物youwu| 国产成人一区| 日本一区二区三区精品视频| 99国产精品免费观看视频| 欧美一区二区啪啪| 欧美日韩在线亚洲国产人| a欧美在线| 五月天丁香婷婷综合久久| 99精品免费欧美成人小视频| 久久综合婷婷| 中国国语毛片免费观看视频| 亚洲美女一级毛片| 在线欧美国产| 日韩在线成年视频人网站观看| 97国内精品久久久久不卡| 精品福利国产| 国产成人无码AV在线播放动漫 | 国产精品自在在线午夜| 国产成人高清精品免费5388| 亚洲开心婷婷中文字幕| 欧美.成人.综合在线| 免费全部高H视频无码无遮掩| 狠狠干综合| 欧亚日韩Av| 免费观看无遮挡www的小视频| 一区二区无码在线视频| 四虎成人在线视频| 国产一区二区三区视频| 日韩a在线观看免费观看| 国产网站在线看| 亚洲三级影院| 日本精品一在线观看视频| 久久婷婷五月综合色一区二区| 国产AV无码专区亚洲精品网站| 国产午夜精品一区二区三区软件| a毛片免费观看| 国产成人精品午夜视频'| 日韩免费中文字幕| 亚洲精品男人天堂| 国产精品冒白浆免费视频| 国产精品99久久久| 又大又硬又爽免费视频| 草逼视频国产| 国产精品手机视频一区二区| 又粗又大又爽又紧免费视频| 亚洲无码视频喷水|