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

提高航天遙測產品FPGA軟件質量設計方法

2020-02-05 02:19:14王偉偉修展蘇峰馬瑞任昌健
電子技術與軟件工程 2020年7期
關鍵詞:指令信號系統

王偉偉 修展 蘇峰 馬瑞 任昌健

(北京航天長征飛行器研究所 北京市 100076)

1 引言

隨著航天技術的發展,新技術、新產品層出不窮。眾所周知,航天產品的質量對成敗影響巨大,小到一個螺絲釘,大到整個系統,每個環節緊緊相扣,密不可分。隨著硬件產品的逐漸成熟,軟件產品的問題越來越凸顯,軟件來定義產品是大勢所趨。尤其是大規模FPGA、SOC、SOPC 等芯片的產生,給設計提供了開闊的空間來定義和設計產品,以滿足高密度、復雜的航天系統工程需要。

對于遙測系統來說,各系統都希望在一次試驗中可以拿到更多的數據,而不同的系統數據量和接口形式不同,這就導致遙測系統的對外接口種類繁多,包括光口、RapidIO 接口、網口、LVDS 接口、RS422 接口、I2C 接口、SPI 接口等,速率從9600bps 到2.5Gbps 不等。對于這些接口,硬件電路的成熟,需要通過軟件設計來保證數據的可靠記錄,必要時對一些重要數據進行冗余和備份,通過記憶重發或備份重傳的方式提高數據接收的可靠性。在遙測系統中,這些接口的實現幾乎全部使用FPGA,因此FPGA 軟件可靠性設計成為影響成敗的關鍵因素,軟件質量復查也成為產品乃至系統出廠前必不可少的一個環節。

本文針對遙測系統常用的FPGA 產品的軟件設計方法進行了闡述,提出了提高可靠性的設計方法和建議,供大家在設計過程中參考。

2 統一FPGA軟件設計平臺

2.1 硬件電路選擇

根據不同的應用場合,目前遙測系統單機產品使用的FPGA 芯片類型繁多不統一,大部分使用Xilinx 公司的芯片。例如有適用于存儲器的小封裝的Spartan-3E 系列的XC3S500E-4CP132I,也有應用于多接口、高速率接口控制器的Kintex-7 系列的XQ7K325T-2FFG676,不完全統計,使用到的FPGA 芯片種類不下十余種,這給設計帶來一定的困擾,很多成熟設計不能直接使用,還需要進行移植,中間還會帶來很多不常見的問題,開發周期都快趕上重新設計周期了。因此根據當前需求,結合國產化要求,當務之急要統一硬件平臺,開發成熟設計,節約成本,提高設計效率。通過研究和討論,最終選定了三款應用于不同場合的FPGA 芯片類型和一款CPLD 芯片,FPGA 分別對應于Xilinx 的Virtex4、Virtex5 和Kintex-7 系列FPGA,CPLD 使用Altera 公司的EPM2210F256I5N。硬件平臺選擇情況見表1 所示。

通過統一遙測系統FPGA 芯片的類型,可以方便地將成熟的、經過飛行試驗驗證的硬件電路和軟件設計快速移植到新的系統設計中,避免因為選擇新的設計平臺導致的軟硬件缺陷和未認識到的錯誤,從而提高了設計效率,增強了系統的可靠性。

2.2 開發工具選擇及設置

圖1:兩時鐘輸入PLL 設計框圖

針對2.1 節中提到的硬件電路,選擇相應的開發工具。由于國產器件開發兼容國外器件,且使用同一套開發工具,目前暫時使用國外的軟件開發工具,除非有特殊的國產化要求。針對Xilinx的FPGA 選擇ISE 和Vivado 工具開發,ISE14.7 為ISE 的最終版本,Vivado 版本在不斷更新。目前推薦使用的版本為ISE14.7 和Vivado2017.4,開發工具成熟穩定。若同時使用到SPI Flash 和Virtex5 器件,建議使用ISE12.4 及以下版本,12.4 以上版本針對Virtex5 對SPI Flash 支持不好,燒寫程序有問題。而對于Altera 的CPLD 器件,使用QuartusII 9.0 進行開發。本章節將對開發工具中涉及到提高軟件可靠性的設計方法進行描述。

2.2.1 IO 管腳配置

選定好軟件開發工具,開發完程序后,首先需要進行IO 管腳配置。配置時根據需求及硬件電路,對IO 的位置、電平標準及驅動能力進行準確的配置。IO 的位置根據硬件電路來設置;電平標準需要根據連接的塊區電壓以及與其連接的外設電平共同決定,一般GPIO 設置為LVCMOS33(3.3V LVCMOS 電平);IO 驅動能力根據需求適當調整,一般為設置為10mA 以上。IO 管腳配置影響速率和高低電平的判別標準,設置時要根據通信雙方采用的機制進行合理配置,設置不當會帶來通信錯誤和不必要的麻煩。

2.2.2 時序約束

FPGA 設計的關鍵是時序設計,而時序約束對設計可靠性有重要作用,合理的時序約束能夠增強設計的可靠性,錯誤的時序約束會導致軟件異常錯誤,時鐘余量不足,導致功能在某個環境中出現錯誤。對于一般應用而言,在無特殊時序要求的情況下,只需要對輸入時鐘進行約束即可。ISE 中在“User Constraints”工具下“Create Timing Constraints”界面中“Clock Domains”,對“Unconstrained Clocks”中列出的時鐘信號進行約束,其中包括全局時鐘輸入,同步信號時鐘輸入等,每個時鐘信號都要根據硬件電路進行正確設置,否則工具會根據默認時鐘進行布局布線,最終會影響軟件性能甚至導致功能錯誤。對于高速并行信號或有時序要求的同步時鐘和數據信號,必要時需要增加輸入輸出延時,新建一個期望頻率的“虛擬時鐘”,在此基礎上進行延遲約束,保證足夠的建立和保持時間,數據能夠正確傳輸。

表1:遙測系統統一硬件平臺

表2:指令發送格式

圖2:不合理時序約束下的時序不滿足路徑報告

以Quartus II 軟件為例,使用TimeQuest 工具或Tcl 腳本文件進行時序約束。在TimeQuest 中使用圖形文件向導創建時鐘約束和其他必要的時序約束??梢苑治鰪碗s路徑下的時序余量情況以及通過約束關鍵路徑來實現軟件功能。一般情況下,通過TimeQuest 中的“Create Clock”工具來創建全局時鐘約束,使用到鎖相環(PLL)時使用“Derive PLL Clocks”工具根據PLL 設置自動派生出其他時鐘約束,再使用“Derive Clock Uncertainty”來約束時鐘的不確定性,即可滿足工程需要。當系統涉及到多個輸入時鐘時,以Quartus II 軟件為例,設計時采用如圖1 所示時鐘輸入電路時,需要對輸入設計時序進行合理約束,否則會存現時序錯誤報告,對功能和性能造成不良影響。

如圖1 所示,PLL(Phase Locked Loop)鎖相環采用雙時鐘輸入,可以通過判斷兩個時鐘的有無,自動切換實現時鐘的輸入。兩個時鐘輸入頻率均為50MHz,PLL 的輸出為FPGA 軟件設計中使用到的不同時鐘頻率:80MHz(clk_80MHz)、240MHz(clk_240MHz)、50MHz(clk_50M)和20MHz(clk_20M)。針對上述應用,設計時若對時鐘不約束或只對GCLK0 或GCLK1 時鐘輸入進行約束,其他采用默認方式。布局布線完成后,查看TimeQuest 中的Report Timing 的時序報告,會發現如圖2 所示的時序不滿足路徑。

觀察圖2 中的時序報告,發現不滿足路徑上的信號都經歷了兩個Launch Clock(開始時鐘),分別為PLL 的clk[0](clk_80M)和clk[0]~1,clk[0]~1 為開發工具根據PLL 自動產生的一個時鐘,該時鐘為不存在的虛擬時鐘,不該作為時序約束進行分析報告。針對該問題,設計時需要對PLL 的產生時鐘進行如下約束:

create_generated_clock -name {clk_80} -source [get_ports {GCLK0}]-multiply_by 8 -divide_by 5 -master_clock {clkin} [get_pins {inst6|altpll_component|auto_generated|pll1|clk[0]}]

create_generated_clock -name {clk_240} -source [get_ports {GCLK0}]-multiply_by 24 -divide_by 5 -master_clock {clkin} [get_pins {inst6|altpll_component|auto_generated|pll1|clk[1]}]

create_generated_clock -name {clk_20} -source [get_ports {GCLK0}]-multiply_by 2 -divide_by 5 -master_clock {clkin} [get_pins {inst6|altpll_component|auto_generated|pll1|clk[3]}]

圖3:正確約束后的時序分析報告

圖4:起飛信號設計流程圖

圖5:通過I2C 通信方式實現健康管理數據傳輸示意圖

約束完成后,在進行布局布線,觀察時序報告,如圖3 所示。

時序約束對于一個復雜的設計來說很關鍵,直接影響功能的實現,因此設計時需要根據時鐘和關鍵路徑進行合理約束,從而最大限度保證建立和保持時間,增強軟件的可靠性。

圖6:典型的在線升級系統設計框圖

3 軟件可靠性設計方法

FPGA 軟件設計是系統可靠性設計的重點。由于FPGA 設計語言的多樣性和靈活性,且每個設計師的設計風格和設計習慣不同,一個功能的實現可以有多種方法。但一個好的設計需要未雨綢繆,在實現功能的前提下,綜合考慮可靠性及安全性,最大限度地針對能想到的各種異常分支,給出可靠的設計策略和方法,保證在異常情況下,軟件也可以按照設計的流程進行,而不是出現“死機”“不響應”等情況,最大可能地減少異常情況帶來的影響,至少能挽救的功能一定要保住。下面就幾個關鍵電路給出可靠性設計建議。

3.1 起飛接口設計

起飛電路是遙測系統乃至整個系統中重點考慮的因素。為保障可靠性,該接口硬件上會使用雙點雙線輸入,使用三路光耦同時接收起飛信號,光耦的輸出連接到FPGA 的三個IO 管腳上。在進行FPGA 軟件處理時,首先對三路信號使用FPGA 系統時鐘進行濾波處理,去除N 個系統時鐘周期內的高頻干擾信號,N 根據系統時鐘進行合適選擇,若系統時鐘為20MHz,N 一般設置為3~5,可以濾除150ns~250ns 的毛刺。一旦檢測到起飛信號的上升沿,開始計數來對起飛信號進行合適的脈寬判斷。通常遙測系統脈寬判斷時間為20ms,不同系統根據對實時性的要求按照實際需求設定判寬時間。脈寬判斷完成后,再對三路信號進行“三判二”處理,三路中有兩路信號滿足起飛信號判斷標準即認為起飛信號到來,一旦滿足判斷條件即封鎖該信號,直到飛行結束。起飛信號的軟件設計流程如圖4 所示。

通過采用上述方法對起飛信號進行處理,確??煽拷邮盏狡痫w信號,作為后續的時序控制和數據處理的時間零點。

3.2 指令冗余設計

對于一些關鍵的指令信號,軟件需要在保證正確接收的情況下,避免誤指令動作。需要對指令發送格式進行規定。通常地,在遙測系統中,指令種類和形式不是很多,大部分為數據傳輸,不需要判斷。為了減少響應時間,指令長度一般設計為簡單的兩個字節。但為了保證指令可靠接收,使用三判二的方式處理。表2 中以串口RS422接口為例,列出了簡單指令的發送格式,其中0xB8 為幀頭,CMD為命令區分字。發送端先發高字節幀頭再發低字節指令,每個指令字之間有一定的時間間隔,時間間隔可根據使用到的波特率進行合理設置,這樣接收端可根據間隔區分目前傳輸的指令和下一條傳輸的指令,同時也避免了因連續發送造成的字節錯亂的情況發生。接收端接收串口指令并進行超時判斷,然后對接收到的三條指令進行三判二處理,滿足兩個指令正確即認為收到有效指令,執行相應操作。

該指令冗余設計方法為遙測系統常用設計方法,簡單可靠。該方法只使用于傳送指令,對于一個接口即要傳輸指令又要傳輸數據,則需要根據實際需求情況增加幀長度,用于區分指令和數據,收發雙方按照協議進行處理,保證數據可靠接收。

3.3 健康管理設計

隨著FPGA 規模增大以及SOC 技術的發展,FPGA 集成的IP功能越來越豐富。為了實時地監測FPGA 芯片內部的電壓及溫度,以及一些重要參數,設計時需要增加健康管理功能??梢酝ㄟ^遙測數據周期性的查看FPGA 的工作狀態,出現問題時可以快速定位,提高調試效率,簡化排故流程。Xilinx 的一些FPGA 芯片自帶系統監測(SYSTEM MONITOR)功能,設計時需要將IP 核加入工程中進行設置和讀取內部環境參數。若FPGA 不帶有該功能,需要外置傳感器和AD 采集芯片,對環境參數進行采集,然后插入到遙測數據幀結構中,發送給地面設備進行監測。

通常,多個FPGA 設備之間采用簡單的通信總線形式,比如I2C、RS485、CAN 等進行健康管理數據通信。以I2C 總線為例,如圖5 所示。設置時采用兩條I2C 進行通信,實現熱備份冗余設計。首先作為主控Master 在I2C 通道1 上每個T 周期查詢一次結果,每隔T1 周期以此查詢從設備Slave1、從設備Slave2 和從設備Slave3的狀態,若某個從設備未響應,連續重試2 次,依舊無響應,則切換到I2C 通道2 上進行3 次重試,有一次成功則在這條總線進行其他操作,直到遇到問題,切換到I2C 通道1 上,以此類推,保證通信可靠性。

3.4 在線升級設計

FPGA 軟件的一個重要特性是它具有重構性,可以遠程實現配置數據的更新,更改軟件,實現新的功能。該功能解決了產品在總裝后無法在不拆卸的情況下更新FPGA 軟件的難題,縮短了時間,大大節省了人力財力,提高了效率。針對遙測系統不斷變化的需求,軟件更新頻率很高,因此該功能逐漸變為軟件設計的基本要求,增強了產品的安全性和可靠性,大大提高了設計效率。典型的在線升級系統如圖6 所示。

如圖6 所示,一般地,目標系統和地面系統進行通信采用UART、1553B、Ethernet 等接口形式中的一種或多種,實現彈地數據之間的傳輸。這樣就可以將地面系統中更改后的新的FPGA 配置文件通過上述接口傳輸到目標系統上的FPGA 控制器,接著FPGA控制flash 讀寫將配置文件正確寫入到Flash 固定位置,從而實現數據流的更新。

在遠程更新的時候,需要兩個以上的多鏡像來保護設計的穩定性和安全性。Xilinx 給出的方案為Multiboot 啟動策略。Multiboot中至少兩個鏡像,分別為G 鏡像(Golden)和M 鏡像(Multiboot),G 鏡像燒寫后不再改變。兩個鏡像同時存在于flash 中,更新的時候只更新M 鏡像,更新后直接使用M 鏡像。當M 鏡像更新出現錯誤的時候,則啟動G 鏡像。通過G 鏡像中的設計來重新更新Flash中M 鏡像部分,從而避免了因錯誤操作或異常斷電等因素導致FPGA 徹底無法啟動問題,能夠保證在線升級程序的有效運行,可以再次進行軟件升級操作。

4 結束語

本文針對航天遙測系統中設計到的FPGA 軟件產品,提出了幾點提高質量的可靠性設計方法和建議,主要包括設計平臺的統一,對軟件工程中設計到的IO 管腳配置和時序約束給出合理性設置和約束的建議;同時針對系統中常用到的起飛接口和指令傳輸設計給出了具體的設計方法,最后對提高可靠性的健康管理和在線升級設計給出了設計方法和建議,通過以上措施,可以有效提高FPGA 軟件質量,增強系統可靠性。

猜你喜歡
指令信號系統
聽我指令:大催眠術
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 97影院午夜在线观看视频| 亚洲午夜福利精品无码不卡 | 成人午夜免费观看| 色婷婷天天综合在线| 亚洲日韩Av中文字幕无码| 亚洲成av人无码综合在线观看| 午夜久久影院| 亚洲首页在线观看| 伊人天堂网| 日日碰狠狠添天天爽| 欧美69视频在线| 黄片一区二区三区| 毛片卡一卡二| 国产美女主播一级成人毛片| 午夜限制老子影院888| 自拍亚洲欧美精品| 久久伊人操| 欧美日韩在线亚洲国产人| 亚洲美女视频一区| 国产综合网站| 美女国内精品自产拍在线播放| 久久永久精品免费视频| 伊人91在线| 免费看黄片一区二区三区| 伊人国产无码高清视频| 国产成年女人特黄特色毛片免| 国产喷水视频| 丰满的熟女一区二区三区l| 在线人成精品免费视频| 国产激情无码一区二区APP| 国产成人亚洲无码淙合青草| 永久免费av网站可以直接看的 | 国产精品美女免费视频大全| 亚洲一区波多野结衣二区三区| 国产成人午夜福利免费无码r| 久久无码av一区二区三区| 国产迷奸在线看| 国产黄色视频综合| 波多野结衣AV无码久久一区| 国产视频只有无码精品| 国产尹人香蕉综合在线电影| 99热这里只有精品免费国产| 亚洲乱码在线播放| 无码电影在线观看| 亚洲综合二区| 亚洲欧美成人综合| 欧美黄网站免费观看| 国产久操视频| 精品国产香蕉伊思人在线| 伊人中文网| 三级视频中文字幕| 国产91高清视频| 91精品专区| 高清欧美性猛交XXXX黑人猛交| 欧美在线观看不卡| 国产女人在线| 久久综合伊人77777| 曰AV在线无码| 99人妻碰碰碰久久久久禁片| 成人福利视频网| 成人精品免费视频| 中国美女**毛片录像在线| 成年A级毛片| 久久人搡人人玩人妻精品 | 日韩精品亚洲一区中文字幕| 国产在线无码av完整版在线观看| 99在线小视频| 久久综合色视频| 欧美午夜网| 欧类av怡春院| 亚洲码一区二区三区| 国产丝袜啪啪| 热99精品视频| 日本人又色又爽的视频| 最新国产高清在线| 99热6这里只有精品| 毛片在线播放网址| 狠狠色综合网| 高清不卡一区二区三区香蕉| 成人精品在线观看| 亚洲色图欧美视频| 综合五月天网|