高偉林,曹 峰,佟 川,郭 超
(中航工業(yè)雷達(dá)與電子設(shè)備研究院 軍品研究所,江蘇 蘇州 215151)
在飛機(jī)座艙顯示系統(tǒng)中圖形顯示占據(jù)重要地位[1]。主顯示器尺寸不斷加大,分辨率不斷提高,并日益朝著大屏幕化、綜合化、信息化和智能化方向發(fā)展[2]。隨著分辨率的提高,要顯示的信息量也大幅增加,座艙圖形綜合顯示系統(tǒng)是一個(gè)對(duì)實(shí)時(shí)性要求很高的系統(tǒng)[3],軍用飛機(jī)在做戰(zhàn)術(shù)動(dòng)作時(shí),畫面變換速度快,要求圖形的更新速度也必須很快,至少要比幀或場的刷新速度快,才可以避免畫面的斷續(xù)[4-5]。采用 DSP+FPGA的圖形硬件加速架構(gòu),或者使用專用GPU圖形生成芯片,都可以生成高分辨的機(jī)載顯示器圖形,但隨之而來的是產(chǎn)品成本的急劇增加以及功耗的不斷上升[6]。為機(jī)載圖形顯示系統(tǒng)配置更合理的硬件設(shè)計(jì)和軟件架構(gòu)變得尤為迫切。
Xilinx最新平臺(tái)Zynq將處理器的軟件可編程能力與FPGA的硬件可編程能力實(shí)現(xiàn)完美結(jié)合,以低功耗和低成本等系統(tǒng)優(yōu)勢(shì)實(shí)現(xiàn)良好的系統(tǒng)性能、靈活性和可擴(kuò)展性[7]。本文提出一種基于Zynq可擴(kuò)展處理平臺(tái)的實(shí)時(shí)圖形生成電路,利用Zynq內(nèi)部集成的ARM處理器以及可編程邏輯資源,實(shí)現(xiàn)了機(jī)載顯示器圖形畫面的實(shí)時(shí)生成與顯示。
Zynq構(gòu)架將內(nèi)部結(jié)構(gòu)分為處理器系統(tǒng)(Processing System,PS)與可編程邏輯(Programmable Logic,PL)兩部分[8]。PS部分包括雙 ARM Cortex-A9內(nèi)核、存儲(chǔ)器接口以及通用外設(shè)接口等資源。PL部分也即常規(guī)的FPGA,通過PL生成的IP核可以作為ARM內(nèi)核的擴(kuò)展外圍設(shè)備或者ARM內(nèi)核的加速部件。Zynq器件內(nèi)部結(jié)構(gòu)圖如圖1所示。
圖1 Zynq內(nèi)部結(jié)構(gòu)圖Fig.1 Structure of Zynq
Zynq架構(gòu)可以對(duì)PL和PS中運(yùn)行的自定義邏輯和軟件方便地進(jìn)行管理和規(guī)劃,PS和PL的單芯片綜合使其在I/O數(shù)據(jù)帶寬、功能耦合、功耗預(yù)算等方面的性能表現(xiàn)大大超越了以往ASSP和FPGA雙芯片解決方案。
PS和PL可以通過多種途徑實(shí)現(xiàn)互聯(lián),包括GPIO端口、AXI總線端口、EMIO端口、中斷、DMA等等。其中AXI總線是ARM系統(tǒng)中連接各個(gè)模塊的主要通道,各個(gè)功能部件通過AXI總線實(shí)現(xiàn)互聯(lián)。在PL中可以通過工具自動(dòng)生成帶有AXI接口的IP核,和PS端進(jìn)行高速數(shù)據(jù)交互。
Zynq內(nèi)部集成的DDR memory控制器支持DDR2、DDR3、LPDDR2等多種存儲(chǔ)器類型,包含了3個(gè)主要模塊:AXI存儲(chǔ)器端接口DDRI、帶有傳輸調(diào)度機(jī)制的中央控制器DDRC和物理層控制器DDRP[9]。DDR memory控制器框圖如圖2所示。
圖2 DDR Memory控制器框圖Fig.2 Framework of DDR memory controller
DDRI端口符合AXI總線標(biāo)準(zhǔn),包含4個(gè)64位的同步 AXI接口,分別為S0、S1、S2、S3,用于接收多個(gè)AXI主端的訪問請(qǐng)求,其中S0和S1端口接收PS部分CPU的訪問請(qǐng)求;S2和S3端口接收PL部分邏輯端的訪問請(qǐng)求。DDRC對(duì)來自多個(gè)AXI主端的訪問請(qǐng)求按照其調(diào)度策略進(jìn)行裁決,裁決實(shí)施的依據(jù)是主控端訪問的優(yōu)先級(jí)、等待時(shí)長計(jì)數(shù)器和緊急信號(hào)。DDRP處理來自于DDRC的讀寫請(qǐng)求,并將其轉(zhuǎn)換成符合DDR存儲(chǔ)器時(shí)序要求的特定信號(hào)。
AXI VDMA是Xilinx公司開發(fā)的一個(gè)軟核IP,用于在系統(tǒng)存儲(chǔ)器和支持AXI4-Stream視頻類型的目標(biāo)IP之間提供一個(gè)高速的數(shù)據(jù)存取通道[10]。AXI4-Stream格式數(shù)據(jù)流不能直接用于驅(qū)動(dòng)顯示,還需要將數(shù)據(jù)流以視頻使能信號(hào)為界進(jìn)行分割,配合行場同步信號(hào)驅(qū)動(dòng)視頻終端顯示。
該IP有兩路 AXI4-Stream接口,分別為AXI Memory Map to Stream (MM2S)Stream Master 和 AXI4-Stream to Memory Map(S2MM)Stream Slave,其中 MM2S為主端口,用于輸出轉(zhuǎn)換成AXI4-Stream格式視頻流的系統(tǒng)存儲(chǔ)器中數(shù)據(jù)。S2MM為從端口,用于接收AXI4-Stream格式視頻流轉(zhuǎn)換成存儲(chǔ)器數(shù)據(jù)。MM2S和S2MM彼此相互獨(dú)立,可以并行同時(shí)工作。PS端的處理器可通過AXI4-Lite總線對(duì)其內(nèi)部的寄存器進(jìn)行訪問以控制VDMA工作模式、獲取VDMA工作狀態(tài)。
3.1.1 硬件架構(gòu)
本文通過Zynq完成圖形生成與顯示功能,原理框圖如圖3所示,硬件模塊主要包括Zynq、DDR3SDRAM、FLASH、雙口RAM等。正常工作時(shí)PS中的ARM內(nèi)核根據(jù)從雙口RAM中接收到的繪圖指令和參數(shù)完成繪圖算法,將圖形數(shù)據(jù)寫入DDR3SDRAM存儲(chǔ)器中。PL從DDR3中讀出圖形數(shù)據(jù)進(jìn)行顯示,并對(duì)DDR3SDRAM中的圖形數(shù)據(jù)進(jìn)行清屏處理。
圖3 Zynq圖形生成原理框圖Fig.3 Block diagram of graphic-generator based on Zynq
3.1.2 Zynq硬件平臺(tái)設(shè)計(jì)
本文通過Xilinx的ISE14.2軟件集成的XPS開發(fā)環(huán)境完成Zynq圖形生成電路的硬件平臺(tái)設(shè)計(jì)。利用XPS可以快速地對(duì)Zynq系統(tǒng)內(nèi)的各種硬件資源進(jìn)行定制設(shè)計(jì),包括存儲(chǔ)器、外設(shè)、ARM處理器、系統(tǒng)IP和用戶IP等。Zynq硬件平臺(tái)結(jié)構(gòu)圖見圖4所示。
圖4 Zynq硬件結(jié)構(gòu)圖Fig.4 Hardware structure of Zynq
本文在Zynq中的PL部分應(yīng)用了VDMA、AXI2XSVI、XSVI2AXI、VTC等幾個(gè)IP核,其中VDMA用于從DDR3SDRAM中讀出圖形數(shù)據(jù),同時(shí)向DDR3SDRAM中寫入全零數(shù)據(jù)以達(dá)到清屏目的。AXI2XSVI用于將AXI-Stream數(shù)據(jù)流用行、場同步信號(hào)進(jìn)行區(qū)隔,供外部顯示模塊進(jìn)行顯示。XSVI2AXI用于將帶有行場同步信號(hào)的視頻數(shù)據(jù)轉(zhuǎn)換成AXI-Stream數(shù)據(jù)流。VTC用于生成系統(tǒng)運(yùn)行所需時(shí)序信號(hào)。對(duì)VTC根據(jù)顯示時(shí)序進(jìn)行修改,系統(tǒng)即可產(chǎn)生多種分辨率圖形畫面。
3.1.3 圖形緩沖設(shè)計(jì)
本文中對(duì)DDR3SDRAM幀存的操作包括3種類型:PS寫入、PL讀取、PL清零。清零從本質(zhì)上說也是一種寫入操作,寫入的是全零數(shù)據(jù)。讀取和寫入請(qǐng)求通過DDR控制器中的調(diào)度機(jī)制和仲裁策略分別在不同時(shí)刻得以響應(yīng),得益于DDR3SDRAM的高速高帶寬優(yōu)勢(shì),外部可以同時(shí)進(jìn)行多個(gè)通道的讀寫操作。針對(duì)本文中DDR3 SDRAM的3種操作類型,在DDR3幀存中設(shè)置了3個(gè)緩沖區(qū),分別為buffer0,buffer1,buffer2,相應(yīng)地,VDMA中的frame buffer數(shù)目也設(shè)置為3。buffer的切換機(jī)制如表1所示。
這種三緩沖切換機(jī)制保證了寫入的都是已清零完成的buffer,清零的都是已讀出完成的buffer,讀出的都是已寫入完成的buffer。
根據(jù)buffer切換機(jī)制,VDMA中的S2MM和MM2S通道分別以指定的buffer為操作對(duì)象。初始化狀態(tài)下為每個(gè)buffer指定默認(rèn)的操作模式,而后在每個(gè)幀周期內(nèi)啟動(dòng)VDMA切換buffer操作模式,從而不間斷地輸出圖形數(shù)據(jù)。
表1 Buffer切換機(jī)制Tab.1 Buffer switching mechanism
3.2.1 Zynq系統(tǒng)軟件
系統(tǒng)繪圖時(shí),根據(jù)雙口RAM提供的畫面內(nèi)容要求,啟動(dòng)繪圖任務(wù),并將繪圖結(jié)果保存下來。顯示工作完全由PL內(nèi)部的顯示邏輯負(fù)責(zé),顯示邏輯從顯存中讀取顯示數(shù)據(jù),按照標(biāo)準(zhǔn)時(shí)序送至顯示接口。圖形軟件的接口關(guān)系如圖5所示。
圖5 圖形生成軟件接口示意圖Fig.5 General view of graphic-generator software interface
3.2.2 畫面顯示軟件
畫面顯示軟件主要包括初始化模塊和主模塊,結(jié)構(gòu)如圖6所示。初始化模塊完成ARM內(nèi)核啟動(dòng);外設(shè)初始化信息加載;DDR3SDRAM、UART等設(shè)備初始化;VDMA寄存器配置等初始化工作。運(yùn)算控制模塊由雙口RAM讀寫模塊;PS、PL通信模塊以及繪圖模塊3部分組成,其中雙口RAM讀寫模塊主要負(fù)責(zé)從雙口RAM中讀取繪圖指令數(shù)據(jù),為繪圖模塊提供必要的繪圖參數(shù);PS、PL通信模塊負(fù)責(zé)ARM內(nèi)核與VDMA的通信,切換緩存;繪圖模塊完成分配的繪圖任務(wù),并將相應(yīng)的計(jì)算結(jié)果,也即對(duì)應(yīng)的像素點(diǎn)信息寫入DDR3SDRAM中。
圖6 圖形生成軟件結(jié)構(gòu)圖Fig.6 Structure of graphic-generator software
在實(shí)驗(yàn)驗(yàn)證階段,分別采用自主開發(fā)的Zynq圖形生成模塊和DSP圖形生成模塊作為實(shí)驗(yàn)和比較對(duì)象。其中,Zynq圖形生成模塊采用的Zynq器件型號(hào)為XC7Z020,集成的ARM處理器頻率為667MHz,采用的DDR3SDRAM器件型號(hào)為MICRO公司的MT41J128M16,時(shí)鐘頻率設(shè)置為533MHz。DSP圖形生成模塊采用的DSP器件型號(hào)為AD公司TigerSHARC系列的TS201,主頻設(shè)置為520MHz。
為了全面驗(yàn)證Zynq平臺(tái)的圖形生成性能,本文針對(duì)幾種常規(guī)分辨率機(jī)載顯示器,對(duì)兩種平臺(tái)的圖形生成時(shí)間和幀率分別進(jìn)行對(duì)比測試。機(jī)載顯示器常規(guī)分辨率有640×480、600×600、1024×768等幾種,每種分辨率下具體圖形生成時(shí)間和幀率與圖形內(nèi)容和復(fù)雜度有關(guān),本文選取常用的典型圖形作為測試對(duì)象,每幅圖形均包含了直線、圓弧、矩形、字符、數(shù)字、符號(hào)等內(nèi)容,如圖7所示。
圖7 測試圖形Fig.7 Test graphics
以1024×768分辨率的EFIS畫面為例,Zynq平臺(tái)實(shí)時(shí)生成圖形數(shù)據(jù)并送至外部監(jiān)視器顯示的示意圖如圖8所示。
圖8 Zynq平臺(tái)1024×768分辨率圖形生成示例Fig.8 Zynq graphics generator demonstration for 1024×768resolution
針對(duì)3種分辨率典型圖形畫面,Zynq平臺(tái)和DSP平臺(tái)圖形生成時(shí)間和幀率對(duì)比分別如圖9和圖10所示。
圖9 圖形生成時(shí)間對(duì)比Fig.9 Time consuming comparison for graphics generation
圖10 圖形生成幀率對(duì)比Fig.10 Frame rate comparison for graphics generation
圖形生成時(shí)間包括圖形算法運(yùn)算時(shí)間和圖形數(shù)據(jù)寫幀存時(shí)間。在進(jìn)行圖形運(yùn)算處理時(shí),針對(duì)Zynq平臺(tái)的特點(diǎn)采取了一系列的優(yōu)化算法,圖形運(yùn)算時(shí)間小于DSP平臺(tái)。另外,Zynq平臺(tái)采用的是DDR3SDRAM幀存,操作速率遠(yuǎn)高于DSP平臺(tái)采用的SRAM幀存,因此寫幀存時(shí)間遠(yuǎn)小于DSP平臺(tái)。由圖9和圖10可見,在繪制分辨率相同的同一圖形時(shí),Zynq平臺(tái)圖形生成時(shí)間均小于DSP平臺(tái),幀率均高于DSP平臺(tái)。在繪制多種分辨率圖形畫面,Zynq平臺(tái)幀率均超越60Hz,滿足了機(jī)載顯示器的實(shí)時(shí)顯示要求。
針對(duì)機(jī)載液晶顯示器低功耗、小型化的應(yīng)用需求,提出了一種基于Zynq的圖形生成電路。運(yùn)用Zynq器件集成的ARM Cortex-A9內(nèi)核作為核心繪圖部件,外部高速DDR3存儲(chǔ)器作為圖形幀存,對(duì)幀存采取三緩沖機(jī)制進(jìn)行數(shù)據(jù)緩沖處理,配合可編程邏輯資源,可完成多種分辨率圖形的實(shí)時(shí)生成。對(duì)Zynq平臺(tái)和DSP平臺(tái)在多種分辨率下典型畫面的圖形生成時(shí)間和幀率進(jìn)行了對(duì)比測試,測試結(jié)果表明,Zynq平臺(tái)性能優(yōu)于DSP平臺(tái)。在生成1024×768分辨率的EFIS圖形畫面時(shí),Zynq平臺(tái)圖形幀率可達(dá)74fps,滿足機(jī)載顯示器實(shí)時(shí)顯示需求。
[1]胡小龍,周俊明,夏顯忠.飛機(jī)座艙圖形顯示加速系統(tǒng)設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].中南大學(xué)學(xué)報(bào):自然科學(xué)版,2008,39(5):1042-1048.Hu X L,Zhou J M,Xia X Z.Design and implementation of graphics accelerating display system based on FPGA[J].J.Cent.South Univ.:Science and Technology,2008,39(5):1042-1048.(in Chinese)
[2]邢新強(qiáng),李國超,肖鋒.機(jī)載座艙顯示發(fā)展趨勢(shì)分析 [J].飛機(jī)設(shè)計(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)
[3]張波,張煥春,經(jīng)亞枝.基于DSP和FPGA的座艙圖形顯示系統(tǒng)關(guān)鍵技術(shù)研究[J].信息與控制,2003,32(6):548-552.Zhang B,Zhang H C,Jing Y Z.Research on critical technology of graphics display system in aircraft cockpit based on DSP and FPGA [J].Information and Control,2003,32(6):548-552 .(in Chinese)
[4]姜丹丹,李成貴.基于 ARM 與FPGA的主飛行儀顯示系統(tǒng)的設(shè)計(jì)[J].計(jì)量與測試技術(shù),2009,36(1):50-51.Jiang D D,Li C G.The Main Flight-Display System Design Based on ARM and FPGA [J].Metrology & Measurement Technique,2009,36(1):50-51.(in Chinese)
[5]谷勇,艾德峰,魏延巖,等.飛機(jī)座艙顯示系統(tǒng)畫面顯示質(zhì)量的研究[J].海軍航空工程學(xué)院學(xué)報(bào),2009,24(6):631-634.Gu Y,Ai D F,Wei Y Y,et al.Research on display quality of aircraft cockpit display system [J].Journal of Naval Aeronautical and Astronautical University,2009,24(6):631-634.(in Chinese)
[6]郭超,曹峰,高偉林,等.基于SOPC的機(jī)載顯示器圖形實(shí)時(shí)生成技術(shù)[J].液晶與顯示,2014,29(1):65-70.Guo C,Cao F,Gao W L,et al.Real-time graphics generation technology based on SOPC in cockpit display system[J].Chinese Journal of Liquid Crystals and Displays,2014,29(1):65-70.(in Chinese)
[7]邢艷芳,張延冬.基于Zynq的 OLED驅(qū)動(dòng)設(shè)計(jì)[J].液晶與顯示,2014,29(2):224-228.Xing Y F,Zhang Y D.OLED driver design based on Zynq[J].Chinese Journal of Liquid Crystals and Displays,2014,29(2):224-228.(in Chinese)
[8]陸佳華,江舟,馬岷.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南基于Xilinx Zynq[M].北京:機(jī)械工業(yè)出版社,2013:40.Lu J H,Jiang Z,Ma M.Software and Hardware co-design Guide of Embedded System based on Xilinx Zynq[M].Beijing:China Machine Press,2013:40.(in Chinese)
[9]Xilinx.Zynq-7000EPP Technical Reference Manual[R].USA:Xilinx,2012:208.
[10]Xilinx.AXI VDMA Reference Design[R].USA:Xilinx,2012:6.