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