新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

作者: 時間:2011-11-01 來源:網(wǎng)絡(luò) 收藏

實時圖像處理、高速數(shù)據(jù)運算處理要求其系統(tǒng)具有對數(shù)據(jù)處理速度快、數(shù)據(jù)吞吐率高以及多任務(wù)處理功能。目前大多數(shù)方案都是采用HPI數(shù)據(jù)傳輸方式,將ARM和DSP進(jìn)行組合完成一些圖像處理,DSP處理器只是完成圖像采集、壓縮、編碼等簡單的處理[1]工作,不能滿足實時的智能識別或大數(shù)據(jù)量運算的視頻處理要求。在應(yīng)用領(lǐng)域方面也會因其處理速度問題受到一定的限制。
例如,胎兒性別屏蔽項目中,要對實時視頻進(jìn)行性別部位的檢測和屏蔽,若采用單DSP則會出現(xiàn)漏幀或視頻不流暢;應(yīng)用于高速運動物體跟蹤時,單DSP無法實現(xiàn)實時運動物體跟蹤,例如漢王科技的運動檢測和??低曔\動檢測,都不能實時檢測,即使檢測也會出現(xiàn)漏檢現(xiàn)象和視頻不流暢。當(dāng)處理4CIF或者更大圖像時,單DSP的處理能力又會下降,雖然可以將圖像縮小進(jìn)行處理,但是縮小圖像則會丟失一些重要的圖像信息,使得智能識別準(zhǔn)確率下降。
針對上述情況,設(shè)計一種能夠?qū)崿F(xiàn)進(jìn)行快速信號處理和數(shù)據(jù)交換的實時圖像處理系統(tǒng)很有必要。
1 系統(tǒng)結(jié)構(gòu)
1.1 結(jié)構(gòu)

系統(tǒng)功能:利用S3C6410進(jìn)行數(shù)據(jù)整合、任務(wù)調(diào)度、人機(jī)交互;利用TMS320C6416進(jìn)行算法運算;每個DSP與FPGA都是無縫連接。設(shè)計中利用FPGA實現(xiàn)的FIFO進(jìn)行與DSP之間的高速數(shù)據(jù)傳輸以及ARM對多個DSP的任務(wù)調(diào)度處理等。
系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)由1個ARM11處理器S3C6410(主處理器)與4個TMS320C6416(720 Hz)(從DSP)通過FPGA(EP2C70~7)實現(xiàn)互聯(lián)的ARM+多DSP的嵌入式圖像處理系統(tǒng)。所有的DSP都通過外部存儲器接口(EMIF)與FPGA無縫相連,每個DSP之間的數(shù)據(jù)傳輸是通過FPGA內(nèi)部互聯(lián)FIFO網(wǎng)絡(luò)實現(xiàn)。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

圖2所示是一種互聯(lián)的FIFO網(wǎng)絡(luò)結(jié)構(gòu)和高速數(shù)據(jù)傳輸網(wǎng)絡(luò)結(jié)構(gòu)。主處理器通過DMA數(shù)據(jù)訪問模式與FPGA的雙口FIFO連接,從而實現(xiàn)與FPGA通過FIFO連接的所有從DSP進(jìn)行通信,所有FIFO都是雙向的,F(xiàn)IFO及其讀寫控制邏輯都在FPGA內(nèi)部實現(xiàn)。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

FPGA中的FIFO讀寫狀態(tài)控制、各從DSP之間通信的同步握手信號、S3C6410處理器數(shù)據(jù)請求等邏輯信號,都是由每個DSP的一部分GPIO口與EP2C70的I/O口連接實現(xiàn)。
1.2 特點
系統(tǒng)結(jié)構(gòu)具有可重構(gòu)特性,在硬件平臺不變情況下,只需通過改變FPGA程序代碼就可以完全改變系統(tǒng)結(jié)構(gòu),以適應(yīng)不同的算法結(jié)構(gòu)。如圖2中屏蔽DSP1~DSP4之間的互相通信,即可組成主從并行的流水線結(jié)構(gòu);若需要串行的流水線結(jié)構(gòu),只需將DSP1~DSP4的其中一個與S3C6410通信即可;若需要設(shè)計更復(fù)雜的串并混合性結(jié)構(gòu),也只需改變FPGA的代碼就能夠很容易地實現(xiàn)。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

2 S3C6410的DMA與FPGA的軟FIFO
接口實現(xiàn)
2.1 S3C6410簡介
S3C6410是三星公司的產(chǎn)品采用ARM1176JZF-S核,包含16 KB的指令數(shù)據(jù)Cache和16 KB的指令數(shù)TCM;ARM Core電壓為1.1 V時,可以在553 MHz下運行。在1.2 V時,可以在667 MHz下運行。通過AXI、AHB和APB組成的64/32 bit內(nèi)部總線與外部模塊相連。SROM Controller:6個片選,支持SRAM、ROM和NOR Flash以及支持8/16 bit,每個片選支持128 MB。JPEG Codec:支持JPEG編解碼功能,最大尺寸為4 096×4 096。2D GRAPHICS:2D加速,支持畫點/線,bitblt功能和Color Expansion。3D GRAPHICS:3D加速。
S3C6410可支持4個DMA控制器,用于系統(tǒng)總線內(nèi)部或與外圍總線之間的數(shù)據(jù)交換,每個控制器包含8個通道,支持8/16/32 bit傳輸?,F(xiàn)以外部DMA請求為例簡要介紹DMA的工作過程。圖3所示為DMA基本工作時序。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

當(dāng)需要進(jìn)行DMA操作時,外部DMA請求引腳XnXDREQ置為低電平。此時DMA控制器向CPU發(fā)出占用總線的請求,當(dāng)總線請求成功后,XnXDACK引腳變?yōu)榈碗娖?,表示CPU已經(jīng)將總線使用權(quán)交給DMA控制器,可以進(jìn)行數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)傳輸完成后,應(yīng)答信號XnXDACK置為高電平,通知CPU完成一次DMA操作。
S3C6410提供了三種不同的DMA操作模式:單服務(wù)命令模式、單服務(wù)握手模式和全服務(wù)握手模式。在利用DMA進(jìn)行數(shù)據(jù)傳輸前必須對其相關(guān)寄存器進(jìn)行設(shè)置,包括源地址寄存器、目的地址寄存器和各自的控制寄存器以及配置DMA模式的控制寄存器等。
2.2 FPGA及其實現(xiàn)FIFO[2]
采用FPGA 實現(xiàn)多時鐘電路系統(tǒng)時,需要處理不同的時鐘域之間速率匹配問題,可利用FPGA內(nèi)部生成的異步FIFO來處理。異步FIFO主要由雙端口RAM、寫地址產(chǎn)生模塊、讀地址產(chǎn)生模塊、滿空標(biāo)志產(chǎn)生模塊組成。雙端口RAM由FPGA的Block RAM塊構(gòu)成,FPGA采用Atera公司的EP2C70-896C7,其Block RAM讀寫時鐘頻率可以達(dá)到216.73 MHz,因此選用Block RAM作為存儲體,不僅速度快,而且設(shè)計簡單。設(shè)計時,一個端口配置成寫端口,另一端口配置成讀端口,然后把Block RAM 的管腳與相對應(yīng)的控制信號相接即可。讀寫地址通過FPGA芯片內(nèi)部的二進(jìn)制進(jìn)位邏輯產(chǎn)生,以對應(yīng)Read_En/Write_En作為使能信號在讀/寫時鐘的控制下進(jìn)行計數(shù)。空或滿標(biāo)志可以由讀或?qū)懙刂返南鄬ξ恢脕慝@得。本系統(tǒng)采用2個FIFO組成一路數(shù)據(jù)傳輸通道,雙向FIFO的設(shè)計圖如圖4所示。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

2.3 S3C6410的DMA與軟FIFO接口實現(xiàn)
根據(jù)DMA接口原理,設(shè)計S3C6410與FPGA之間的接口簡圖如圖5所示。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)

讀時鐘由ARM的時鐘輸出引腳CLKOUT0提供。CLKOUT0根據(jù)S3C6410內(nèi)部寄存器的設(shè)置可以輸出不同的時鐘頻率。FIFO輸出數(shù)據(jù)經(jīng)過以nGCS4為選通信號的緩沖器(Buffer)后接到S3C6410的數(shù)據(jù)總線上。nGCS4是S3C6410存儲空間中BNAK4的片選信號,當(dāng)S3C6410對該信號對應(yīng)存儲空間進(jìn)行讀寫操作時,BANK4為低電平,其余時間均為高電平。
  FIFO的寫請求信號由S3C6410與FIFO的滿狀態(tài)共同控制。當(dāng)S3C6410發(fā)出START信號并且FIFO未滿時,寫請求信號為高電平,FIFO在寫時鐘的控制下寫入數(shù)據(jù);當(dāng)START信號撤銷或者FIFO滿時,寫請求信號變?yōu)榈碗娖?,停止寫操作?BR>  FIFO的讀操作與S3C6410的DMA操作配合進(jìn)行。系統(tǒng)采用單服務(wù)命令模式的DMA操作,每次傳輸一個字節(jié)的數(shù)據(jù)。當(dāng)DREQ0信號變?yōu)榈碗娖綍r,DMA操作開始,每次傳輸一個字節(jié)后產(chǎn)生一個DACK0應(yīng)答信號,而且只要DREQ0為低電平DMA操作就繼續(xù)進(jìn)行,直到DMA控制寄存器中的計數(shù)器為0,產(chǎn)生DMA中斷。根據(jù)上述時序特點,將FIFO的空信號作為DMA的請求信號DREQ0。當(dāng)CCD輸出的數(shù)據(jù)寫入FIFO中時,空信號跳變?yōu)榈碗娖絾覦MA操作,同時以DACK0信號作為FIFO的讀請求。每次DMA傳輸完成后應(yīng)答信號使FIFO的讀指針移動一位,以實現(xiàn)數(shù)據(jù)的快速準(zhǔn)確采集。
3 圖像采集模塊
用可編程視頻輸入處理器SAA7113H進(jìn)行視頻信號處理。SAA7113H內(nèi)部集成了強(qiáng)大圖像色度、亮度處理功能以及多種輸出模式[3];有32個工作寄存器,在系統(tǒng)復(fù)位時,必須通過I2C總線對其進(jìn)行初始化。本系統(tǒng)使用灰度圖像,沒有使用色度信號,所以數(shù)據(jù)線為8 bit。SAA7113H與FPGA的接口如圖6所示。

基于ARM+FPGA+多DSP的嵌入式實時圖像處理系統(tǒng)


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉