張尊續,劉春平,唐可贊
(1.深圳大學光電子所,深圳518060;2.深圳大學電子科學與技術學院;3.深圳市微納光子信息技術重點實驗室)
本文采用ARM芯片作為控制核心,設計了一款以GPS定位模塊與衛星通信模塊為依托的遠洋船舶實時監控系統。該系統能夠按照用戶要求定時上傳遠洋船舶的位置信息以及航向信息,解決了傳統船舶定位和救援中出現的問題,保證了船舶動態監測及時、準確、可靠[4]。同時該系統方便擴展其他功能,以便獲得更廣泛的應用。
搭載在船舶上的專用電路板實時采集船舶的位置、速度、航向、SOS報警等信息。專用電路板將采集到的數據處理后,經衛星通信模塊發送至海事通信衛星,通過海事衛星將數據傳輸到地面接收站供給用戶使用。系統整體框圖如圖1所示。
圖1 系統整體框圖
硬件系統采取模塊化設計,主要分為中央處理模塊、GPS定位模塊以及衛星通信模塊等,硬件結構如圖2所示。數據的加工處理及輸入/輸出控制由ST公司的STM32F103VCT6處理器完成。處理器接收到GPS數據后對數據處理并定時上傳加工后的定位數據至地面接收站。GPS定位模塊采用Globalsat公司的ET-314,通過該模塊實時更新GPS定位數據。衛星通信模塊采用加拿大Skywave公司的IDP衛星通信模塊,該模塊通過國際海事衛星(Inmarsat)來實現與地面接收站之間的全天候、廣區域、高可靠性的雙向通信。為了備份長時間的定位數據,采用了SST公司的SST25VF016B芯片作為外部Flash來實現數據存儲的功能。
圖2 硬件結構圖
本系統采用STM32F103VCT6處理器作為主控制芯片。STM32F103VCT6是32位的具備Cortex-M3內核的處理器,最高工作頻率可達72MHz。
中央控制模塊STM32F103VCT6作為本系統設計的核心部分,負責數據地采集、分析、加工以及安排數據上傳工作。GPS原始數據會實時傳遞至MCU的串口緩沖區。MCU驗證處理后,通過串口發送至衛星通信模塊。SOS報警信息通過設定的GPIO口發送至MCU,通過衛星通信模塊上傳至地面接收站。本模塊硬件原理圖略——編者注。
定位模塊采用Globalsat公司的Globalsat ET-314芯片,來實現船舶的位置定位與速度采集。Globalsat ET-314模塊使用了SIRF III芯片,具備快速定位、定位精度高、啟動時間短以及探測范圍廣的優點。使用Globalsat ET-314模塊實現功能如下:
①精確地采集到地理位置信息。Globalsat ET-314模塊定位的精確度為10m。
②精確地采集時間信息。Globalsat ET-314模塊采集到的時間與GPS時間保持1μs的同步關系[1]。
圖3 GPS定位示意圖
GPS定位的基本方法為空間距離后方交會,此方法需要知道衛星瞬間位置。如圖3所示,假設t時刻在地面上的待測地點放置GPS信號接收機,測定出GPS信號到達此處接收機的時間為△t,根據其他已知條件確定以下4個方程式。其中已知衛星1,衛星2、衛星3、衛星4以及地面接收站的地理坐標分別為(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)、(x4,y4,z4)、(x,y,z);d1,d2,d3,d4為測量偽距;c為光速;dt為衛星時鐘偏差;dT1,dT2,dT3,dT4為GPS的接收時鐘偏差項。
通過聯立這4個方程式,可以得到接收機的地理坐標。GPS定位模塊的原理圖如圖4所示,GPS通過串口與MCU獲得通信。
圖4 GPS模塊電路原理圖
衛星通信模塊選用的是加拿大Skywave公司的衛星通信模塊IDP。IDP的通信基于國際海事衛星,通信全球覆蓋不受外界因素限制。IDP還具備傳輸數據能力強的優點,其單次發送數據可達6 400字節,單次接收的數據量可達10 000字節[2]。IDP支持二次開發,方便用戶將IDP接入其他產品中使用。
國際海事衛星通信系統是世界上第一個全球性的移動業務衛星通信系統。Inmarsat通信系統基本是由四部分組成,即空間段、網絡協調站(Network Coordination Station)、衛星地面站(Land Earth Station)和衛星船站(Mobile Earth Station)。IDP680即為衛星船站。發送信息經衛星地面站處理后經專用網關轉發至用戶服務器供用戶分析使用。終端發起通信流程如圖5所示。
圖5 終端發起通信圖
IDP680為用戶提供了4個可配置I/O口以及1路RS232、1路RS458串口方便用戶集成使用。其接口定義圖略——編者注。
配置衛星通信模塊使用中斷方式接收MCU通過串口傳輸過來的數據。校驗正確后,衛星通信模塊執行發送數據功能。用戶發送的遠程指令,衛星通信模塊接收后通過串口傳輸至MCU,MCU使用中斷方式處理串口傳輸過來的數據。校驗正確后,執行相應的命令動作。
數據存儲采用了1片1M×16位的SST25VF016B芯片。上傳的定位數據包為27個字節,總共可以存儲(2×1 024×1 024)/27=77 672條定位數據。按照每分鐘存儲一條定位數據的頻率,共計可以存儲77 672/(60×24)=53天的定位數據。
系統硬件設計完成之后,就要進行軟件的設計。對軟件同樣采用模塊化的設計思想。軟件方面主要包括了主程序模塊、GPS定位數據采集模塊以及無線通信模塊。衛星通信模塊具備二次開發功能,還需對衛星通信模塊進行專門的設計。系統軟件工作流程如圖6所示。
STM32F103VCT6芯片采用了Cortex-M3內核,并且ST公司提供的固件庫中包括了啟動文件“stm32f10x_vector.s“[6]。Cortex-M3內核復位后,會自動從起始地址的下一個32位空間取出復位中斷入口向量,跳轉執行復位中斷服務程序。STM32F103VCT6的啟動主要包括初始化堆和棧、向量表的定義和轉移、初始化中斷寄存器以及跳轉進入main主函數幾個過程。流程如圖7所示。
STM32F103VCT6的串口使用主要包括啟動外設時鐘、配置NVIC、配置GPIO口、配置串口、初始化串口、使能收發中斷、使能串口幾個過程。流程如圖8所示。
衛星通信模塊的串口配置情況如下:波特率設置為9 600bps;數據位為8;校驗位設置為“None”;停止位為1。
衛星模塊單獨采用Lua語言進行開發。Lua是一個小巧的腳本語言。該語言是針對嵌入式應用程序設計的,能為應用程序提供靈活的擴展和定制功能。Lua體積小、啟動速度快,從而適合嵌入在別的程序里[5]。
圖6 軟件整體流程圖
圖7 STM32F103VCT6啟動過程框圖
使用LUA語言開發的衛星通信模塊部分源代碼略——編者注。
圖8 STM32F103VCT6的UART使用框圖
CS監控平臺是用戶設備與監控中心的信息軟件平臺。監控軟件平臺可以動態展現船舶的實時位置情況,同時可以對船舶進行管理。
CS軟件平臺主要起到如下作用:對船舶進行跟蹤定位,了解船舶的作業情況;查詢海圖某點處的具體地理情況,包括海水深度、潮高等;距離測算。
本文用深圳市內5個地點作為測試樣本進行驗證性測試實驗。用定位準確性、長時間回傳數據穩定性來評價設計的性能。驗證時,讓本系統在每個地點至少工作1天以上。
同時檢測實時數據上傳的準確性與Flash當中存儲數據的準確性。現通過服務器接收到的地點1的部分定位數據作為例子說明定位的準確性,如圖9所示。
圖9 測試數據截圖
提取其中一條數據加以分析。十六進制的數據如下:15 18CE C9F1 46BD 60 00 00 00 00 00 00 00 00 00 00 4AA1 78 67F0 35。
對應的ASCII碼表示的數據如下:\15\18\CE\C9\F1F\BD`\00\00\00\00\00\00\00\00\00\00J\A1xg\F05
按照協議,緯度為有符號整數,其用補碼表示,轉為十進制數值后除以60 000即得緯度數值。其中,正數表示北緯,負數表示南緯,轉換時注意符號位的存在。經度為有符號整數,其用補碼表示,轉為十進制數值后除以60 000即得經度數值。其中,正數表示東經,負數表示西經,轉換時注意符號位的存在。
本例中,緯度=(146BD6)h/(60 000)d=1 338 326/60 000=22.30543°。經度計算時,需取后面25個位(000011001111111000000110101)b=6811701d,經度=6 811 701/60 000=113.528 35°。經分析知,此位置正是深圳市南山區馬家龍工業區測試地點1處,和實際地點的誤差在15m范圍之內。經分析5個地點的測試數據,都在誤差范圍之內。
經至少一周時間的測試,每個測試點的回傳數據穩定且連續,未出現數據丟失的現象。證明了該系統的長時間工作穩定性。
遠洋船舶監控系統使航運界對遠洋船舶監控的要求變成了現實,奠定了海洋信息化的基礎。系統研究成果將有力地促進我國航運業的科學技術進步,大大加快海洋運輸業的信息化進程。
系統實時在線監控模式極大提升了對遠洋船隊的安全監控與搜救能力,從而顯著降低了海難事故發生的幾率,減少了海難造成的損失;系統成果可推廣應用至船舶節能減排、海洋環保等方面,推動了航運業的可持續發展進程[7]。
編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1] GlobalSat Corporation.GPS Engine Board ET-314,2007.
[2] Skywave Corporation.IDP Terminal API Reference Guide,2012.
[3] STMicroeletronics Corporation.STM32F103Datasheet,2011.
[4] 趙麗寧,趙學俊,董曉勇.基于Inmarsat-C通信的船舶動態監控系統的設計與實現[J] .世界海運,2003(6).
[5] 萊魯薩利姆斯奇.Lua程序設計[M] .周惟迪,譯.北京:電子工業出版社,2008.
[6] 杜春雷.ARM體系結構與編程[M] .北京:清華大學出版社,2003:1-10.
[7] 鄭士君,褚建新,陳正杰,等.遠洋船舶在線監控系統研究[C] .//2008第四屆中國智能交通年會論文匯編,2008.