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

基于1553B 總線的FPGA 在線升級

2022-02-17 12:10:56韓子舟任勇峰李輝景
電子設計工程 2022年3期
關鍵詞:指令程序

韓子舟,任勇峰,李輝景

(中北大學儀器科學與動態測試教育部重點實驗室電子測試技術重點實驗室,山西太原 030051)

FPGA 可重配置的特性為相關電子設備的設計提供了很高的靈活性,可以在生產過程和后期維護中根據不同的需求進行更新,保障產品的可靠及穩定運行[1-3]。傳統的程序升級是打開產品外殼,由USB-JTAG的連接方式實現程序的升級。但是,由于一些設備已經交付或已經進行特殊工藝處理,不具有拆卸再次進行程序升級的條件,無法通過USBJTAG 專用線纜和仿真器的方式進行升級[4-5]。針對該難題,文中提出了一種基于1553B 總線的固件更新方法,該方法能夠通過現有的1553B 通信接口完成程序的在線更新,無需進行額外的硬件改動,解決了以往只能拆卸產品,再通過專用線纜及仿真器進行程序升級的問題。

1 總體方案設計

總體設計方案如圖1 所示,由1553B 通信模塊和FPGA 控制模塊組成。1553B 模塊主要負責與測試臺進行通信,實現命令和配置數據的接收,再將其傳輸到FPGA控制模塊中;FPGA控制模塊負責接收1553B模塊傳來的指令和配置文件,實現對Flash的分區擦除、寫入等操作。同時,由ICAPE2 模塊實現了對FPGA的重配置及Fallback 模式的配置,充分利用FPGA的可編程資源[6-7]。如果在程序升級時,設備斷電致使升級失敗,則FPGA 在上電后會觸發Fallback模式,保證配置文件能夠通過外部接口實現升級。

圖1 總體設計方案

2 硬件設計方案

2.1 1553B通信模塊

在固件更新時,需要由1553B接口接收命令,并進行相應的操作,電路原理框圖如圖2 所示。FPGA 對1553B 主控模塊BU-61580的控制主要是利用地址總線、數據總線、控制總線、狀態總線完成的[8-9]。所用FPGA的接口電平為3.3 V,BU-61580的接口電平為2~5.3 V,控制總線上的指令是從FPGA 傳送至BU-61580 芯片中,因此該方向不需要進行電平匹配。而地址線和數據線傳輸方向是雙向的,接口電平會對FPGA 接口產生沖擊,因此需要進行電平轉換;狀態總線上的數據是從BU-61580 向FPGA 傳輸的,所以也應該轉換電平,電路原理框圖如圖3 所示。

圖2 1553B總線接口電路

2.2 FPGA配置電路設計

文中以Xilinx Kintex-7 芯片為例,在進行FPGA配置時,有7 種方式可以選擇,分別是主串、主并、主SPI、主BPI、從串、從并及JTAG 配置模式,通過設置M2、M1、M0 3 個引腳的高低電平選擇配置模式。

該設計分別將M2、M1、M0 進行下拉、下拉、上拉,把配置模式設為主SPI 模式,配置電路如圖3 所示。這種配置模式只需要外掛一個SPI 存儲器即可,不僅所需的FPGA 資源少,而且SPI Flash 尺寸小,能夠最大化利用電路板狹小的面積[10-11]。

圖3 Flash配置電路

3 邏輯設計

3.1 1553B邏輯設計

在設備上電復位以后,1553B 模塊首先要做的就是對BU-61580 進行初始化配置,其配置包括寄存器配置和存儲器配置。由于BU-61580 模塊不具備記憶功能,一旦下電所有配置信息將會丟失,因此需要上電之后對其再次進行配置[12]。而且每次上電之后配置的信息是一致的,故該設計將相關配置信息存儲在FPGA的ROM 中,上電之后只需把要配置的數據及地址讀出,分別送到數據線及地址線上,發送給BU-61580 即可完成配置。

在完成配置之后等待接收消息,每接收完成一條消息就會進入中斷,然后讀取中斷狀態寄存器判斷中斷類別。若為MT 中斷則重新回到數據等待接收狀態;若為RT 中斷,則需要取出區域A的棧指針,然后根據指針指向地址取出命令字,并執行相應操作。更新程序中主要需完成3 種操作,首先是擦除指令,將需要更新的代碼全部刪除;其次是寫指令,把新的代碼寫入指定的地址,完成更新。在寫操作時,需要根據數據塊指針,取出1553B 所接收的程序再轉發給下一級的FIFO;最后是寫關閉指令,在完成程序更新后拉低寫使能信號,結束數據的傳輸。1553B 操作流程如圖4 所示。

圖4 1553B操作流程圖

3.2 固件更新邏輯設計

固件更新主要由兩部分組成,分別是狀態控制模塊和Flash 操作模塊。狀態控制模塊主要完成指令的識別,以及要發送指令的賦值操作,完成賦值后進入Flash 開始操作。操作結束后對之前的賦值進行清零,然后進入待機狀態等待下一條指令。Flash操作模塊主要控制讀寫寄存器,發送地址與數據,固件更新流程如圖5 所示[13]。

圖5 固件更新流程

Flash的工作狀態主要有識別設備ID、寫使能、擦除、寫禁用、讀狀態寄存器、讀寫數據。FPGA 接收到程序升級的命令以后,首先要進入識別ID 狀態得到設備ID。在識別完成后,發送寫使能指令,以獲取擦除操作的權限。當從狀態寄存器中讀取到寫使能已開啟,便開始對Flash的指定地址進行擦除。根據芯片手冊,S25FL256S 支持一次擦除的扇區大小為64 kB,而固件存儲區域為10 MB,因此應該循環擦除160 次。最后還需通過讀取狀態寄存器的值,檢驗擦除是否完成。

Flash 擦除完成后,再由計算機下發需要更新的程序。首先FPGA 將從1553B 總線上接收的程序送入FIFO 中緩存,然后對FIFO的空信號進行判斷。若不為空,則把數據送入Flash 中。從圖5的操作流程圖可知,先由FPGA 下發寫使能命令,使得Flash 中存儲區域可供修改,再下發寫指令、固件數據及頁地址。S25FL256S 頁編程一次只支持寫入256 個字節的數據,因此需要循環提供寫使能和寫指令給Flash,直至數據全部寫入。當判斷到FIFO 為空時,開始計時等待。若FIFO 中出現數據,則繼續寫入Flash 中;若連續等待1 s FIFO 依然為空,則斷定數據更新結束,關閉寫操作,重新禁用寫使能完成配置工作。

3.3 重配置邏輯設計

FPGA 多重配置技術實際是對可編程資源的復用,用戶可以根據需求加載不同的配置文件,從而實現多重配置[14]。FPGA 多重配置技術不僅提高了對資源的利用率,還提高了設計的靈活性,使設備易于后期維護與更新[15-16]。多重配置技術主要是由ICAPE2 執行內部編程指令(IPROG)實現的。

當開始重配置時,IPROG 指令由FPGA 內部的ICAPE2 模塊發出,使FPGA 從Flash的指定地址開始讀取配置文件,地址由重載起始地址(WBSTAR)寄存器決定。在IPROG 指令發出后,FPGA 依次進行三步操作:首先發送同步字(AA995566),然后向WBSTAR 寄存器中寫入下一個比特流文件起始地址(00000000),最后發送IPROG命令(0000000F)。IPROG 指令序列如表1 所示。

表1 IPROG指令隊列

3.4 Fallback邏輯設計

程序在線升級的過程中,如果遇到設備掉電等突發情況,重新上電之后,FPGA 根據觸發引導邏輯從Flash 中加載程序,然而舊的程序已經擦除,而新的配置文件還未完全寫入。導致設備無法再由1553B 接口接收下發的指令與相關配置文件,FPGA也失去了對Flash的控制。此時,唯一的解決辦法就是打開產品外蓋,通過USB-JTAG的方式把配置文件下載至Flash 中,給設備的升級造成了不便。為避免此類情況的發生,該設計通過觸發Fallback的方式來進行解決,其配置邏輯如圖6 所示。

圖6 Fallback配置邏輯

在程序更新的過程中,一旦遇到突發情況,FPGA檢測到配置出現錯誤,就會立刻進入到Fallback 模式,將FPGA 進行復位,然后從Flash的起始地址重新加載Golden Bitstream。Golden Bitstream 中包含原有的接口控制邏輯以及FPGA 對Flash的操作邏輯,這就使得FPGA 可以再次通過1553B 總線完成程序升級,保證了更新的可靠性。

有3 種情況會使FPGA 進入Fallback 配置模式,一種是在給定的時間內未檢測到同步字AA99556;一種是檢驗到CRC 校驗錯誤,CRC 校驗指令存儲在配置文件的尾部,FPGA 只有接收到CRC 校驗指令才會進行校驗,進而判斷數據是否正確;最后一種便是看門狗計時器超時,看門狗會對配置過程進行監測,如果超時則會進入Fallback 模式。程序在線升級的過程中,若設備斷電發生在程序擦除中,導致無法檢測到同步字,則FPGA 會進入Fallback 模式重新加載Golden Bitstream。如果設備斷電發生在寫Flash 中,因為同步字在配置文件首部已經寫入Flash,而CRC 校驗指令在配置文件尾部還未寫入,因此無法通過同步字及CRC 來判斷校驗是否出錯。但是設備斷電,看門狗計時器便會因FPGA 配置失敗而超時,會觸發FPGA 配置邏輯重新進入Fallback模式再次配置。通過這種方式,無論設備何時斷電,都會觸發Fallback 模式,保障了程序在線升級的可靠性。

4 測試結果及分析

為了驗證該設計的可靠性,把通過1553B 總線寫入的程序讀出,并由上位機軟件顯示,部分配置文件如圖7 所示。再通過Vivado的集成邏輯分析儀ILA 抓取從Flash 中讀取的配置文件,如圖8 所示。通過對比,能夠看到配置文件傳輸無誤。

圖7 部分配置文件

圖8 正常讀取的配置文件

為了對該設計的重配置進行驗證,準備了3 個配置文件,其中一個為Golden Bitstream,其余兩個為Update Bitstream。其功能為點亮不同的LED 燈,經驗證無誤,故重配置設計已實現。為了對Fallback模式進行驗證,該設計通過ILA 分別抓取正常讀出的配置文件、擦除過程中掉電讀出的配置文件及寫入程序過程中掉電讀出的配置文件,分別如圖8~10 所示,均與前述設計方案相符,且不論程序升級中設備何時斷電,均可觸發Fallback 模式,說明Fallback 配置模式已實現,證明了該設計的可靠性。

圖9 擦除過程中斷電讀取的配置文件

圖10 寫入程序過程中斷電讀取的配置文件

5 結束語

該設計通過1553B 總線實現了對FPGA的在線升級,避免了特殊環境下無法完成程序更新,提高了程序更新方式的靈活性。同時通過控制Flash 完成了程序的分區擦除及分區寫入,并且借助ICAPE2 模塊完成了FPGA的多重配置,極大地提高了FPGA 可編程資源的利用率。而且Fallback 模式的配置,使得FPGA 即使在程序升級過程中掉電,也可以重新加載外部接口的控制邏輯和Flash的控制邏輯,再次通過1553B 接口完成在線升級,充分提高了固件更新的可靠性。

猜你喜歡
指令程序
聽我指令:大催眠術
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 五月综合色婷婷| 欧洲av毛片| 福利国产微拍广场一区视频在线| 国内精自线i品一区202| www.亚洲一区| 国产一区二区三区精品欧美日韩| 日韩精品亚洲一区中文字幕| 婷婷综合在线观看丁香| 国产69囗曝护士吞精在线视频| 91久久偷偷做嫩草影院免费看| 99久视频| 欧美午夜小视频| 亚洲日韩高清在线亚洲专区| 一级毛片免费观看不卡视频| 色综合五月婷婷| 青青久久91| 国内精品自在欧美一区| 久久亚洲国产视频| 欧美国产精品不卡在线观看 | 日韩毛片在线视频| 黄色福利在线| 精品自拍视频在线观看| 精品一區二區久久久久久久網站 | 欧美第九页| 91精品国产自产91精品资源| 国产精品无码制服丝袜| 99中文字幕亚洲一区二区| 久久人搡人人玩人妻精品| 波多野结衣视频一区二区 | 久久久久久尹人网香蕉 | 国产九九精品视频| 免费一级毛片在线播放傲雪网| 99久久精彩视频| 久久久久亚洲av成人网人人软件| 欧美激情一区二区三区成人| 国产欧美视频在线| 欧美成a人片在线观看| 91人人妻人人做人人爽男同| 首页亚洲国产丝袜长腿综合| 无码高潮喷水专区久久| 91福利免费| 无码免费的亚洲视频| 亚洲天堂免费在线视频| 五月婷婷导航| 精品人妻一区二区三区蜜桃AⅤ| 亚洲电影天堂在线国语对白| 草草影院国产第一页| 99精品伊人久久久大香线蕉| 真实国产乱子伦视频| 久久综合丝袜长腿丝袜| 99精品在线视频观看| 欧美综合区自拍亚洲综合天堂| 曰韩人妻一区二区三区| 色香蕉影院| 九九免费观看全部免费视频| 黑色丝袜高跟国产在线91| 亚洲国产精品人久久电影| 中文字幕欧美日韩| 国产农村1级毛片| 日韩二区三区无| 亚洲成人精品在线| 成人亚洲国产| 久一在线视频| 亚洲有码在线播放| 69视频国产| 四虎国产精品永久一区| 久久一级电影| 热这里只有精品国产热门精品| 亚洲精品中文字幕午夜| 在线a视频免费观看| 久久久亚洲色| 国产福利2021最新在线观看| 免费av一区二区三区在线| 国产区精品高清在线观看| 中国一级毛片免费观看| 国产精品女在线观看| 人人91人人澡人人妻人人爽| 亚洲swag精品自拍一区| 性喷潮久久久久久久久| 亚洲男人的天堂久久精品| 国产精品视频第一专区| 91探花国产综合在线精品|