謝輝 曹亮
(91388部隊45分隊,湛江,524022)
隨著人們對復(fù)雜海洋環(huán)境研究的不斷深入,水聲數(shù)據(jù)的采集也越來越受到人們的關(guān)注,數(shù)據(jù)采集系統(tǒng)的研制正在朝著自動化、小型化、便攜化的方向發(fā)展[1]。傳統(tǒng)的海洋水聲數(shù)據(jù)采集系統(tǒng)功能單一、采集通道少、采集速率低、操作復(fù)雜,同時自動化程度低、人工參與度高,不能滿足復(fù)雜海洋環(huán)境數(shù)據(jù)采集要求。作者結(jié)合工程實際,研制出一套基于LabVIEW和Compact RIO的復(fù)雜海洋水聲數(shù)據(jù)采集系統(tǒng),并將其應(yīng)用到項目建設(shè)實踐中。
系統(tǒng)原理框圖如圖1所示,其主要由信號采集、下位機-嵌入式 CRIO(Compact RIO)平臺和上位機等組成。
圖1 系統(tǒng)原理框圖
系統(tǒng)將水聽器采集到的信號通過信號調(diào)理模塊轉(zhuǎn)換成電壓信號。通過CRIO平臺上的數(shù)據(jù)采集模塊NI 9234進行信號數(shù)據(jù)的采集,同時通過模擬/數(shù)字轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)據(jù)送給機箱背板的FPGA,通過FPGA VI程序?qū)⒉杉降臄?shù)據(jù)先存儲到FIFO中,通過FPGA接口將讀取數(shù)據(jù)送到CRIO-9025的RT控制器進行處理,然后通過網(wǎng)線把水聲數(shù)據(jù)送入網(wǎng)絡(luò)硬盤,實現(xiàn)水聲數(shù)據(jù)的存儲。試驗任務(wù)結(jié)束后,將網(wǎng)絡(luò)硬盤中的數(shù)據(jù)通過網(wǎng)線上傳到上位機中,實現(xiàn)水聲數(shù)據(jù)的處理和數(shù)據(jù)庫管理。
CRIO是美國國家儀器(NI)公司生產(chǎn)的一款堅固耐用、可重新配置的工業(yè)級-嵌入式-系統(tǒng)設(shè)計平臺[2],它精巧而堅固,滿足苛刻的工業(yè)級指標(biāo),特別適用于復(fù)雜工業(yè)環(huán)境中對可靠性有嚴(yán)格要求的場合[3]。其主要參數(shù):工作溫度-40~70℃,抗沖擊高達50 g,抗隨機振動5 grms,抗正弦振動5 g,勞埃德船級社(Lloyd‘s Register)認證,總功耗小于20 W。CRIO集成了實時控制器(RT),可重配置的FPGA(現(xiàn)場可編程門陣列)和工業(yè)級I/O模塊。Compact RIO系統(tǒng)具有小型、便攜的優(yōu)勢,能夠在一個緊湊、堅固的封裝中提供前所未有的控制與采集能力,系統(tǒng)尺寸為 17.96 cm×8.81 cm×8.81 cm,質(zhì)量僅為 1.58 kg。由于采用嵌入式設(shè)計,整個系統(tǒng)具備低功耗的優(yōu)點,能滿足采集系統(tǒng)長期在水下獨立工作的要求,而創(chuàng)新的集成FPGA更使系統(tǒng)具備高速并行的運算處理能力[4]。CRIO結(jié)構(gòu)組成和實施控制器結(jié)構(gòu)如圖2、3所示。
圖2 CRIO結(jié)構(gòu)組成圖
圖3 實時控制器圖
針對復(fù)雜海洋水聲環(huán)境以及必須具備防潮、防腐蝕功能,本系統(tǒng)選取的是CRIO-9025嵌入式控制器:800 MHz處理器,4 GB非易失性存儲介質(zhì),512 MB DDR2內(nèi)存;用于網(wǎng)絡(luò)編程、通信和擴展I/O的雙以太網(wǎng)端口;高速USB主機端口,可連接至 USB閃存及其它存儲設(shè)備;帶有敷型涂層,防滲密封可防潮、防腐蝕等。同時CRIO-9025能夠運行LabVIEW RT0S 或Linux ,以實現(xiàn)數(shù)據(jù)處理過程的信號控制、數(shù)據(jù)記錄和分析,比較適合復(fù)雜海洋水聲數(shù)據(jù)采集系統(tǒng)的開發(fā)。
本系統(tǒng)采用與CRIO-9025相匹配的CRIO-9113可重配置的嵌入式機箱,配置了4個插槽,支持所有CRIO I/O模塊,使用Xilinx Virtex-5 FPGA[5],能自動實現(xiàn)與I/O模塊的通信,同時機箱內(nèi)置高級觸發(fā)及同步功能。
為了滿足多通道不同采集需求,本系統(tǒng)選取NI-9234和NI-9232采集數(shù)據(jù)。NI-9234有4通道同步采樣模擬輸入,24 bits分辨率、102 dB動態(tài)范圍,最高采樣率51.2 kHz,輸入信號范圍±5 V,抗混疊濾波器。同時可以把連接器的接線盒集成到模塊上,降低了對空間的需求和現(xiàn)場布線的成本,結(jié)合FPGA實現(xiàn)自定義采集功能。NI-9232為3通道同步采樣模擬輸入,24 bits分辨率,99 dB動態(tài)范圍,最高采樣率102.4 kHz,輸入信號范圍±30 V,抗混疊濾波器,軟件可選交/直流耦合、IEPE信號調(diào)理。
水聲傳感器選擇的是TC4032水聽器,具有寬頻、高靈敏度、低噪音、頻率響應(yīng)平坦的特性。高靈敏度及聲學(xué)特征使 TC4032適合聲學(xué)測量及探測,即使是在信號非常弱的情況下。網(wǎng)絡(luò)硬盤是BUFFALO網(wǎng)絡(luò)存儲LS-X1.0TL,最大存儲容量1.0 TB,支持TCP/IP協(xié)議。
CRIO開發(fā)模式有兩種:掃描與 FPGA。前者簡單方便,只需編寫部署在CRIO實時控制器端的RT.vi 程序,就可在程序中直接調(diào)用預(yù)先開發(fā)好的I/O掃描接口,實現(xiàn)數(shù)據(jù)采集。但該模式可支持的最大掃描速率僅為1 kHz。本測試裝置中采用的是FPGA接口模式,通過 LabVIEW RealTime中的FPGA接口VI來訪問I/O模塊,F(xiàn)PGA的特定數(shù)字化功能支持高達40 MHz的計數(shù)器,可為用戶提供更多自定義的可能,實現(xiàn)數(shù)據(jù)的高速采集(大于1kHz)、最大的數(shù)據(jù)吞吐率及訪問的靈活性,提高I/O模塊的工作性能[6]。CRIO下位機的程序包括FPGA和RT。
FPGA程序主要用來實現(xiàn)對水聲數(shù)據(jù)的采集,然后把采集到的數(shù)據(jù)傳遞給控制器。FPGA程序和RT程序運行速度不同,因此需要一種機制實現(xiàn)數(shù)據(jù)的傳遞。FPGA 與 RT 之間數(shù)據(jù)交換的方式有中斷、輪詢及DMA FIFO[7]。前兩者只適合數(shù)據(jù)采集速度較慢的情況,高速采集時采取輪詢和中斷將會導(dǎo)致數(shù)據(jù)丟失及降低采集速度。因此,本系統(tǒng)采用的是DMA FIFO機制,首先FPGA上的水聲數(shù)據(jù)依次寫入FIFO,然后FIFO送來的數(shù)據(jù)存放在控制器CRIO-9025緩存,最后RT再從緩存中讀取定量的數(shù)據(jù),實現(xiàn)了數(shù)據(jù)從FPGA到控制器傳輸
本系統(tǒng)開發(fā) FPGA程序時采用的是平鋪式順序結(jié)構(gòu),從左至右依次執(zhí)行。首先把采集卡狀態(tài)初始化為停止?fàn)顟B(tài),避免本FPGA程序運行時還有采集卡在進行其它集任務(wù),然后設(shè)置采集卡的采樣率,9234采樣率設(shè)置為 51.2 kHz,9232采樣率設(shè)置為 102.4 kHz,把所有的采集卡再次初始化為啟動狀態(tài)。因為采集卡采樣率的不同,本系統(tǒng)在FPGA程序中新建了FIFO1和 FIFO2,并將二者傳遞方向設(shè)為 Target to Host-DMA。FPGA程序通過FIFO Write控件和While循環(huán)實現(xiàn)不同采樣率的采集卡采集到的數(shù)據(jù)同時寫入FIFO1和FIFO2。FPGA程序如圖4所示。
RT主要用來實現(xiàn)對水聲數(shù)據(jù)的讀取和上傳到網(wǎng)絡(luò)硬盤,實現(xiàn)水聲數(shù)據(jù)的存儲。水聲數(shù)據(jù)采集系統(tǒng)通常需要在水下持續(xù)工作很長時間,控制器自帶的內(nèi)存不能滿足要求,系統(tǒng)通過網(wǎng)線將網(wǎng)絡(luò)硬盤連接到實時控制器上,因此RT程序首先對網(wǎng)絡(luò)硬盤進行的相關(guān)設(shè)置,用Read / Write Control控件設(shè)置采樣頻率,由Invoke Node控件來配置FIFO和讀取其中的數(shù)據(jù)。在讀取數(shù)據(jù)的同時,用Read / Write Control控件來判斷 FIFO的工作狀態(tài)。為了防止CPU超負荷影響數(shù)據(jù)的傳輸,RT中用CPU Loads控件來監(jiān)測主機CPU的運行狀態(tài),程序中與FPGA通信及 FIFO設(shè)置模塊、數(shù)據(jù)采集主體模塊如圖 5和6所示。
圖4 FPGA.vi程序
圖5 RT程序中與FPGA通信及FIFO設(shè)置模塊
圖6 RT程序中數(shù)據(jù)采集主體模塊
系統(tǒng)工作時是獨立布放在水下的,沒有與上位機連接,因此需要把應(yīng)用程序配置在控制器的非易失性存儲器上,當(dāng)目標(biāo)控制器啟動時,應(yīng)用程序自動啟動。首先在本LabVIEW工程瀏覽器中的實時目標(biāo)下創(chuàng)建一個生成規(guī)范,右擊生成規(guī)范。選擇實時應(yīng)用程序后,會彈出一個對話框,設(shè)置對話框上的信息和源文件選項。信息選項用來修改規(guī)范名稱和計算機目錄來匹配系統(tǒng)命名和文件格式。源文件選項用來設(shè)置啟動VI并包含附加VI或支持文件。系統(tǒng)從工程文件中選擇RT VI,將其設(shè)置成啟動VI,完成后點擊生成鍵。最后,在生成規(guī)范下面,右擊實時應(yīng)用程序,選擇“設(shè)置成啟動”,保存整個工程,實現(xiàn)自啟動。
為了驗證系統(tǒng)的準(zhǔn)確性和穩(wěn)定性等功能,利用信號源發(fā)射頻率為10 kHz、幅值1 V,脈沖間隔5 ms,10個脈沖的正弦信號。通過系統(tǒng)采集,數(shù)據(jù)存儲在網(wǎng)絡(luò)硬盤中。采集到的信號和存儲結(jié)果如圖 7和8所示,其中,圖7橫坐標(biāo)時間單位為s,縱坐標(biāo)幅值單位為V。經(jīng)過多次試驗證明,本系統(tǒng)能在復(fù)雜海洋環(huán)境長時間不間斷工作。
圖7 采集信號顯示界面
圖8 數(shù)據(jù)存儲顯示界面
相對于傳統(tǒng)的海洋水聲數(shù)據(jù)采集系統(tǒng),本系統(tǒng)體積小、便于攜帶、功耗低、適用于復(fù)雜海洋環(huán)境,能夠?qū)崟r高質(zhì)量的完成自啟動、數(shù)據(jù)采集和大容量存儲。理論上研究表明該系統(tǒng)是復(fù)雜海洋環(huán)境數(shù)據(jù)采集系統(tǒng)的首選,同時,實踐上證明了系統(tǒng)的實用價值,多次試驗結(jié)果表明,該系統(tǒng)可靠性好、穩(wěn)定度高。但由于目前該系統(tǒng)是獨立置于復(fù)雜海洋中,不能實現(xiàn)水聲數(shù)據(jù)的實時觀測處理,無法實時判斷試驗航次的有效性,所以下一步將研究實時觀測數(shù)據(jù)的復(fù)雜海洋水聲數(shù)據(jù)采集系統(tǒng)。