NMEA-0183是美國國家海洋電子協會(National Marine Electronics Association)制定的GPS介面協定標準。這種介面協定採用ASCII碼輸出,以下為NMEA-0183常見的指令:
語句 | 語句內容 |
GGA | UTC時間、緯度值、經度值、定位狀態(無效、單點定位、差分)、觀測的GPS衛星個數、HDOP值、GPS橢球高、天線架設高度、差分數據齡期、差分基準站編號、校驗和 |
GLL | UTC時間、緯度值、經度值、定位狀態(無效、單點定位、差分)、校驗和 |
GSA | 定位模式(M-手動,強制二維或三維定位;A-自動,自動二維或三維定位)、定位中使用的衛星ID號、PDOP值、HDOP值、VDOP值 |
GSV | 視野中的GPS衛星顆數、PRN編號、衛星仰角、距正北的角度(方位角)、信噪比 |
MSS | 信標台的信號強度、信噪比、信標頻率、串列傳輸速率、通道號 |
RMC | UTC時間、定位狀態(A-可用,V-可能有錯誤)、緯度值、經度值、對地速度、日期等 |
VTG | 對地速度等 |
ZDA | UTC時間、年、月、日、當地時區、時區的分鐘值等 |
格式定義:
符號(ASCII) | 定義 | HEX | DEX | 說明 |
$ | 起始位 | 24 | 36 | 語句起始位 |
aaccc | 地址域 | 前兩位為位識別符,後三位為語句名 | ||
“,” | 域分隔符號 | 2C | 44 | 域分隔符號 |
ddd……ddd | 資料塊 | 發送的資料內容 | ||
“*” | 校驗和符 | 2A | 42 | 星號分隔符號,表明後面的兩位數是校驗和 |
hh | 校驗和 | 校驗和 | ||
/ | 終止符 | 0D,0A | 13,10 | 回車,換行 |
GPS DOP and Active Satellites(GSA)當前衛星資訊
$GPGSA,<1>,<2>,<3>,<4>,,,,,<12>,<13>,<14>, <15>,<16>,<17>*hh $GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7∗3D
項目 | 說明 |
1 | 模式 :M = 手動, A = 自動 |
2 | 定位型式 1 = 未定位, 2 = 二維定位, 3 = 三維定位 |
3~14 | PRN 數字:01 至 32 表天空使用中的衛星編號,最多可接收12顆衛星資訊 |
15 | PDOP位置精度因數(0.5~99.9) |
16 | HDOP水準精度因數(0.5~99.9) |
17 | VDOP垂直精度因數(0.5~99.9) |
hh | Checksum.(檢查位) |
GPS Satellites in View(GSV)可見衛星資訊
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,<4>,<5>,<6>,<7>*hh $GPGSV,3,3,10,29,07,074,,30,07,163,28*7D
項目 | 說明 |
1 | GSV語句的總數 |
2 | 本句GSV的編號 |
3 | 可見衛星的總數,00 至 12 |
4 | 衛星編號, 01 至 32 |
5 | 衛星仰角, 00 至 90 度 |
6 | 衛星方位角, 000 至 359 度。實際值 |
7 | 訊號雜訊比(C/No), 00 至 99 dB;無表未接收到訊號 |
hh | Checksum.(檢查位) |
Global Positioning System Fix Data(GGA)GPS定位資訊
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>,<13>,<14>*hh $GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,−5.7,M,,0000∗77
項目 | 說明 |
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也將被傳輸,如果不是差分定位將為空) |
13~14 | 不明,空白 |
hh | Checksum.(檢查位) |
Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦定位資訊
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54
項目 | 說明 |
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=資料無效) |
hh | Checksum.(檢查位) |
Track Made Good and Ground Speed(VTG)地面速度資訊
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh $GPVTG,359.95,T,,M,15.15,N,28.0,K,A∗04
項目 | 說明 |
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=資料無效) |
hh | Checksum.(檢查位) |
GPZDA日期和時間
$GPZDA,<1>,<2>, <3> , <4> , <5> , <6> *hh $GPZDA,204007.00,13,05,2022,,*62
項目 | 說明 |
1 | UTC時間,hhmmss(時分秒)格式 |
2 | 日 |
3 | 月 |
4 | 年 |
5 | 本地時區小時便宜量 |
hh | 本地時區分鐘便宜量 |
GPS模塊輸出的數據是NMEA格式,其中GPGGA字段包含我們需要的經緯度信息
其格式是緯度:ddmm.mmmmm(度分)經度:dddmm.mmmmm(度分)
將ddmm.mmmm轉換成dd.ddddd 的經緯度
轉換公式 dd.ddddd = dd + mm.mmmm/60
Excel 轉換公式為 =INT(A2/100)+(MOD(A2,100)/60)
參考資料:
http://blog.ittraining.com.tw/2016/02/gpsgprmc.html
https://www.codeprj.com/zh/blog/a4b9d91.html
https://www4.hhlink.com/%E7%B6%93%E7%B7%AF%E5%BA%A6%E8%B7%9D%E9%9B%A2
https://www.796t.com/content/1549111517.html
https://www.csie.nuk.edu.tw/~brchang/%E5%AF%A6%E9%A9%973.pdf