NMEA 0183是美國(guó)國(guó)家海洋電子協(xié)會(huì)(National Marine Electronics Association )為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式。目前業(yè)已成了GPS導(dǎo)航設(shè)備統(tǒng)一的RTCM(Radio Technical Commission for Maritime services)標(biāo)準(zhǔn)協(xié)議。
GPS接收機(jī)上電后,會(huì)自動(dòng)通過(guò)串口或USB口發(fā)送NMEA0183格式的數(shù)據(jù)包,它是一組包含有各種地理位置信息的字符串,字符串格式為:
$信息類(lèi)型,xxx,xxx,xxx,xxx,xxx,xxx,xxx,
每行開(kāi)頭的字符都是‘$’,接著是信息類(lèi)型,后面是數(shù)據(jù),以逗號(hào)分隔開(kāi)。一行完整的數(shù)據(jù)如下:
$GPRMC,062363.00,A,2236.33923,N,11402.35855,E,0.304,306.80,020411,,,A*62
信息類(lèi)型為:
GPGSV:可見(jiàn)衛(wèi)星信息
GPGLL:地理定位信息
GPRMC:推薦最小定位信息
GPVTG:地面速度信息
GPGGA:GPS定位信息
GPGSA:當(dāng)前衛(wèi)星信息
這里我們只解析GPRMC和GPGGA的信息
GPRMC數(shù)據(jù)詳解:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
<1> UTC時(shí)間,hhmmss(時(shí)分秒)格式
<2> 定位狀態(tài),A=有效定位,V=無(wú)效定位
<3> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)
<4> 緯度半球N(北半球)或S(南半球)
<5> 經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)
<6> 經(jīng)度半球E(東經(jīng))或W(西經(jīng))
<7> 地面速率(000.0~999.9節(jié),前面的0也將被傳輸)
<8> 地面航向(000.0~359.9度,以真北為參考基準(zhǔn),前面的0也將被傳輸)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前面的0也將被傳輸)
<11> 磁偏角方向,E(東)或W(西)
<12> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無(wú)效)
解析內(nèi)容:
1. 時(shí)間,這個(gè)是格林威治時(shí)間,是世界時(shí)間(UTC),我們需要把它轉(zhuǎn)換成北京時(shí)間(BTC),BTC和UTC差了8個(gè)小時(shí),要在這個(gè)時(shí)間基礎(chǔ)上加8個(gè)小時(shí)。
2. 定位狀態(tài),在接收到有效數(shù)據(jù)前,這個(gè)位是‘V’,后面的數(shù)據(jù)都為空,接到有效數(shù)據(jù)后,這個(gè)位是‘A’,后面才開(kāi)始有數(shù)據(jù)。
3. 緯度,我們需要把它轉(zhuǎn)換成度分秒的格式,計(jì)算方法:
如接收到的緯度是:4546.40891
4546.40891 / 100 = 45.4640891 可以直接讀出45度
4546.40891–45 * 100 = 46.40891 可以直接讀出46分
46.40891–46 = 0.40891 * 60 = 24.5346 讀出24秒
所以緯度是:45度46分24秒。
4. 南北緯,這個(gè)位有兩種值‘N’(北緯)和‘S’(南緯)
5. 經(jīng)度的計(jì)算方法和緯度的計(jì)算方法一樣
6. 東西經(jīng),這個(gè)位有兩種值‘E’(東經(jīng))和‘W’(西經(jīng))
7. 速率,這個(gè)速率值是 海里/時(shí),單位是節(jié),要把它轉(zhuǎn)換成千米/時(shí),根據(jù):1海里 = 1.85公里,把得到的速率乘以1.85。
8. 航向,指的是偏離正北的角度
9. 日期,這個(gè)日期是準(zhǔn)確的,不需要轉(zhuǎn)換
GPGGA數(shù)據(jù)詳解:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>
$GPGGA:起始引導(dǎo)符及語(yǔ)句格式說(shuō)明(本句為GPS定位數(shù)據(jù));
<1> UTC時(shí)間,格式為hhmmss.sss;
<2> 緯度,格式為ddmm.mmmm(第一位是零也將傳送);
<3> 緯度半球,N或S(北緯或南緯)
<4> 經(jīng)度,格式為dddmm.mmmm(第一位零也將傳送);
<5> 經(jīng)度半球,E或W(東經(jīng)或西經(jīng))
<6> 定位質(zhì)量指示,0=定位無(wú)效,1=定位有效;
<7> 使用衛(wèi)星數(shù)量,從00到12(第一個(gè)零也將傳送)
<8> 水平精確度,0.5到99.9
<9> 天線離海平面的高度,-9999.9到9999.9米 M 指單位米
<10> 大地水準(zhǔn)面高度,-9999.9到9999.9米 M 指單位米
<11> 差分GPS數(shù)據(jù)期限(RTCM SC-104),最后設(shè)立RTCM傳送的秒數(shù)量
<12> 差分參考基站標(biāo)號(hào),從0000到1023(首位0也將傳送)。
解析內(nèi)容:
7. 使用衛(wèi)星數(shù)量,表示當(dāng)前GPS所接收到的有效衛(wèi)星數(shù)量(在u-center中顯示為綠色的衛(wèi)星)
9.海拔高度,單位是米