張慶國
(昆明船舶設備研究試驗中心,云南 昆明650051)
水下航行體/平臺的中近程通信多為水聲、光電或電磁等方式[1-2],但超遠程通信常依賴衛(wèi)星定位導航系統(tǒng),如我國自主研發(fā)的北斗系統(tǒng)。北斗衛(wèi)星導航系統(tǒng)在水下航行體/平臺和多種水下武器裝備上應用極為廣泛,發(fā)揮重要作用,產生顯著的經(jīng)濟和社會效應[3]。在實際海上使用過程中,如航行體在浮起點規(guī)定時間內未能通過北斗衛(wèi)星導航系統(tǒng)進行有效定位和通信,則可能會造成航行體在海上丟失或損傷,也無法對其后續(xù)工作流程進行遠程操控。因此,在某型水下航行體中,內部北斗工作狀態(tài)直接影響其性能指標的實現(xiàn),甚至成為該水下航行體主要功能及戰(zhàn)技指標是否實現(xiàn)的關鍵點。
航行體在水下航行時,用來衛(wèi)星導航通信的天線將被海水淹沒,無線信號被屏蔽。因此,通常只在航行體浮出水面或利用水面浮標等方式短時間內完成信息傳遞[4-5]。即使北斗天線采用折疊或伸縮結構,在一定程度上可解決天線產生的航行阻力與無線通信效果之間的矛盾問題,但天線在水面伸出高度依然較低,距離水面較近??梢?,水下航行體利用北斗衛(wèi)星進行通信定位時,天線基本處于水面附近,天線隨著水面浪涌擺動姿態(tài)很難準確控制[6]。同時,航行體北斗接收信號還受水面反射雜波等眾多不利因素干擾[7]。另外,常規(guī)水下航行體內部空間、功耗均有一定限制,特別是航行體內部采用電池供電方案時,需著重考慮水下航行體的航程、航速等總體要求,使得內部電子系統(tǒng)應為小尺寸、低功耗,不能影響總體性能指標的實現(xiàn)。
北斗一代通過衛(wèi)星無線電測定方式來確定用戶位置,需要用戶進行定位申請,通過地面站的計算獲得定位信息。北斗二代采用衛(wèi)星無線電測定和衛(wèi)星無線電導航相結合的集成體制完成用戶導航定位,屬于被動定位范疇。北斗三代相對于一代和二代而言,屬于全球組網(wǎng),具備更高的精度和可靠性。近年來,國內外在北斗狀態(tài)實時監(jiān)控方面發(fā)展較為迅速,可對當前衛(wèi)星數(shù)量、位置精度強弱度(Position Dilution Of Precision,PDOP)等數(shù)值進行實時監(jiān)視,較好解決了北斗接收端實時狀態(tài)故障問題,大大提高了北斗系統(tǒng)應用可靠性。但某型水下航行體屬于首型,基于北斗衛(wèi)星系統(tǒng)的水下航行體批量交裝產品,基于北斗一代設計。受當時技術條件,以及當前交裝現(xiàn)狀等具體條件限制,之前基于北斗的定位通信設計存在一定的不足,導致某型水下航行體存在偶發(fā)性北斗故障情況發(fā)生。考慮某型水下航行體生產交付及實際使用情況,不更改航行體內部組部件,在北斗內部新增實時監(jiān)控系統(tǒng)成為當前最佳解決方案。
綜上所述,某型水下航行體的內部北斗工作狀態(tài)對其安全性和可靠性影響極大,甚至對其功能和性能造成較大影響。因此,有必要在某型航行體內對北斗工作狀態(tài)進行實時監(jiān)測,并在適當情況下進行介入性操控,以提高該水下航行體的實航可靠性和安全性。
北斗衛(wèi)星導航系統(tǒng)是我國自主研發(fā)的,可以覆蓋我國及周邊部分地區(qū)的全天候衛(wèi)星導航系統(tǒng)。其基本定位原理是根據(jù)全球衛(wèi)星導航系統(tǒng)(Global Navigation Satellite System,GNSS)接收機接收到同步衛(wèi)星發(fā)送信息之后,進行時間對標。然后解算衛(wèi)星偽距并利用空間幾何距離交會,實現(xiàn)對接收機的定位[8]。以典型一代系統(tǒng)為例,主要由導航衛(wèi)星、中心控制、標校和北斗用戶終端幾個部分組成,具備定位、授時和短報文衛(wèi)星通信功能[9]?;竟ぷ髟砣鐖D1所示。
圖1 北斗衛(wèi)星導航系統(tǒng)基本工作原理示意圖
如圖1所示,“北斗一代”的導航衛(wèi)星由位于赤道上空的兩顆地球靜止衛(wèi)星(東經(jīng)80°和140°)、一顆在軌備份衛(wèi)星(東經(jīng)110.5°)組成,它們的軌道高度約為20 000 km[10]。“北斗一號”的覆蓋范圍是北緯5°—55°、東經(jīng)70°—140°之間的區(qū)域,最寬處在北緯35°左右。“北斗一代”導航系統(tǒng)的定位精度約為水平精度100 m(1σ),設立標校站之后為20 m(類似差分狀態(tài))。工作頻率分別為1 610 MHz~1 626.5 MHz(L頻段,上行鏈路)和2 483.5 MHz~2 500 MHz(S頻段,下行鏈路)。其基本工作過程是,北斗用戶終端通過北斗導航衛(wèi)星向地面中心控制提出定位申請或通信申請,中心控制接收到服務申請后進行相應的處理,并將處理結果通過北斗導航衛(wèi)星發(fā)送給北斗用戶終端,從而實現(xiàn)相應的通信、定位功能。關于北斗通信方面,不同等級終端用戶擁有不同的頻率和通信帶寬,通??蓪崿F(xiàn)每分鐘120字的通訊功能。為了更好理解該監(jiān)控方法和實施環(huán)境,給出某型水下航行體內部北斗結構基本框圖,詳見圖2所示。
圖2 某型水下航行體內部北斗接收部分結構框圖
如圖2所示,北斗狀態(tài)監(jiān)控程序對應接口較多,按照功能可分為供電和通信兩種。供電接口主要為水下航行體提供穩(wěn)壓直流供電電源,通信接口主要為控制器局域網(wǎng)絡(Controller Area Network,CAN)、串行通信接口(如RS-232、RS485等)等[11-12]。其中自檢接口及狀態(tài)監(jiān)控接口為本文方法中預留的查詢及調試接口,如試后讀取內部記錄信息等。由于某航行體屬于早期定型且批量交裝產品,通常情況下其組成結構不能及時進行大幅更改。同時,考慮該型水下航行體的后續(xù)生產使用及維護保養(yǎng)等相關方面,采用在航行體北斗組件現(xiàn)有內部空間內增加實時監(jiān)控部分(航行體內組部件組成及結構均不發(fā)生變化),對實航使用過程中發(fā)現(xiàn)的偶發(fā)性北斗故障問題進行解決。因此,需要本文涉及的北斗狀態(tài)實時監(jiān)控系統(tǒng)具備小尺寸和低功耗功能,以滿足不更改航行體組部件結構,在北斗組件內部安裝及供電等需求。結合某型水下航行體北斗組件內部空間,這里設計新增北斗狀態(tài)監(jiān)控電路集成安裝在北斗組件盒內部,航行體接口及組成結構不發(fā)送變化。北斗組件內部新增部分安裝結構如圖3所示。
如圖3所示,某型水下航行體北斗組件為獨立的金屬屏蔽盒結構,新增北斗狀態(tài)實時監(jiān)控系統(tǒng)電路集成安裝在上述金屬屏蔽盒內,具體尺寸為95 mm×63 mm×6.5 mm。圖3中的北斗狀態(tài)實時監(jiān)控電路板利用原有4個安裝孔進行固定安裝,內部A區(qū)域和B區(qū)域最大高度實際只有13 mm和7 mm,否則無法順利安裝在現(xiàn)有北斗金屬屏蔽盒內。如采用常規(guī)隔離電源模塊和繼電器方式構建,其整個新增電路高度高達20 mm及以上,無法滿足上述尺寸安裝要求。因此,該硬件設計采用電源隔離芯片加負載開關的方式,控制整個新增電路高度為6.5 mm,以滿足實際安裝尺寸要求。另外,某型水下航行體為電池供電方式,預留的供電余量有限,新增電路必須盡可能地滿足低功耗,降低對水下航行體電池消耗。新增北斗狀態(tài)實時監(jiān)控電路部分摒棄常規(guī)大規(guī)模處理器外加通信接口芯片的結構方式,采用微控制處理器(Micro Controller Unit,MCU)加軟件模擬外設接口方式,將該新增控制電路功耗控制在20 mW以內(實測19.2 mW),滿足航行體北斗組件供電預留余量1%(50 mW)的具體要求。
圖3 航行體北斗內部新增狀態(tài)監(jiān)控部分安裝結構圖
硬件設計中,某型水下航行體北斗狀態(tài)監(jiān)控軟件運行平臺為可國產替代的某型號嵌入式處理器,該處理器除了具備常規(guī)小尺寸、低功耗等特點外,內部集成多種常規(guī)通信接口。
某型水下航行體北斗狀態(tài)監(jiān)控方法與程序主要功能是,獨立對航行體內部北斗狀態(tài)進行實時連續(xù)監(jiān)測,并依據(jù)相關判斷準則進行數(shù)據(jù)解算和預測,當判斷北斗工作狀態(tài)出現(xiàn)異常情況時,臨時性介入操控。如單獨對總線上的北斗進行重置復位、指令初始化,以及單次通信或定位申請控制等操作。
為了進一步簡化硬件結構尺寸和功耗,在程序設計中除了常規(guī)進行選擇性休眠外,采用軟件方式進行部分通信監(jiān)視接口的模擬實現(xiàn)。由于受尺寸和功耗等條件限制,該監(jiān)控程序的硬件平臺只有一個RS-232硬件串口,為了更可靠對北斗狀態(tài)進行實時監(jiān)控,還需多個RS-232串口對其他部分狀態(tài)接口進行并行監(jiān)測。因此,在軟件設計中采用軟件模擬通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter,UART)方法實現(xiàn)常規(guī)通信功能[13-14],即利用常規(guī)處理器的輸入與輸出接口(Input/Output,I/O)構建一個軟件模擬的UART串口(如RS-232協(xié)議通信口)。該方法可在節(jié)省硬件資源和處理器帶寬的前提下,幾乎完全模擬硬件UART的功能。
該程序主要負責對某型水下航行體北斗狀態(tài)數(shù)據(jù)的實時解算,并對自身硬件平臺工作參數(shù)的實時監(jiān)測,綜合上述測量信息進行北斗狀態(tài)的綜合評價,當滿足判斷條件時,對北斗處理器進行干預處理。軟件主要接口見圖4所示。
圖4 程控框架結構圖
如圖4所示,虛線框內為監(jiān)控軟件對應部分。對應監(jiān)控功能,該軟件主要接口有三部分:(1)內部工作狀態(tài)測量接口,如內部工作電壓、電流、通信狀態(tài),以及內部記錄存儲等;(2)航行體總線接口,如CAN、供電等;(3)北斗處理器接口,如CAN、RS-232,以及及時操控等。軟件主要處理步驟如下。
(1)監(jiān)控軟件初始化。含嵌入式處理器內部串口、軟件UART、AD采樣、外部中斷等。
(2)對北斗卡信息進行實時解算與存儲。按照約定加密算法進行解算當前北斗卡信息進行解算,并存儲后計算獲得相應北斗處理器控制信息包。
(3)規(guī)定動作執(zhí)行。如硬件負載開關默認打開,發(fā)送北斗處理器初始化指令信息等。
(4)實時監(jiān)控總線及接口信息,進行實時解算和判斷。根據(jù)總線信息對當前點位的北斗衛(wèi)星狀態(tài)進行預先解算,并對北斗處理器的原始輸出接口進行定時監(jiān)測。
(5)對北斗處理器進行實時介入性操控。如北斗處理器長時(如10 s以上)輸出信息不正常,則對北斗處理器進行操控。
(6)試后查詢及調試等功能。如試后可按約定加密指令,實現(xiàn)單獨調試或內部Flash記錄信息讀取等。
基本程序流程如圖5所示,t和T分別為與北斗工作先關的時間參數(shù),通常以秒為單位。其中Flash(Flash EEPROM Memory,F(xiàn)lash)檢查及標記,是為了通過校驗的方式,確保每次工作前明確獲得用于內部信息記錄的Flash狀態(tài),防止偶發(fā)性Flash內部個別“壞點”造成記錄數(shù)據(jù)錯誤或失效[15]。記錄信息1主要是當前時間,北斗工作電壓、電流,以及衛(wèi)星定位經(jīng)緯度、波束等信息。記錄信息2主要是當前時間,北斗處理器瞬間工作電流、當前接收點衛(wèi)星波束,以及介入性操控次數(shù)等信息。
圖5 程控軟件流程圖
硬件UART通過連接處理并行對北斗處理器的串口發(fā)送及接收端進行監(jiān)測和控制,軟件UART連線并聯(lián)在北斗處理器的串口發(fā)送端上進行當前并行串口數(shù)據(jù)監(jiān)測,避免并行發(fā)送數(shù)據(jù)造成數(shù)據(jù)紊亂,導致故障報錯。軟件模擬UART主要是為了降低硬件復雜度,同時降低整體功耗,利用通用I/O口模擬串口對航行體北斗串口進行監(jiān)測。
軟件UART設計需要在硬件占用和速度/效率之間權衡,使用較多硬件的設計可能消耗較小的處理器帶寬并允許較高的位速率。常規(guī)設計中多采用定時器方式,如可將16位硬件定時器分為8位用于UART發(fā)送,8位用于UART接收。雖然定時器帶有自動重載功能,可減少軟件開銷并降低或消除中斷延遲問題,但軟件控制需考慮隨機的中斷延遲帶來的累加問題。結合硬件平臺實際情況進行綜合考慮,采用內部可編程計數(shù)器陣列(Programmable Counter Array,PCA)來實現(xiàn)軟件UART。PCA包含一個專用的16位計數(shù)器/定時器和5個16位的捕捉/比較模塊。每個模塊都可以被設置為,在PCA計數(shù)器與相對應的比較模塊的內容一致時觸發(fā)中斷。由于PCA計數(shù)器不會停止運行,比較模塊可在每個位時間點進行更新,以精確產生下一個位時間。另外,PCA還提供一個在起始位檢測中很有用的捕捉功能,便于多中斷的程序設計與實現(xiàn)。因此,采用PCA方式進行軟件UART模擬,可以避免多次中斷延遲累加的問題,且便于嵌入式程序實現(xiàn)。軟件UART設計主要流程如圖6所示。
如圖6所示,UART的接收和發(fā)送均采用中斷方式,需要注意的是接收中斷對時間要求較高,即對時間延遲比較敏感。因此,需軟件UART的接收中斷需要較高優(yōu)先級。
圖6 軟件UART通信流程圖
當軟件UART被初始化時PCA模塊被配置為下降沿捕捉方式,如果在接收引腳檢測到下降沿,則會產生一個中斷。由于模塊工作在捕捉方式,PCA計數(shù)器的內容被裝入到相應寄存器。此時,該值與中斷響應延遲無關。通過強制PCA模塊產生中斷來啟動一次發(fā)送,如在發(fā)送引腳設置為低電平以產生起始條件。此時讀取PCA計數(shù)器的值,并將該值加上一個位時間后裝入到模塊捕捉寄存器。經(jīng)過9次移位后,數(shù)據(jù)字節(jié)與停止位被發(fā)送。最后,發(fā)送結束標志被置位,發(fā)送忙標志被清除,發(fā)送狀態(tài)變量被復位。
由于某型航行體內電磁環(huán)境較為復雜,內部北斗狀態(tài)異常與航行體總體電磁環(huán)境密切相關。而對整個北斗組件重新設計,牽扯到航行體組部件級更改,手續(xù)復雜且時間效率較低,不能滿足某型水下航行體實際使用需求。因此,在更改最小范圍框架下,新增實時監(jiān)控系統(tǒng)部分稱為了最佳解決方案。但必須重視電磁環(huán)境干擾設計,因此需對新增監(jiān)控電路進行相應環(huán)境測試。
該環(huán)境測試主要依據(jù)國家標準《系統(tǒng)與軟件工程系統(tǒng)與軟件質量要求和評價(SQuaRE)第51部分:就緒可用軟件產品(RUSP)的質量要求和測試細則》(GB/T25000.51—2016),對軟件功能性和可靠性程度進行第三方測試,測試通過后。利用標準測試設備對運行該監(jiān)控軟件的系統(tǒng)進行試驗測試,具體為環(huán)境和電磁兼容性測試。
環(huán)境試驗測試主要依據(jù)國內某型號水下航行體的專用環(huán)境試驗要求,進行綜合環(huán)境試驗測試。供電采用標準穩(wěn)壓電源,接口均為通用標準通信接口,并模擬北斗工作狀態(tài)數(shù)據(jù),定時發(fā)送至本監(jiān)控系統(tǒng)。測試項目及結果見表1所示。
表1 環(huán)境試驗測試結果
電磁兼容性測試主要依據(jù)《GJB151B—2013軍用設備和分系統(tǒng)電磁發(fā)射和敏感度要求與測量》相關要求[16],對該系統(tǒng)核心部分(含硬件及軟件)檢測了CE101、CE102和CS101、RS103測試項目,主要對其電磁兼容性進行試驗測試,主要測試結果見表2所示。
表2 電磁兼容性測試結果
新增北斗狀態(tài)實時監(jiān)控系統(tǒng)主要是為解決某型水下航行體在實航過程中,偶發(fā)性的北斗故障問題。為測試新增北斗狀態(tài)實時監(jiān)控電路是否能實時進行航行體內部北斗狀態(tài)監(jiān)測,并在規(guī)定時間內完成相應控制等功能,采用逐級測試方式進行功能驗證。(1)單板測試。利用外設標準串口(如計算機串口)模擬北斗組件通信接口,利用標準外設串口連接新增監(jiān)控系統(tǒng)電路,人為控制外設串口長時停發(fā)北斗信息,或發(fā)送錯誤北斗信息方式,觀察新增監(jiān)控系統(tǒng)電路是否識別并對負載開關進行控制,同時按時序通過串口進行北斗組件的初始化等相關信息重置;(2)聯(lián)合測試。將新增監(jiān)控系統(tǒng)電路接入航行體北斗組件,人為關閉或打開航行體北斗天線屏蔽罩的方式模擬航行體北斗狀態(tài)故障情況,觀察新增監(jiān)控系統(tǒng)電路監(jiān)控動作是否滿足設計要求;(3)實航測試。搭載某型水下航行體,在國內某深水湖進行實航測試,利用以往多發(fā)故障水域進行北斗狀態(tài)實航測試。試后讀取監(jiān)控系統(tǒng)內部數(shù)據(jù)進行控制過程是否有效判別。具體試驗測試結果見表3所示。
如表3所示,其中單板和聯(lián)合兩種方式測試均為人工模擬故障情況,觀察監(jiān)控系統(tǒng)電路是否進行了準確的識別與控制,通過多次模擬測試,證明該新增實時監(jiān)控系統(tǒng)能夠在北斗組件通信斷開或北斗解算數(shù)據(jù)錯誤時進行重新復位及初始設置等操控,在規(guī)定時間內(2 min)完成重新置位及解算,防止航行體北斗組件故障狀態(tài)無法自行重置導致長時無法定位通信現(xiàn)象發(fā)生。由于某型水下航行體實航北斗故障屬于偶發(fā)性現(xiàn)象,很難固定復現(xiàn),本次實航5次過程中,只有1次真正復現(xiàn),通過試后讀取新增北斗狀態(tài)實時監(jiān)控系統(tǒng)內部記錄數(shù)據(jù),證明在實航過程中,航行體北斗組件存在長時數(shù)據(jù)解算錯誤導致通信異常情況發(fā)生,而監(jiān)控電路準確識別,并在規(guī)定時間內完成北斗組件重置操作,與實航中觀察某浮起點位通信時間長達10 min,12 min后通信及定位正常現(xiàn)象一致。
表3 功能試驗測試表
某型水下航行體受早期技術條件限制,基于北斗一代的衛(wèi)星定位及通信部分設計存在一定不足,并未設計有相應的北斗狀態(tài)實時監(jiān)控部分,導致實航中偶發(fā)北斗故障問題?;谀承退潞叫畜w交裝現(xiàn)狀,在不更改某型水下航行體組部件結構基礎上,提出一種在航行體北斗組件內增加實時監(jiān)控系統(tǒng)的方式,在規(guī)定時間內進行相應操控,以滿足當前該水下航行體實航使用需求。
該北斗狀態(tài)監(jiān)控方法在航行體內部空間、功耗等受限條件下,摒棄常規(guī)的隔離電源和繼電器等大尺寸元件構建方案,采用微型芯片加負載開關等方法實現(xiàn)硬件接口隔離,以滿足實際的安裝、功耗,以及電磁兼容性等要求。在程序設計中,提出一種基于軟件模擬UART方式對通信總線數(shù)據(jù)進行并行監(jiān)測,并利用多個UART進行串口并行數(shù)據(jù)流監(jiān)控方法,避免并行串口監(jiān)測過程兩個發(fā)送端同時發(fā)送數(shù)據(jù)出現(xiàn)故障問題。充分考慮航行體內部電磁環(huán)境實際情況,結合硬件平臺進行環(huán)境試驗和電磁兼容性試驗,試驗結果表明該方法及程序設計滿足實際使用要求??蓾M足航行體內部結構及電子環(huán)境等要求,在航行體內部復雜工況下實現(xiàn)內部北斗狀態(tài)的實時監(jiān)測與及時操控等功能。另外,在國內某深水湖完成該型水下航行體的實航驗證。
該方法與程序結合北斗處理器輸出數(shù)據(jù)進行實時處理解算,根據(jù)當前點位的北斗衛(wèi)星狀態(tài)進行分析判斷,從而在航行體北斗工作異常時,進行相應操控,進一步提高某型水下航行體北斗工作可靠性,從而提高實航安全性,具有較高的工程實用價值。