王艷軍,王曉峰
(上海海事大學信息工程學院,上海 201306)
目前,海上船舶動態監控的主要手段有雷達、船舶自動識別系統(Automatic Identification System,AIS)技術和移動網絡監控等.但是,由于移動通信和無線電通信的覆蓋范圍有一定的局限性,只能在內河和近海區域發揮作用,超出覆蓋范圍便無法完成通信;在船舶的遠洋航行中只能通過衛星通信的手段來實現,運行費用昂貴.雖然國內外將AIS系統結合到VTS中已經成為當前船舶動態監控的主要方式,但由于存在通信距離的限制問題,尤其是在遠洋航行過程中,AIS無法完成信息的接收和發送,不能完成對船舶的監控.
中國的北斗衛星導航系統分為2代:第1代是“北斗一號”衛星導航系統,覆蓋范圍僅限中國和東亞部分地區;目前,該系統已經完成布局并開始運營,在測繪、電信、水利、交通、漁業、勘探、森林防火和國家安全等諸多領域逐步發揮重要作用;第2代是“北斗二號”衛星導航系統,計劃由35顆衛星組成,服務范圍為全球區域,目前正處于加速組網階段.北斗衛星導航系統可在服務區域內隨時確定用戶所在的地理經緯度信息,并提供雙向短報文通信和精密授時服務,可成功解決偏遠地區數據通信的難題.北斗衛星導航系統將定位與通信功能相結合的特點,尤其適用于船舶的遠洋航行監控,可在很大程度上彌補其他監控手段所存在的盲區.在北斗問世之前,盡管將AIS,雷達,GPS和移動網絡等組合方式運用到船舶動態監控中,卻始終不能改善監控距離的限制.
本文將AIS與北斗相結合,利用Atmel公司的AVR Atmega128單片機作為核心處理器,將AIS信息和北斗信息接收處理后,利用北斗的雙向短報文通信功能[1],發送本船信息到監控中心,即使在遠洋航行中,也能夠很好地監控船舶航行.利用AIS提供船舶近距離監控所需要的船舶動靜態信息,在監控近海和內河的同時完成對船舶的遠洋航行監控,實現對船舶的動態監控,更好地安排航行計劃以保障航行安全.
AVR(Advanced RISC)是美國 Atmel公司生產的增強RISC內載 Flash的高性能8位單片機.[2-3]Atmega128是基于AVR結構的8位低功耗CMOS微處理器,其數據吞吐率為1 MIPS/MHz,可緩解系統功耗與處理速度之間的矛盾.另外,還有128 K字節的系統內可編程 Flash(具有邊寫邊讀的能力,即RWW),4 K字節的 EEPROM,4 K字節的 SRAM,53個通用I/O口線,32個通用工作寄存器,實時時鐘RTC,4個定時器/計數器 (T/C),2個 USART,面向字節的兩線接口TWI,8通道10位ADC(具有可選的可編程增益),具有片內振蕩器的可編程看門狗定時器,SPI串行端口,以及IEEE 1149.1規范兼容的JTAG測試接口(此接口同時還可以用于片上調試).片內ISP Flash可以通過SPI接口和通用編程器引導程序多次編程.引導程序可以使用任何接口下載應用程序到應用 Flash存儲器.在更新應用Flash存儲器時引導Flash區的程序繼續運行,實現RWW操作.8位RISC CPU與系統內可編程的Flash集成在一個芯片內,大部分單片機系統所需的外圍芯片集成到單一芯片中,為許多嵌入式控制應用提供靈活而低成本的方案.
AIS是一種新型的助航系統,它在結合GPS導航定位技術的基礎上,以SOTDMA(自組織時分多址)方式,在海上VHF頻段自動連續發送靜態數據(如IMO號、呼號、MMSI號、船名、船籍、船長、船寬、船舶類型等)、動態數據(如船位、船速、航向、航行狀態等)、航行相關信息(如船舶吃水、危險貨物類型、目的港等)和安全信息,同時也自動接收周圍船舶發出的這些信息,并與海岸基站進行信息交換.航行于水域的船舶只要配備AIS設備便可用其獲取VHF無線電距離范圍內其他船舶的各類信息,并將相關信息發送到海岸基站,通過基站再發送到監控中心,從而完成對船舶的實時監控.但是,AIS設備的缺點是:
(1)只有配備AIS設備的船舶才可以完成自動識別,它是一種被動探測設備.
(2)在遠洋航行中,如果船舶之間距離較遠,超出AIS設備所規定的最遠通信距離,本船則處于丟失狀態,無法完成與外界的通信.
北斗衛星導航試驗系統為我國“九五”列項,其工程代號取名為“北斗一號”,其方案于1983年提出.“北斗一號”衛星導航系統采用雙星定位技術,需要地面中心站的合作才能完成用戶的空間定位,其運行效率和系統安全方面存在許多不足.
“北斗二號”衛星導航系統[4]空間段由5顆靜止軌道衛星(GEO)和30顆非靜止軌道(中軌(MEO)及傾斜地球同步圓軌道(IGSO))衛星組成,能保證用戶在其服務區內任何時間均可收到4顆以上衛星的信號.目前,GPS可提供全球性、全天候、連續、高精度的定位和授時功能,是目前規模最大、性能最好的導航定位系統,在水上和陸上交通都得到廣泛應用,尤其是遠洋航行的船舶大多使用此系統實現定位和導航功能.隨著中國北斗衛星導航系統的逐步發展,加上其將定位與通信結合的功能,相對于GPS的巨大優勢表現在:
(1)北斗衛星導航系統由我國自主研發,擁有自主知識產權,安全可靠且保密性強.
(2)在GPS不能使用的情況下,北斗衛星導航系統能保證可見衛星的數量,提高監控的可靠性,具有重要的軍事意義.
(3)北斗終端具備定位和通信功能,非常適用于船舶的大范圍動態監控.
針對以上問題,提出一種將AIS與北斗終端組合在船舶動態監控中應用的方法.AIS負責通過串口發送船舶的相關信息給單片機,北斗終端獲得船舶定位信息后通過串口將其發送到單片機,單片機完成AIS信息和北斗信息的解碼再將船舶的相關信息編碼通過串口發送給北斗終端,北斗終端在發送本船信息的同時,將AIS收到的他船信息發給上位機.考慮到Atmega128串口不能滿足需求,所以通過單片機I/O口模擬實現信息的發送.由上位機完成解碼存儲及顯示功能.系統組成見圖1.

圖1 系統組成
AIS與信息處理器和顯示器的接口均采用IEC 61162標準[5],AIS設備發送的數據流格式和協議符合IEC 61162的相關規定.語句的基本格式為
$aaccc,c---c*hh<CR> <LF>
“$”或“!”是語句的開始標志,以“$”開始的語句是IEC 61162標準中原有的語句;以“!”開始的語句是新增的語句,它主要用于傳輸數據量較大的數據或上下文未知的數據.
“aaccc”表示地址域,用于指明語句的類型,前兩個字符用于標志.
“,”為數據域分隔符,起始于除了地址域和校驗和域的開頭,如果它的后面為空,說明此數據域沒有數據,為空域.空域是指沒有字符傳遞、長度為零的域,ASCII碼中的NULL字符不能在空域中使用.
“c---c”為數據塊部分,其長度不確定,包含所有需要傳輸的數據,語句中數據域長度是不確定的,但大多數情況下是變長的.當某些域中定義的數據量不可靠或不能提供時,該域為空域.
“*”為校驗和分隔符,該字符后面為語句的結束部分,其中包括校驗和域和回車斷行符.
“hh”為校驗和域:校驗和域是語句的最后一個語句塊,用于對地址域和數據域的字符進行校驗.校驗和是指從開始字符到分隔符“*”間的所有字符進行異或而得到的十六進制值.將這個十六進制值轉變成兩個ASCII字符進行傳送,每個字符表示十六進制值中4 byte,高位在前.
“<CR><LF>”為語句結束標志.
如VDO語句,它用來傳輸AIS設備單元在VHF數據鏈路所傳輸的本船信息.語句格式如下:
! …VDO,x,x,x,a,s…s,x*hh<CR> <LF>1 2 3 4 5 6 7
其中:1為傳送電文所需語句總數,1~9;2為語句號數,1~9;3為序列電文識別碼;4為AIS頻道;5為封裝的ITU-RM.1371無線電電文,即數據部分;6為比特填充數,0~5;7為數據校驗和.
本系統AIS部分使用的是航運電子技術實驗室提供的SAAB R4 AIS設備.根據上海海事局洋山VTS 用戶指南,洋山深水港為北緯 30°30′~30°50′,東經 121°40′~ 122°10′區域,其通信協議采用RS232,RS485/422標準.當用戶接口采用RS485通信協議時,必須先將信號經過RS485/RS232轉換器轉換后再送入Atmega128串口,由Atmega128完成信號的采集和處理.
AIS提供本船信息的同時,還提供通信范圍內全部船舶的相關信息,實時獲取周圍船舶的信息.考慮到處理他船信息會占用Atmega128的大量處理器資源和時間,本文中將他船的相關信息存儲后發送給上位機,由上位機完成他船信息的處理并顯示.
北斗一代語句格式是二進制格式和文本格式混用的,容易造成解碼時ASCII碼和數字串的混淆;而且北斗一代語句格式是保密的,不利于國際推廣,從而限制北斗在國際上的應用發展.北斗二代語句遵循統一的數據傳輸協議[6],根據IEC 61162協議規范,一條完整的衛星語句始于“”,終于“<CR><LF>(回車換行)”.中國北斗衛星導航系統語句以BD開頭,后面代表信息內容的標志與IEC 61162標準中NMEA協議格式統一起來.其具體格式:
$BD***,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>……*hh<CR> <LF>
其中:“$”為語句起始標志;“BD”為定位系統的標志,即系統 ID;“***”為標志語句內容,例如“GGA”為定位信息,“VTG”為地面速度信息等;“<1>~<9>”為數據字段,英文字母或者是數字;“,”為域分隔符;“*”為校驗和識別符,后面兩位數為校驗和.
如標志北斗定位信息的GGA語句,包含當前時間、經緯度、正在使用的衛星數量等信息,其語句格式如下:
$BDGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
其中:<1>為 UTC時間,hhmmss(時,分,秒);<2>為緯度ddmm.mmmm(度分格式,前面0也輸出);<3>為緯度N(北緯)或S(南緯);<4>為經度dddmm.mmmm(度分格式,前面0也輸出);<5>為經度E(東經)或W(西經);<6>為接收機狀態(0表示未定義/PPS輸出無效;1表示定位/PPS輸出有效;6表示位置錯誤/PPS輸出無效;8表示當前正在定位,狀態正常/PPS輸出無效;9表示衛星數目不夠,等待接收狀況變為良好/PPS輸出無效);<7>為正在使用的衛星數量(00~12);<8>為HDOP水平精度因子(0.5~99.9);<9>為天線相對于平均海平面的高度,m;<10>為地球橢球面相對于大地水準面的高度;<11>為差分時間(最近一次接收到差分信號開始的秒數,如果不是差分定位則為空);<12>為差分站ID號0000~1023(前導位數不足則補0,如果不是差分定位將為空).
關于北斗終端的通信格式語句,由于涉及到通信雙方以及保密性等方面的要求,參照北斗一代語句的格式,電文內容使用ASCII編碼,為了避免與二進制信息混淆,電文內容中不使用二進制作為編碼內容,涉及到漢字的部分使用GBK(漢字國標擴展碼)編碼[7].定位系統標志 BD,語句內容是 BCA(Bidirectional Communications)故建議通信語句如下:
$BDBCA,發送方ID,收方ID,保密要求,回執標志,電文內容,*hh<CR><LF>
由于目前北斗二代相關設備的限制,文中通過以上定義的數據格式,將北斗信息語句通過模擬終端發送給Atmega128.Atmega128通過串口采集北斗信息,將處理、編碼后的語句發送給北斗模擬終端.
單片機將AIS信息解碼后,將AIS通過GPS天線獲得的與本船相關的定位信息與北斗終端得到的定位信息進行融合,處理本船的相關信息(船名、國籍、MMSI號、經度、緯度、轉向率、真航向、對地航向、航速等信息)后將信息編碼(電文內容最長不超過北斗短消息通信容量規定的200 byte)發送給北斗終端,由北斗終端將本船的信息發送出去.
北斗終端的主要功能是向監控中心發送本船信息,同時接收監控中心發送的信息.稱連續兩次入站之間的時間間隔為服務頻度,其單位為s,服務頻度的設置受北斗終端自身的用戶等級限制(一般為5 s~10 min),即終端所設置的服務頻度不能超過其用戶等級所規定的范圍.AIS動態信息的報告時間間隔見表1.

表1 信息播發時間
由表1可以看出,當船舶的速度為14~23 kn并轉向或者速度大于23 kn時,信息的發送頻度將超出北斗終端的服務頻度.此時,考慮到船舶速度快以及北斗終端硬件上存在的服務頻度的局限性,只能采用北斗服務頻度的最小值完成信息的發送,本船信息報告間隔見表1右半部分.
在船舶的動態監控中,AIS接收機的功能是獲取船舶的相關信息,并接收其他船舶以及海岸基站的信息,同時將本船信息發送出去;Atmega128單片機接收AIS和北斗終端的信息,經過處理后打包將本船信息發送給北斗終端,然后由北斗終端發送到控制中心,完成本船信息的發送.同時,將接收到的他船以及本船信息發送給上位機,由上位機完成本船和他船的信息處理并顯示出來.
控制中心通過北斗和AIS接收機接收各船舶的相關信息,然后經過AIS和北斗信息的解碼、多基站的信息融合處理后送到數據庫,監控系統從數據庫中讀取船舶的相關信息,送到顯示器并顯示在電子海圖上,達到對船舶的實時動態監控,見圖2.

圖2 監控系統組成
軟件部分主要是單片機底層軟件和上位機軟件.單片機底層軟件的編寫支持單片機的工作,其功能包括:串口數據的接收和發送;AIS信息的解碼[8-9]、北斗信息的解碼、位置信息的融合處理和本船信息的編碼;數據的RAM讀寫處理等.單片機底層軟件流程見圖3.

圖3 底層軟件流程
上位機部分采用VisualStudio 2005作為開發工具[10],根據IEC 61162標準協議完成本船與他船信息的解碼并存儲,并將處理后的信息顯示出來,見圖4.

圖4 上位機部分流程
隨著中國北斗衛星導航系統的發展,北斗終端必然會得到廣泛應用.本文結合Atmega128單片機,提出將AIS與北斗終端組合在船舶動態監控中應用的方法,與傳統的船舶動態監控相比具有以下特點:
(1)在完成對近海和內河監控的同時,可以很好地解決船舶在遠洋航行中的船舶監控問題.
(2)大大提高船舶之間的通信距離,便于遠程監控和對船舶的實時調度.
(3)利用北斗雙向通信和定位相結合的優點,促進北斗在船舶監控領域的應用發展.
利用Atmega128作為中央處理器完成AIS與北斗之間信息的相互通信,它們之間本質上仍然是相互獨立的,理想狀況是在AIS設備提供北斗接口或者北斗/GPS組合接口.同時,由于北斗二代設備的限制,本文的工作只是通過模擬實現系統的北斗與Atmega128的相互通信.相信隨著AIS和北斗的發展,在未來的國際標準中,AIS設備會具備北斗與GPS公共組合接口,利用北斗與GPS的優勢互補,大大提高船舶的動態監控性能和通信距離,促進船舶動態監控的發展.
[1]朱偉康,張建飛,傅俊璐.北斗衛星系統在遠洋船舶上應用的研究[J].無線電工程,2008,38(9):35-38.
[2]王勇.基于AVR單片機的一體化GPS接收機設計[J].自動化儀表,2008,29(2):65-67.
[3]劉金星,李洪文.基于高速單片機的GPS接收系統設計[J].信息化研究,2010,36(3):31-34.
[4]戴邵武,馬長里,代海霞.北斗二代/SINS組合導航系統研究[J].GNSS World of China,2010(1):25-27.
[5]International Electrotechnical Commission.IEC 61993-2,Maritime navigation and radiocommunication equipment and systems-Automatic identification systems(AIS)-Part 2:Class A shipborne equipment of the universal automatic identification system(AIS);Operational and performance requirements,methods of test and required test results[S].IEC,2001.
[6]武英潔.船用北斗/GPS聯合導航終端的研究[D].大連:大連海事大學,2010.
[7]黃麗卿,張杏谷,鄭佳春,等.北斗終端數據處理與應用[J].集美大學學報,2009,14(3):256-259.
[8]張新定,劉篤仁.船舶自動識別系統(AIS)的通信系統軟件設計[J].電子元器件應用,2008,10(6):41-44.
[9]袁安存,張淑芳.通用船載自動識別系統國際標準匯編[M].大連:大連海事大學出版社,2005.
[10]譚思亮,鄒超群.Visual C++串口通信工程開發實例導航[M].北京:人民郵電出版社,2003.