崔秀芳,蔡陳玉,李志剛
(上海海洋大學,上海 201306)
我國擁有近300萬平方千米的管轄海域,海洋漁業資源豐富,現有從事漁業捕撈的船舶28萬多艘,從事漁業生產的漁民1000多萬人[1]。海洋環境的多樣性以及周邊國家對海洋漁場管理的差異,使得海洋漁業生產具有一定的危險性,為保障漁民的生命財產安全,加強對漁民生產作業的有效監管,急需建立一套有效的船舶監控機制。國內各大院校及科研院所均對此展開過深入研究并取得較多成果,比較有代表性的有:魏延亮[2]等提出基于GIS技術、GPS導航技術及計算機通信技術來建設海洋漁業應急救援系統,實現海上漁業生產對所有船只、整個海域、作業過程的無縫實時監控和信息化管理;孫蕊[3]等闡釋了中國當前在漁業生產發展中的問題,指出了在漁業現代化進程中應用北斗衛星導航系統的必要性。本文設計出一種基于北斗衛星的漁船監控系統,利用北斗衛星無線電導航業務RNSS模式和無線電測定業務RDSS模式,結合嵌入式技術和計算機技術,實現對漁船作業實時監管以及海上突發事件的緊急救援。
北斗衛星導航系統[4]是我國自主研發、獨立運行的全球衛星導航定位系統。它的定位精度10 m,測速精度0.2 m/s[5],與美國全球定位系統(GPS)、俄羅斯格洛納斯系統(GLONASS)和歐盟伽利略系統(Galileo)相比,我國的北斗衛星導航系統除了提供導航定位和授時服務之外,還具備雙向短報文通信[6]功能,此功能彌補了無線網絡覆蓋不足的問題。
本文設計的基于北斗衛星的漁船監控系統架構如圖1所示。該漁船監控系統由船載設備和岸上監控中心兩大部分組成,其中船載設備主要由主控模塊(核心是ARM處理器)、北斗終端模塊和電源模塊三部分組成;岸上監控中心主要由北斗指揮型終端機和PC機兩部分組成,其中PC機是該監控中心的上位機,通過設計的岸上系統軟件實現對船舶監控的功能。
系統工作過程如下:
1) 船舶定位信息的獲取。船載北斗定位終端模塊采用RNSS無源定位的方式,通過接收4顆不同的北斗二號衛星發出的偽碼擴頻調制導航信號,利用4個偽距方程聯立求解的方法,解算出船舶的精確位置坐標值和北斗系統時間值等信息;
2) 船舶定位數據的傳輸。船舶定位信息的傳輸利用北斗系統短報文通信方式,在北斗衛星通信協議[7]中,每個北斗終端的ID卡是唯一的,所有短報文通信均由北斗衛星地面站接收后轉發。船載北斗終端將包含接收方ID號和船舶定位信息的通訊申請信號加密后通過北斗衛星轉發給北斗衛星地面站,北斗衛星地面站將收到的通訊申請信號脫密和再加密加入北斗衛星出站電文中,岸上監控中心的北斗指揮型終端機作為接收方接收出站信號,解調解密北斗衛星出站電文獲得船舶定位數據;
3) 岸上監控中心船舶定位數據的獲取。北斗指揮機接收船舶定位數據后,通過串行接口傳入岸上監控中心。岸上監控中心將船舶定位數據與PC計算機系統上的電子地圖進行匹配,以便于在獲得漁船的遇險報警信號后及時定位漁船所在位置,準確地進行海上救助,縮短了后期應急保障流程的時間,有效的避免了海上救援地盲目性。
基于北斗衛星的漁船監控系統總體結構設計主要包括船載設備硬件設計和系統軟件設計(船載設備軟件設計和岸上監控中心上位機軟件設計)兩大部分。
該系統的船載設備硬件采用了模塊化設計,具有結構簡單、功能強大、操作便利等優點,其硬件模塊組成框圖如圖2所示,主要由主控模塊、北斗模塊和電源模塊等三部分組成。主控模塊是船載硬件的核心模塊,采用ARM處理器,其主要功能是將北斗定位模塊輸出定位數據進行處理。北斗模塊由北斗定位模塊、北斗報文通信模塊和北斗天線模塊組成,可實現船舶定位、報文通信功能。
主控部分選用基于SamSung S3C2440AL-40(ARM9)內核的TX-2440A,硬件開發板如圖3所示,S3C2440AL-40處理器具有低成本、低功耗、高性能等優點,配備了16 MB的NOR FLASH、128 MB的SDRAM和256 MB的NAND FLASH以滿足Linux操作系統所需要的內存。該處理器模塊是整個硬件系統的核心模塊,可完成定位原始數據的解析、數據通信格式轉換、數據存儲格式轉換、數據顯示格式轉換、衛星通信狀態監測、傳感器工作狀態監測和供電狀態監測等功能,利用看門狗實現電路錯誤的自動復位。北斗模塊與ARM處理器通過RS232接口進行連接,RS232串行口定位數據傳輸采用異步傳輸的方式,同時該處理器還集成了SD卡讀寫控制器、LCD與觸摸屏接口、UART串口、2個USB接口、多個I/O接口和1個可掛接大容量硬盤的IDE接口[8],用戶可通過I/O接口對必要的需求進行擴展。
北斗模塊的定位、報文通信功能分別通過北斗定位模塊和北斗通信模塊實現。其中北斗定位模塊選用和芯星通公司的UM220-III N芯片,該芯片能夠同時支持BD2 B1、GPS L1兩頻點,可實現北斗/GPS單模、雙模靈活定位模式,并且具有體積小(40 mm×30 mm×3.7 mm)、功耗低(350 mW)、集成度強等優點,其定位精度高達3 m,速度精度高達0.1 m/s,該模塊結構框圖如圖4所示。北斗天線接收到的北斗衛星信號經過LNA和SAW進行低噪聲放大和射頻濾波,再經過RF IC進行變頻處理,將收到的北斗射頻信號轉換成模擬中頻信號,然后通過AD轉換成2 Bit或4 Bit的數字信號(其中最高位為符號位),送入Soc集成電路芯片,通過Soc完成對北斗信號的捕獲、 跟蹤、導航電文解調解碼、原始觀測量提取等功能,并可以通過數據總線接口輸出導航電文、原始觀測量,根據原始觀測量北斗定位模塊可計算出船舶的定位信息。
北斗通信模塊采用萊特公司生產的北斗短報文收發一體機,該一體機集成了RDSS天線、射頻收發電路、功放電路、基帶電路等,產品集成度高、功耗低,可實現全天候的北斗短報文通信功能。
本系統的軟件設計主要包括兩部分:船載設備軟件設計和岸上監控中心上位機軟件設計。
系統的船載設備軟件流程圖如圖5所示。首先,要對各個模塊進行初始化,包括北斗模塊的初始化、ARM處理器初始化,兩者均為串口初始化,并配置主控單元的各個端口。在Linux操作環境中,ARM處理器通過serial_init函數對串口進行初始化,命令符$CFGPRT,3,h0,38 400,3,3,設置北斗模塊的波特率為38 400 bps[9]。串口初始化設置后,UM220-III N模塊接收到指令開始工作,將捕獲的船舶定位數據經串口傳輸至ARM處理器模塊,ARM處理器接收該定位數據,并將數據按照北斗報文協議進行處理,編碼封裝完畢的報文內容通過北斗一體機進行報文傳輸,并程序設定定位系統的短報文通信頻率為每分鐘一次。
上位機接收北斗定位數據并嵌套Goolge Map[10],使得船舶位置在地圖上實時顯示。上位機與北斗指揮機連接采用串口通信的連接方式,所以在上位機軟件設計上需調用串口類。為實現目標功能,本設計采用API函數進行串口通信,同時Goolge Map提供了API接口,使得用戶可對其進行二次開發。上位機軟件的工作流程如圖6所示。上位機接收到船載北斗終端發來的數據后,將數據進行存儲,為了提高定位精度,在軟件設計時采用卡爾曼濾波器[11]對接收到的定位數據進行過濾,去除收到的不規則數據,該方法操作簡單、可移植性好。解析數據后調用API函數,程序自動打開地圖,顯示船舶位置等信息。
基于北斗衛星的漁船監控系統為實現對遇險船舶及時搜救的功能,需要確認船載北斗定位終端的定位精度。為了驗證北斗定位數據的精確性,本試驗選用市面上比較成熟的GPS定位儀Garmin 62sc(定位精度高達2.5 m)與北斗定位終端定位信息對比,在校園內選取多個地點測量,同一地點分別用Garmin 62sc和北斗定位終端對該地點的經緯度進行測量,移動北斗定位終端位置直至其經緯度數據與Garmin 62sc顯示的定位數據相同,測得北斗定位終端和Garmin 62sc之間的位置距離,即為誤差距離。多次測量后剔除異常數據,得到部分試驗測試數據,如表1所示,對比可知,北斗定位終端定位數據與Garmin 62sc測得數據誤差較小,故該北斗定位終端可用于漁船監控系統。

表1 試驗測試數據
為驗證上位機軟件運行是否良好,選取上海海洋大學一處湖泊進行試驗。上位機通過調用API函數北斗指揮機之間的消息互通,在監控界面上可觀測當前船舶經緯度信息, 如圖7所示,監控系統可根據船載北斗定位終端傳回的位置信息模擬出船舶航行軌跡,圖中白色線條為船舶的航行軌跡。
該系統的設計過程采用由部分到整體的方法,先對單個模塊的軟硬件進行設計與調試,再將單個模塊組裝進行調試。試驗結果表明:該系統軟硬件工作正常,上位機接收數據正常,船舶位置監控良好,達到系統設計的要求。
本文以ARM處理器為船載硬件設備的主控部分,利用北斗模塊獲取船舶定位信息,通過北斗系統短報文通信功能將船舶定位數據進行傳輸,上位機將接收到的船舶定位數據利用卡爾曼濾波算法過濾處理,并在程序中嵌套Goolge Map,最終定位數據轉換成Goolge Map模式,實現對船舶位置的監控,可以改善目前漁舶遇險搜救不及時的問題。下一階段將嘗試接入GPRS通信模塊,在近海海域使用無線通信的方式,有利于節省北斗系統衛星資源、降低成本。