李 冰,曾連蓀
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
GPS(Global Position System)即全球定位系統(tǒng),是20世紀(jì)70年代由美國陸??杖娐?lián)合研制的新一代空間衛(wèi)星導(dǎo)航定位系統(tǒng) ,其主要目的是用來為陸、海、空3大領(lǐng)域提供實(shí)時(shí)、全天候及全球性導(dǎo)航服務(wù),具有高精度和自動(dòng)測(cè)量的特點(diǎn)。利用該系統(tǒng),用戶還能夠進(jìn)行高精度的時(shí)間傳遞和精密定位。隨著GPS的發(fā)展和完善其應(yīng)用層面日益增大,嵌入式GPS的手持終端應(yīng)運(yùn)而生。而今,人們對(duì)生活智能化提出了更高的要求,使其在GIS領(lǐng)域上的應(yīng)用得到了廣泛關(guān)注[1]。例如智慧城市、旅游導(dǎo)航等。用戶可以手持帶有GPS的MID實(shí)時(shí)獲取位置、時(shí)間信息,實(shí)現(xiàn)定位導(dǎo)航功能。基于GPS的特性,文中介紹了GPS定位信息的提取方法,包括與MID串口通信的實(shí)現(xiàn)過程,并對(duì)獲取的數(shù)據(jù)信號(hào)通過相關(guān)的協(xié)議進(jìn)行解析。最后探討了嵌入式GPS在導(dǎo)游中的應(yīng)用。GPS還將在更多領(lǐng)域上得到應(yīng)用,為人們的生活提供更大的方便。服務(wù)人性化、生活智能化將逐步實(shí)現(xiàn)。
GPS信號(hào)通過串口以NMEA-0183標(biāo)準(zhǔn)格式輸出,NMEA-0183通信協(xié)議,提供6種數(shù)據(jù)格式,分別是 GGA,GLL,GSA,GSV,RMC,VTG。 在此主要介紹 RMC 格式數(shù)據(jù)[2]。
$GPRMC是GPS推薦的最短數(shù)據(jù),其幀結(jié)構(gòu)為:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>
字段 0:$GPRMC,語句 ID,表明該語句為 Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦最小定位信息。GP為信息來源,RMC為句型識(shí)別符
字段 1:UTC 時(shí)間,hhmmss.sss格式
字段 2:狀態(tài),A=定位,V=未定位
字段3:緯度ddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)
字段 4:緯度 N(北緯)或 S(南緯)
字段5:經(jīng)度dddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)
字段 6:經(jīng)度E(東經(jīng))或W(西經(jīng))
字段 7:速度,節(jié),Knots
字段 8:方位角,度
字段9:UTC日期,DDMMYY格式
字段 10:磁偏角,(000-180)度(前導(dǎo)位數(shù)不足則補(bǔ) 0)
字段11:校驗(yàn)值
對(duì)接收到的數(shù)據(jù)進(jìn)行解析后即可獲得經(jīng)緯度、速度、時(shí)間等信息,從而實(shí)現(xiàn)GPS定位信息的提取。
目前MID主要使用Android操作系統(tǒng),然而相比Android系統(tǒng),WinCE操作系統(tǒng)的穩(wěn)定性相對(duì)更高,技術(shù)更加成熟[3]。本文將介紹在WinCE6.0操作系統(tǒng)下GPS信號(hào)的提取與解析[4]。GPS軟件流程圖如圖1所示。
圖1 GPS軟件流程圖Fig.1 Flow chart of the GPS software
首先打開串口進(jìn)行串口的初始化,配置串口的參數(shù),根據(jù)硬件配置,默認(rèn)設(shè)置串口為COM4口,比特率為9 600 bit/s,完成所有初始化工作后,啟動(dòng)監(jiān)聽線程,監(jiān)聽串口上所有的輸入數(shù)據(jù),當(dāng)接收到數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行保存,若無數(shù)據(jù),則繼續(xù)監(jiān)聽。系統(tǒng)1 s定時(shí)觸發(fā)事件,若數(shù)據(jù)存在,則對(duì)接收到的數(shù)據(jù)按照NMEA0183協(xié)議解析,從而顯示在用戶界面上。
首先創(chuàng)建串口的讀線程,然后進(jìn)行串口的監(jiān)聽,等待指定讀事件的發(fā)生。如果有可讀數(shù)據(jù)則讀串口,對(duì)接收到的事件進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)讀取流程圖如圖2所示。
圖2 數(shù)據(jù)讀取流程圖Fig.2 Flow chart of the data reading
1)打開串行端口
通過調(diào)用CreateFile函數(shù)打開串行端口
m_hComm =CreateFile (Port,GENERIC_READ |GENERIC_WRITE,0,0,OPEN_EXISTING,0,0)。 這個(gè)函數(shù)的返回值是已打開串行端口的句柄值。
2)串行端口通信配置
串口打開后,需對(duì)串口進(jìn)行配置。用GetCommState函數(shù)獲得當(dāng)前打開的串口參數(shù),然后根據(jù)需要修改DCB的成員變量,用SetCommState函數(shù)來設(shè)置新的串口參數(shù)。
3)設(shè)置狀態(tài)參數(shù)
SetCommMask(m_hComm,EV_RXCHAR);
4)設(shè)置超時(shí)參數(shù)
為防止程序陷入循環(huán)狀態(tài),需要設(shè)置超時(shí)值。
5)讀寫串口通信
fReadState=ReadFile(m_hComm,data,length,&dwLength,NULL); //從串口讀取數(shù)據(jù)
fWriteState=WriteFile(m_hComm,buf,dwCharToWrite*sizeof(char),&dwBytesWritten,NULL); //向串口寫入數(shù)據(jù)
6)通信結(jié)束關(guān)閉串口
函數(shù)CloseHandle(m_hComm)用來關(guān)閉串口。當(dāng)串口獲取 GPS接收機(jī)數(shù)據(jù)信號(hào)后,需要根據(jù)NMEA-0183通信協(xié)議解析GPS數(shù)據(jù),獲取移動(dòng)目標(biāo)當(dāng)前的格林尼治時(shí)間和位置,而我國的標(biāo)準(zhǔn)時(shí)間需在格林尼治時(shí)間上加上8小時(shí)。
GPS使用的坐標(biāo)系為WGS_84坐標(biāo)系,而我國通常使用的是國家坐標(biāo)系,如北京54國家坐標(biāo)系,因此需要進(jìn)行坐標(biāo)轉(zhuǎn)換。GPS在與MID通信過程中可通過串口每秒發(fā)送10條數(shù)據(jù)。實(shí)際應(yīng)用中可根據(jù)需要解析所需定位數(shù)據(jù)[5]。
首先,在開發(fā)平臺(tái)上對(duì)程序進(jìn)行編譯成功后,然后同步到硬件平臺(tái)上,并運(yùn)行該軟件,實(shí)現(xiàn)串口打開,使接收機(jī)處于工作狀態(tài),同時(shí)獲取GPS數(shù)據(jù),最終顯示在數(shù)據(jù)信息框中[6]。
GPS數(shù)據(jù)信息采集程序運(yùn)行如圖3所示。
圖3 GPS信號(hào)采集程序運(yùn)行界面圖Fig.3 Operation interface diagram of the GPS signal acquisition program
GIS(Geographic Information System)地理信息系統(tǒng)是上世紀(jì) 60年代興起的技術(shù),經(jīng)過 40余年的發(fā)展,GIS技術(shù)已趨成熟,現(xiàn)在已進(jìn)入推廣和普及應(yīng)用階段。GIS是一項(xiàng)以計(jì)算機(jī)為基礎(chǔ)的新興技術(shù),圍繞著這項(xiàng)技術(shù)的研究、開發(fā)和應(yīng)用形成了一門交叉性、邊緣性的學(xué)科,是管理和研究空間數(shù)據(jù)的技術(shù)系統(tǒng),在計(jì)算機(jī)軟硬件支持下,它可以對(duì)空間數(shù)據(jù)按地理坐標(biāo)或空間位置進(jìn)行各種處理、對(duì)數(shù)據(jù)的有效管理、研究各種空間實(shí)體及相互關(guān)系。通過對(duì)多因素的綜合分析,它可以迅速地獲取滿足應(yīng)用需要的信息,并能以地圖、圖形或數(shù)據(jù)的形式表示處理的結(jié)果。
隨著嵌入式GPS的出現(xiàn),GIS的應(yīng)用領(lǐng)域也得到了新的擴(kuò)展。例如車載導(dǎo)航定位系統(tǒng)的實(shí)現(xiàn),其大大方便了出行者,改善了交通狀況。而隨著城市的快速發(fā)展,我國提出了智慧城市的方案。目前宣布準(zhǔn)備或正在規(guī)劃和計(jì)劃建設(shè)智慧城市的有北京、上海、廣州、南京、沈陽、武漢、合肥、昆明、無錫、昆山、富陽、雙流等。而其中上海在智慧城市的建設(shè)中引領(lǐng)風(fēng)騷。其涉及領(lǐng)域之廣可及智慧安防,醫(yī)療,交通,校園,節(jié)能等。這將成為GIS發(fā)展的新領(lǐng)域。因此,嵌入式GPS在GIS上的應(yīng)用具有很大的發(fā)展前景。
隨著旅游業(yè)的蓬勃發(fā)展,傳統(tǒng)的導(dǎo)游解說式旅游已經(jīng)不能滿足游客的需求。人們更希望自主游玩兒,而不是跟著導(dǎo)游走馬觀花,然而對(duì)于景區(qū)的陌生常常又會(huì)給游客帶來困擾,不能隨心所欲。此時(shí)GPS定位在GIS上的應(yīng)用即可解決這一問題。以游樂園為例,游客即可進(jìn)行自主游玩。
如圖4所示[7],游客手持帶有GPS的手持終端進(jìn)入游樂園,當(dāng)游客進(jìn)入一個(gè)區(qū)域時(shí),這里假設(shè)游客進(jìn)入城堡區(qū),通過GPS定位,此時(shí)手持終端將自動(dòng)彈出界面,告知游客處于城堡區(qū),而在城堡區(qū)界面中將設(shè)有幾個(gè)窗口,分別標(biāo)有城堡區(qū)中各城堡的名稱,如白雪公主城堡、灰姑娘城堡、美女與野獸城堡等。用戶挑選自己感興趣的城堡點(diǎn)擊進(jìn)入界面,此時(shí)便可查看相關(guān)城堡圖片,閱讀相關(guān)資訊等。游客便可根據(jù)喜好判斷是否前去游玩兒。
文中對(duì)GPS定位信息的提取進(jìn)行了介紹。隨著GPS的發(fā)展,嵌入式GPS的手持終端得到了廣泛應(yīng)用。在我國,智慧城市的提出又將帶來嵌入式GPS在GIS領(lǐng)域上新的應(yīng)用,具有美好的發(fā)展前景。
圖4 游樂園導(dǎo)游圖Fig.4 Tourist map of the Amusement park
[1]賈國憲,劉新江.VC環(huán)境下基于GlS的GPS導(dǎo)航系統(tǒng)的開發(fā)[J].北京測(cè)繪,2003(2):11-15.JIA Guo-xian,LIU Xin-jiang.The development of GPS navigation system based on GIS in the VC environment[J].Beijing Surveying and Mapping,2003(2):11-15.
[2]李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實(shí)踐 [M].北京:人民郵電出版社,2002.
[3]邱小平.Windows CE6.0開發(fā)經(jīng)典[M].北京:電子工業(yè)出版社,2009.
[4]王劍.Windows CE下的串口通信的實(shí)現(xiàn)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(3):21-23.WANG Jian.The realization of the serial communication based on Windows CE operating system[J].Microcontroller&Embedded Systems,2003(3):21-23.
[5]Christopher J,Hegarty,寇艷紅.GPS原理與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2007.
[6]李洪濤,許國昌.GPS應(yīng)用程序設(shè)計(jì)[M].北京:科學(xué)出版社,1999.
[7]吳秀琳,劉永革,王利軍.Mapinfo 9.5標(biāo)準(zhǔn)教程[M].北京:清華大學(xué)出版社,2009.
[8]杭觀榮,康小錄.美國AEHF軍事通信衛(wèi)星推進(jìn)系統(tǒng)及其在首發(fā)星上的應(yīng)用[J].火箭推進(jìn),2011(06):1-8.HANG Guan-rong,KANG Xiao-lu.Propulsion system of USA AEHF military communication satellite and its application on AEHF-1 satellite[J].Journal of Rocket Propulsion,2011(06):1-8.