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装置(自動船舶識別装置)で一般的に使用されている。
メッセージ構造
- 送信データはすべて、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
NMEAメッセージは主に以下のセンテンスを含んでいる:
種類
|
説明
|
$Talker ID+GGA
|
位置、時刻、Fixに関するデータ
|
$Talker ID+GLL
|
地理的位置 - 緯度経度
|
$Talker ID+GSA
|
DOP と 有効な衛星
|
$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 M2M[7] (suitable for NMEA compliant weather stations)
- MapKing
- gpsd - Unix GPS Daemon
- GPSy X for Mac OS X[8]
- Turbo GPS PC/PPC[9]
- GRLevelX Weather Suite[10]
- Google Maps Mobile Edition (Java ME Devices)[11]
- JOSM - OpenStreetMap Map Editor
- PolarCOM - a set of digital and analog NMEA instruments[12]
- Avia Sail - PC instruments for both NMEA 0183 and NMEA 2000 [13]
- ゼンリン電子地図帳[14]
- スーパーマップル・デジタル 10(昭文社)
- カシミール3D[15]
関連項目
参照
外部リンク