NMEA 0183

NMEA 0183 は、船舶用電子機器間の通信のための電気およびデータの複合仕様であり、音響測深機、ソナー、風向風速計、ジャイロコンパス、オートパイロット、GPS受信機（GNSS受信機）などの機器で使われている。GPS/GNSSについては、洋上でなく地上でも同じ仕様が使われている。

NMEA 0183は、米国海洋電子機器協会（National Marine Electronics Association, NMEA）によって定義・管理されている。

NMEA 0183は、NMEA 0180とNMEA 0182の後継である。レジャーマリンではゆっくりと新しいNMEA 2000規格に移行しつつあるが、商業船舶ではNMEA 0183が主流である。

詳細 

電気的な規格は EIA-422 だが、NMEA-0183出力を持つほとんどのハードウェアは、EIA-232 (RS-232) ポートを駆動できる。標準仕様は絶縁された入出力を要求しているものの、この要件を満たさないハードウェアも多々存在する。

NMEA 0183は、単純なASCIIのシリアル通信プロトコルであり、データがどのように、1つの「トーカー (talker)」から複数の「リスナー (listener)」へと同時に「センテンス(sentence)」の形で送信されるかを定めている。

中間エクスパンダを使うことで、トーカーはほぼ無制限の数のリスナと一方向の通信を行うことができ、マルチプレクサを使うことで複数のセンサーが１つの計算機ポートに送信することができる。

この規格は、アプリケーション層において、各センテンス（メッセージ）タイプの内容も定義しており、これによりすべてのリスナーがメッセージを正確に解析することができる。

NMEA 0183は RS422 トランスポートのみを定義しているが、NMEA0183のセンテンスをUDPデータグラムに入れ（1パケットに1センテンス）、IPネットワークで送信する事実上の標準も存在する。

NMEA規格はプロプライエタリの規格であり、2020年9月現在、2000米ドル超で販売されている（NMEAの会員を除く）。しかし、そのほとんどは公開された情報からリバースエンジニアリング済みである。

シリアル通信 (データリンクレイヤ) 

NMEA-0183HSという規格のバリエーションがあり、変調レートを38,400と規定している。これは、AIS装置（自動船舶識別装置）で一般的に使用されている。

メッセージ構造 

 送信データはすべて、0x20（スペース）から 0x7e (~) の間の印刷可能なASCII文字である。
 データ文字は、予約文字（後述）を除く上記全ての文字である。
 予約文字は、NMEA 0183 によって次の用途に使われる：

 メッセージの長さは最長82文字。これには開始文字($または!)と、終了の <LF> を含む。
 各メッセージの開始文字は、'$'（従来のフィールド区切りのメッセージの場合）または '！'（特別なカプセル化が施されたメッセージの場合）のどちらか。
 次の5文字は、トーカー（2文字）とメッセージの種類（3文字）を識別する。
 続くすべてのデータフィールドはカンマで区切られている。
 データがない場合、対応するフィールドは空である（つまりカンマとカンマの間に文字を含まない）。
 最後のデータフィールドの直後に現れる文字はアスタリスクであるが、これはチェックサムが提供された場合のみ含まれる。
 アスタリスクの直後には、2桁の16進数で表されるチェックサムが続く。チェックサムは，$と*の間にあるすべての文字のASCIIコードの排他的論理和である。公式仕様によるとチェックサムはほとんどのデータセンテンスで任意だが、RMA、RMB、RMC では必須。
 <CR><LF> でメッセージが終了する。

例として、軌跡到着アラームは以下の形式をもつ：

 $GPAAM,A,A,0.10,N,WPTNME*32

これが表す内容は、

また、AISメッセージの例としては：

 !AIVDM,1,1,,A,14eG;o@034o8sd<L9i:a;WF>062D,0*7D

GPS, GNSS でのメッセージ種別の例 

主要なトーカーID

 BD, GB - 北斗衛星導航系統 (BeiDou)
 GA - Galileo
 GP - GPS
 GL - GLONASS

 GQ - 準天頂衛星システム (QZSS)
NMEAメッセージは主に以下のセンテンスを含んでいる：

ベンダー拡張 

ほとんどのメーカーは、保守や診断の目的で、標準のNMEAセットに加えて、特別なメッセージを製品に含めている。拡張メッセージは、"$P" で始まります。これらの拡張メッセージは、標準化されていない。

NMEA 0183データを扱うソフトウェア 

 GPS、GNSSソフトウェア
 NetStumbler
 Rand McNally StreetFinder
 Magic e-Map
 NemaTalker NMEA instrument simulation
 Microsoft Streets & Trips
 Microsoft MapPoint
 Serotonin Mango M2M (suitable for NMEA compliant weather stations)
 MapKing
 gpsd - Unix GPS Daemon
 GPSy X for Mac OS X
 Turbo GPS PC/PPC
 GRLevelX Weather Suite
 Google Maps Mobile Edition (Java ME Devices)
 JOSM - OpenStreetMap Map Editor
 PolarCOM - a set of digital and analog NMEA instruments
 Avia Sail - PC instruments for both NMEA 0183 and NMEA 2000 
 ゼンリン電子地図帳
 スーパーマップル・デジタル 10（昭文社）
 カシミール3D

関連項目 

 NMEA 2000
 ASCII
 グローバル・ポジショニング・システム
 シリアル通信
 レイマリン

参照

外部リンク 

 National Marine Electronics Association
 NMEA's website about NMEA 0183
 NMEA Protocol Conversion
 NMEA data information
 Sirf-Chipset NMEA data reference manual
 LGPL C library for parsing and generation of the NMEA protocol
 Open Source (New BSD License) C# library for parsing NMEA protocol
 NMEA Specifications at APRS Info
 MTK proprietary NMEA extensions

GPS
通信プロトコル
マリンエレクトロニクス