不正コマンド・テーブル設定
不正コマンド・テーブルは、「不正コマンド検出」のために使用されるテーブルです。 不正コマンド・テーブルは、サブアドレス、送受信ビット、ワード・カウント(またはモード・コマンド)を含む11ビットのコマンド・ワードと、 ブロードキャスト、および非ブロードキャストを組み合わせることができ、合計で4,096通りが可能です。
不正コマンド・テーブルが設定されている場合、ターミナルは「メッセージ・エラー」のステータス応答として、ステータス・ワードのみを送信します。 不正コマンド・テーブルが設定されていない場合、ターミナルはすべての有効なコマンドに対し「形式的」に応答を返します (データにエラーがある場合は応答を返しません)。
下図に、テーブル構造を示します。テーブルはRAM内に256ワードの領域が割り当てられています。これはRAMの0x0200~0x02FFのアドレス範囲に配置されています。 ホスト(または自動初期化)からこのテーブルに対して書き込みを行います。これらには実装されていないサブアドレス、ワード・カウント、未定義モードコード、 予約モード・コマンド、実装されていないモード・コマンドが含まれます。
不正テーブルのアドレス指定は、下のように、コマンド・ワードT/Rビット、サブアドレス・フィールド、ワード・カウント(モード・コード)フィールドのMSB、 およびコマンドのブロードキャスト/非ブロードキャストのステータスから導かれます。
<例1>
SA1への送信コマンドの場合、RAMアドレス「0x02C2」,「0x02C3」のワードによって制御されます。
0x02C2…ワード・カウント1~15、32を持つサブアドレス1送信コマンドを制御(0は32ワードに対応)
0x02C3…ワード・カウント16~31を持つサブアドレス1送信コマンドを制御
「0x02C3=0xFFFF」、「0x02C2=0xFF0F」と設定されている場合
コマンド4、5、6、7データ・ワードは有効な送信コマンドで、他のすべてのワード・カウントが不正コマンドとして扱われます。
<例2>
下図は、1つのサブアドレスにおける不正テーブルの設定を抜粋したものです。 全ての予約モード・コード、未定義のモード・コマンド、ブロードキャスト禁止がすべて不正な場合を考えてみます。
すべての定義された送信モード・コマンドがMC0(動的バス制御)を除いて有効である場合、送信モード・コマンドのためのテーブル設定は、
0x02FF & 0x02C1 = 1111 1111 1111 0010 = 0xFFF2 Tx MCデータ有り
0x02FE & 0x02C0 = 1111 1110 0000 0001 = 0xFE01 Tx MCデータ無し
0x027F & 0x0241 = 1111 1111 1111 1111 = 0xFFFF Br.Tx MC データ有り(すべて不正)
0x027E & 0x0240 = 1111 1110 0000 0101 = 0xFE05 Br.Tx MC データ無し
すべての定義された受信モード・コマンドがMC0(動的バス制御)を除いて正当である場合、受信モード・コマンドのためのテーブル設定は、
0x02BF & 0x0281 = 1111 1111 1100 1101 = 0xFFCD Rx MC データ有り
0x02BE & 0x0280 = 1111 1111 1111 1111 = 0xFFFF Rx MC データ無し(すべて不正)
0x023F & 0x0201 = 1111 1111 1100 1101 = 0xFFCD Br.Rx MC データ有り
0x023E & 0x0200 = 1111 1111 1111 1111 = 0xFFFF Br.Rx MC データ無し(すべて不正)
※上記の図は、黄色の「定義済みモード・コマンド」のみ有効となります。 また、MIL-STD-1553の規格上は定義済みのコマンドであっても、実際のRTハードウェアで実装していない機能については 不正コマンドとして登録する場合があります。