余弦,吳鋒
(杭州電子科技大學(xué)信息與控制研究所,浙江杭州310018)
隨著我國化學(xué)工業(yè)的發(fā)展和經(jīng)濟(jì)建設(shè)的需要,危險(xiǎn)品日益廣泛地應(yīng)用于工農(nóng)業(yè)生產(chǎn)和市民日常生活,對危險(xiǎn)品運(yùn)輸車輛的監(jiān)控需求也越發(fā)凸出,而要實(shí)現(xiàn)對危險(xiǎn)品運(yùn)輸車輛的監(jiān)控,關(guān)鍵在于監(jiān)控信息的可視化,即將監(jiān)控信息以直觀、準(zhǔn)確、訊速的方法呈現(xiàn)在監(jiān)控人員面前。目前,國內(nèi)傳統(tǒng)的危險(xiǎn)品運(yùn)輸車輛監(jiān)控信息可視化方法一般采用GPRS網(wǎng)絡(luò)發(fā)送GPS數(shù)據(jù),受GPRS網(wǎng)速的限制,可能造成GPS數(shù)據(jù)的阻塞、延遲,影響監(jiān)控的效果[1]。而國外雖已利用3G網(wǎng)絡(luò)傳送數(shù)據(jù),但大部分情況下在顯示和標(biāo)識車輛位置時(shí)采用的仍舊是繪制出來的電子地圖,隨著科技的發(fā)展,這種地圖已跟不上市場的最新需求[2]。因此,開發(fā)一種將更優(yōu)異的地圖和更先進(jìn)的網(wǎng)絡(luò)集成在一起的監(jiān)控信息可視化方法已是勢在必行。本文以GPS技術(shù)為基礎(chǔ),結(jié)合Google Earth衛(wèi)星實(shí)景地圖和3G無線通信網(wǎng)絡(luò),提出一種全新的危險(xiǎn)品運(yùn)輸車輛監(jiān)控信息可視化方法,較好地實(shí)現(xiàn)了對危險(xiǎn)品運(yùn)輸車輛的監(jiān)控,符合市場需求。
本文選用微軟公司的軟件Microsoft Visual Studio 2008,以.NET平臺和C#語言為編譯環(huán)境來實(shí)現(xiàn)整個方法中的程序和算法要求。
本文所采用的硬件是由中國電子科技集團(tuán)公司第52研究所生產(chǎn)的WR-090002 3G無線路由器。該路由器安裝在危險(xiǎn)品運(yùn)輸車輛上,它集成了GPS模塊,并可將GPS模塊產(chǎn)生的數(shù)據(jù)通過3G無線通信網(wǎng)絡(luò)(CDMA2000)發(fā)送到指定的服務(wù)器。CDMA2000作為第三代無線通信網(wǎng)絡(luò),相比上一代GPRS網(wǎng)絡(luò)具有明顯優(yōu)勢,能實(shí)時(shí)快速地傳輸本文所需的數(shù)據(jù)。
在本文設(shè)計(jì)的方法中,危險(xiǎn)品運(yùn)輸車輛的監(jiān)控信息(即GPS模塊產(chǎn)生的GPS語句)由3G無線路由器通過CDMA2000無線通信網(wǎng)絡(luò)發(fā)送到配置的服務(wù)器,在服務(wù)器上由事先編寫的程序接收GPS語句并判斷解析,從中提取有效的經(jīng)緯度并存儲,而后由Google Earth讀取最新的經(jīng)緯度信息,并結(jié)合衛(wèi)星實(shí)景地圖標(biāo)識車輛位置,實(shí)現(xiàn)監(jiān)控信息的可視化。根據(jù)監(jiān)控信息的走向,該方法整體流程如圖1所示。本文可視化實(shí)現(xiàn)的關(guān)鍵技術(shù)主要有:GPS通信協(xié)議及數(shù)據(jù)解析、監(jiān)控信息的接收、有效經(jīng)緯度的提取、在危險(xiǎn)品運(yùn)輸車輛監(jiān)控信息可視化中的應(yīng)用等。
目前應(yīng)用最廣泛的GPS通信協(xié)議是美國國家海洋電子協(xié)會(National Marine Electronics Association,NMEA)協(xié)議。NMEA協(xié)議是為了在不同GPS導(dǎo)航設(shè)備中建立統(tǒng)一的BTCM(海事無線電技術(shù)委員會)標(biāo)準(zhǔn),NMEA協(xié)議有0180、0182和0183這3種,0183可以認(rèn)為是前兩種的升級,也是目前使用最為廣泛的一種[3]。
NMEA通訊協(xié)議所規(guī)定的通訊語句都是以ASCII碼為基礎(chǔ),NMEA-0183通訊語句的數(shù)據(jù)格式如下:“$”為語句起始標(biāo)志;其后是“GP”開頭的5個表示所發(fā)送數(shù)據(jù)類型的字母(如“GPGGA”、“GPGLL”、“GPRMC”等),“,”為域分隔符,將整個語句分成數(shù)目不定的數(shù)據(jù)段;緊跟最后一位數(shù)據(jù)的是檢驗(yàn)標(biāo)識符“*”以及兩位十六進(jìn)制的校驗(yàn)和[4],代表了“$”和“*”之間所有字符的按位異或值(但不包括這兩個字符)。典型的NMEA0183通訊語句例如:$GPGGA,053152,3957.7484,N,11626.7626,E,1,06,1.5,88.1,M,-8.0,M,,*64。
圖1 可視化方法流程
本文中所用到的主要是以“$GPGLL”和“$GPRMC”為幀頭的語句,其中“GP”代表GPS設(shè)備,“GLL”表示數(shù)據(jù)類型為經(jīng)緯度信息,“RMC”表示數(shù)據(jù)類型為最重要信息的簡短集合[5]。GPS設(shè)備所發(fā)送的語句可能有效,也可能無效。在有效的“$GPGLL”和“$GPRMC”語句中,整條數(shù)據(jù)被逗號分隔符分隔成若干個數(shù)據(jù)段,其內(nèi)容表示數(shù)據(jù)類型、時(shí)間、數(shù)據(jù)狀態(tài)、緯度、經(jīng)度、速度、方向、日期等。有效的$GPGLL語句如:$GPGLL,3018.79903,N,12020.26316,E,092321.00,A,A*60,有效的$GPRMC語句例如:$GPRMC,083559.00,A,3018.82137,N,12020.26716,E,0.004,77.52,091202,,,N*53。通過對特定數(shù)據(jù)段的提取,就可以獲得相應(yīng)的監(jiān)控信息,如緯度、經(jīng)度、速度、方向等。無效的GPS語句中所有表示監(jiān)控信息的數(shù)據(jù)段都是缺省的。無效的$GPGLL語句例如:$GPGLL,,,,,034321.00,V,N*4D,無效的$GPRMC語句例如:$GPRMC,034322.00,V,,,,,,,180411,,,N*74。
本方法實(shí)際運(yùn)作時(shí),監(jiān)控信息(即符合NMEA協(xié)議的ASCII碼通訊語句)不斷地由車載GPS模塊產(chǎn)生,經(jīng)3G路由器通過CDMA2000無線網(wǎng)絡(luò)發(fā)送到指定的服務(wù)器。為了在服務(wù)器上同步接收信息,本文利用C#的Socket編程,設(shè)計(jì)一個連續(xù)循環(huán)的服務(wù)端程序不斷接收路由器所發(fā)送的GPS語句,并將這些語句由ASCII碼字節(jié)流轉(zhuǎn)換成字符串,以便下一步的操作。該程序步驟為:
(1)創(chuàng)建一個指向服務(wù)器的節(jié)點(diǎn)和一個Socket套接字,該節(jié)點(diǎn)指明了服務(wù)器與路由器通信時(shí)的IP地址和所用端口,套接字則作為服務(wù)器和路由器之間數(shù)據(jù)傳輸?shù)臉蛄?
(2)將該套接字與服務(wù)器節(jié)點(diǎn)綁定;
(3)創(chuàng)建一個指向路由器的節(jié)點(diǎn);
(4)設(shè)計(jì)一個死循環(huán),在死循環(huán)里,不斷調(diào)用Socket套接字的ReceiveFrom方法,從路由器節(jié)點(diǎn)接收數(shù)據(jù);
(5)由于在Socket通信中傳輸?shù)腉PS語句是ASCII碼字節(jié)流,故還需將接收到ASCII碼字節(jié)流轉(zhuǎn)換成更易識別的字符串。
服務(wù)器接收的GPS語句是無法直接被利用的,必須通過程序?qū)⒏鱾€數(shù)據(jù)段的信息從語句中提取出來,將其轉(zhuǎn)化成有實(shí)際意義的監(jiān)控信息[6]。因此,利用Socket接收到3G路由發(fā)送的GPS語句之后,還需要經(jīng)過程序識別幀頭,挑選出以“$GPGLL”和“$GPRMC”開頭的語句,而后再判斷語句是否有效,如若有效,則還須根據(jù)經(jīng)緯度數(shù)據(jù)段在整個語句中的位置將其提取出來,再轉(zhuǎn)化成標(biāo)準(zhǔn)的經(jīng)緯度格式,然后存入數(shù)據(jù)庫,以供下一步中Google Earth調(diào)用。
在GPS模塊產(chǎn)生的數(shù)據(jù)中,以“$GPGLL”和“$GPRMC”為幀頭的語句分別被逗號分隔符分隔成8段和13段,其中“$GPGLL”語句的第2個數(shù)據(jù)段表示緯度,第4個數(shù)據(jù)段表示經(jīng)度,第7個數(shù)據(jù)段表示數(shù)據(jù)狀態(tài),為“A”則表示數(shù)據(jù)有效,為“V”則表示數(shù)據(jù)無效。“$GPRMC”語句的第3個數(shù)據(jù)段表示數(shù)據(jù)狀態(tài),第4個數(shù)據(jù)段為緯度,第6個數(shù)據(jù)段為經(jīng)度。因此,本文所設(shè)計(jì)的有效經(jīng)緯度提取程序流程如圖2所示。
圖2 有效經(jīng)緯度提取程序流程
隨著我國危險(xiǎn)品產(chǎn)量及使用范圍不斷擴(kuò)大,危險(xiǎn)品運(yùn)輸事故日益增多,對危險(xiǎn)品運(yùn)輸車輛實(shí)施有效監(jiān)控的需求也越發(fā)強(qiáng)烈[7]。針對危險(xiǎn)品運(yùn)輸車輛的監(jiān)控信息可視化問題,我們以上文的監(jiān)控信息接收、有效經(jīng)緯度提取等方法為基礎(chǔ),選用Google Earth作為可視化的主要手段,整合成一種全新的危險(xiǎn)品運(yùn)輸車輛監(jiān)控信息可視化方法。
與傳統(tǒng)的繪制的電子地圖不同,Google Earth的實(shí)景地圖來自于衛(wèi)星或航空所拍攝的高分辨率圖片,相當(dāng)于讓用戶從空中不同的高度俯瞰所觀察區(qū)域的真實(shí)影像,因此更直觀、立體。本方法通過對Google Earth函數(shù)庫的引用,調(diào)用Google Earth COM API,將之前提取存儲的經(jīng)緯度不斷傳遞給COM API中最有效的定位函數(shù)SetCameraParams(),就可以在Google Earth的衛(wèi)星實(shí)景地圖上實(shí)時(shí)動態(tài)顯示危險(xiǎn)品運(yùn)輸車輛的具體位置,實(shí)現(xiàn)危險(xiǎn)品運(yùn)輸車輛監(jiān)控信息的可視化。其實(shí)際應(yīng)用效果如圖3所示。
圖3 本方法實(shí)際應(yīng)用效果
本文綜合Google Earth、3G以及GPS等技術(shù),提出了一種新的危險(xiǎn)品運(yùn)輸車輛監(jiān)控信息可視化方法。該方法采用3G無線網(wǎng)絡(luò)使GPS數(shù)據(jù)的傳輸更為快速、暢通,采用Google Earth衛(wèi)星實(shí)景地圖實(shí)時(shí)標(biāo)示車輛位置使監(jiān)控更加直觀、準(zhǔn)確,實(shí)現(xiàn)了GPS監(jiān)控信息從動態(tài)采集到無線傳輸再到與Google Earth實(shí)時(shí)通信的整體流程,具有較高的研究價(jià)值和廣闊的應(yīng)用前景。在實(shí)際的應(yīng)用和生產(chǎn)中,該方法還可做進(jìn)一步的研究擴(kuò)展,如在車輛上整合溫度、壓力等傳感器,與GPS數(shù)據(jù)一起發(fā)送給服務(wù)器,實(shí)現(xiàn)對危險(xiǎn)品運(yùn)輸車輛的全方位監(jiān)控。
[1]郭嘉儉.我國GPS車輛定位管理系統(tǒng)的現(xiàn)狀與發(fā)展方向探討[J].全球定位系統(tǒng),2001,26(4),16-22.
[2]Ren Bing-zhong,Kong Wen-huan.Design and Implementation of GPS Vehicle Navigation and Guidance System[J].測試科學(xué)與儀器,2010,1(2):157-160.
[3]曹婷婷,高玉.GPS中NMEA-0183協(xié)議的應(yīng)用[J].電子工程師,2006,32(10):8-9.
[4]陳曉亞,楊華亭,王建華.基于NMEA-0183標(biāo)準(zhǔn)的數(shù)據(jù)串口通訊技術(shù)[J].船舶工程,2008,30(5):134-135.
[5]Klaus Betke.The NMEA0183 Protocol[EB/OL].http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf,2011-04-17.
[6]張文軍,姜炎.2004年全國第五屆嵌入式系統(tǒng)學(xué)術(shù)交流會[C].北京:北京航空航天大學(xué)出版社,2004:265-266.
[7]王艷華,咚淑嬌,陳寶智.危險(xiǎn)化學(xué)品道路運(yùn)輸系統(tǒng)危險(xiǎn)性分析[J].中國安全科學(xué)學(xué)報(bào),2005,15(2):8-12.