NMEA 0813標(biāo)準(zhǔn)數(shù)據(jù)格式的解釋與模擬_第1頁
NMEA 0813標(biāo)準(zhǔn)數(shù)據(jù)格式的解釋與模擬_第2頁
NMEA 0813標(biāo)準(zhǔn)數(shù)據(jù)格式的解釋與模擬_第3頁
NMEA 0813標(biāo)準(zhǔn)數(shù)據(jù)格式的解釋與模擬_第4頁
NMEA 0813標(biāo)準(zhǔn)數(shù)據(jù)格式的解釋與模擬_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、NMEA 0813標(biāo)準(zhǔn)數(shù)據(jù)格式的解釋和模擬NMEA是“National Marine Electronics Association”(國際海洋電子協(xié)會)的縮寫,同時也是數(shù)據(jù)傳輸標(biāo)準(zhǔn)工業(yè)協(xié)會,該協(xié)會定制的GNSS數(shù)據(jù)格式是NMEA 0183數(shù)據(jù)格式,它是一套定義接收機輸出的標(biāo)準(zhǔn)信息,有幾種不同的格式,每種都是獨立相關(guān)的ASCII格式,逗點隔開數(shù)據(jù)流,數(shù)據(jù)流長度從30-100字符不等,通常以每秒間隔選擇輸出。最常用的格式為“GGA”,它包含了定位時間、緯度、經(jīng)度、高度、定位所用的衛(wèi)星數(shù)、DOP值、差分狀態(tài)和校正時段等,還有速度,跟蹤,日期等。GPS接收機根據(jù)NMEA 0183協(xié)議的標(biāo)準(zhǔn)規(guī)范,將位

2、置、速度等信息通過串口傳送到PC機、PDA等設(shè)備。NMEA實際上已成為所有的GNSS接收機和最通用的數(shù)據(jù)輸出格式,同時它也被用于與GNSS接收機接口的大多數(shù)軟件包里。NMEA-0183協(xié)議是GNSS接收機應(yīng)當(dāng)遵守的標(biāo)準(zhǔn)協(xié)議,也是目前GPS接收機上使用最廣泛的協(xié)議,大多數(shù)常見的GNSS接收機、GNSS數(shù)據(jù)處理軟件、導(dǎo)航軟件都遵守或者至少兼容這個協(xié)議。NMEA 0813格式與專業(yè)RTCM2.3/3.0和CMR+的GNSS數(shù)據(jù)格式不同,NMEA 0813格式主要針對民用定位導(dǎo)航設(shè)備,通過NMEA 0183格式,可以實現(xiàn)GNSS接收機與PC或PDA之間的數(shù)據(jù)交換,可以通過USB和COM口等通用數(shù)據(jù)接口

3、進(jìn)行數(shù)據(jù)傳輸,其兼容性高,數(shù)據(jù)傳輸穩(wěn)定。同時NMEA 0183可以作為民用差分GPS服務(wù)解算基礎(chǔ)數(shù)據(jù),通過CORS參考站和GPRS/CDMA公網(wǎng)通訊,直接接收NMEA 0183兼容格式的差分信息,實現(xiàn)一般差分GNSS服務(wù)。NMEA最基本的使用方式如圖1所示。 圖一NMEA-0183協(xié)議定義的語句非常多,但是常用的或者說兼容性最廣的語句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。NMEA-0183 的每條語句的格式如下表1所示。表1 NMEA協(xié)議語句格式定義符號(ASCII)定義“$”語句起始位aaccc地址域,前兩位為識別符,后三位為語句名“,”域

4、分隔符dddddd發(fā)送的數(shù)據(jù)內(nèi)容“*”效驗和符號,后面的兩位數(shù)是效驗和hh效驗和/終止符,回車或換行不同的GPSOEM接收板提供的NMEA語句有很大差異,主要表現(xiàn)在字段的意義和位置上。用戶需要先弄清楚需要哪些信息,然后對照GPS OEM接收板的技術(shù)資料,尋找那些包括所需信息的NMEA語句。下面將介紹兼容性最廣泛的6條NMEA語句(1)$GPGGA語句Global Positioning System Fix Data(GGA),即GPS定位信息。該語句中反映GPS定位主要數(shù)據(jù),包括經(jīng)緯度、質(zhì)量因子、HDOP、高程、參考站號等字段。其標(biāo)準(zhǔn)格式如下:$GPGGA,M,M,*hh各字段的含義和取值范

5、圍見表2所示。表2 $GPGGA語句各字段的含義和取值范圍字段含義取值范圍UTC時間hhmmss.ss000000.00235959.99緯度,格式:ddmm.mmmm000000008959.9999南北半球N北緯;S南緯經(jīng)度格式dddmm.mmmm00000.000017959.9999東西半球E表示東經(jīng);W表示西經(jīng)GPS狀態(tài)0=未定位,1=GPS單點定位固定解,2=差分定位,3=PPS解;4=RTK固定解;5=RTK浮點解;6=估計值;7=手工輸入模式;8=模擬模式應(yīng)用解算位置的衛(wèi)星數(shù)0012HDOP, 水平圖形強度因子0.50099.000(大于6不可用)海拔高度-9999.99999

6、9.9地球橢球面相對大地水準(zhǔn)面的高度(高程異常)-9999.999999.9差分時間從最近一次接收到差分信號開始的秒數(shù),如果不是差分定位將為空參考站號00001023;不使用DGPS時為空例句:$GPGGA,074529.82,2429.6717,N,11804.6973,E,1,8,1.098,42.110,M,M,*76(2)$GPGSA語句GPS DOP and Active Satellites(GSA)即當(dāng)前衛(wèi)星信息, 其標(biāo)準(zhǔn)格式如下:$GPGSA,*hh各字段的含義和取值范圍見表3所示。表3 $GPGSA語句各字段的含義和取值范圍字段含義取值范圍模式M=手動,A=自動定位類型1=沒

7、有定位,2=2D定位,3=3D定位PRN碼(偽隨機噪聲碼),正在用于解算位置的衛(wèi)星號0132PDOP位置精度因子0.599.9HDOP水平精度因子0.599.9VDOP垂直精度因子0.599.9例句:$GPGSA,A,3,19,11,03,23,27,13,16,3.43,1.67,2.99*0E(3)$GPGSV語句GPS Satellites in View(GSV)可見衛(wèi)星信息,反映GPS可見星的方位角、俯仰角、信噪比等。其標(biāo)準(zhǔn)格式如下:$GPGSV,*hh各字段的含義和取值范圍見表4所示。表4 $GPGSV語句各字段的含義和取值范圍字段含義取值范圍總的GSV語句電文數(shù)012當(dāng)前GSV語

8、句號1-3可視衛(wèi)星總數(shù)0012衛(wèi)星號0132衛(wèi)星仰角0090度衛(wèi)星方位角000359度信噪比0099dB,沒有跟蹤到衛(wèi)星時為空注:,信息將按照每顆衛(wèi)星進(jìn)行循環(huán)顯示,每條GSV語句最多可以顯示4顆衛(wèi)星的信息。其他衛(wèi)星信息將在下一序列的NMEA0183語句中輸出。例句:$GPGSV,3,1,11,1,83,54,32,3,19,192,28,6,26,57,36,7,51,140,37*7D$GPGSV,3,2,11,14,40,136,34,16,64,266,36,20,21,293,22,2,168,*4C$GPGSV,3,3,11,23,10,321,25,53,7,40,30,2,46,

9、*48(4)$GPRMC 語句Recommended Minimum Specific GPS/TRANSIT Data(RMC),即推薦定位信息。其標(biāo)準(zhǔn)格式如下:$GPRMC,*hh各字段的含義和取值范圍見表5所示。表5 $GPRMC語句各字段的含義和取值范圍字段含義取值范圍UTC時間, hhmmss.ss000000.00235959.99定位狀態(tài)A=有效定位,V=無效定位緯度,格式:ddmm.mmmm000000008959.9999南北半球N表示北緯;S表示南緯經(jīng)度格式dddmm.mmmm00000.000017959.9999東西半球E表示東經(jīng);W表示西經(jīng)地面速率000.0999.9

10、節(jié)地面航向000.0359.9,以真北為參考基準(zhǔn)UTC日期,格式:ddmmyy日月年磁偏角000.0180.0度磁偏角E表示偏東;W表示偏西模式指示(NMEA0183 3.00版本輸出)A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效例句:$GPRMC,074529.82,A,2429.6717,N,11804.6973,E,12.623,32.122,010806,W,A*08(5)$GPVTG 語句Track Made Good and Ground Speed(VTG),即地面速度信息。其標(biāo)準(zhǔn)格式為:$GPVTG,T,M,N,K,*hh各字段的含義和取值范圍見表6所示。表6 $GPVTG

11、語句各字段的含義和取值范圍字段含義取值范圍以真北為參考基準(zhǔn)的地面航向000359度以磁北為參考基準(zhǔn)的地面航向000359度地面速率000.0999.9節(jié)地面速率0000.01851.8公里/小時模式指示(僅NMEA0183 3.00版本輸出)A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效例句:$GPVTG,257.314,T,257.314,M,10.739,N,19.888,K,A*2F(6)$GPGLL語句Geographic Position(GLL),即定位地理信息。其標(biāo)準(zhǔn)格式如下:$GPGLL,*hh各字段的含義和取值范圍見表7所示。表7 $GPGLL語句各字段的含義和取值范圍字段含

12、義取值范圍緯度,格式:ddmm.mmmm000000008959.9999南北半球N表示北半球;S表示南半球經(jīng)度,格式:dddmm.mmmm00000.000017959.9999東西半球E表示東經(jīng);W表示西經(jīng)UTC時間,格式:hhmmss000000.00235959.99定位狀態(tài)A=有效定位,V=無效定位模式指示(NMEA0183 3.00版本輸出)A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效5 NMEA 0183數(shù)據(jù)模擬該源代碼為VC+源代碼,是對一個模擬NMEA數(shù)據(jù)的類的定義。struct CNmeaDataCNmeaData ();void ResetData ();/ Data

13、retrieved from the NMEA sentences.double lat; / 緯度,單位為度(正數(shù)為北緯,負(fù)數(shù)為南緯)double lon; / 經(jīng)度,單位為度(正數(shù)為東經(jīng),負(fù)數(shù)為西經(jīng))double altitude; / 海拔高度,米double speed; / 速度,節(jié)double track; /追蹤衛(wèi)星高度角,度double magVariation; / 磁偏角,度double hdop; / HDOP值int numSats; / 追蹤衛(wèi)星數(shù)int UTCYear; / UTC年int UTCMonth; / UTC月int UTCDay; / UTC日int

14、UTCHour; / UTC時int UTCMinute; / UTC分int UTCSecond; / UTC秒CSatData satDataMAC_SATS;/ 衛(wèi)星鎖定數(shù):/ 0 = 無效, 1 = 衛(wèi)星鎖定, 2 = DGPS狀態(tài)GPS_FIX_QUALITY lastFixQuality;/ 有效衛(wèi)星數(shù)bool isValidLat; / 緯度bool isValidLon; / 經(jīng)度bool isValidAltitude; / 高程bool isValidSpeed; / 速度bool isValidDate; / 日期bool isValidTime; / 時間bool is

15、ValidTrack; / 追蹤衛(wèi)星角bool isValidMagVariation; / 磁偏角變化bool isValidHdop; / HDOP值bool isValidSatData; / 衛(wèi)星數(shù)/ 確定是否有有效的坐標(biāo)數(shù)據(jù)發(fā)送到數(shù)據(jù)端口bool hasCoordEverBeenValid;class CNmeaParserpublic:CNmeaParser ();SENTENCE_STATUS ParseSentence (const char* sentence);void GetData (CNmeaData& data)const;void ResetData ()m_da

16、ta.ResetData ();private:bool ParseDegrees (double& degrees, const char* degString)const;bool ParseDate (int& year, int& month, int& day,const char* dateString)const;bool ParseTime (int& hour, int& minute, int& second,const char* timeString)const;void ParseAndValidateAltitude (const char* field, cons

17、t char unit);void ParseAndValidateDate (const char* field);void ParseAndValidateFixQuality (const char* field);void ParseAndValidateLat (const char* field, const char hem);void ParseAndValidateLon (const char* field, const char hem);void ParseAndValidateHdop (const char* field);void ParseAndValidate

18、Speed (const char* field);void ParseAndValidateMagVariation(const char* field,const char direction);void ParseAndValidateTime (const char* field);void ParseAndValidateTrack (const char* field);void ParseGGA (const char* sentence);void ParseGLL (const char* sentence);void ParseRMC (const char* senten

19、ce);void ParseGSV (const char* sentence);bool GetNextField (char* data, const char* sentence,uint& currentPosition)const;bool IsValidSentenceType (const char* sentence)const;bool IsCorrectChecksum (const char* sentence)const;CNmeaData m_data;/ 需要分解GSV語句int m_lastSentenceNumber;/ 確定結(jié)束語句int m_numSente

20、nces; / 處理語句數(shù)int m_numSatsExpected; / 分析捕獲衛(wèi)星數(shù)int m_numSatsLeft; / 分析失鎖衛(wèi)星數(shù)int m_satArrayPos; / 下一次捕獲衛(wèi)星位置預(yù)測CSatData m_tempSatDataMAC_SATS;class CNmeaSerialpublic:CNmeaSerial ();CNmeaSerial (HWND hMsgWnd, DWORD timeout);CNmeaSerial ();SERIAL_RESULT_TYPE CloseConnection ();SERIAL_RESULT_TYPE OpenConnection ();SERIAL_RESULT_TYPE OpenConnection (uint8 comPort, uint32 baudRate,uint8 dataBits, SETPARITY parity, STOPBITS stopBits);SERIAL_RESULT_TYPE GetData (CNmeaData& data)const;SERIAL_RESULT_TYPE GetSettings

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論