2019年5月23日 星期四

NMEA標準格式

Source http://annheilong.pixnet.net/blog/post/24919514-%E3%80%90%E9%9B%BB%E8%85%A6%E3%80%91nmea%E6%A8%99%E6%BA%96%E6%A0%BC%E5%BC%8F

大部份的GPS receiver都具被有美國國家海洋電子學會(National Marine Electronics AssociationNMEA)所制定的標準規格,其制定了所有航海電子儀器間的通訊標準,包括了資料的格式及傳輸資料的通訊協定。

NMEA規格有0180、0182、0183等三種,NMEA-0183是架構在0180及0182的基礎上,增加了GPS receiver輸出的內容而完成的。在電子傳輸的實體界面上,NMEA-0183包括了NMEA-0180及NMEA-0182所定的RS232界面格式,而且又多增加了EIA-422的工業標準界面,在傳輸的資料內容方面,也比NMEA-0180及NMEA-0182來得多。目前廣泛使用的NMEA-0183的版本為Ver. 2.01。

NMEA格式所傳輸的資料為美國國家標準資訊交換碼(American Standard Code for Information Interchange,ASCII),以「句子(Sentence)」的方式傳輸資料,每一個句子以「$」為起始位置,而以16進位控制碼「13」、「10」為終止,及ASCII中的Carriage Return{CR}和Line Feed{LF}碼。

每一個句子的長度不一定,最長可達82個字元(Character),而句中的欄位(Field)以逗號「,」分格。第二、三個字元為傳輸設備的識別碼,如「GP」為GPS的接收儀;「LC」為Loran-C接收儀;「OM」為Omega Navigation接收儀。第四五六個字元為傳輸句子的名稱,如「RMC」為GPS建議的最小傳輸資料(Recommended Minimum Specific GPS/TRANSIT Data);「GGA」為GPS固定資料(Global Positioning System Fix Data)。

當衛星接收機定位後,便經由輸出管道開始傳送有效的定位資料。
◎ 這些資料包含如下:

1) 經度
2) 緯度
3) 定位完成代號
4) 採用有效的衛星顆數
5) 所用的衛星編號,及仰角,方向角,接收訊號強度。
6) 衛星方位角
7) 高度
8) 相對位移位移速度
9) 相對位移位移方向角度
10) 日期
11) UTC時間
12) DOP誤差參考值
13) 衛星狀態及接收狀態
NMEA-0183 輸出資訊表
NMEA 種類 說明
GGA 衛星定位資訊。
GLL 基本地理位置-經度及緯度
GSA GNSS DOP(誤差資訊)
GSV GNSS 天空範圍內的衛星
RMC 基本定位資訊(指已達到定位目的時)
VTG 相對位移方向及相對位移速度


GPS常用的NMEA數據資料格式介紹如下:

「GGA」=>GPS固定資料$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh範例說明:
$GPGGA,055148,2407.8945,N,12041.7649,E,1,00,1.0,155.2,M,16.6,M,X.X,xxxx,*47

$GPGGA = Global Positioning System Fix Data 
1 055148 = UTC of Position [接收的時間(世界標準時),格式:時分秒] 
2 2407.8945 = Latitude [緯度,格式:度分.分], 
3 N = N or S[N指北半球(S指南半球)], 
4 12041.7649 = Longitude [經度,格式:度分.分] 
5 E = E or W [E指東半球(W指西半球)] 
6 1 = GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix) [GPS等級,0:表示資料可用;1:非DGPS定位資料;2:DGPS定位資料], 
7 00 = Number of satellites in use [not those in view] [所使用之衛星數], 
8 1.0 = Horizontal dilution of position [平面精度指標(HDOP)], 
9 155.2 = Antenna altitude above/below mean sea level (geoid) [天線高度(平均海水面)], 
10 M = Meters (Antenna height unit) [單位(公尺)], 
11 16.6 = Geoidal separation (Diff. between WGS-84 earth ellipsoid and mean sea level. -=geoid is below WGS-84 ellipsoid) [大地起伏值], 
12 M = Meters (Units of geoidal separation) [單位(公尺)], 
13 X.X = Age in seconds since last update from diff. reference station [差分GPS數據期], 
14 xxxx = Diff. reference station ID# [基站站號0000-1023], 
15 *47 = Checksum (檢查位元)
「RMC」=>GPS建議最小傳輸資料$--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxxxx,x.x,a*hh
($GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>)
範例說明:
$GPRMC,055148,A,2407.8945,N,12041.7649,E,000.0,000.0,061196,003.1,W*69
1) $GPRMC,055148 接收定位時間(UTC time)格式:時時分分秒秒.秒秒秒(hhmmss.sss)。
2) A = 定位狀態,A:資料可用,V:資料不可用。
3) 2407.8945 = 緯度,格式:度度分分.分分分分(ddmm.mmmm)。
4) N = 緯度區分,北半球(N)或南半球(S)。
5) 12041.7649 = 經度,格式:度度分分.分分分分。
6) E = 經度區分,東(E)半球或西(W)半球。
7) 000.0 = 相對航行速度, 0.0 至 1851.8 knots(節)
8) 000.0 = 相對航行方向,000.0 至 359.9度。實際值。
9) 061196 = 日期,格式:日日月月年年(ddmmyy)。
10) 003.1 = 磁極變量,000.0 至180.0度。
11) W = 磁方位角(西W或東E)度數。
12) *hh = Checksum.(檢查位元)


「GSA」=>GPS幾何精度因子 偏差資訊(GNSS DOP)及衛星狀態(GSA) 
$--GSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,x.x,x.x,x.x,*hh
($GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7>) 

範例說明:
$GPGSA,A,3,01,05,09,17,21,2,26,39,,,,1.9,1.0,1.7,*33
$GPGSA,
1) A = 定位模式,M:手動模式;A:自動模式
2) 3 = 定位模式,1:位置不可用;2:二度空間定位;3:三度空間定位
3) 01,05,09,17,21,2,26,39,,, = 接收衛星編號 (PRN)
4) 1.9 = PDOP-位置精度稀釋 0.5 至 99.9.
5) 1.0 = HDOP-水平精度稀釋 0.5 to 99.9.
6) 1.7 = VDOP-垂直精度稀釋 0.5 to 99.9.
7) *33 = Checksum.(檢查位元).

「GSV」=>可視衛星狀態
$--GSV,x,x,xx,xx,xx,xxx,xx,………,*h
($GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,…<4>,<5>,<6>,<7>,<8> )
範例說明:
$GPGSV,3,1,09,01,27,299,43,………*70
1) 3 = 天空中收到訊號的衛星總數。
2) 1 = 定位的衛星總數。
3) 09 = 天空中的衛星總數,00 至 12。
4) 01 = 衛星編號, 01 至 32。
5) 27 = 衛星仰角, 00至 90 度。
6) 299 = 衛星方位角, 0 至 359 度。實際值。
7) 43 = 訊號雜訊比(C/No), 00 至 99 dB;無表未接收到訊號。
注意!第<4>,<5>,<6>,<7>項個別衛星會重複出現,每行最多有四顆衛星。其餘衛星資訊會於次一行出現,若未使用,這些欄位會空白。
8) Checksum.(檢查位元).

沒有留言: