文獻(xiàn)標(biāo)識碼: 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.
0 引言
戰(zhàn)斗機(jī)座艙顯示系統(tǒng)是飛行員了解戰(zhàn)場態(tài)勢,、攻防信息,、本機(jī)狀態(tài)等信息,完成作戰(zhàn)任務(wù)的重要信息來源,。良好的人機(jī)界面能夠讓機(jī)組人員清晰,、便捷地獲得所需信息,有效減輕機(jī)組人員工作負(fù)荷,從而安全高效地完成飛行和作戰(zhàn)任務(wù),。機(jī)載顯示器是座艙顯示系統(tǒng)的終端部件,,其發(fā)展經(jīng)歷了三個(gè)時(shí)代,即機(jī)械時(shí)代,、機(jī)電時(shí)代和光電時(shí)代[1],。機(jī)載顯示器的布局和信息顯示方式日新月異,從上世紀(jì)70年代末期開始,,電子飛行儀表系統(tǒng)(EFIS)逐步替代原有分立式飛行儀表,實(shí)現(xiàn)了顯示儀表的電子化,、綜合化,座艙顯示器數(shù)量急劇減小,,主顯示器尺寸不斷加大,,分辨率不斷提高,并日益朝著大屏幕化,、綜合化,、信息化和智能化方向發(fā)展[2]。目前機(jī)載顯示器分辨率最高已達(dá)UXGA(1 600×1 200@60 Hz),,數(shù)據(jù)傳輸率為345 MB/s[3],。隨著顯示分辨率的提高,要處理的像素也越來越多,,而所允許的處理時(shí)間卻受屏幕刷新率所限制[4],,傳統(tǒng)的飛行座艙圖形顯示方法大多通過處理器和軟件技術(shù)來實(shí)現(xiàn),而對于實(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)記信息后寫入SDRAM幀存,F(xiàn)PGA作為協(xié)處理器根據(jù)像素?cái)?shù)據(jù)的標(biāo)記類型進(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所示,。
復(fù)位模塊為DSP提供上電復(fù)位信號,,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é)果通過其自帶的SDRAM控制器寫入SDRAM幀存中,。FPGA以乒乓操作的方式持續(xù)地從SDRAM幀存中讀出數(shù)據(jù)送至顯示終端顯示。
1.2 軟件設(shè)計(jì)
DSP畫面顯示軟件主要包括初始化模塊和畫面顯示模塊,。初始化模塊完成DSP系統(tǒng)寄存器,、SDRAM、調(diào)色板等初始化功能,,畫面顯示模塊完成DSP的作圖計(jì)算與顯示等功能,。畫面顯示功能模塊框圖如圖2所示。
DSP與FPGA之間通過FLAG握手信號進(jìn)行狀態(tài)標(biāo)記,,TS201共有4個(gè)FLAG信號,,為FLAG0~FLAG3,,F(xiàn)LAG信號可以根據(jù)需要由DSP配置成輸入或輸出狀態(tài),。本文中將FLAG0配置成DSP的輸出信號,由DSP輸出至FPGA;FLAG1配置成DSP的輸入信號,,由FPGA輸出至DSP,。DSP顯示軟件設(shè)計(jì)流程圖如圖3所示。
FLAG1初始值由FPGA置為“0”,,F(xiàn)LAG0初始值由DSP設(shè)置為“1”,。系統(tǒng)工作時(shí),F(xiàn)PGA程序中在每個(gè)場同步信號的上升沿對FLAG0進(jìn)行采樣處理,,并將采樣值賦給FLAG1,。當(dāng)DSP探測到FLAG1值發(fā)生變更時(shí),即開始啟動(dòng)作圖運(yùn)算,;作圖完畢后,,DSP對FLAG0進(jìn)行取反處理。TIME_DRAW是FLGA1與FLAG0進(jìn)行異或運(yùn)算后的信號,,低電平持續(xù)時(shí)間即為圖形生成時(shí)間,。FLAG0和FLAG1的握手時(shí)序圖如圖4所示。
2 圖形產(chǎn)生與顯示硬件加速
機(jī)載液晶顯示器需要實(shí)時(shí)產(chǎn)生并顯示多種畫面,,其中又以電子式全姿態(tài)指示儀(又稱天地球)和全羅盤的圖形變化最為復(fù)雜,。一幅典型的機(jī)載顯示器畫面如圖5所示。其中天地球部分需要大量的色塊填充,,如果完全依靠軟件實(shí)現(xiàn)填充算法,,將會(huì)大大影響整個(gè)圖形生成的效率,,進(jìn)而影響顯示效果,造成畫面遲滯,。而飛機(jī)飛行過程中各種飛行參數(shù)的變化(如飛機(jī)的俯仰,、橫滾等)都需要顯示畫面做出快速響應(yīng)以便于飛行員決策。在顯示動(dòng)態(tài)圖形畫面時(shí),,還需對幀存中的原始數(shù)據(jù)做清屏處理,,否則會(huì)引起畫面重影,盡管處理簡單,,但通過純軟件實(shí)現(xiàn)也非常費(fèi)時(shí)[6],。
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)用代碼在不同的硬件加速平臺間進(jìn)行移植[7]。本文設(shè)計(jì)了一種圖形消隱和色塊填充API接口算法,,用于對圖形消隱和填充進(jìn)行加速處理,。
DSP寫入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所示。
FPGA從SDRAM中讀出數(shù)據(jù)時(shí)按照逐點(diǎn)逐行的次序進(jìn)行,,處理完一行中的所有點(diǎn)像素?cái)?shù)據(jù)之后,,再處理下一行數(shù)據(jù)。一般處理后的數(shù)據(jù)采取回寫入幀存的方式供下一幀顯示,,本文采取了一種更為高效的方式,,F(xiàn)PGA處理完當(dāng)前幀像素?cái)?shù)據(jù)后不回寫入幀存,而是直接輸出顯示,,這種方式可以使輸出畫面減少一幀的延時(shí),。
2.2 標(biāo)記處理
標(biāo)記分為4種類型:填充標(biāo)記、翻轉(zhuǎn)標(biāo)記,、結(jié)束標(biāo)記,、保持標(biāo)記。本文采用狀態(tài)機(jī)處理標(biāo)記信息,,使用VHDL語言描述有限狀態(tài)機(jī),,可以充分發(fā)揮硬件描述語言的抽象建模能力[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所示,。
每種狀態(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ù)無標(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訪問的時(shí)鐘頻率設(shè)置為125 MHz,,與系統(tǒng)時(shí)鐘保持一致,。分別采用FPGA硬件加速方式和DSP純軟件實(shí)現(xiàn)方式,生成圖5所示的分辨率為1 024×768的典型機(jī)載畫面,,對圖4中TIME_DRAW信號的低電平時(shí)間進(jìn)行測試得到圖形生成時(shí)間,,圖形生成時(shí)間的倒數(shù)即為圖形更新幀率。兩種實(shí)現(xiàn)方式下的效率對比如表1所示,。
4 結(jié)論
本文針對機(jī)載座艙圖形生成與顯示系統(tǒng)的工作特點(diǎn),,提出了一種適宜FPGA硬件實(shí)現(xiàn)的像素消隱和填充加速方法。對圖形生成算法的軟硬件任務(wù)進(jìn)行合理分工,,DSP采用預(yù)置像素標(biāo)記的方式,將圖形生成算法中影響軟件執(zhí)行效率的畫面消隱和色塊填充運(yùn)算分配給FPGA由狀態(tài)機(jī)實(shí)現(xiàn),。運(yùn)用本文所述圖形生成硬件加速方法,繪制一幅典型的機(jī)載EFIS畫面,效率較純軟件實(shí)現(xiàn)方式可提升兩倍以上,。
參考文獻(xiàn)
[1] MOIR I,,SEABRIDEG A.軍用航空電子系統(tǒng)[M].吳漢平,譯.北京:電子工業(yè)出版社,,2008.
[2] 邢新強(qiáng),,李國超,肖鋒.機(jī)載座艙顯示發(fā)展趨勢分析[J].飛機(jī)設(shè)計(jì),,2010,,30(2):34-36.
[3] 李翠娟,陳川,,張曉曦,,等.幾種機(jī)載視頻技術(shù)要點(diǎn)分析與發(fā)展趨勢探討[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.