馮 宏,王忠康
(杭州應(yīng)用聲學(xué)研究所,浙江杭州310023)
海洋流場是海洋動力環(huán)境的基本要素,對海洋流場進(jìn)行監(jiān)測在海洋科學(xué)研究、經(jīng)濟(jì)建設(shè)及國防建設(shè)等領(lǐng)域均具有極其重要的意義。聲學(xué)多普勒流速剖面儀(Acoustic Doppler Current Profilers, ADCP)是進(jìn)行海洋流場監(jiān)測的一種重要設(shè)備,它能夠?qū)Q蟓h(huán)境參數(shù)進(jìn)行長期自主式觀測和記錄,可提供高分辨率、高精度、信息海量且完整的數(shù)據(jù),在海洋科考、海上調(diào)查和軍事海上安全保障等領(lǐng)域應(yīng)用廣泛,具有非常良好的市場前景。
寬帶聲學(xué)多普勒流速剖面儀是利用編碼相干脈沖串信號進(jìn)行收發(fā)和處理。寬帶測流方式通過高分辨率編碼形式與靈活的相干測量相結(jié)合的方式,以保證速度估計具有較高的精度[1]。高頻寬帶ADCP 對系統(tǒng)采樣率和數(shù)據(jù)處理能力有非常高的要求。傳統(tǒng)的處理方式是使用模擬手段實現(xiàn)正交混頻濾波,將回波信號頻率降低,轉(zhuǎn)換成為相互正交的兩路基帶信號。這種方式雖然可以降低系統(tǒng)的采樣率,但是難以實現(xiàn)正交通道的絕對平衡,且容易引入零漂和測量誤差。
本文介紹了一種高頻采集、數(shù)字解調(diào)濾波的通用型ADCP 信號處理系統(tǒng)的設(shè)計和實現(xiàn)過程。該系統(tǒng)以現(xiàn)場現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array, FPGA)+數(shù)字信號處理器(Digital Signal Processor, DSP)+低功耗單片機(jī)(Mixed Signal Processor 430, MSP430)為架構(gòu)形式,很好地解決了高頻寬帶ADCP 高采樣率、高數(shù)據(jù)處理能力及低功耗的應(yīng)用需求,在保證數(shù)據(jù)處理速度的基礎(chǔ)上實現(xiàn)了相位的嚴(yán)格正交,且通過參數(shù)化配置實現(xiàn)了多頻段的通用性設(shè)計?,F(xiàn)場可編程邏輯門陣列(FPGA)因其豐富的內(nèi)部可編程邏輯資源、高度的并行性、低功耗、高集成度等特點,廣泛應(yīng)用在高速數(shù)字信號處理中。數(shù)字信號處理器(DSP)編程靈活、處理能力強(qiáng)且可擴(kuò)展性強(qiáng),在復(fù)雜算法處理中極具優(yōu)勢。低功耗單片機(jī)(MSP430)接口豐富,功耗極低,非常適合用于系統(tǒng)控制中。本設(shè)計充分利用FPGA、DSP 和MSP430 在數(shù)字信號處理中的優(yōu)勢,對系統(tǒng)流程進(jìn)行軟硬件劃分,采用軟硬件協(xié)同設(shè)計方式完成了整個通用型高頻寬帶ADCP信號處理系統(tǒng)的設(shè)計與實現(xiàn)。
寬帶聲學(xué)多普勒流速剖面儀的基本工作原理是利用聲電換能器向海底和海水介質(zhì)發(fā)射由偽隨機(jī)相位編碼調(diào)制的聲脈沖信號,并接收從海底和海水中各散射層聲波散射體反射的回波信號,通過分析波束回波信號的多普勒頻移信息,從而得到海底和海水相對儀器的運(yùn)動速度、方向及儀器距離海底和海水的剖面深度等信息。
多普勒測頻技術(shù)是寬帶ADCP 的關(guān)鍵技術(shù)之一,基于譜矩理論的復(fù)相關(guān)算法可以在低信噪比情況下快速精準(zhǔn)地進(jìn)行測頻,具有運(yùn)算量小、精度高等優(yōu)點,在工程應(yīng)用中得到了廣泛使用[2]。本文對設(shè)計中使用的編碼信號和復(fù)相關(guān)測頻基本原理進(jìn)行簡單介紹。
寬帶ADCP中使用偽隨機(jī)編碼對發(fā)射脈沖進(jìn)行相位調(diào)制,M 序列編碼信號是一種偽隨機(jī)二相編碼調(diào)相信號,具有優(yōu)良的自相關(guān)特性,易于產(chǎn)生和復(fù)制。編碼調(diào)相信號可以用復(fù)數(shù)表示為
其中,f0為發(fā)射脈沖中心頻率;a(t )為編碼信號的復(fù)包絡(luò):
式中:T 為編碼信號長度;rect 為構(gòu)造矩形函數(shù);?t為碼元寬度;N 為碼長,則編碼信號的長度T = N ×?t。φk為調(diào)相角度,當(dāng)φk取值為0 或者π 時,信號即為二相調(diào)制碼。設(shè)φk= akπ,ak為二進(jìn)制序列,也就是二相調(diào)制碼的編碼形式。
M 序列是偽隨機(jī)序列,它具有與隨機(jī)噪聲相似的尖銳相關(guān)函數(shù)特性,可以將C0通過m 個移位寄存器相級聯(lián)的方式實現(xiàn)[3]。圖1 為M 序列碼生成器的模型,移位寄存器的抽頭系數(shù)和Cm恒為1,C1~ Cm?1可以為0 或1。當(dāng)給定時鐘頻率 fM=1 /?t時,系統(tǒng)輸出碼元寬度為?t,碼長為 2m?1?1的編碼脈沖信號。只要選擇合適的C1~ Cm?1值,在輸出端即可得到2m?1 位的M 序列偽隨機(jī)碼[4]。
圖1 M 序列碼生成器模型Fig.1 Model of M sequence code generator
由于回波信號是實信號,而復(fù)相關(guān)方法需要根據(jù)實信號得到它的復(fù)數(shù)形式[5]。已知一個實數(shù)信號,可以通過希爾伯特變換(Hilbert Transform, HT)變化來構(gòu)造復(fù)數(shù)形式:
對于常用的單頻余弦信號有
實際中可通過正交解調(diào)獲得基帶信號的復(fù)數(shù)形式。簡化回波信號為
式中: ω0為中心頻率;ωd為回波信號頻移。用相互正交的兩路信號分別與接收的回波信號S (t )做乘法運(yùn)算,得到混頻信號,再通過低通濾波器(LPF)濾除高頻部分,得到送入復(fù)相關(guān)運(yùn)算的復(fù)基帶信號xR、 xI最后得到X (t )。正交解調(diào)框圖如圖2 所示。
圖2 正交解調(diào)框圖Fig.2 Block diagram of orthogonal demodulation
通過低通濾波濾除高頻分量,可得到:
用于復(fù)相關(guān)運(yùn)算的復(fù)觀測信號X (t )為
進(jìn)而可求得復(fù)相關(guān)函數(shù)R (τ )為
結(jié)合式(12)和式(13)可得:
可知,復(fù)相關(guān)值僅與回波信號的多普勒頻偏有關(guān),且復(fù)相關(guān)函數(shù)的相位φ (τ )表示為
則有:
得到頻偏參數(shù)后,根據(jù)多普勒頻移公式完成測速工作。
本系統(tǒng)是針對通用型高頻寬帶ADCP 而設(shè)計,系統(tǒng)頻率可以覆蓋300、600 kHz 及1.2 MHz 等頻段。為了避免模擬解調(diào)引入的相位失調(diào)、零漂等問題,本系統(tǒng)采用直采方式,即對回波信號先采樣后做數(shù)字解調(diào)濾波處理,這就對AD 模塊的采樣速率、處理器的批量數(shù)據(jù)處理能力及系統(tǒng)功耗等方面提出較高的要求。綜合考慮目前各種主流處理芯片在數(shù)字信號處理及邏輯控制中的優(yōu)劣勢,設(shè)計中采用FPGA+DSP+MSP430 系統(tǒng)架構(gòu)形式來實現(xiàn)。
對系統(tǒng)流程進(jìn)行軟硬件劃分,其架構(gòu)形式如圖3 所示。MSP430 模塊是系統(tǒng)的主控單元,實現(xiàn)整體邏輯控制和值班電路控制,同時完成與上位機(jī)的數(shù)據(jù)交互功能(RS232 串口通信)。FPGA 模塊負(fù)責(zé)完成發(fā)射/接收控制和數(shù)據(jù)流的預(yù)處理,包括高速AD 信號采集、復(fù)解調(diào)運(yùn)算、低通濾波和降采樣處理等操作,并將處理后的數(shù)據(jù)經(jīng)高速數(shù)據(jù)通用并行端口(Universal Parallel Port, UPP)總線傳輸至DSP端。DSP 模塊是系統(tǒng)的核心處理單元,對FPGA 端預(yù)處理后的數(shù)據(jù)按照上位機(jī)設(shè)定的模式進(jìn)行解算,并完成數(shù)據(jù)的存儲和上傳(網(wǎng)絡(luò)通信)等功能。
本系統(tǒng)是多頻段通用型處理系統(tǒng),對各頻段的數(shù)據(jù)量分析如表1 所示。
圖3 系統(tǒng)架構(gòu)框圖Fig.3 System architecture diagram
表1 多頻段數(shù)據(jù)量分析Table 1 Data volume analysis for different frequency bands
單通道采樣點數(shù)為Tfs,采樣時長 T =D / c /2,聲速取值c=1 500 m·s-1。采樣頻率fs與作用距離D和采樣時長T 均成反比,因此在標(biāo)稱作用距離情況下,各頻段的數(shù)據(jù)量一致,處理時長一致,易于實現(xiàn)各頻段的通用性設(shè)計。此外,ping 間隔(最小發(fā)射周期)取決于采樣時長和處理時長兩部分,因此當(dāng)頻率增加時可以降低ping 間隔來提高系統(tǒng)的工作效率和精度。
本設(shè)計中,根據(jù)功能可以將軟件系統(tǒng)劃分為邏輯控制軟件和數(shù)據(jù)流處理軟件兩大部分,其中邏輯控制軟件主要由MSP430 完成,數(shù)據(jù)流處理軟件在FPGA 和DSP 的協(xié)同作用下完成。本文對數(shù)據(jù)流的處理過程進(jìn)行重點介紹。
2.2.1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理操作在FPGA 控制單元完成,主要包括發(fā)射、接收控制、高速數(shù)據(jù)采集、復(fù)解調(diào)、低通濾波和數(shù)據(jù)抽樣等,其數(shù)據(jù)流向如圖4 所示。
圖4 預(yù)處理單元數(shù)據(jù)流向Fig.4 Data flow direction of preprocessing unit
發(fā)射控制信號為兩路相位相反的M 序列編碼信號和一路發(fā)射包絡(luò)信號。本設(shè)計中使用15 個碼元的編碼方式,每個碼元填充10 個單頻方波信號,占空比為50%,信號頻率為系統(tǒng)頻率。由于本系統(tǒng)可以兼容多個頻段,因此在設(shè)計過程中對填充信號頻率做參數(shù)化處理,可通過上位機(jī)配置信息實現(xiàn)不同頻段的自由切換。M 序列編碼信號發(fā)射脈沖長度為1 個M 序列編碼信號乘以重復(fù)次數(shù),重復(fù)次數(shù)可根據(jù)上位機(jī)設(shè)定的頻段及層厚進(jìn)行設(shè)計,例如,300 KHz ADCP 發(fā)射脈沖寬度如表2 所示。
表2 300 KHz ADCP 發(fā)射脈寬Table 2 Pulse width of 300KHz ADCP
接收控制信號主要是一路時間-增益控制信號,該部分功能由數(shù)-模轉(zhuǎn)換(Digital to Analog, DA 轉(zhuǎn)換)模塊實現(xiàn)。本設(shè)計是在FGPA 中完成DA 轉(zhuǎn)換的驅(qū)動程序并生成相應(yīng)的控制曲線,輸出至接收機(jī)中。
本設(shè)計中使用LTC2170-14 芯片完成AD 采樣,該芯片可支持5~25 MHz 的采樣率,根據(jù)系統(tǒng)通用型設(shè)計要求,對回波模擬信號采用4 倍采樣原則,綜合各個頻段的采樣需求,ADC 的采樣率為1.2、2.4、4.8 MHz。對于采樣率<5 MHz 的情況,采用過采樣后抽取的方法實現(xiàn),例如以9.6 MHz 進(jìn)行采樣,1/8 抽取得到等效采樣率為1.2 MHz,1/4 抽取得到等效采樣率為2.4 MHz,1/2 抽取得到等效采樣率為4.8 MHz。程序設(shè)計過程中,通過對采集模塊時鐘頻率參數(shù)化設(shè)計來實現(xiàn)不同采樣率的自由切換。
FPGA 芯片具有豐富的內(nèi)部邏輯資源,且可以實現(xiàn)高度的并行處理,非常適合復(fù)解調(diào)運(yùn)算這種模塊固化后的流水線批量操作。低通濾波功能是通過調(diào)用FIR(Finite Impulse Response, FIR)濾波器的IP(Intellectual Propert, IP)核實現(xiàn),由于本設(shè)計中先完成了復(fù)解調(diào)操作,將系統(tǒng)中心頻率已搬移至零點,因此不同頻段設(shè)計中濾波器是可以通用的。降采樣通過數(shù)據(jù)抽取方式來實現(xiàn)。
2.2.2 高速數(shù)據(jù)通道設(shè)計
本系統(tǒng)設(shè)計中,F(xiàn)PGA 獲取ADC 采樣數(shù)據(jù)并處理后傳輸至DSP 端進(jìn)行后續(xù)解算,F(xiàn)PGA 與DSP之間通過UPP 總線實現(xiàn)高速數(shù)據(jù)傳輸。
UPP 是一種高速數(shù)據(jù)傳輸通道,其包含內(nèi)部DMA(Direct Memory Access, DMA)控制器實現(xiàn)了最大化吞吐量,減少了數(shù)據(jù)傳輸時處理器的干預(yù)。UPP 總線接口數(shù)據(jù)位寬為16 bit,最高時鐘速率可達(dá)到75 MHz。對于本系統(tǒng),DSP 的UPP 接口工作于接收模式,由FPGA 提供接口時鐘,當(dāng)采樣率為6 MHz 時,UPP 接口的時鐘速率為6 MHz,完全滿足所需的傳輸速率要求。
UPP 模塊的軟件設(shè)計主要包括初始化程序和中斷程序兩部分。初始化針對系統(tǒng)需求配置接收通道,其配置代碼需按照下列步驟完成:
(1) 使能引腳的UPP 復(fù)用功能,包括數(shù)據(jù)引腳和控制引腳;
(2) 配置數(shù)據(jù)寬度、格式、速率等;
(3) 使能UPP 中斷和外設(shè)功能;
(4) 分配數(shù)據(jù)存儲空間;
(5) 配置DMA 通道描述符;
(6) 清除相應(yīng)的標(biāo)志位,開啟接收等待狀態(tài)。
UPP 中斷可以定義為多種方式,I 路和Q 路的行中斷、窗中斷,以及溢出、出錯中斷等,上述中斷處理均放在同一個函數(shù),通過uPP_DMA_CHI、uPP_DMA_CHQ 獲取確切的中斷類型然后做相應(yīng)處理。本系統(tǒng)設(shè)計中將UPP 設(shè)定為窗中斷,當(dāng)接收數(shù)據(jù)量達(dá)到一個窗的設(shè)定值時觸發(fā)產(chǎn)生窗中斷。窗中斷參數(shù)配置示意圖如圖5 所示,圖中Line 表示行信息。
為了實現(xiàn)數(shù)據(jù)的連續(xù)采集處理,DSP 端在DDR2 中開辟乒乓緩存,通過DMA 方式緩存來自UPP 的數(shù)據(jù)并分批進(jìn)行處理,緩存方式如圖6 所示。
2.2.3 數(shù)據(jù)處理
圖5 窗中斷參數(shù)配置Fig.5 Parameter configuration for window interruption
圖6 高速通道數(shù)據(jù)乒乓緩存Fig.6 Ping-Pang buffer of high speed data
DSP 控制單元選用C6748 芯片,其最高主頻為456 MHz , 運(yùn) 算 能 力 可 達(dá) 到 3 648 MHz 和2 746 MFLOPS(Million Floating-point Operations per Second,即每秒百萬個浮點操作),具有并行總線UPP,可與FPGA 之間實現(xiàn)高速數(shù)據(jù)傳輸,具有DDR2、10/100 MHz 以太網(wǎng)、MMC/SD、UART、SPI、I2C 等豐富的外設(shè),且該芯片工作于300 MHz時的典型功耗僅為480 mW,非常適合低功耗設(shè)計。
本系統(tǒng)設(shè)計中,DSP 端上電復(fù)位后,等待MSP430 中斷,完成參數(shù)配置和模式選擇操作,然后等待UPP 中斷完成數(shù)據(jù)傳輸,再在設(shè)定模式下完成數(shù)據(jù)搬移、復(fù)相關(guān)運(yùn)算、流速解算、傳感器數(shù)據(jù)解析以及結(jié)果數(shù)據(jù)的存儲或上傳等操作。
本系統(tǒng)實現(xiàn)了自容式和走航式軟件的一體化設(shè)計。當(dāng)系統(tǒng)配置為走航式時,數(shù)據(jù)解算模塊可以根據(jù)配置情況完成測流、測底等功能,并將處理結(jié)果實時上傳至上位機(jī)中。配置為自容式時,系統(tǒng)根據(jù)設(shè)定時序完成一個TE(Time per Envelope)周期的測流工作,并將結(jié)果存儲在SD 卡中。DSP 端的處理流程如圖7 所示。
本系統(tǒng)已經(jīng)成功應(yīng)用在SLC300-1 型ADCP 設(shè)備中。為了對系統(tǒng)的性能進(jìn)行驗證,在某湖上進(jìn)行了對地測速精度的考核試驗。
圖7 DSP 數(shù)據(jù)處理流程圖Fig.7 Flow chart of DSP data processing
在對地測速精度考核試驗中,試驗船分別以預(yù)定的4 kn 和8 kn(實際航行速度以DGPS 為準(zhǔn))的測速點航行,每個航速下航行時間不小于1 h,試驗過程中同步錄取ADCP 的底跟蹤數(shù)據(jù)、羅經(jīng)航向數(shù)據(jù)和DGPS 數(shù)據(jù)進(jìn)行比對分析。
圖8~9 為兩個速度點下的考核航次數(shù)據(jù)比對結(jié)果,表3 所列的數(shù)值為數(shù)據(jù)處理后得到的數(shù)據(jù)質(zhì)量分析結(jié)果。
表3 中,DGPS 速度為外置GPS 的合成速度,試驗中以該速度作為流速比對標(biāo)準(zhǔn);ADCP 速度為試驗設(shè)備的合成速度;相關(guān)系數(shù)r 用來表征ADCP速度與DGPS 速度的相關(guān)性,該系數(shù)越接近1 說明設(shè)備的測速性能越優(yōu);置信概率用來表征有效樣本數(shù)據(jù)占總樣本數(shù)的百分比,其中有效樣本數(shù)據(jù)的統(tǒng)計依據(jù)海洋行業(yè)標(biāo)準(zhǔn)HY/T 102-2007《聲學(xué)多普勒流速剖面儀檢測方法》[6]中的數(shù)據(jù)處理方式進(jìn)行;檢測數(shù)據(jù)組數(shù)是指參與比對處理的樣本總數(shù),一般情況下取10~20 個原始流速數(shù)據(jù)做平均得到一個比對樣本,試驗要求樣本總數(shù)不少于100 組。
圖8 對地測速性能比對測量圖(航速約4 kn)Fig.8 Comparisons of velocity measurement charts in bottom mode (Speed is about 4 kn)
圖9 對地測速性能比對測量圖(航速約8 kn)Fig.9 Comparisons of velocity measurement charts in bottom mode (Speed is about 8 kn)
由表3 的底跟蹤對地測速精度檢驗試驗記錄表可知,兩個受檢速度點下的測速性能考核均滿足技術(shù)指標(biāo)(≤0.5%V,其中V 為滑動平均速度)規(guī)定的要求。
表3 測速精度檢驗試驗記錄表Table 3 Test record table for velocity accuracy inspection
SLC300-1 型ADCP 的試驗結(jié)果表明,采用高頻寬帶編碼技術(shù)的多普勒測速精度優(yōu)于0.5% V,且由于寬帶編碼系統(tǒng)相對于傳統(tǒng)的窄帶系統(tǒng)可以獲得更優(yōu)的測速零偏,系統(tǒng)的測速穩(wěn)定性得到了技術(shù)保障。
本文介紹了一種基于FPGA+DSP+MSP430 架構(gòu)平臺的高頻寬帶ADCP信號處理系統(tǒng)的設(shè)計和實現(xiàn)過程,采用數(shù)字解調(diào)方式提高了系統(tǒng)測速精度,并成功應(yīng)用于SLC300-1 型ADCP 設(shè)備中。經(jīng)試驗驗證,系統(tǒng)測速精度高,性能穩(wěn)定可靠。此外,系統(tǒng)還實現(xiàn)了多頻段自容式和走航式的一體化設(shè)計,通用性強(qiáng),有助于縮短新產(chǎn)品開發(fā)周期,降低開發(fā)成本,對于其他高頻海洋設(shè)備的研制也具有一定的參考價值。