陳虹舟,朱思奇,霍家道
(1.中國船舶重工集團公司江蘇自動化研究所,江蘇 連云港 222006;2.上海交通大學,上海 200030)
聲納是利用聲波對水下目標進行探測、定位、跟蹤、識別的水聲設備,是軍事上和國民經濟中一種重要的信息獲取手段。數字信號處理器(Digital Signal Processor,DSP)是一種特別適合于進行數字信號處理的微處理器,廣泛應用于各類聲納信號處理設備中。近年來,隨著技術的發展和應用需求的提高,聲納信號處理系統的數據吞吐量和運算量顯著增加,單個DSP的處理能力已不能滿足系統的計算處理要求,迫切需要多個 DSP進行協同處理,以增強整體數據處理能力。TI公司高性能的數字信號處理器TMS320C6416是一種32位高速定點數字處理芯片,其工作時鐘頻率最高可達到1GHz,接口豐富,能夠方便快速地與外圍設備進行數據交換。本文提出了基于TMS320C6416芯片的多板卡聲納信號協同處理技術,它采用EDMA技術通過PCI接口實現多DSP板卡的數據交換,以實現對多路聲納信號的協同處理。
聲納信號處理主要完成聲納模擬信號從采集、量化、濾波、計算處理、數據篩選到輸出的全過程。不入路數可能大不相同。根據板卡取處理能力,當納信號輸入路數較少時,可采用單塊板卡進行處理;當聲納信號輸入路數較多時,占用的存儲空間和數據處理的運算量都很大,則需要采用兩塊或多塊板卡對聲納信號進行協同并行處理,以確保系統的處理性能。
系統由計算機主處理器控制,并實現人機交互,信號處理由DSP完成。主處理器和各DSP分布在不同的板卡上,其互連方式如圖1所示。計算機CPU處理模塊和多塊聲納信號處理板卡通過PCI總線實現互連,各處理板卡中的信號處理以及相鄰兩塊處理板卡之間的信號相關處理采用軟件控制,通過中斷方式由PCI總線在相鄰兩塊處理板卡之間傳送相關數據。各聲納信號處理板卡分別處理各自接收的聲納回波信號,采集量化后進行處理,處理結果通過PCI總線傳送給計算機CPU處理模塊,組合后顯示輸出。

圖1 多板卡的互連方式
對于同時輸入的多路聲納信號,要實現多板卡協同處理,首先要實現DSP與DSP之間、DSP與主機之間的數據傳輸,其次要保證多板卡之間的協調和同步。圖2給出了兩塊聲納信號處理板卡協同處理多路聲納信號的示例,其中 DSP-1處理 N路聲納信號,DSP-2處理M路聲納信號。對于N+M路聲納信號而言,雖然在兩個DSP上分別處理,但仍為一個整體,如同在單個DSP上處理一樣。由于相鄰聲納信號之間的相關性較強,在N路信號與M路信號之間有相關處理,因此DSP-1需要將部分聲納信號傳輸至DSP-2,反過來,DSP-2也需要將部分聲納信號傳輸至DSP-1。然后各DSP分別進行計算處理,并將處理后的數據傳輸至主機。主機在對兩塊DSP送來的數據進行同步處理后,顯示輸出。

圖2 多DSP數據傳輸示意圖
TMS320C6416芯片自帶一個32bit/33MHz 3.3V主/從模式PCI接口,支持PCI接口規范2.2版本,通過PCI總線能夠實現DSP與PCI主機的互連。該PCI接口支持下列四種類型的數據交換:
◆ 從模式寫,外部PCI主設備通過PCI接口寫數據到DSP從設備;
◆ 從模式讀,外部PCI主設備通過PCI接口從DSP從設備中讀數據;
◆ 主模式寫,DSP主設備通過PCI接口寫數據到外部PCI從設備;
◆ 主模式讀,DSP主設備通過PCI接口從外部PCI從設備讀數據。
DSP對聲納信號處理完后,需將處理后的數據傳輸至主機加以顯示。此時可采用從模式讀和主模式寫兩種方式完成DSP到主機的數據傳輸。由于對同樣大小的一批數據,主模式寫的速度比從模式讀的速度快,且前者有利于數據的實時傳輸。因此采用DSP的主模式寫方式來實現DSP與主機的數據傳輸,即DSP作為PCI主設備向主機的指定地址寫入數據,并在寫完數據后向主機發中斷,提示主機讀取數據。
在主模式寫方式下,相關的控制器包括DSP主地址寄存器(DSPMA)、PCI主地址寄存器(PCIMA)以及PCI主模式控制寄存器(PCIMC)。其中,DSPMA中寫入傳輸的源地址(即DSP地址),PCIMA中寫入目的地址(即PCI主機地址)。啟動主模式寫后,由EDMA負責從源地址向DSP內部的寫FIFO搬移所要求的數據,數據傳輸持續到 FIFO滿或請求的數據長度傳輸完為止。一旦FIFO得到有效數據,PCI接口模塊會向外發出PCI總線請求,并將FIFO中的數據向PCI從設備傳輸。當DSP源地址中所有的數據都送入主模式寫FIFO后,DSP內部的數據傳輸結束。通過向RSTSRC寄存器中的INTREQ位和INTRST位寫1即向PCI主機發出中斷,完成一次數據傳輸。
DSP與 DSP之間的數據傳輸是多板卡聲納信號協同處理的關鍵和難點,只有實現了DSP之間的數據傳輸,多板卡協同處理才成為可能。DSP之間的數據傳輸類似于DSP與主機之間的傳輸,不同之處在于傳輸的目的地址為DSP中的某地址。要實現DSP之間的數據傳輸(以圖2中DSP-1向DSP-2傳輸數據為例),有以下兩個難點:
1)DSP-1在主模式寫方式下,PCIMA寄存器中只能寫入PCI主機地址,不能直接寫入目的DSP-2地址。因此要先將DSP-2的目的地址映射到主機上,轉為PCI主機地址后方可寫入PCIMA中。
2)PCI主機可訪問的 DSP內存被映射在有限空間中,該有限空間遠小于DSP的尋址空間,因此需通過 DSP頁寄存器(DSPP)來確定映射的有限空間在DSP存儲空間中的位置。在DSP-1向DSP-2傳輸數據時,DSP-1先根據目的地址求出頁面值和該頁面下的偏移地址,然后通過主模式寫方式將頁面值寫入DSP-2的頁寄存器中;最后通過主模式寫方式將待傳輸的數據寫入DSP-2在該頁面下的偏移地址中。這樣就完成了DSP-1到DSP-2的數據傳輸。
當同一信號源在某一時刻輸出聲納信號后,多個DSP并行采集和處理。主機在收到多個DSP的數據中斷后,需先判斷收到的數據是否是同一時刻,即判斷多個DSP處理是否同步。如表1所示,當主機收到兩個DSP的同步數據,則直接進行組合顯示;而表2所示,當主機接收到的數據不是同一時刻的聲納數據,則不同步,此時主機需要通過一些同步機制來處理,以保證后續處理的同步。

表1 多個DSP處理同步情況

表2 多個DSP處理不同步情況
基于上述硬件結構以及協同處理思想,我們設計了基于TMS320C6416 DSP處理器的聲納信號處理板卡,其單板的聲納信號處理能力為20路,當待處理聲納信號超過20路時,可以對系統進行擴展,組成多板卡聲納信號協同處理系統。多板卡聲納信號協同處理系統的軟件實現劃分為兩部分:聲納信號處理程序和計算機主控程序。
聲納信號處理程序運行于 TMS320C6416,采用CCStudio3.0集成開發環境,基于DSP/BIOS開發。為了便于系統擴展,在多板卡聲納信號協同處理過程中,每塊板卡運行相同的程序,通過板卡在系統中的位置來確定其所處理的對應通道聲納信號及其與相鄰板卡之間的數據交換內容。該程序的關鍵技術在于實現各處理板卡DSP之間的數據傳輸、DSP向主機的數據傳輸。
為了提高系統的實時性,計算機主控程序選用VxWorks操作系統,運行于計算機主處理器,在Tornado2.2環境下開發。主要實現DSP程序的加載、運行控制、DSP中斷處理、同步處理及聲納回波圖像的顯示。
軟件實現的程序流程如表3所示。

圖3 軟件程序流程
實驗中,我們采用模擬的聲納信號源對所設計的多板卡聲納信號處理系統進行了驗證。信號源能夠提供40路信號,系統中采用2塊聲納信號處理板卡,其中左20路在第一塊板卡中處理,右20路在第二塊板卡中處理。兩板卡協同處理后,形成聲納視頻圖像,送CPU模塊顯示效果如表4所示。由顯示效果看出,40路信號雖然分開在兩塊聲納信號處理板卡上處理,但協同處理后,實現了40路聲納信號的實時處理和無縫組合顯示,達到了預期效果。

圖4 多板卡協同處理技術的實現效果圖
本文主要介紹了基于 TMS320C6416的多板卡聲納信號協同處理技術,重點介紹了多板卡之間的數據傳輸原理及實現方式。該技術在提高系統處理能力的同時,能有效提高系統設計的靈活性和可擴展性。DSP之間以及DSP與主機之間的數據傳輸方法,為多板卡信號處理系統提供了軟件實現的借鑒方法,有利于開展多板卡協同處理工作。
[1]Texas Instruments.TMS320C6000 Peripherals Reference Guide.2001.
[2]汪安民,等.TMS320C6000 DSP實用技術與開發案例[M].北京:人民郵電出版社,2008.
[3]何慧穎,胡越明,蔣嫣楓.基于DSP的PCI總線數據傳輸的實現[J].計算機工程,2004,30(增刊):497-498.
[4]趙貴海,張寶峰,季秀遠.基于DM642的PCI總線接口技術的高速數據傳輸研究[J].天津理工大學學報,2008,24(2):76-79.