張慶國
(昆明船舶設備研究試驗中心,云南昆明 650051)
水下航行體/平臺的中近程通信多為水聲、光電或電磁等方式[1-2],但遠程通信常依賴衛星定位導航系統,如我國自主研發的北斗衛星導航系統。北斗衛星導航系統在水下航行體/平臺以及多種水下武器裝備上應用極為廣泛,發揮著重要作用,產生了顯著的經濟和社會效應[3]。在海上實際使用過程中,如航行體在浮起點規定時間內未能通過北斗衛星導航系統進行有效定位和通信,則可能會造成航行體在海上丟失或損傷,亦無法對其后續工作流程進行遠程操控。因此,水下航行體的內部北斗工作狀態直接影響其性能指標的實現,甚至成為該水下航行體主要功能及戰技指標是否實現的關鍵點。
航行體在水下航行時,用于衛星導航通信的天線將被海水淹沒,無線信號被屏蔽。因此,通常只在航行體浮出水面或利用水面浮標等方式短時間內完成信息傳遞[4-5]。即使北斗天線采用折疊或伸縮結構,在一定程度上可解決天線產生的航行阻力與無線通信效果之間的矛盾問題,但天線在水面伸出高度依然較低,距離水面較近。可見,水下航行體利用北斗衛星進行通信定位時,天線基本位于水面附近,天線隨著水面浪涌擺動姿態很難準確控制[6]。同時,航行體北斗接收信號還受水面反射雜波等眾多不利因素干擾[7]。另外,常規水下航行體內部空間、功耗均有一定限制,特別是航行體內部采用電池供電方案時,需著重考慮水下航行體的航程、航速等總體要求,即其內部電子系統的功耗應為小尺寸、低功耗,不能影響總體性能指標的實現。
綜上所述,水下航行體的內部北斗工作狀態對其安全性和可靠性影響極大,甚至對其功能和性能造成較大影響。北斗衛星導航方式在水下航行體式應用環境下,很難在規定時間內實現實時、精確且及時可靠的通信和定位。因此,有必要在航行體內對北斗工作狀態進行實時監測,并在適當情況下進行介入性操控,以提高水下航行體的實航可靠性和安全性。
北斗衛星導航系統是我國自主研發,可以覆蓋我國及周邊部分地區的全天候衛星導航系統。其基本定位原理是根據全球衛星導航系統(Global Navigation Satellite System,GNSS)接收機接收的同步衛星發送的衛星信息進行時間對標。然后解算衛星偽距并利用空間幾何距離交會,實現對接收機的定位[8-9]。
“北斗一代”導航衛星由位于赤道上空的兩顆地球靜止衛星(東經80°和140°)、一顆在軌備份衛星(東經110.5°)組成,衛星軌道高度約為2 萬千米[10],覆蓋范圍是北緯5°~55°、東經70°~140°之間的區域,最寬處在北緯35°左右,基本工作原理如圖1 所示。

圖1 北斗衛星導航系統工作原理示意圖
“北斗一代”基本工作過程是,北斗用戶終端通過北斗導航衛星向地面控制中心提出定位申請或通信申請,地面控制中心接收到服務申請后進行相應的處理,并將處理結果通過北斗導航衛星發送給北斗用戶終端,從而實現相應的通信、定位功能。為了更好理解該方法和程序設計環境,給出某型水下航行體內部北斗結構框圖,如圖2 所示。

圖2 某水下航行體內部北斗結構框圖
如圖2 所示,北斗狀態監控方法與程序對應接口較多,按照功能可分為供電接口和通信接口兩種。供電接口主要為水下航行體提供穩壓直流供電電源;通信接口主要為控制器局域網絡(Controller Area Network,CAN)、串口(如RS-232、RS-485 等)等[11-12]。其中,自檢接口及狀態監控接口為文中方法預留的查詢及調試接口,如試后讀取內部記錄信息等。
程序需獨立對航行體內部北斗狀態進行實時連續監測,并依據相關判斷準則進行數據解算和預測。當判斷北斗工作狀態出現異常情況時,進行臨時性介入操控,如單獨對總線上的北斗進行重置復位、指令初始化以及單次通信或定位申請控制等操作。
為了進一步簡化硬件結構尺寸和功耗,在程序設計中除了常規進行選擇性休眠外,采用軟件方式進行部分通信監視接口的模擬實現。具體采用軟件模擬通用異步收發傳輸器(Universal Asynchronous Receiver and Transmitter,UART)方法實現常規通信功能[13-14],該方法可在節省硬件資源和處理器帶寬的前提下,模擬硬件UART 的功能。
程序主要負責對某型水下航行體北斗狀態數據進行實時解算,并對自身硬件平臺工作參數進行實時監測,綜合上述測量信息進行北斗狀態的綜合評價。當滿足判斷條件時,對北斗處理器進行干預處理。程序組成與接口如圖3 所示。

圖3 程序組成與接口示意圖
如圖3 所示,虛線框內為監控軟件對應部分。該軟件主要接口有三種,分別對應不同的監控功能:1)內部工作狀態測量接口,如內部工作電壓、電流、通信狀態以及內部記錄存儲等;2)航行體總線接口,如CAN、供電等;3)北斗處理器接口,如CAN、RS-232等。程序主要處理步驟如下:
1)監控軟件初始化,含嵌入式處理器內部串口、軟件UART、AD 采樣、外部中斷等;
2)對北斗卡信息進行實時解算與存儲。按照約定解密算法進行信息包拆解,獲得北斗卡當前接收到的正確信息包,信息包實時存儲后,經相應計算獲得北斗處理器控制所需信息包;
3)規定動作執行,如硬件負載開關默認打開,發送北斗處理器初始化指令信息等;
4)實時監控總線及接口信息,進行實時解算和判斷。根據總線信息對當前點位的北斗衛星狀態進行預先解算,并對北斗處理器的原始輸出接口進行定時監測;
5)對北斗處理器進行實時介入性操控,如北斗處理器長時間(如10 s 以上)輸出信息不正常,則對北斗處理器進行操控;
6)試后查詢及調試等功能,如試后可按約定加密指令,實現單獨調試或內部Flash記錄信息讀取等。
監控程序軟件流程如圖4 所示。

圖4 監控程序軟件流程圖
如圖4 所示,t和T分別為與北斗工作相關的時間參數,通常以秒為單位。其中,Flash 內部區塊檢查及標記是為了通過校驗的方式,確保每次工作前明確獲得用于內部信息記錄的Flash 狀態,防止偶發性Flash 內部個別“壞點”造成記錄數據錯誤或失效[15]。記錄信息1 主要是當前時間、北斗工作電壓、電流以及衛星定位經緯度、波束等信息。記錄信息2 主要是當前時間、北斗處理器瞬間工作電流、當前接收點衛星波束以及介入性操控次數等信息。
硬件UART 通過連接處理并行對北斗處理器的串口發送及接收端進行監測和控制,軟件UART 并聯在北斗處理器的串口發送端上,進行當前并行串口數據監測,避免并行發送數據造成數據紊亂,導致故障報錯。軟件模擬UART 主要是為了降低硬件復雜度,同時降低整體功耗,利用通用I/O 口模擬串口對航行體北斗串口進行監測。
軟件UART 設計需要在硬件占用和速度/效率之間權衡,使用較多硬件的設計可能消耗較小的處理器帶寬并允許較高的位速率。常規設計中多采用定時器方式,雖然定時器帶有自動重載功能,可減少軟件開銷并降低或消除中斷延遲問題,但軟件控制需考慮隨機的中斷延遲帶來的累加問題。結合硬件平臺實際情況進行綜合考慮,文中主要利用嵌入式硬件內部可編程計數器陣列(Programmable Counter Array,PCA)來實現軟件UART。軟件模擬UART 主要軟件流程如圖5 所示。
如圖5 所示,UART 的接收和發送均采用中斷方式,需要注意的是,接收中斷對時間要求較高,即對時間延遲比較敏感。因此,軟件UART 的接收中斷需要較高優先級。

圖5 軟件模擬UART軟件流程圖
依據國家標準GB/T25000.51-2016《系統與軟件工程系統與軟件質量要求和評價(SQuaRE)第51 部分:就緒可用軟件產品(RUSP)的質量要求和測試細則》,對軟件功能性和可靠性程度進行第三方測試。測試通過后,利用標準測試設備對運行該監控軟件的系統進行試驗測試,具體為環境試驗和電磁兼容性試驗。
環境試驗測試主要依據國內某型號水下航行體的專用環境試驗要求,進行綜合環境試驗測試。供電采用標準穩壓電源,接口均為通用標準通信接口,模擬航行體北斗工作狀態數據,定時發送至該監控系統。具體環境試驗項目涉及低溫、溫度變化、濕熱、沖擊以及振動等試驗。振動及沖擊測試結果如圖6 所示。

圖6 振動及沖擊試驗測試數據曲線圖
如圖6 所示,沖擊試驗波形為半正弦波,峰值加速度為20g,脈沖持續時間為8~10 ms,沖擊方向為垂直軸正向,沖擊次數為10 次。振動試驗帶寬為10~500 Hz,功率譜密度為0.015 g2/Hz(10Hz)、0.015g2/Hz(40 Hz)、0.000 15g2/Hz(500 Hz),總均方根加速度為1.04g,3 個正交軸向,每軸向振動30 min。
綜合環境試驗測試項目相關結果如表1 所示。

表1 環境試驗測試項目相關結果
相關電磁兼容性測試主要依據《GJB151B-2013軍用設備和分系統電磁發射和敏感度要求與測量》相關要求[16],對該方法相關核心部分(含硬件及軟件)檢測了CE101(25 Hz~10 kHz 電源線傳導發射)、CE102(10 kHz~10 MHz 電源線傳導發射)和CS101(25 Hz~150 kHz電源線傳導敏感度)、RS103(10 kHz~1 GHz電場輻射敏感度)測試項目,測試結果如圖7 和表2 所示。

表2 電磁兼容性測試表

圖7 電磁環境試驗測試數據曲線圖
采用搭載方式,利用某型水下航行體在國內某深水湖進行了實航測試。實航測試時,航行體設定航路中水面浮起點(即北斗衛星通信及定位點)為3~5 個,在每個點位,北斗定位及通信完成規定動作后繼續下潛航行。
實航試驗中發現,在某點位時出現短時航行體北斗狀態異常后又恢復正常,即在規定時間范圍內仍較長時間(分鐘級別)未能及時定位,等待一段時間后收到相應信息。回收水下航行體后,通過試后讀取安裝在航行體內本監控方法電路內部記錄數據可知,在上述點位航行體北斗狀態出現異常,使用該方法介入操控,并重新實現該點位的航行體北斗規定動作與功能。
由此可見,該方法可在水下航行體規定時間內進行連續解算和判別,一旦航行體內部出現北斗異常,及時進行總線級介入性操控,解決某型水下航行體北斗偶發故障問題,進一步提高航行體北斗通信及定位有效率和可靠性。
某型水下航行體北斗狀態監控方法在航行體內部空間、功耗等受限條件下,摒棄常規的隔離電源和繼電器等大尺寸元件構建方案,采用微型芯片加負載開關等方法實現硬件接口隔離,以滿足實際的安裝、功耗以及電磁兼容性等要求。
在程序設計中,提出一種基于軟件模擬UART方式對通信總線數據進行并行監測,并利用多個UART 進行串口并行數據流監控的方法,避免并行串口監測過程兩個發送端同時發送數據出現故障的問題。結合硬件平臺進行環境試驗和電磁兼容性試驗,試驗結果表明,該方法及程序設計滿足實際使用要求,并滿足航行體內部結構及電子環境等要求,在航行體內部復雜工況下,實現內部北斗狀態的實時監測與及時操控等功能。另外,在國內某深水湖完成該型水下航行體的實航驗證。
該方法與程序結合北斗處理器輸出數據進行實時處理解算,根據當前點位的北斗衛星狀態進行分析判斷,從而在航行體北斗工作異常時進行相應操控,進一步提高水下航行體北斗工作的可靠性,從而提高水下航行體實航安全性,具有較高的工程實用價值。