數(shù)字信號處理器(DSP)是采用數(shù)字計算方法對信號進(jìn)行處理的專用芯片,。由于其性能穩(wěn)定,可大規(guī)模集成,,編程性高和易實現(xiàn)等優(yōu)點,,被廣泛應(yīng)用,。其中,,以圖像處理與DSP技術(shù)結(jié)合較為普遍,,因為圖像所包含的信息數(shù)據(jù)量大,而DSP的處理速度快,,易于實現(xiàn)大量數(shù)據(jù)高速傳輸?shù)奶攸c能夠滿足這一要求,。
目前,圖像處理技術(shù)已在通信,、信息,、電子、航天及軍事等領(lǐng)域得到廣泛應(yīng)用,。與圖像處理有關(guān)的系統(tǒng)設(shè)計中,,F(xiàn)PGA加DSP構(gòu)架是普遍的使用方法。為充分利用DSP的性能,,需要在FPGA中對圖像進(jìn)行相應(yīng)的預(yù)處理,,再把圖像數(shù)據(jù)傳輸給DSP進(jìn)行處理。所以FPGA與DSP之間的數(shù)據(jù)傳輸技術(shù)變得不可或缺,。
圖像數(shù)據(jù)傳輸?shù)乃俣扰c穩(wěn)定性對整個系統(tǒng)的性能具有很大的影響,。本文介紹了一種基于EDMA的高速穩(wěn)定的數(shù)據(jù)傳輸方法,并在TI的DSP開發(fā)平臺CCS下,,對該方法的性能進(jìn)行了測試,。
1 方案設(shè)計
文中圖像傳輸硬件系統(tǒng)結(jié)構(gòu)如圖1所示。該系統(tǒng)中采用Ahera公司的Cyclone3系列FPGA:EP3C80F484C6,,Analog Device公司的視頻解碼芯片ADV7183,,差分輸入14位數(shù)據(jù)的LVDS接口和TI公司的TMS320C6416。該系統(tǒng)既可采集模擬視頻信號,,又可采集數(shù)字視頻信號,。模擬信號經(jīng)過模數(shù)轉(zhuǎn)換芯片ADV7183后變成數(shù)字信號,數(shù)字信號經(jīng)由LVDS差分接口進(jìn)入FPGA,。為調(diào)試方便,,模擬圖像與數(shù)字圖像統(tǒng)一使用320×256規(guī)格。DSP以EDMA方式接收,,經(jīng)過FPGA預(yù)處理后的圖像數(shù)據(jù),,在CCS平臺下進(jìn)行顯示以驗證傳輸?shù)恼_性。
2 接口電路設(shè)計
DSP以EDMA方式從FPGA中讀取數(shù)據(jù),,需要FPGA在內(nèi)部配置一塊大小適當(dāng)?shù)拇鎯臻g,。FPGA作為一個存儲器,通過DSP的外部存儲器接口(EMIF)與DSP相連,。硬件連接如圖2所示,。
圖2所示為FPGA與DSP的硬件上連接示意圖,。實際使用時,并沒有使用上述所有信號線,。FPGA使用到的管腳如下:CLK,,CE,A[19:0],,D[63:0]和INT,。CLK是DSP提供的同步讀寫時鐘,CE是DSP的片選信號,,A[19:0]為地址線,,D[63:0]地址線。INT為中斷信號,。
FPGA與DSP的傳輸機制:FPGA使用QuartusII開發(fā)平臺往雙口RAM中寫數(shù),,寫滿后用中斷管腳INT來通知DSP讀數(shù)。DSP收到FPGA的中斷信號后,,開始讀數(shù),。讀數(shù)期間片選信號CE有效,F(xiàn)PGA把DSP片選信號CE作為雙口RAM的讀使能,,在使能期間用DSP提供的時鐘CLK讀取數(shù)據(jù),。
系統(tǒng)中DSP提供給FPGA的時鐘CLK為100MHz。接收模擬圖像時,,圖像數(shù)據(jù)為8位,,只使用D[7:0]8根數(shù)據(jù)線;接收數(shù)字圖像時,,圖像數(shù)據(jù)為14位,,使用D[15:0]16根數(shù)據(jù)線,高兩位置0,。數(shù)字圖像與模擬圖像均為320×256,。
3 EDMA傳輸
TMS320C6000系列DSP中的,增強型直接存儲器訪問(EDMA)控制器執(zhí)行所有二級高速緩存/內(nèi)存控制器與外設(shè)之間的數(shù)據(jù)傳輸,。
EDMA控制器包括事件和中斷處理寄存器,、事件編碼器、參數(shù)RAM和地址產(chǎn)生硬件電路,。事件是觸發(fā)EDMA啟動的同步信號,,事件寄存器用于捕獲EDMA事件。事件編碼器解決多個事件發(fā)生時事件的優(yōu)先級問題,。對應(yīng)事件的傳輸參數(shù)存儲在EDMA參數(shù)RAM中,,并且傳遞給地址產(chǎn)生硬件單元,進(jìn)行尋址EMIF或外設(shè)執(zhí)行相應(yīng)的讀寫操作,。
3.1 傳輸流程
使用EDMA數(shù)據(jù)傳輸?shù)姆椒ㄓ袃煞N,,一種是CPU初始化的EDMA,;第二種是事件觸發(fā)的EDMA。所有的EDMA通道都有一個特定的同步事件與之對應(yīng),,如外圍設(shè)備事件,、外部硬件中斷或EDMA傳輸完成事件都可以同步觸發(fā)EDMA的傳輸。當(dāng)通道對應(yīng)的同步事件發(fā)生或由CPU同步該通道時,,通道就完成一次數(shù)據(jù)傳輸請求,。由事件觸發(fā)的EDMA傳輸實時性好,是一種常見的傳輸方式,。系統(tǒng)采用的就是事件觸發(fā)模式,觸發(fā)信號就是FP GA給DSP的中斷信號,。圖3為EDMA的傳輸流程,。
3.2 EDMA配置
同步事件發(fā)生時,EDMA傳輸?shù)臄?shù)據(jù)大小和源目的地址由參數(shù)RAM中的參數(shù)決定,。訪問EDMA的參數(shù)RAM時需要通過外圍總線,。EDMA傳輸參數(shù),如圖4所示,。
選項(OPT)部分主要用于傳輸數(shù)據(jù)的最小單元,、數(shù)據(jù)傳輸?shù)脑吹刂泛湍康牡刂返膶ぶ纺J健O到y(tǒng)中的最小傳輸單元為1 Byte,,源地址設(shè)置為一維源,,目的地址設(shè)置為二維源。數(shù)據(jù)傳輸模式為幀同步,。傳輸數(shù)據(jù)塊的行數(shù)設(shè)置255(實際傳輸行數(shù)為256),,列數(shù)設(shè)置為320。
源地址(SRC)設(shè)置了源數(shù)據(jù)所在的地址,,系統(tǒng)該參數(shù)配置為0xA0000000,,指向FPGA目的地址(DST)設(shè)置了數(shù)據(jù)要被傳輸?shù)降拇鎯臻g的地址。
實現(xiàn)傳輸過程為把一幅320×256 Byte的圖像從FPGA緩存到了SDRAM中,。傳輸14位的數(shù)字圖像時,,一個像素的圖像數(shù)據(jù)占用2 Byte,所以要把選項(OPT)中的最小傳輸單元改為2 Byte,。
3.3 程序?qū)崿F(xiàn)
相應(yīng)的EDMA通道初始化完成后,,使能并打開相應(yīng)的中斷。FPGA每產(chǎn)生一次EDMA同步事件,,即往INT管腳發(fā)一次中斷信號,,EDMA就能完成一次指定要求的傳輸,然后等待下一次同步事件,。
4 實驗結(jié)果
DSP提供給FPGA的時鐘為100 MHz,,傳輸一幅320×256的圖像需要約為0.8 ms,。傳輸速度較快,可以滿足圖像快速傳輸以及實時處理的要求,。TI的開發(fā)平臺CCS可以觀察存儲器中的數(shù)據(jù),,并把收到的存在存儲器中的數(shù)據(jù)顯示成圖像,從而可以驗證傳輸?shù)恼_性以及穩(wěn)定性,。數(shù)據(jù)源為模擬圖像時,,相機拍攝的原始圖像和DSP收到的圖像如圖5和圖6所示。
數(shù)據(jù)源為數(shù)字信號時,,原始圖像為14位數(shù)據(jù),,TI的仿真平臺只能顯示8位圖像,所以DSP中收到的圖像數(shù)據(jù)只能以高8位進(jìn)行顯示,,但會丟掉圖像的一些細(xì)節(jié),,圖像整體偏暗。由于系統(tǒng)采用的數(shù)字圖像由中波紅外熱像儀采集,,由于視場差別,,原始圖像無法采集。圖7為提取高8位圖像數(shù)據(jù)顯示的圖像,。
圖5~圖7中的圖像經(jīng)過多次傳輸驗證,,沒有出現(xiàn)錯誤的圖像。說明該系統(tǒng)實現(xiàn)的圖像數(shù)據(jù)傳輸滿足圖像實時處理的速度要求以及可靠性要求,。
5 結(jié)束語
介紹了一種FPGA向DSP的數(shù)據(jù)傳輸方法,,描述了EDMA的特點以及由其控制的數(shù)據(jù)傳輸?shù)膶崿F(xiàn)過程。所介紹的方法在開發(fā)的實驗平臺上,,進(jìn)行了驗證,。文中介紹了FPGA向DSP的傳輸,更改EDMA的源地址與目的地址及相關(guān)參數(shù)可以實現(xiàn)DSP向FPGA的數(shù)據(jù)傳輸,。