
3 幀存控制器設(shè)計
3.1 幀存控制器結(jié)構(gòu)
在飛機座艙綜合圖形顯示系統(tǒng)中,“全羅盤畫面”和“導(dǎo)航顯示器”等畫面都是需要實時變化的畫面,這些畫面需要根據(jù)飛機的參數(shù)實時變化。實時完成圖形的改變有兩個主要途徑:(1)完全重畫,這不僅意味著復(fù)雜的二維計算,而且需要在刷新時間之內(nèi),完成對幀存的整個重寫,這種方法效率非常低。(2)只改變需要更改的那部分,這種方法需要研究算法,因為在編程中要確保圖形操作只改變需要更改的那部分,往往需要對圖形顯示的狀態(tài)作一串精確的記錄,保持這一串存儲記錄需要非常大的數(shù)據(jù)結(jié)構(gòu),這不利于圖形的運算[6]。而且對某個被顯示的移動部件來說,實際上是先把它在老的位置擦除,再在新的位置生成,故對圖形操作的工作量是加倍的。針對飛行儀表畫面的特點,提出一種新的字符圖形產(chǎn)生器顯示幀存結(jié)構(gòu),該幀存結(jié)構(gòu)采用兩個幀存輪流切換的技術(shù),并通過FPGA設(shè)計一個特殊的幀存控制器,使每個幀存具有自動消隱的功能。
幀存控制器結(jié)構(gòu)如圖4所示,圖中有兩套控制總線:一個是DSP的控制總線,一個是由FPGA產(chǎn)生的控制總線。當(dāng)DSP對幀存(1)進行寫操作時, FPGA所產(chǎn)生的控制總線對幀存(2)進行讀操作,將幀存(2)中的像素讀出,反之亦然。FPGA對某個幀存進行讀操作時,不是簡單的讀出,而是將讀出操作分成兩步:(1)將顯示數(shù)據(jù)讀入寄存器,(2)將背景數(shù)據(jù)寫入同一地址的幀存,這種操作方式使一個幀存在讀出所有的像素后,整個幀存僅存有背景顏色,從而在DSP對幀存進行寫操作時,軟件上不需要龐大的數(shù)據(jù)結(jié)構(gòu),同時也不需要進行消隱操作,這種幀存結(jié)構(gòu)可以節(jié)省大量的DSP運算時間,DSP還可以對背景寄存器進行預(yù)先的設(shè)置,使背景寄存器的內(nèi)容由用戶定義。

3.2 幀存控制器實現(xiàn)方法
如上節(jié)所述,具有自動消隱功能的幀存控制器設(shè)計中的一個關(guān)鍵問題是如何在一個像素時鐘周期內(nèi),既讀出數(shù)據(jù),又要寫入背景數(shù)據(jù)。為此,本文在系統(tǒng)中引入了多時鐘設(shè)計,圖5為實現(xiàn)自動消隱的時序圖,圖中有兩個時鐘,一個為像素時鐘,頻率為20 MHz,它由DSP的工作時鐘40 MHz二分頻而得。一個為消隱時鐘,頻率為80 MHz,它由40 MHz倍頻而得。在Xilinx公司的SpartanII系列芯片中內(nèi)嵌了4個DLL數(shù)字延遲鎖相環(huán),每個DLL可以倍頻和1.5,2,2.5等分頻。由 DLL實現(xiàn)的倍頻和分頻,可以保證在相位上的嚴格一致[7]。如圖5所示,頻率為80 MHz的消隱時鐘將一個像素周期分為4個節(jié)拍,分別定義為S0,S1,S2,S3。其工作過程如下:在像素時鐘的上升沿,地址總線addr的地址計數(shù)器加1,使幀存SRAM上的地址發(fā)生變化。在延時10 ns后,圖形數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上,由FPGA在狀態(tài)S1讀入鎖存器,然后,F(xiàn)PGA切換數(shù)據(jù)總線方向,將背景數(shù)據(jù)送入數(shù)據(jù)總線,同時,送出WE負脈沖,在WE的上升沿將數(shù)據(jù)總線上的背景數(shù)據(jù)寫入同一地址的幀存SRAM?紤]到線延時,設(shè)計中,將狀態(tài)機的有效時鐘邊沿定義為消隱時鐘的下降沿。

3.3 有關(guān)自動消隱的討論
具有自動消隱功能的幀存控制器,適用于顯示圖形數(shù)據(jù)較少且需要動態(tài)實時變化的畫面,如全羅盤畫面,80度羅盤畫面等,這類畫面所要顯示的圖形數(shù)據(jù)遠遠少于背景數(shù)據(jù)。如上所述,對于顯示這種圖形,幀存的自動消隱能大大減少DSP在組織數(shù)據(jù)結(jié)構(gòu)和消隱老畫面的時間。但是對于顯示飛行儀表的其它需要大量填充的畫面,如飛機座艙的全姿態(tài)指示儀(俗稱天地球)及數(shù)字地圖等畫面,使用具有自動消隱功能的幀存控制器是不適宜的,因為這些畫面需要對不同的區(qū)域填充不同的顏色[8],如果用硬件自動消隱前次存入的圖形數(shù)據(jù),則在下一次需要送入整幅圖形數(shù)據(jù),即使對于那些沒有變化的填充圖形,也需要重新送入,自動消隱反而增加了DSP的負擔(dān)。這些需要大量填充畫面的顯示,需要在軟件上研究算法,研究怎樣只消隱變化了的填充區(qū)域,而保留沒有變化的填充區(qū)域,或者研究如何用硬件實現(xiàn)高速的圖形填充。
4 結(jié)束語
字符圖形發(fā)生器是航空綜合圖形顯示系統(tǒng)的重要組成部分,字符圖形發(fā)生器的性能好壞,直接影響到航空電子綜合顯示系統(tǒng)的性能。在字符圖形發(fā)生器中應(yīng)用FPGA技術(shù),使電路結(jié)構(gòu)簡單,實現(xiàn)方式靈活,能實現(xiàn)一些很復(fù)雜的電路,同時也提高了整個字符圖形產(chǎn)生器的可靠性,減少了設(shè)備的體積和重量。本文介紹的視頻控制器和幀存控制器,已在實際的顯示系統(tǒng)中應(yīng)用。測試表明,這種設(shè)計方式能有效提高飛機全羅盤畫面的旋轉(zhuǎn)速度,對其它類似的應(yīng)用場合也具有實際參考價值。
參考文獻:
[2] Runyon K R.Application of an advanced graphicsprocessor[J].SPIE,Cockpit Displays,1994,2219:383~387.
[3] Thomsen SV,Hancock W R.Extending AMLCDtechnology into the space shuttle cockpit[J].SPIE,CockpitDisplays,1994,2219:118~129.
[4] Korry Electronics Corp.Interface controldocument KDM710.5X5 AMLCD[M].2001.12~14.
[5] 蘇光大.微機圖像處理系統(tǒng)[M].北京:清華大學(xué)出版社,2000.21~38.
[6] 孫家廣,許隆文.計算機圖形學(xué)[M].北京:清華大學(xué)出版社,1998.178~187.
[7] Xilinx Corp.Spartan-II2.5V FPGA family:func-tionaldescription[M].2001.7~20.
[8] Handley SJ,Allerton D J.The design of an EFISattitude indictor fora flightsimulator[A].ICAS-94-8.1.4[C].1994.282~292.





