|
|
| <!--插入廣告JS代碼--> |
關(guān)鍵詞: 實(shí)時(shí)圖像處理系統(tǒng) 多DSP LINK口 模塊化
1 引言
實(shí)時(shí)圖像處理技術(shù)在工業(yè)、醫(yī)學(xué)、軍事和商業(yè)等領(lǐng)域有著廣泛的應(yīng)用前景,然而,由于需要處理的數(shù)據(jù)量非常大,并且一些高層次的圖像分析系統(tǒng)常常包含有諸如分割、檢測(cè)、標(biāo)記和識(shí)別等比較復(fù)雜的算法,因此,對(duì)圖像進(jìn)行實(shí)時(shí)處理不可避免地要采用多DSP構(gòu)成的并行處理系統(tǒng)來完成[1-8]。
應(yīng)用于高層次的圖像分析(尤其是序列圖像)其并行處理方式有別于一般如FFT、卷積之類單純用于科學(xué)計(jì)算的并行處理,一方面系統(tǒng)執(zhí)行的圖像處理任務(wù)往往包含多個(gè)子過程,如濾波、直方圖均衡、分割、標(biāo)記、特征提取和識(shí)別等,并不僅僅是某一個(gè)單純的科學(xué)計(jì)算,而每一個(gè)圖像處理任務(wù)在執(zhí)行時(shí)已由算法研究人員確定了該任務(wù)包含哪些子過程;另一方面算法研究人員可根據(jù)算法的特點(diǎn)在執(zhí)行該算法前對(duì)算法作并行化分析,選擇合適并行化處理結(jié)構(gòu)。在一個(gè)實(shí)際圖像處理過程中往往會(huì)包括多個(gè)步驟才能獲得最終結(jié)果,不同的步驟會(huì)用到不同的算法, 不同的算法采用不同的并行機(jī)制才可以獲得各自最佳的性能,這就要求并行處理系統(tǒng)能適應(yīng)不同算法的并行處理結(jié)構(gòu),或者出現(xiàn)新算法時(shí),整個(gè)系統(tǒng)不需要重新設(shè)計(jì),因此有必要發(fā)展一種拓?fù)浣Y(jié)構(gòu)可重構(gòu)的、可擴(kuò)展的通用高速圖像信號(hào)處理系統(tǒng),一方面可以通過靈活的軟件編程來適應(yīng)處理問題的變化和算法的發(fā)展;另一方面可以通過簡(jiǎn)單的硬件擴(kuò)展來適應(yīng)處理規(guī)模的變化。文獻(xiàn)[2,3,6]都不是模塊化結(jié)構(gòu),不支持計(jì)算能力擴(kuò)展,并且還不支持拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)可重構(gòu)。文獻(xiàn) [5,6]的主DSP和從DSP雖然實(shí)現(xiàn)了共享總線通信,但從DSP多了以后,通信效率變低。文獻(xiàn)[7]也采用了模塊化結(jié)構(gòu)和多總線結(jié)構(gòu),但使用的DSP 是ADSP21060,工作頻率只有40MHz。而本系統(tǒng)采用模塊化設(shè)計(jì)和多總線結(jié)構(gòu),使用的DSP是TMS320C6400,工作頻率達(dá)到600MHz (預(yù)計(jì)達(dá)到1.2GHz),是TI公司的主推產(chǎn)品。本系統(tǒng)通過使用FPGA設(shè)計(jì)了一種LINKs作為專用圖像數(shù)據(jù)通道,其傳輸速度可達(dá)到3.2Gbps。使用DSP的McBSP作為命令傳輸總線,簡(jiǎn)單可靠,且傳輸速度可達(dá)到100Mbps。并且每一個(gè)DSP通過本地總線掛有SDRAM和FLASH以及雙口 RAM,本地總線傳輸速度也可以達(dá)到3.2Gbps。這個(gè)系統(tǒng)的數(shù)據(jù)通信能力完全可以和DSP的高速計(jì)算能力相匹配。各通道和總線具有很強(qiáng)的可擴(kuò)展性能力,可以很方便的增加擴(kuò)展板以達(dá)到所需求的計(jì)算能力,并且還具有拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)可重構(gòu)能力,通過軟件編程就可使各個(gè)DSP之間既可以實(shí)現(xiàn)SPMD、又可以實(shí)現(xiàn)MPMD和MPID。
2 硬件系統(tǒng)設(shè)計(jì)
TMS320C6414是TI公司最新的DSP,也是目前速度最快的定點(diǎn)DSP,其最大峰值速度為4800MIPS。一個(gè)高性能的可擴(kuò)展的多DSP系統(tǒng)除了各個(gè)DSP具有高速的運(yùn)算能力,還應(yīng)該具有優(yōu)良的數(shù)據(jù)交換能力,也就是說數(shù)據(jù)流應(yīng)該和計(jì)算能力相匹配。一般來說全局的和本地的通信能力除以系統(tǒng)的計(jì)算能力大于或得等于1。基于共享總線的計(jì)算機(jī)系統(tǒng)也具有可擴(kuò)展性,如PCI總線。在PCI總線中,所有的總線通信都劃分為4到16個(gè)字的分組傳輸。在每一組之間會(huì)插入一些時(shí)鐘間隙,這些時(shí)鐘間隙允許其他的總線申請(qǐng)者使用總線,這樣就引起了通道競(jìng)爭(zhēng)問題。如果擴(kuò)展的CPU多了以后會(huì)給PCI總線或VME總線帶來很大壓力。因此如果只使用一個(gè)總線通道,這種通信瓶頸問題不會(huì)得到改變,勢(shì)必會(huì)使該系統(tǒng)的通信能力和計(jì)算能力不匹配。在PICMG組織推出的面向電信市場(chǎng)的PICMG 3.X規(guī)范中已不采用單一共享總線結(jié)構(gòu),而是采用了“SWITCH FABRICS”結(jié)構(gòu)。在DSP領(lǐng)域中,ADSP21060有6路LINK口,具有出色的并行通信能力,因此我們仿造ADSP21060的結(jié)構(gòu)使用 FPGA芯片構(gòu)造了LINKs,使所有DSP之間都可以通過LINK口連接,這樣既增加了數(shù)據(jù)傳輸能力,也可以通過這種點(diǎn)到點(diǎn)的連接方式組成多片DSP各種拓?fù)浣Y(jié)構(gòu)。
2.1 模塊化結(jié)構(gòu)
該系統(tǒng)有三種基本模塊組成:主控模塊,擴(kuò)展模塊和顯示?臁V骺啬K是用來接收?qǐng)D像,進(jìn)行非均勻性校正預(yù)處理,負(fù)責(zé)系統(tǒng)監(jiān)控、接收上位機(jī)的命令,和進(jìn)行圖像處理計(jì)算。顯示模塊的任務(wù)是在調(diào)試時(shí)顯示處理后的圖像。如果主控模塊的計(jì)算能力不夠,可以再添加擴(kuò)展模塊。擴(kuò)展模塊的任務(wù)比較單純,主要用來計(jì)算。
系統(tǒng)總體框圖如圖1所示。在圖1中,每個(gè)模塊之間的連接有兩種通道構(gòu)成:數(shù)字圖像通道和控制總線。數(shù)字圖像通道上傳輸?shù)氖菙?shù)據(jù)量很大的數(shù)字圖像,由 LINK口構(gòu)成。控制總線上傳輸?shù)氖菙?shù)據(jù)量很小的各DSP之間的握手信號(hào)和命令消息,由DSP的串口構(gòu)成。擴(kuò)展模塊的兩個(gè)DSP之間的通信通過FIFO實(shí)現(xiàn)。圖像數(shù)據(jù)首先輸入主控板,通過由FPGA構(gòu)成的預(yù)處理模塊進(jìn)行非均勻性校正預(yù)處理,再送到主控DSP進(jìn)行計(jì)算,如果主控DSP能完成計(jì)算,那么該系統(tǒng)就只使用主控DSP,如果主控DSP不能在規(guī)定的時(shí)間內(nèi)算完一幅圖像,那么再添加擴(kuò)展板。用多個(gè)DSP組成SPMD或MPMD或流水線結(jié)構(gòu)進(jìn)行并行計(jì)算。最后由主控DSP把結(jié)果傳給上位機(jī),同時(shí)還通過圖像數(shù)據(jù)通道把處理完的圖像傳給顯示板進(jìn)行顯示。

圖1 硬件系統(tǒng)總體框圖
2.2 變化拓?fù)浣Y(jié)構(gòu)的能力
并行算法主要有兩種軟件并行性:控制并行性和數(shù)據(jù)并行性?刂撇⑿行允侵付鄠(gè)處理機(jī)同時(shí)完成多個(gè)不同的操作,最典型的例子是流水線;而數(shù)據(jù)并行性是指多個(gè)處理機(jī)同時(shí)對(duì)不同數(shù)據(jù)集實(shí)現(xiàn)幾乎相同的操作。不同的并行算法要求硬件用不同的拓?fù)浣Y(jié)構(gòu)來支持,而本系統(tǒng)采用的多DSP并行計(jì)算結(jié)構(gòu)則可以動(dòng)態(tài)地改變其邏輯拓?fù)浣Y(jié)構(gòu)以適應(yīng)算法的要求。這時(shí)如果算法采用數(shù)據(jù)并行性,主控DSP負(fù)責(zé)分配運(yùn)算任務(wù),將圖像數(shù)據(jù)通過LINK口送給其他的DSP,并合理調(diào)度各個(gè)DSP 協(xié)同完成算法。擴(kuò)展板的運(yùn)算DSP之間可以采取SPMD(Single Program Stream&Multiple Data Stream)的方式,也可以采取MPMD(Multiple Program Sream&Multiple Data Stream)的方式進(jìn)行并行計(jì)算,這取決于具體應(yīng)用和具體算法。SPMD有一點(diǎn)類似于SIMD(Single Instruction Stream$Multiple Data Stream),它們都是對(duì)不同的數(shù)據(jù)集執(zhí)行同一運(yùn)算,但SPMD的各個(gè)處理器由各自的程序計(jì)數(shù)器控制其程序流程,相互之間不需要嚴(yán)格同步;MPMD則可以對(duì)不同的數(shù)據(jù)集進(jìn)行不同的處理。這種拓?fù)浣Y(jié)構(gòu)具有較強(qiáng)的通用性,很多應(yīng)用問題都具有此類的并行算法。如果算法采用控制并行性,即流水線結(jié)構(gòu),每一級(jí)處理器接收前一級(jí)處理器的計(jì)算結(jié)果,完成算法特定的一部分,并將處理結(jié)果送給下一級(jí)處理器。級(jí)間的數(shù)據(jù)傳輸可以采用LINK口或FIFIO實(shí)現(xiàn)。
2.3 擴(kuò)展性
該系統(tǒng)有很強(qiáng)的可擴(kuò)展性,具體表現(xiàn)在:
(1) 系統(tǒng)可裁減。由于該系統(tǒng)采用模塊化結(jié)構(gòu),每個(gè)模塊都是獨(dú)立的,有很好的可裁減性。
(2) Link口可擴(kuò)展。由于Link使用FPGA實(shí)現(xiàn),從原理上說可以提供任意多個(gè)Link口,實(shí)際上Link口數(shù)目受到FPGA資源的限制。在該系統(tǒng)中,我們使用ALTERA的FPGA實(shí)現(xiàn)了6路LINK口。各路Link口可以獨(dú)立、同時(shí)工作。并且這些LINK口的傳輸采用LVDS信號(hào)。由于每對(duì)數(shù)據(jù)線上的傳輸速率可達(dá)到800Mbit/S,而每路Link口有5對(duì)線組成:4對(duì)數(shù)據(jù)線和一對(duì)時(shí)鐘線CLK,這樣每路LINK口的速度可以達(dá)到 3.2Gbit/s。任一對(duì)模塊之間都可以用LINK口連接。
(3) 控制總線可擴(kuò)展?刂瓶偩由DSP的同步串行口構(gòu)成, 6414的串口是多通道緩沖串口,能進(jìn)行全雙工通信,可以和多達(dá)128個(gè)通道進(jìn)行收發(fā)。用這種通信方式可以組成各種各樣的通信模式。每個(gè)DSP既可以和任意一個(gè)DSP通信,也可以和任意多個(gè)DSP通信。還可以通過該總線增加模塊實(shí)現(xiàn)多個(gè)并行計(jì)算結(jié)構(gòu)并行工作。
3 系統(tǒng)監(jiān)控軟件的設(shè)計(jì)
在軟件設(shè)計(jì)上,為了便于開發(fā)與維護(hù),把軟件劃分為系統(tǒng)監(jiān)控軟件和圖像處理算法兩大部分。監(jiān)控系統(tǒng)的作用就是與硬件平臺(tái)一起,為圖像處理算法提供一個(gè)可靠、高效、方便的工作平臺(tái)。文獻(xiàn)[1-6]都沒有涉及到監(jiān)控系統(tǒng)的設(shè)計(jì),文獻(xiàn)[8]借助一個(gè)自己定義的運(yùn)行在微機(jī)上的協(xié)議軟件提供給算法研究人員來實(shí)現(xiàn)任務(wù)的分解,解決了任務(wù)分配、進(jìn)程間的通信與同步等問題,能夠適應(yīng)不同并行結(jié)構(gòu)的要求并支持系統(tǒng)計(jì)算能力的擴(kuò)展。但它沒有對(duì)應(yīng)用層提供API函數(shù),使用及維護(hù)比較麻煩,同時(shí),也沒有提供超時(shí)管理機(jī)制。目前國(guó)內(nèi)外還有很多公司開發(fā)了許多時(shí)實(shí)時(shí)操作系統(tǒng),如國(guó)外的VSPWorks、ecos、psos、國(guó)內(nèi)的“道系統(tǒng)”,但大多只支持微處理器或ARM,不支持DSP。 VSPWorks雖然是基于DSP的實(shí)時(shí)操作系統(tǒng),但是它的源碼不公開,不能實(shí)現(xiàn)任意級(jí)別的裁減,而在一些國(guó)防應(yīng)用中,必須使用源碼公開的軟件,因此自己實(shí)現(xiàn)實(shí)時(shí)監(jiān)控系統(tǒng)具有很大的意義。本文所實(shí)現(xiàn)的監(jiān)控系統(tǒng)是具有自己的內(nèi)核的多任務(wù)監(jiān)控系統(tǒng)。它進(jìn)一步分為主控DSP上的系統(tǒng)監(jiān)控程序和協(xié)處理DSP上的系統(tǒng)監(jiān)控程序。主控DSP監(jiān)控需要完成系統(tǒng)初始化、算法任務(wù)調(diào)度、資源分配和管理、系統(tǒng)的全局狀態(tài)監(jiān)控、系統(tǒng)異常處理、與上位機(jī)數(shù)據(jù)交換以及圖像數(shù)據(jù)傳輸?shù)裙ぷ鳌f(xié)處理DSP監(jiān)控程序完成算法任務(wù)調(diào)度、資源管理、算法加載、系統(tǒng)局部狀態(tài)監(jiān)控、命令響應(yīng)和數(shù)據(jù)通信。
為了保證監(jiān)控系統(tǒng)軟件的可裁減性、可移植性、實(shí)時(shí)性和模塊化(以便于調(diào)試),也為了保證算法與系統(tǒng)硬件的相對(duì)獨(dú)立性,我們采用實(shí)時(shí)系統(tǒng)的層次體系思想來設(shè)計(jì)監(jiān)控系統(tǒng),如圖2,這樣保證了系統(tǒng)軟件盡可能不受硬件系統(tǒng)改變和算法改變的影響。

圖2 系統(tǒng)的層次結(jié)構(gòu)圖
4 結(jié)束語
本文使用目前最新最快的DSP芯片TMS320C6414構(gòu)成通用高速實(shí)時(shí)圖像信號(hào)處理系統(tǒng)。使用FPGA芯片為該DSP設(shè)計(jì)了一種LINK口。從而為模塊化的可擴(kuò)展的多DSP系統(tǒng)的實(shí)現(xiàn)打下了堅(jiān)實(shí)的基礎(chǔ)。使得該系統(tǒng)的數(shù)據(jù)通信能力和DSP的運(yùn)算能力很好的匹配。并輔以多通道串口作為傳遞命令控制消息,使該系統(tǒng)具有靈活多樣的通信方式,能靈活地改變拓?fù)浣Y(jié)構(gòu),運(yùn)算能力強(qiáng),I/O帶寬大,可擴(kuò)展,通用性強(qiáng)等特點(diǎn)。并以此硬件結(jié)構(gòu)為基礎(chǔ)設(shè)計(jì)相應(yīng)的系統(tǒng)監(jiān)控軟件,為圖像處理算法提供一個(gè)可靠、高效、方便的工作平臺(tái),簡(jiǎn)化了系統(tǒng)研制階段的工作。實(shí)驗(yàn)表明,這種并行計(jì)算結(jié)構(gòu)的構(gòu)造簡(jiǎn)單,效率高,并且工作穩(wěn)定可靠。
今后,筆者還將作如下改進(jìn),研究系統(tǒng)的容錯(cuò)性,以保證在某個(gè)節(jié)點(diǎn)機(jī)或某個(gè)信道失效時(shí),系統(tǒng)不至于癱瘓,應(yīng)該立刻可以將其工作任務(wù)分配到其他的節(jié)點(diǎn)機(jī)上或其它的信道上。
參考文獻(xiàn)
[1] Huang Kai, Xu Zhiwei, Scalable Parallel Computers for Real-Time Signal Processing. IEEE Signal Processing Magazine. 1996:50-66
[2] 沈勝宏,韓月秋. 基于多DSP和FPGA的高速并行互相關(guān)圖像跟蹤技術(shù). 北京理工大學(xué)學(xué)報(bào),2000,(2):98-101
[3] 趙保軍,史彩成,韓月秋,毛二可. 利用FPGA和DSP結(jié)合實(shí)現(xiàn)雷達(dá)多目標(biāo)實(shí)時(shí)檢測(cè)電子學(xué)報(bào),2001,(8):1145-1147
[4] Mark H Linderman,Richard W Linderman. Real-Time STAP Demonstration on an Embedded High Performance Computer. IEEE Aerospace and Electronic Systems Magazine. 1998,13(3)
[5] 陳虎成,安 琪,陳家琴,王硯方. 高速多DSP數(shù)字語音處理卡的研制. 數(shù)據(jù)采集與處理,2000,(12):508-510
[6] 嚴(yán)勝剛,沈翠羽,李林山,李志舜,高速信號(hào)處理系統(tǒng)的體系結(jié)構(gòu)研究,西北工業(yè)大學(xué)學(xué)報(bào),1996,11:554-557
[7] 王岳環(huán),汪國(guó)有,張?zhí)煨? 一種模塊化多DSP實(shí)時(shí)圖像處理系統(tǒng). 2000,(3):63-64
[8] 曹治國(guó),王岳環(huán),左崢嶸等. 多總線多DSP實(shí)時(shí)圖象處理操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn). 計(jì)算機(jī)學(xué)報(bào),2002,25(7):708-715