文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.002
中文引用格式: 高偉林,,曹峰,,郭超. 基于雙處理器系統(tǒng)的圖形生成電路研究與應(yīng)用[J].電子技術(shù)應(yīng)用,2016,,42(2):9-13.
英文引用格式: Gao Weilin,,Cao Feng,Guo Chao. Research and implementation of graphics generation circuit based on double processor[J].Application of Electronic Technique,,2016,,42(2):9-13.
0 引言
現(xiàn)代飛機座艙顯示系統(tǒng)向駕駛員提供飛行器,、發(fā)動機和其他系統(tǒng)所測試的參數(shù),,包括從起飛、導(dǎo)航,、著陸等全過程所需要的各種信息[1],。隨著電子技術(shù)的不斷發(fā)展,,座艙顯示系統(tǒng)需要處理的實時信息量不斷增加,對機載顯示處理系統(tǒng)的實時性,、有效性和快速圖形處理能力提出了更高的要求[2],,主顯示器尺寸不斷加大,分辨率不斷提高,,并日益朝著大屏幕化,、綜合化、信息化和智能化方向發(fā)展,向飛行員傳遞的飛機參數(shù)越來越依賴于圖形顯示[3-5],。
圖形生成電路是座艙顯示系統(tǒng)的核心部分,,其主要功能是根據(jù)飛機任務(wù)、飛機狀態(tài)和周邊態(tài)勢等信息生成相應(yīng)的顯示畫面,,以供飛行員進行觀察,。軍用飛機在做戰(zhàn)術(shù)動作時,畫面變換速度快,要求圖形的更新速度也必須很快,至少要比幀或場的刷新速度快,才可以避免畫面的斷續(xù)[6-7]。目前,,在役各型飛機的機載顯示器一般采用單個DSP+FPGA的架構(gòu)完成圖形生成功能,。其中DSP負(fù)責(zé)圖形生成指令的發(fā)起和圖形生成算法的實現(xiàn),F(xiàn)PGA負(fù)責(zé)將DSP圖形生成的結(jié)果輸出顯示,。由于某些字符圖形顯示內(nèi)容(天地球,、全羅盤等)生成步驟復(fù)雜,且對生成圖形質(zhì)量要求很高(要求反走樣等),,導(dǎo)致在生成一幀顯示圖形時單個DSP的計算量過大,,造成機載顯示器字符圖形生成周期過長,數(shù)據(jù)刷新的實時性不能得到保證,;或者在面臨較高分辨率的字符圖形生成任務(wù)時,,在要求的數(shù)據(jù)刷新周期(例如25 ms)內(nèi)無法完成指定分辨率字符圖形的生成計算。由于上述因素的制約,,使用單DSP進行字符圖形生成的傳統(tǒng)方法已不能滿足未來機載顯示器字符圖形的生成需求,,研制出一種具有更高性能的機載顯示器圖形生成裝置勢在必行。
本文提出一種基于雙DSP處理器+FPGA架構(gòu)的圖形生成電路實現(xiàn)方法,,利用雙DSP協(xié)同進行圖形生成運算處理,,可以顯著提高圖形生成效率和系統(tǒng)能效比,滿足機載顯示器高分辨率圖形實時生成與顯示需求,。
1 系統(tǒng)原理
1.1 硬件構(gòu)成
本系統(tǒng)硬件原理框圖如圖1所示,。
系統(tǒng)主要由主從雙片DSP、FPGA,、SDRAM,、Flash、EPROM等模塊組成,,其中,,主從雙片DSP負(fù)責(zé)繪圖運算,,通過Linkport通信接口完成數(shù)據(jù)交互。SDRAM是系統(tǒng)幀存部件,,用于存放繪圖運算結(jié)果數(shù)據(jù),。FPGA是系統(tǒng)數(shù)據(jù)的交互和控制中心,配合主DSP對SDRAM幀存以乒乓操作的方式完成繪圖數(shù)據(jù)的讀寫處理,。Flash用于存儲畫面顯示軟件,,EPROM用于存儲FPGA程序。
1.2 顯示軟件
系統(tǒng)作圖時,,根據(jù)畫面內(nèi)容要求,,主DSP(DSP1)將作圖任務(wù)劃分成若干個基本作圖單元,并根據(jù)各任務(wù)計算量和通信時間等因素的約束,,將部分任務(wù)分配給從DSP(DSP2)計算,。這時DSP1向DSP2發(fā)送任務(wù)編號或者根據(jù)任務(wù)預(yù)先分配結(jié)果發(fā)送開始作圖標(biāo)志,DSP2收到相應(yīng)內(nèi)容后,,啟動作圖任務(wù),,并將作圖結(jié)果保存下來,待任務(wù)完成后DSP2將計算結(jié)果通過Linkport端口發(fā)送至DSP1進行同步顯示,。雙DSP軟件的接口關(guān)系如圖2所示,。
雙DSP圖形畫面顯示軟件由主DSP(DSP1)和從DSP(DSP2)的兩部分軟件組成。其功能模塊框圖如圖3所示,。DSP1畫面顯示軟件主要包括初始化模塊和主模塊,,初始化模塊完成DSP系統(tǒng)寄存器,、SDRAM,、Linkport接口、調(diào)色板等初始化功能,,主模塊由Linkport通信與數(shù)據(jù)傳輸模塊和畫面顯示模塊組成,,其中通信與數(shù)據(jù)傳輸模塊完成與從DSP的LinkPort通信、任務(wù)分配與同步等功能,,畫面顯示模塊完成DSP1的作圖計算與顯示等功能,。從DSP由初始化模塊及主模塊組成,初始化模塊主要完成DSP系統(tǒng)寄存器和LinkPort接口等初始化任務(wù),,主模塊由通信與數(shù)據(jù)傳輸模塊和作圖計算模塊等組成,,通信與數(shù)據(jù)傳輸模塊完成接收主DSP的控制命令和將作圖計算結(jié)果發(fā)送給主DSP等兩項功能;作圖處理模塊完成分配的作圖任務(wù),,并將相應(yīng)的計算結(jié)果(對應(yīng)像素點信息)保存下來,。
2 Linkport通信端口
本文采用的DSP芯片為ADI公司的ADSP-TS201,TS201專門為高速通信設(shè)計了基于LVDS技術(shù)的Linkport,,解決了DSP之間的通信瓶頸問題[8],。TS201帶有4路Linkport口,,信號通過LVDS形式以DDR數(shù)據(jù)格式傳輸,時鐘上升沿和下降沿均有數(shù)據(jù),。每一路都可以同時進行發(fā)送和接收操作,。通過Linkport口,系統(tǒng)內(nèi)多片DSP之間可以實現(xiàn)點對點通信[9],。每個鏈路口的最高單向傳輸速率是500 MB/s,,可以非常方便并行系統(tǒng)中處理器之間的通信[10]。
2.1 Linkport通信協(xié)議
Linkport口可以配置為4位模式(對應(yīng)于4路Linkport口)和1位模式(對應(yīng)于1路Linkport口),,模型如圖4和圖5所示,,Linkport口結(jié)構(gòu)如圖6所示。
圖6中Tx buffer為發(fā)送緩沖,,Tx SHIFT register為發(fā)送端移位寄存器,,Rx buffer為接收緩沖,Rx temporary buffer為接收端臨時緩沖,,Rx SHIFT register為接收端移位寄存器,。
Linkport口通信協(xié)議如下:
(1)Linkport口數(shù)據(jù)以突發(fā)方式傳輸,每發(fā)起一次傳輸最小傳輸數(shù)據(jù)量為128 bit,。
(2)傳輸?shù)牡谝粋€數(shù)據(jù)(1 bit或4 bit)在Link口時鐘的上升沿傳輸,。
(3)傳輸?shù)淖詈笠粋€數(shù)據(jù)(1 bit或4 bit)在Link口時鐘的下降沿傳輸。
(4)Link口處于空閑狀態(tài)時時鐘一直為低電平,,也即有數(shù)據(jù)傳輸時才有時鐘信號,,時鐘信號是不連續(xù)的。
2.2 DSP間Linkport通信
ADSP-TS201之間進行Linkport通信時,,除了直接采用Linkport內(nèi)核通信方式外,,還支持Linkport采用DMA方式進行通信。
雙DSP之間的Linkport通信采用了單向循環(huán)通訊方式進行測試,。DSP1完成Linkport的控制寄存器配置后首先啟動發(fā)送,,發(fā)送完成后進入接收等待狀態(tài),等待DSP2將數(shù)據(jù)返回,。DSP2在寄存器配置后首先進入接收等待狀態(tài),,等待DSP1發(fā)出的數(shù)據(jù)。在接收到DSP1的數(shù)據(jù)后,,再將數(shù)據(jù)發(fā)回至DSP1,。然后DSP1再啟動下一組數(shù)據(jù)的發(fā)送,如此循環(huán),,通信流程圖如圖7所示,。
2.3 雙DSP之間的LinkDMA內(nèi)核通信
LinkDMA傳輸需要配置的寄存器是128 bit的傳輸控制塊寄存器(TCB),TCB包含了4個32 bit寄存器:DMA地址索引寄存器DI,、DX寄存器,、DY寄存器,、DP寄存器。其中DI指明了DMA傳輸?shù)脑椿蛘吣康钠鹗嫉刂?,DX寄存器的高16 bit用于指定DMA傳輸?shù)淖謹(jǐn)?shù),,低16 bit用于指定地址的修改量,DY寄存器用于二維DMA傳輸,,DP寄存器包含了DMA傳輸時所有的控制信息,。
對于LinkDMA傳輸方式,DI設(shè)定為傳輸緩沖區(qū)的地址,,發(fā)送時為源緩沖地址,,接收時為目的緩沖區(qū)地址。DX中傳輸字?jǐn)?shù)可以根據(jù)傳輸數(shù)據(jù)大小決定,,地址修改量必須為4,。DY必須為0。DP中需要配置操作數(shù)據(jù)長度為4字方式,,指定DMA設(shè)備種類(內(nèi)存,、外存等),還需要確定是否需要DMA中斷,。
DSP1和DSP2在完成LinkPort控制寄存器配置后,,DMA通信方式還需要配置LinkPort端口的DMA發(fā)送通道DC7與DMA接收通道DC11。選定DC7通道TCB的源地址為內(nèi)存數(shù)據(jù)起始地址,,地址修改量為4,,數(shù)據(jù)長度為4字模式,設(shè)備類型為INTMEM(內(nèi)部存儲器),,并使能DMA7的中斷,。DC11的配置處將數(shù)據(jù)地址改為內(nèi)存中接收緩沖首地址外,其他配置與DC7相同,。然后還需要在IMASK寄存器中將DMA7和DMA11的中斷控制位使能,。
3 雙DSP并行處理和同步顯示技術(shù)
未來日益提高的顯示器畫面分辨率和顯示實時性的需求,,使得單個DSP在進行高分辨率的畫面圖形繪制時難以滿足要求,。因此,采用雙DSP或者多個DSP進行作圖任務(wù)分工,,協(xié)同并行處理是滿足這一需求的有效途徑,。
雙DSP的作圖畫面選擇典型的EFIS畫面,包括天地球和全羅盤顯示內(nèi)容,。為了實現(xiàn)雙DSP并行作圖計算和同步顯示,,需實現(xiàn)基于Linkport通信的任務(wù)分配和任務(wù)同步的策略。雙DSP之間任務(wù)分配的合理程度直接影響著雙DSP共同作圖的總的計算時間,,而雙DSP計算結(jié)果的最終合成以及同步顯示則直接影響著顯示器畫面的顯示效果,。
3.1 任務(wù)分配策略
雙DSP任務(wù)分配是以對所繪制畫面的合理功能模塊劃分為基礎(chǔ)的,。根據(jù)典型畫面軟件模塊組成,在進行雙DSP的任務(wù)分配時,,首先將典型畫面分割成如下若干個繪圖模塊單元,,如圖8所示。
根據(jù)以上繪圖單元的劃分方式,,在進行雙DSP繪圖時,,分別采用了以下幾種任務(wù)分配方法:
(1)DSP1(主DSP)繪制全部畫面,DSP2(從DSP)空閑,;
(2)DSP2(從DSP)繪制畫面單元2(全羅盤),,DSP1(主DSP)繪制其余全部畫面;
(3)DSP2(從DSP)繪制畫面單元2(全羅盤)和畫面單元6(氣壓高度),,DSP1(主DSP)繪制其余全部畫面,;
(4)DSP2(從DSP)繪制畫面單元2(全羅盤)和畫面單元3(靜態(tài)背景畫面),DSP1(主DSP)繪制其余全部畫面,;
(5)DSP2(從DSP)繪制畫面單元2(全羅盤)和畫面單元5(信息框文字),,DSP1(主DSP)繪制其余全部畫面;
(6)DSP2(從DSP)繪制畫面單元2(全羅盤),、畫面單元5(信息框文字),、畫面單元4(頂部文字菜單),DSP1(主DSP)繪制其余全部畫面,;
(7)DSP2(從DSP)繪制畫面單元2(全羅盤),、畫面單元6(氣壓高度)、畫面單元5(信息框文字),、畫面單元4(頂部文字菜單),,DSP1(主DSP)繪制其余全部畫面。
3.2 系統(tǒng)同步策略
每幀畫面計算顯示之初,,主DSP(DSP1)首先將畫圖任務(wù)分配結(jié)果發(fā)送給從DSP(DSP2),,然后二者同時進行作圖計算,DSP1的作圖結(jié)果直接寫入顯存SDRAM,,DSP2的作圖計算結(jié)果暫時保存在內(nèi)存緩沖區(qū)中,,待作圖完成后,通過LinkPort端口采用DMA方式發(fā)送給DSP1,。DSP1收到DSP2的作圖計算結(jié)果后,,將計算結(jié)果寫入SDRAM,然后通過改變通用輸入輸出引腳FLAG0的輸出狀態(tài)通知FPGA進行顯存的刷新,。
為了保證兩個DSP的作圖結(jié)果可以同步顯示,,主DSP在完成作圖任務(wù)并將結(jié)果寫入SDRAM后,必須等待接收從DSP的作圖結(jié)果,確認(rèn)收到后,,才翻轉(zhuǎn)FLAG0的狀態(tài)開始啟動畫面顯示,,這樣就可以保證DSP1和DSP2的畫面可以同步顯示。
3.3 軟件設(shè)計流程
DSP1作為系統(tǒng)主DSP,,首先需要通過判讀通用輸入輸出引腳FLAG1的輸入狀態(tài)來確認(rèn)FPGA已經(jīng)完成SDRAM顯存的刷新,,然后才啟動LinkDMA將預(yù)先分配好的任務(wù)發(fā)送給DSP2。DSP1發(fā)送完成后開始作圖,,DSP2接收到任務(wù)后也同時開始作圖,。待DSP1作圖完成后,如果DSP2也已經(jīng)作圖完成并且已經(jīng)將作圖結(jié)果發(fā)回,,則DSP1直接將數(shù)據(jù)寫入顯存,,寫完后將FLAG0的輸出狀態(tài)翻轉(zhuǎn)使FPGA進入操作狀態(tài)。雙DSP并行圖形處理與同步顯示軟件的流程圖如圖9所示,。
圖10為DSP1和DSP2在任務(wù)執(zhí)行時時間分配的示意圖,。在軟件執(zhí)行過程中,DSP2任務(wù)分配的多少將會影響整幅畫面的處理時間,。如果DSP2的任務(wù)分配過少,,主要的處理工作都由主DSP1完成,則系統(tǒng)總的處理時間減少并不明顯,;但如果DSP2任務(wù)分配過多,,在DSP1完成作圖任務(wù)后DSP2仍未完成,則DSP1的等待時間也會拉長畫面整個處理時間,。合理的任務(wù)分配應(yīng)該使得DSP2在完成作圖計算并將計算結(jié)果發(fā)回后,,DSP1也正好畫面處理結(jié)束,這時整幅畫面的作圖處理時間最短,,作圖效率最高,。
實際應(yīng)用時由于受到作圖任務(wù)的限制,兩個DSP的任務(wù)分配難以達(dá)到理想狀態(tài),,但應(yīng)該盡量保證二者時間上的并發(fā)性,,以減少總的作圖時間。
4 能效測算
在繪制1 024×768分辨率的典型畫面時,,兩個DSP的系統(tǒng)輸入時鐘為125 MHz,,內(nèi)核時鐘均為500 MHz。鏈路口時鐘,、SDRAM輸入時鐘均為125 MHz,。
對3.1中所述的幾種任務(wù)分配模式下雙DSP的作圖時間,、幀率和系統(tǒng)功耗進行測試,,結(jié)果如表1所示。
經(jīng)過對比可以看出,,在采用雙DSP共同作圖計算時,,不同的任務(wù)分配情況,,畫面總的作圖時間和系統(tǒng)功耗也有所不同。在分配的時間相對均勻條件下,,雙DSP并行處理比單個DSP單獨處理效率提升53.6%,,而功耗僅上升15.1%。
5 結(jié)論
本文針對傳統(tǒng)的單DSP作圖性能不足的問題,,提出了一種雙DSP并行作圖解決方案,,利用DSP間的Linkport端口傳遞作圖參數(shù)和數(shù)據(jù),并完成作圖數(shù)據(jù)同步顯示,,結(jié)果顯示,,在采取有效的任務(wù)分配策略后,可以大幅地提高作圖效率,,減少系統(tǒng)繪圖時間,,而系統(tǒng)功耗增加并不明顯。
參考文獻
[1] 賈銀亮.基于FPGA+DSP的飛機座艙綜合圖形顯示技術(shù)研究[D].南京:南京航空航天大學(xué),,2011.
[2] 李孟華,,牛文生,裴靜靜.DSP+FPGA結(jié)構(gòu)的嵌入式圖形處理設(shè)計[J].航空計算技術(shù),,2013,,43(1):120-122.
[3] 邢新強,李國超,,肖鋒.機載座艙顯示發(fā)展趨勢分析[J].飛機設(shè)計,,2010,30(2):34-36.
[4] 朱耀東,,張煥春,,經(jīng)亞枝.FPGA在飛行儀表字符圖形產(chǎn)生器設(shè)計中的應(yīng)用[J].數(shù)據(jù)采集與處理,2003,,18(2):185-188.
[5] 胡小龍,,周俊明,夏顯忠.飛機座艙圖形顯示加速系統(tǒng)設(shè)計及FPGA實現(xiàn)[J].中南大學(xué)學(xué)報(自然科學(xué)版),,2008,,39(5):1042-1048.
[6] 姜丹丹,李成貴.基于ARM與FPGA的主飛行儀顯示系統(tǒng)的設(shè)計[J].計量與測試技術(shù),,2009,,36(1):50-51.
[7] 谷勇,艾德峰,,魏延巖,,等.飛機座艙顯示系統(tǒng)畫面顯示質(zhì)量的研究[J].海軍航空工程學(xué)院學(xué)報,2009,24(6):631-634.
[8] 曹榮祥.多DSP系統(tǒng)間LinkPort數(shù)據(jù)同步傳輸技術(shù)研究[J].計算機工程應(yīng)用技術(shù),,2011,,7(5):1155-1157,1169.
[9] Analog Devices.ADSP-TS201 TigerSHARC processor hardware reference[Z].2004.
[10] 朱美能,,李德華,,金良海,等.基于多DSP的并行實時視頻處理系統(tǒng)[J].計算機與數(shù)字工程,,2007,,35(8):41-44.