日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPS卫星定位接收器的NMEA协议解析

發布時間:2024/3/7 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPS卫星定位接收器的NMEA协议解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文地址:GPS衛星定位接收器的NMEA協議解析作者:蟹蟹 GPS接收機只要處于工作狀態就會源源不斷地把接收并計算出的GPS導航定位信息通過串口傳送到計算機中。前面的代碼只負責從串口接收數據并將其放置于緩存,在沒有進一步處理之前緩存中是一長串字節流,這些信息在沒有經過分類提取之前是無法加以利用的。因此,必須通過程序將各個字段的信息從緩存字節流中提取出來,將其轉化成有實際意義的,可供高層決策使用的定位信息數據。同其他通訊協議類似,對GPS進行信息提取必須首先明確其幀結構,然后才能根據其結構完成對各定位信息的提取。對于本文所使用的GARMINGPS天線板,其發送到計算機的數據主要由幀頭、幀尾和幀內數據組成,根據數據幀的不同,幀頭也不相同,主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。這些幀頭標識了后續幀內數據的組成結構,各幀均以回車符和換行符作為幀尾標識一幀的結束。對于通常的情況,我們所關心的定位數據如經緯度、速度、時間等均可以從"$GPRMC"幀中獲取得到,該幀的結構及各字段釋義如下:
  $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh <1>當前位置的格林尼治時間,格式為hhmmss <2> 狀態, A為有效位置,V為非有效接收警告,即當前天線視野上方的衛星個數少于3顆。 <3> 緯度,格式為ddmm.mmmm <4> 標明南北半球, N為北半球、S為南半球 <5>徑度,格式為dddmm.mmmm <6>標明東西半球,E為東半球、W為西半球 <7>地面上的速度,范圍為0.0到999.9 <8>方位角,范圍為000.0到 359.9 度 <9> 日期,格式為ddmmyy <10>地磁變化,從000.0到 180.0 度 <11>地磁變化方向,為E 或 W
  至于其他幾種幀格式,除了特殊用途外,平時并不常用,雖然接收機也在源源不斷地向主機發送各種數據幀,但在處理時一般先通過對幀頭的判斷而只對"$GPRMC"幀進行數據的提取處理。如果情況特殊,需要從其他幀獲取數據,處理方法與之也是完全類似的。由于幀內各數據段由逗號分割,因此在處理緩存數據時一般是通過搜尋ASCII碼"$"來判斷是否是幀頭,在對幀頭的類別進行識別后再通過對所經歷逗號個數的計數來判斷出當前正在處理的是哪一種定位導航參數,并作出相應的處理。 附:NMEA0183常用協議格式

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

1、 GPS DOP and ActiveSatellites(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 FixData(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/TRANSITData(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> 模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數據無效)

?

5、 Track Made Good and GroundSpeed(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> 模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數據無效)

總結

以上是生活随笔為你收集整理的GPS卫星定位接收器的NMEA协议解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。