文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.010
中文引用格式: 曹峰,高偉林. 飛機座艙圖形生成系統的硬件加速設計[J].電子技術應用,2015,41(7):37-39,43.
英文引用格式: Cao Feng,Gao Weilin. Hardware accelerating design at cockpit graphics generation system[J].Application of Electronic Technique,2015,41(7):37-39,43.
0 引言
戰斗機座艙顯示系統是飛行員了解戰場態勢、攻防信息、本機狀態等信息,完成作戰任務的重要信息來源。良好的人機界面能夠讓機組人員清晰、便捷地獲得所需信息,有效減輕機組人員工作負荷,從而安全高效地完成飛行和作戰任務。機載顯示器是座艙顯示系統的終端部件,其發展經歷了三個時代,即機械時代、機電時代和光電時代[1]。機載顯示器的布局和信息顯示方式日新月異,從上世紀70年代末期開始,電子飛行儀表系統(EFIS)逐步替代原有分立式飛行儀表,實現了顯示儀表的電子化、綜合化,座艙顯示器數量急劇減小,主顯示器尺寸不斷加大,分辨率不斷提高,并日益朝著大屏幕化、綜合化、信息化和智能化方向發展[2]。目前機載顯示器分辨率最高已達UXGA(1 600×1 200@60 Hz),數據傳輸率為345 MB/s[3]。隨著顯示分辨率的提高,要處理的像素也越來越多,而所允許的處理時間卻受屏幕刷新率所限制[4],傳統的飛行座艙圖形顯示方法大多通過處理器和軟件技術來實現,而對于實時信息處理系統,處理器還需要進行繁重的數據分析和數據通信工作,這將導致圖形顯示性能受到影響[5]。
本文提出了一種圖形生成的硬件加速設計方法,利用DSP作為圖形生成的主處理器完成圖形運算算法,將每個像素數據置上標記信息后寫入SDRAM幀存,FPGA作為協處理器根據像素數據的標記類型進行相應的數據運算處理,以此減輕DSP的運算負擔,提高圖形生成效率。
1 圖形產生與顯示系統原理
1.1 硬件組成
本設計DSP芯片采用ADI公司的TS201,其主頻可達600 MHz,集成了SDRAM控制器;幀存采用了Micron公司的SDRAM器件MT48LC8M32,其容量為8 M×32 bit;FPGA采用Altera公司的EP2S30F672I4。本設計的原理框圖如圖1所示。
復位模塊為DSP提供上電復位信號,Flash存放DSP的繪圖運算程序,時鐘和時鐘緩沖為DSP、FPGA、SDRAM等各個器件提供工作時鐘。EEPROM存放FPGA程序。
DSP根據繪圖參數和指令進行作圖運算,將運算結果通過其自帶的SDRAM控制器寫入SDRAM幀存中。FPGA以乒乓操作的方式持續地從SDRAM幀存中讀出數據送至顯示終端顯示。
1.2 軟件設計
DSP畫面顯示軟件主要包括初始化模塊和畫面顯示模塊。初始化模塊完成DSP系統寄存器、SDRAM、調色板等初始化功能,畫面顯示模塊完成DSP的作圖計算與顯示等功能。畫面顯示功能模塊框圖如圖2所示。
DSP與FPGA之間通過FLAG握手信號進行狀態標記,TS201共有4個FLAG信號,為FLAG0~FLAG3,FLAG信號可以根據需要由DSP配置成輸入或輸出狀態。本文中將FLAG0配置成DSP的輸出信號,由DSP輸出至FPGA;FLAG1配置成DSP的輸入信號,由FPGA輸出至DSP。DSP顯示軟件設計流程圖如圖3所示。
FLAG1初始值由FPGA置為“0”,FLAG0初始值由DSP設置為“1”。系統工作時,FPGA程序中在每個場同步信號的上升沿對FLAG0進行采樣處理,并將采樣值賦給FLAG1。當DSP探測到FLAG1值發生變更時,即開始啟動作圖運算;作圖完畢后,DSP對FLAG0進行取反處理。TIME_DRAW是FLGA1與FLAG0進行異或運算后的信號,低電平持續時間即為圖形生成時間。FLAG0和FLAG1的握手時序圖如圖4所示。
2 圖形產生與顯示硬件加速
機載液晶顯示器需要實時產生并顯示多種畫面,其中又以電子式全姿態指示儀(又稱天地球)和全羅盤的圖形變化最為復雜。一幅典型的機載顯示器畫面如圖5所示。其中天地球部分需要大量的色塊填充,如果完全依靠軟件實現填充算法,將會大大影響整個圖形生成的效率,進而影響顯示效果,造成畫面遲滯。而飛機飛行過程中各種飛行參數的變化(如飛機的俯仰、橫滾等)都需要顯示畫面做出快速響應以便于飛行員決策。在顯示動態圖形畫面時,還需對幀存中的原始數據做清屏處理,否則會引起畫面重影,盡管處理簡單,但通過純軟件實現也非常費時[6]。
2.1 硬件填充加速設計
在圖形產生與顯示系統中硬件加速算法的引入從本質上而言是將繪圖任務在軟件與硬件之間進行重新分工,找出影響軟件效率但有一定規律的適合硬件實現的算法。API標準在圖形硬件的應用中扮演著非常重要的角色,其最顯著的貢獻是允許應用代碼在不同的硬件加速平臺間進行移植[7]。本文設計了一種圖形消隱和色塊填充API接口算法,用于對圖形消隱和填充進行加速處理。
DSP寫入SDRAM中的像素數據預先置上標記信息,FPGA在讀出像素數據并處理時采用流水線方式完成,流水線分3個階段,分別為標記與顏色寄存、標記狀態轉換、輸出數據生成。流水線處理示意圖如圖6所示。
FPGA從SDRAM中讀出數據時按照逐點逐行的次序進行,處理完一行中的所有點像素數據之后,再處理下一行數據。一般處理后的數據采取回寫入幀存的方式供下一幀顯示,本文采取了一種更為高效的方式,FPGA處理完當前幀像素數據后不回寫入幀存,而是直接輸出顯示,這種方式可以使輸出畫面減少一幀的延時。
2.2 標記處理
標記分為4種類型:填充標記、翻轉標記、結束標記、保持標記。本文采用狀態機處理標記信息,使用VHDL語言描述有限狀態機,可以充分發揮硬件描述語言的抽象建模能力[8]。標記處理狀態機包含5種狀態,分別為當前像素輸出狀態、填充狀態、翻轉狀態、保持當前像素狀態和結束狀態,狀態轉移圖如圖7所示。
每種狀態下FPGA的像素數據處理結果如下:
(1)當前像素輸出:輸出FPGA從SDRAM中讀出的當前像素數據;
(2)填充:輸出FPGA寄存的填充像素數據;
(3)翻轉:輸出FPGA寄存的翻轉像素數據;
(4)保持當前像素:輸出FPGA從SDRAM中讀出的當前像素數據;
(5)結束填充:最后一次輸出FPGA寄存的像素數據。
FPGA每讀出一個像素數據,均根據像素標記進行狀態轉移操作。在當前像素輸出狀態下,如果讀出的像素無標記,則保持在當前像素輸出狀態;如果讀出的像素帶有填充標記,則轉換到填充狀態。
填充狀態下,如讀出的像素數據無標記,則保持在填充狀態下;如果讀出的像素帶有結束標記,則轉移到結束填充狀態;如果讀出的像素數據帶有翻轉標記,則轉移到翻轉狀態;如果讀出的像素數據帶有保持標記,則轉移到保持當前像素狀態。
翻轉狀態下,如果讀出的像素無標記,則保持在翻轉狀態;如果讀出的像素帶有結束標記,則轉移到結束填充狀態;如果讀出的像素帶有保持標記,則轉移到保持當前像素狀態。
保持當前像素狀態處理完畢后則根據跳轉前的狀態轉移到填充或翻轉狀態。如前一狀態是填充狀態,則轉移到填充狀態;如前一狀態是翻轉狀態,則轉移到翻轉狀態。
結束填充狀態處理完畢后則轉移到當前像素輸出狀態。
3 試驗結果
本設計中ADSP-TS201的系統時鐘頻率為125 MHz,內核工作頻率為系統時鐘的4倍頻,即500 MHz,SDRAM訪問的時鐘頻率設置為125 MHz,與系統時鐘保持一致。分別采用FPGA硬件加速方式和DSP純軟件實現方式,生成圖5所示的分辨率為1 024×768的典型機載畫面,對圖4中TIME_DRAW信號的低電平時間進行測試得到圖形生成時間,圖形生成時間的倒數即為圖形更新幀率。兩種實現方式下的效率對比如表1所示。
4 結論
本文針對機載座艙圖形生成與顯示系統的工作特點,提出了一種適宜FPGA硬件實現的像素消隱和填充加速方法。對圖形生成算法的軟硬件任務進行合理分工,DSP采用預置像素標記的方式,將圖形生成算法中影響軟件執行效率的畫面消隱和色塊填充運算分配給FPGA由狀態機實現。運用本文所述圖形生成硬件加速方法,繪制一幅典型的機載EFIS畫面,效率較純軟件實現方式可提升兩倍以上。
參考文獻
[1] MOIR I,SEABRIDEG A.軍用航空電子系統[M].吳漢平,譯.北京:電子工業出版社,2008.
[2] 邢新強,李國超,肖鋒.機載座艙顯示發展趨勢分析[J].飛機設計,2010,30(2):34-36.
[3] 李翠娟,陳川,張曉曦,等.幾種機載視頻技術要點分析與發展趨勢探討[J].航空電子技術,2012,42(1):129-131,134.
[4] 孔全存,李成貴,張鳳卿.主飛行儀表圖形加速顯示系統的FPGA設計[J].電子技術應用,2007(4):62-64.
[5] 胡小龍,周俊明,夏顯忠.飛機座艙圖形顯示加速系統設計及FPGA實現[J].中南大學學報,2008,39(5):1032-1048.
[6] SPITZER C R.數字航空電子技術(上)航空電子元件、軟件和功能件[M].謝文濤,譯.北京:航空工業出版社,2010.
[7] OISON T J.Hardware 3D graphics acceleration for mobile devices[C].Acoustics,Speech and Signal Processing,2008:5344-5347.
[8] 趙俊超.集成電路設計VHDL教程[M].北京:希望電子出版社,2002.