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の会員を除く）。しかし、そのほとんどは公開された情報からリバースエンジニアリング済みである。
 シリアル通信 (データリンクレイヤ) 

 変調レート  4,800 データビット  8 パリティ  なし ストップビット  1 ハンドシェーク  なし

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

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

 ASCII  16進数  10進数  用途   0x0d  13  キャリッジリターン   0x0a  10  ラインフィード !  0x21  33  カブセル化センテンスの開始区切り $  0x24  36  開始区切り *  0x2a  42  チェックサム区切り ,  0x2c  44  フィールド区切り \  0x5c  92  TAGブロック区切り ^  0x5e  94  ASCII文字を16進表記するための区切り ~  0x7e  126  予約済み

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

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

 $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

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

主要なトーカーID

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

 GQ - 準天頂衛星システム (QZSS)
NMEAメッセージは主に以下のセンテンスを含んでいる：
+種類説明$Talker ID+GGA位置、時刻、Fixに関するデータ$Talker ID+GLL地理的位置 - 緯度経度$Talker ID+GSADOP と 有効な衛星$Talker ID+GSV視界にある衛星$Talker ID+RMC最小限のナビゲーション情報$Talker ID+VTG地表における移動

 ベンダー拡張 

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

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

 GPS、GNSSソフトウェア
 NetStumbler
 Rand McNally StreetFinder
 Magic e-Map
 NemaTalker NMEA instrument simulation
 Microsoft Streets & Trips
 Microsoft MapPoint
 Serotonin Mango M2Mhttp://mango.serotoninsoftware.com/ (suitable for NMEA compliant weather stations)
 MapKing
 gpsd - Unix GPS Daemon
 GPSy X for Mac OS Xhttp://www.gpsy.com/
 Turbo GPS PC/PPChttp://www.turboirc.com/tgps/
 GRLevelX Weather Suitehttp://www.grlevelx.com/
 Google Maps Mobile Edition (Java ME Devices)https://www.google.com/mobile/default/maps.html
 JOSM - OpenStreetMap Map Editor
 PolarCOM - a set of digital and analog NMEA instrumentshttp://www.polarnavy.com/main/prod2
 Avia Sail - PC instruments for both NMEA 0183 and NMEA 2000 http://www.aviasail.com
 ゼンリン電子地図帳ゼンリン電子地図帳Zi12 機能紹介 (株)ゼンリン
 スーパーマップル・デジタル 10（昭文社）
 カシミール3Dカシミール3D 初心者ガイド２.GPS機種の選定, DAN杉本

 関連項目 

 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

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