(3)センテンス
センテンスは最大82文字。スタートの区切り記号“$”と終わりを示す<CR><LF>のあいだの文字は最大79文字である。
また最小のフィールド数は1文字である。
最初のフィールドはトーカ識別のアドレスフィールドとセンテンスの形式である。センテンスの形式にはセンテンス内のデータフィールドの数、データの型、データに対する指令が記述されている。
センテンスの残りの部分にはデータフィールドがないか又は複数のデータフィールドがある。このシングルセンテンス内のフィールドの最大文字は82文字以内に制限されている。ヌルフィールドはセンテンス内に表示され、フィールドデータが有効かどうかの判断に用いられる。
全てのセンテンスはスタート区切り文字“$”ではじまり、エンド区切り文字<CR><LF>で閉じる。
(A)承認されたセンテンスの記述
承認されたセンテンスは一般的用途のために設計され、本規格に記述され、6・3に記載されている。(本指導書では記載を省略している。)
新しい設計のため勧告していないセンテンスを運用の際に見つけることがあるかも知れない。そのようなセンテンスはNMEA 0183情報にリストアップされており、NMEAから入手できる。
推奨されるセンテンスは次の形式からなる。
ASCII |
HEX |
意味 |
“$” |
24 |
センテンスの始まり、スタート区切り記号 |
〈アドレスフィールド〉 |
|
トーカの識別記号とセンテンスの形式 |
[“,”〈データフィールド〉] |
|
ゼロあるいはそれ以上のデータフィールド |
[“,”〈データフィールド〉] |
|
|
“*”〈チェックサムフィールド〉 |
|
チェックサムフィールド |
<CR><LF> |
0D0A |
センテンスの終わり、エンド区切り記号 |
|
(a)承認されたセンテンスの構造
概要を示す。
$aaccc,c---c*hh<CR><LF>
ASCII |
HEX |
意味 |
“$” |
24 |
センテンスの始まり、スタート区切り記号 |
aaccc |
|
アドレスフィールド:
英数字でトーカの識別とセンテンスの形式を示す。最初の2文字がトーカの識別、次の3文字がデータの型と連続するフィールドの一連の書式を識別するセンテンスの形式コード。同コードはユーザによって読み出しを容易にするために用いられる。 |
“,” |
2C |
フィールドの区切り記号:
アドレスフィールドとチェックサムフィールドを除いて各フィールドの先頭に付く。ヌルフィールドではフィールド内にデータはないことを示す。 |
c---c |
|
データセンテンスブロック:
アドレスフィールドに続く。送信されるデータのすべてを含む一連のデータフィールドである。データフィールドの並びは固定である。アドレスフィールドの3文字によって識別される。データフィールドは可変長の場合もある。“,”で区切られている。 |
“*” |
2A |
チェックサムの区切り記号:
最後のデータフィールドの後に付く。チェックサムの16進数値を示す2文字が次に来る。 |
hh |
|
チェックサムフィールド:
センテンス内の各文字(“$”と“*”をのぞく)の8データビットについてEX-ORを計算した結果の絶対値。上位4ビットと下位4ビットをそれぞれ2つのASCII文字で表している。上位ビットが先に送信される。チェックサムフィールドは必ず挿入すること。 |
<CR><LF> |
0D0A |
センテンスの終わり:
センテンスのエンド区切り記号 |
|
(B)質問センテンス
質問センテンスは双方向通信で使用され、承認されたセンテンスを要求するためのものである。質問センテンスを使うことは、リスナがトーカにもなりうることを意味する。
質問センテンスの内容は次のとおり。
ASCII |
HEX |
意味 |
“$” |
24 |
センテンスの開始、スタート区切り記号 |
<aa> |
|
要求者のトーカ識別記号 |
<aa> |
|
データが要求されているデバイスに対するトーカの識別記号 |
“Q” |
|
質問のアドレスを表す文字 |
“,” |
|
データフィールドの区切り文字 |
<ccc> |
|
要求されているデータのセンテンスフォーマッタ |
“*”〈チェックサムフィールド〉 |
|
チェックサムフィールド |
<CR><LF> |
0D0A |
センテンスの終わり、エンド区切り記号 |
|
(a)質問センテンスの応答
応答は、要求に答える承認されたセンテンスである。相互に接続されている装置間の協調を必要とする。応答は強制されず、質問に対する応答時間も制限していない。
ここに述べることはこの規格に含まれないセンテンスである。承認されたセンテンスの範囲外のデータを転送するために、この規格のセンテンス構造定義を用いる場合の手段を製造メーカに提供する。
それは次のような場合に発生する。
a)データが、同じ製造メーカの別のデバイスのために作成されている。
データがデバイス特有、あるいは一般ユーザに興味のあるフォームあるいは型ではない。
b)データが、承認されたセンテンスに優先するテストの目的である。
c)データが、承認されたセンテンスの作成に値するものではなく、一般的に役に立たない。
識別記号の製造メーカの参照リストはNMEA 0183の仕様に等しい。
専有センテンスは次の形式である。
ASCII |
HEX |
意味 |
“$” |
24 |
センテンスの始まり、スタート区切り記号 |
“P” |
50 |
専有センテンスのID |
<aaa> |
|
製造メーカの識別コード(NMEAの事務局はNMEAによって正式に採用され、登録されているコードの参照リストを整備している。) |
[〈有効文字、“^”、“,”〉] |
|
製造メーカのデータ |
“*”〈チェックサムフィールド〉 |
|
チェックサムフィールド |
<CR><LF> |
0D0A |
センテンスの終わり、エンド区切り記号 |
|
専有センテンスはチェックサムを含み、センテンス全体の長さを制限する要求にしたがっている。製造メーカのデータフィールドは有効文字が原則であるが、区切り文字として、あるいは製造メーカのデータとして“^”と“,”を含む。専有データフィールドの詳細はこの規格に含まれず、承認のために提示する必要もない。しかしながら、そのようなセンテンスは参考のために各製造メーカのマニュアルに記載する必要がある。
(D)有効センテンス
承認されたセンテンス、質問センテンス及び専有センテンスのみが有効センテンスである。それらのセンテンス以外は無効であり、バス上で送信されない。
(E)センテンス伝送のタイミング
センテンス伝送のタイミングはセンテンス内に明示されていればそれに従う。タイミングが明示されていなければ、そのレートは基本計測又は計算に合致したタイミングになるが、通常1秒(20mS)に1回以下である。
文字間のスペースは最小限にすることが望ましい。特殊な状況以外、センテンスの伝送を終えるための時間が1秒(100mS)を超えるべきではない。
(F)承認されたセンテンスへの追加
改良又は追加を許可するため、この規格の将来的な改定として現状のセンテンスを変更する。最後のデータフィールドの後に新しいデータフィールドを追加するが、ただし、チェックサム区切り記号“*”とチェックサムフィールドの前に追加する。したがってリスナは区切り記号“,”の数を数えるのではなく、<CR><LF>と“*”の識別でセンテンスの終わりを認識すべきである。チェックサムの値は受信された全ての文字に対して(“$”と“*”は除く)計算される。リスナがすべてのフィールドを認識したか否かではない。
|