文獻標識碼: A
文章編號: 0258-7998(2014)09-0044-04
顯示系統(tǒng)是航空電子系統(tǒng)的重要組成部分,現(xiàn)代飛機和其他載人飛行器的座艙顯示向駕駛員提供飛行器,、發(fā)動機和其他系統(tǒng)所測試的參數(shù),,包括從起飛、導航到著陸等全過程所需要的各種信息[1],。圖形顯示系統(tǒng)性能的優(yōu)劣直接影響到飛行員獲取飛行信息進而做出判斷和決策的效率,。作為設計過程的一部分,必須確定駕駛員的信息需求,,并且信息顯示必須設計得確保提供充分的態(tài)勢感知[2],。
隨著顯示分辨率的提高,要處理的像素也越來越多, 而允許的處理時間卻受屏幕刷新率所限制[3]。目前主流的機載顯示分辨率為UXGA(1 600×1 200×60 Hz),,數(shù)據(jù)傳輸率為345 MB/s[4],。高速、高帶寬數(shù)據(jù)處理需要大容量高速率的幀存器件做數(shù)據(jù)緩沖,。SRAM器件有著讀寫速度快,、控制簡單的特點,但是其容量小,,成本高,。在各種隨機存儲器件中,SDRAM的價格低,、體積小,、速度快、容量大,是比較理想的器件[5-6],。本文針對高分辨率圖形顯示應用需求設計了一種基于SDRAM幀存的圖形生成電路,,利用DSP執(zhí)行圖形運算算法,利用FPGA作為協(xié)處理器,,利用SDRAM作為圖形幀存并采取乒乓操作方式進行數(shù)據(jù)存取,,實現(xiàn)了分辨率高達1 600×1 200的圖形實時生成與顯示。
1 圖形生成原理
飛行技術的發(fā)展使得座艙內(nèi)需要顯示的信息量增大,,尤其在做戰(zhàn)術動作時,,畫面變換速度快,要求圖形的更新速度也必須很快,,才可以避免畫面的斷續(xù),。為達到動態(tài)實時顯示及畫面清晰,硬件上需采用更快的圖形處理器和更合理的設計[7],。本文采用ADI公司的TigerSHARC系列高速DSP器件TS201作為圖形處理器,,以FPGA作為協(xié)處理器,,采用大容量高速SDRAM器件作為圖形幀存,原理框圖如圖1所示,。
其中DSP負責圖形生成運算并且將數(shù)據(jù)結果通過FPGA寫入SDRAM中,,F(xiàn)PGA從SDRAM中讀出數(shù)據(jù)送至顯示部件進行顯示。本設計采用雙幀存結構,,DSP和FPGA對SDRAM的幀存操作采取乒乓方式,,以場同步信號為周期進行切換。
2 FPGA設計
FPGA設計主要包括SDRAM控制器設計,、系統(tǒng)接口模塊設計,、乒乓模塊設計等。
2.1 SDRAM控制器設計
SDRAM的操作時序非常復雜,,控制命令主要包括:激活命令ACTIVE,、讀命令READ、寫命令WRITE,、預充電命令PRECHARGE,、刷新命令REFRESH、操作模式加載命令LOAD MODE REGISTER等,。上電之初要先進行初始化配置,,而后才可進行正常讀寫。一個單獨的讀寫操作需要有數(shù)個時鐘周期的配套操作,,這也部分抵消了其高速率帶來的優(yōu)勢,。全頁突發(fā)操作模式能夠很好地發(fā)揮SDRAM高速讀寫的性能[8]。突發(fā)操作是指從內(nèi)存中連續(xù)的地址讀寫有限的數(shù)據(jù),在一個SDRAM 設備的頻率周期中,,可以讀寫與時鐘個數(shù)近似等量的數(shù)據(jù)[9]。本文采取突發(fā)操作方式對SDRAM進行數(shù)據(jù)存取處理,。
本文采用VHDL硬件描述語言并用有限狀態(tài)機來實現(xiàn)SDRAM各個控制命令狀態(tài)間的切換,。使用VHDL語言來描述有限狀態(tài)機,可以充分發(fā)揮硬件描述語言的抽象建模能力[10],。SDRAM控制器邏輯框圖如圖2所示,。圖中各個信號的定義如表1所示。
控制器內(nèi)部邏輯主要分為三部分,,分別為:狀態(tài)轉(zhuǎn)換模塊sdr_ctrl,、狀態(tài)處理模塊sdr_sig、數(shù)據(jù)處理模塊sdr_data,。狀態(tài)轉(zhuǎn)換模塊sdr_ctrl負責初始化狀態(tài)機和初始化完成后各個操作命令之間狀態(tài)轉(zhuǎn)移關系的建立,,狀態(tài)處理模塊sdr_sig負責各種狀態(tài)命令下對應的地址、控制命令信號的生成,,數(shù)據(jù)處理模塊sdr_data負責控制數(shù)據(jù)端的讀寫使能三態(tài)控制,。
2.2 系統(tǒng)接口模塊
除了控制器內(nèi)部邏輯本身,,F(xiàn)PGA內(nèi)部還需建立與控制器的交互關系,根據(jù)應用要求產(chǎn)生系統(tǒng)接口模塊System,,負責在適當?shù)臅r候發(fā)起讀寫操作,。FPGA內(nèi)部相關的模塊關系如圖3所示。
System模塊主要負責生成sdr_top模塊的激勵信號,,包括sys_ADSn,、sys_R_Wn、sys_A等,。
2.3 乒乓操作
在圖形產(chǎn)生系統(tǒng)中將顯存部件設置為乒乓雙緩存結構,,可以達到提高系統(tǒng)數(shù)據(jù)吞吐量和系統(tǒng)處理效率的目的。本文中顯存部分包括兩片SDRAM存儲器,,分別為SDRAM1和SDRAM2,。對顯存的操作分為兩個主體,一個為FPGA內(nèi)部邏輯生成的SDRAM控制器1,,另一個為DSP集成的SDRAM控制器2,。顯存的選擇和切換管理通過場同步的二分頻信號SET實現(xiàn),SET為“0”時,,F(xiàn)PGA生成的SDRAM控制器對SDRAM1進行操作,,DSP集成的SDRAM控制器對SDRAM2進行操作;SET為“1”時,,F(xiàn)PGA生成的SDRAM控制器對SDRAM2進行操作,,DSP集成的SDRAM控制器對SDRAM1進行操作。SDRAM乒乓操作的框圖如圖4所示,。
DSP寫入SDRAM中的數(shù)據(jù)需定時讀取并送出顯示,,在顯示動態(tài)圖形畫面時,需對幀存中的原始數(shù)據(jù)進行清屏處理,,否則會引起畫面重影,。清屏的實質(zhì)就是將整個顯示幀緩存全部填充成透明色,盡管處理簡單,,但通過純軟件實現(xiàn)非常費時[11],。本文設計了一種利用FPGA邏輯進行畫面消隱的方法,減輕了軟件操作的負擔,,提高了系統(tǒng)運行效率,。具體方法為:利用SDRAM的高速高帶寬優(yōu)勢,將每行數(shù)據(jù)以SDRAM操作時鐘高速讀出,,通過FIFO1進行緩沖后讀出顯示,。當一行數(shù)據(jù)從SDRAM中全部讀出后,立即通過FIFO2以SDRAM操作時序向SDRAM該行地址寫入0數(shù)據(jù),,以此達到清空該行數(shù)據(jù)的目的,。每一行操作均參照此方法,,則當一幀畫面全部讀出完畢后,該幀原有數(shù)據(jù)也全部得到清空,。
3 高分辨率畫面數(shù)據(jù)存取
為了高效利用SDRAM存儲空間,,在DSP控制SDRAM操作期間,將地址線錯開一位相連,,SDRAM地址總線第0位與DSP地址總線第1位相連,,SDRAM地址總線第1位與DSP地址總線第2位相連,以此類推,,這樣SDRAM的一個地址空間將存儲兩個像素數(shù)據(jù),。SDRAM位寬為32 bit,高16位和低16位分別存放兩個相鄰的像素數(shù)據(jù),。針對1 600×1 200分辨率畫面,,在SDRAM中一行1 600個像素數(shù)據(jù)只需對應800個地址。本文所采用的SDRAM最大突發(fā)長度是512,,程序中將突發(fā)長度設置為512和288兩種類型,。顯示器的一行像素數(shù)據(jù)和SDRAM中的兩行地址單元對應,其中第一行512個地址單元對應前1 024個像素數(shù)據(jù),,第二行前288個地址單元對應后576個像素數(shù)據(jù),,后224個地址單元舍棄。這樣總共需2 400行存放一幀畫面數(shù)據(jù),,小于SDRAM中4 096行一個BANK的容量,。
根據(jù)VESA標準,分辨率為1 600×1 200,、刷新率為60Hz的畫面,,行消隱包括50個行周期,一幀畫面周期共包含1 250個行周期,,式(1)給出了行周期計算公式:
針對一行數(shù)據(jù),,需完成突發(fā)讀和突發(fā)寫兩個步驟,突發(fā)讀通過FIFO緩沖顯示,,突發(fā)寫對已讀出的SDRAM數(shù)據(jù)進行清空。每次突發(fā)讀,、寫需分兩次進行,,第一次完成512個數(shù)據(jù)突發(fā)操作,第二次完成288個數(shù)據(jù)突發(fā)操作,。一個行周期內(nèi)共需完成4次突發(fā)操作,,需產(chǎn)生4個sys_ADSn信號。為了便于SDRAM控制器區(qū)分512突發(fā)操作和288突發(fā)操作,,在System模塊中設計了一個sys_BLS(burst length select)突發(fā)長度選擇信號,,其為“0”時通知控制器進行512突發(fā),,為“1”時通知控制器進行288突發(fā)。
本設計中SDRAM的操作時鐘為150 MHz,,式(2)給出了一行數(shù)據(jù)處理的時長:
式(2)分子為處理一行數(shù)據(jù)所需的總時鐘周期數(shù)目,,其中包含4次突發(fā)操作周期以及每次突發(fā)操作所配套的行選通、列選通,、預充電,、自刷新等命令所消耗時鐘周期。由式(2)知,,處理一行數(shù)據(jù)的時間小于行周期13.33 μs,。根據(jù)VESA標準,1 600×1 200分辨率畫面行周期包含2 160個像素時鐘周期,。行同步寬度為192個像素時鐘周期,,實際程序中利用行同步頭做清零處理,由式(3)可得到實際可用的操作時間為:
HSYNC,、HBLANK,、sys_ADSn、sys_R_Wn,、sys_BLS的時序波形圖如圖5所示,。
在行同步上升沿開始產(chǎn)生第1個低電平sys_ADSn信號,行地址加1,,sys_R_Wn為高,,sys_BLS為低,通知SDRAM控制器進行512突發(fā)讀操作,;完成后產(chǎn)生第2個sys_ADSn信號,,行地址加1,此時sys_R_Wn為高,,sys_BLS為高,,通知控制器進行288突發(fā)讀操作;完成后產(chǎn)生第3個sys_ADSn信號,,行地址減1,,此時sys_R_Wn為低,sys_BLS為低,,通知控制器完成512突發(fā)寫操作,;完成后產(chǎn)生第4個sys_ADSn信號,行地址加1,,此時sys_R_Wn為低,,sys_BLS為高,通知控制器進行288突發(fā)寫操作。SDRAM的行地址按照A,、A+1,、A、A+1,、A+2,、A+3、A+2,、A+3……的規(guī)律遞增,,突發(fā)操作狀態(tài)按照讀、讀,、寫,、寫、讀,、讀,、寫、寫……的規(guī)律進行,。
4 實驗驗證
本文采用的DSP器件是ADI公司TigerSHARC系列的TS201,,F(xiàn)PGA采用Altera公司的EP2S60F672,F(xiàn)PGA開發(fā)環(huán)境為QuartusII9.1,,運用開發(fā)環(huán)境集成的在線邏輯分析儀工具Signaltap II抓取sdram控制器的各個相關信號波形,,如圖6所示。
本文針對機載顯示器對高分辨率圖形顯示的需求,,采用SDRAM器件作為圖形幀存,,使用VHDL語言設計了SDRAM控制器;針對1 600×1 200分辨率畫面實時生成需求,,設計了512和288兩種突發(fā)長度,,通過FPGA內(nèi)部的FIFO進行數(shù)據(jù)緩沖處理,對SDRAM采取乒乓操作方式,,實現(xiàn)了分辨率高達1 600×1 200圖形的實時生成與顯示,。
參考文獻
[1] 賈銀亮.基于FPGA+DSP的飛機座艙綜合圖形顯示技術研究[D].南京:南京航空航天大學,2011.
[2] SPITZER C R.數(shù)字航空電子技術(上)航空電子元件,、軟件和功能件[M].謝文濤,,譯.北京:航空工業(yè)出版社,2010.
[3] 孔全存,,李成貴,,張鳳卿.主飛行儀表圖形加速顯示系統(tǒng)的FPGA設計[J].電子技術應用,2007,,33(4):62-64.
[4] 李翠娟,陳川,張曉曦,,等.幾種機載視頻技術要點分析與發(fā)展趨勢探討[J].航空電子技術,,2012,42(1):129-131,,134.
[5] 楊海濤,,蘇濤,巫檬.基于FPGA的SDRAM控制器的設計和實現(xiàn)[J].電子科技,,2007(1):8-12.
[6] 段曉晨,,何小剛,程永強.實時視頻SDRAM控制器的FPGA設計與實現(xiàn)[J].太原理工大學報,,2006,,37(5):5-8.
[7] 谷勇,艾德峰,,魏延巖.飛機座艙顯示系統(tǒng)畫面顯示質(zhì)量的研究[J].海軍航空工程學院學報,,2009,24(6):631-634.
[8] 王利穎,,蔣亞東,,羅鳳武.嵌入式實時圖像處理系統(tǒng)中SDRAM控制器的實現(xiàn)[J].現(xiàn)代電子技術,2009(9):137-139.
[9] 林志煌,,解梅.一種簡易SDRAM 控制器的設計方法[J].現(xiàn)代電子技術,,2008(16):18-20.
[10] 張波,張煥春,,經(jīng)亞枝.基于DSP和FPGA的座艙圖形顯示系統(tǒng)關鍵技術研究[J].信息與控制,,2003,32(6):549-552.
[11] Micron Technology Inc..SYNCHRONOUS DRAM MT48LC8M32B2-2 MEG ×32 × 4 banks[Z].2003.