陳虹舟,朱思奇,霍家道
(1.中國船舶重工集團(tuán)公司江蘇自動(dòng)化研究所,江蘇 連云港 222006;2.上海交通大學(xué),上海 200030)
聲納是利用聲波對水下目標(biāo)進(jìn)行探測、定位、跟蹤、識別的水聲設(shè)備,是軍事上和國民經(jīng)濟(jì)中一種重要的信息獲取手段。數(shù)字信號處理器(Digital Signal Processor,DSP)是一種特別適合于進(jìn)行數(shù)字信號處理的微處理器,廣泛應(yīng)用于各類聲納信號處理設(shè)備中。近年來,隨著技術(shù)的發(fā)展和應(yīng)用需求的提高,聲納信號處理系統(tǒng)的數(shù)據(jù)吞吐量和運(yùn)算量顯著增加,單個(gè)DSP的處理能力已不能滿足系統(tǒng)的計(jì)算處理要求,迫切需要多個(gè) DSP進(jìn)行協(xié)同處理,以增強(qiáng)整體數(shù)據(jù)處理能力。TI公司高性能的數(shù)字信號處理器TMS320C6416是一種32位高速定點(diǎn)數(shù)字處理芯片,其工作時(shí)鐘頻率最高可達(dá)到1GHz,接口豐富,能夠方便快速地與外圍設(shè)備進(jìn)行數(shù)據(jù)交換。本文提出了基于TMS320C6416芯片的多板卡聲納信號協(xié)同處理技術(shù),它采用EDMA技術(shù)通過PCI接口實(shí)現(xiàn)多DSP板卡的數(shù)據(jù)交換,以實(shí)現(xiàn)對多路聲納信號的協(xié)同處理。
聲納信號處理主要完成聲納模擬信號從采集、量化、濾波、計(jì)算處理、數(shù)據(jù)篩選到輸出的全過程。不入路數(shù)可能大不相同。根據(jù)板卡取處理能力,當(dāng)納信號輸入路數(shù)較少時(shí),可采用單塊板卡進(jìn)行處理;當(dāng)聲納信號輸入路數(shù)較多時(shí),占用的存儲(chǔ)空間和數(shù)據(jù)處理的運(yùn)算量都很大,則需要采用兩塊或多塊板卡對聲納信號進(jìn)行協(xié)同并行處理,以確保系統(tǒng)的處理性能。
系統(tǒng)由計(jì)算機(jī)主處理器控制,并實(shí)現(xiàn)人機(jī)交互,信號處理由DSP完成。主處理器和各DSP分布在不同的板卡上,其互連方式如圖1所示。計(jì)算機(jī)CPU處理模塊和多塊聲納信號處理板卡通過PCI總線實(shí)現(xiàn)互連,各處理板卡中的信號處理以及相鄰兩塊處理板卡之間的信號相關(guān)處理采用軟件控制,通過中斷方式由PCI總線在相鄰兩塊處理板卡之間傳送相關(guān)數(shù)據(jù)。各聲納信號處理板卡分別處理各自接收的聲納回波信號,采集量化后進(jìn)行處理,處理結(jié)果通過PCI總線傳送給計(jì)算機(jī)CPU處理模塊,組合后顯示輸出。
圖1 多板卡的互連方式
對于同時(shí)輸入的多路聲納信號,要實(shí)現(xiàn)多板卡協(xié)同處理,首先要實(shí)現(xiàn)DSP與DSP之間、DSP與主機(jī)之間的數(shù)據(jù)傳輸,其次要保證多板卡之間的協(xié)調(diào)和同步。圖2給出了兩塊聲納信號處理板卡協(xié)同處理多路聲納信號的示例,其中 DSP-1處理 N路聲納信號,DSP-2處理M路聲納信號。對于N+M路聲納信號而言,雖然在兩個(gè)DSP上分別處理,但仍為一個(gè)整體,如同在單個(gè)DSP上處理一樣。由于相鄰聲納信號之間的相關(guān)性較強(qiáng),在N路信號與M路信號之間有相關(guān)處理,因此DSP-1需要將部分聲納信號傳輸至DSP-2,反過來,DSP-2也需要將部分聲納信號傳輸至DSP-1。然后各DSP分別進(jìn)行計(jì)算處理,并將處理后的數(shù)據(jù)傳輸至主機(jī)。主機(jī)在對兩塊DSP送來的數(shù)據(jù)進(jìn)行同步處理后,顯示輸出。
圖2 多DSP數(shù)據(jù)傳輸示意圖
TMS320C6416芯片自帶一個(gè)32bit/33MHz 3.3V主/從模式PCI接口,支持PCI接口規(guī)范2.2版本,通過PCI總線能夠?qū)崿F(xiàn)DSP與PCI主機(jī)的互連。該P(yáng)CI接口支持下列四種類型的數(shù)據(jù)交換:
◆ 從模式寫,外部PCI主設(shè)備通過PCI接口寫數(shù)據(jù)到DSP從設(shè)備;
◆ 從模式讀,外部PCI主設(shè)備通過PCI接口從DSP從設(shè)備中讀數(shù)據(jù);
◆ 主模式寫,DSP主設(shè)備通過PCI接口寫數(shù)據(jù)到外部PCI從設(shè)備;
◆ 主模式讀,DSP主設(shè)備通過PCI接口從外部PCI從設(shè)備讀數(shù)據(jù)。
DSP對聲納信號處理完后,需將處理后的數(shù)據(jù)傳輸至主機(jī)加以顯示。此時(shí)可采用從模式讀和主模式寫兩種方式完成DSP到主機(jī)的數(shù)據(jù)傳輸。由于對同樣大小的一批數(shù)據(jù),主模式寫的速度比從模式讀的速度快,且前者有利于數(shù)據(jù)的實(shí)時(shí)傳輸。因此采用DSP的主模式寫方式來實(shí)現(xiàn)DSP與主機(jī)的數(shù)據(jù)傳輸,即DSP作為PCI主設(shè)備向主機(jī)的指定地址寫入數(shù)據(jù),并在寫完數(shù)據(jù)后向主機(jī)發(fā)中斷,提示主機(jī)讀取數(shù)據(jù)。
在主模式寫方式下,相關(guān)的控制器包括DSP主地址寄存器(DSPMA)、PCI主地址寄存器(PCIMA)以及PCI主模式控制寄存器(PCIMC)。其中,DSPMA中寫入傳輸?shù)脑吹刂罚碊SP地址),PCIMA中寫入目的地址(即PCI主機(jī)地址)。啟動(dòng)主模式寫后,由EDMA負(fù)責(zé)從源地址向DSP內(nèi)部的寫FIFO搬移所要求的數(shù)據(jù),數(shù)據(jù)傳輸持續(xù)到 FIFO滿或請求的數(shù)據(jù)長度傳輸完為止。一旦FIFO得到有效數(shù)據(jù),PCI接口模塊會(huì)向外發(fā)出PCI總線請求,并將FIFO中的數(shù)據(jù)向PCI從設(shè)備傳輸。當(dāng)DSP源地址中所有的數(shù)據(jù)都送入主模式寫FIFO后,DSP內(nèi)部的數(shù)據(jù)傳輸結(jié)束。通過向RSTSRC寄存器中的INTREQ位和INTRST位寫1即向PCI主機(jī)發(fā)出中斷,完成一次數(shù)據(jù)傳輸。
DSP與 DSP之間的數(shù)據(jù)傳輸是多板卡聲納信號協(xié)同處理的關(guān)鍵和難點(diǎn),只有實(shí)現(xiàn)了DSP之間的數(shù)據(jù)傳輸,多板卡協(xié)同處理才成為可能。DSP之間的數(shù)據(jù)傳輸類似于DSP與主機(jī)之間的傳輸,不同之處在于傳輸?shù)哪康牡刂窞镈SP中的某地址。要實(shí)現(xiàn)DSP之間的數(shù)據(jù)傳輸(以圖2中DSP-1向DSP-2傳輸數(shù)據(jù)為例),有以下兩個(gè)難點(diǎn):
1)DSP-1在主模式寫方式下,PCIMA寄存器中只能寫入PCI主機(jī)地址,不能直接寫入目的DSP-2地址。因此要先將DSP-2的目的地址映射到主機(jī)上,轉(zhuǎn)為PCI主機(jī)地址后方可寫入PCIMA中。
2)PCI主機(jī)可訪問的 DSP內(nèi)存被映射在有限空間中,該有限空間遠(yuǎn)小于DSP的尋址空間,因此需通過 DSP頁寄存器(DSPP)來確定映射的有限空間在DSP存儲(chǔ)空間中的位置。在DSP-1向DSP-2傳輸數(shù)據(jù)時(shí),DSP-1先根據(jù)目的地址求出頁面值和該頁面下的偏移地址,然后通過主模式寫方式將頁面值寫入DSP-2的頁寄存器中;最后通過主模式寫方式將待傳輸?shù)臄?shù)據(jù)寫入DSP-2在該頁面下的偏移地址中。這樣就完成了DSP-1到DSP-2的數(shù)據(jù)傳輸。
當(dāng)同一信號源在某一時(shí)刻輸出聲納信號后,多個(gè)DSP并行采集和處理。主機(jī)在收到多個(gè)DSP的數(shù)據(jù)中斷后,需先判斷收到的數(shù)據(jù)是否是同一時(shí)刻,即判斷多個(gè)DSP處理是否同步。如表1所示,當(dāng)主機(jī)收到兩個(gè)DSP的同步數(shù)據(jù),則直接進(jìn)行組合顯示;而表2所示,當(dāng)主機(jī)接收到的數(shù)據(jù)不是同一時(shí)刻的聲納數(shù)據(jù),則不同步,此時(shí)主機(jī)需要通過一些同步機(jī)制來處理,以保證后續(xù)處理的同步。
表1 多個(gè)DSP處理同步情況
表2 多個(gè)DSP處理不同步情況
基于上述硬件結(jié)構(gòu)以及協(xié)同處理思想,我們設(shè)計(jì)了基于TMS320C6416 DSP處理器的聲納信號處理板卡,其單板的聲納信號處理能力為20路,當(dāng)待處理聲納信號超過20路時(shí),可以對系統(tǒng)進(jìn)行擴(kuò)展,組成多板卡聲納信號協(xié)同處理系統(tǒng)。多板卡聲納信號協(xié)同處理系統(tǒng)的軟件實(shí)現(xiàn)劃分為兩部分:聲納信號處理程序和計(jì)算機(jī)主控程序。
聲納信號處理程序運(yùn)行于 TMS320C6416,采用CCStudio3.0集成開發(fā)環(huán)境,基于DSP/BIOS開發(fā)。為了便于系統(tǒng)擴(kuò)展,在多板卡聲納信號協(xié)同處理過程中,每塊板卡運(yùn)行相同的程序,通過板卡在系統(tǒng)中的位置來確定其所處理的對應(yīng)通道聲納信號及其與相鄰板卡之間的數(shù)據(jù)交換內(nèi)容。該程序的關(guān)鍵技術(shù)在于實(shí)現(xiàn)各處理板卡DSP之間的數(shù)據(jù)傳輸、DSP向主機(jī)的數(shù)據(jù)傳輸。
為了提高系統(tǒng)的實(shí)時(shí)性,計(jì)算機(jī)主控程序選用VxWorks操作系統(tǒng),運(yùn)行于計(jì)算機(jī)主處理器,在Tornado2.2環(huán)境下開發(fā)。主要實(shí)現(xiàn)DSP程序的加載、運(yùn)行控制、DSP中斷處理、同步處理及聲納回波圖像的顯示。
軟件實(shí)現(xiàn)的程序流程如表3所示。
圖3 軟件程序流程
實(shí)驗(yàn)中,我們采用模擬的聲納信號源對所設(shè)計(jì)的多板卡聲納信號處理系統(tǒng)進(jìn)行了驗(yàn)證。信號源能夠提供40路信號,系統(tǒng)中采用2塊聲納信號處理板卡,其中左20路在第一塊板卡中處理,右20路在第二塊板卡中處理。兩板卡協(xié)同處理后,形成聲納視頻圖像,送CPU模塊顯示效果如表4所示。由顯示效果看出,40路信號雖然分開在兩塊聲納信號處理板卡上處理,但協(xié)同處理后,實(shí)現(xiàn)了40路聲納信號的實(shí)時(shí)處理和無縫組合顯示,達(dá)到了預(yù)期效果。
圖4 多板卡協(xié)同處理技術(shù)的實(shí)現(xiàn)效果圖
本文主要介紹了基于 TMS320C6416的多板卡聲納信號協(xié)同處理技術(shù),重點(diǎn)介紹了多板卡之間的數(shù)據(jù)傳輸原理及實(shí)現(xiàn)方式。該技術(shù)在提高系統(tǒng)處理能力的同時(shí),能有效提高系統(tǒng)設(shè)計(jì)的靈活性和可擴(kuò)展性。DSP之間以及DSP與主機(jī)之間的數(shù)據(jù)傳輸方法,為多板卡信號處理系統(tǒng)提供了軟件實(shí)現(xiàn)的借鑒方法,有利于開展多板卡協(xié)同處理工作。
[1]Texas Instruments.TMS320C6000 Peripherals Reference Guide.2001.
[2]汪安民,等.TMS320C6000 DSP實(shí)用技術(shù)與開發(fā)案例[M].北京:人民郵電出版社,2008.
[3]何慧穎,胡越明,蔣嫣楓.基于DSP的PCI總線數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(增刊):497-498.
[4]趙貴海,張寶峰,季秀遠(yuǎn).基于DM642的PCI總線接口技術(shù)的高速數(shù)據(jù)傳輸研究[J].天津理工大學(xué)學(xué)報(bào),2008,24(2):76-79.