新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DSP EMIF口及FPGA設計并實現(xiàn)多DSP嵌入式系統(tǒng)

基于DSP EMIF口及FPGA設計并實現(xiàn)多DSP嵌入式系統(tǒng)

作者: 時間:2017-06-05 來源:網(wǎng)絡 收藏

實時圖像處理及高速數(shù)據(jù)運算處理要求系統(tǒng)設計具有數(shù)據(jù)處理速度快、數(shù)據(jù)吞吐率高等特點,并具有多任務處理功能。針對這些特點,本文設計并實現(xiàn)了基于DSP 接口及的8個DSP(7個TMS320C6416T、1 個 TMS320DM642)通信的嵌入式系統(tǒng)。設計中利用TMS320DM642進行數(shù)字視頻信號捕獲、顯示、保存以及圖像信號的預處理;利用TMS320C6416做算法運算;且每個DSP與都是無縫連接。設計中利用了實現(xiàn)的軟FIFO進行DSP之間的高速數(shù)據(jù)傳輸,以及多任務調度處理等。

另外,系統(tǒng)還提供一個高速數(shù)據(jù)通信接口,以使系統(tǒng)能夠方便地對外進行高速數(shù)據(jù)傳輸。

1 設計的系統(tǒng)結構

1.1 系統(tǒng)結構

圖1所示為1個TMS320DM642(720MHz)與7個TMS320C6416T(1GHz)通過FPGA(EP2C70-7)實現(xiàn)互聯(lián)的多DSP系統(tǒng)結構。所有的DSP通過(外部存儲器接口)和FPGA無縫相連,DSP之間的數(shù)據(jù)傳輸通過FPGA內部互聯(lián)FIFO網(wǎng)絡和高速數(shù)據(jù)傳輸網(wǎng)絡實現(xiàn)。

圖2所示是一種互聯(lián)的FIFO網(wǎng)絡結構和高速數(shù)據(jù)傳輸網(wǎng)絡結構。DM642和所有的C6416T通過FIFO互相連接,所有FIFO都是雙向的,F(xiàn)IFO及其讀寫控制邏輯都在FPGA內部實現(xiàn)。

每個DSP的一部分GPIO口也連接到EP2C70,可以作為FIFO讀寫狀態(tài)控制,以及各DSP之間通信前的同步握手信號等。

1.2 系統(tǒng)結構的特點

系統(tǒng)結構具有可重構特性。在硬件平臺不變的情況下,只需通過改變FPGA程序代碼就可以完全改變系統(tǒng)結構,以適應不同的算法結構。若圖2中屏蔽DSP1至DSP7之間的相互通信,就組成主從并行的流水線結構;若需要串行的流水線結構,只需DSP1至DSP7的其中一個與DSP0通信即可。當然,若想設計更復雜的串并混合性結構,也只需改變FPGA的代碼就能夠很容易的實現(xiàn)。

系統(tǒng)結構具有一個對外高速通信接口。數(shù)據(jù)寬度64bit(雙向),接口最大時鐘200MHz(針對EP2C70-7),12根信號控制線(用戶按自己需要通過FPGA定義),一個輸出3.3V/1.5A電源。高速通信接口不僅使系統(tǒng)很方便與別的系統(tǒng)進行高速數(shù)據(jù)傳輸,還可以使兩個本系統(tǒng)很簡單地對接起來,構成更強大的結構。

2 TMS320DM642與視頻A/D、視頻D/A接口

2.1 TMS320DM642主器件簡介[1][2]

TMS320DM642是TI公司2002年推出專門用于多媒體處理的高性能DSP。內部采用程序總線和數(shù)據(jù)總線分離的哈佛總線結構,使得取指令和執(zhí)行指令并行;工作時鐘高達720MHz,峰值處理能力為5760MIPS(百萬條指令每秒);內部采用兩級CACHE;有三個獨立的可編程視頻接口、一個64bit 接口、16個GPIO等豐富的外部接口;另外,DM642還擁有64個獨立的EDMA通道,使其具備很強的數(shù)據(jù)搬移能力。

2.2 接口實現(xiàn)[1-4]

TMS320DM642的三個獨立視頻接口都支持視頻捕獲/顯示模式,可直接與視頻編解碼芯片無縫連接。在捕獲模式下,器件捕獲速率可達80MHz;在顯示模式下,其顯示速率為110MHz。系統(tǒng)設計時將TMS320DM642的VP0接口配置為8bit/10bit或Y/C 16bit/20bit、YUV4:2:2捕獲模式,與視頻解碼芯片TVP5146連接;VP1接口配置為8bit、YUV4:2:2顯示模式,與視頻編碼芯片SAA7121連接。TMS320DM642與視頻編輯解碼芯片接口圖如圖3所示。

VP0配置為單通道視頻輸入,VP0CKL0作為輸入時鐘(Datainclk);VP0CTL0、VP0CTL1和VP1CTL0分別作為輸入視頻HS、VS、FID。

VP1配置為單通道視頻輸出,VP1CKL1作為視頻輸出時鐘(Dataoutclk),VP1CKL0作為輸入時鐘,VP1CTL0、VP1CTL1和VP1CTL2分別作為輸出視頻HS、VS、FID。

另外,DM642上集成I2C總線,其數(shù)據(jù)傳輸速率最高可達400kb/s,分別與編解碼芯片相連。設計時采用100kb/s數(shù)據(jù)傳輸速率對TVP5146和SAA7121的工作參數(shù)進行配置。

3 基于DSP EMIFA與FPGA實現(xiàn)軟FIFO接口

3.1 DSP的EMIFA接口[1][2][5]

TMS320DM642和 TMS320C6416T都可以通過外部存儲器接口(EMIFA)訪問片外存儲器。EMIFA由64bit數(shù)據(jù)線D[63:0]、20bit地址線A[22:03]、8bit字節(jié)使能線BE[7:0]、4bit地址區(qū)域片選線和各類存儲器的讀/寫控制信號組成。

本文引用地址:http://www.butianyuan.cn/article/201706/349162.htm


TMS320DM642和TMS320C6416T的每個/CEx空間都有256MB尋址空間,并且可配置為與SRAM、SDRAM、ZBTSRAM、Flash、FIFO等各類存儲器接口。

EMIFA讀/寫各類存儲器的時鐘可由軟件配置為EMIF的AECLKIN,或CPU/4、CPU/6。本設計配置為EMIF的AECLKIN,且為133MHz。

3.2 FPGA主器件及其實現(xiàn)FIFO[6]

FPGA采用Atera的CycloneII EP2C70-896C7。EP2C70具有68 416個邏輯單元(LE);嵌入250個RAM存儲塊,總容量1.152Mbit;150個專用18×18乘法器;4個鎖相環(huán)(PLL);最高工作頻率250MHz。

采用FPGA實現(xiàn)多時鐘電路系統(tǒng)時,需要處理不同時鐘域之間的速率匹配,可利用FPGA內部生成的異步FIFO來處理。異步FIFO主要有雙端口RAM、寫地址產(chǎn)生模塊、讀地址產(chǎn)生模塊、滿空標志產(chǎn)生模塊組成。雙端口RAM可以由FPGA的Block RAM塊構成,EP2C70-896C7的Block RAM讀寫時鐘頻率可以達到216.73MHz,因此選用Block RAM作為存儲體,不僅速度快,而且設計簡單。設計時,一個端口配置成寫端口,另一端口配置成讀端口,然后把Block RAM的管腳與相對應的控制信號相接即可。讀寫地址通過FPGA芯片內部的二進制進位邏輯產(chǎn)生,以對應Read_En/Write_En作為使能信號在讀/寫時鐘的控制下進行計數(shù)。空或滿標志可以由讀或寫地址的相對位置來獲得。

3.3 EMIF與軟FIFO接口實現(xiàn)[7]

DSP之間通過EMIF口與FPGA實現(xiàn)的異步FIFO進行通信。EMIF異步接口的每個讀/寫周期分為三個階段:SETUP(建立時間)、STROBE(觸發(fā)時間)、HOLD(保持時間)。每個階段時間可編程設置,以適應不同的讀寫速度。圖4是DSP寫異步FIFO的時序圖[7]。圖5是DSP讀異步FIFO的時序圖[7]。DSP讀寫FIFO控制信號由FPGA產(chǎn)生,其邏輯關系如下:

讀FIFO信號:rdclk=AECLKOUT
rdreq=!(/CE+/AARE)

寫FIFO信號:wdclk= AECLKOUT
wdreq=!(/CE+/AAWE)

另外,寫FIFO的DSP要相應滿狀態(tài)標志,讀FIFO的DSP則相應半滿狀態(tài)標志。

4 系統(tǒng)的DSP間數(shù)據(jù)通信

不同的算法代碼在平臺上對應不同的算法調度方法,但DSP之間數(shù)據(jù)通信分兩個步驟,一是數(shù)據(jù)通信協(xié)議,另一個是數(shù)據(jù)通信。數(shù)據(jù)通信協(xié)議格式如表1(x表示0、1、…7)。

Send/Receive:MDSPx通過FPGA請求DSPx接收(D0=1)或發(fā)送。
MDSPx:向FPGA發(fā)出請求的DSP。
DSPx:MDSPx向FPGA提出要求響應的DSP。
Data_leng:MDSPx請求DSPx接收或發(fā)送的數(shù)據(jù)長度。
Data_Unit:1表示接收或發(fā)送為Data_leng K(1K= 1024bit),0表示接收或發(fā)送Data_leng。
Data_Block:表示MDSPx請求DSPx接收或發(fā)送Data_Block個Data_leng K或Data_leng。
Data _Character:MDSPx請求DSPx接收或發(fā)送的算法代碼中間運行結果或最終結果。
Interr_Priority:中斷優(yōu)先權。
Odd_Check:奇偶校驗位。
設SUM,若為奇數(shù),則Odd_Check=1,否則為0。

  Over_Lable:結束標志位,用戶可自己定義。

數(shù)據(jù)通信的實現(xiàn)過程:若FPGA接收到MDSPx發(fā)來的請求信號,先根據(jù)D[0:37]計算出校驗數(shù)據(jù),然后與Odd_Check比較。若不等,F(xiàn)PGA向MDSPx發(fā)出重發(fā)請求信號的請求;若相等,且DSPx空閑時,F(xiàn)PGA再由Send/Receive通知DSPx接收或發(fā)送數(shù)據(jù),并將接收到的數(shù)據(jù)傳輸給DSPx,同時使對應的FIFO數(shù)據(jù)通道使能。DSPx根據(jù)收到的數(shù)據(jù)信息,同樣計算出校驗數(shù)據(jù),若與Odd_Check相等,則根據(jù)Send/Receive標志位,采用EDMA方式向EMIF口接收或發(fā)送Data_Block*Data_leng(或Data_Block*Data_leng K)數(shù)據(jù)。

如果FPGA同時接收到兩個或兩個以上的MDSPx發(fā)來的請求信號,還要由Interr_Priority判其執(zhí)行的先后。

5 系統(tǒng)的性能分析

多DSP嵌入式處理系統(tǒng)中,DSP間的數(shù)據(jù)通信性能是影響系統(tǒng)性能的重要因素,而數(shù)據(jù)通信帶寬和數(shù)據(jù)傳輸延遲是衡量數(shù)據(jù)通信性能的主要指標。

若系統(tǒng)中DSP讀寫FIFO的帶寬為B(單位時間內DSP間的數(shù)據(jù)通信量),則:
  
其中,f是DSP讀寫FIFO的時鐘,w是FIFO數(shù)據(jù)總線寬度。本設計配置Nsetup=Nstrobe=1,Nhold=0,w=32 bit,f=133MHz,因此B理論值266MB/s。

但DSP間數(shù)據(jù)通信的實際帶寬Bf主要受握手時間τhandshake、寫FIFO到半滿時間τfifo_hf、響應GPIO口中斷啟動讀操作時間τgpio_int err、接收數(shù)據(jù)時間τdata_receive四個延遲時間影響。其中τhandshake、τgpio_int err、τdata_receive是傳輸數(shù)據(jù)必需的固定時間,而τfifo_hf是由于使用FIFO緩存數(shù)據(jù)引入的額外時間。顯然,F(xiàn)IFO的深度越長,τfifo_hf越大,額外時間就越長,則實際帶寬Bf就越小,反之則越大。
為了保證DSP間正確的數(shù)據(jù)通信,要求DSPx開始從FIFO讀取數(shù)據(jù)時,MDSPx還沒有寫滿FIFO,即:

表2是DSP0分別與DSP1~DSP7傳輸不同大小數(shù)據(jù)時測得的平均延遲時間。圖6是根據(jù)測試數(shù)據(jù)繪出的實際帶寬Bf曲線??梢钥闯觯S著傳輸?shù)臄?shù)據(jù)增大,Bf逐漸逼近B。因此,利用FPGA實現(xiàn)多DSP間的互相數(shù)據(jù)通信,既獲得了較大的持續(xù)帶寬,又降低了數(shù)據(jù)傳輸延遲。

本文設計的可重構性靈活,實現(xiàn)容易,性能穩(wěn)定,數(shù)據(jù)吞吐量大,處理數(shù)據(jù)能力強。該嵌入式系統(tǒng)已經(jīng)成功應用到某公司的超聲圖像智能識別產(chǎn)品中。該產(chǎn)品利用系統(tǒng)中TMS320DM642對B超圖像進行采集、保存、圖像預處理、顯示;利用7個TMS320C6416T對超聲圖像做相關算法處理。經(jīng)測試,算法代碼在單DSP(DM642 720MHz)平臺處理時間小于0.4s,而在此平臺處理時間小于40ms,滿足實時要求。

另外,該系統(tǒng)還可以廣泛適用于圖像處理、電子對抗、雷達信號處理等各個領域。



評論


相關推薦

技術專區(qū)

關閉