NEMA協議詳解


NEMA協議的由來

NMEA協議是為了在不同的GPS(全球定位系統)導航設備中建立統一的BTCM(海事無線電技術委員會)標准,由美國國家海洋電子協會(NMEA-The   National Marine Electronics   Associa-tion)制定的一套通訊協議。GPS接收機根據NMEA-0183協議的標准規范,將位置、速度等信息通過串口傳送到PC機、PDA等設備。

NMEA-0183協議是GPS接收機應當遵守的標准協議,也是目前GPS接收機上使用最廣泛的協議,大多數常見的GPS接收機、GPS數據處理軟件、導航軟件都遵守或者至少兼容這個協議。

不過,也有少數廠商的設備使用自行約定的協議比如GARMIN的GPS設備(部分GARMIN設備也可以輸出兼容NMEA-0183協議的數據)。軟件方面,我們熟知的Google   Earth目前也不支持NMEA-0183協議,但Google   Earth已經聲明會盡快實現對NMEA-0183協議的兼容。呵呵,除非你確實強壯到可以和工業標准分庭抗禮,否則你就得服從工業標准。

NMEA-0183協議定義的語句非常多,但是常用的或者說兼容性最廣的語句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面給出這些常用NMEA-0183語句的字段定義解釋。

$GPGGA

例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F

字段0:$GPGGA,語句ID,表明該語句為Global Positioning System Fix   Data(GGA)GPS定位信息

字段1:UTC 時間,hhmmss.sss,時分秒格式

字段2:緯度ddmm.mmmm,度分格式(前導位數不足則補0)

字段3:緯度N(北緯)或S(南緯)

字段4:經度dddmm.mmmm,度分格式(前導位數不足則補0)

字段5:經度E(東經)或W(西經)

字段6:GPS狀態,0=未定位,1=非差分定位,2=差分定位,3=無效PPS,6=正在估算

字段7:正在使用的衛星數量(00 - 12)(前導位數不足則補0)

字段8:HDOP水平精度因子(0.5 - 99.9)

字段9:海拔高度(-9999.9 - 99999.9)

字段10:地球橢球面相對大地水准面的高度

字段11:差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將為空)

字段12:差分站ID號0000 - 1023(前導位數不足則補0,如果不是差分定位將為空)

字段13:校驗值

$GPGSA

例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A

字段0:$GPGSA,語句ID,表明該語句為GPS DOP and Active Satellites(GSA)當前衛星信息

字段1:定位模式,A=自動手動2D/3D,M=手動2D/3D

字段2:定位類型,1=未定位,2=2D定位,3=3D定位

字段3:PRN碼(偽隨機噪聲碼),第1信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段4:PRN碼(偽隨機噪聲碼),第2信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段5:PRN碼(偽隨機噪聲碼),第3信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段6:PRN碼(偽隨機噪聲碼),第4信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段7:PRN碼(偽隨機噪聲碼),第5信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段8:PRN碼(偽隨機噪聲碼),第6信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段9:PRN碼(偽隨機噪聲碼),第7信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段10:PRN碼(偽隨機噪聲碼),第8信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段11:PRN碼(偽隨機噪聲碼),第9信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段12:PRN碼(偽隨機噪聲碼),第10信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段13:PRN碼(偽隨機噪聲碼),第11信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段14:PRN碼(偽隨機噪聲碼),第12信道正在使用的衛星PRN碼編號(00)(前導位數不足則補0)

字段15:PDOP綜合位置精度因子(0.5 - 99.9)

字段16:HDOP水平精度因子(0.5 - 99.9)

字段17:VDOP垂直精度因子(0.5 - 99.9)

字段18:校驗值

$GPGSV

例:$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70

字段0:$GPGSV,語句ID,表明該語句為GPS Satellites in View(GSV)可見衛星信息

字段1:本次GSV語句的總數目(1 - 3)

字段2:本條GSV語句是本次GSV語句的第幾條(1 - 3)

字段3:當前可見衛星總數(00 - 12)(前導位數不足則補0)

字段4:PRN 碼(偽隨機噪聲碼)(01 - 32)(前導位數不足則補0)

字段5:衛星仰角(00 - 90)度(前導位數不足則補0)

字段6:衛星方位角(00 - 359)度(前導位數不足則補0)

字段7:信噪比(00-99)dbHz

字段8:PRN 碼(偽隨機噪聲碼)(01 - 32)(前導位數不足則補0)

字段9:衛星仰角(00 - 90)度(前導位數不足則補0)

字段10:衛星方位角(00 - 359)度(前導位數不足則補0)

字段11:信噪比(00-99)dbHz

字段12:PRN 碼(偽隨機噪聲碼)(01 - 32)(前導位數不足則補0)

字段13:衛星仰角(00 - 90)度(前導位數不足則補0)

字段14:衛星方位角(00 - 359)度(前導位數不足則補0)

字段15:信噪比(00-99)dbHz

字段16:校驗值

NMEA0183標准語句另一種表達方式詳解

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=數據無效)                

二、 GARMIN定義的語句

7、 Estimated Error Information(PGRME)估計誤差信息

$PGRME,<1>,M,<2>,M,<3>,M*hh<CR><LF>  

<1> HPE(水平估計誤差),0.0~999.9米

<2> VPE(垂直估計誤差),0.0~999.9米

<3> EPE(位置估計誤差),0.0~999.9米

8、 GPS Fix Data Sentence(PGRMF)GPS定位信息

$PGRMF,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>*hh<CR><LF>  

<1> GPS周數(0~1023)

<2> GPS秒數(0~604799)

<3> UTC日期,ddmmyy(日月年)格式

<4> UTC時間,hhmmss(時分秒)格式

<5> GPS跳秒數

<6> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)

<7> 緯度半球N(北半球)或S(南半球)

<8> 經度dddmm.mmmm(度分)格式(前面的0也將被傳輸)

<9> 經度半球E(東經)或W(西經)

<10> 模式,M=手動,A=自動

<11> 定位類型,0=沒有定位,1=2D定位,2=3D定位

<12> 地面速率(0~1851公里/小時)

<13> 地面航向(000~359度,以真北為參考基准)

<14> PDOP位置精度因子(0~9,四舍五入取整)

<15> TDOP時間精度因子(0~9,四舍五入取整)

9、 Map Datum(PGRMM)坐標系統信息

$PGRMM,<1>*hh<CR><LF>  

<1> 當前使用的坐標系名稱(數據長度可變,如“WGS 84”)                

注:該信息在與MapSource進行實時連接的時候使用。

10、 Sensor Status Information(PGRMT)工作狀態信息

$PGRMT,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*hh<CR><LF>  

<1> 產品型號和軟件版本(數據長度可變,如“GPS 15L/15H VER 2.05”)

<2> ROM校驗測試,P=通過,F=失敗

<3> 接收機不連續故障,P=通過,F=失敗

<4> 存儲的數據,R=保持,L=丟失

<5> 時鍾的信息,R=保持,L=丟失

<6> 振盪器不連續漂移,P=通過,F=檢測到過度漂移

<7> 數據不連續采集,C=正在采集,如果沒有采集則為空

<8> GPS接收機溫度,單位為攝氏度

<9> GPS接收機配置數據,R=保持,L=丟失                

注:本語句每分鍾發送一次,與所選擇的波特率無關。

11、 3D velocity Information(PGRMV)三維速度信息

$PGRMV,<1>,<2>,<3>*hh<CR><LF>  

<1> 東向速度,514.4~514.4米/秒

<2> 北向速度,514.4~514.4米/秒

<3> 上向速度,999.9~9999.9米/秒

12、 DGPS Beacon Information(PGRMB)信標差分信息

$PGRMB,<1>,<2>,<3>,<4>,<5>,K,<6>,<7>,<8>*hh<CR><LF>  

<1> 信標站頻率(0.0,283.5~325.0kHz,間隔為0.5kHz)

<2> 信標比特率(0,25,50,100或200bps)

<3> SNR信標信號信噪比(0~31)

<4> 信標數據質量(0~100)

<5> 與信標站的距離,單位為公里

<6> 信標接收機的通訊狀態,0=檢查接線,1=無信號,2=正在調諧,3=正在接收,4=正在掃描

<7> 差分源,R=RTCM,W=WAAS,N=非差分定位

<8> 差分狀態,A=自動,W=僅為WAAS,R=僅為RTCM,N=不接收差分信號

任何無效的數字將以下划線來代替。
NMEA-0183數據實際舉例:

NMEA-0183數據協議是一個比較復雜的多樣的格式,這里有其中的幾個例子

nmea數據如下:

$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77                

$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54                

$GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04                

$GPGGA,121253.000,3937.3090,N,11611.6057,E,1,06,1.2,44.6,M,-5.7,M,,0000*72                

$GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D                

$GPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,30*70                

$GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,20*7E                

$GPGSV,3,3,10,29,07,074,,30,07,163,28*7D

說明:NMEA0183格式以“$”開始,主要語句有GPGGA,GPVTG,GPRMC等

1、 GPS DOP and Active Satellites(GSA)當前衛星信息

$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7>

<1>模式 :M = 手動, A = 自動。

<2>定位型式 1 = 未定位, 2 = 二維定位, 3 = 三維定位。

<3>PRN 數字:01 至 32 表天空使用中的衛星編號,最多可接收12顆衛星信息。

<4> PDOP位置精度因子(0.5~99.9)

<5> HDOP水平精度因子(0.5~99.9)

<6> VDOP垂直精度因子(0.5~99.9)

<7> Checksum.(檢查位).

2、 GPS Satellites in View(GSV)可見衛星信息

$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8>

<1> GSV語句的總數

<2> 本句GSV的編號

<3> 可見衛星的總數,00 至 12。

<4> 衛星編號, 01 至 32。

<5>衛星仰角, 00 至 90 度。

<6>衛星方位角, 000 至 359 度。實際值。

<7>訊號噪聲比(C/No), 00 至 99 dB;無表未接收到訊號。

<8>Checksum.(檢查位).

第<4>,<5>,<6>,<7>項個別衛星會重復出現,每行最多有四顆衛星。其余衛星信息會於次一行出現,若未使用,這些字段會空白。

3、Global Positioning System Fix Data(GGA)GPS定位信息

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh

<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也將被傳輸,如果不是差分定位將為空)

4、Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦定位信息

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh

<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                

<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=數據無效) 

                對於確定數據精確度和GPS穩定性,衛星的位置是非常重要的信息。既然GPS精確讀將被詳細地在這兩部分介紹,那么這一部分將主要描述衛星位置和信號的強度。

衛星二十四小時在軌道上運轉着,它們在任一時間、任一地點上都至少有六顆能被用戶看到。衛星不斷地監測地球,這樣就避免出現一些盲點或者衛星無法看到的地 方。就像在天空中找星星一樣,衛星的位置被表示為一個方位角和高程。如前面所述,方位角為直接水平測量。高程測量則為一個與水平面的夾角,其中0°表示水 平,90°表示為“天頂”(或者說是頭頂)。因此,如果設備說衛星的方位角為45°且高程為45°,那么衛星現在的位置就是處於水平的東北方向,高度為一 半的位置。另外對於衛星位置,設備報告每個衛星的“隨機偽代碼”(簡稱PRC),這個數值用來唯一標示一個衛星。

這里有一個關於 $GPGSV 的語句:

$GPGSV,3,1,10,24,82,023,40,05,62,285,32,01,62,123,00,17,59,229,28*70

每條語句包含四部分內容,例如:第一部分是“24,82,023,40”,第二部分是“05,62,285,32”等等。每部分的第一個詞為PRC,第二個詞為衛星高程,跟着為方位角和信號強度。如果這個衛星信息用圖來顯示,那么就如圖 1-1。    

                        

(圖 1-1:$GPGSV語句的圖形表示,中心點為當前位置,周邊的圓標示水平面。)

這個語句里最重要的指標應該算是“信號躁聲比(signal-to-noise ratio)”(以下簡稱為SNR)。這個數值標示衛星信號的接收率。

我們知道,衛星是以相同的強度發射信號,但是傳播過程中難免會遇到諸如樹和牆之類的 障礙物,這樣就影響了信號的識別。典型的SNR值在0到50之間,其中50表示非常好的信號。(SNR可以達到99,但是我還從來沒有見過50以上的數據 哦。)。

在圖 1-1里,綠色衛星表示強信號,然而黃色衛星則為中等(在第二部分,我將提供一個方法來實現信號強度的分類)。衛星#1的信號完全被阻擋了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM