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