天天看點

NMEA-0183 協定 ——GPS晶片輸出标準格式

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=數

據無效)