プロトコル
バスの制御、データ・フロー、ステータス報告、および管理は、3つのワード型により提供されます。
ワード型
3つの異なるワード型が、規格により定義されています。これらは、以下のものです。規格は、ターミナルがメイン・バスに接続される2つの方法を示します。
- コマンド・ワード
- データ・ワード
- ステータス・ワード
各ワード型は、固有のフォーマットを持ちますが、3つ全てが共通の構造をしています。各ワードは、20ビット長です。 最初の3ビットは、同期フィールドとして使用され、デコード・クロックを新しい各ワードの始めに再同期させることができます。 次の16ビットは、情報フィールドであり、3ワード型間で異なります。最後のビットは、パリティ・ビットです。パリティは、シングル・ワードのための奇数パリティに基づきます。3つのワード型を、図5に示します。
図5 ワード・フォーマット
全てのワードに対するビット・エンコーディングは、二相マンチェスターIIフォーマットに基づきます。マンチェスターIIフォーマットは、ビット・シーケンスが独立である自己クロック波形を提供します。
マンチェスター波形の正負の電圧レベルは、DC-balanced(負信号と同じ量の正信号)で、それ自体、変圧器結合に良く適しています。
マンチェスター波形を、図6に示します。信号の遷移は、ビット時間の中央で起こります。論理“0”は、負レベルから正レベルに遷移する信号です。論理“1”は、正レベルから負レベルに遷移する信号です。
図6 データのエンコードとデコード
同期フィールド
全ワード型の最初の3ビットは、同期フィールドと呼ばれます。同期波形は、遷移が第2ビットの時間の中間で発生するため、それ自体が不正なマンチェスター波形です。 この異なるパターンの使用は、デコーダが受信した各ワードの始めに再同期することを可能にし、送信の全体的安定を維持します。
コマンド/ステータス同期と、データ同期の2つの異なる同期パターンが使用されます。コマンド/ステータス同期は、最初のものに対して正電圧レベルと半ビット時間を有し、その後、 2つ目のものに対して負電圧レベルと半ビット時間に遷移します。データ同期は、逆で、最初のものに対して負電圧レベルと半ビット時間、その後、2つ目のものに対して正電圧レベルと半ビット時間です。 同期パターンを、図6に示します。
コマンド・ワード
コマンド・ワード(CW)は、リモート・ターミナルが実行すべき機能を示します。アクティブなバス・コントローラだけが、このワードを送信します。 ワードは、最初の3ビットのコマンド同期で始まります。続く16ビットの情報フィールドは、図5で定義されます。5ビットのターミナル・アドレス(TA)フィールド(4~8ビット目)は、 コマンドが意図しているのが、どのユニークなリモート・ターミナルなのかを表します(2台のターミナルは、同じアドレスを持つことはできません)。
規格のNotice2は、ターミナル・アドレスが外部ソースからブラックボックス(例えば、外部I/Oコネクタ)にワイヤ・プログラムでき、リモート・ターミナル電子機器が配線されたターミナル・アドレスに対して パリティ試験を実行することを要求します。Notice2は、アドレス・ライン上のオープン回路が論理“1”として検出され、アドレス・ラインのグランドへの接続が論理“0”として検出され、 奇数パリティが配線されたアドレス・フィールドのパリティ検査において使用されることを基本的に述べています。
なぜ、パリティ検査がNotice2で追加されたのか?いくつかの「実世界」のアプリケーションは、一定の機能(例えば、ミサイル発射)と関連した振動レベルが、コネクタの脱落問題を引き起こすか、 またはハイブリッド内のボンディング・ワイヤの開放を引起こす可能性があることを発見しました。この理由のため、ほとんどの「実世界」のリモート・ターミナルは、起動、または初期化中にターミナル・アドレス配線を サンプリングするだけで、パリティが正しくない場合、ターミナルを初期化しません。
次のビット(9ビット目)は、送受信(T/R)ビットを構成します。これは、情報の流れの向きを定義し、常にリモート・ターミナルからの視点です。 送信コマンド(論理1)は、リモート・ターミナルがデータを送信することを示し、受信コマンド(論理0)は、リモート・ターミナルがデータを受信することを示します。 この規則の唯一の例外は、モード・コマンドと関連しています。
次の5ビット(10~14ビット目)は、サブアドレス(SA)/モード・コマンド・ビットを構成します。 このフィールドの論理00000B、または11111Bは、コマンドがモード・コード・コマンドであることを示すようにデコードされます。このフィールドの他の全ての論理の組み合わせは、 サブシステム内の異なる機能にデータを導くために使用されます。例として、00001Bが位置、および速度データ、00010Bが周波数データ、10010Bがディスプレイ情報、および10011Bがセルフテスト・データです。 サブアドレスの使用は、あなたに任されています。しかし、Notice2は、データ・ラップアラウンド用にサブアドレス30の使用を提案しています(後述)。
次の5ビットの位置(15~19ビット目)は、実行されるワード・カウント(WC)、またはモード・コードを定義します。 サブアドレス/モード・コード・フィールドが00000B、または11111Bの場合、このフィールドは、実行されるモード・コードを定義します。 ない場合、このフィールドは、T/Rビットに応じて、受信、または送信されるデータ・ワード数を定義します。00000Bのワード・カウント・フィールドは、32データ・ワードとしてデコードされます。
最後のビット(20ビット目)は、ワード・パリティ・ビットです。奇数パリティのみが使用されます。
データ・ワード
データ・ワード(DW)は、メッセージ内で転送されている実際の情報が含まれています。最初の3ビットは、データ同期が含まれています。 この同期パターンは、コマンド、およびステータス・ワードに使用されるものとは逆であるため、ワード型に固有なものです。
データ・ワードは、リモート・ターミナル(送信コマンド)、またはバス・コントローラ(受信コマンド)により送信されます。送受信は、約束事により、リモート・ターミナルを参照します。
情報の次の16ビットは、設計者に定義が委ねられています。唯一の規格からの要求は、データの最上位ビット(MSB)が最初に送信されることです。 規格は、その仕様に関していかなるガイダンスも提供していませんが、MIL-HDBK-1553A, Section 80, Data WordFormatsは、最も一般的に使用されているデータ・ワードのガイダンスを提供し、 フォーマットの一覧を示しています(例えば、ビット・パターン、分解能等)。購入仕様書は、一般的に、Section 80のガイドラインがデータ・ワード定義において使用されるべきだと記載されています。
最後のビット(20ビット目)は、ワード・パリティ・ビットです。奇数パリティのみが使用されます。
ステータス・ワード
リモート・ターミナルは、有効なメッセージに応答して、ステータス・ワード(SW)のみを送信します。ステータス・ワードは、メッセージが適切に受信されたかどうかをバス・コントローラに伝達するため、 またはリモート・ターミナルのステータス(例えば、サービス要求、ビジー等)を伝達するために使用されます。ステータス・ワードは、図5で定義されます。 ステータス・ワードがバス・コントローラに情報を伝達するので、各ビットの意味について、2つの視点が存在します。
- ビットの設定がリモート・ターミナルに何を意味するのか
- ビットの設定がバス・コントローラに何を意味するのか
ステータス・ワードの各フィールドと、その潜在的意味は、以下で検討されます。
ステータス・ワードのリセット
ステータス・ワードは、リモート・ターミナル・アドレスを除き、有効なコマンド・ワードの受信後にクリアされます。 この規則の2つの例外は、受信したコマンド・ワードが送信ステータス・ワード・モード・コード、または送信最終コマンド・ワード・モード・コードである場合です。 の個別ビットをセットする条件は、いつでも発生する可能性があります。ステータス・ワードのクリア後、ビットをセットする条件がなお存在している場合、ビットが再びセットされます。
受信中のデータにエラーが検出された場合、メッセージ・エラー・ビットがセットされ、ステータス・ワードの送信が停止されます。 ステータス・ワードの送信は、ブロードキャスト・メッセージの受信時に停止されます。不正メッセージ(例えば、不正コマンド)については、 メッセージ・エラー・ビットがセットされ、ステータス・ワードが送信されます。
情報フィールド
ターミナル・アドレス
情報フィールドの最初の5ビット(4~8ビット目)は、ターミナル・アドレス(TA)です。この5ビットは、ターミナルが受信したコマンド・ワード内の対応するフィールドに一致する必要があります。 リモート・ターミナルは、これらのビットをプログラムされているアドレスにセットします。バス・コントローラは、そのステータス・ワードに応答するターミナルが、特にコマンド・ワードが宛てられたターミナルだったことを保証するために、 これらのビットを調べる必要があります。
リモート・ターミナルからリモート・ターミナルへのメッセージ(RT-RT)において、受信ターミナルは、受信したステータス・ワードのものと2番目のコマンド・ワードのアドレスを比較する必要があります。 規格により要求されていませんが、受信データが正しい送信元から来たことを保証するのに、良い設計の実践です。
メッセージ・エラー
次のビット(9ビット目)は、メッセージ・エラー(ME)ビットです。このビットは、ターミナルへのメッセージにおけるエラーの検出時、または無効メッセージの検出時(例えば、不正コマンド)に、リモート・ターミナルによりセットされます。 エラーは、メッセージ内のデータ・ワードの何れにも起こり得ます。ターミナルがエラーを検出し、このビットをセットした時、メッセージ内の受信データは使用されません。 実際、エラーが検出されれば、ターミナルは、行わなければならないにもかかわらず、メッセージの残りのデコードを継続する必要はありません。
メッセージ内にエラーが検出され、MEビットがセットされた場合、リモート・ターミナルは、ステータス・ワードの送信を停止しなければなりません。 ターミナルが不正コマンドを検出した場合、MEビットがセットされ、ステータス・ワードが送信されます。論理“1”は、エラーを示します。全てのリモート・ターミナルは、ステータス・ワードにMEビットを実装する必要がありあます。
インスツルメンテーション
インスツルメンテーション・ビット(10ビット目)は、コマンド・ワードとステータス・ワード間(どちらも同じ同期パターンを持つことを思い出してください)を区別するために提供されます。 ステータス・ワードのインスツルメンテーション・ビットは、常に論理“0”にセットされます。使用される場合、コマンド・ワード内の通信ビットが論理“1”にセットされます。 コマンド・ワードのこのビットは、サブアドレス・フィールドの最上位ビットであるため、使用されるサブアドレスを10000~11110に制限してしまうので、利用できるサブアドレス数を30から15に減少させてしまいます。 インスツルメンテーション・ビットは、2つのモード・コード識別子(00000Bと11111B)が存在する利用でもあり、後者は、インスツルメンテーション・ビットが使用される時に要求されます。
初期の監視システムは、コマンドとステータス・ワードを区別するために、インスツルメンテーション・ビットの使用を必要としました。しかし、支払う対価(サブアドレスの喪失)は、現代のアプリケーションにとって非常に高価でした。 今日のほとんどのモニタは、どのワードがどれなのかを決定するために、プロトコルとメッセージ・フォーマットに追随することができます。
サービス要求
サービス要求ビット(11ビット目)は、リモート・ターミナルがサービスされることを必要とするバス・コントローラに通知できるように提供されます。 このビットは、サービスが必要とされることを示すために、サブシステムにより論理“1”にセットされます。このビットは、バス・コントローラが処理を要求するのか決定するためにターミナルに「ポーリング」している時に一般的に使用されます。
バス・コントローラは、論理“1”にセットされたこのビットの受信時、一連のメッセージを発行するような事前決定されたアクションを取るか、またはリモート・ターミナルから更なるデータを要求します。 後者のアプローチは、定義されたサブアドレスからのデータの転送をターミナルに要求するか、または送信ベクトル・ワード・モード・コードを使用することにより達成することができます。
予備
12~14ビット目は、規格の将来の成長のために予約されており、論理“0”にセットする必要があります。 バス・コントローラは、リモート・ターミナルがそのステータス・ワードにセットされたこれらのビットの何れかに応答する場合、メッセージをエラーと宣言する必要があります。
ブロードキャスト・コマンド受信
ブロードキャスト・コマンド受信ビット(15ビット目)は、リモート・ターミナルが有効なブロードキャスト・コマンドを受信したことを示します。 有効なブロードキャスト・コマンドを受信すると、リモート・ターミナルは、このビットを論理“1”にセットし、そのステータス・ワードの送信を停止することができます。 バス・コントローラは、ターミナルがメッセージを適切に受信したかどうかを決定するために、送信ステータス・ワード、または送信最終コマンド・ワード・モード・コードを発行することができます。
ビジー
ビジー・ビット(16ビット目)は、リモート・ターミナルが、バス・コントローラからのコマンドに準拠して、リモート・ターミナル電子機器とサブシステム間でデータを移動することができない時、バス・コントローラへのフィードバックとして提供されます。
初期の1553においては、サブシステム・インターフェイスの多く(アナログ、シンクロ等)が多重データ・バスの速度と比較して遥かに遅かったため、ビジー・ビットが必要でした。 一部のターミナルでは、データを十分早く移動することができませんでした。つまり、データを失う代わりに、ターミナルは、バス・コントローラがこの時に新しいデータを取り扱えないことを示し、 バス・コントローラに後で再試行させるビジー・ビットをセットすることができました。新しいシステムが開発されるにつれ、ビジー・ビットの必要性は減少しています。 しかし、ビジー・ビットを必要とし、正しく使用しているシステムがなお存在しています。
これらの例は、バス・コントローラが、無線を特定の周波数に同調させるコマンドを発行する無線機です。無線がこれを完了するのに数秒かかる場合があり、 チューニング中、バス・コントローラに動作中であることを通知するために、ビジー・ビットをセットすることができます。もう1つの例は、テープ、またはディスク・ドライブです。 これは、一定数のデータを格納、または取得するために、数ミリ秒~数秒かかることがあります。
ターミナルがビジーの時、「通常」の方法でコマンドに応答する必要はありません。受信コマンドに対して、ターミナルは、データを収集するが、サブシステムにデータを渡す必要はありません。 送信コマンドに対して、ターミナルは、そのステータス・ワードのみを送信します。したがって、ターミナルがビジーである時、 残りのシステムに供給するデータは利用できません。これは、システム内のデータの流れに対して全面的な影響を与え、タイム・クリティカルなシステム(例えば、飛行制御)内のデータ待ち時間を増加させるかも知れません。
いくつかのターミナルは、必要時、ビジー・ビットをセットして、設計上の問題を克服するためにビジー・ビットを使用します。規格のNotice2は、ビジー・ビットの使用に「強く反対」しています。 しかし、その使用の正しい必要性がなお存在します。したがって、使用される場合、Notice2は、今、ビジー・ビットが内部定期、または処理機能のためではなく、 バス・コントローラから受信した個別コマンドの結果としてのみセットされることが必要です。この要求に従い、バス・コントローラは、リモート・ターミナルの特性の事前知識で、 何がターミナルをビジーにするかを決定し、システム中のデータ待ち時間に対する影響を最小化することができます。
サブシステム・フラグ
サブシステム・フラグ・ビット(17ビット目)は、リモート・ターミナルが接続されているサブシステムに関する「健全性」データを提供するために使用されます。 多重サブシステムは、複合健全性インジケータを形成するために、それらのビットを論理的に“OR”することができます。このシングル・ビットは、 障害、または不具合が存在するバス・コントローラ、およびデータの使用者への指標としてのみ役立ちます。不具合の本質に関する更なる情報は、他のいくつかの方法で獲得する必要があります。 一般的に、サブアドレスは、サブシステム・ステータス・データ専用の1つ、または2つのワードと共に、BIT情報用に予約されています。
動的バス制御受諾ビット
動的バス制御受諾ビット(18ビット目)は、リモート・ターミナルが動的バス制御モード・コードを受信し、バスの制御を受諾していることをバス・コントローラに通知します。 リモート・ターミナルに対して、このビットの設定は、サブシステムにより制御され、数レベルのビルドインテストのパスに基づいています(例えば、プロセッサの起動パスと連続的なバックグランド試験)。
リモート・ターミナルは、そのステータス・ワードを送信するためには、バス・コントローラとなります。バス・コントローラは、このビットをセットしたリモート・ターミナルからステータス・ワード受信時、 バス・コントローラとしての機能することを停止し、リモート・ターミナル、またはバス・モニタとなることがあります。
ターミナル・フラグ
ターミナル・フラグ・ビット(19ビット目)は、リモート・ターミナル回路(リモート・ターミナルのみ)内の障害、または不具合をバス・コントローラに通知します。論理“1”は、障害状態を示します。
このビットは、障害、または不具合をバス・コントローラに通知するためにのみに使用されます。不具合の本質に関する更なる情報は、他のいくつかの方法で取得する必要があります。一般的に、サブアドレス(多くの場合、30)は、BIT情報用に予約されるか、 またはバス・コントローラが送信BITワード・モード・コードを発行することができます。
規格は、このビットがリモート・ターミナル用であると宣言しており、コマンドを受信したチャンネルではなく、リモート・ターミナル全体を意味することに注意すべきです。 近年、いくつかの部品メーカーは、シングル・バス・アプリケーション用に設計されている「チップ」を開発しています。ターミナル設計者は、 二重冗長アプリケーション用に注文されたリモート・ターミナルにこれらのチップを適用しています。これらのチップがこれら二重冗長アプリケーションで使用される時、ステータス・ワード、 続けてターミナル・フラグ・ビットは、リモート・ターミナル全体ではなく、チャンネルのステータスのみを反映する(二重冗長スタンバイターミナルは、AとBの2チャンネルを持ちます)。 規格の意図内では不必要ですが、これらのチップを含むターミナルは存在し、バス・コントローラは、ターミナルがターミナル・フラグを定義する方法を知っておく必要があります(例えば、ターミナル、またはチャンネル)。
最後のビット(20ビット目)は、ワード・パリティ・ビットです。奇数パリティのみが使用されます。
MIL-STD-1553解説文書【日本語技術資料プレゼント】
MIL-STD-1553通信規格の日本語技術資料(計51ページ)をIPROSにて配布しており、ダウンロードいただけます。