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