GPS只要處于工作狀態就會源源不斷地把接收并計算出的GPS導航定位信息通過串口傳送進來,若要對GPS進行信息提取必須首先明確其幀結構,然后才能根據其結構完成對各定位信息的提取。
NMEA0183協議是美國國家海洋電子協會(NationaIMarine Electronlcs Association)制定的GPS接口協議標準。NMEA0183定義了若干代表不同含義的語句,每個語句實際上是一個ASCII碼串。這種碼直觀,易于識別和應用。在分析中,不需要了解NMEA0183通信協議的全部信息,僅需要從中挑選出需要的那部分定位數據,其余的信息忽略掉。
GPS數據格式:
1
GPS DOP and Active Satellites(GSA)當前衛星信息
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>
<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><CR><LF>
<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<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 也將被傳輸,如果不是差分定位將為空)
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=數
據無效)__
GPS接收的數據Log:
$GPRMC,073550.000,A,3959.2134,N,11619.6676,E,1.19,180.54,180310,,*00
$GPGGA,073551.000,3959.2129,N,11619.6675,E,1,05,3.7,49.2,M,-6.5,M,,0000*7B
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073551.000,A,3959.2129,N,11619.6675,E,0.95,178.90,180310,,*04
$GPGGA,073552.000,3959.2120,N,11619.6674,E,1,05,3.7,49.0,M,-6.5,M,,0000*72
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073552.000,A,3959.2120,N,11619.6674,E,0.96,178.68,180310,,*0B
$GPGGA,073553.000,3959.2122,N,11619.6674,E,1,05,3.7,49.0,M,-6.5,M,,0000*71
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073553.000,A,3959.2122,N,11619.6674,E,0.27,156.04,180310,,*04
$GPGGA,073554.000,3959.2121,N,11619.6674,E,1,05,3.7,48.9,M,-6.5,M,,0000*7D
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPGSV,3,1,12,18,87,063,24,26,69,341,43,09,62,058,41,27,53,051,39*7F
$GPGSV,3,2,12,22,52,310,45,24,45,272,,31,38,208,,15,34,199,*7E
$GPGSV,3,3,12,21,32,203,,14,08,263,,30,04,168,,10,03,125,*7F
$GPRMC,073554.000,A,3959.2121,N,11619.6674,E,0.69,173.63,180310,,*0C
$GPGGA,073555.000,3959.2115,N,11619.6673,E,1,05,3.7,48.8,M,-6.5,M,,0000*7D
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073555.000,A,3959.2115,N,11619.6673,E,1.00,179.14,180310,,*09
$GPGGA,073556.000,3959.2115,N,11619.6674,E,1,05,3.7,48.7,M,-6.5,M,,0000*76
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073556.000,A,3959.2115,N,11619.6674,E,0.72,174.63,180310,,*04
$GPGGA,073557.000,3959.2118,N,11619.6674,E,1,05,3.7,48.7,M,-6.5,M,,0000*7A
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073557.000,A,3959.2118,N,11619.6674,E,0.30,157.08,180310,,*02
$GPGGA,073558.000,3959.2129,N,11619.6676,E,1,05,3.7,48.8,M,-6.5,M,,0000*7A
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073558.000,A,3959.2129,N,11619.6676,E,0.35,35.31,180310,,*37
$GPGGA,073559.000,3959.2143,N,11619.6678,E,1,05,3.7,48.9,M,-6.5,M,,0000*78
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPGSV,3,1,12,18,87,063,24,26,69,341,43,09,62,058,41,27,53,051,39*7F
$GPGSV,3,2,12,22,52,310,45,24,45,272,,31,38,208,,15,34,199,*7E
$GPGSV,3,3,12,21,32,203,,14,08,263,,30,04,168,,10,03,125,*7F
$GPRMC,073559.000,A,3959.2143,N,11619.6678,E,0.43,30.56,180310,,*31
$GPGGA,073600.000,3959.2149,N,11619.6680,E,1,05,3.7,49.0,M,-6.5,M,,0000*72
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073600.000,A,3959.2149,N,11619.6680,E,0.17,119.93,180310,,*01
$GPGGA,073601.000,3959.2159,N,11619.6681,E,1,05,3.7,49.1,M,-6.5,M,,0000*72
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073601.000,A,3959.2159,N,11619.6681,E,0.16,75.84,180310,,*3C
$GPGGA,073602.000,3959.2165,N,11619.6682,E,1,05,3.7,49.2,M,-6.5,M,,0000*7E
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073602.000,A,3959.2165,N,11619.6682,E,0.18,70.13,180310,,*36
$GPGGA,073603.000,3959.2166,N,11619.6682,E,1,05,3.7,49.2,M,-6.5,M,,0000*7C
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073603.000,A,3959.2166,N,11619.6682,E,0.21,141.70,180310,,*08
$GPGGA,073604.000,3959.2153,N,11619.6680,E,1,05,3.7,49.0,M,-6.5,M,,0000*7D
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPGSV,3,1,12,18,87,063,24,26,69,341,43,09,62,058,41,27,53,051,39*7F
$GPGSV,3,2,12,22,52,310,45,24,45,272,,31,38,208,,15,34,199,*7E
$GPGSV,3,3,12,21,32,203,,14,08,263,,30,04,168,,10,03,125,*7F
$GPRMC,073604.000,A,3959.2153,N,11619.6680,E,0.84,177.27,180310,,*03
$GPGGA,073605.000,3959.2140,N,11619.6678,E,1,05,3.7,48.8,M,-6.5,M,,0000*70
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073605.000,A,3959.2140,N,11619.6678,E,1.39,181.38,180310,,*07
$GPGGA,073606.000,3959.2135,N,11619.6677,E,1,05,3.7,48.7,M,-6.5,M,,0000*71
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073606.000,A,3959.2135,N,11619.6677,E,0.75,176.70,180310,,*04
$GPGGA,073607.000,3959.2123,N,11619.6675,E,1,05,3.7,48.5,M,-6.5,M,,0000*77
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073607.000,A,3959.2123,N,11619.6675,E,0.74,176.95,180310,,*0A
$GPGGA,073608.000,3959.2132,N,11619.6677,E,1,05,3.7,48.6,M,-6.5,M,,0000*79
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPRMC,073608.000,A,3959.2132,N,11619.6677,E,0.18,61.27,180310,,*33
$GPGGA,073609.000,3959.2134,N,11619.6677,E,1,05,3.7,48.7,M,-6.5,M,,0000*7F
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.9,3.7,1.0*3C
$GPGSV,3,1,12,18,87,063,23,26,69,341,42,09,62,058,41,27,53,051,39*79
$GPGSV,3,2,12,22,52,310,45,24,45,272,,31,38,208,,15,34,199,*7E
$GPGSV,3,3,12,21,32,203,,14,08,263,,30,04,168,,10,03,125,*7F
$GPRMC,073609.000,A,3959.2134,N,11619.6677,E,0.28,153.30,180310,,*01
$GPGGA,073610.000,3959.2143,N,11619.6679,E,1,05,3.7,48.8,M,-6.5,M,,0000*76
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPRMC,073610.000,A,3959.2143,N,11619.6679,E,0.21,54.47,180310,,*38
$GPGGA,073611.000,3959.2149,N,11619.6680,E,1,05,3.7,48.9,M,-6.5,M,,0000*7A
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPRMC,073611.000,A,3959.2149,N,11619.6680,E,0.21,52.48,180310,,*3C
$GPGGA,073612.000,3959.2159,N,11619.6681,E,1,05,3.7,49.1,M,-6.5,M,,0000*70
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPRMC,073612.000,A,3959.2159,N,11619.6681,E,0.31,35.71,180310,,*35
$GPGGA,073613.000,3959.2165,N,11619.6682,E,1,05,3.7,49.2,M,-6.5,M,,0000*7E
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPRMC,073613.000,A,3959.2165,N,11619.6682,E,0.53,23.22,180310,,*3D
$GPGGA,073614.000,3959.2175,N,11619.6684,E,1,05,3.7,49.4,M,-6.5,M,,0000*78
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPGSV,3,1,12,18,87,067,23,26,69,341,42,09,61,057,40,27,53,051,39*70
$GPGSV,3,2,12,22,52,310,46,24,45,271,,31,38,208,,15,34,199,*7E
$GPGSV,3,3,12,21,32,202,,14,08,263,,30,07,164,,10,03,125,*71
$GPRMC,073614.000,A,3959.2175,N,11619.6684,E,0.99,16.51,180310,,*39
$GPGGA,073615.000,3959.2170,N,11619.6683,E,1,05,3.7,49.3,M,-6.5,M,,0000*7C
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPRMC,073615.000,A,3959.2170,N,11619.6683,E,0.16,96.19,180310,,*39
$GPGGA,073616.000,3959.2179,N,11619.6685,E,1,05,3.7,49.5,M,-6.5,M,,0000*76
$GPGSA,A,3,09,22,26,27,18,,,,,,,,3.8,3.7,1.0*3D
$GPRMC,073616.000,A,3959.2179,N,11619.6685,E,0.32,160.55,180310,,*03
$PSRFTXT,Version:GSW3.2.4_3.1.00.12-SDK003P1.00a
$PSRFTXT,Version2:F-GPS-03-0701231
$PSRFTXT,WAAS Disable
$PSRFTXT,TOW: 372971
$PSRFTXT,WK: 1575
為了給用戶簡明清晰的定位和導航信息,我們必須將GPS數據進行轉換,再顯示出來。
比如,在我的地圖定位中,地圖坐標(0,0)的點即為GPS的(3136.4227 ,11994.8942),單個像素緯度/經度(0.03211387*0.05595)。
GPS信息轉換為地圖坐標滿足 :
(GPS經緯度–原點經緯度)/ 單個像素經緯度
還有 第三方地圖庫的支持
串口測試用c實現:
剛剛搗騰完GPS,因為網上的資料七零八碎的,好不容易才折騰清楚,在這簡單做個總結。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
