摘 要: 在實(shí)時(shí)圖像處理、雷達(dá)信號(hào)處理,、軟件無(wú)線(xiàn)電、電子對(duì)抗、3G數(shù)值仿真計(jì)算中,,單DSP無(wú)法滿(mǎn)足實(shí)時(shí)性和高速運(yùn)算量要求,往往需要多DSP進(jìn)行協(xié)同處理,。本文針對(duì)DSP的EMIF接口和FPGA的特點(diǎn),,設(shè)計(jì)8個(gè)DSP 通信的嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)。試驗(yàn)結(jié)果表明,,所設(shè)計(jì)的多" title="的多">的多DSP通信的嵌入式系統(tǒng),,工作性能穩(wěn)定,數(shù)據(jù)處理能力強(qiáng),,適用于高端的雷達(dá)信號(hào)處理,、電子對(duì)抗、超聲圖像處理等場(chǎng)合,。
關(guān)鍵詞: TMS320DM642,;TMS320C6416T;FPGA,;多DSP嵌入式系統(tǒng)
?
實(shí)時(shí)圖像處理及高速數(shù)據(jù)運(yùn)算處理要求系統(tǒng)設(shè)計(jì)具有數(shù)據(jù)處理速度快,、數(shù)據(jù)吞吐率高等特點(diǎn),并具有多任務(wù)處理功能,。針對(duì)這些特點(diǎn),,本文設(shè)計(jì)并實(shí)現(xiàn)了基于DSP EMIF接口及FPGA的8個(gè)DSP(7個(gè)TMS320C6416T、1 個(gè) TMS320DM642)通信的嵌入式系統(tǒng),。設(shè)計(jì)中利用TMS320DM642進(jìn)行數(shù)字視頻信號(hào)捕獲,、顯示、保存以及圖像信號(hào)的預(yù)處理,;利用TMS320C6416做算法運(yùn)算,;且每個(gè)DSP與FPGA都是無(wú)縫連接。設(shè)計(jì)中利用了FPGA實(shí)現(xiàn)的軟FIFO進(jìn)行DSP之間的高速數(shù)據(jù)傳輸" title="高速數(shù)據(jù)傳輸">高速數(shù)據(jù)傳輸,,以及多任務(wù)調(diào)度處理等,。
另外,系統(tǒng)還提供一個(gè)高速數(shù)據(jù)通信" title="數(shù)據(jù)通信">數(shù)據(jù)通信接口,,以使系統(tǒng)能夠方便地對(duì)外進(jìn)行高速數(shù)據(jù)傳輸,。
1 設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)" title="系統(tǒng)結(jié)構(gòu)">系統(tǒng)結(jié)構(gòu)
1.1 系統(tǒng)結(jié)構(gòu)
圖1所示為1個(gè)TMS320DM642(720MHz)與7個(gè)TMS320C6416T(1GHz)通過(guò)FPGA(EP2C70-7)實(shí)現(xiàn)互聯(lián)的多DSP系統(tǒng)結(jié)構(gòu),。所有的DSP通過(guò)EMIF(外部存儲(chǔ)器接口)和FPGA無(wú)縫相連,DSP之間的數(shù)據(jù)傳輸通過(guò)FPGA內(nèi)部互聯(lián)FIFO網(wǎng)絡(luò)和高速數(shù)據(jù)傳輸網(wǎng)絡(luò)實(shí)現(xiàn),。
?
圖2所示是一種互聯(lián)的FIFO網(wǎng)絡(luò)結(jié)構(gòu)和高速數(shù)據(jù)傳輸網(wǎng)絡(luò)結(jié)構(gòu),。DM642和所有的C6416T通過(guò)FIFO互相連接,所有FIFO都是雙向的,,F(xiàn)IFO及其讀寫(xiě)控制邏輯都在FPGA內(nèi)部實(shí)現(xiàn),。
?
每個(gè)DSP的一部分GPIO口也連接到EP2C70,可以作為FIFO讀寫(xiě)狀態(tài)控制,,以及各DSP之間通信前的同步握手信號(hào)等,。
1.2 系統(tǒng)結(jié)構(gòu)的特點(diǎn)
系統(tǒng)結(jié)構(gòu)具有可重構(gòu)特性。在硬件平臺(tái)不變的情況下,,只需通過(guò)改變FPGA程序代碼就可以完全改變系統(tǒng)結(jié)構(gòu),,以適應(yīng)不同的算法結(jié)構(gòu)。若圖2中屏蔽DSP1至DSP7之間的相互通信,,就組成主從并行的流水線(xiàn)結(jié)構(gòu),;若需要串行的流水線(xiàn)結(jié)構(gòu),只需DSP1至DSP7的其中一個(gè)與DSP0通信即可,。當(dāng)然,,若想設(shè)計(jì)更復(fù)雜的串并混合性結(jié)構(gòu),也只需改變FPGA的代碼就能夠很容易的實(shí)現(xiàn),。
????系統(tǒng)結(jié)構(gòu)具有一個(gè)對(duì)外高速通信接口,。數(shù)據(jù)寬度64bit(雙向),接口最大時(shí)鐘200MHz(針對(duì)EP2C70-7),,12根信號(hào)控制線(xiàn)(用戶(hù)按自己需要通過(guò)FPGA定義),,一個(gè)輸出3.3V/1.5A電源。高速通信接口不僅使系統(tǒng)很方便與別的系統(tǒng)進(jìn)行高速數(shù)據(jù)傳輸,,還可以使兩個(gè)本系統(tǒng)很簡(jiǎn)單地對(duì)接起來(lái),,構(gòu)成更強(qiáng)大的多DSP嵌入式系統(tǒng)結(jié)構(gòu)。
2 TMS320DM642與視頻A/D,、視頻D/A接口
2.1 TMS320DM642主器件簡(jiǎn)介[1][2]
TMS320DM642是TI公司2002年推出專(zhuān)門(mén)用于多媒體處理的高性能DSP,。內(nèi)部采用程序總線(xiàn)和數(shù)據(jù)總線(xiàn)分離的哈佛總線(xiàn)結(jié)構(gòu),使得取指令和執(zhí)行指令并行,;工作時(shí)鐘高達(dá)720MHz,,峰值處理能力為5760MIPS(百萬(wàn)條指令每秒);內(nèi)部采用兩級(jí)CACHE,;有三個(gè)獨(dú)立的可編程視頻接口,、一個(gè)64bit EMIF接口、16個(gè)GPIO等豐富的外部接口,;另外,,DM642還擁有64個(gè)獨(dú)立的EDMA通道,,使其具備很強(qiáng)的數(shù)據(jù)搬移能力。
2.2 接口實(shí)現(xiàn)[1-4]
TMS320DM642的三個(gè)獨(dú)立視頻接口都支持視頻捕獲/顯示模式,,可直接與視頻編解碼芯片無(wú)縫連接,。在捕獲模式下,器件捕獲速率可達(dá)80MHz,;在顯示模式下,,其顯示速率為110MHz。系統(tǒng)設(shè)計(jì)時(shí)將TMS320DM642的VP0接口配置為8bit/10bit或Y/C 16bit/20bit,、YUV4:2:2捕獲模式,,與視頻解碼芯片TVP5146連接;VP1接口配置為8bit,、YUV4:2:2顯示模式,,與視頻編碼芯片SAA7121連接。TMS320DM642與視頻編輯解碼芯片接口圖如圖3所示,。
?
VP0配置為單通道視頻輸入,VP0CKL0作為輸入時(shí)鐘(Datainclk),;VP0CTL0,、VP0CTL1和VP1CTL0分別作為輸入視頻HS、VS,、FID,。
VP1配置為單通道視頻輸出,VP1CKL1作為視頻輸出時(shí)鐘(Dataoutclk),,VP1CKL0作為輸入時(shí)鐘,,VP1CTL0、VP1CTL1和VP1CTL2分別作為輸出視頻HS,、VS,、FID。
另外,,DM642上集成I2C總線(xiàn),,其數(shù)據(jù)傳輸速率最高可達(dá)400kb/s,分別與編解碼芯片相連,。設(shè)計(jì)時(shí)采用100kb/s數(shù)據(jù)傳輸速率對(duì)TVP5146和SAA7121的工作參數(shù)進(jìn)行配置,。
3 基于DSP EMIFA與FPGA實(shí)現(xiàn)軟FIFO接口
3.1 DSP的EMIFA接口[1][2][5]
TMS320DM642和 TMS320C6416T都可以通過(guò)外部存儲(chǔ)器接口(EMIFA)訪(fǎng)問(wèn)片外存儲(chǔ)器。EMIFA由64bit數(shù)據(jù)線(xiàn)D[63:0],、20bit地址線(xiàn)A[22:03],、8bit字節(jié)使能線(xiàn)BE[7:0]、4bit地址區(qū)域片選線(xiàn)和各類(lèi)存儲(chǔ)器的讀/寫(xiě)控制信號(hào)組成,。
TMS320DM642和TMS320C6416T的每個(gè)空間都有256MB尋址空間,,并且可配置為與SRAM,、SDRAM、ZBTSRAM,、Flash,、FIFO等各類(lèi)存儲(chǔ)器接口。
EMIFA讀/寫(xiě)各類(lèi)存儲(chǔ)器的時(shí)鐘可由軟件配置為EMIF的AECLKIN,,或CPU/4,、CPU/6。本設(shè)計(jì)配置為EMIF的AECLKIN,,且為133MHz,。
3.2 FPGA主器件及其實(shí)現(xiàn)FIFO[6]
FPGA采用Atera的CycloneII? EP2C70-896C7。EP2C70具有68 416個(gè)邏輯單元(LE),;嵌入250個(gè)RAM存儲(chǔ)塊,,總?cè)萘?.152Mbit;150個(gè)專(zhuān)用18×18乘法器,;4個(gè)鎖相環(huán)(PLL),;最高工作頻率250MHz。
采用FPGA實(shí)現(xiàn)多時(shí)鐘電路系統(tǒng)時(shí),需要處理不同時(shí)鐘域之間的速率匹配,,可利用FPGA內(nèi)部生成的異步FIFO來(lái)處理,。異步FIFO主要有雙端口RAM、寫(xiě)地址產(chǎn)生模塊,、讀地址產(chǎn)生模塊,、滿(mǎn)空標(biāo)志產(chǎn)生模塊組成。雙端口RAM可以由FPGA的Block RAM塊構(gòu)成,,EP2C70-896C7的Block RAM讀寫(xiě)時(shí)鐘頻率可以達(dá)到216.73MHz,,因此選用Block RAM作為存儲(chǔ)體,不僅速度快,,而且設(shè)計(jì)簡(jiǎn)單,。設(shè)計(jì)時(shí),一個(gè)端口配置成寫(xiě)端口,,另一端口配置成讀端口,,然后把Block RAM的管腳與相對(duì)應(yīng)的控制信號(hào)相接即可。讀寫(xiě)地址通過(guò)FPGA芯片內(nèi)部的二進(jìn)制進(jìn)位邏輯產(chǎn)生,,以對(duì)應(yīng)Read_En/Write_En作為使能信號(hào)在讀/寫(xiě)時(shí)鐘的控制下進(jìn)行計(jì)數(shù),。空或滿(mǎn)標(biāo)志可以由讀或?qū)懙刂返南鄬?duì)位置來(lái)獲得,。
3.3 EMIF與軟FIFO接口實(shí)現(xiàn)[7]
DSP之間通過(guò)EMIF口與FPGA實(shí)現(xiàn)的異步FIFO進(jìn)行通信,。EMIF異步接口的每個(gè)讀/寫(xiě)周期分為三個(gè)階段:SETUP(建立時(shí)間)、STROBE(觸發(fā)時(shí)間),、HOLD(保持時(shí)間),。每個(gè)階段時(shí)間可編程設(shè)置,,以適應(yīng)不同的讀寫(xiě)速度。圖4是DSP寫(xiě)異步FIFO的時(shí)序圖[7],。圖5是DSP讀異步FIFO的時(shí)序圖[7],。DSP讀寫(xiě)FIFO控制信號(hào)由FPGA產(chǎn)生,其邏輯關(guān)系如下:
?
?
讀FIFO信號(hào):rdclk=AECLKOUT
???? rdreq=!(/CE+/AARE)
寫(xiě)FIFO信號(hào):wdclk= AECLKOUT
???? wdreq=!(/CE+/AAWE)
??? 另外,,寫(xiě)FIFO的DSP要相應(yīng)滿(mǎn)狀態(tài)標(biāo)志,,讀FIFO的DSP則相應(yīng)半滿(mǎn)狀態(tài)標(biāo)志。
4 系統(tǒng)的DSP間數(shù)據(jù)通信
不同的算法代碼在平臺(tái)上對(duì)應(yīng)不同的算法調(diào)度方法,,但DSP之間數(shù)據(jù)通信分兩個(gè)步驟,,一是數(shù)據(jù)通信協(xié)議,另一個(gè)是數(shù)據(jù)通信,。數(shù)據(jù)通信協(xié)議格式如表1(x表示0,、1、…7),。
?
Send/Receive:MDSPx通過(guò)FPGA請(qǐng)求DSPx接收(D0=1)或發(fā)送,。
MDSPx:向FPGA發(fā)出請(qǐng)求的DSP。
DSPx:MDSPx向FPGA提出要求響應(yīng)的DSP,。
Data_leng:MDSPx請(qǐng)求DSPx接收或發(fā)送的數(shù)據(jù)長(zhǎng)度,。
Data_Unit:1表示接收或發(fā)送為Data_leng K(1K= 1024bit),0表示接收或發(fā)送Data_leng,。
Data_Block:表示MDSPx請(qǐng)求DSPx接收或發(fā)送Data_Block個(gè)Data_leng K或Data_leng。
Data _Character:MDSPx請(qǐng)求DSPx接收或發(fā)送的算法代碼中間運(yùn)行結(jié)果或最終結(jié)果,。
Interr_Priority:中斷優(yōu)先權(quán),。
Odd_Check:奇偶校驗(yàn)位。
設(shè)SUM,,若為奇數(shù),,則Odd_Check=1,否則為0,。
Over_Lable:結(jié)束標(biāo)志位,,用戶(hù)可自己定義。
數(shù)據(jù)通信的實(shí)現(xiàn)過(guò)程:若FPGA接收到MDSPx發(fā)來(lái)的請(qǐng)求信號(hào),,先根據(jù)D[0:37]計(jì)算出校驗(yàn)數(shù)據(jù),,然后與Odd_Check比較。若不等,,F(xiàn)PGA向MDSPx發(fā)出重發(fā)請(qǐng)求信號(hào)的請(qǐng)求,;若相等,且DSPx空閑時(shí),,F(xiàn)PGA再由Send/Receive通知DSPx接收或發(fā)送數(shù)據(jù),,并將接收到的數(shù)據(jù)傳輸給DSPx,,同時(shí)使對(duì)應(yīng)的FIFO數(shù)據(jù)通道使能。DSPx根據(jù)收到的數(shù)據(jù)信息,,同樣計(jì)算出校驗(yàn)數(shù)據(jù),,若與Odd_Check相等,則根據(jù)Send/Receive標(biāo)志位,,采用EDMA方式向EMIF口接收或發(fā)送Data_Block*Data_leng(或Data_Block*Data_leng K)數(shù)據(jù),。
如果FPGA同時(shí)接收到兩個(gè)或兩個(gè)以上的MDSPx發(fā)來(lái)的請(qǐng)求信號(hào),還要由Interr_Priority判其執(zhí)行的先后,。
5 系統(tǒng)的性能分析
多DSP嵌入式處理系統(tǒng)中,,DSP間的數(shù)據(jù)通信性能是影響系統(tǒng)性能的重要因素,而數(shù)據(jù)通信帶寬和數(shù)據(jù)傳輸延遲是衡量數(shù)據(jù)通信性能的主要指標(biāo),。
若系統(tǒng)中DSP讀寫(xiě)FIFO的帶寬為B(單位時(shí)間內(nèi)DSP間的數(shù)據(jù)通信量),,則:
其中,f是DSP讀寫(xiě)FIFO的時(shí)鐘,,w是FIFO數(shù)據(jù)總線(xiàn)寬度,。本設(shè)計(jì)配置Nsetup=Nstrobe=1,Nhold=0,,w=32 bit,,f=133MHz,因此B理論值266MB/s,。
但DSP間數(shù)據(jù)通信的實(shí)際帶寬Bf主要受握手時(shí)間τhandshake,、寫(xiě)FIFO到半滿(mǎn)時(shí)間τfifo_hf、響應(yīng)GPIO口中斷啟動(dòng)讀操作時(shí)間τgpio_int err,、接收數(shù)據(jù)時(shí)間τdata_receive四個(gè)延遲時(shí)間影響,。其中τhandshake、τgpio_int err,、τdata_receive是傳輸數(shù)據(jù)必需的固定時(shí)間,,而τfifo_hf是由于使用FIFO緩存數(shù)據(jù)引入的額外時(shí)間。顯然,,F(xiàn)IFO的深度越長(zhǎng),,τfifo_hf越大,額外時(shí)間就越長(zhǎng),,則實(shí)際帶寬Bf就越小,,反之則越大。
??? 為了保證DSP間正確的數(shù)據(jù)通信,,要求DSPx開(kāi)始從FIFO讀取數(shù)據(jù)時(shí),,MDSPx還沒(méi)有寫(xiě)滿(mǎn)FIFO,即:
表2是DSP0分別與DSP1~DSP7傳輸不同大小數(shù)據(jù)時(shí)測(cè)得的平均延遲時(shí)間。圖6是根據(jù)測(cè)試數(shù)據(jù)繪出的實(shí)際帶寬Bf曲線(xiàn),??梢钥闯觯S著傳輸?shù)臄?shù)據(jù)增大,,Bf逐漸逼近B,。因此,利用FPGA實(shí)現(xiàn)多DSP間的互相數(shù)據(jù)通信,,既獲得了較大的持續(xù)帶寬,,又降低了數(shù)據(jù)傳輸延遲。
?
?
本文設(shè)計(jì)的多DSP嵌入式系統(tǒng)可重構(gòu)性靈活,,實(shí)現(xiàn)容易,,性能穩(wěn)定,數(shù)據(jù)吞吐量大,,處理數(shù)據(jù)能力強(qiáng),。該嵌入式系統(tǒng)已經(jīng)成功應(yīng)用到某公司的超聲圖像智能識(shí)別產(chǎn)品中。該產(chǎn)品利用系統(tǒng)中TMS320DM642對(duì)B超圖像進(jìn)行采集,、保存,、圖像預(yù)處理、顯示,;利用7個(gè)TMS320C6416T對(duì)超聲圖像做相關(guān)算法處理,。經(jīng)測(cè)試,算法代碼在單DSP(DM642 720MHz)平臺(tái)處理時(shí)間小于0.4s,,而在此平臺(tái)處理時(shí)間小于40ms,,滿(mǎn)足實(shí)時(shí)要求。
另外,,該系統(tǒng)還可以廣泛適用于圖像處理,、電子對(duì)抗、雷達(dá)信號(hào)處理等各個(gè)領(lǐng)域,。
參考文獻(xiàn)
[1] TI Inc.TMS320DM642 Video/Imaging Fixed-Point Digital?Signal Processor.2005.
[2] 李方慧,王飛,,何佩琨.TMS320C6000系列DSPs原理與應(yīng)用(第二版).北京:電子工業(yè)出版社,,2005.
[3] TI Inc.TVP5146 Data Manual.2004.
[4] Philips Inc.SAA7120H,SAA7121H Digital video encoder,,2002.
[5] TI Inc.TM320C6414T,,TM320C6415T,TM320C6416T,F(xiàn)ixed-Point Digital Signal Processor.2006.
[6] Altera Inc.Cyclone II Device Handbook.2005
[7] TI Inc.TMS320C6000 EMIF to External FIFO Interface.1999.