NMEA 0183 は、船舶用電子機器間の通信のための電気およびデータの複合仕様であり、音響測深機、ソナー、風向風速計、ジャイロコンパス、オートパイロット、GPS受信機(GNSS受信機)などの機器で使われている。GPS/GNSSについては、洋上でなく地上でも同じ仕様が使われている。
NMEA 0183は、米国海洋電子機器協会(National Marine Electronics Association, NMEA)によって定義・管理されている。
NMEA 0183は、NMEA 0180とNMEA 0182の後継である。レジャーマリンではゆっくりと新しいNMEA 2000規格に移行しつつあるが[1][2]、商業船舶ではNMEA 0183が主流である。
電気的な規格は EIA-422 だが、NMEA-0183出力を持つほとんどのハードウェアは、EIA-232 (RS-232) ポートを駆動できる。標準仕様は絶縁された入出力を要求しているものの、この要件を満たさないハードウェアも多々存在する。
NMEA 0183は、単純なASCIIのシリアル通信プロトコルであり、データがどのように、1つの「トーカー (talker)」から複数の「リスナー (listener)」へと同時に「センテンス(sentence)」の形で送信されるかを定めている。
中間エクスパンダを使うことで、トーカーはほぼ無制限の数のリスナと一方向の通信を行うことができ、マルチプレクサを使うことで複数のセンサーが1つの計算機ポートに送信することができる。
この規格は、アプリケーション層において、各センテンス(メッセージ)タイプの内容も定義しており、これによりすべてのリスナーがメッセージを正確に解析することができる。
NMEA 0183は RS422 トランスポートのみを定義しているが、NMEA0183のセンテンスをUDPデータグラムに入れ(1パケットに1センテンス)、IPネットワークで送信する事実上の標準も存在する。
NMEA規格はプロプライエタリの規格であり、2020年9月現在、2000米ドル超で販売されている(NMEAの会員を除く)[3][4]。しかし、そのほとんどは公開された情報からリバースエンジニアリング済みである[5][6]。
変調レート | 4,800 |
データビット | 8 |
パリティ | なし |
ストップビット | 1 |
ハンドシェーク | なし |
NMEA-0183HSという規格のバリエーションがあり、変調レートを38,400と規定している。これは、AIS装置(自動船舶識別装置)で一般的に使用されている。
ASCII | 16進数 | 10進数 | 用途 |
---|---|---|---|
0x0d | 13 | キャリッジリターン | |
0x0a | 10 | ラインフィード | |
! | 0x21 | 33 | カブセル化センテンスの開始区切り |
$ | 0x24 | 36 | 開始区切り |
* | 0x2a | 42 | チェックサム区切り |
, | 0x2c | 44 | フィールド区切り |
\ | 0x5c | 92 | TAGブロック区切り |
^ | 0x5e | 94 | ASCII文字を16進表記するための区切り |
~ | 0x7e | 126 | 予約済み |
例として、軌跡到着アラームは以下の形式をもつ:
$GPAAM,A,A,0.10,N,WPTNME*32
これが表す内容は、
GP | トーカID: GP はGPS |
AAM | 到着アラーム |
A | 到着円進入 |
A | 垂線経過 |
0.10 | 円半径 |
N | 海里 |
WPTNME | 軌跡名 |
*32 | チェックサム |
また、AISメッセージの例としては:
!AIVDM,1,1,,A,14eG;o@034o8sd<L9i:a;WF>062D,0*7D
主要なトーカーID
NMEAメッセージは主に以下のセンテンスを含んでいる:
種類 | 説明 |
---|---|
$Talker ID+GGA | 位置、時刻、Fixに関するデータ |
$Talker ID+GLL | 地理的位置 - 緯度経度 |
$Talker ID+GSA | DOP と 有効な衛星 |
$Talker ID+GSV | 視界にある衛星 |
$Talker ID+RMC | 最小限のナビゲーション情報 |
$Talker ID+VTG | 地表における移動 |
ほとんどのメーカーは、保守や診断の目的で、標準のNMEAセットに加えて、特別なメッセージを製品に含めている。拡張メッセージは、"$P" で始まります。これらの拡張メッセージは、標準化されていない。