魯照權(quán),毛 羽,朱 敏,陳 芹
(合肥工業(yè)大學(xué) 電氣與自動化工程學(xué)院 優(yōu)化控制技術(shù)研究所,安徽 合肥 230009)
我國航道眾多,水運發(fā)達,保證航運安全的工作至關(guān)重要。航標作為為水上活動提供安全信息的設(shè)施,是保證航運安全的重要裝置。對航標狀態(tài)進行有效控制和準確檢測,不僅能保證航標裝置的正常工作,更能減少航運事故發(fā)生率,確保航運安全。
國內(nèi)外已經(jīng)對航標遙控遙測系統(tǒng)進行了多年的研究[1-3],也獲得了諸多成果,但是由于航標工作環(huán)境的特殊性(潮濕、受撞擊率高、易受電磁干擾等),在系統(tǒng)穩(wěn)定性和定位精度等方面仍無法完全滿足實際需求[4-5]。本文通過分析航標遙控遙測終端裝置的功能需求,給出了基于GPS、GPRS技術(shù)及 LPC2136微控制器的終端設(shè)計方案,旨在設(shè)計出一個穩(wěn)定可靠的終端裝置,提升航標遙控遙測系統(tǒng)的整體性能。實驗證明,該終端裝置能穩(wěn)定可靠地運行,具有重要的現(xiàn)實意義和可觀的市場價值。
航標包括岸標和水上浮標。岸標由于位置固定而不需要進行GPS定位,而浮標則需要進行GPS定位以測量其地理位置。本文針對浮標的特點和功能,對其進行設(shè)計,實現(xiàn)的主要功能如下:
(1)航標位置檢測。通過GPS模塊實現(xiàn),確保航標沒有偏離規(guī)定區(qū)域,以防引發(fā)安全事故。
(2)電流檢測。蓄電池充放電電流以及LED燈工作電流的檢測。
(3)電壓檢測。蓄電池充放電電壓、工作電壓及航標燈工作電壓的檢測。
(4)撞擊檢測。通過加速度計實現(xiàn)撞擊量的檢測。航標受到船只猛烈撞擊后,可能導(dǎo)致航標及終端工作失常,應(yīng)及時報警,以便檢查維護。
(5)終端與燈器的通信。實現(xiàn)終端對燈器燈質(zhì)的控制和狀態(tài)采集。
(6)終端與服務(wù)器的通信。依據(jù)既定通信規(guī)約,當服務(wù)器查詢到本地終端并要求其提供相應(yīng)狀態(tài)信息時,終端及時準確地完成服務(wù)器要求。服務(wù)器未要求本地終端進行相關(guān)操作時,本地終端應(yīng)能定時發(fā)送心跳信息,以告知服務(wù)器其在線狀態(tài)。
依據(jù)航標遙控遙測終端裝置的功能需求,設(shè)計的終端硬件如圖1所示。系統(tǒng)以LPC2136為主控制器,主要占用資源包括I2C接口、A/D轉(zhuǎn)換接口、UART接口、復(fù)位電路接口及部分GPIO口[6]。I2C接口掛接LIS302DL加速度計及FM24L256鐵電存儲芯片,分別用來采集終端撞擊數(shù)據(jù)和終端數(shù)據(jù)存儲。A/D轉(zhuǎn)換接口上包含專用電流檢測芯片MAX4071及分壓電阻。GPS、GPRS功能模塊SIM548C和RS485模塊MAX3072通過串口與微控制器相連,以進行相關(guān)數(shù)據(jù)通信。
圖1 終端硬件系統(tǒng)框圖
整個系統(tǒng)由12 V蓄電池供電。除外接航標燈器由12 V蓄電池直接供電外,終端上還需要4.5 V和3.3 V電源,本設(shè)計選用了LM2575和LM1117兩款降壓穩(wěn)壓芯片以滿足系統(tǒng)不同電壓需求。終端復(fù)位電路選用了MAX708S電源監(jiān)控芯片。系統(tǒng)電源電壓下降到一定值并達一定時間時,向單片機復(fù)位引腳發(fā)送復(fù)位信號,使得終端復(fù)位。
當服務(wù)器通過GPRS方式向終端發(fā)送遙控遙測命令時,終端將依據(jù)接收到的命令類型采集各類狀態(tài)信息或者設(shè)定工作模式,并將結(jié)果通過GPRS方式反饋到服務(wù)器端。整個終端裝置要實現(xiàn)的主要功能是終端與服務(wù)器的GPRS通信以及終端的GPS精確定位。
選用GPS和GPRS二合一模塊 SIM548C[7],通過串口與LPC2136進行通信。終端利用該模塊實現(xiàn)定位數(shù)據(jù)的采集及GPRS數(shù)據(jù)的通信。該模塊的GPS定位精度為10 m,若刷入支持 DGPS的固件,精度能達到 1~5 m,支持NMEA-0813協(xié)議;GPRS部分內(nèi)置TCP協(xié)議棧,降低了開發(fā)難度。模塊整體結(jié)構(gòu)設(shè)計緊湊,便于布板和安裝。
由于SIM548C模塊的GPRS部分含有1個正常工作用串口及1個調(diào)試用串口,并且GPS部分含有2個適合不同協(xié)議的串口,共4個串口,再加上與燈器連接的RS485接口也需占用1個串口資源,因此需要對微控制器的串口進行擴展。本系統(tǒng)中選用CD4052雙四選一多路選擇開關(guān)對LPC2136的串口1進行擴展。串口1正常情況下與SIM548C模塊支NMEA-0813協(xié)議[8]的串口相連,以便實時讀取GPS數(shù)據(jù)。微控制器的串口0直接與GPRS正常工作的串口相連,隨時偵聽來自服務(wù)器端的遙控遙測命令。若偵聽到燈器設(shè)定命令時,通過CD4052可將UART1口切換到RS485接口,實現(xiàn)終端與燈器的通信。如果是狀態(tài)信息采集命令,則直接進行相應(yīng)狀態(tài)信息的采集,將采集數(shù)據(jù)打包并通過GPRS方式發(fā)送到服務(wù)器。SIM548C硬件連接電路如圖2所示。
圖2 SIM548C硬件連接示意
終端上電后,首先對系統(tǒng)進行初始化操作,實現(xiàn)單片機端口及各功能模塊的初始化。然后,終端登錄服務(wù)器進行注冊,一旦終端成功登錄到服務(wù)器,便處于命令待接收狀態(tài),查詢串口是否有來自服務(wù)器的指令。若長時間沒有收到指令,終端將定時發(fā)送心跳數(shù)據(jù)到服務(wù)器,以保證終端時刻在線。終端接收到遙控指令時,將按照指令要求對終端工作模式或者燈器的工作參數(shù)進行設(shè)置;接收到遙測指令時,終端將采集航標相應(yīng)狀態(tài)信息量上報;指令無法正確解析時,將進行報錯。終端主程序流程圖如圖3所示。
圖3 終端主程序流程圖
終端通過GPRS和短消息(SMS)兩種方式與服務(wù)器通信。正常情況下,終端以GPRS方式登錄服務(wù)器及實現(xiàn)數(shù)據(jù)傳輸。當周邊環(huán)境信號較差時,可能無法通過GPRS方式與服務(wù)器通信,這時將切換到短消息方式。如果通過短消息方式也無法實現(xiàn)與遠程服務(wù)器的通信,終端將自動復(fù)位,重新啟動。登錄過程如圖4所示。
終端連接GPRS網(wǎng)絡(luò)所用到的AT指令及操作順序如下[9]:
(1)AT,測試模塊對輸入是否有響應(yīng);
(2)AT+CCID,測試 SIM 卡是否準備好;
(3)AT+CSQ=? ,測試是否有信號;
(4)AT+CGCLASS=”B”,設(shè)置模塊工作在B類GPRS網(wǎng)絡(luò);
(5)AT +CGDCONT =1,”IP”,”CMNET”,設(shè)置GPRS接入網(wǎng)關(guān)為移動夢網(wǎng);
(6)AT+CGATT=1, 激 活 GPRS網(wǎng)絡(luò);
(7)AT +CIPSTART = ”TCP”,”IP”,”PORT”, 啟 動 TCP 連 接 ,其中,IP表示IP地址,PORT表示端口號。
上述指令都得到正確響應(yīng) (即能從串口返回信息中讀取到“OK”字符)之后即可以通過AT+CIPSEND指令發(fā)送相應(yīng)數(shù)據(jù)。
終端上電后,直接通過擴展的UART1口接收NMEA-0813版本格式的GPS定位數(shù)據(jù)。NMEA-0813格式的GPS定位信息有多種語句,都是由幀頭、幀尾和幀數(shù)據(jù) 構(gòu) 成 。 幀 頭 類 型 包 括 “$GPGGA”、“$GPGSA”和“GPRMC”等。同時,每條語句以回車和換行符作為幀尾。鑒于終端需要得到的信息為經(jīng)緯度和時間等基本信息,因此在本終端設(shè)計中只對基本信息語句“GPRMC”進行處理,其處理過程如圖5所示。
程序中開辟了GPS_BUF0和GPS_BUF12個緩存空。首先通過串口接收一條NMEA-0813版本格式的語句,并將其存入GPS_BUF0中,進而判斷該語句是否為所需的GPRMC語句,如果不是則清空 GPS_BUF0,重新接收數(shù)據(jù);如果是則存入GPS_BUF1中,并根據(jù)GPRMC語句的格式提取時間和經(jīng)緯度信息。GPRMC語句格式如下:
$GPRMC,1,2,3,4,5,6,7,8,9,10,11,12*hh <CR><LF>
圖5 GPS數(shù)據(jù)處理子程序流程圖
其中,阿拉伯數(shù)字依次代表UTC時間、定位狀態(tài)、緯度、緯度半球、經(jīng)度、經(jīng)度半球、地面速率、地面航向、UTC日期、磁偏角、磁偏角方向和模式指示等信息。各信息之間由逗號符分隔,并將逗號符作為標識符,通過依次統(tǒng)計語句中的逗號符,可以提取到所需的時間和經(jīng)緯度信息。
服務(wù)器與終端以及終端與燈器之間的通信包括命令解析及數(shù)據(jù)打包,完全依據(jù)既定的航標遙控系統(tǒng)通信規(guī)約。該規(guī)約規(guī)定了航標遙測遙控系統(tǒng)中,航標燈器(帶有標準RS485串口的智能燈器)與航標遙控遙測終端RTU設(shè)備之間、終端與監(jiān)控中心計算機(服務(wù)器)之間的數(shù)據(jù)傳輸幀格式、數(shù)據(jù)編碼及傳輸規(guī)則。
例如,終端裝置接收到一組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”這條語句。依據(jù)通信規(guī)約,這段數(shù)據(jù)將被打包成“042824N31503194E1172232322210111210”, 除最后 4位表示終端ID號外,其余均是從GPRMC語句中提取出來的時間及經(jīng)緯度信息。然后,通過GPRS方式將這段數(shù)據(jù)發(fā)送到服務(wù)器端,服務(wù)器端將發(fā)送應(yīng)答幀到終端以表明數(shù)據(jù)是否發(fā)送成功。
航標遙控遙測終端裝置集GPRS、GPS技術(shù)于一身,能夠?qū)崿F(xiàn)對航標狀態(tài)的實時監(jiān)測,減少了人力物力的重復(fù)投資,有效提高了航標管理水平。本文簡要闡述了航標遙控遙測終端的功能需求,并提出了一種航標遙控遙測終端硬軟件設(shè)計方案,著重對GPS和GPRS功能的實現(xiàn)進行了介紹。終端實驗板在實驗室與遠程服務(wù)器連接正常,通信穩(wěn)定,能夠?qū)崿F(xiàn)基本的遙控遙測功能,證明了本方案的可行性。
后期的主要工作是進一步提高終端工作穩(wěn)定性及定位精確度。例如可以在終端上加入光線傳感器,提升判別白天夜晚的靈敏度和準確度;定位精確度雖然受到選取模塊精度的影響,但也可以通過提高終端后臺數(shù)據(jù)處理能力及改善終端工作方式加以提高。
[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的航標遙測遙控終端的開發(fā)[J].計算機應(yīng)用與軟件,2009(10):98-100.
[3]吳允平,蔡聲鎮(zhèn),李汪彪,等.基于單片機的航標終端系統(tǒng)[J].電子測量技術(shù),2006(8):70-72,79.
[4]李木.淺談航標遙測系統(tǒng)存在的問題[J].航測技術(shù),2009(3):12-14.
[5]李鵬宇.淺議航標遙測遙控現(xiàn)狀與發(fā)展[J].航測技術(shù),2009(4):24-26.
[6]周立功,張華.深入淺出 ARM7[M].北京:北京航空航天大學(xué)出版社,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.