高守勇,謝 輝,楊 靜,歸朋飛
(水聲對(duì)抗國(guó)防科技重點(diǎn)實(shí)驗(yàn)室,廣東湛江 524022)
在海洋水聲研究中,海洋環(huán)境噪聲、船舶航行噪聲的長(zhǎng)期監(jiān)測(cè)具有重要意義。在海上開(kāi)展水聲監(jiān)測(cè)時(shí),采用水面浮標(biāo)的方式可方便通過(guò)電臺(tái)或衛(wèi)星通信進(jìn)行遙控作業(yè)[1-3],但存在容易受漁船作業(yè)拖帶漂移、影響船舶航行等問(wèn)題。另外浮標(biāo)隨海浪起伏會(huì)導(dǎo)致水聽(tīng)器抖動(dòng),從而影響記錄的水聲信號(hào)質(zhì)量。采用潛標(biāo)方式監(jiān)測(cè)噪聲具有隱蔽性好、受海浪影響小等優(yōu)點(diǎn)。水聲潛標(biāo)使用時(shí)一般帶有聲學(xué)釋放器,布設(shè)入水后通過(guò)錨系裝置系留在預(yù)定的深度進(jìn)行水聲監(jiān)測(cè)。任務(wù)結(jié)束后,通過(guò)工作船發(fā)送水聲遙控指令使釋放器動(dòng)作,拋棄錨系裝置,潛標(biāo)上浮至海面,由工作船進(jìn)行打撈回收[4-6]。水聲潛標(biāo)需要在電池供電條件下長(zhǎng)時(shí)間待機(jī)、完全自主工作,按預(yù)設(shè)的時(shí)間節(jié)點(diǎn)或根據(jù)監(jiān)測(cè)到的水聽(tīng)器信號(hào)特征啟動(dòng)記錄。如果水聲潛標(biāo)不能可靠工作,海上測(cè)試數(shù)周后打撈出水發(fā)現(xiàn)數(shù)據(jù)記錄不完整,將造成任務(wù)完成不全和試驗(yàn)資源浪費(fèi)。因此,值守控制模塊作為水聲潛標(biāo)的控制核心,其工作的穩(wěn)定性、低功耗性能對(duì)水聲潛標(biāo)的海上使用有重要意義。
STM32 嵌入式系統(tǒng)具有代碼密度高、可嵌套中斷、功耗低等特點(diǎn),采用庫(kù)函數(shù)開(kāi)發(fā)方式,可在保證系統(tǒng)穩(wěn)定性的同時(shí)大大縮短程序開(kāi)發(fā)周期,在控制領(lǐng)域有著廣泛的應(yīng)用[7-10]。
水聲潛標(biāo)總體由水聽(tīng)器、水密儀器艙組成,儀器艙中電子設(shè)備包含值守控制模塊、電池組、信號(hào)調(diào)理、采集存儲(chǔ)等單元,水聽(tīng)器通過(guò)水密電纜連接到儀器艙,如圖1 所示。值守控制模塊平時(shí)處于低功耗狀態(tài),可通過(guò)預(yù)編程值守和自動(dòng)監(jiān)測(cè)記錄兩種模式啟動(dòng)系統(tǒng),進(jìn)入采集記錄狀態(tài)。在預(yù)編程值守模式下,水聽(tīng)器、信號(hào)調(diào)理單元、采集存儲(chǔ)單元均斷電,水聲潛標(biāo)處于最低功耗值守狀態(tài)。在自動(dòng)監(jiān)測(cè)記錄模式下,需要增加對(duì)水聽(tīng)器前置放大器的供電。
圖1 水聲潛標(biāo)組成框圖
值守控制模塊的功能包括預(yù)編程值守、自動(dòng)監(jiān)測(cè)記錄、工作參數(shù)下載和存儲(chǔ)、RTC 對(duì)時(shí)、響應(yīng)上位機(jī)查詢(xún)等,其主要功能是預(yù)編程值守和自動(dòng)監(jiān)測(cè)記錄。
預(yù)編程值守功能:通過(guò)上位機(jī)軟件設(shè)置水聲潛標(biāo)的任務(wù)時(shí)間表,下載并存儲(chǔ)到值守控制模塊的FLASH 中,控制水聲潛標(biāo)按設(shè)定的時(shí)間表進(jìn)行工作。該功能主要用于按計(jì)劃實(shí)施的船舶噪聲監(jiān)測(cè)、環(huán)境噪聲監(jiān)測(cè)和水聲傳播測(cè)量等任務(wù)。
自動(dòng)監(jiān)測(cè)記錄功能:通過(guò)監(jiān)測(cè)水聽(tīng)器信號(hào),對(duì)接收到的水聲信號(hào)進(jìn)行濾波、平滑,先進(jìn)行長(zhǎng)時(shí)間平均,獲得海洋背景噪聲,再根據(jù)水聲信號(hào)的變化趨勢(shì)和強(qiáng)度,在有船舶接近時(shí),啟動(dòng)水聲潛標(biāo)進(jìn)入采集記錄狀態(tài)。該功能主要用于非合作的船舶航行噪聲監(jiān)測(cè)。
STM32F103RCT6 器件是基于高性能超低功耗微控制器Arm?Cortex?-M4 的32 位RISC 內(nèi)核,工作頻率80 MHz,嵌入了高速存儲(chǔ)器(256 kB 的閃存,64 kB 的SRAM)、增強(qiáng)型I/O 和外圍設(shè)備,提供一個(gè)快速的12 位ADC、兩個(gè)比較器、一個(gè)運(yùn)算放大器、兩個(gè)DAC 通道、一個(gè)內(nèi)部基準(zhǔn)電壓緩沖器、一個(gè)低功耗RTC、一個(gè)通用32 位定時(shí)器、4 個(gè)通用16 位定時(shí)器和兩個(gè)16 位低功耗定時(shí)器[11];支持模擬獨(dú)立電源輸入ADC、DAC、OPAMP 和比較器,VBAT 允許備份RTC 和備份寄存器;具有FlexPowerControl 的超低功耗,在VBAT 模式下電流為200 nA,可為RTC 和32×32 位備份寄存器供電,RTC 待機(jī)模式下電流為280 nA。
STM32 核心模塊原理如圖2 所示,該模塊包含STM32F103RCT6芯片、8MHz主晶振、RTC晶振、FLASH芯片W25Q64 及工作指示燈[12]。
圖2 STM32核心模塊原理圖
核心模塊實(shí)物如圖3所示,尺寸為30 mm×34 mm,通過(guò)2 mm 間距排插J2 安裝在母板上。
圖3 核心模塊實(shí)物圖
水聽(tīng)器接收到的信號(hào)較微弱,為了實(shí)現(xiàn)對(duì)水聲信號(hào)的有效監(jiān)測(cè),設(shè)計(jì)了信號(hào)監(jiān)測(cè)調(diào)理電路,原理如圖4所示。采用一片低功耗運(yùn)放OPA1662 設(shè)計(jì)兩級(jí)放大濾波[13],一級(jí)為10 Hz 高通濾波器,增益為2,二級(jí)為10 kHz 低通濾波器,增益為5。信號(hào)調(diào)理電路總增益為10,前端水聽(tīng)器靈敏度約為-170 dB,經(jīng)實(shí)際測(cè)試,水聽(tīng)器信號(hào)通過(guò)信號(hào)監(jiān)測(cè)調(diào)理電路放大、濾波后,可有效監(jiān)測(cè)海洋環(huán)境噪聲和船舶噪聲。濾波器采用Sallen-key 拓?fù)浣Y(jié)構(gòu),具有輸入阻抗高、增益容易配置的特點(diǎn)。
圖4 信號(hào)監(jiān)測(cè)調(diào)理電路原理圖
水聲潛標(biāo)內(nèi)有3 組電池,分別為給前置放大和信號(hào)調(diào)理供電的+12 V 模擬電源、-12 V 模擬電源、給采集存儲(chǔ)單元供電的+12 V 數(shù)字主電源。值守控制模塊對(duì)潛標(biāo)工作狀態(tài)的控制,主要通過(guò)開(kāi)啟和關(guān)閉這3 組電源來(lái)實(shí)現(xiàn),輸出控制電路原理如圖5 所示。對(duì)于模擬電源的控制,采用兩個(gè)PHOTO-MOS 繼電器AQZ102 實(shí)現(xiàn)控制模塊和電源輸出的光電隔離[14],持續(xù)工作電流為4 A。對(duì)數(shù)字主電源的控制采用一片PHOTO-MOS 繼電器AQY211 隔離后,驅(qū)動(dòng)大功率MOS 管AO4407,其導(dǎo)通電阻RDS(ON)為13 mΩ,持續(xù)工作電流為7 A,可滿(mǎn)足對(duì)采集存儲(chǔ)單元5 A 供電控制的要求。3 組電源的控制都通過(guò)PHOTO-MOS 繼電器進(jìn)行隔離,可有效降低控制模塊對(duì)潛標(biāo)模擬電路的干擾。
圖5 輸出控制電路原理圖
輸出控制電路實(shí)物如圖6 所示,作為核心模塊的母板,可通過(guò)2 mm 間距微小排插與核心模塊組合安裝。模塊含開(kāi)關(guān)和輸出插座總體尺寸為30 mm×50 mm,整體結(jié)構(gòu)緊湊小巧,可方便安裝到空間受限的水聲潛標(biāo)中。
圖6 輸出控制電路實(shí)物
STM32F103RCT6 在系統(tǒng)復(fù)位后,運(yùn)行在RUN 模式下,定時(shí)喚醒功能可以在低功耗模式下實(shí)現(xiàn)。芯片有5 種低功耗模式:低功耗運(yùn)行模式、睡眠模式、低功耗睡眠模式、停止模式和待機(jī)模式。模塊工作于預(yù)編程值守模式時(shí),CPU 處于睡眠模式,芯片處于低功耗狀態(tài),僅內(nèi)部RTC 在運(yùn)行。若要進(jìn)入睡眠模式,需要執(zhí)行WFI(Wait For Interrupt)指令,任何外圍設(shè)備的中斷都能喚醒CPU[15]。定時(shí)喚醒的軟件流程如圖7 所示,RTC 時(shí)鐘每秒中斷一次,喚醒控制模塊,在中斷處理程序中將當(dāng)前時(shí)間與存儲(chǔ)的工作時(shí)間表進(jìn)行比較,如果處于工作狀態(tài)就開(kāi)啟各單元的電源,啟動(dòng)水聲潛標(biāo)進(jìn)入測(cè)量記錄狀態(tài),否則關(guān)閉電源,停止記錄,進(jìn)入睡眠模式。
圖7 定時(shí)喚醒流程圖
模塊工作于自動(dòng)監(jiān)測(cè)記錄模式時(shí),需要對(duì)水聽(tīng)器接收到的水聲信號(hào)進(jìn)行連續(xù)監(jiān)測(cè)和分析,軟件流程如圖8 所示。在系統(tǒng)配置階段,根據(jù)預(yù)編程軟件下載存儲(chǔ)的數(shù)據(jù)表,設(shè)置進(jìn)入自動(dòng)監(jiān)測(cè)記錄模式的時(shí)間、信號(hào)門(mén)限等工作參數(shù)。進(jìn)入自動(dòng)監(jiān)測(cè)記錄模式后,模塊采用定時(shí)中斷方式對(duì)水聲信號(hào)進(jìn)行AD采集、數(shù)據(jù)平滑和趨勢(shì)分析。AD 采樣率為20 kHz,采樣后轉(zhuǎn)換為RMS 值,平滑平均時(shí)間為1 s,趨勢(shì)判別條件為信號(hào)能量連續(xù)15 s 上升,啟動(dòng)門(mén)限可根據(jù)預(yù)編程參數(shù)設(shè)置為2~6 dB。當(dāng)滿(mǎn)足趨勢(shì)判別和啟動(dòng)門(mén)限條件后,啟動(dòng)系統(tǒng)進(jìn)入記錄狀態(tài),持續(xù)記錄10 min 或20 min(可設(shè)置)后關(guān)閉記錄。完成記錄后,若還處于自動(dòng)監(jiān)測(cè)記錄模式,再繼續(xù)進(jìn)行水聽(tīng)器信號(hào)監(jiān)測(cè)。
圖8 信號(hào)監(jiān)測(cè)及分析控制流程
預(yù)編程控制軟件包含兩部分,一是運(yùn)行于值守模塊的下位機(jī)軟件,二是運(yùn)行于計(jì)算機(jī)中的上位機(jī)軟件,兩者通過(guò)RS232 進(jìn)行通信[16],波特率為9 600。上位機(jī)軟件需與預(yù)編程模塊進(jìn)行通信,實(shí)現(xiàn)下載任務(wù)列表到模塊,對(duì)模塊進(jìn)行對(duì)時(shí),查詢(xún)預(yù)編程的任務(wù)表和RTC 時(shí)間等功能。設(shè)計(jì)了命令格式,每條指令的起始碼為$,結(jié)束碼為#,各項(xiàng)功能采用的命令格式如表1 所示。
表1 預(yù)編程命令格式
任務(wù)表格式:@序號(hào)/模式/開(kāi)始時(shí)間/結(jié)束時(shí)間&序號(hào)/模式/開(kāi)始時(shí)間/結(jié)束時(shí)間&序號(hào)/模式/開(kāi)始時(shí)間/結(jié)束時(shí)間……。
上位機(jī)軟件采用VC 編程,VC 編程有較好的用戶(hù)操作界面。軟件界面分為串口設(shè)置、時(shí)間同步、任務(wù)設(shè)置、任務(wù)查詢(xún)4 個(gè)功能區(qū),如圖9 所示。軟件可對(duì)串口參數(shù)進(jìn)行設(shè)置,對(duì)下位機(jī)RTC 時(shí)間進(jìn)行同步和查詢(xún),在任務(wù)設(shè)置欄可設(shè)置每次采集記錄任務(wù)的開(kāi)始時(shí)間和結(jié)束時(shí)間、工作模式。任務(wù)欄中添加、修改、刪除按鈕可對(duì)工作時(shí)間表進(jìn)行操作,擦除按鈕用于對(duì)下位機(jī)中的參數(shù)表FLASH 空間進(jìn)行擦除,下載按鈕用于將工作時(shí)間表下載到值守控制模塊中進(jìn)行存儲(chǔ)。任務(wù)查詢(xún)欄可對(duì)模塊中存儲(chǔ)的任務(wù)表進(jìn)行查詢(xún),方便用戶(hù)進(jìn)行任務(wù)表的核對(duì)確認(rèn)。
圖9 上位機(jī)預(yù)編程軟件界面
在實(shí)驗(yàn)室中,水聲潛標(biāo)處于開(kāi)蓋狀態(tài),通過(guò)專(zhuān)用的通信電纜連接水聲潛標(biāo)通信接口和計(jì)算機(jī)串口,啟動(dòng)值守模塊電源,運(yùn)行上位機(jī)軟件,設(shè)置5 組任務(wù)時(shí)間表,每次記錄10 min,工作模式為A(定時(shí)模式),下載到下位機(jī)中,如圖9 所示。觀(guān)察水聲潛標(biāo)信號(hào)調(diào)理、采集記錄單元的工作指示燈,兩個(gè)單元均能在各組任務(wù)開(kāi)始時(shí)啟動(dòng)工作,在任務(wù)結(jié)束時(shí)停止工作,若記錄的數(shù)據(jù)文件時(shí)間與任務(wù)時(shí)間表一致,說(shuō)明值守控制模塊的預(yù)編程定時(shí)記錄功能正常。
2018 年9 月,在實(shí)驗(yàn)室對(duì)預(yù)編程值守功能進(jìn)行了長(zhǎng)時(shí)間考核測(cè)試。水聲潛標(biāo)處于正常密封狀態(tài),設(shè)置30 天時(shí)間內(nèi)90 組采集任務(wù)表,通過(guò)水密通信電纜連接水密儀器艙,下載到值守控制模塊中運(yùn)行。30 天后打開(kāi)水聲潛標(biāo)的儀器艙,檢查記錄的數(shù)據(jù)文件,核對(duì)任務(wù)表的時(shí)間與文件記錄的時(shí)間,若兩者一致,表明值守控制模塊長(zhǎng)時(shí)間工作正常。
2018 年11 月8 日,在海南三亞附近海域?qū)λ暆摌?biāo)自動(dòng)監(jiān)測(cè)記錄功能進(jìn)行了測(cè)試。試驗(yàn)前設(shè)置潛標(biāo)工作于自動(dòng)監(jiān)測(cè)記錄模式,啟動(dòng)門(mén)限為3 dB。潛標(biāo)布放入水后,安排一艘漁船從潛標(biāo)附近,距離潛標(biāo)100 m 左右多次航行通過(guò),記錄漁船通過(guò)潛標(biāo)附近的時(shí)間,試驗(yàn)結(jié)束后回收潛標(biāo),查看潛標(biāo)數(shù)據(jù)記錄情況,判斷模塊是否能在船舶通過(guò)時(shí)自動(dòng)啟動(dòng)潛標(biāo)進(jìn)行采集記錄。漁船通過(guò)時(shí)間和潛標(biāo)開(kāi)機(jī)記錄時(shí)間如表2 所示。
表2 自動(dòng)監(jiān)測(cè)記錄測(cè)試記錄表
根據(jù)記錄的漁船通過(guò)時(shí)間和潛標(biāo)開(kāi)機(jī)時(shí)間對(duì)比可知,漁船每次從水聲潛標(biāo)附近航行通過(guò)時(shí),水聲潛標(biāo)都能根據(jù)噪聲變化情況自動(dòng)啟動(dòng)采集記錄,說(shuō)明值守控制模塊的自動(dòng)監(jiān)測(cè)記錄功能正常。
在實(shí)驗(yàn)室進(jìn)行預(yù)編程定時(shí)功能和自動(dòng)監(jiān)測(cè)功能測(cè)試的同時(shí),對(duì)值守控制模塊的工作電流進(jìn)行測(cè)量,定時(shí)值班、自動(dòng)監(jiān)測(cè)、任務(wù)運(yùn)行3 種工作狀態(tài)的電流測(cè)試結(jié)果如表3 所示。
表3 值守控制模塊功耗測(cè)試記錄表
測(cè)試表明,值守控制模塊在預(yù)編程值守狀態(tài)下的工作電流為0.4 mA,自動(dòng)監(jiān)測(cè)記錄狀態(tài)電流為6.7 mA,滿(mǎn)足水聲潛標(biāo)在電池供電條件下水下自主值守30天的要求。如在核心模塊中增加一級(jí)電源管理功能,在設(shè)置完工作參數(shù)、延時(shí)一段時(shí)間后,將RS232芯片的供電斷開(kāi),可進(jìn)一步降低功耗,將定時(shí)值班電流控制在0.1 mA 以?xún)?nèi)。
采用低功耗的STM32F103RCT6 設(shè)計(jì)了水聲潛標(biāo)值守控制模塊,硬件包括核心模塊、信號(hào)監(jiān)測(cè)電路和輸出控制電路,軟件主要包括定時(shí)喚醒、信號(hào)監(jiān)測(cè)和預(yù)編程參數(shù)設(shè)置部分。模塊整體實(shí)物尺寸為30 mm×50 mm,可方便嵌入到空間受限的水下設(shè)備中。通過(guò)實(shí)驗(yàn)室功能、功耗測(cè)試和海上自動(dòng)監(jiān)測(cè)記錄功能測(cè)試,得出值守控制模塊預(yù)編程值守電流為0.4 mA,自動(dòng)監(jiān)測(cè)電流為6.7 mA,值守30 天,在船舶通過(guò)附近時(shí)可自動(dòng)啟動(dòng)采集記錄,可在實(shí)際的水聲潛標(biāo)中低功耗、長(zhǎng)時(shí)間可靠運(yùn)行。