《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP和FPGA的全景圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于DSP和FPGA的全景圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2012年第6期
陸 軍1,高 樂(lè)1,劉 濤2
1.哈爾濱工程大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱150001; 2.中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所,遼寧 沈陽(yáng)110000
摘要: 設(shè)計(jì)了基于DSP和FPGA的全景圖像處理方案,F(xiàn)PGA完成圖像采集,DSP完成圖像的各種處理算法。利用FPGA設(shè)計(jì)了基于乒乓緩存機(jī)制的SDRAM控制器;采用EDMA方式,完成了DSP與FPGA的數(shù)據(jù)交換。測(cè)試結(jié)果表明,DSP+FPGA折反射全景圖像處理系統(tǒng)完成了對(duì)分辨率為2 048×2 048、每秒15幀的Camera Link接口的全景圖像的實(shí)時(shí)采集及緩存解算,并以1 024×768的分辨率進(jìn)行實(shí)時(shí)顯示。
中圖分類(lèi)號(hào): TP274;TN919
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)06-0024-03
Design and realization of panoramic image processing system based on DSP and FPGA
Lu Jun1,Gao Le1,Liu Tao2
1.College of Automation, Harbin Engineering University, Harbin 150001,China; 2.Shenyang Institute of Automation,Chinese Academy of Sciences, Shenyang 110000,China
Abstract: A scheme of panoramic image processing based on DSP and FPGA.FPGA is designed in this paper. Image acquisition is implemented by using FPGA. DSP completes image processing algorithms. Using of FPGA, the SDRAM controller in ping-pang buffer mechanism is designed. Communication between DSP and FPGA is implemented based on EDMA mode. Experimental results show that the design of DSP and FPGA panoramic image processing system can implement real-time image acquisition, buffering of 2048×2048 ,15fps per second based on camera Link interface. The system can also real-time display panoramic image in 1 024×768.
Key words : DSP;FPGA;SDRAM controller;ping-pong cache

    全景圖像實(shí)時(shí)處理系統(tǒng)可以獲取周?chē)较蛏系膱?chǎng)景圖像,可廣泛應(yīng)用于軍事偵察、視頻監(jiān)控、機(jī)器人視覺(jué)等領(lǐng)域[1]。

    對(duì)于高分辨率折反射全景圖像處理系統(tǒng),如果按照分辨率為2 048×2 048、幀率為15 f/s、每個(gè)像素為8 bit的灰度來(lái)計(jì)算,相機(jī)的數(shù)據(jù)吞吐量為480 Mb/s。在圖像采集、緩存、解算以及顯示輸出過(guò)程中,需要選擇合適的算法進(jìn)行大量的計(jì)算,一般單獨(dú)的處理器組成的嵌入式系統(tǒng)很難完成高分辨、實(shí)時(shí)性的圖像快速采集[2],因此需采取多個(gè)并行嵌入式處理器結(jié)構(gòu)完成折反射全景成像處理[3-4]。
    本文利用并行嵌入式處理結(jié)構(gòu),設(shè)計(jì)了基于FPGADSP的雙核全景圖像處理系統(tǒng)。主要包括基于FPGA的SDRAM控制器設(shè)計(jì)以及采用雙SDRAM在乒乓模式下輪流存儲(chǔ)采集圖像的策略,實(shí)現(xiàn)了高速全景圖像的存儲(chǔ)。在FPGA與DSP之間建立合理的握手機(jī)制,避免在同一時(shí)刻對(duì)同一個(gè)SDRAM進(jìn)行讀和寫(xiě);設(shè)計(jì)了DSP與FPGA通信接口,實(shí)現(xiàn)了二者之間的高速數(shù)據(jù)通信。本系統(tǒng)為后續(xù)算法處理提供了更加充足的時(shí)間裕度,為高速實(shí)時(shí)圖像處理提供了堅(jiān)實(shí)的基礎(chǔ)。
1 全景圖像處理系統(tǒng)結(jié)構(gòu)
    DSP+FPGA構(gòu)成的高分辨率折反射全景圖像處理系統(tǒng)的結(jié)構(gòu)如圖1所示。由Camera Link 接口的CCD相機(jī)采集的灰度圖像數(shù)據(jù)經(jīng)過(guò)LVDS串并轉(zhuǎn)換芯片轉(zhuǎn)換,在FPGA的控制下,完成圖像的采集,通過(guò)FPGA進(jìn)行乒乓緩存操作,64 bit SDRAM控制器完成對(duì)緩存器的突發(fā)式讀寫(xiě)控制,為整個(gè)系統(tǒng)提供高速緩存器;FPGA利用DSP的EMIF接口將已經(jīng)存儲(chǔ)的圖像數(shù)據(jù)以DMA方式傳送給DSP,DSP接收數(shù)據(jù)后完成全景圖像柱面展開(kāi)、分割識(shí)別等算法;DSP再通過(guò)EMIF接口把數(shù)據(jù)以DMA方式傳送回FPGA;利用FPGA把數(shù)據(jù)寫(xiě)入到緩存器中,最后發(fā)送到顯示器進(jìn)行顯示。

2 乒乓緩存模式下SDRAM控制器的設(shè)計(jì)及實(shí)現(xiàn)
2.1 SDRAM控制器的結(jié)構(gòu)設(shè)計(jì)

    SDRAM控制器的結(jié)構(gòu)組成包括:系統(tǒng)控制接口模塊、命令接口與解析模塊、刷新模塊、操作信號(hào)生成模塊、數(shù)據(jù)通路模塊。其中,系統(tǒng)控制接口模塊用以接收系統(tǒng)的控制信號(hào)從而產(chǎn)生相應(yīng)的CMD命令組合;命令接口與解析模塊用以接收CMD命令解碼并生成相應(yīng)操作指令;操作信號(hào)生成模塊用以接收操作指令,并根據(jù)相關(guān)時(shí)序生成對(duì)SDRAM的操作信號(hào);數(shù)據(jù)通路模塊用以控制數(shù)據(jù)流的方向以及產(chǎn)生有效的數(shù)據(jù)輸入輸出;刷新模塊包含在命令接口與解析模塊中用以產(chǎn)生刷新以及自動(dòng)刷新邏輯。
2.1.1 系統(tǒng)控制接口模塊
    該模塊包含初始化進(jìn)程以及系統(tǒng)指令分析機(jī)制。初始化進(jìn)程要完成對(duì)SDRAM器件和SDRAM控制器的初始化,以保持SDRAM控制器與外部SDRAM器件的工作模式匹配[5]。初始化完成后,系統(tǒng)的指令分析機(jī)制就可以接收并且分析外部數(shù)據(jù)、地址、控制信號(hào)以及從命令接口與解析模塊返回的命令響應(yīng)信號(hào)(CMDACK),從而以此產(chǎn)生對(duì)應(yīng)的CMD命令和SADDR地址信息給命令接口與解析模塊。此外,SADDR是分時(shí)復(fù)用的,在初始化階段SADDR用來(lái)傳輸用戶(hù)設(shè)定的工作模式控制字,而正常讀寫(xiě)操作中,SADDR又可作為分時(shí)復(fù)用的地址線(xiàn)傳輸SDRAM所需要的row、column以及Bank地址。
2.1.2 命令接口與解析模塊
    此模塊對(duì)由系統(tǒng)控制接口模塊接收到的CMD命令進(jìn)行判斷并解碼,其輸出就是發(fā)送給下一級(jí)即操作信號(hào)生成模塊的操作指令。同一時(shí)刻只允許輸出一個(gè)有效操作指令。該模塊中含有模式寄存器用來(lái)預(yù)設(shè)控制器的模式參數(shù),為控制提供具體的依據(jù)。
2.1.3 操作信號(hào)生成模塊
    此模塊根據(jù)命令接口和解析模塊發(fā)送過(guò)來(lái)的操作指令,按照SDRAM讀寫(xiě)時(shí)序規(guī)范產(chǎn)生操作動(dòng)作以及相應(yīng)的操作信號(hào)。程序中,CMD命令WRITEA和READA是實(shí)際上隱含了ACTIVE命令的WRITE和READ,它的實(shí)際工作過(guò)程是:當(dāng)該模塊收到do_write或do_read指令后,其反饋給命令接口及解析模塊的CMDACK置為1,表示響應(yīng)命令標(biāo)志,同時(shí)發(fā)出ACTIVE激活操作;緊接著產(chǎn)生一個(gè)延時(shí)動(dòng)作,經(jīng)過(guò)初始化時(shí)配置規(guī)定的CAS Latency延時(shí)時(shí)間后再進(jìn)行寫(xiě)或讀操作。
2.1.4 數(shù)據(jù)通路模塊
    此模塊在OE信號(hào)控制下,保持?jǐn)?shù)據(jù)的輸入輸出和相應(yīng)的操作指令在時(shí)序上同步,并且根據(jù)SDRAM器件的時(shí)序參數(shù)加入一定的延時(shí)以滿(mǎn)足宏觀的時(shí)序符合數(shù)據(jù)手冊(cè)的要求。當(dāng)OE=1時(shí),數(shù)據(jù)由控制器經(jīng)過(guò)DQ引腳寫(xiě)入SDRAM器件;當(dāng)OE=0時(shí),數(shù)據(jù)由SDRAM器件的DQ引腳讀入到控制器。
2.2 乒乓緩存模式
    將輸入數(shù)據(jù)流通過(guò)輸入數(shù)據(jù)選擇單元實(shí)時(shí)地分配到兩個(gè)數(shù)據(jù)緩存區(qū)。分別利用兩組SDRAM作為乒緩存器和乓緩存器,使用“空間換取時(shí)間”的方法,使兩組緩存器在同一時(shí)間分別作為讀和寫(xiě)的緩存,達(dá)到并行的目的。
    在乒?fàn)顟B(tài)時(shí),乒乓操作控制器向SDRAM B中寫(xiě)入數(shù)據(jù),與此同時(shí)從SDRAM A中讀取狀態(tài)交換之前已經(jīng)存入的數(shù)據(jù);在乓狀態(tài)時(shí),乒乓操作控制器向SDRAM A中寫(xiě)入數(shù)據(jù),同時(shí)從SDRAM B中讀取狀態(tài)交換之前已經(jīng)存入的數(shù)據(jù),同時(shí)乒乓操作控制與其他的采集、算法和顯示模塊進(jìn)行數(shù)據(jù)交換。乒乓緩存結(jié)構(gòu)如圖2所示。

2.3 SDRAM控制器實(shí)現(xiàn)及時(shí)序仿真
    SDRAM控制器實(shí)現(xiàn):SDRAM控制模塊與FPGA端的SDRAM存儲(chǔ)器相連,以FullPage模式從FPGA端的SDRAM存儲(chǔ)器中高速讀寫(xiě)數(shù)據(jù);觸發(fā)FullPage的REFRESH的命令,既保證數(shù)據(jù)不丟失,也能保證刷新的完成。在發(fā)出FullPage命令以后,必須給出一段空操作的延時(shí)或讀操作。時(shí)序仿真分別如圖3、圖4、圖5所示。


3 DSP與FPGA的數(shù)據(jù)通信
    為了提高數(shù)據(jù)傳輸?shù)耐掏铝?,DSP與FPGA之間使用DMA方式進(jìn)行數(shù)據(jù)傳輸[6],每次突發(fā)傳輸一行圖像數(shù)據(jù),使傳輸速率最大化。DSP采用EMIF接口,EMIF數(shù)據(jù)接口可以配置為多種傳輸方式并且可以DMA傳輸,而且是無(wú)縫接口。由于DSP與FPGA是跨時(shí)鐘域系統(tǒng),所以必須利用FPGA做好跨時(shí)鐘域處理,使用FIFO作為接口進(jìn)行數(shù)據(jù)緩存。
    FPGA將采集到的數(shù)據(jù)經(jīng)過(guò)預(yù)處理之后以64 bit的數(shù)據(jù)寬度開(kāi)始向DSP傳送,同時(shí)FPGA通過(guò)發(fā)出脈沖沿觸發(fā)DSP外部中斷管腳來(lái)觸發(fā)DSP的全局中斷。全局中斷觸發(fā)EDMA把外部數(shù)據(jù)傳送給DSP內(nèi)部的RAM,當(dāng)EDMA(接收)傳輸完成后,DSP的EDMA傳輸事件管理器會(huì)觸發(fā)“EDMA傳輸完成中斷”,此時(shí)DSP可以進(jìn)行相應(yīng)的算法處理并且將處理后的目標(biāo)數(shù)據(jù)存放到內(nèi)部RAM中;然后再觸發(fā)EDMA(發(fā)送)數(shù)據(jù)傳輸,通過(guò)EMIF數(shù)據(jù)接口將處理后的數(shù)據(jù)傳回給FPGA。數(shù)據(jù)流向示意圖如圖6所示。

 

 

    DSP與FPGA之間傳輸數(shù)據(jù)通信速率為100 MHz,傳輸一行圖像數(shù)據(jù)時(shí)間為2.56 ?滋s(傳回仍然為2.56 ?滋s)。由于前端每一行數(shù)據(jù)的采集時(shí)間為30.85 ?滋s,留給處理每行數(shù)據(jù)的算法時(shí)間為25.73 ?滋s,因此,在DSP的算法程序必須使用效率更高的線(xiàn)性匯編,才能滿(mǎn)足時(shí)間冗余度。
4 系統(tǒng)實(shí)現(xiàn)及結(jié)果
    實(shí)驗(yàn)采用ALTERA公司的CycloneII系列的EP2C35-F672-8 FPGA以及2片Hynix公司的32 bit SDRAM HY57V283220LTP-7,其中電路板由直流穩(wěn)壓源供電。由2 048×2 048的4百萬(wàn)像素,每秒15幀的Camera Link 接口的CCD相機(jī)采集得到的灰度圖像數(shù)據(jù)經(jīng)過(guò)LVDS差分串行信號(hào)轉(zhuǎn)并行芯片DS90CR288A進(jìn)行轉(zhuǎn)換,F(xiàn)PGA通過(guò)該控制器進(jìn)行整頁(yè)突發(fā)寫(xiě)操作將圖像數(shù)據(jù)寫(xiě)入到SDRAM A器件中。在乒乓緩存作用下,控制器將進(jìn)行突發(fā)讀操作,將SDRAM B中的圖像數(shù)據(jù)通過(guò)DMA方式與DSP進(jìn)行數(shù)據(jù)交換。DSP接收數(shù)據(jù)后完成全景圖像解算,然后將數(shù)據(jù)通過(guò)DMA方式傳送回FPGA,最后再將數(shù)據(jù)經(jīng)過(guò)LVDS并行轉(zhuǎn)串行轉(zhuǎn)換芯片DS90C385A轉(zhuǎn)換為Camera Link信號(hào),輸出到Camera Link接口的液晶顯示器上,以1 024×768的分辨率進(jìn)行實(shí)時(shí)顯示。實(shí)驗(yàn)采集的全景圖如圖7所示。

    本文設(shè)計(jì)了一種基于DSP+FPGA的全景圖像處理系統(tǒng),該系統(tǒng)設(shè)計(jì)的高效的64 bit SDRAM控制器完成了對(duì)緩存器的突發(fā)式讀寫(xiě)控制,以解決由于高分辨率和高幀率導(dǎo)致的數(shù)據(jù)傳輸速率高,以及必須給算法的解算預(yù)留足夠時(shí)間的問(wèn)題;通過(guò)FPGA進(jìn)行乒乓緩存操作,系統(tǒng)提供了高速緩存器,保證了DSP與FPGA協(xié)調(diào)地并行工作,解決了某些要求連續(xù)不間斷的時(shí)序要求;設(shè)計(jì)了用于DSP與FPGA通信的FPGA端接口模塊和DSP端接口程序。調(diào)試結(jié)果表明,系統(tǒng)可以穩(wěn)定可靠地完成高分辨率全景圖像的采集、緩存、處理和顯示。
參考文獻(xiàn)
[1] NAYAR S K.Catadioptric omnidirectional camera[C]. Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition.San Juan.PR:IEEE  Press,1997.
[2] 陳立棟,張茂軍,王煒,等.異構(gòu)雙核的高分辨率折反射全景高速處理系統(tǒng)[J].電子與信息學(xué)報(bào),2009,31(4):822-826.
[3] 譚志剛.全景環(huán)形成像的嵌入式DSP處理研究[D].杭州:浙江大學(xué),2005.
[4] Yan Luxin,Zhang Tianxu,Zhong Sheng.A DSP+FPGA-based parallel architecture for real-time image processing[C].Proceedings of the 6th World Congress on Intelligent  Control and Automation,Dalian,China,Jun.21-23,2006:10022-10025.
[5] 曹華,鄧彬.使用Verilog實(shí)現(xiàn)基于FPGA的SDRAM控制器[J].今日電子,2005(1):53-55.
[6] 李樂(lè),熊志輝,王斌,等.DSP+FPGA折反射全景視頻處理系統(tǒng)中雙核高速數(shù)據(jù)通信[J].電子與信息學(xué)報(bào),2010,32(3):649-654.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。