摘? 要: 介紹了基于雙DSP的實(shí)時(shí)圖像處理系統(tǒng)" title="實(shí)時(shí)圖像處理系統(tǒng)">實(shí)時(shí)圖像處理系統(tǒng)。該系統(tǒng)通過兩片TMS320C6201作為系統(tǒng)計(jì)算中心,通過可重構(gòu)的FPGA計(jì)算系統(tǒng)" title="計(jì)算系統(tǒng)">計(jì)算系統(tǒng)獲得系統(tǒng)體系機(jī)構(gòu)上最大的靈活性。
關(guān)鍵詞: 實(shí)時(shí)圖像處理系統(tǒng)? 雙DSP? FPGA計(jì)算系統(tǒng)
?
實(shí)時(shí)圖像處理技術(shù)在目標(biāo)跟蹤、機(jī)器人導(dǎo)航、輔助駕駛、智能交通監(jiān)控中都得到越來越多的應(yīng)用。由于圖像處理的數(shù)據(jù)量大,數(shù)據(jù)處理相關(guān)性高,實(shí)時(shí)的應(yīng)用環(huán)境決定嚴(yán)格的幀、場時(shí)間限制,因此實(shí)時(shí)圖像處理系統(tǒng)必須具有強(qiáng)大的運(yùn)算能力。各種高性能DSP不僅可以滿足在運(yùn)算性能方面的需要,而且由于DSP的可編程性" title="可編程性">可編程性,還可以在硬件一級(jí)獲得系統(tǒng)設(shè)計(jì)" title="系統(tǒng)設(shè)計(jì)">系統(tǒng)設(shè)計(jì)的極大靈活性。為了獲得足夠的計(jì)算能力,我們以兩片TMS320C6201作為系統(tǒng)的運(yùn)算中心構(gòu)筑了實(shí)時(shí)圖像處理系統(tǒng);為了獲取最大的靈活性,在系統(tǒng)體系機(jī)構(gòu)上采用了一種可重構(gòu)的FPGA計(jì)算系統(tǒng)模型" title="系統(tǒng)模型">系統(tǒng)模型。
1 功能強(qiáng)大的TMS320C6x
TMS320C6x系列DSP是TI公司TMS320家族中最新推出的產(chǎn)品之一。由于應(yīng)用一種高性能的先進(jìn)VLIW(Very Long Instruction Word)的VelociTITM體系結(jié)構(gòu),因此可以更好地應(yīng)用在一些多通道多功能的系統(tǒng)中。
VelociTITM是一種提高處理器指令級(jí)并行程度的先進(jìn)的VLIW技術(shù)。并行機(jī)制是使DSP的處理性能超過其它超標(biāo)量結(jié)構(gòu)的處理芯片的有力工具,正是由于在指令并行、流水結(jié)構(gòu)、部件并行等方面的并行操作,使得TMS320C6x能夠達(dá)到1600MIPS的運(yùn)行速度。
TMS320C6x系列的DSP芯片結(jié)構(gòu)不同于一般的DSP,屬于類RISC結(jié)構(gòu),從而使它的C編譯器具有很高的效率,因此稱之為面向C語言結(jié)構(gòu)的DSP芯片。這使得其在絕大多數(shù)應(yīng)用中,可以采用C語言編寫TMS320C6x程序,從而充分利用大量用C描述的算法程序,并獲得遠(yuǎn)勝于傳統(tǒng)DSP程序的可維護(hù)性、可移植性、可繼承性,縮短開發(fā)周期。
2 FPGA計(jì)算系統(tǒng)模型
FPGA是二十世紀(jì)80年代后期出現(xiàn)的新型的大規(guī)??删幊唐骷?,由邏輯單元和互連線網(wǎng)絡(luò)兩部分組成,兩者均可編程。邏輯單元能完成一些基本操作。邏輯單元經(jīng)互連線網(wǎng)絡(luò)互連,通過對(duì)基本邏輯塊和互連線網(wǎng)絡(luò)編程,可以實(shí)現(xiàn)非常復(fù)雜的邏輯功能。由于FPGA是基于SRAM結(jié)構(gòu)的器件,所有的可編程邏輯加載在芯片內(nèi)部的SRAM上,因此可以通過一定的步驟在系統(tǒng)運(yùn)行時(shí)進(jìn)行編程來改變?cè)撈骷墓δ?,從而?shí)現(xiàn)更大的靈活性。
在通常的并行系統(tǒng)設(shè)計(jì)中,微處理器在空間維上是固定的,而在時(shí)間維上是可變的;而連接的專用芯片在空間維和時(shí)間維上都是固定的。這樣的系統(tǒng)往往只能適用于特定應(yīng)用場合下的特定算法。為了使系統(tǒng)具有更加優(yōu)良的性能和靈活性,隨著可編程器件FPGA的應(yīng)用深入,一種新的通用處理模塊結(jié)構(gòu)呈現(xiàn)在我們面前——FPGA計(jì)算系統(tǒng)結(jié)構(gòu)。圖1給出了抽象的FPGA計(jì)算系統(tǒng)模型,該模型由微處理器、FPGA以及存儲(chǔ)器等三部分構(gòu)成系統(tǒng)的核心。FPGA計(jì)算系統(tǒng)就是充分利用FPGA的高集成度和硬件可編程性在系統(tǒng)中用FPGA實(shí)現(xiàn)除了必要模塊(如微處理器和存儲(chǔ)器等)之外的其它邏輯和硬件互連,從而使系統(tǒng)具有空間上的可編程性。系統(tǒng)的空間可編程性是FPGA計(jì)算系統(tǒng)引入的新特征。它是指通過對(duì)FPGA的重新編程和配置來改變系統(tǒng)體系結(jié)構(gòu)等一系列硬件邏輯結(jié)構(gòu)。系統(tǒng)的空間可編程性是系統(tǒng)可重構(gòu)的前提,它使得硬件系統(tǒng)的設(shè)計(jì)趨于軟件編程化。然而需要指出的是,由于FPGA內(nèi)部結(jié)構(gòu)的完全分布性和內(nèi)部單元的百分之百的互連連通性,系統(tǒng)的硬件互連編程不象由中央處理單元引起的軟件編程那樣可以充分總結(jié)指令集。但在具體的系統(tǒng)設(shè)計(jì)中,可以根據(jù)實(shí)際的數(shù)據(jù)流結(jié)構(gòu)進(jìn)行部分限制,這樣可以為用戶提供一些可選擇的重構(gòu)方案,方便用戶使用。
?
?
3 基于FPGA計(jì)算系統(tǒng)模型的雙DSP實(shí)時(shí)圖像處理系統(tǒng)
為了盡可能地獲得高性能,我們提出以兩個(gè)TMS320C62x為中央處理核心構(gòu)成雙DSP處理系統(tǒng),由FPGA(這里采用ALTERA的FLEX系列)實(shí)現(xiàn)系統(tǒng)互連。系統(tǒng)分為處理器模塊、FPGA組模塊和各總線接口模塊等,如圖2所示。其中處理器模塊包含TMS320C62x、內(nèi)存空間以及相應(yīng)邏輯。處理器作為最小處理單元模塊而存在,可以完成相應(yīng)的處理子任務(wù)。在我們的系統(tǒng)中設(shè)置了兩個(gè)這樣的處理模塊。這兩個(gè)處理模塊都是在系統(tǒng)核心FPGA控制下運(yùn)行的。而FPGA作為系統(tǒng)中心,負(fù)責(zé)兩個(gè)微處理器互相通信、互相協(xié)調(diào)以及它們與外界(這里通過主從總線和互連總線)的信息交換。同時(shí),系統(tǒng)處理子任務(wù)可以由FPGA直接派發(fā)給處理器。靈活的FPGA體系結(jié)構(gòu)設(shè)計(jì)是該系統(tǒng)有效性的保證。在實(shí)際應(yīng)用中,可以根據(jù)系統(tǒng)的任務(wù),通過配置FPGA控制兩個(gè)微處理器按流水線方式運(yùn)行,也可以控制它們按MIMD方式并行處理同一輸入圖像。為了提高數(shù)據(jù)交換的效率,在FPGA控制下的數(shù)據(jù)交換中心設(shè)置了靈活的系統(tǒng)存儲(chǔ)空間。而這塊存儲(chǔ)空間與DSP的局部存儲(chǔ)空間構(gòu)成了一種分布共享式的結(jié)構(gòu)。然而不同于一般的分布共享式存儲(chǔ)結(jié)構(gòu)的是,我們的系統(tǒng)存儲(chǔ)空間相對(duì)獨(dú)立,不是直接掛接在各DSP的地址空間中,而是通過兩者的HPI口進(jìn)行互連。從嚴(yán)格意義上講,這種結(jié)構(gòu)不能算分布共享式存儲(chǔ)結(jié)構(gòu),而應(yīng)稱之為一種松散的分布共享式存儲(chǔ)結(jié)構(gòu)。由于并行效率的要求,我們將系統(tǒng)存儲(chǔ)空間設(shè)置為兩個(gè)Bank結(jié)構(gòu),兩個(gè)Bank是獨(dú)立控制和運(yùn)行的,系統(tǒng)的實(shí)現(xiàn)框圖見圖3。
?
?
?
由于系統(tǒng)的互連、各個(gè)接口以及數(shù)據(jù)通道都是通過FPGA完成,并在FPGA內(nèi)部實(shí)現(xiàn)除一些必要邏輯之外的其它所有邏輯,因此系統(tǒng)的重構(gòu)非常方便。這是系統(tǒng)設(shè)計(jì)中的最大特點(diǎn)。另外系統(tǒng)還有其它幾個(gè)優(yōu)點(diǎn):(1)系統(tǒng)可測性。由于所有的接口邏輯(包括微處理器以及板上其它接口)都由FPGA實(shí)現(xiàn),并且由于系統(tǒng)實(shí)現(xiàn)主從接口邏輯,完全可以通過軟件獲取系統(tǒng)內(nèi)部運(yùn)行的所有狀態(tài)。在系統(tǒng)調(diào)試階段,可以增加一些測試點(diǎn)和測試狀態(tài)字節(jié),相當(dāng)于將該信息處理子系統(tǒng)在一個(gè)優(yōu)良的數(shù)字測試環(huán)境下運(yùn)行,使得系統(tǒng)的可測性大大提高;(2)系統(tǒng)可裁減性。由于FPGA的實(shí)現(xiàn)完全類似于軟件的編程工作,我們可以使系統(tǒng)設(shè)計(jì)變?yōu)檐浖K的設(shè)計(jì),模塊化設(shè)計(jì)方法可以使系統(tǒng)具有功能的可裁減性。根據(jù)不同應(yīng)用環(huán)境進(jìn)行不同目標(biāo)的設(shè)計(jì)將擁有不同的模塊功能;(3)系統(tǒng)設(shè)計(jì)的方便性。由于FPGA系統(tǒng)的引入,我們可以改變以往的硬件設(shè)計(jì)方法和步驟,初步的硬件連線只需關(guān)注系統(tǒng)外部特征、微處理器系統(tǒng)的可能控制線等,無需詳細(xì)關(guān)注更多的細(xì)節(jié),而在系統(tǒng)調(diào)試時(shí)才注意邏輯接口的具體功能,并且都在FPGA上完成,這使得系統(tǒng)設(shè)計(jì)的周期變短。本系統(tǒng)已成功地應(yīng)用在智能移動(dòng)機(jī)器人的實(shí)時(shí)視覺導(dǎo)航系統(tǒng)中,取得了滿意的效果。
?
參考文獻(xiàn)
1 TMS320C62 Technical Brief. Texas Intruments.
2 TMS320C6000 Optimizing C Compiler User’s Guide. Texas Instruments.
3 TMS320C6000 Assembly Language Tools User’s Guide. Texas Instruments.
4 TMS320C62x/C67x Programmer’s Guide.Texas Instruments.
5 TMS320C6x Evaluation Module Reference Guide.Texas?Instruments.
6 TMS320C62x/C67x CPU and Instruction Set Reference?Guide.Texas Instruments.
7 TMS320C6000 Peripheral Reference Guide. Texas Instruments.
8 TMS320C6000 Peripheral Support Library Programmer’s?Reference. Texas Instruments.
9 Sundararajan Sriram, Ching-Yu Hung. MPEG-2 Video?Decoding on the TMS320C6x DSP Architecture.Signals,
Systems & Computers, 1998