NMEA-0183 协议
NMEA 協議是為了在不同的GPS(全球定位系統)導航設備中建立統一的BTCM(海事無線電技術委員會)標準,由美國國家海洋電子協會( NMEA-The National MarineElectronics Associa-tion)制定的一套通訊協議。
GPS 接收機根據NMEA-0183 協議的標準規范,將位置、速度等信息通過串口傳送到PC機、PDA 等設備。NMEA-0183 協議是GPS 接收機應當遵守的標準協議,也是目前GPS 接收機上使用最廣泛的協議,大多數常見的GPS 接收機、GPS 數據處理軟件、導航軟件都遵守或者至少兼容這個協議。
NMEA 通訊協議所規定的通訊語句都已是以ASCII 碼為基礎的,NMEA-0183 協議語句的數據格式如下:“$”為語句起始標志;“,”為域分隔符;“ *”為校驗和識別符,其后面的兩位數為校驗和,代表了“$”和“*”之間所有字符的按位異或值(不包括這兩個字符);“/”為終止符,所有的語句必須以來結束,也就是ASCII 字符的“回車”(十六進制的0D)和“換行”(十六進制的0A)。
一、語法格式:
NMEA 0183 的信息格式一般如下所示:
$aaaaa,df1,df2,….[CR][LF]
所有的信息由$開始,以換行結束,緊跟著$后的五個字符解釋了信息的基本類型,多個參數之間用逗號隔開。
二、協議類型:
NMEA 0183 中有以下三種基本的協議類型:
a) 信息源
b) 查詢
c) 屬性
1) 信息源
標準格式為:
$ttsss,df1,df2,….[CR][LF]
在緊隨$后的兩個字符用來識別作為信息內容識別碼的后3 個字符,信息識別碼定義了保留的數據區,在NMEA 0183 標準下,每個類型的數據區的信息內容是符合標準的。
例如:$HCHDM,238,M[CR][LF]
標明“HC”說明信息源作為一個磁性的羅盤,“HDM” 指明以下是磁性的船首向航向,238 是船首向航向的值,M 指明船首向航向的值是磁性的
2) 查詢
標準格式為:
$ttllQ,sss,[CR][LF]
頭兩個字符做為請求者的信息源的識別碼,后兩個字符作為被查詢的設備的信息識別,最后一個字符說明這是一個查詢信息。緊跟著的字段(sss)包含了三個字的被查詢內容的記憶信息。
查詢意味著接受端需要從信息源那里得到一個有規律的內容,例如,我們可以發一個信息給GPS 接受器請求傳送一個“DISTANCE-TO-WAYPOINT”的信息,得到響應后,GPS 接受器會發送請求的內容,直到接到別的請求。
例如: $CCGPQ,GGA[CR][LF]
說明“CC”這個設備(計算機)正從“GP”這個設備(GPS)查詢GGA 的內容。GPS將每隔一秒傳送這個內容,直到有別的查詢請求。
3) 屬性
這對廠商來說是一種使用沒有在標準下預定義的特殊內容的方法。它通常的格式為:
$PmmmA,df1,df2,…,[CR][LF]
P 說明是屬性內容,mmm 定義為廠商信息代碼,A(A-Z)標明信息類型。
三、常用協議類型解釋:
NMEA-0183 協議定義的語句非常多,但是常用的或者說兼容性最廣的語句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL 等。下面給出這些常用NMEA-0183 語句的字段定義解釋。
1) Global Positioning System Fix Data(GGA)GPS 定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC 時間,hhmmss(時分秒)格式
<2> 緯度ddmm.mmmm(度分)格式(前面的0 也將被傳輸)
<3> 緯度半球N(北半球)或S(南半球)
<4> 經度dddmm.mmmm(度分)格式(前面的0 也將被傳輸)
<5> 經度半球E(東經)或W(西經)
<6> GPS 狀態:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的衛星數量(00~12)(前面的0 也將被傳輸)
<8> HDOP 水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球橢球面相對大地水準面的高度
<11> 差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將為空
<12> 差分站ID 號0000~1023(前面的0 也將被傳輸,如果不是差分定位將為空)
2) GPS DOP and Active Satellites(GSA)當前衛星信息 $GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>*hh
<CR><LF>
<1> 模式,M=手動,A=自動
<2> 定位類型,1=沒有定位,2=2D 定位,3=3D 定位
<3> PRN 碼(偽隨機噪聲碼),正在用于解算位置的衛星號(01~32,前面的0 也將被傳輸)。
<4> PDOP 位置精度因子(0.5~99.9)
<5> HDOP 水平精度因子(0.5~99.9)
<6> VDOP 垂直精度因子(0.5~99.9)
3) GPS Satellites in View(GSV)可見衛星信息
$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,…<4>,<5>,<6>,<7>*hh<CR><LF>
<1> GSV 語句的總數
<2> 本句GSV 的編號
<3> 可見衛星的總數(00~12,前面的0 也將被傳輸)
<4> PRN 碼(偽隨機噪聲碼)(01~32,前面的0 也將被傳輸)
<5> 衛星仰角(00~90 度,前面的0 也將被傳輸)
<6> 衛星方位角(000~359 度,前面的0 也將被傳輸)
<7> 信噪比(00~99dB,沒有跟蹤到衛星時為空,前面的0 也將被傳輸)
注:<4>,<5>,<6>,<7>信息將按照每顆衛星進行循環顯示,每條GSV 語句最多可以顯示4 顆衛星的信息。其他衛星信息將在下一序列的NMEA0183 語句中輸出。
4) Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1> UTC 時間,hhmmss(時分秒)格式
<2> 定位狀態,A=有效定位,V=無效定位
<3> 緯度ddmm.mmmm(度分)格式(前面的0 也將被傳輸)
<4> 緯度半球N(北半球)或S(南半球)
<5> 經度dddmm.mmmm(度分)格式(前面的0 也將被傳輸)
<6> 經度半球E(東經)或W(西經)
<7> 地面速率(000.0~999.9 節,前面的0 也將被傳輸)
<8> 地面航向(000.0~359.9 度,以真北為參考基準,前面的0 也將被傳輸)
<9> UTC 日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0 度,前面的0 也將被傳輸)
<11> 磁偏角方向,E(東)或W(西)
<12> 模式指示(僅NMEA0183 3.00 版本輸出,A=自主定位,D=差分,E=估算,N=數據無效)
5) Track Made Good and Ground Speed(VTG)地面速度信息
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF>
<1> 以真北為參考基準的地面航向(000~359 度,前面的0 也將被傳輸)
<2> 以磁北為參考基準的地面航向(000~359 度,前面的0 也將被傳輸)
<3> 地面速率(000.0~999.9 節,前面的0 也將被傳輸)
<4> 地面速率(0000.0~1851.8 公里/小時,前面的0 也將被傳輸)
<5> 模式指示(僅NMEA0183 3.00 版本輸出,A=自主定位,D=差分,E=估算,N=數
據無效)
6) Geographic Position(GLL)定位地理信息
$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh<CR><LF>
<1> 緯度ddmm.mmmm(度分)格式(前面的0 也將被傳輸)
<2> 緯度半球N(北半球)或S(南半球)
<3> 經度dddmm.mmmm(度分)格式(前面的0 也將被傳輸)
<4> 經度半球E(東經)或W(西經)
<5> UTC 時間,hhmmss(時分秒)格式
<6> 定位狀態,A=有效定位,V=無效定位
<7> 模式指示(僅NMEA0183 3.00 版本輸出,A=自主定位,D=差分,E=估算,N=數
據無效)
?
更全的資料請參考?http://www.gnssweb.com/2848.html
https://max.book118.com/html/2017/1227/146143338.shtm
https://wenku.baidu.com/view/a5fafe600066f5335a812174.html
https://ishare.iask.sina.com.cn/f/31jF2DmcwX2.html
?
總結
以上是生活随笔為你收集整理的NMEA-0183 协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] 说说你对html的嵌套规
- 下一篇: [html] html5点击返回键怎样