NMEA標準格式 -- GPS

1. 什麼是NMEA?
美國國家海洋電子學會(National Marine Electronics Association,NMEA) -- http://www.nmea.org/

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

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.(檢查位元).

3. NMEA 0183
目前大部分用到的protocol似乎都是NMEA 0183,在網路上找的資料也是,舊的資料難以找到。根據維基百科上面的介紹,如下:
NMEA 0183 (or NMEA for short) is a combined electrical and data specification for communication between marine electronic devices such as echo sounder, sonars, anemometer (wind speed and direction), gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the U.S.-based National Marine Electronics Association.

The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data is transmitted in a "sentence" from one "talker" to multiple "listeners" at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port. Third-party switches are available that can establish a primary and secondary talker, with automatic failover if the primary fails.

At the application layer, the standard also defines the contents of each sentence (message) type so that all listeners can parse messages accurately.

大致的意思是說NMEA0183是一種整合性,用於電子與資料通訊的規格。大致用於回聲探測器(echo sounder)、聲納、風速計、迴轉羅盤、自動駕駛儀、GPS接受器還有其他許多設備。這規格由美國國家海洋電子學會所控管。NMEA0183的標準使用一種簡單的ASCII,序列傳輸的協定來定義資料將如何由發話端(talker)到一個接收端(listener)。藉由使用中繼的擴大器(intermediate expanders)還有多向的通訊器(multiplexers),多個感測器可以一起跟一個電腦通訊阜溝通。另外第三方轉移也是可實現的,所以可以有主要跟次要的發話端。在應用層方面,這種標準也定義了所送出訊息的內容,所以接收端可以依據這標準來解析收到的訊息。

在應用方面,資料連結層(Data link layer)的設定鮑率是4800,AIS預設其鮑率為38400。AIS就是Association for Information System。AIS的主要功能是為資訊系統訂立學術派的標準。AIS的其中一項功能就是建立合適的實際、倫理跟教育標準(establish standards of practice, ethics, and education where appropriate.),其他功能及詳細內容,請見參考連結。

參考連結:

維基百科介紹NMEA0183(English)
http://en.wikipedia.org/wiki/NMEA_0183

Association for Information System(English)
http://home.aisnet.org/displaycommon.cfm?an=3

美國國家海洋電子學會(English)
http://www.nmea.org/content/nmea_standards/nmea_2000_v1.asp

留言

這個網誌中的熱門文章

網路 Transformer 的用途

cut,sed,awk 字串處理