<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 主飛行儀表圖形加速顯示系統的FPGA設計

主飛行儀表圖形加速顯示系統的FPGA設計

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

主飛行顯示儀PFD(Primary Flight Display)包含了至關(guān)重要的安全飛行信息[1],它包括被安裝在與傳統“T”型配置的模擬儀表及相同屏幕位置上的飛行儀表。PFD通常直接在飛行員的正前方。隨著(zhù)航空電子技術(shù)的快速發(fā)展,傳統的CRT顯示終端逐步被光柵式圖形顯示器LCD所替代。然而,光柵式圖形顯示系統在顯示圖形前,需要大量的各種運算,如圖形掃描變換、反走樣、圖形旋轉及其他的特殊算法操作[2]。隨著(zhù)顯示分辨率的提高,要處理的像素也越來(lái)越多,而所允許的處理時(shí)間卻受屏幕刷新率所限制。因此,怎樣實(shí)時(shí)生成并準確顯示逼真圖形畫(huà)面,是對嵌入式PFD設計者的一個(gè)極大的挑戰。而基于PC機的傳統圖形生成和圖形顯示方式,又過(guò)于復雜且存在安全隱患。鑒于這種情況,參考文獻[3-5]雖然提出了一些解決方法,但實(shí)際效果并不是很明顯。本文采用基于儀器總線(xiàn)和擴展總線(xiàn)的高速陣列信號處理板的設計模式,提出了一種基于硬件加速的PFD圖形顯示設計方法。該方法實(shí)現了圖形分層雙緩存交替切換、圖形填充、和多通道DMA像素引擎,提高了PFD圖形生成和顯示的實(shí)時(shí)性和可靠性。文中以Quartus Ⅱ5.0 和Modelsim_Altera 5.6e為開(kāi)發(fā)、仿真和綜合的平臺,在A(yíng)ltera公司的Cyclone Ⅱ系列上成功下載并運行。

1 整體設計方案

在PFD顯示系統中,要同時(shí)顯示多個(gè)畫(huà)面,如姿態(tài)指引畫(huà)面、全羅盤(pán)畫(huà)面、導航地圖畫(huà)面及飛行視景等。每個(gè)畫(huà)面的處理算法都有其特殊性,如在姿態(tài)指引畫(huà)面中,顯示畫(huà)面需要根據飛機參數的變化實(shí)時(shí)更新,要求在地平線(xiàn)上填充藍色背景(藍色表示天空),而在地平線(xiàn)下填充綠色(綠色表示大地)。隨著(zhù)飛機姿態(tài)的變化,地平線(xiàn)將在邊界線(xiàn)內改變大小及方向,畫(huà)面上的藍色和綠色區域將重新分配,這種天地區域的動(dòng)態(tài)重新填充是個(gè)非常費時(shí)的工作。此外,姿態(tài)指引畫(huà)面還需要疊加一些字符(俯仰角度等),這些字符需要隨著(zhù)地平線(xiàn)一同旋轉??梢?jiàn),姿態(tài)指引畫(huà)面是電子主飛行儀中最為耗時(shí)的畫(huà)面之一[4]。而全羅盤(pán)畫(huà)面則側重于字符、線(xiàn)段的繪制和旋轉變換,反走樣運算任務(wù)十分繁重。在導航地圖畫(huà)面生成和處理中,數據量和處理量都比較大,如位置顯示、飛行航跡生成等。針對不同圖形畫(huà)面的處理算法,本文設計了大規模陣列處理機模型,其主飛行儀表顯示系統整體設計框圖如圖1所示。該設計采用共享外部總線(xiàn)和分布式并行處理相結合的系統結構。每個(gè)處理板通過(guò)儀器背板總線(xiàn)互相連接,提供了共享外部總線(xiàn)的結構;而相鄰板之間也有一套擴展總線(xiàn),提供了局部共享總線(xiàn)的結構。這樣,板間既可通過(guò)背板總線(xiàn)直接交換數據,也可以通過(guò)擴展總線(xiàn)以DMA方式進(jìn)行數據傳輸。另外,每個(gè)板內,DSP通過(guò)局部總線(xiàn)連接一個(gè)容量較大的SDRAM作為全局共享外部存儲器,而通過(guò)局部總線(xiàn)連接一個(gè)容量較小的雙口RAM作為局部共享存儲器。這些全局和局部存儲器可以作為板間或DSP間數據交換的大型緩沖區。從圖形或圖像處理算法實(shí)現上考慮,這種結構既可滿(mǎn)足流水線(xiàn)式的并行算法,也可以滿(mǎn)足分布式的并行算法(同一算法分布到多個(gè)處理器同時(shí)執行)。


2 的設計

本文引用地址:http://dyxdggzs.com/article/201706/349267.htm

針對每塊板的不同處理功能,對FPGA進(jìn)行了不同的算法設計。以板0#為例作一介紹。圖2為FPGA的各種接口與系統其他部分的關(guān)系。


2.1 總線(xiàn)接口設計

系統有兩套總線(xiàn):儀器總線(xiàn)和擴展總線(xiàn)。儀器總線(xiàn)仿VXI總線(xiàn)設計,采用雙排歐式插座設計,模擬信號和數字信號分開(kāi)在各自的插座之上,提高了電磁兼容性。模擬部分主要包括:飛行傳感器調理信號和系統模擬電源。數字部分采用基于多板分布式并行處理機制的共享式總線(xiàn)結構,主要包括:24位地址總線(xiàn)、16位數據總線(xiàn)、模塊功能選擇與控制總線(xiàn)、以及時(shí)鐘和觸發(fā)信號等;擴展總線(xiàn)采用基于板間流水線(xiàn)處理機制的鏈式結構,主要包括:20位地址總線(xiàn)、8位數據總線(xiàn)和控制總線(xiàn)??偩€(xiàn)接口中,讀寫(xiě)控制、地址譯碼、中斷及DMA控制、時(shí)鐘和握手信號均由FPGA實(shí)現。限于篇幅,具體設計細節不再贅述。

2.2 幀存控制模塊

幀存控制模塊由交叉多路轉換器Cross-MUX、讀寫(xiě)控制器和地址發(fā)生器組成。系統上電復位時(shí),首先將變化頻繁、數據量小的前景與變化緩慢或不變、數據量大的背景圖形分開(kāi)存儲于高速SRAM中,每3片SRAM組成全彩色(R、G、B)圖形幀存(這樣的圖形幀存共有3組)。其中,SRAM3為背景幀存,SRAM1和SRAM2為前景幀存。將前景幀存設計為雙緩存輪流切換方式,當其中一組寫(xiě)入生成圖形數據時(shí),另一組則正被讀出數據到模塊,圖形生成與顯示并行進(jìn)行。

2.3 模塊

圖形合成模塊支持一層到四層的圖形合成,通過(guò)設置合適的圖形開(kāi)始點(diǎn)和結束點(diǎn)(包括豎直和水平)來(lái)完成控制。公式(1)、(2)、(3)分別給出了其控制模型。式中,Plx為當前l(fā)x層像素的灰度值,介于0~255之間;x為層

2.4 像素引擎模塊

像素引擎模塊產(chǎn)生像素時(shí)鐘輸入信號CLK、行同步信號/Hsync、場(chǎng)同步信號/Vsync、數據使能信號/DE、掃描方向選擇信號DPSR和R、G、B數據控制信號,控制LCD屏顯示全彩色圖形或圖像。

2.5 圖形填充模塊

圖形填充算法[6]的效率高低,直接影響到圖形顯示系統的加速程度。設計高效的填充算法猶為重要。本系統設計了一種基于形態(tài)學(xué)膨脹算子的多種子填充算法。膨脹算子具有天然并行運算能力,易于FPGA硬件實(shí)現,并且改進(jìn)算法后,填充速度大幅度提高。圖形填充模塊由結構元素生成器、膨脹處理器和位置計數器組成。

2.5.1 結構元素生成器

形態(tài)學(xué)圖形膨脹算法,是用結構元素對圖形某鄰域窗口進(jìn)行的處理[7]。本設計采用的是3×3的方形結構元素,每次需要讀取9個(gè)數據。為此,在FPGA內部定義了寄存器和FIFO,將相關(guān)的圖形灰度數據進(jìn)行存儲,以使其在一個(gè)時(shí)鐘周期內,以流水線(xiàn)的方式形成填充所需要的一個(gè)結構元素窗口。流水線(xiàn)的方式,加快了數據處理速度。結構元素窗口形成模塊框圖如圖3所示。圖中,w22為結構元素原點(diǎn),如圖4所示。




2.5.2 膨脹處理器

參考文獻[8]中膨脹處理器的設計方法是:從3×3窗口讀取的數據w11、w12、w33…w33中,挑出數值最大的元素并把它輸出,采用兩兩比較排序算法,共需要12級比較。由于多級比較器的傳輸遲滯,最大工作頻率受到限制。本系統中將多種子呈多條水平線(xiàn)分布,種子值為1,待填充區域為0,結構元素的w22在滑動(dòng)時(shí),只與0或1比較,比較結果若為1,則直接實(shí)現8鄰域填充。這一方法簡(jiǎn)化了比較過(guò)程,提高了系統帶寬和處理速度。在填充區域為320×480像素時(shí),其最大工作頻率可以達到80.12MHz(而參考文獻[8]在填充區域為120×120像素時(shí),其最大工作頻率為62.751MHz),加速效果比較明顯。

2.5.3 位置計數器

位置計數器根據行、列位置標志來(lái)確定滑動(dòng)窗口(結構元素)在圖形數據陣列中的位置。圖形邊界根據位置計數器的值查表得到,邊界判斷比較迅速。

圖形填充模塊的狀態(tài)遷移圖如圖5所示。本設計根據需要設定了六個(gè)狀態(tài):Idle、ReadFIFO、Comp、WriteRAM、Boundary、Bd_P。這六個(gè)狀態(tài)根據窗口位置是否有種子而進(jìn)行轉換,從而完成圖形填充。


以上描述中,結構元素與種子比較、像素點(diǎn)的填充、邊界判斷等內容可有多種表達算法,特別是種子預置、邊界判斷和邊界填充,有待進(jìn)一步研究。

3 仿真及實(shí)驗結果

圖6是仿真和實(shí)驗結果。圖6(a)是圖形分層雙緩存交替切換、圖形填充、圖形合成和多通道DMA像素引擎的時(shí)序仿真圖;圖6(b)是實(shí)驗結果圖。對800×600的屏,刷新率可達47.6Hz,即21ms/幀;對320×480的區域,填充一次約花費2.86ms。


本文提出的基于儀器總線(xiàn)和擴展總線(xiàn)的高速陣列信號處理板的整體設計模式,具有較強的和數據吞吐能力?;谟布铀俚腜FD圖形顯示設計,提高了PFD圖形生成和顯示的實(shí)時(shí)性及可靠性,也顯著(zhù)提高了圖形質(zhì)量,使顯示畫(huà)面更加逼真。經(jīng)設計和部分調試表明:該方案具有較好的工程實(shí)用性和易擴展性。



關(guān)鍵詞: 圖形處理 圖形合成 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>