魯照權,毛 羽,朱 敏,陳 芹
(合肥工業大學 電氣與自動化工程學院 優化控制技術研究所,安徽 合肥 230009)
我國航道眾多,水運發達,保證航運安全的工作至關重要。航標作為為水上活動提供安全信息的設施,是保證航運安全的重要裝置。對航標狀態進行有效控制和準確檢測,不僅能保證航標裝置的正常工作,更能減少航運事故發生率,確保航運安全。
國內外已經對航標遙控遙測系統進行了多年的研究[1-3],也獲得了諸多成果,但是由于航標工作環境的特殊性(潮濕、受撞擊率高、易受電磁干擾等),在系統穩定性和定位精度等方面仍無法完全滿足實際需求[4-5]。本文通過分析航標遙控遙測終端裝置的功能需求,給出了基于GPS、GPRS技術及 LPC2136微控制器的終端設計方案,旨在設計出一個穩定可靠的終端裝置,提升航標遙控遙測系統的整體性能。實驗證明,該終端裝置能穩定可靠地運行,具有重要的現實意義和可觀的市場價值。
航標包括岸標和水上浮標。岸標由于位置固定而不需要進行GPS定位,而浮標則需要進行GPS定位以測量其地理位置。本文針對浮標的特點和功能,對其進行設計,實現的主要功能如下:
(1)航標位置檢測。通過GPS模塊實現,確保航標沒有偏離規定區域,以防引發安全事故。
(2)電流檢測。蓄電池充放電電流以及LED燈工作電流的檢測。
(3)電壓檢測。蓄電池充放電電壓、工作電壓及航標燈工作電壓的檢測。
(4)撞擊檢測。通過加速度計實現撞擊量的檢測。航標受到船只猛烈撞擊后,可能導致航標及終端工作失常,應及時報警,以便檢查維護。
(5)終端與燈器的通信。實現終端對燈器燈質的控制和狀態采集。
(6)終端與服務器的通信。依據既定通信規約,當服務器查詢到本地終端并要求其提供相應狀態信息時,終端及時準確地完成服務器要求。服務器未要求本地終端進行相關操作時,本地終端應能定時發送心跳信息,以告知服務器其在線狀態。
依據航標遙控遙測終端裝置的功能需求,設計的終端硬件如圖1所示。系統以LPC2136為主控制器,主要占用資源包括I2C接口、A/D轉換接口、UART接口、復位電路接口及部分GPIO口[6]。I2C接口掛接LIS302DL加速度計及FM24L256鐵電存儲芯片,分別用來采集終端撞擊數據和終端數據存儲。A/D轉換接口上包含專用電流檢測芯片MAX4071及分壓電阻。GPS、GPRS功能模塊SIM548C和RS485模塊MAX3072通過串口與微控制器相連,以進行相關數據通信。

圖1 終端硬件系統框圖
整個系統由12 V蓄電池供電。除外接航標燈器由12 V蓄電池直接供電外,終端上還需要4.5 V和3.3 V電源,本設計選用了LM2575和LM1117兩款降壓穩壓芯片以滿足系統不同電壓需求。終端復位電路選用了MAX708S電源監控芯片。系統電源電壓下降到一定值并達一定時間時,向單片機復位引腳發送復位信號,使得終端復位。
當服務器通過GPRS方式向終端發送遙控遙測命令時,終端將依據接收到的命令類型采集各類狀態信息或者設定工作模式,并將結果通過GPRS方式反饋到服務器端。整個終端裝置要實現的主要功能是終端與服務器的GPRS通信以及終端的GPS精確定位。
選用GPS和GPRS二合一模塊 SIM548C[7],通過串口與LPC2136進行通信。終端利用該模塊實現定位數據的采集及GPRS數據的通信。該模塊的GPS定位精度為10 m,若刷入支持 DGPS的固件,精度能達到 1~5 m,支持NMEA-0813協議;GPRS部分內置TCP協議棧,降低了開發難度。模塊整體結構設計緊湊,便于布板和安裝。
由于SIM548C模塊的GPRS部分含有1個正常工作用串口及1個調試用串口,并且GPS部分含有2個適合不同協議的串口,共4個串口,再加上與燈器連接的RS485接口也需占用1個串口資源,因此需要對微控制器的串口進行擴展。本系統中選用CD4052雙四選一多路選擇開關對LPC2136的串口1進行擴展。串口1正常情況下與SIM548C模塊支NMEA-0813協議[8]的串口相連,以便實時讀取GPS數據。微控制器的串口0直接與GPRS正常工作的串口相連,隨時偵聽來自服務器端的遙控遙測命令。若偵聽到燈器設定命令時,通過CD4052可將UART1口切換到RS485接口,實現終端與燈器的通信。如果是狀態信息采集命令,則直接進行相應狀態信息的采集,將采集數據打包并通過GPRS方式發送到服務器。SIM548C硬件連接電路如圖2所示。

圖2 SIM548C硬件連接示意
終端上電后,首先對系統進行初始化操作,實現單片機端口及各功能模塊的初始化。然后,終端登錄服務器進行注冊,一旦終端成功登錄到服務器,便處于命令待接收狀態,查詢串口是否有來自服務器的指令。若長時間沒有收到指令,終端將定時發送心跳數據到服務器,以保證終端時刻在線。終端接收到遙控指令時,將按照指令要求對終端工作模式或者燈器的工作參數進行設置;接收到遙測指令時,終端將采集航標相應狀態信息量上報;指令無法正確解析時,將進行報錯。終端主程序流程圖如圖3所示。

圖3 終端主程序流程圖
終端通過GPRS和短消息(SMS)兩種方式與服務器通信。正常情況下,終端以GPRS方式登錄服務器及實現數據傳輸。當周邊環境信號較差時,可能無法通過GPRS方式與服務器通信,這時將切換到短消息方式。如果通過短消息方式也無法實現與遠程服務器的通信,終端將自動復位,重新啟動。登錄過程如圖4所示。
終端連接GPRS網絡所用到的AT指令及操作順序如下[9]:
(1)AT,測試模塊對輸入是否有響應;
(2)AT+CCID,測試 SIM 卡是否準備好;
(3)AT+CSQ=? ,測試是否有信號;
(4)AT+CGCLASS=”B”,設置模塊工作在B類GPRS網絡;
(5)AT +CGDCONT =1,”IP”,”CMNET”,設置GPRS接入網關為移動夢網;
(6)AT+CGATT=1, 激 活 GPRS網絡;
(7)AT +CIPSTART = ”TCP”,”IP”,”PORT”, 啟 動 TCP 連 接 ,其中,IP表示IP地址,PORT表示端口號。
上述指令都得到正確響應 (即能從串口返回信息中讀取到“OK”字符)之后即可以通過AT+CIPSEND指令發送相應數據。
終端上電后,直接通過擴展的UART1口接收NMEA-0813版本格式的GPS定位數據。NMEA-0813格式的GPS定位信息有多種語句,都是由幀頭、幀尾和幀數據 構 成 。 幀 頭 類 型 包 括 “$GPGGA”、“$GPGSA”和“GPRMC”等。同時,每條語句以回車和換行符作為幀尾。鑒于終端需要得到的信息為經緯度和時間等基本信息,因此在本終端設計中只對基本信息語句“GPRMC”進行處理,其處理過程如圖5所示。
程序中開辟了GPS_BUF0和GPS_BUF12個緩存空。首先通過串口接收一條NMEA-0813版本格式的語句,并將其存入GPS_BUF0中,進而判斷該語句是否為所需的GPRMC語句,如果不是則清空 GPS_BUF0,重新接收數據;如果是則存入GPS_BUF1中,并根據GPRMC語句的格式提取時間和經緯度信息。GPRMC語句格式如下:
$GPRMC,1,2,3,4,5,6,7,8,9,10,11,12*hh <CR><LF>

圖5 GPS數據處理子程序流程圖
其中,阿拉伯數字依次代表UTC時間、定位狀態、緯度、緯度半球、經度、經度半球、地面速率、地面航向、UTC日期、磁偏角、磁偏角方向和模式指示等信息。各信息之間由逗號符分隔,并將逗號符作為標識符,通過依次統計語句中的逗號符,可以提取到所需的時間和經緯度信息。
服務器與終端以及終端與燈器之間的通信包括命令解析及數據打包,完全依據既定的航標遙控系統通信規約。該規約規定了航標遙測遙控系統中,航標燈器(帶有標準RS485串口的智能燈器)與航標遙控遙測終端RTU設備之間、終端與監控中心計算機(服務器)之間的數據傳輸幀格式、數據編碼及傳輸規則。
例如,終端裝置接收到一組GPS語句為:
“$GPGGA,042824.000,3150.3194,N,11722.3232,E,1,04,1.4,-56.2,M,0.7,M,,0000*71
$GPGSA,A,3,08,20,17,01,,,,,,,,,1.7,1.4,1.0*3D
$GPGSV,3,1,10,28,65,326,,01,55,038,22,20,41,120,42,11,36,047,*7A
$GPGSV,3,2,10,17,36,297,12,08,36,215,43,07,17,191,,19,06,077,18*76
$GPGSV,3,3,10,32,31,084,25,04,13,227,24*77
$GPRMC,042824.000,A,3150.3194,N,11722.3232,E,0.60,343.50,221011,,,A*6F
$GPVTG,343.50,T,,M,0.60,N,1.1,K,A*0A”
首先將刪選出所需要的“$GPRMC,042824.000,A,3150.3194,N,11722.3232,E,0.60,343.50,221011,,,A*6F”這條語句。依據通信規約,這段數據將被打包成“042824N31503194E1172232322210111210”, 除最后 4位表示終端ID號外,其余均是從GPRMC語句中提取出來的時間及經緯度信息。然后,通過GPRS方式將這段數據發送到服務器端,服務器端將發送應答幀到終端以表明數據是否發送成功。
航標遙控遙測終端裝置集GPRS、GPS技術于一身,能夠實現對航標狀態的實時監測,減少了人力物力的重復投資,有效提高了航標管理水平。本文簡要闡述了航標遙控遙測終端的功能需求,并提出了一種航標遙控遙測終端硬軟件設計方案,著重對GPS和GPRS功能的實現進行了介紹。終端實驗板在實驗室與遠程服務器連接正常,通信穩定,能夠實現基本的遙控遙測功能,證明了本方案的可行性。
后期的主要工作是進一步提高終端工作穩定性及定位精確度。例如可以在終端上加入光線傳感器,提升判別白天夜晚的靈敏度和準確度;定位精確度雖然受到選取模塊精度的影響,但也可以通過提高終端后臺數據處理能力及改善終端工作方式加以提高。
[1]EL-MEDANY W M,ALOMARY A,AL-HAKIM R,et al.Implementation of GPRS-based positioning system using PIC microcontroller[C].2010 Second International Conference on ComputationalIntelligence, Communication Systems and Networks(CICSYN),2010:365-368.
[2]鄭佳春.基于嵌入式LINUX的航標遙測遙控終端的開發[J].計算機應用與軟件,2009(10):98-100.
[3]吳允平,蔡聲鎮,李汪彪,等.基于單片機的航標終端系統[J].電子測量技術,2006(8):70-72,79.
[4]李木.淺談航標遙測系統存在的問題[J].航測技術,2009(3):12-14.
[5]李鵬宇.淺議航標遙測遙控現狀與發展[J].航測技術,2009(4):24-26.
[6]周立功,張華.深入淺出 ARM7[M].北京:北京航空航天大學出版社,2005.
[7]Shanghai SIMCOM Wireless Solutions Ltd.SIM548C hardware design V1.01[Z].2008.
[8]National Marine Electronics Association.http://www.nmea.org[2012-01-09].
[9]Shanghai SIMCOM Wireless Solutions Ltd.SIM548C AT commands set[Z].2008.