• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于RapidIO的FPGA遠(yuǎn)程更新系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    2018-01-15 19:47:36
    關(guān)鍵詞:校驗(yàn)報(bào)文遠(yuǎn)程

    (中國電子科技集團(tuán)公司第十研究所,四川成都610036)

    0 引言

    近年來,隨著FPGA規(guī)模和性能的不斷提升,使得FPGA在航電系統(tǒng)綜合集成方向有著廣泛的使用。通過構(gòu)建通用的硬件處理平臺(tái),注入不同的FPGA軟件,實(shí)現(xiàn)系統(tǒng)的多種功能,以支持系統(tǒng)長生命周期持續(xù)、迭代、滾動(dòng)發(fā)展[1]。

    通常,FPGA程序更新都是通過JTAG下載電纜連接計(jì)算機(jī)進(jìn)行配置,采用邊界掃描方式對(duì)FPGA外圍FLASH芯片進(jìn)行編程實(shí)現(xiàn)[2]。上述方法適合在規(guī)模較小的產(chǎn)品研制初期使用;在產(chǎn)品研制后期,對(duì)于大型航電系統(tǒng)來說,若依然采用JTAG下載方式進(jìn)行FPGA程序維護(hù)更新,就變得操作繁瑣、效率低下[3-4]。尤其對(duì)交付的系統(tǒng)設(shè)備,一般都不預(yù)留JTAG接口;同時(shí),對(duì)于已交付的設(shè)備經(jīng)常插拔JTAG仿真器,也會(huì)對(duì)硬件有所損傷。

    采用遠(yuǎn)程在線更新的方式,可以解決產(chǎn)品研制后期FPGA程序維護(hù)更新效率低下的問題。對(duì)于FPGA在線更新,國內(nèi)相關(guān)文獻(xiàn)主要是基于處理器、接口芯片連接FPGA的方式進(jìn)行[5-8]。文獻(xiàn)[5-8]分別研究了通過PPC處理器本地總線、CPLD芯片、DSP處理器EMIF總線、CPCI總線接口芯片實(shí)現(xiàn)FPGA程序更新。以上加載FLASH的方式都是基于單個(gè)FPGA或者幾個(gè)FPGA進(jìn)行的,對(duì)大型航電系統(tǒng)中,幾十、上百個(gè)FPGA芯片程序更新、移植使用,會(huì)使系統(tǒng)硬件架構(gòu)變得非常復(fù)雜。

    本文針對(duì)大型航電系統(tǒng)中FPGA節(jié)點(diǎn)程序更新,提出了一種基于RapidIO總線的FPGA遠(yuǎn)程在線更新方案,并將該方案成功運(yùn)用于信號(hào)與信息處理機(jī)平臺(tái)中。

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

    傳統(tǒng)設(shè)計(jì)中,大型航電系統(tǒng)內(nèi)各子系統(tǒng)因硬件平臺(tái)不同而采用了不同的通信總線協(xié)議,不僅增加系統(tǒng)的復(fù)雜性,還降低了系統(tǒng)的可靠性和實(shí)時(shí)性。為取得好的效費(fèi)比,大型航電系統(tǒng)中趨向于使用單一類型的通信總線協(xié)議實(shí)現(xiàn)子系統(tǒng)內(nèi)、子系統(tǒng)間的互連[9]。作為一種可靠性、開放式互連架構(gòu),RapidIO以其高效率、高穩(wěn)定性、低成本的特點(diǎn),為系統(tǒng)內(nèi)各處理器間互連通信提供了高帶寬、低延遲數(shù)據(jù)傳輸?shù)慕鉀Q方案[10]。

    FPGA程序遠(yuǎn)程更新正是基于航電系統(tǒng)內(nèi)統(tǒng)一高速互連總線RapidIO進(jìn)行設(shè)計(jì)實(shí)現(xiàn)的,其結(jié)構(gòu)框圖如圖1所示。PC機(jī)讀取待更新FPGA節(jié)點(diǎn)鏡像升級(jí)文件,通過以太網(wǎng)傳輸配置文件,從PPC節(jié)點(diǎn)下發(fā)控制命令和數(shù)據(jù)報(bào)文,經(jīng)SRIO交換網(wǎng)絡(luò)傳輸至FPGA中,FLASH芯片專用配置邏輯將程序依次寫入指定的FLASH更新區(qū)域。更新完成后,FPGA將會(huì)觸發(fā)專用升級(jí)電路,重新加載FLASH更新區(qū)域的新程序,從而實(shí)現(xiàn)FPGA程序遠(yuǎn)程更新。

    圖1 FPGA遠(yuǎn)程更新系統(tǒng)架構(gòu)框圖

    整個(gè)更新過程由FPGA節(jié)點(diǎn)內(nèi)部在線更新專用程序自動(dòng)完成,無須外部干預(yù)。多個(gè)FPGA芯片在線更新流程可以同時(shí)進(jìn)行,不同F(xiàn)PGA芯片通過設(shè)備ID進(jìn)行區(qū)分。

    2 硬件設(shè)計(jì)

    基于VITA46標(biāo)準(zhǔn)的某綜合化信號(hào)與信息處理機(jī)平臺(tái)如圖2所示,采用上下兩層結(jié)構(gòu),每層10個(gè)插槽。機(jī)架內(nèi)部模塊間采用1X模式、2.5 Gbit/s速率SRIO(串行RapidIO)高速總線進(jìn)行互連。

    圖2 綜合化信號(hào)與信息處理機(jī)平臺(tái)

    FPGA芯片部署在信號(hào)處理模塊內(nèi),每個(gè)信號(hào)處理模塊由4個(gè)FPGA芯片組成。本平臺(tái)包括6個(gè)信號(hào)處理模塊,共24個(gè)FPGA芯片。

    3 軟件設(shè)計(jì)

    為了使在線更新功能不影響FPGA本身功能軟件的使用,本設(shè)計(jì)采用軟件虛通道的思路進(jìn)行。以軟件異構(gòu)的方式在FPGA節(jié)點(diǎn)與PPC處理器節(jié)點(diǎn)之間創(chuàng)建實(shí)時(shí)通信鏈路,配置多個(gè)虛通道,每個(gè)虛通道對(duì)應(yīng)一個(gè)邏輯通道號(hào)。功能軟件工作在通用邏輯通道,在線更新功能工作在在線更新專用邏輯通道,二者獨(dú)立,互不影響。同時(shí),當(dāng)更新通道中的PPC節(jié)點(diǎn)發(fā)生故障時(shí),上層系統(tǒng)管理軟件可以通過軟件重構(gòu)的方式,選用其他處理器節(jié)點(diǎn)替代故障PPC節(jié)點(diǎn),完成FPGA在線更新功能。

    FPGA節(jié)點(diǎn)作為整個(gè)在線更新設(shè)計(jì)的核心控制部分,采用模塊化設(shè)計(jì),通過VHDL語言編程的方式實(shí)現(xiàn)。按照功能模塊劃分,主要包括SRIO IP核、RIO接口適配模塊、指令控制模塊、數(shù)據(jù)緩存模塊、數(shù)據(jù)回讀模塊、數(shù)據(jù)校驗(yàn)?zāi)K和FLASH控制模塊。FPGA節(jié)點(diǎn)內(nèi)部模塊框圖如圖3所示。

    在線更新時(shí),數(shù)據(jù)傳輸出錯(cuò)或者數(shù)據(jù)未能正常寫入FLASH中,輕者導(dǎo)致本次在線更新失敗,重者導(dǎo)致板卡損壞,其后果無法估量。為了保證在線更新正確無誤,FPGA節(jié)點(diǎn)在接收、燒寫鏡像文件時(shí)采用了多級(jí)校驗(yàn)機(jī)制,所有的報(bào)文都必須返回ack,當(dāng)確認(rèn)節(jié)點(diǎn)處理好上一個(gè)文件數(shù)據(jù)之后,再傳送下一幀數(shù)據(jù)。確保燒寫到FLASH中的數(shù)據(jù)與原始鏡像文件完全一致。數(shù)據(jù)幀交互機(jī)制如圖4所示。

    圖3 FPGA節(jié)點(diǎn)內(nèi)部模塊框圖

    圖4 數(shù)據(jù)幀交互機(jī)制

    3.1 SRIO IP核

    使用Xilinx FPGA內(nèi)部SRIO IP核,選擇1X模式、2.5 Gbit/s速率,時(shí)鐘頻率為125 MHz,器件ID為8位,通信采用基本HELLO包格式,支持內(nèi)存映射與消息機(jī)制的通信類型。

    通常,串行FLASH與并行FLASH都支持page寫的方式,即一次寫入256 B。采用內(nèi)存映射寫方式,單個(gè)數(shù)據(jù)包最大有效數(shù)據(jù)載荷也是256 B。因此,約定每次寫入FLASH數(shù)據(jù)最大長度為256 B,使得SRIO傳輸效率最大化,也方便后續(xù)FLASH寫處理流程的實(shí)現(xiàn)。

    3.2 RIO接口適配模塊

    接口適配模塊作為FPGA與SRIO交換網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸通道,一方面,接收來自外部PPC節(jié)點(diǎn)的數(shù)據(jù)報(bào)文,并根據(jù)收發(fā)雙方約定的協(xié)議進(jìn)行數(shù)據(jù)報(bào)文的解析,把不符合要求的報(bào)文丟棄,符合要求的數(shù)據(jù)報(bào)文送到數(shù)據(jù)緩存模塊,控制指令報(bào)文送入指令控制模塊;另一方面,對(duì)校驗(yàn)返回ack值與nack值通過門鈴doorbell的方式通知PPC節(jié)點(diǎn),使PPC節(jié)點(diǎn)進(jìn)入數(shù)據(jù)持續(xù)傳輸或者數(shù)據(jù)重傳操作流程。

    3.3 FLASH控制模塊

    FLASH控制模塊是FPGA節(jié)點(diǎn)的核心模塊,統(tǒng)管著FLASH的整個(gè)操作流程,按照指令控制模塊接收到的控制指令的要求,一方面協(xié)調(diào)數(shù)據(jù)模塊完成數(shù)據(jù)寫入FLASH操作;另一方面還要回讀FLASH數(shù)據(jù),用于校驗(yàn)工作。

    在FPGA中采用狀態(tài)機(jī)實(shí)現(xiàn)FLASH遠(yuǎn)程更新流程,如圖5所示,狀態(tài)轉(zhuǎn)移圖如圖6所示。在線更新專用通道初始化完成后,系統(tǒng)進(jìn)入報(bào)文接收等待狀態(tài)。接收到報(bào)文信息后,根據(jù)解析出來的報(bào)文類型,轉(zhuǎn)入到相關(guān)的FLASH操作流程。若是更新擦除指令,則進(jìn)入更新擦除流程,解除FLASH寫保護(hù),完成擦除block操作后,自動(dòng)進(jìn)入更新寫狀態(tài),寫完一個(gè)block后,讀出該block中數(shù)據(jù),進(jìn)行CRC校驗(yàn)。CRC校驗(yàn)正確,則返回報(bào)文接收等待狀態(tài);CRC校驗(yàn)錯(cuò)誤,則進(jìn)入數(shù)據(jù)重傳流程,直至讀出的數(shù)據(jù)CRC校驗(yàn)正確。指定的讀、寫、擦除狀態(tài)是為了增加系統(tǒng)的靈活性,可以手動(dòng)配置FLASH的存儲(chǔ)區(qū)域。

    3.4 數(shù)據(jù)校驗(yàn)?zāi)K

    對(duì)更新數(shù)據(jù)校驗(yàn)采用計(jì)算CRC32的方式進(jìn)行,有兩種方式可以實(shí)現(xiàn)。一方面,在明確更新文件CRC32校驗(yàn)多項(xiàng)式以及CRC存放位置、計(jì)算區(qū)間的情況下,當(dāng)文件寫入時(shí)記錄寫入FLASH空間的大小,即確定需要參與計(jì)算的區(qū)間以及確定CRC32所在的位置,根據(jù)地址記錄。待讀出校驗(yàn)時(shí)就可以通過讀FLASH計(jì)算的CRC與文件包含的CRC值作對(duì)比,此時(shí)寫入FLASH的時(shí)候無需作CRC32校驗(yàn)。另一方面,如果不能很明確更新文件的結(jié)構(gòu),想找出CRC32的值就無從下手,此時(shí),可以通過寫入FLASH的時(shí)候計(jì)算一次CRC32,對(duì)寫入的所有數(shù)據(jù)都計(jì)算在內(nèi),待讀出校驗(yàn)時(shí),再次計(jì)算一次,比較寫入計(jì)算的CRC與讀出計(jì)算的CRC是否一致,從而可以斷定寫入FLASH的更新文件是否正常。但是后者只能確定FPGA在讀寫FLASH的時(shí)候是否出錯(cuò),不能完全保證更新文件的正確性,若要對(duì)更新文件的正確性進(jìn)行判定,則需要把數(shù)據(jù)回讀模塊的數(shù)據(jù)通過SRIO核上報(bào)給上級(jí)PPC節(jié)點(diǎn),由上層軟件進(jìn)行確定。

    圖5 FLASH遠(yuǎn)程更新流程

    圖6 FLASH遠(yuǎn)程更新狀態(tài)轉(zhuǎn)移圖

    4 試驗(yàn)結(jié)果

    某綜合化信號(hào)與信息處理機(jī)平臺(tái)如圖7所示。

    圖7 綜合化信號(hào)與信息處理機(jī)實(shí)物圖

    對(duì)該處理機(jī)信號(hào)處理模塊中的24個(gè)FPGA芯片進(jìn)行軟件在線更新功能測(cè)試。其中PPC芯片采用PPC-8548,FPGA芯片采用FPGA-V7-485T,FLASH芯片采用FLASH-JS28F00AP30,測(cè)試結(jié)果如表1所示。

    表1 FPGA程序更新測(cè)試結(jié)果

    經(jīng)測(cè)試,PPC-8548通過RapidIO網(wǎng)絡(luò)向FPGA-V7-485T發(fā)送數(shù)據(jù),在1X模式、2.5 Gbit/s速率下,可達(dá)到10 MB/s。充分利用FLASH在擦除block塊開銷時(shí)間長以及PPC-8548傳輸速率高、遠(yuǎn)程更新虛通道可擴(kuò)展等特點(diǎn),可通過PPC-8548芯片同時(shí)對(duì)6個(gè)信號(hào)處理模塊內(nèi)的6個(gè)FPGA芯片進(jìn)行程序更新。從表1可以看出,隨著軟件版本及FPGA節(jié)點(diǎn)數(shù)目增多,相比JTAG方式,在線更新方式優(yōu)勢(shì)更加明顯。

    5 結(jié)束語

    針對(duì)航電系統(tǒng)中FPGA芯片程序遠(yuǎn)程更新,給出了一種基于RapidIO的FPGA遠(yuǎn)程在線更新方案。采用軟件無線電設(shè)計(jì)思想、硬件通用化設(shè)計(jì)、軟件可復(fù)用可重構(gòu)思路進(jìn)行。經(jīng)測(cè)試,設(shè)計(jì)穩(wěn)定可靠,相比傳統(tǒng)的JTAG加載方式,本設(shè)計(jì)更新FPGA程序的速度得到了很大的提升。該設(shè)計(jì)目前已用于某工程項(xiàng)目中。

    [1]陳穎,苑仁亮,曾利.航空電子模塊化綜合系統(tǒng)集成技術(shù)[M].北京:國防工業(yè)出版社,2013:1-2.

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

    [3]劉劍,李賽輝,周邦華,等.一種基于Nand Flash多版本程序的FPGA智能加載方法[J].雷達(dá)與對(duì)抗,2015,35(3):68-70.

    [4]于樂,王嘉良.易于移植的FPGA在線更新控制器設(shè)計(jì)[J].航空電子技術(shù),2015,46(4):47-50.

    [5]黃勇.一種新型的FPGA快速動(dòng)態(tài)配置和遠(yuǎn)程加載技術(shù)[J].通信技術(shù),2013,46(12):93-96.

    [6]汪灝,張學(xué)森.一種基于串行方式的FPGA遠(yuǎn)程加載電路[J].電子科學(xué)技術(shù),2016,3(2):171-173.

    [7]趙秋明,王龍飛,肖丹,等.一種新型軟件無線電重構(gòu)加載方法研究[J].電視技術(shù),2013,37(19):87-90.

    [8]熊璐.基于CPCI的動(dòng)態(tài)可重構(gòu)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2016,39(8):104-107.

    [9]黃振中,倪明,柴小麗.基于VxWorks的RapidIO-IP設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(18):243-245.

    [10]王怡然,常文革,田海山.Rapid IO技術(shù)在高速信號(hào)處理系統(tǒng)中的應(yīng)用[J].雷達(dá)科學(xué)與技術(shù),2013,11(4):390-394.

    猜你喜歡
    校驗(yàn)報(bào)文遠(yuǎn)程
    讓人膽寒的“遠(yuǎn)程殺手”:彈道導(dǎo)彈
    軍事文摘(2022年20期)2023-01-10 07:18:38
    基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
    汽車電器(2022年9期)2022-11-07 02:16:24
    遠(yuǎn)程工作狂綜合征
    英語文摘(2021年11期)2021-12-31 03:25:18
    CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
    淺析反駁類報(bào)文要點(diǎn)
    中國外匯(2019年11期)2019-08-27 02:06:30
    遠(yuǎn)程詐騙
    爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
    ATS與列車通信報(bào)文分析
    大型電動(dòng)機(jī)高阻抗差動(dòng)保護(hù)穩(wěn)定校驗(yàn)研究
    基于加窗插值FFT的PMU校驗(yàn)方法
    丽江市| 凤阳县| 曲阜市| 沈丘县| 霍林郭勒市| 环江| 从江县| 察哈| 武清区| 含山县| 南陵县| 通化县| 焦作市| 江达县| 哈密市| 白银市| 华池县| 宜都市| 五家渠市| 堆龙德庆县| 台中县| 永平县| 孝感市| 平果县| 安多县| 寿宁县| 科技| 上蔡县| 台北县| 广昌县| 北川| 海丰县| 广饶县| 丹东市| 华坪县| 安平县| 开平市| 镇江市| 白玉县| 宁夏| 乐东|