摘 要:針對(duì)目前水下三維聲納實(shí)時(shí)成像系統(tǒng)前端信號(hào)通道多、波束形成計(jì)算量大的問題,提出一種基于現(xiàn)場可編程門陣列(FPGA)的水下三維場景實(shí)時(shí)成像系統(tǒng)。采用FPGA 陣列控制多路信號(hào)同步采樣,優(yōu)化波束形成算法對(duì)海量數(shù)據(jù)進(jìn)行并行處理,同時(shí)利用嵌入式處理器PowerPC 控制系統(tǒng),最終由主控PC 完成三維圖像實(shí)時(shí)顯示。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠在水下200 m 的范圍內(nèi)實(shí)現(xiàn)分辨率為2 cm 的三維成像,三維圖像刷新率可達(dá)20 幀/秒。
1 概述
近年來,隨著人們對(duì)海洋資源的不斷需求與開發(fā),水下探測(cè)技術(shù)得到了飛速發(fā)展。人們對(duì)海洋的主要探測(cè)手段是聲波,即聲納技術(shù)。因此,利用聲納進(jìn)行水下探測(cè)成為了當(dāng)今海洋研究的重點(diǎn)課題。然而,大部分聲納系統(tǒng)都是通過聲波來判斷有無聲納目標(biāo),以及目標(biāo)的方位和距離。目前,國內(nèi)外在海底三維聲納成像技術(shù)方面已經(jīng)取得了一定的成果[1]。例如:美國RESoN 公司開發(fā)的新一代數(shù)字聲納SeaBat8125,歐洲共同體和挪威共同開發(fā)的Echoscope系列三維聲納,美國的海洋工業(yè)公司開發(fā)的雙頻識(shí)別聲納以及美國的Farsounder 公司開發(fā)的三維前視聲納[2-3]。我國三維成像聲納也得到一定的發(fā)展,中科院聲學(xué)所、715 所和哈爾濱工程大學(xué)等單位等都研制了三維聲納成像系統(tǒng)的試驗(yàn)樣機(jī)并發(fā)表了相關(guān)論文[4]。但這些聲納成像技術(shù)大多基于二維映射三維圖像,或者小范圍的慢速三維成像,成像效果不佳,實(shí)時(shí)性太差[5]。
本文提出基于三維聲納探測(cè)技術(shù)的水下三維場景實(shí)時(shí)成像系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)48×48 路信號(hào)的同步采樣,128×128 個(gè)空間波束形成的大規(guī)模數(shù)據(jù)處理和實(shí)時(shí)水下三維場景成像。
2 系統(tǒng)總體設(shè)計(jì)
2.1 系統(tǒng)技術(shù)特點(diǎn)
目前,實(shí)時(shí)高分辨率的三維聲納系統(tǒng)面臨2 個(gè)問題[6]:
(1)大量前端信號(hào)通道的硬件成本昂貴;(2)進(jìn)行波束形成算法所需的乘累加計(jì)算量大。
首先,該系統(tǒng)采用了優(yōu)化后的模擬退火算法[7],對(duì)二維平面上的每一個(gè)換能器分配權(quán)重系數(shù),在最大旁瓣可以接受的條件下,部分換能器的權(quán)重系數(shù)可以分配為0,即達(dá)到對(duì)換能器稀疏化,減小系統(tǒng)運(yùn)算量的效果[8]。最終實(shí)現(xiàn)系統(tǒng)2 304(48×48)個(gè)換能器組成的聲學(xué)信號(hào)接收平面陣。
同時(shí),該系統(tǒng)采用優(yōu)化后的分步波束形成算法,將空間入射的聲波信號(hào)進(jìn)行空間分解,對(duì)相移參數(shù)進(jìn)行優(yōu)化,從而減小相移參數(shù)儲(chǔ)存空間,并將聲學(xué)信號(hào)接收平面陣劃分成48 條線性子陣,分組并行實(shí)現(xiàn)分步波束形成,最終完成128×128 個(gè)波束形成[9]。
由于FPGA 具有數(shù)據(jù)位寬可配置性、多級(jí)流水線處理以及內(nèi)部集成大量的數(shù)字信號(hào)處理單元(DSP Slices)等特性,因此FPGA 在聲納信號(hào)處理方面的運(yùn)算效率遠(yuǎn)大于數(shù)字信號(hào)處理器(DSP)的運(yùn)算效率[10]。為了做到實(shí)時(shí)的海量數(shù)據(jù)處理,該系統(tǒng)采用了基于FPGA 平臺(tái)的系統(tǒng)設(shè)計(jì),利用FPGA 陣列對(duì)數(shù)據(jù)進(jìn)行并行處理,并通過陣列間的數(shù)據(jù)交互完成波束形成。
2.2 系統(tǒng)總體構(gòu)架
水下三維場景實(shí)時(shí)成像系統(tǒng)總體結(jié)構(gòu)如圖1 所示,由48 塊子板、主板和主控PC 組成。子板負(fù)責(zé)完成信號(hào)采集功能,主板負(fù)責(zé)完成波束形成與數(shù)據(jù)匯總,并實(shí)現(xiàn)對(duì)子板的采樣控制和與主控PC 通信的功能,最終在主控PC 上完成實(shí)時(shí)三維成像。其中,每塊子板有48 個(gè)信號(hào)接收通道。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 子板硬件設(shè)計(jì)
子板主要由輸出放大器ADA4841、4 路功率放大器SSM2164、12 bit 串行AD 轉(zhuǎn)換器ADS7886 和DA 轉(zhuǎn)換器LTC2641、LTC1019、Xilinx Spartan-3E 系列FPGA XC3S1200E以及其他外圍電路構(gòu)成。
子板數(shù)據(jù)采集功能如圖2 所示。各通道首先對(duì)從換能器接收的微弱的電信號(hào)進(jìn)行調(diào)理,將信號(hào)通過一個(gè)高通濾波器濾除中低頻的環(huán)境噪聲后,再經(jīng)過一款二階帶通濾波器,以實(shí)現(xiàn)當(dāng)輸入信號(hào)頻率大于570 kHz 時(shí)使信號(hào)衰減20 dB 以上,同時(shí)保證有效的信號(hào)范圍270 kHz~330 kHz(考慮水聲信號(hào)的多普勒頻移)衰減小于3 dB。然后在外部同源時(shí)鐘驅(qū)動(dòng)下,Spartan-3E 控制A/D 采樣芯片對(duì)聲學(xué)信號(hào)的幅度和相位信息進(jìn)行同步A/D 采樣和采樣數(shù)據(jù)處理,并通過低壓差分信號(hào)(Low-voltage Differential Signaling, LVDS)接口將數(shù)據(jù)上傳主板。同時(shí),Spartan-3E 通過串行外設(shè)接口(Serial Peripheral Interface, SPI)向D/A 轉(zhuǎn)換器發(fā)送數(shù)據(jù),經(jīng)轉(zhuǎn)換后輸出時(shí)間增益(Time Variation of Gain, TVG)控制信號(hào),以控制采樣信號(hào)壓縮比。
3.2 主板硬件設(shè)計(jì)
主板主要由1 片PowerPC 嵌入式處理器MPC8313、1 片Xilinx Spartan-3E 系列FPGA XC3S1200E 和4 片高性能Xilinx Virtex-5 系列FPGA XC5VSX95T,以及其他外圍電路組成。
每塊Virtex-5 通過LVDS 接口接收12 塊子板上傳的數(shù)據(jù),通過高速差分對(duì)數(shù)據(jù)線彼此進(jìn)行數(shù)據(jù)交互。每塊Virtex-5對(duì)數(shù)據(jù)進(jìn)行計(jì)算處理并完成波束形成,經(jīng)2 片64 MB 外部DDR2 暫存,將波束形成結(jié)果上傳至Spartan-3E 進(jìn)行數(shù)據(jù)匯總。MPC8313 通過外設(shè)部件互連標(biāo)準(zhǔn)(Peripheral Component Interconnect, PCI)接口對(duì)Spartan-3E 中的數(shù)據(jù)進(jìn)行讀取,將波束形成匯總結(jié)果通過千兆以太網(wǎng)口傳輸給PC 主控機(jī)。同時(shí),MPC8313 使用系統(tǒng)雙線式串行(Inter-integrated Circuit,I2C)總線對(duì)Virtex-5 寄存器進(jìn)行配置,生成D/A 驅(qū)動(dòng)信號(hào)下發(fā)子板。MPC8313 外圍擴(kuò)展有Nor Flash 用于存儲(chǔ)系統(tǒng)代碼,Nand Flash 用于存儲(chǔ)有效傳感器的編號(hào)和相應(yīng)的權(quán)重系數(shù)等系統(tǒng)相關(guān)數(shù)據(jù)。
4 系統(tǒng)FPGA 功能設(shè)計(jì)
系統(tǒng)各模塊FPGA 設(shè)計(jì)是水下三維場景實(shí)時(shí)成像系統(tǒng)的核心,一共包括3 個(gè)部分:子板FPGA 設(shè)計(jì),主板高性能FPGA 設(shè)計(jì)和主板接口FPGA 設(shè)計(jì)。
4.1 子板FPGA 設(shè)計(jì)
子板FPGA 主要完成ADC 芯片的控制、數(shù)據(jù)的采集、24 點(diǎn)離散傅里葉變換(Discrete Fourier Transform, DFT)運(yùn)算與主信號(hào)處理板的通信等功能。如圖3 所示,在子板FPGA中,A/D 采樣控制模塊從48 個(gè)通道串行讀取數(shù)據(jù),并分存在6 個(gè)大小均為6 KB 的雙口RAM 內(nèi)。數(shù)據(jù)處理模塊按通道順序,依次從6 個(gè)RAM 中讀出24 個(gè)采樣點(diǎn),并對(duì)采樣數(shù)據(jù)進(jìn)行DFT 計(jì)算,計(jì)算得到一個(gè)頻點(diǎn)為300 kHz 的DFT值。數(shù)據(jù)轉(zhuǎn)換與發(fā)送模塊按通道順序讀取DFT 計(jì)算結(jié)果,將單端信號(hào)轉(zhuǎn)成差分信號(hào),通過LVDS 接口將數(shù)據(jù)上傳。同時(shí)FPGA 通過SPI 接口向D/A 轉(zhuǎn)換器發(fā)送數(shù)據(jù),經(jīng)轉(zhuǎn)換后的模擬信號(hào)輸出TVG 控制信號(hào),以控制采樣信號(hào)壓縮比。
4.2 主板高性能FPGA設(shè)計(jì)
為了實(shí)現(xiàn)對(duì)48×48 路信號(hào)的大規(guī)模數(shù)據(jù)處理,最終完成128×128 個(gè)波束形成, 系統(tǒng)選擇了高性能的Xilinx Virtex-5 系列FPGA。由于系統(tǒng)數(shù)據(jù)運(yùn)算量很大,任何一塊FPGA 都無法獨(dú)立完成,因此根據(jù)最終形成的波束數(shù),將采集數(shù)據(jù)平均分配給4 塊FPGA 同步進(jìn)行處理與計(jì)算,并通過彼此的數(shù)據(jù)交互完成波束形成,如圖4 所示。
每塊Virtex-5 從12 塊子板接收數(shù)據(jù)后儲(chǔ)存。一級(jí)波束形成模塊從數(shù)據(jù)存儲(chǔ)模塊讀取數(shù)據(jù),計(jì)算形成12 條線性陣在一個(gè)方向上的波束,并將數(shù)據(jù)存儲(chǔ)。一級(jí)波束形成的中間數(shù)據(jù)有1/4 結(jié)果被保留,其他3/4 通過自定義高速差分對(duì)數(shù)據(jù)線傳遞給其他3 塊Virtex-5,同時(shí)每塊Virtex-5 從其他3 塊Virtex-5 得到中間波束。二級(jí)波束形成模塊從中間數(shù)據(jù)存儲(chǔ)模塊讀取數(shù)據(jù),計(jì)算形成12 條線性陣在另一個(gè)方向上的波束。每塊Virtex-5 共完成32×128 個(gè)波束形成。最終數(shù)據(jù)經(jīng)DDR2 緩存,通過2 對(duì)差分傳輸線傳輸給主板接口FPGA。
數(shù)據(jù)存儲(chǔ)模塊和中間數(shù)據(jù)存儲(chǔ)模塊都分配1 個(gè)雙口RAM,1 個(gè)作為數(shù)據(jù)接收緩存的FIFO 和1 個(gè)作為數(shù)據(jù)發(fā)送的FIFO。DDR2 控制器由DDR2_WR 模塊和FPGA 內(nèi)部DDR2 讀寫控制IP 核組成,數(shù)據(jù)流如圖5 所示。DDR2_WR模塊按照一定的順序從寫入數(shù)據(jù)FIFO 中讀出12 塊子板的波束形成結(jié)果,并按照讀取的先后順序?qū)懭隓DR2 中,讀出數(shù)據(jù)FIFO 在寫DDR2 操作的間隙從DDR2 中讀出數(shù)據(jù)。
嵌入式處理器PowerPC 通過系統(tǒng)I2C 總線對(duì)每塊Virtex-5 的寄存器進(jìn)行讀寫操作,修改TVG 參數(shù),并通過
Virtex-5 將TVG 參數(shù)發(fā)送給每塊子板,達(dá)到對(duì)每個(gè)采樣模塊進(jìn)行增益控制的功能。
4.3 主板接口FPGA 設(shè)計(jì)
主板接口FPGA 負(fù)責(zé)將4 片主板高性能FPGA 上傳的數(shù)據(jù)合并,便于PowerPC 讀取。PowerPC 控制FPGA 生成脈沖信號(hào),驅(qū)動(dòng)系統(tǒng)發(fā)射聲學(xué)信號(hào),并通過FPGA 控制子板開始采集數(shù)據(jù)。數(shù)據(jù)匯總完成后生成中斷信號(hào),PowerPC根據(jù)中斷信號(hào)讀取數(shù)據(jù)。具體工作流程如圖6 所示。
5 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)分為2 個(gè)部分完成:(1)在PowerPC 上完成的嵌入式操作系統(tǒng)移植與應(yīng)用軟件開發(fā);(2)在主控PC上完成的實(shí)時(shí)可視化顯示系統(tǒng)設(shè)計(jì)。
5.1 PowerPC 軟件設(shè)計(jì)
嵌入式處理器PowerPC 采用嵌入式Linux 操作系統(tǒng)為核心,完成整個(gè)操作系統(tǒng)的移植、系統(tǒng)啟動(dòng)代碼開發(fā)、驅(qū)動(dòng)程序開發(fā)和應(yīng)用程序開發(fā)等多層次任務(wù)。系統(tǒng)構(gòu)架如圖7所示。
?
系統(tǒng)構(gòu)架分為3 個(gè)層次:(1)完成系統(tǒng)Boot loader 開發(fā),以及文件系統(tǒng)鏡像、啟動(dòng)腳本等。(2)在操作系統(tǒng)上開發(fā)1 000 兆以太網(wǎng)驅(qū)動(dòng)、TVG 驅(qū)動(dòng)、FPGA 驅(qū)動(dòng)、時(shí)鐘驅(qū)動(dòng)。(3)應(yīng)用程序?qū)崿F(xiàn)與主控PC 和主板等數(shù)據(jù)交互、數(shù)據(jù)處理、網(wǎng)絡(luò)通信、命令交互、TVG 控制、參數(shù)設(shè)置、代碼更新、時(shí)鐘傳輸?shù)裙δ堋?/p>
5.2 實(shí)時(shí)可視化顯示系統(tǒng)設(shè)計(jì)
實(shí)時(shí)可視化顯示系統(tǒng)的全部功能一共可以劃分為4 個(gè)部分,如圖8 所示。
數(shù)據(jù)模塊通過網(wǎng)絡(luò)接收相控陣上傳的數(shù)據(jù),一方面直接對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)可視化處理,另一方面將數(shù)據(jù)保存以用于離線處理。三維建模模塊是本系統(tǒng)的主要功能模塊,單幀匹配是將相鄰點(diǎn)連接成三角面片,使點(diǎn)集形成拓?fù)浣Y(jié)構(gòu)[11]。精確配準(zhǔn)是采用鄰近點(diǎn)迭代(Iterated Closest Point,ICP)算法把點(diǎn)集擺放在更加合適的位置[12]。圖像拼接是使輸入的新幀與舊幀融合成一幀更加完整的圖像。在參數(shù)控制模塊分別對(duì)三維建模模塊和顯示模塊進(jìn)行參數(shù)控制。顯示模塊是將單幀匹配結(jié)果顯示在小窗口中,將全局配準(zhǔn)和拼接結(jié)果顯示在大窗口中,各窗口皆具有交互顯示功能。其中,參數(shù)控制模塊包括聲納控制、算法管理和顯示方式控制。聲納控制包括測(cè)量量程和采集模式控制,算法管理包括配準(zhǔn)精度和拼接分辨率控制,顯示方式包括配色方案和幀率控制。
6 系統(tǒng)性能
目前,水下三維場景實(shí)時(shí)成像系統(tǒng)試驗(yàn)樣機(jī)的研制已完成,國內(nèi)還沒有相關(guān)的研究成果,國際上只有英國Coda Octopus 公司在2006 年推出的產(chǎn)品Echoscope Mark II[13]。表1 給出了試驗(yàn)樣機(jī)的主要技術(shù)指標(biāo),該系統(tǒng)與Coda Octopus 公司Echoscope Mark II 產(chǎn)品的技術(shù)指標(biāo)基本一致。其中,角度分辨率是指相鄰2 個(gè)接收波束之間的夾角;距離分辨率是指同一接收波束上前后相鄰2 個(gè)像素點(diǎn)之間的距離;最大作用距離是指反射強(qiáng)度為0 dB 的目標(biāo)能被有效探測(cè)到的最遠(yuǎn)距離。
圖9 為試驗(yàn)樣機(jī)在浙江省千島湖水聲試驗(yàn)站采集到的湖底數(shù)據(jù),可以清楚地從主控PC 用戶界面上看到千島湖湖底拼接效果圖,其中有一條鐵索沉在湖中。
7 結(jié)束語
本文提出的水下三維場景實(shí)時(shí)成像系統(tǒng)方案,基于優(yōu)化后的波束形成算法,利用大規(guī)模FPGA 陣列,較好地解決了大量換能器信號(hào)采樣和海量數(shù)據(jù)并行計(jì)算的問題。該系統(tǒng)在大壩水下部分監(jiān)測(cè)、海港墻壁檢查、水下工程實(shí)施、海底管道檢查、水下航行器的避障和導(dǎo)航等方面具有廣泛的應(yīng)用前景。下一步將針對(duì)實(shí)際的應(yīng)用,設(shè)計(jì)相應(yīng)的優(yōu)化算法,并在提高系統(tǒng)性能和降低系統(tǒng)功耗方面做進(jìn)一步的改進(jìn)。
評(píng)論