《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 飛機(jī)座艙圖形生成系統(tǒng)的硬件加速設(shè)計(jì)
飛機(jī)座艙圖形生成系統(tǒng)的硬件加速設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第7期
曹 峰,高偉林
蘇州長(zhǎng)風(fēng)航空電子有限公司 軍品研究所,江蘇 蘇州215151
摘要: 針對(duì)飛機(jī)座艙高分辨率圖形實(shí)時(shí)生成與顯示的應(yīng)用需求,提出了一種適用于硬件實(shí)現(xiàn)的圖形填充加速設(shè)計(jì)方法,在FPGA中設(shè)計(jì)了一種狀態(tài)機(jī)對(duì)DSP置入的像素標(biāo)記進(jìn)行判斷處理。采用SDRAM作為幀存,F(xiàn)PGA與DSP對(duì)SDRAM采取乒乓操作方式,實(shí)現(xiàn)了高分辨率圖形數(shù)據(jù)的消隱與填充加速處理,填充算法無(wú)須將數(shù)據(jù)回寫(xiě)入SDRAM,實(shí)現(xiàn)了畫(huà)面輸出的零延時(shí)。試驗(yàn)結(jié)果表明,所提出的方法可以大幅減少圖形繪圖時(shí)間。
中圖分類(lèi)號(hào): V243.6
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.010
中文引用格式: 曹峰,高偉林. 飛機(jī)座艙圖形生成系統(tǒng)的硬件加速設(shè)計(jì)[J].電子技術(shù)應(yīng)用,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.
Hardware accelerating design at cockpit graphics generation system
Cao Feng,Gao Weilin
Suzhou Changfeng Avionics Company Limited,Suzhou 215151,China
Abstract: According to the requirement of real-time generation and display of high resolution graphics at cockpit, a method of graphics blanking and filling acceleration is proposed. A state machine is designed in FPGA to process the pixel sign set by DSP. SDRAM is used as frame memory, and accessed by DSP and FPGA through pingpong operation. In this way, blanking and accelerating for the graphics with high definition is achieved. There is no need to write the data back to SDRAM, which produces zero delay for graphics output. Experimental results reveal that the proposed solution is capable of reducing the graphics drawing time.
Key words : high resolution graphics display;hardware acceleration;sign processing;state machine

   

0 引言

    戰(zhàn)斗機(jī)座艙顯示系統(tǒng)是飛行員了解戰(zhàn)場(chǎng)態(tài)勢(shì)、攻防信息、本機(jī)狀態(tài)等信息,完成作戰(zhàn)任務(wù)的重要信息來(lái)源。良好的人機(jī)界面能夠讓機(jī)組人員清晰、便捷地獲得所需信息,有效減輕機(jī)組人員工作負(fù)荷,從而安全高效地完成飛行和作戰(zhàn)任務(wù)。機(jī)載顯示器是座艙顯示系統(tǒng)的終端部件,其發(fā)展經(jīng)歷了三個(gè)時(shí)代,即機(jī)械時(shí)代、機(jī)電時(shí)代和光電時(shí)代[1]。機(jī)載顯示器的布局和信息顯示方式日新月異,從上世紀(jì)70年代末期開(kāi)始,電子飛行儀表系統(tǒng)(EFIS)逐步替代原有分立式飛行儀表,實(shí)現(xiàn)了顯示儀表的電子化、綜合化,座艙顯示器數(shù)量急劇減小,主顯示器尺寸不斷加大,分辨率不斷提高,并日益朝著大屏幕化、綜合化、信息化和智能化方向發(fā)展[2]。目前機(jī)載顯示器分辨率最高已達(dá)UXGA(1 600×1 200@60 Hz),數(shù)據(jù)傳輸率為345 MB/s[3]。隨著顯示分辨率的提高,要處理的像素也越來(lái)越多,而所允許的處理時(shí)間卻受屏幕刷新率所限制[4],傳統(tǒng)的飛行座艙圖形顯示方法大多通過(guò)處理器和軟件技術(shù)來(lái)實(shí)現(xiàn),而對(duì)于實(shí)時(shí)信息處理系統(tǒng),處理器還需要進(jìn)行繁重的數(shù)據(jù)分析和數(shù)據(jù)通信工作,這將導(dǎo)致圖形顯示性能受到影響[5]。

    本文提出了一種圖形生成的硬件加速設(shè)計(jì)方法,利用DSP作為圖形生成的主處理器完成圖形運(yùn)算算法,將每個(gè)像素?cái)?shù)據(jù)置上標(biāo)記信息后寫(xiě)入SDRAM幀存,F(xiàn)PGA作為協(xié)處理器根據(jù)像素?cái)?shù)據(jù)的標(biāo)記類(lèi)型進(jìn)行相應(yīng)的數(shù)據(jù)運(yùn)算處理,以此減輕DSP的運(yùn)算負(fù)擔(dān),提高圖形生成效率。

1 圖形產(chǎn)生與顯示系統(tǒng)原理

1.1 硬件組成

    本設(shè)計(jì)DSP芯片采用ADI公司的TS201,其主頻可達(dá)600 MHz,集成了SDRAM控制器;幀存采用了Micron公司的SDRAM器件MT48LC8M32,其容量為8 M×32 bit;FPGA采用Altera公司的EP2S30F672I4。本設(shè)計(jì)的原理框圖如圖1所示。

qrs7-t1.gif

    復(fù)位模塊為DSP提供上電復(fù)位信號(hào),F(xiàn)lash存放DSP的繪圖運(yùn)算程序,時(shí)鐘和時(shí)鐘緩沖為DSP、FPGA、SDRAM等各個(gè)器件提供工作時(shí)鐘。EEPROM存放FPGA程序。

    DSP根據(jù)繪圖參數(shù)和指令進(jìn)行作圖運(yùn)算,將運(yùn)算結(jié)果通過(guò)其自帶的SDRAM控制器寫(xiě)入SDRAM幀存中。FPGA以乒乓操作的方式持續(xù)地從SDRAM幀存中讀出數(shù)據(jù)送至顯示終端顯示。

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

    DSP畫(huà)面顯示軟件主要包括初始化模塊和畫(huà)面顯示模塊。初始化模塊完成DSP系統(tǒng)寄存器、SDRAM、調(diào)色板等初始化功能,畫(huà)面顯示模塊完成DSP的作圖計(jì)算與顯示等功能。畫(huà)面顯示功能模塊框圖如圖2所示。

qrs7-t2.gif

    DSP與FPGA之間通過(guò)FLAG握手信號(hào)進(jìn)行狀態(tài)標(biāo)記,TS201共有4個(gè)FLAG信號(hào),為FLAG0~FLAG3,F(xiàn)LAG信號(hào)可以根據(jù)需要由DSP配置成輸入或輸出狀態(tài)。本文中將FLAG0配置成DSP的輸出信號(hào),由DSP輸出至FPGA;FLAG1配置成DSP的輸入信號(hào),由FPGA輸出至DSP。DSP顯示軟件設(shè)計(jì)流程圖如圖3所示。

qrs7-t3.gif

    FLAG1初始值由FPGA置為“0”,F(xiàn)LAG0初始值由DSP設(shè)置為“1”。系統(tǒng)工作時(shí),F(xiàn)PGA程序中在每個(gè)場(chǎng)同步信號(hào)的上升沿對(duì)FLAG0進(jìn)行采樣處理,并將采樣值賦給FLAG1。當(dāng)DSP探測(cè)到FLAG1值發(fā)生變更時(shí),即開(kāi)始啟動(dòng)作圖運(yùn)算;作圖完畢后,DSP對(duì)FLAG0進(jìn)行取反處理。TIME_DRAW是FLGA1與FLAG0進(jìn)行異或運(yùn)算后的信號(hào),低電平持續(xù)時(shí)間即為圖形生成時(shí)間。FLAG0和FLAG1的握手時(shí)序圖如圖4所示。

qrs7-t4.gif

2 圖形產(chǎn)生與顯示硬件加速

    機(jī)載液晶顯示器需要實(shí)時(shí)產(chǎn)生并顯示多種畫(huà)面,其中又以電子式全姿態(tài)指示儀(又稱(chēng)天地球)和全羅盤(pán)的圖形變化最為復(fù)雜。一幅典型的機(jī)載顯示器畫(huà)面如圖5所示。其中天地球部分需要大量的色塊填充,如果完全依靠軟件實(shí)現(xiàn)填充算法,將會(huì)大大影響整個(gè)圖形生成的效率,進(jìn)而影響顯示效果,造成畫(huà)面遲滯。而飛機(jī)飛行過(guò)程中各種飛行參數(shù)的變化(如飛機(jī)的俯仰、橫滾等)都需要顯示畫(huà)面做出快速響應(yīng)以便于飛行員決策。在顯示動(dòng)態(tài)圖形畫(huà)面時(shí),還需對(duì)幀存中的原始數(shù)據(jù)做清屏處理,否則會(huì)引起畫(huà)面重影,盡管處理簡(jiǎn)單,但通過(guò)純軟件實(shí)現(xiàn)也非常費(fèi)時(shí)[6]。

qrs7-t5.gif

2.1 硬件填充加速設(shè)計(jì)

    在圖形產(chǎn)生與顯示系統(tǒng)中硬件加速算法的引入從本質(zhì)上而言是將繪圖任務(wù)在軟件與硬件之間進(jìn)行重新分工,找出影響軟件效率但有一定規(guī)律的適合硬件實(shí)現(xiàn)的算法。API標(biāo)準(zhǔn)在圖形硬件的應(yīng)用中扮演著非常重要的角色,其最顯著的貢獻(xiàn)是允許應(yīng)用代碼在不同的硬件加速平臺(tái)間進(jìn)行移植[7]。本文設(shè)計(jì)了一種圖形消隱和色塊填充API接口算法,用于對(duì)圖形消隱和填充進(jìn)行加速處理。

    DSP寫(xiě)入SDRAM中的像素?cái)?shù)據(jù)預(yù)先置上標(biāo)記信息,F(xiàn)PGA在讀出像素?cái)?shù)據(jù)并處理時(shí)采用流水線方式完成,流水線分3個(gè)階段,分別為標(biāo)記與顏色寄存、標(biāo)記狀態(tài)轉(zhuǎn)換、輸出數(shù)據(jù)生成。流水線處理示意圖如圖6所示。

qrs7-t6.gif

    FPGA從SDRAM中讀出數(shù)據(jù)時(shí)按照逐點(diǎn)逐行的次序進(jìn)行,處理完一行中的所有點(diǎn)像素?cái)?shù)據(jù)之后,再處理下一行數(shù)據(jù)。一般處理后的數(shù)據(jù)采取回寫(xiě)入幀存的方式供下一幀顯示,本文采取了一種更為高效的方式,F(xiàn)PGA處理完當(dāng)前幀像素?cái)?shù)據(jù)后不回寫(xiě)入幀存,而是直接輸出顯示,這種方式可以使輸出畫(huà)面減少一幀的延時(shí)。

2.2 標(biāo)記處理

    標(biāo)記分為4種類(lèi)型:填充標(biāo)記、翻轉(zhuǎn)標(biāo)記、結(jié)束標(biāo)記、保持標(biāo)記。本文采用狀態(tài)機(jī)處理標(biāo)記信息,使用VHDL語(yǔ)言描述有限狀態(tài)機(jī),可以充分發(fā)揮硬件描述語(yǔ)言的抽象建模能力[8]。標(biāo)記處理狀態(tài)機(jī)包含5種狀態(tài),分別為當(dāng)前像素輸出狀態(tài)、填充狀態(tài)、翻轉(zhuǎn)狀態(tài)、保持當(dāng)前像素狀態(tài)和結(jié)束狀態(tài),狀態(tài)轉(zhuǎn)移圖如圖7所示。

qrs7-t7.gif

    每種狀態(tài)下FPGA的像素?cái)?shù)據(jù)處理結(jié)果如下:

    (1)當(dāng)前像素輸出:輸出FPGA從SDRAM中讀出的當(dāng)前像素?cái)?shù)據(jù);

    (2)填充:輸出FPGA寄存的填充像素?cái)?shù)據(jù);

    (3)翻轉(zhuǎn):輸出FPGA寄存的翻轉(zhuǎn)像素?cái)?shù)據(jù);

    (4)保持當(dāng)前像素:輸出FPGA從SDRAM中讀出的當(dāng)前像素?cái)?shù)據(jù);

    (5)結(jié)束填充:最后一次輸出FPGA寄存的像素?cái)?shù)據(jù)。

    FPGA每讀出一個(gè)像素?cái)?shù)據(jù),均根據(jù)像素標(biāo)記進(jìn)行狀態(tài)轉(zhuǎn)移操作。在當(dāng)前像素輸出狀態(tài)下,如果讀出的像素?zé)o標(biāo)記,則保持在當(dāng)前像素輸出狀態(tài);如果讀出的像素帶有填充標(biāo)記,則轉(zhuǎn)換到填充狀態(tài)。

    填充狀態(tài)下,如讀出的像素?cái)?shù)據(jù)無(wú)標(biāo)記,則保持在填充狀態(tài)下;如果讀出的像素帶有結(jié)束標(biāo)記,則轉(zhuǎn)移到結(jié)束填充狀態(tài);如果讀出的像素?cái)?shù)據(jù)帶有翻轉(zhuǎn)標(biāo)記,則轉(zhuǎn)移到翻轉(zhuǎn)狀態(tài);如果讀出的像素?cái)?shù)據(jù)帶有保持標(biāo)記,則轉(zhuǎn)移到保持當(dāng)前像素狀態(tài)。

    翻轉(zhuǎn)狀態(tài)下,如果讀出的像素?zé)o標(biāo)記,則保持在翻轉(zhuǎn)狀態(tài);如果讀出的像素帶有結(jié)束標(biāo)記,則轉(zhuǎn)移到結(jié)束填充狀態(tài);如果讀出的像素帶有保持標(biāo)記,則轉(zhuǎn)移到保持當(dāng)前像素狀態(tài)。

    保持當(dāng)前像素狀態(tài)處理完畢后則根據(jù)跳轉(zhuǎn)前的狀態(tài)轉(zhuǎn)移到填充或翻轉(zhuǎn)狀態(tài)。如前一狀態(tài)是填充狀態(tài),則轉(zhuǎn)移到填充狀態(tài);如前一狀態(tài)是翻轉(zhuǎn)狀態(tài),則轉(zhuǎn)移到翻轉(zhuǎn)狀態(tài)。

    結(jié)束填充狀態(tài)處理完畢后則轉(zhuǎn)移到當(dāng)前像素輸出狀態(tài)。

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

    本設(shè)計(jì)中ADSP-TS201的系統(tǒng)時(shí)鐘頻率為125 MHz,內(nèi)核工作頻率為系統(tǒng)時(shí)鐘的4倍頻,即500 MHz,SDRAM訪問(wèn)的時(shí)鐘頻率設(shè)置為125 MHz,與系統(tǒng)時(shí)鐘保持一致。分別采用FPGA硬件加速方式和DSP純軟件實(shí)現(xiàn)方式,生成圖5所示的分辨率為1 024×768的典型機(jī)載畫(huà)面,對(duì)圖4中TIME_DRAW信號(hào)的低電平時(shí)間進(jìn)行測(cè)試得到圖形生成時(shí)間,圖形生成時(shí)間的倒數(shù)即為圖形更新幀率。兩種實(shí)現(xiàn)方式下的效率對(duì)比如表1所示。

qrs7-b1.gif

4 結(jié)論

    本文針對(duì)機(jī)載座艙圖形生成與顯示系統(tǒng)的工作特點(diǎn),提出了一種適宜FPGA硬件實(shí)現(xiàn)的像素消隱和填充加速方法。對(duì)圖形生成算法的軟硬件任務(wù)進(jìn)行合理分工,DSP采用預(yù)置像素標(biāo)記的方式,將圖形生成算法中影響軟件執(zhí)行效率的畫(huà)面消隱和色塊填充運(yùn)算分配給FPGA由狀態(tài)機(jī)實(shí)現(xiàn)。運(yùn)用本文所述圖形生成硬件加速方法,繪制一幅典型的機(jī)載EFIS畫(huà)面,效率較純軟件實(shí)現(xiàn)方式可提升兩倍以上。

參考文獻(xiàn)

[1] MOIR I,SEABRIDEG A.軍用航空電子系統(tǒng)[M].吳漢平,譯.北京:電子工業(yè)出版社,2008.

[2] 邢新強(qiáng),李國(guó)超,肖鋒.機(jī)載座艙顯示發(fā)展趨勢(shì)分析[J].飛機(jī)設(shè)計(jì),2010,30(2):34-36.

[3] 李翠娟,陳川,張曉曦,等.幾種機(jī)載視頻技術(shù)要點(diǎn)分析與發(fā)展趨勢(shì)探討[J].航空電子技術(shù),2012,42(1):129-131,134.

[4] 孔全存,李成貴,張鳳卿.主飛行儀表圖形加速顯示系統(tǒng)的FPGA設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007(4):62-64.

[5] 胡小龍,周俊明,夏顯忠.飛機(jī)座艙圖形顯示加速系統(tǒng)設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].中南大學(xué)學(xué)報(bào),2008,39(5):1032-1048.

[6] SPITZER C R.數(shù)字航空電子技術(shù)(上)航空電子元件、軟件和功能件[M].謝文濤,譯.北京:航空工業(yè)出版社,2010.

[7] OISON T J.Hardware 3D graphics acceleration for mobile devices[C].Acoustics,Speech and Signal Processing,2008:5344-5347.

[8] 趙俊超.集成電路設(shè)計(jì)VHDL教程[M].北京:希望電子出版社,2002.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。