GPS NMEA-0183协议常用数据格式及解析攻略
GPS協(xié)議標(biāo)準(zhǔn)目前常用到的是NMEA-0183,很顯然,這是由NMEA發(fā)布的一個(gè)標(biāo)準(zhǔn)。
NMEA是National Marine Electronics Association ,即美國(guó)國(guó)家海洋電子協(xié)會(huì)的縮寫,NMEA是GPS的管理者,為方便GPS的推廣應(yīng)用,發(fā)布了一系列GPS協(xié)議的標(biāo)準(zhǔn)格式。
NMEA-0183就是GPS協(xié)議標(biāo)準(zhǔn)的一個(gè),它的早期版本為NMEA-0180和NMEA-0182。雖然它現(xiàn)在仍然用得很多,但時(shí)光的車輪在前進(jìn),它將會(huì)逐漸被最新的NMEA 2000所替代。
NMEA-183是一個(gè)基于ASCII的串行通信協(xié)議,它由一個(gè)個(gè)的語句組成,理解起來很簡(jiǎn)單。
下面對(duì)它的一些常用的語句進(jìn)行舉例說明,這些,是協(xié)議分析中會(huì)碰到的。
這些常用的NMEA-0183語句如下:
注:發(fā)送次序
$ PZDA、$ GPGGA、$ GPGLL、$ GPVTG、
$ GPGSA、$ GPGSV3、$ GPRMC
協(xié)議幀總說明:???
該協(xié)議采用ASCII碼,其串行通信默認(rèn)參數(shù)為:波特率=4800bps,數(shù)據(jù)位=8bit,開始位=1bit,停止位=1bit,無奇偶校驗(yàn)。???
幀格式形如:$aaccc,ddd,ddd,…,dddhh
1、“ $ ”——幀命令起始位???
2、aaccc——地址域,前兩位為識(shí)別符,后三位為語句名???
3、ddd…ddd——數(shù)據(jù)??
4、“ * ”——校驗(yàn)和前綴???
5、hh——校驗(yàn)和(check?sum),$與*之間所有字符ASCII碼的校驗(yàn)和(各字節(jié)做異或運(yùn)算,得到校驗(yàn)和后,再轉(zhuǎn)換16進(jìn)制格式的ASCII字符。)???
6、——CR(Carriage?Return)?+?LF(Line?Feed)幀結(jié)束,回車和換行
1.$GPGGA???
GPS固定數(shù)據(jù)輸出語句,這是一幀GPS定位的主要數(shù)據(jù),也是使用最廣的數(shù)據(jù)。
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>
<1>?UTC時(shí)間,格式為hhmmss.sss。??
<2>?緯度,格式為ddmm.mmmm(前導(dǎo)位數(shù)不足則補(bǔ)0)。???
<3>?緯度半球,N或S(北緯或南緯)。???
<4>?經(jīng)度,格式為dddmm.mmmm(前導(dǎo)位數(shù)不足則補(bǔ)0)。?
<5>?經(jīng)度半球,E或W(東經(jīng)或西經(jīng))。???
<6>?定位質(zhì)量指示,0=定位無效,1=定位有效。???
<7>?使用衛(wèi)星數(shù)量,從00到12(前導(dǎo)位數(shù)不足則補(bǔ)0)。???<8>?水平精確度,0.5到99.9。???
<9>?天線離海平面的高度,-9999.9到9999.9米???
<10>?高度單位,M表示單位米。???
<11>?大地橢球面相對(duì)海平面的高度(-999.9到999.9)。???<12>?高度單位,M表示單位米。???
<13>?差分GPS數(shù)據(jù)期限(RTCM?SC-104),最后設(shè)立RTCM傳送的秒數(shù)量。???
<14>?差分參考基站標(biāo)號(hào),從0000到1023(前導(dǎo)位數(shù)不足則補(bǔ)0)。???
<15>?校驗(yàn)和。
2 $GPGSA???
GPS?DOP?and?Active?Satellites(GSA)當(dāng)前衛(wèi)星信息
$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>,<7>
<1>模式?:M?=?手動(dòng),?A?=?自動(dòng)。?
<2>定位型式?1?=?未定位,?2?=?二維定位,?3?=?三維定位。?
<3>PRN?數(shù)字:01?至?32?表天空使用中的衛(wèi)星編號(hào),最多可接收12顆衛(wèi)星信息。???
<4>?PDOP位置精度因子(0.5~99.9)???
<5>?HDOP水平精度因子(0.5~99.9)???
<6>?VDOP垂直精度因子(0.5~99.9)???
<7>?Checksum.(檢查位).
3 GPGSV??可視衛(wèi)星狀態(tài)輸出語句??GPGSV**? 可視衛(wèi)星狀態(tài)輸出語句 ??? **GPGSV???可視衛(wèi)星狀態(tài)輸出語句?????GPGSV,?<1>,<2>,<3>,<4>,<5>,<6>,<7>,…,<4>,<5>,<6>,<7>*<8>
<1>?總的GSV語句電文數(shù)。???
<2>?當(dāng)前GSV語句號(hào)。???
<3>?可視衛(wèi)星總數(shù),00至12。???
<4>?衛(wèi)星編號(hào),01至32。???
<5>?衛(wèi)星仰角,00至90度。???
<6>?衛(wèi)星方位角,000至359度。實(shí)際值。???
<7>?信噪比(C/No),00至99dB;無表未接收到訊號(hào)。???<8>?校驗(yàn)和。
注:每條語句最多包括四顆衛(wèi)星的信息,每顆衛(wèi)星的信息有四個(gè)數(shù)據(jù)項(xiàng),即:衛(wèi)星編號(hào)、衛(wèi)星仰角、衛(wèi)星方位角、信噪比。
???
4 $GPRMC???
推薦最小數(shù)據(jù)量的GPS信息(Recommended?Minimum?Specific?GPS/TRANSIT?Data)
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13>
<1>?UTC(Coordinated?Universal?Time)時(shí)間,hhmmss(時(shí)分秒)格式???
<2>?定位狀態(tài),A=有效定位,V=無效定位???
<3>?Latitude,緯度ddmm.mmmm(度分)格式(前導(dǎo)位數(shù)不足則補(bǔ)0)???
<4>?緯度半球N(北半球)或S(南半球)???
<5>?Longitude,經(jīng)度dddmm.mmmm(度分)格式(前導(dǎo)位數(shù)不足則補(bǔ)0)???
<6>?經(jīng)度半球E(東經(jīng))或W(西經(jīng))???
<7>?地面速率(000.0~999.9節(jié),Knot,前導(dǎo)位數(shù)不足則補(bǔ)0)???
<8>?地面航向(000.0~359.9度,以真北為參考基準(zhǔn),前導(dǎo)位數(shù)不足則補(bǔ)0)???
<9>?UTC日期,ddmmyy(日月年)格式???
<10>?Magnetic?Variation,磁偏角(000.0~180.0度,前導(dǎo)位數(shù)不足則補(bǔ)0)???
<11>?Declination,磁偏角方向,E(東)或W(西)???
<12>?Mode?Indicator,模式指示(僅NMEA0183?3.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)???
<13>?校驗(yàn)和。
5. $GPVTG 地面速度信息
GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>?<10>例:GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*<10>?? ?例:GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>?<10>???例:GPVTG,89.68,T,M,0.00,N,0.0,K*5F?
?
?字段0:$GPVTG,語句ID,表明該語句為Track?Made?Good?and?Ground?Speed(VTG)地面速度信息?
?字段1:運(yùn)動(dòng)角度,000?-?359,(前導(dǎo)位數(shù)不足則補(bǔ)0)?
?字段2:T=真北參照系?
?字段3:運(yùn)動(dòng)角度,000?-?359,(前導(dǎo)位數(shù)不足則補(bǔ)0)?
?字段4:M=磁北參照系?
?字段5:水平運(yùn)動(dòng)速度(0.00)(前導(dǎo)位數(shù)不足則補(bǔ)0)?
?字段6:N=節(jié),Knots?
?字段7:水平運(yùn)動(dòng)速度(0.00)(前導(dǎo)位數(shù)不足則補(bǔ)0)?
?字段8:K=公里/時(shí),km/h?
?字段9:校驗(yàn)值
6. $ GPGLL?大地坐標(biāo)信息
地理定位信息$ GPGLL的標(biāo)準(zhǔn)格式如下:
*$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>hh
例:$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D
字段0:$GPGLL,語句ID,表明該語句為Geographic?Position(GLL)地理定位信息?
字段1:緯度ddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)?
字段2:緯度N(北緯)或S(南緯)?
字段3:經(jīng)度dddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)?
字段4:經(jīng)度E(東經(jīng))或W(西經(jīng))?
字段5:UTC時(shí)間,hhmmss.sss格式?
字段6:狀態(tài),A=定位,V=未定位?
字段7:校驗(yàn)值
7 $ GPZDA 當(dāng)前時(shí)間信息
*$GPZDA,<1>,<2>,<3>,<4>,<5>,<6>hh
例如: $GPZDA,105001,25,02,2008,-08,00*67
字段1: UTC時(shí)間 ,hhmmss(時(shí)分秒)
字段2: 日
字段3:月
字段4:年
字段5:本地區(qū)域小時(shí)(NEO-6M未用到,為00-正負(fù)13)
字段6:本地區(qū)域分鐘(NEO-6M未用到,為00-59)
字段7: 校驗(yàn)和
每一幀最后都有一個(gè)hh的校驗(yàn)和,該校驗(yàn)和是通過計(jì)算 $與 * 之間所有字符ASCII碼的異或運(yùn)算得到, 將得到的結(jié)果以ASCII字符表示就是該校驗(yàn)了。
附帶解析鏈接
NMEA數(shù)據(jù)解析方法
總結(jié)
以上是生活随笔為你收集整理的GPS NMEA-0183协议常用数据格式及解析攻略的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习入门初步——MNIST数据格式如
- 下一篇: Django 学习(一)Django安装