ゲヌマ・フジガヤ2(fujigaya2) blogのまとめ - S-9.2 DCC Communications Standard のメモ

S-9.2 DCC通信標準

 この標準は、デジタルコマンドステーションを介してデジタルデコーダーに送信される情報の形式を対象としています。 デジタルコマンドステーションは、S-9.1で説明したNMRAデジタル信号を使用して一連のビットを送信することにより、この情報をデジタルデコーダーに送信します。 パケットと呼ばれるこのビットシーケンスは、デジタルデコーダーが動作する命令セットの1つをエンコードするために使用されます。 意図した命令を適切にエンコードおよびデコードできるように、パケットを正確に定義する必要があります。

A.一般的なパケット形式

 次のビットシーケンスは、有効なNMRAパケットを定義します。 この一般的なパケット形式の完全な仕様を満たさないビットのシーケンスは、この標準の目的では「パケット」ではありません。 デジタルデコーダーは、NMRAデジタル操作モード1である間、有効なパケットに含まれていない命令に作用してはなりません。 []内の部分は1回以上出現することに注意してください。

プリアンブル:
 パケットのプリアンブルは、一連の「1」ビットで構成されます。 デジタルデコーダーは、完全な1ビットが10未満のプリアンブルを有効なものとして受け入れたり、12ビットを超える完全な1ビットのパケットの適切な受信を要求してはなりません。 コマンドステーションは、最低14個の完全なプリアンブルビットを送信する必要があります。

パケット開始ビット:
 パケット開始ビットは、有効なプリアンブルに続く「0」の値を持つ最初のビットです。 パケット開始ビットはプリアンブルを終了し、次のビットがアドレスデータバイトであることを示します。

アドレスデータバイト:
 パケットの最初のデータバイトには、通常8ビットのアドレス情報が含まれています。 最初に送信されるアドレスビットは、アドレスデータバイトの最上位ビットとして定義されます。 値00000000、11111110、および11111111のアドレスデータバイトは特別な操作用に予約されており、この標準または関連する推奨プラクティスで提供されている場合を除き、送信しないでください。

[データバイト開始ビット:
 このビットはデータバイトの前にあり、値は「0」です。
データバイト:
 各データバイトには、アドレス、命令、データ、またはエラー検出の目的で使用される8ビットの情報が含まれています。 各データバイトの最初に送信されるデータビットは、データバイトの最上位ビットであると定義されます。 ]

パケット終了ビット:
 このビットはパケットの終了を示し、値は「1」です。

図1は、3つのデータバイト(1つのアドレスデータバイト、1つの命令データバイト、1つのエラー検出データバイト)を使用する受け入れ可能なコマンド制御パケットの例を示しています。

Figure 1 Example of a Transmitted Packet

B:ベースラインパケット

 異なるシステム間の最小の相互運用性を提供するために、ベースラインパケットが含まれています。 さまざまな種類のデコーダー、追加機能、アドレス、速度をサポートするより複雑なパケット形式は、拡張パケット形式推奨プラクティス(RP-9.2.1)で提供されています。 この規格の意図は、準拠するために、コマンドステーションがベースラインパケットのセマンティクスに準拠してオペレータ制御入力をエンコードする必要があることです。 また、デジタルデコーダは、ベースラインパケットのセマンティクスに準拠した適切な機関車制御の電気出力を認識して提供する必要があります。 デジタルデコーダーアイドルパケットおよびデジタルデコーダーブロードキャスト停止パケット(以下で定義)は、コマンドステーションではオプションであり、デコーダーでは必須です。

機関車デコーダーの速度と方向パケット
111111111111 0 0AAAAAAA 0 01DCSSSS 0 EEEEEEEE 1
 Preamble Byte One Byte Two Byte Three (Error Detection Data Byte)

バイト1:
 アドレスデータバイト= 0AAAAAAAアドレスデータバイトには、パケットの受信者のアドレスが含まれます。 すべてのデジタルデコーダーは、ベースラインパケットに応答するために自身のアドレスを保持および認識することができます。 機関車デジタルデコーダーは、ユーザーがこのアドレスを簡単に構成できるように、ベースラインアドレスの全範囲をサポートする必要があります。 この制限がパッケージおよび指示書に明確かつ明確にラベル付けされている限り、デジタルコマンドステーションがサポートされる有効なアドレスの数を制限することは許容されます。

バイト2:
 命令データバイト= 01DCSSSS命令データバイトは、速度と方向の情報を機関車デジタルデコーダーに送信するために使用されるデータバイトです。 ビット0〜3は、速度(S)に4ビットを提供し、ビット0は最下位の速度ビットです。 デフォルトでバイト2(C)のビット4には、最下位の速度ビットである追加の速度ビットが1つ含まれます。 後方互換性のために、このビットを代わりに使用してヘッドライトを制御できます。 このオプションの使用法は、RP-9.2.1で定義されています。 ビット5は、方向(D)に1ビットを提供します。 方向ビット(D)の値が「1」の場合、機関車は順方向に移動する必要があります7。 値が「0」の方向ビットにより、機関車は逆方向に移動します。 ビット7および6にはビットシーケンス「01」が含まれており、この命令データバイトが速度と方向を示すことを示すために使用されます。
CS3S2S1S0SpeedCS3S2S1S0SpeedCS3S2S1S0SpeedCS3S2S1S0Speed
00000Stop00100Step 501000Step 1301100Step 21
10000Stop (I)10100Step 611000Step 1411100Step 22
00001E-Stop*00101Step 701001Step 1501101Step 23
10001E-Stop* (I)10101Step 811001Step 1611101Step 24
00010Step 100110Step 901010Step 1701110Step 25
10010Step 210110Step 1011010Step 1811110Step 26
00011Step 300111Step 1101011Step 1901111Step 27
10011Step 410111Step 1211011Step 2011111Step 28

・*デジタルデコーダーは、モーターへの電力供給を直ちに停止します。
・(I)方向に敏感な機能の場合、方向ビットは無視されます。(オプション)
図2ベースラインパケットの速度表

バイト3:
 エラー検出データバイト= EEEEEEEEエラー検出データバイトは、伝送エラーの存在を検出するために使用されるデータバイトです。 エラー検出データバイトの内容は、関連するパケットのアドレスデータバイトと命令データバイトの内容のビットごとの排他的論理和です。 (たとえば、アドレスデータバイトのビット0と命令データバイトのビット0の排他的論理和は、エラー検出データバイトのビット0に配置されます...)ベースラインパケットを受信するデジタルデコーダーは、受信したエラー検出データを比較します。 受信したアドレスと命令データバイトのビットごとの排他的論理和を持つバイト。この比較が同一でない場合、パケットの内容を無視します。

図1に示されているパケットの例は、速度ステップ6で順方向に進むための機関車への命令を含むベースラインパケットを示しています。

すべてのデコーダーのデジタルデコーダーリセットパケット
111111111111 000000000 0 00000000 0 00000000 1
Preamble Byte One Byte Two Byte Three (Error Detection Data Byte)
 3バイトの各パケット内の8ビットすべてに「0」の値が含まれる3バイトのパケットは、デジタルデコーダリセットパケットとして定義されます。 デジタルデコーダーは、デジタルデコーダーリセットパケットを受信すると、すべての揮発性メモリ(速度と方向のデータを含む)を消去し、通常の電源投入状態に戻ります。 デジタルデコーダーがデジタルデコーダーリセットを受信したときに機関車をゼロ以外の速度で運転している場合、機関車は直ちに停止します。
 デジタルデコーダリセットパケットに続いて、コマンドステーションは、サービスモードに入る意図がない限り、20ミリ秒以内に「01100100」から「01111111」までの範囲のアドレスデータバイトを持つパケットを送信しません。

すべてのデコーダーのデジタルデコーダーアイドルパケット
111111111111 0 11111111 0 00000000 0 11111111 1
Preamble Byte One Byte Two Byte Three (Error Detection Data Byte)
 最初のバイトが8個の「1」を含み、2番目のバイトが8個の「0」を含み、3番目と最後のバイトが8個の「1」を含む3バイトのパケットは、デジタルデコーダーアイドルパケットとして定義されます。 このパケットを受信すると、デジタルデコーダーは新しいアクションを実行しませんが、他のデコーダー宛ての通常のデジタルパケットであるかのように、このパケットに作用します。

すべてのデコーダーのデジタルデコーダーブロードキャストストップパケット
111111111111 0 00000000 0 01DC000S 0 EEEEEEEE 1
Preamble Byte One Byte Two Byte Three (Error Detection Data Byte)
 最初のバイトに8個の「0」が含まれ、2番目のバイトに特定の停止コマンドが含まれ、3番目と最後のバイトにパケットの2番目のバイトと同じエラーバイトが含まれる3バイトパケットは、デジタルデコーダーとして定義されます ブロードキャスト停止パケット。 バイト2(S)のビット0に「0」の値が含まれるこのパケットを受信すると、機関車のモーターを制御するためのデジタルデコーダーが機関車を停止させます。
 バイト2(S)のビット0に「1」の値が含まれるこのパケットを受信すると、機関車のモーターを制御するためのデジタルデコーダーは、モーターへのエネルギーの供給を停止します。 バイト2(C)のビット4に「1」の値が含まれる場合、バイト2(D)のビット5に含まれる方向ビットは、すべての方向依存機能でオプションで無視できます。

C:パケット送信の頻度

 デジタルデコーダーに送信されるパケットは、できるだけ頻繁に繰り返される必要があります。これは、ノイズや車輪とレール間の導電性が低いためにパケットが失われる可能性があるためです。 代替コマンド制御フォーマットを可能にするために、パケットエンドビットと次のパケットのプリアンブルの間のレールから電力を取り除くこともできます。 最初のパケットのパケット終了ビットと2番目のパケットのパケット開始ビットの間の時間が5ミリ秒以上離れている場合、デジタルデコーダーはそれに宛てられた複数のパケットに作用できます。 デコーダーは、欠落または無効なデータバイト開始ビット、欠落または無効なパケット終了ビット、または誤ったエラー検出バイトを含むビットシーケンスを受信した場合、次の有効なプリアンブルシーケンスを新しいパケットの開始として認識しなければなりません。 パケット終了ビットと次のプリアンブルの開始の間で、代替のコマンド制御フォーマットが特に許可されています。
 デコーダのメーカーは、これらの代替電力信号への自動変換を無効にできる場合、NMRAデジタル信号(S-9.1による)に加えて、さまざまな電力信号とコマンド制御形式の自動変換を提供することをお勧めします。 自動変換が有効な場合、デジタルデコーダーはデジタルモードのままで、パケット開始ビット間の時間が30ミリ秒以下である限り、代替の電源信号を使用するように変換しないでください。 自動変換が無効になっている場合、デジタルデコーダーはパケットスタートビットのタイミングに関係なくデジタルモードのままにする必要があります。 パケット開始ビット間の時間から測定して、30ミリ秒ごとに少なくとも1つの完全なパケットを送信するようにデジタルコマンドステーションを構成することが可能です。