郭 超,曹 峰,高偉林,于小燕
(中航雷達與電子設備研究院 軍品研究所,江蘇 蘇州215151)
飛機座艙圖形綜合顯示系統是一個對實時性要求很高的圖形生成系統[1]。在飛機座艙顯示控制系統中,光柵圖形發生器接收主控計算機發送的指令和數據,實現各種圖形的生成,形成所需畫面,送往下視顯示器顯示[2]。大屏幕化是未來飛機座艙顯示的發展方向[3],針對這一趨勢,機載顯示器的圖形發生器由以DSP+FPGA 架構為核心的生產技術逐漸向以GPU 為核心的圖形生產技術方向轉變。采用DSP+FPGA的圖形硬件加速架構,或者使用專用GPU 圖形生成芯片,都可以產生高分辨率的機載顯示器圖形,但隨之帶來的是產品成本的急劇增加以及功耗的不斷上升,這顯然無法滿足某些特定條件下低功耗、低成本顯示器的要求。低功耗、低成本的嵌入式圖形硬件加速不僅在移動應用領域(GPS、手持游戲、汽車導航等)獲得廣泛的應用,也在軍事應用(飛機、潛艇、航空航天等高可靠應用)領域得到普遍關注[4]。
本文針對低功耗和小體積的某些機載顯示器市場需求,提出了采用SOPC 的設計方案實現圖形的生成和顯示。本圖形生成技術以SOPC中集成的NiosⅡ軟核為核心,根據顯示任務需要實時地計算并產生圖形像素點數據信息,配合SOPC中FPGA 芯片的邏輯控制,最終完成圖形的實時生成和顯示。本設計由于采用了軟核CPU 處理器,節省了增加硬件CPU 芯片的開銷,使得設計得以簡化,成本明顯降低。
SOPC(System On Programmable Chip)即可編程片上系統,或者說是基于大規模FPGA 的單片系統,是美國Altera 公司于2000 年提出的[5]。它將處理器、存儲器、I/O 等系統設計需要的功能模塊集成到一個可編程器件上,由單個芯片完成整個系統的主要邏輯功能,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統可編程功能[6],為SOC的實現提供了一種簡單易行而又成本低廉的手段,極大地促進了SOC的發展。
NiosⅡ處理器是Altera公司的第二代可配置的通用32位RISC軟核微處理器,是Altera公司特有的基于通用FPGA 架構的軟CPU 內核,提供:
(1)完全的32 位指令集、數據總線和地址空間;
(2)32位通用目的寄存器;
(3)32個外部中斷源;
(4)單指令32×32位乘和除指令可得到32位結果;
(5)計算64位和128位乘積專業指令;
(6)提供片外存儲器和外設接口;
(7)超過150DMIPS的性能。
由于NiosⅡ為軟核處理器,有“fast”、“standard”和“economic”3種類型可供選擇,具有很大的靈活性,可以在多種NiosⅡ系統組合設置中選擇,滿足成本和功能的要求。
3.1.1 硬件結構
本文的硬件部分由NiosⅡ處理器、片上RAM、幀存、視頻控制器、通用異步收發器(Universal Asynchronous Receiver and Transmitter,UART)和并行I/O(Parallel I/O,PIO)外設、Flash和EPCS控制器等組成,如圖1所示。

圖1 基于SOPC的圖形生成硬件結構圖Fig.1 Hardware structure for the graphic-generator based on SOPC
正常工作時NiosⅡ處理器通過AVALON總線控制UART 接收任務處理機的數據和指令,按照要求調用圖形生成的算法,在規定時間內完成指定分辨率圖形的生成和光柵掃描轉換,并將結果存儲于幀存中。視頻控制器從幀存中讀出生成圖形的數據,處理后輸出至外部顯示器顯示。
雙幀存分別由NiosⅡ軟核處理器和視頻控制器控制,按規定時序切換,實現NiosⅡ圖形產生與視頻控制器刷新顯示操作的并行執行。
3.1.2 SOPC系統搭建
系統開發主要分為硬件開發和軟件開發兩部分,分別在Quartus和NiosⅡIDE開發環境上進行[7]。本文的SOPC系統基于Altera公司Quartus 9.0軟件提供的SOPC Builder工具生成。利用SOPC Builder可以在很短的時間內生成由處理器、存儲器和外設等組件組成的SOPC 系統。SOPC Builder自動生成系統級設計代碼及底層硬件驅動代碼,方便進行軟件開發[8]。

圖2 SOPC Builder硬件平臺圖Fig.2 Hardware platform for the SOPC Builder
本技術實現時搭建的SOPC Builder硬件平臺如圖2所示。
在本文搭建的SOPC系統中,NiosⅡ處理器、EPCS控制器、Flash控制器及三態橋、PIO 模塊等由Altera組件庫提供,視頻控制器自主設計并添加到SOPC系統中。
視頻控制器根據乒乓原理來操作兩個幀存。在NiosⅡ處理器寫幀存1時,FPGA 從幀存2讀出數據;NiosⅡ處理器寫幀存2時,FPGA從幀存1讀出數據。同時視頻控制器還根據像素時鐘、行、場同步產生控制時序來完成讀出數據的輸出顯示。
3.2.1 硬件抽象層系統庫的生成
當使用SOPC Builder創建一個硬件系統后,NiosⅡIDE為基于NiosⅡ的系統自動生成板級支持包(Board Support Package,BSP),包括硬件抽象層(Hardware Abstract Layer,HAL)系統庫和設備驅動[9],來匹配系統的硬件配置。HAL的API和ANSI C 標準庫集成在一起,為底層硬件通訊提供簡單器件驅動接口。HAL 系統庫提供以下服務[10]:
(1)集成ANSI C標準庫;
(2)提供了常用的設備驅動;
(3)提供了硬件抽象層接口;
(4)完成系統初始化任務;
(5)完成設備初始化。
HAL系統庫生成后,后續在NiosⅡIDE 中的軟件開發就可以借助HAL庫接口函數完成。
3.2.2 圖形生成軟件設計
基于NiosⅡ處理器的圖形生成軟件通過UART 獲取數據更新,使用PIO 作為幀存狀態的標志與FPGA 握手,實現對幀存的乒乓操作。圖形生成軟件功能模塊框圖如圖3所示。

圖3 圖形生成軟件功能模塊框圖Fig.3 Function modules of graphics generation software

圖4 圖形生成軟件流程圖Fig.4 Flow chart of graphics generation software
圖形生成軟件由初始化模塊、UART 通訊處理模塊和圖形生成模塊組成。初始化模塊完成定時器、中斷、全局變量等各部分的初始化狀態設定工作。UART 通訊處理模塊完成外部數據的接收和數據幀解析。圖形生成模塊完成圖形的生成。
圖形生成軟件的流程圖如圖4所示。
圖形生成軟件首先進行系統初始化工作。完成后開始循環讀取幀存狀態標志,判斷幀存是否可寫入。等到幀存可寫后,圖形生成模塊根據顯示指令和數據的要求,采用不同的計算機圖形學算法,按照直線、圓弧、字符等基本元素生成整個圖形的光柵化數據,并寫入幀存中。此后,圖形生成軟件將幀存狀態置為寫完成標志,然后跳回到讀取幀存狀態標志循環執行。
UART 數據的接收以中斷方式進行。在接收到數據幀后,進行完整性檢查和內容解析,并更新顯示指令和數據。
在進行實驗驗證時,選擇的硬件平臺為自研的SOPC圖形生成模塊,FPGA 型號為Altera公司的EP2S30F672。測試時NiosⅡ處理器選擇“fast”類型,設置指令CACHE和數據CACHE均為16KB,內核輸入時鐘頻率為65MHz。NiosⅡIDE編譯的優化等級設置為2級。

圖5 測試圖形示意圖Fig.5 General view for graphics generation experiment
測試圖形如圖5 所示,分辨率為640×480,其中包含了矩形、三角形、圓環、中文字符、英文字符、數字及符號等顯示內容。
實驗結果如表1所示。

表1 SOPC圖形生成實驗結果Tab.1 Result of graphic-generating experiment
NiosⅡ處理器進行圖形生成時,所消耗的時間主要由字符及圖形產生時間、寫幀存時間、反走樣效果處理時間3部分組成。其中反走樣處理時間約占了總時間的40%,是最耗時的一個部分。
NiosⅡ處理器工作在65 MHz,不進行反走樣處理時,圖形生成幀頻可以達到45fps,完全可以滿足機載顯示器實時性的要求(幀頻不低于25fps)。當需要進一步優化顯示效果,對圖形中圓弧、直線等元素采用反走樣算法進行優化時,圖形生成的幀頻可以達到26fps,也能夠滿足機載顯示器實時性的要求。
NiosⅡ軟核的最大工作頻率可達150 MHz以上[11]。為了提高圖形生成的性能,在SOPC 系統中各外設允許的前提下,可以通過提高NiosⅡ軟核的工作頻率來提高圖形生成的性能。
經過實驗測試,NiosⅡ工作頻率與所生成圖形幀頻之間的關系曲線圖6所示。
如圖6所示,NiosⅡ處理器工作頻率越高,所生產圖形的幀頻也越高。但受制于幀存芯片及其他外設訪問時序等因素的約束,其工作頻率不能隨意調高,需要根據具體的硬件平臺合理選擇。

圖6 NiosⅡ主頻與生成圖形幀頻關系曲線Fig.6 Relations between NiosⅡfrequency and graphics generation peroid
針對機載顯示器某些低功耗、低成本應用場合,本技術打破了傳統采用DSP+FPGA 架構或專用GPU 圖形芯片等高功耗、高成本的圖形生成方式,提出采用基于SOPC 的綜合軟硬件設計技術完成機載顯示器的圖形實時生成。該技術以SOPC中的NiosⅡ軟核處理器為圖形生成核心,與FPGA 按照乒乓方式操作幀存,并行完成圖形數據的生成和刷新顯示工作。通過實驗驗證,采用反走樣技術對生成的圖形進行顯示效果優化處理時,本技術可以生成640×480分辨率的圖形,幀頻達到了26fps,能夠滿足機載顯示器實時顯示的需求。
[1] 朱耀東,張煥春,經亞枝.飛機座艙綜合圖形顯示系統設計的一種新方法[J].南京航空航天大學學報,2012,34(5):488-492.Zhu Y D,Zhang H C,Jing Y Z.A new design method of combined graphics display system in aircraft cockpit[J].Journal of Nanjing University of Aeronautics &Astronautics,2012,34(5):488-492.(in Chinese)
[2] 陳少磊,金子同,郭凡.基于單DSP的雙通道圖形發生器設計[J].航空電子技術,2004,35(3):19-23.Chen S L,Jin Z T,Guo F.Twin channel graphics generator design based on single DSP[J].Avionics Technology,2004,35(3):19-23.(in Chinese)
[3] 邢新強,李國超,肖鋒.機載座艙顯示發展趨勢分析[J].飛機設計,2010,30(2):34-36.Xing X Q,Li G C,Xiao F.The developing trend analysis of aircraft cockpit display[J].Aircraft Design,2010,30(2):34-36.(in Chinese)
[4] 胡小龍,李列文,周俊明.基于SOPC及圖形加速引擎的座艙顯示系統[J].計算機工程,2009,35(21):231-234.Hu X L,Li L W,Zhou J M.Cockpit display system based on SOPC and graphics accelerating engine[J].Computer Engineering,2009,35(21):231-234.(in Chinese)
[5] 綦聲波,田學文.雙Nios軟核在嵌入式系統中的應用[J].單片機與嵌入式系統應用,2008(2):28-31.Qi S B,Tian X W.Application of dual NiosⅡsoft core in embedded system [J].Microcontrollers & Embedded Systems,2008,(2):28-31.(in Chinese)
[6] 姜漫,吳志勇,曹騰.基于SOPC技術的VGA 字符和圖像顯示系統[J].液晶與顯示,2013,28(1):120-126.Jiang M,Wu Z Y,Cao T.Characters and images VGA display system based on SOPC technology[J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):120-126.(in Chinese)
[7] 王海霞,武一.基于SOPC的LCD 顯示模塊的設計與實現[J].液晶與顯示,2012,27(4):508-514.Wang H X,Wu Y.Design and implementation of LCD module based on SOPC[J].Chinese Journal of Liquid Crystals and Displays,2012,27(4):508-514.(in Chinese)
[8] 生蕾,張峰.基于NiosⅡ的倒車雷達系統的實驗設計[J].實驗室研究與探索,2008,27(5):45-47.Sheng L,Zhang F.Experimental design of parking radar system based on NiosⅡ[J].Research and Exploration in Laboratory,2008,27(5):45-47.(in Chinese)
[9] 張興堂,高勇,王偉強.基于NiosⅡ的智能多接口片上系統設計[J].液晶與顯示,2012,38(7):61-64.Zhang X T,Gao Y,Wang W Q.Design of a multi-interface SoC based on NiosⅡ[J].Chinese Journal of Liquid Crystals and Displays,2012,38(7):61-64.(in Chinese)
[10] 李蘭英.NiosⅡ嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006:240-241.Li L Y.NiosⅡEmbedded Soft-core SOPC Design Principles and Applications[M].Beijing:Beihang University Press,2006:240-241.(in Chinese)
[11] Altera.NiosⅡProcessor Reference Handbook[R].San Jase,USA:Altera,2009:115.