(57)【特許請求の範囲】
【請求項１】
データバス入力端子に時分割方式で受ける入力信号に応答して複数の時分割多重時間スロットの中の関連する１スロットの間に出力制御信号を生成する手段を備えるデータリンクモジュールにおける、入力信号調整器であって、
前記データバス入力端子の信号がパルス開始しきい値電圧を超えると中間データパルスの発生を開始する手段、
前記データバス入力端子の信号が前記パルス開始しきい値電圧とは異なるパルス終了しきい値電圧より下がると前記中間データパルスの発生を終了する手段、
前記データリンクモジュールに関連するアドレス時間スロットが複数回発生する度に前記中間データパルスが存在するかどうかを決定する中間パルス連続性チェッカ、
前記パルス連続性チェッカに応答して、前記複数の各アドレス時間スロットの間に前記中間データパルスが存在すると決定したときだけ、調整された入力信号を生成する手段、
を備える入力信号調整器。
【請求項２】
前記データパルス開始しきい値電圧は、前記データバス入力端子で受ける入力制御信号の所定の公称電圧の大きさの約75％である、請求項１記載のデータリンクモジュール。
【請求項３】
前記終了しきい値電圧は、前記データバス入力端子で受ける制御信号の所定の公称電圧の大きさの約25％である、請求項２記載のデータリンクモジュール。
【請求項４】
約50％のヒステリシスを与えるヒステリシス波形整形回路を備える、請求項１記載のデータリンクモジュール。
【請求項５】
前記パルス連続性チェッカは、
シフトレジスタ、
前記データリンクモジュールに関連するアドレスサイクルの周波数より大きい周波数で動作するクロック、
前記中間データパルスを前記シフトレジスタの逐次段階にシフトする手段、を備える、請求項１記載のデータリンクモジュール。
【発明の詳細な説明】
発明の分野
この発明は一般に制御システムの分野に関し、より詳しくは、直列時分割多重バスで通信するデータリンクモジュールを用いた制御システムに関する。
37C.F.R.1.97−199で開示されている情報を含む関連技術の説明
直列多重バスを用いて、複数個の入力装置により少なくとも１個の出力装置を制御する制御システムはよく知られている。既知のいくつかのシステムは、コンピュータの指示に従って動作するソフトウエアプロトコルを用いる。この場合はすべての制御信号データは、多重ビットのバイトかまたは多重ビットのバイトのパケットで運ばれる。このようなソフトウエアプロトコル制御システムの例は、カリフォルニア州パロアルトのエシェロン社（Echelon Company）のロンワークス（LonWorks）ローカル動作網や、エレクトロニック・インダストリ・アッソシエーション社のホームオートメーションシステムのコンシューマ・エレクトロニクスバス（CEbus）や、ドイツのシュトットガルトのロバート・ボッシュ（Robert Bosch）社のコントローラ・エリア・ネットワーク（CAN）や、ノースカロライナ州リサーチ・トライアングル・パークのWorldFIP協会の世界工場実現（World Factory Implementation）プロトコル、などである。既知のソフトウエアプロトコル制御システムの欠点は、わずか１ビットのデータを送るのに多重ビットのバイト、一般に16ビットのバイトを必要とすることである。ソフトウエアプロトコル制御システムは多重ビットのバイトまたは語を送るように設計されているが、この発明などのハードウエアプロトコルシステムに比べて多重ビット語を送るのに10−100倍遅いのが欠点である。ほとんどのソフトウエアプロトコル制御システムでは、制御プロトコルは、ヘッダ、送信する語の数、負荷の識別、負荷の状態、検査合計から成る。このようなシステムの多くは、１負荷をオンにするのに少なくとも６つの８ビット語が必要である。ソフトウエアプロトコルシステムによっては、この３倍のビット数が必要である。
ソフトウエアプロトコルシステムの欠点は、ソフトウエアを用いて制御システムを管理するコンピュータに通信機能を集中させる、すなわちまとめることである。機能するにはコンピュータが必要なので、コンピュータが故障すると制御システムも故障するのが欠点である。
別の直列多重制御システムでは単一ビットのデータを用いて制御信号を送る。このようなシステムは通信機能をシステム全体に、通常は各入力および出力の位置に分散している。このような分散型の単一ビットシステムの多くは、全くプログラムできないハードウエアプロトコルを持つ。この型の単一ビットのハードウエアプロトコル制御システムの例は、ドイツのオーデンタールのASI Verein eVGeschaeftsfuehrungのアクチュエータ・センサ・インターフェース（ASI）である。その他の例は次の特許に開示されている。すなわち、マッケイ（MacKay）の米国特許第4,052,566号および第4,052,567号、1977年10月４日発行、モアランド（Moreland）の米国特許第4,156,112号、1979年５月22発行、キャラン（Callan）の米国特許第4,435,706号、1984年３月６日発行、チャン（Chang）他の米国特許第4,682,168号、1987年７月21日発行である。
ハードウエアプロトコルシステムはプログラマブルロジックコントローラ（PLC）を用いることが知られている。これはラダー論理でプログラムされたコンピュータである。このシステムの欠点は、入力装置と出力装置を端子に接続するのに長い多重ケーブルを走らせる必要があることである。PLCコンピュータは実行速度が遅すぎて実時間で動作できないことが多い。
既知の単一ビットのハードウエアプロトコルシステムはプログラムできないものが多い。しかしこの種のシステムで、ファームウエアによりプログラム可能なものの例がリリー（Riley）の米国特許第4,808,944号、1989年２月28日発行、に述べられている。上記のリリーの特許などの既知のプログラム可能なシステムには、プログラミング情報を受けるのに、モジュール上に別の専用の端子が必要である。
リリーの上述の特許などの既知の単一ビットのハードウエアプロトコルシステムは、時間のフレームを多重送信する。時間のフレームは更に256個の時間スロットに分割される。各時間スロットはアドレスを表し、各入力装置と出力装置は１つのアドレスに関連する。上述の単一ビットのハードウエアプロトコルシステムはソフトウエアプロトコルシステムに比べると比較的簡単であって、多重ビット語のデータを直接処理することはできない。リリーの上述の特許の制御システムが直接処理することができるのはせいぜい２ビット語である。単一ビットのハードウエアプロトコル制御システムの欠点は、多重ビット語のデータを送るのに複雑な回路を追加して修正する必要があることである。しかしこの複雑な追加の回路の欠点は、既知の修正された単一ビットのハードウエアプロトコルシステムを固定語長に限定することである。リリーの上述の特許に示されている従来型の２チャンネルのデータリンクモジュールでは、多重ビット語の開始アドレスは一方のチャンネルのアドレスで決定されるが、多重ビット語の終了アドレスは選択できないのが欠点である。不都合なことに終了アドレスは、ホストコンピュータを使う場合は開始アドレスの後の８ビットに、またはホストコンピュータを使わない場合は開始アドレス後の16ビットに固定されている。
既知のデータリンクモジュールと共に用いる複雑な追加回路は、データリンクモジュールの主集積回路の外部に取り付ける。リリーの上述の特許では複雑な追加回路は既知のデータリンクモジュール内でかなりの空間を占める。
既知のデータリンクモジュール集積回路は集積回路の内部にトランジスタを備え、データバス電圧を低に駆動して負論理の信号を表す。既知のデータバス電流は約30ミリアンペアであり、既知のデータバス電圧は約12ボルトである。しかし既知のデータリンクモジュール集積回路内のデータバスを低に駆動するのに用いる内部トランジスタは、データバスの電流および電圧がたとえば50ミリアンペアおよび16ボルトというように、通常よりやや高くなると故障することが多い。
制御システムは製造や組立の工場などの環境の中で用いられ、電磁的騒音・静的パルスやスパイクパルス・過渡電圧（ここでは総称して「騒音」と呼ぶ）に曝される。既知のデータリンクモジュールは、騒音と信号の時間が一致しないことに助けられて騒音の干渉を免れている。騒音があると、出力装置は適当でないときに応答したり、応答しなければならないときに応答しなかったりする。データ信号をクロックパルスのエッジに同期させるだけでは、制御システムに対する騒音の影響を十分取り除くことはできないことが分かっている。
既知のデータリンクモジュールの動作電圧範囲は比較的狭くて通常９ボルトから13ボルトであり、集積回路の外部に電圧変換用の回路を追加しなければ、既知のデータリンクモジュールを12ボルトや、よく使われる24ボルトのシステムで用いることができない。
伝播遅れや他の或る種の条件があると起動時の或る条件下で誤出力信号が出るが、これは避けたい。既知のシステムは、或る時間スロット内に入力信号が変化すると、これに応じて誤出力を出す。また既知のデータリンクモジュールは、主クロック信号の損失の後でも引き続き出力信号を出すが、この場合は制御性が悪くなる。
リリーの上述の特許に示されている従来型のデータリンクモジュールは、他の２つの出力の論理的組み合わせである第３の出力を出す。他の２つの出力の極性は選択できるが、第３の出力の極性は他の２つの出力の極性とは独立に選択することができないのが欠点であって、高度な論理機能を容易に実現することができない。
既知のハードウエアプロトコルの直列多重制御システムには、データバスが開いている、すなわちつながっていない、かどうかを決定する回路がない。この種の既知の制御システムは、単にデータバスが短絡しているかどうかをチェックするだけである。さらに既知のデータリンクモジュールには、個々のモジュールとデータバスとを接続する線がつながっていることを選択的にチェックする回路や或るモジュールへのデータ線が故障したときにそのモジュールを選択的にオフにする回路がない。既知の制御システムは、クロックモジュールを用いて同期期間中にテストパルスをデータバスに乗せる。次に、既知のクロックモジュールの回路は、データバスにテストパルスを乗せる試みが成功したかどうか決定する。テストパルスをデータバスに乗せる試みが失敗したときは、既知の制御システムは単に主クロックをオフにするだけである。しかし単に主クロックをオフにするだけでは、出力モジュールが出力装置に誤制御信号を出し続けることをすぐ止めることはできない。さらに既知の制御システムの欠点は、データバスの条件をクロックモジュールだけでテストすることである。既知の制御システムのクロックモジュールでテストを行っても、個々のデータリンクモジュールへのデータ線が故障していないことは決定しないし、また決定できない。それは、既知のデータリンクモジュールにはテストパルスを受ける追加の回路がないからである。
発明の概要
したがってこの発明の第１の目的は、既知のデータリンクモジュールが持ついろいろの欠点を取り除く、時分割多重制御システム用のデータリンクモジュールを提供することである。
この目的は、データバスの入力端子に時分割方式で受ける入力信号に応答して、複数の時分割多重時間スロットの中の関連する１スロットの間に出力制御信号を出す手段を備えるデータリンクモジュールを与えることにより、部分的に達せられる。その改善点は入力信号調整器であって、前記データバス入力端子の信号がパルス開始しきい値電圧を超えると中間データパルスの生成を開始する手段、前記データバス入力の信号が前記パルス開始しきい値電圧とは異なるパルス終了しきい値電圧より下がると中間データパルスの生成を終了する手段、前記データリンクモジュールに関連するアドレス時間スロットが複数回発生する度に前記中間データパルスが存在するかどうかを決定する中間パルス連続性チェッカ、パルス連続性チェッカに応答して、前記複数の各アドレス時間スロットの間に前記中間データパルスが存在すると決定したときだけ、調整された入力信号を出す手段、を備える。
またこの目的は、DC電圧駆動であって、時分割多重方式でデータをデータバスに受けると出力制御信号を出す手段を備え、主クロック信号を出す主クロックを持つ時分割多重制御システムに用いる、データリンクモジュールを提供することにより達せられる。その改善点はパワーオンリセット遅れであって、データリンクモジュールにDC供給電圧を加えたことを検出する手段、DC供給電圧を継続して加える前の所定の時間、制御信号生成手段がデータに応答して出力制御信号を変えることを禁止する手段を、備える。
さらにこの目的は、入力回路に加えるローカル入力端子と、時分割多重方式で前記入力回路に与えられる入力信号に応答して出力信号を生成する手段を備えるデータリンクモジュールを設けることにより、部分的に達せされる。その改善点は安全入力保護回路であって、前記データリンクモジュールの複数の異なる条件の中の選択された１条件を検出する手段、前記条件検出手段に応答して、前記入力回路が前記入力端子の入力信号の変化に応答することを禁止する手段、を備える。
さらにこの発明の目的は、時分割多重方式でデータバス信号を表すデータ出力信号を出す手段を持つ集積回路を備え、主クロック信号を出す主同期クロックを設けて時分割多重フレームを確立する時分割多重制御システムに用いる、データリンクモジュールを提供することにより達せられ、クロック損失出力ロックは、前記クロック信号の損失を検出する手段、前記主クロック信号の損失を検出すると、前記データバス信号が変化しても前記出力信号生成手段が出力信号の状態を変えることを禁止する手段、を備える。
さらにこの目的は、ローカル入力制御信号を受ける入力端子と、前記ローカル入力信号に応答して出力制御信号を出す手段を備えるデータリンクモジュール提供することにより得られる。その改善点は安全出力保護回路であって、前記データリンクモジュールの少なくとも１つの条件を検出する手段、前記条件検出手段に応答して、前記少なくとも１つの条件を検出している間は入力信号が変化しても出力制御信号生成手段が出力信号を変えることを禁止する手段、を備える。
この目的は、主クロック信号を持ち、複数のデータリンクモジュールをデータバスに接続し、一部のデータリンクモジュールに接続する入力装置から他のデータリンクモジュールに接続する出力装置に、時間の逐次のフレームを複数の時間スロットに分割した時分割多重方式で選択的に制御信号を運ぶ、制御システムに用いるデータリンクモジュールを提供することにより部分的に得られる。その改善点はデータ検査器であって、主クロック信号に応答して、選択された複数のフレーム毎に、選択された時間スロットの間に前記バスに現われるデータを逐次記憶する手段、前記データ記憶手段に応答して、複数のフレーム毎に、選択された時間スロットの間に同じデータが反復して発生することを検査する手段、前記検査手段に応答して、検査していデータだけに対するデータを表す出力信号を出す手段、を備える。
さらにこの発明の目的は、制御データを時分割多重方式で受けてそれぞれ関連する極性を持つ少なくとも２個の主出力端子にこのデータを運ぶデータバス入力端子と、前記少なくとも２個の主出力端子から論理回路の少なくとも２つの入力に送るデータの所定の論理的組み合わせに基づいて、組み合わせ出力信号を出す論理回路とを備えるデータリンクモジュールを提供することにより部分的に得られる。その改善点は極性選択回路であって、前記論理回路の各入力毎に入力極性選択を記憶する手段、前記主出力端子の極性とは独立に、前記極性選択に従って前記論理回路の各入力の極性を制御する手段、を備える。
さらにこの目的は、同期主クロック信号で定義される複数の時分割多重時間スロットの所定の関連する１スロットの間に、入力端子のローカル入力信号をデータバス端子に渡すデータリンクモジュールを提供することにより達成される。その改善点は入力同期器であって、前記同期主クロック信号と前記入力信号に応答して、複数の時分割多重時間スロットの関連する１スロットの初めに起こる入力信号を、前記関連する時間スロットの間に前記ローカル入力信号がその後変化しても、関連する時間スロットの実質的に全期間中記憶する手段、前記関連する時間スロットの実質的に全期間に、前記記憶した入力信号をデータバス端子に渡す手段、を備える。
またこの目的は、時分割多重制御システムの第１および第２動作モードの一方で選択的に動作するデータリンクモジュールの好ましい実施態様で達成される。その改善点はモード選択指示器であって、前記選択手段に応答して第１モードと第２モードのどちらを選択したかを示すモード選択信号を出す手段、前記モード選択信号に応答して、選択されたモードに従ってデータリンクモジュールに関連する少なくとも１アドレスの間の異なる時にデータバスにデータを自動的に与える手段、を備える。
さらにこの発明の目的は、主クロックと同期してフレーム当たり複数の多重時間スロットを生成する手段を備える集積回路を持つデータリンクモジュールを提供することにより得られる。その改善点は多重フレーム識別器であって、前記時間スロット生成手段に応答して、前記主クロックの各フレーム内の時間スロットの数を数える集積回路上の手段、前記計数手段に応答して前記主クロックのアドレスをデコードする、集積回路上の手段、前記デコード手段に応答して、前記主クロックの各フレームの所定の部分の間に前記データリンクモジュールに多重アドレスクロック出力信号を出す手段、を備える。
さらにこの発明の目的は、DC供給電圧と、システムクロック信号と、他のデータリンクモジュールと時分割多重ディジタル通信を行うデータバス、に接続する入力端子を備える時分割多重制御システムに用いるデータリンクモジュールを提供することにより達せられる。その改善点はモジュールプログラマであって、前記モジュールのプログラムを記憶する手段、前記DC供給およびシステムクロック信号用の少なくとも１個の入力端子が通常の動作パラメータから所定の変化をするとこれに応答して、前記プログラム記憶手段がデータバスからプログラミングデータを受けられるようにする手段、を備える。
またこの発明の目的は、クロック入力端子に接続できる主同期クロックのサイクルで定義される複数の時分割多重アドレスの予め選択された関連する１アドレスの間に、入力端子の入力データ信号をデータバスに送る手段を備えるデータリンクモジュールを提供することにより得られる。その改善点は入力語拡張器であって、開始アドレスとして複数のアドレスの中の選択された１アドレスを記憶する手段、複数のアドレスの中の前記選択された１アドレスとは独立に別の１つのアドレスを選択する手段、複数のアドレスの中の前記別の選択された１アドレスを、前記開始アドレスとは独立に選択された停止アドレスとして記憶する手段、前記主同期クロックと同期してシフトクロックアウト信号を生成して、前記記憶された開始アドレスと前記独立に選択され記憶された停止アドレスの間の複数のアドレスを、入力データ信号が出たときの前記開始アドレスと停止アドレスが発生する間の時間に識別する手段、前記シフトクロックアウト信号に応答して、前記開始アドレスと停止アドレスの間の各アドレスの間に、前記入力データ信号伝送手段により入力データ信号をデータバスに送る手段、を備える。
この発明の目的は、クロック入力端子に接続できる主同期クロックのサイクルで定義される複数の時分割多重アドレスの予め選択された関連する１アドレスの間に、データバス端子のデータを出力端子に送る手段を備えるデータリンクモジュールにより達せられる。その改善点は出力語拡張器であって、開始アドレスを記憶する手段、停止アドレスを記憶する手段、前記主同期クロックと同期してシフトクロックイン信号を生成して、前記開始アドレスと停止アドレスの間の複数のアドレスを、前記開始アドレスと停止アドレスが発生する間の時間に識別する手段、前記シフトクロックイン信号に応答して、前記開始アドレスと停止アドレスの間の各アドレスの間に、前記入力データ伝送手段によりデータバスのデータを出力端子に送る手段、を備える。
またこの目的は、データバスからディジタルデータ信号を受けるデータバス端子と、ローカル入力装置から入力信号を受けるローカル入力端子と、同期パルスの間の複数の時間スロットの中の１スロットを定義する時分割多重アドレスを持つ集積回路を備えるデータリンクモジュールを提供することにより達せられる。高電圧保護回路は、入力接合点と１対の相互導通出力を備え、また相互導通出力の間に短絡を発生する破壊電圧を持つ、切り換え可能な破壊装置、前記破壊電圧より高くかつ入力に入ると集積回路を損傷する電圧スパイクを受けやすい電圧バスに相互導通出力の中の１出力を接続する手段、他の相互導通出力を基準ポテンシャルに接続する手段、前記アドレスに応答し、またローカル入力端子かデータバス端子の少なくともどちらかの信号に応答して、前記切り換え可能な破壊装置の入力接合点に駆動信号を与えて、前記データリンクモジュールのアドレスの時間スロットの間に適当なデータ信号をデータバスに与える手段、ただし前記切り換え破壊装置は、前記データバスにデータ信号を与えるよう駆動されないときは前記電圧スパイクから前記集積回路を保護するよう破壊するもの、を備える。
さらにこの発明の目的は、電圧レベルV1とV2（ただしV1＜V2）の間の直流電圧を受ける直流供給電圧入力端子と、プログラム記憶要素に記憶されているプログラム情報に従ってデータリンクモジュールを経て信号データを通す回路とを持つ集積回路を備えるデータリンクモジュールを提供することにより得られる。その改善点はプログラムイネーブラであって、直流供給電圧が電圧レベルV1とV3の間にあるときは信号通過回路を活動状態にする、前記集積回路上の手段、ただし集積回路上の前記手段は直流供給電圧が電圧レベルV4とV2（ただしV1＜V3＜V4＜V2）の間のときも信号通過回路を活動状態にするもの、電圧レベルV3とV4の間の前記DC供給電圧に応答して、前記プログラム記憶要素が新しいプログラム情報を受けることができるようにする手段、を備える。
またさらにこの発明の目的は、入力端子のローカル電圧入力を時分割多重方式でデータバスに渡す回路を含むデータリンクモジュールを提供することにより達せられる。その改善点はローカル入力電圧範囲選択器であって、前記データリンクモジュールが処理することができる複数の異なる入力電圧レベルの中の１レベルを選択する手段、前記選択手段に応答して、選択された入力電圧レベルを記憶する手段、前記記憶手段に応答して、前記記憶された電圧レベル選択に従って前記データリンクモジュールの回路を動作させる手段、を備える。
またさらにこの発明の目的は、主クロックモジュールを備える時分割直列多重制御システム内のデータバスからデータ信号を受けて、前記データバスでテスト信号を送るデータリンクモジユールを提供することにより得られる。その改善点はデータバス完全性チェッカであって、前記データバスに接続する前記テスト信号に応答して、前記データバスが故障していないことを決定する手段、前記決定手段に応答して、前記データリンクモジュールが前記データバスからデータ信号を受けることができるようにする手段を、備える。
【図面の簡単な説明】
この発明の上述の目的と利点について詳細に説明する。添付の各図面を参照してこの発明の好ましい実施態様の説明を読めば明らかになる。
第１図は、この発明のデータリンクモジュールの好ましい実施態様を用いた制御システムの簡単化した略図である。
第2A図と第2B図は、データリンクモジュール集積回路の好ましい実施態様の回路の複合機能ブロック図で、第１図の出力モジュールおよび入力モジュールすなわちデータリンクモジュールの一部である。
第3A図は、第2A図と第2B図のデータリンクモジュールの入力Ａに関連する信号調整回路の論理回路図である。
第3B図は、第3A図の信号調整回路のプログラム可能なヒステリシス回路の更に詳細な回路図である。
第４図は、第2A図と第2B図のパワーオンリセット遅れ機能ブロックの論理回路図である。
第５図は、第2A図と第2B図の入力禁止、チャンネルＡ入力データ制御、チャンネルＢ入力データ制御、窓制御機能ブロックの一部の論理回路図である。
第６図は、第2A図と第2B図のクロック損失検出機能ブロックの論理回路図である。
第７図は、第2A図と第2B図の出力禁止機能ブロックの論理回路図である。
第８図は、第2A図と第2B図の選択可能なデータ検査器機能ブロックの論理回路図である。
第９図は、第2A図と第2B図の極性独立（polarity independent）機能ブロックの論理回路図である。
第10図は、第2A図と第2B図のモード／同期出力機能ブロックの論理回路図である。
第11図は、第2A図と第2B図の多重アドレスクロック、すなわちMUX  CLOCK機能ブロックの論理回路図である。
第12図は、第2A図と第2B図のプログラム制御機能ブロックの論理回路図である。
第13図は、第１図の語拡張器、モード制御、窓制御の一部の機能ブロックの論理回路図で、この発明のシフトクロックインとシフトクロックアウト状態を示す。
第14図は、第2A図と第2B図のデータバス駆動機能ブロックの論理回路図と、第2A図と第2B図のデータバス駆動出力により駆動されるトランジスタを示すデータリンクモジュールの簡単化した回路図である。
第15図は、出力モジュールとして用いられ、多重化を示す、第１図のデータリンクモジュールの簡単化したブロック図である。
第16図は、データバス完全性チェッカ、データリンクモジュール集積回路、16ビット語アドレス指定用の２個の16ビットシフトレジスタの簡単化したブロック図。
第17A図−第17B図および第17C図−第17D図は、主クロック信号と各種の他の信号との関係を示す複合タイミング図である。
第17E図は第17D図の拡大部分である。
第18A図−第18C図および第18D図−第18F図は、この発明のプログラミング回路のプログラムサイクルと検査サイクルをそれぞれ示す複合図である。
第19図は、第16図のデータバス完全性チェッカ機能ブロックの論理回路図である。
第20A図−第20B図は、第19図のデータバス完全性チェッカの動作に関する各種の信号のタイミング図である。
第21図は、第17A図−第17E図に詳細に示すクロックバス信号とデータバス信号の３フレームのタイミング図である。
好ましい実施態様の説明
第１図は、この発明に従って構成した複数のデータリンクモジュール32を用いた制御システム30を示す。制御システム30はファームウエアによりプログラムすることのできるハードウエアプロトコルシステムで、単一および多重ビット語のデータを同時に送ることができる。制御システム30は、複数のデータリンクモジュール32により通信機能を分散している。そのため、制御システム30を動作させるのにコンピュータ34を使うかどうかは随意である。また制御システム30は主クロックモジュール36および電源38を備え、これらは好ましくは４本の心線を持つケーブル40に接続する。心線は直流電圧線42、主クロック線44、データバス46、電源38の共通線48を備える。制御システムケーブル40は、リング、多重ドロップ、ループバック、バス、スターなどの既知の構成方法に必要な任意の形で構成する。もちろんリングやループバック構成を用いると冗長度が得られる。光センサ制御スイッチなどの１個または複数個の制御する装置すなわち入力装置50を、少なくとも１個のデータリンクモジュール32に接続する。入力装置50を接続したデータリンクモジュール32は入力モジュールとして動作し、入力装置からのローカル入力信号に応答して、直列多重時分割方式でデータバス46に信号を乗せる。ソレノイド制御スイッチなどの１個または複数個の制御される装置すなわち出力装置54を、少なくとも１個のモジュール32に接続する。ローカル出力に出力装置54を接続するデータリンクモジュール32は出力モジュールとして動作し、直列多重時分割方式でデータバス46からデータを取り出してローカル出力信号を出すと、出力装置はこれに応答する。各データリンクモジュール32は最大２チャンネルを持ち、第17A図−第17E図に示すモード１の時間スロット65またはモード２の時間スロット67の間に、データバス46に信号を入力し、またはバスから信号を出力する。第１図では簡単のために、各データリンクモジュール32は入力モジュールまたは出力モジュールとして動作するように示す。またはデータリンクモジュール32は入力モジュールおよび出力モジュールとして同時に動作することもできる。この場合は、データリンクモジュール32に接続する入力装置50は一方のチャンネルに関連し、データリンクモジュール32に接続する出力装置54は他方のチャンネルに関連する。
データリンクモジュールはモード１またはモード２の動作モードで動作する。モード１動作のタイミング図を第17A図と第17B図に示す。第１図の制御システム30は、長く伸ばした同期期間58と、その後に続く０−256の番号を付けた最大256個の同じクロックサイクル61とから成るクロック信号タイミングプロトコルを用いる。同期期間58と256個のクロックサイクル61でフレーム62を表す。主クロック信号85は主クロックモジュール36が作り、各データリンクモジュール32はこれをバス40のクロック線44を通して受ける。最大256個のクロックサイクル61はそれぞれ接続する装置アドレスを表す。各データリンクモジュール32は、１個または複数個の入力装置50と１個または複数個の出力装置54を、各装置50および54に関連する時間スロットすなわちアドレス65の間、データバス46に選択的に接続する。動作モードがモード１かモード２かに従って、アドレス65の継続時間は制御システム主クロック信号85のそれぞれ１サイクルまたは２サイクルである。フレーム62当たりのクロックサイクル61の数は主クロックモジュール36で選択することができ、この選択された数は必要な異なるアドレスの数に等しい。フレーム62当たりに必要な最少数のクロックサイクル61を選択して、制御システム30の応答時間を最適にする。
第2A図と第2B図において、各データリンクモジュール32は集積回路80を備える。第17A図と第17B図に示すように、モード１の各時間スロットすなわちアドレス65の継続時間は１主クロックサイクル61全体である。モード１では、時間スロット65の第１部分の間に、１個または複数個の入力データリンクモジュール32はデータをデータバス46に乗せ、データはその全時間スロットの間データバス46の上にある。時間スロット65の中点64でデータバス46のデータを、少なくとも１個の出力データリンクモジュール32の出力端子98と100にバスから複写し、これを少なくとも１個の出力装置54が用いる。時間スロット65の終わり、すなわち次の時間スロットの初めにデータバス46にデータを乗せるという過程を、フレーム62の各時間スロット65毎に続ける。フレーム62が多重化でないときは、この過程をその後のフレームの間繰り返す。多重化フレームのときの過程の動作については後で説明する。
単一ビットの入力信号と出力信号を用いる制御システム30の動作についてはリリーの前述の特許に詳しく説明されているので、これを引例として示す。しかし、単一ビットのデータを通すよう設計された既知のデータリンクモジュールとは異なり、この発明のデータリンクモジュール32は単一ビットまたは多重ビットのデータを選択的に通す。したがって、データリンクモジュール32を用いる制御システム30は、たとえば16ビット語のデータを入力装置50からデータバス46に、またデータバス46から出力装置54に、データリンクモジュール32の集積回路80の外部に複雑な回路を用いることなく移すことができる。既知のデータリンクモジュールとは異なり、データリンクモジュール32は、データリンクモジュール32のハードウエアを一切変更することなく、プログラムにより最大256ビットの任意の大きさの語のデータを通すことができる。表示を簡単にするために、第１図の入力および出力装置は８ビット装置を示す。
このように多重ビット語を用いているために、データリンクモジュール32はコンピュータを用いた入力および出力装置と容易に対話することができるが、ホストコンピュータ34は制御システム32自体を操作する必要はない。可変長の語を用いるので、ファームウエアは変更するが主なハードウエアは変更することなく、データリンクモジュール32とよく使われる８ビット・16ビット・32ビット装置とを交互に接続することができる。アナログデータは、多重ビット語を用いることにより、また入力データリンクモジュール32にＡ−Ｄ変換器（図示せず）を用い、出力データリンクモジュール32にＤ−Ａ変換器（図示せず）を用いることにより、制御システム30のデータバス46を通して送ることができる。
さらに、データリンクモジュール32を用いる制御システムは、既知の装置の限界を克服する。というのは、データリンクモジュール32の集積回路80の外部に複雑な回路を用いることなく、256個を超える入力装置と256個を超える出力装置を多重化フレーム62により制御することができるからである。
この発明に従って構成したデータリンクモジュール32を用いる制御システム30は、モード１かモード２で選択的に動作する。モード２では、単一の半スロット工業標準構成（ISA）のコンピュータ・インターフェースカード（図示せず）により制御システムケーブル40の４本の心線42・44・46・48を、随意のホストコンピュータ34に、好ましくはマイクロプロセッサを用いたパーソナルコンピュータに接続する。ホストコンピュータ34から見ると、制御システム30は2048バイトブロックの二重ポートのランダムアクセスメモリ（RAM）と同じである。入力と出力は、RAMの使用していない位置にビット写像される。
次に第17C図と第17D図のモード２の複合タイミング図を参照すると、モード２の各アドレス67の長さは第17A図のモード１の各アドレス65の長さの２倍（すなわち継続時間が２倍）である。第17A図と第17B図の尺度は、第17C図と第17D図の尺度と同じではない。第17C図と第17D図のモード２の主クロックサイクル61は第17A図と第17B図の主クロックサイクル61より短く見えるがこれは表示の便宜上に過ぎない。モード２の主クロックサイクル61の継続時間は、モード１の主クロックサイクル61の継続時間と同じである。モード２では、第17E図のたとえばアドレス「36」というアドレス67は、第17E図の２つの主クロックサイクル61と61'で定義される。アドレス67の２つの逐次のクロックサイクル61と61'の最初の61の初めに、入力モジュールとして動作するデータリンクモジュール32はデータをデータバス46に乗せる。２つのクロックサイクル61と61'の最初の61の間は、データをデータバス46上にラッチする。最初のクロックサイクル61の間に、随意のホストコンピュータ34はデータをデータバス46から複写する。アドレス67の第２のクロックサイクル61'の初めに、随意のホストコンピュータ34は信号をデータバス46に乗せ、この信号を第２クロックサイクル61'の間ラッチする。第２のクロックサイクル61'の間に、出力モジュールとして動作するデータリンクモジュール32はデータをデータバス46から複写し、このデータをデータリンク（出力）モジュール32に接続する出力装置54に送る。
既知のデータリンクモジュールとは異なり、データリンクモジュール32はアダプタなしに約12ボルトまたは約24ボルトの電源38で動作することができる。また既知のデータリンクモジュールとは異なり、データリンクモジュール32は０−５ボルトまたは０−９ボルトの２値論理レベルを表す入力装置50に直接接続することができる。
第2A図と第2B図にブロックの形で示すように、集積回路80はそれぞれ次の信号を受ける入力端子84・86・88・90・92・94・96を備える。信号とは、主クロック信号すなわちCLOCK、データバス信号すなわちDATA、動作電圧すなわちVCC、好ましくは接地ポテンシャルの共通電圧すなわちCOMMON、外部の発振抵抗器（図示せず）、チャンネルＡ入力信号すなわちCH_A、チャンネルＢ入力信号すなわちCH_Bである。集積回路80はそれぞれ次の信号を出力する出力端子98・100・102・104・106・108・110・112を備える。信号とは、チャンネルＡ出力信号すなわちOUTPUT_A、チャンネルＢ出力信号すなわちOUTPUT_B、チャンネルＣ出力信号すなわちOUTPUT_C、シフトクロックイン信号すなわちSH_CLK_IN、シフトクロックアウト信号すなわちSH_CLK_OUT、多重クロック信号すなわちMUX、モード／同期信号すなわちMODE_SYNC、データ駆動信号すなわちDATA_DRVである。
各データリンクモジュール32はチャンネルＡおよびチャンネルＢの２チャンネルを持ち、各チャンネルはアドレスに関連する。各時間フレーム62の間に、第2A図に示す８ビットカウンタ114が主クロック信号85のサイクル61を数える。各フレーム62の初めに８ビットカウンタ114をリセットする。モード１では、カウンタ114はすべてのクロックサイクル61を数え、その結果をアドレス比較器116と118に送り、ここでカウンタの計数とデータリンクモジュール32にプログラムされている各アドレスとを比較する。計数がアドレスと一致したときは、関連する比較器はそれぞれ一致Ａ（COIN_A）信号および一致Ｂ（COIN_B）信号を出す。モード２の動作は同様であるが、異なるところは、アドレス67が２つのクロックサイクル61と61'から成ることである。第2A図に示すように、集積回路80の窓制御部120は８ビットカウンタ114に信号を送り、モード１とモード２の差を補償する。
集積回路80の動作は、第2A図と第2B図にブロックで表している各部の動作をこれから個々に詳細に説明した後で明らかになる。各種の回路の動作を理解するのに必要な場合を除いて、電力線42と共通線48は回路の詳細図には示さない。
信号の調整
第2A図にブロックの形で示すように、集積回路80のチャンネルＡ入力端子94に入るチャンネルＡ入力信号は、処理する前に二重信号調整回路180を通す。信号調整回路180はチャンネルＡ信号調整回路122（第3A図に示す）と、チャンネルＢ信号調整回路（図示せず）を備える。第3A図に示すように、信号調整回路122はエイリエイジング防止（anti−aliasing）フィルタ124、ヒステリシス回路126、ディジタル低域フィルタ128を備える。チャンネルＢ用の信号調整回路（図示せず）はチャンネルＡ用の信号調整回路122と実際は同じものなので、チャンネルＡ用の信号調整回路だけを詳細に説明する。信号調整回路の入力端子130はエイリエイジング防止フィルタの入力端子131である。エイリエイジング防止フィルタ124は好ましくは約470kΩの直列抵抗器136と、入力131と接地ポテンシャルの間の好ましくは約17pFのコンデンサ156を備える。データリンクモジュール32のチャンネルＡとチャンネルＢの入力周波数は3kHzより下で用いるのが好ましい。したがってエイリエイジング防止フィルタ124は約30kHzの帯域消去を持つ。エイリエイジング防止フィルタ124の出力132をヒステリシス回路126の入力134に与える。
ヒステリシス回路126は、プログラムにより入力端子134に異なる電圧レベル範囲を持つ信号を受けることができる。第3A図には電気的に消去可能なリードオンリーメモリ（EEPROM）のセル138を完全には示していないが、このセルをヒステリシス回路126の別の入力140に接続する。セル138が論理０のときの許容できる入力電圧範囲は０−５ボルトである。セル138が論理１のときの許容できる入力電圧範囲は０−９ボルトである。ヒステリシス回路126は、小さな電圧レベルの変動により誤状態遷移が起こるのを防ぐ。プログラム可能なヒステリシス回路126とEEPROMのセル138とで、ローカル入力電圧範囲選択器として機能する。
ヒステリシス回路126の詳細を第3B図に示す。この回路はEEセル138に記憶されている値を反転するインバータ142と、２つの比較的高電圧および２つの比較的低電圧を作る８個の抵抗器および４個のトランジスタの回路144を備える。ヒステリシス回路126は50％のヒステリシス回路であることが好ましい。２つの比較的高電圧6.75vおよび3.75vはそれぞれ9vシステムおよび5vシステムの予想最大入力電圧の75％である。２つの比較的低電圧1.25vと2.25vはそれぞれ9vシステムと5vシステムの予想最大入力電圧の25％である。EEセル138を付勢および除勢すると、比較器146と148を制御することにより、6.75vと2.25vの対と3.75vと1.25vの対のどちらかを選択して用いることができる。一方の比較器148は、比較器148の入力端子134の信号が最大入力電圧の75％を超えると比較器出力信号（HITRIP）を出す。比較器146と148の入力端子133は、ヒステリシス回路126の入力端子134に接続する。比較器出力信号（HITRIP）149はフリップフロップ150をセットする。フリップフロップ150のＱ出力端子152は、ヒステリシス回路126の出力端子136である。ヒステリシス回路126の出力信号135は平らな波で、ヒステリシス回路の入力端子134の信号125の電圧が最大入力電圧の25％より下に下がるまで高である。25％より下がると、他方の比較器146は別の比較器出力信号（LOTRIP）147を出し、フリップフロップ150をリセットして、ヒステリシス回路の出力端子136の信号135を０ボルトにする。ヒステリシス回路126の出力端子136の信号135をディジタルフィルタ128の入力端子154に与える。第2B図にブロックの形で示す内部発振器158からの出力信号159をディジタルフィルタ128に与えて、ディジタルフィルタの帯域消去を制御する。帯域消去周波数は、内部発振器158の周波数を５で割って決める。内部発振器158の好ましい周波数は約150kHzである。ディジタルフィルタ128は、多重ビット、好ましくは５ビットの直列イン、並列アウトのシフトレジスタ160から成る。シフトレジスタ160からの出力信号163を、それぞれ多入力、好ましくは５入力のANDゲート166と168から成る正パルス連続性チェッカ162と負パルス連続性チェッカ164に同時に与える。正パルス連続性チェッカ162は、内部発振器158の複数の逐次の各サイクルに信号が存在するときだけ、RSフリップフロップ172の入力Ｓ端子170に信号を送る。RSフィリップフロップ172は、負パルス連続性チェッカ164によってリセットされるまで、出力Ｑ端子174に論理１出力を出す。RSフリップフロップ172の出力Ｑ端子は、チャンネルＡ信号調整回路122の出力端子176に接続する。チャンネルＡ信号調整回路122の出力端子176に、調整されたINPUT_A信号であるIINPUT_A信号が出る。チャンネルＡ用の信号調整回路122の出力端子176とチャンネルＢ用の信号調整回路（図示せず）の出力端子178を、チャンネルＡおよびチャンネルＢのそれぞれの入力データ制御回路182と184に結ぶ。
データバス46の主クロックバス44のそれぞれの調整回路186と188は、関連する周波数を除けば、チャンネルＡおよびＢ（図示せず）の入力信号調整回路122と同様に動作する。この発明のデータリンクモジュール32の、クロックバス44とデータバス46は、200kHzより低い周波数で用いることが好ましい。したがって、データバスとクロックバスのエイリエイジング防止フィルタ186と188は好ましくは100kΩのエイリエイジング防止フィルタ抵抗器126を備え、また信号調整回路は約225kHzの区切り点を持つことが好ましい。同様にして、データバス信号調整回路186と主クロックバス信号調整回路188は、信号DATA87とCLOCK85からそれぞれ調整された信号IDATA191とICLOCK192を出す。
パワーオンリセット遅れ
次に第2B図において、集積回路80の内部発振器158は50−400kHzの周波数範囲を持つのが好ましい。この周波数は、入力端子92から接地に接続する外部抵抗器Ｒは（図示せず）で制御する。ただしＲ（オーム）＝14.5x109/周波数（ヘルツ）である。好ましくは、Ｒの範囲は25−200kΩである。内部発振器158は一般に知られている型のものであって、この発明の一部ではない。内部発振器158は信号OSC159を出す。
第2B図にブロックの形で示すように、パワーオンリセット遅れ回路190は３個の入力端子、すなわち、発振器信号（OSC）159を受ける181、内部主クロック信号（ICLOCK）192を受ける183、パワーオンリセット信号（POR）194を受ける185、を備える。POR信号194は集積回路80に電力を与えた直後に発生する。パワーオンリセット手段195はよく知られており、この発明の一部ではない。パワーオンリセット遅れ回路190は２個の出力端子、すなわち、同期信号（SYNC）196を出力する216とパワーオンリセット遅れ信号（POR_DLY）198を出力する218、を備える。
パワーオンリセット遅れ回路190を第４図に詳細に示す。内部主クロック信号（ICLOCK）192は所定の同期期間58の間は高に保持され、各時間フレーム62の初めを定義する。同期期間58の継続時間は主クロックサイクル61の８サイクルが好ましい。４ビットのカウンタ200とNANDゲート202は、10サイクルのOSC信号159を受けるとNANDゲート202の出力端子204に低SYNC_DET信号205を出す。同じ期間中、ICLOCK192は継続的に高である。ICLOCK信号192はカウンタ200の反転クリア入力183に入る。SYNC_DET信号205は、ICLOCK周波数とOSC周波数の関係によって決まる期間中は低である。しかしICLOCKの最初の負への遷移が起こると（これは同期期間58の終わりを定義する）、負のICLOCKパルスがカウンタ200をクリアするので、SYNC_DETは再び高になる。OSC周波数はICLOCK周波数より1.5ないし10倍速い方がよい。
SYNC_DET信号205は複数の相互に接続されたデータフリップフロップ206と208に入り、次にANDゲート210に入る。フリップフロップ206と208は、フリップフロップ入力209と211にそれぞれ低POR信号194を受けるとクリアされる。ANDゲート210の出力212は、低POR信号194を受けるとすぐ低POR_DLY信号198を出す。ANDゲート210の出力212は、複数のデータフリップフロップ206と208がゲート201を通して複数のSYNC_DET信号を受けると、高POR_DLY信号198を出す。
第４図に示す回路は、SYNC_DET信号205を３個受けると高POR_DLY信号を出す。簡単のために第４図には２個のデータフリップフロップ206と208だけを示しているが、4,095個のSYNC_DET信号205を数えた後で高POR_DLY信号198を出すには、約12個のデータフリップフロップを備えるのが好ましい。パワーオンリセット遅れ回路190は集積回路に電源を入れた後、集積回路80が所定の複数のSYNC_DET信号205を受けるとPOR_DLY信号198を出す。POR_DLY信号198とSYNC_DET信号205はANDゲート214によりゲートされて、出力216にSYNC信号196を出す。したがって、POR_DLY198が高でなければ、SYNC196は低である。
集積回路80のフリップフロップの多くは、SYNC196によってプリセットされるかクリアされる。したがってこれらのフリップフロップは、データリンクモジュール32への電力供給が安定した後に初めてプリセットまたはクリアされる。POR_DLY信号198は、クロック損失出力ロック回路240と、安全入力禁止保護回路220と、モード／同期回路458に入る。
安全入力保護回路
第2A図と第2B図にブロックの形で示すように、安全入力保護回路すなわち入力禁止回路220は、集積回路80に電源を入れた後の所定の時間と、集積回路をプログラムしまたはプログラミングを検査している時間は、入力データ制御回路182と184が入力信号に応答することを禁止する。第５図に更に詳細に示すように、入力禁止回路220はNORゲート224を備える。NORゲート224は入力として入力端子226と228にアクティブ低POR_DLY信号198とアクティブ高プログラム／検査モード信号（P/V_MODE）199をそれぞれ受け、出力信号として出力端子230からINPUT_INHIBIT信号229を出す。
低POR_DRY信号198は、集積回路80に電源を入れた後の所定の時間、パワーオンリセット遅れ回路190から出る。高P/V_MODE信号199は、プログラミングサイクルの間および検査サイクルの間、モジュールプログラマ232から出る。POR_DLY信号198とP/V_MODE信号199は入力禁止回路220の入力226と228に入る。入力禁止回路220の出力端子230は、チャンネルＡおよびチャンネルＢの入力データ制御回路182と184の入力端子416と418にそれぞれ結合する。入力禁止回路220は、チャンネルＡおよびチャンネルＢの入力データ制御回路182と184にそれぞれ関連して動作する。チャンネルＡ入力データ制御回路の動作はチャンネルＢ入力データ制御回路の動作と実質的に同じなので、チャンネルＡ回路だけを詳細に説明する。第５図に示すように、入力端子416のINPUT_INHIBIT信号229はフリップフロップ400の反転クリア（CLR）端子235に入る。したがって、信号POR_DLY198が低か信号P/V_MODE199が高のとき、フリップフロップ400の出力Ｑ端子406の信号は０になる。したがって、集積回路80のその後の段階は所定の条件の下で入力Ａ信号または入力Ｂ信号に応答せず、データリンクモジュール32の安全性と信頼性が高まる。前記所定の条件は、信号POR_DLY198が低のときか、または信号P/V_MODE199が高のときが好ましい。
クロック損失出力ロック
主クロック信号85が存在しないときは、集積回路80の出力端子98・100・102・104・106・108の信号が変化しないようにしたい。第2B図に示すように、集積回路80はクロック損失検出回路240を備える。第６図に詳細を示すクロック損失検出回路240は、信号ICLOCK192とOSC159とPOR_DLY198を受ける３個の入力端子221−223と、長いリセット信号（LONG_RST）241を出す出力端子225を備える。クロック損失検出回路240は13ビットのカウンタ242を備える。カウンタ242は、内部主クロック信号ICLOCK192の損失が生じるとOSC159のサイクルを数え始める。OSC信号159は、13ビットのカウンタ242のクロックピン244に入る。ICLOCK192の損失は、遅れ要素（DLY）245と、カウンタ242のクリア（CLR）ピン248に接続する排他的ORゲート246により決定する。ICLOCK192が存在するときは、カウンタ242はICLOCKが遷移する度にクリアされる。6,144サイクルのOSC信号159を数えると、カウンタ242の出力250と252（２進数6,144の第12ビットと第13ビットを表す）は高になり、NANDゲート256の出力254に低クロック損失遅れ（CLK_LOSS_DLY）信号を出す。
クロック損失検出回路240は主クロック信号が存在しなくなってから6,144サイクルのOSCの後に、低CLK_LOSS_DLY信号を出し始める。主クロック信号が元に戻るまで、この回路は引き続き低CLK_LOSS_DLY信号を出す。POR_DLY信号とCLK_LOSS_DLY信号をANDゲート258で結合して、長いリセット（LONG_RST）信号を出す。LONG_RST信号は、反復回路260と安全出力保護回路262に入る。
安全出力保護回路
多重クロック108、シフトクロックアウト106、シフトクロックイン104、Ａ出力98、Ｂ出力100、Ｃ出力102の各端子から、ある条件では出力しないようにする必要がある。第2B図にブロックの形で示すように、集積回路80は安全出力保護回路262を備える。これは、低LONG_RST信号のときまたはプログラミング中またはプログラミングの検査中は、集積回路80の出力端子98・100・102・104・106・108から出力信号を出さないようにする回路である。
第７図に示すように、安全出力保護回路262はSYNCとLONG_RSTとプログラム電圧可能（PVE）信号をそれぞれ受ける３個の入力端子264・266・268を備える。データフリップフロップ272のＤ入力端子270に、制御システムの電力線電圧VCCを絶えず加える。データフリップフロップ272は、フリップフロップ272のＤ入力端子270に電圧VCCを加えるとQ274に高出力禁止信号を出す。ただし高PVE信号か低LONG_RST信号のどちらかによってクリアされた場合は除く。またこの回路はNORゲート276を備える。NORゲート276は高PVE信号と低LONG_RST信号を組み合わせてNORゲート出力端子277にリセット信号を形成し、この信号をフリップフロップ272のクリアピン278に与える。低リセット信号を出すとフリップフロップ272はクリアされる。SYNC信号により、各フレーム62の初めにフリップフロップ272は使用可能になる。したがってフリップフロップはリセット信号がなくなった後の最初のSYNC信号でセットされる。次に第2A図と第2B図において、安全出力保護回路272の出力は出力禁止信号（OUTPUT  INHIBIT）280で、出力端子98・100・102・104・106・108の各三状態装置にそれぞれ入り、集積回路80のこれらの出力端子を高インピーダンス状態にする。出力端子98・100・102・104・106・108が高インピーダンス状態であることは、出力端子に高信号も低信号もないことを表す。
データ検査器
第８図は第2A図にブロックの形で示す反復回路すなわちデータ検査器260で、チャンネルＡデータ検査器288とチャンネルＢデータ検査器289（チャンネルＡデータ検査器と実質的に同じ）を備える。モジュール32の中の１個に関連する選択された時間スロット65と67の間に、データバス46に存在する可能性のあるランダムノイズに誤って応答することがないようにするため、第21図の選択された複数の逐次の連続した時間フレーム62・62'・62"において、そのデータリンクモジュール32に関連する時間スロット65と67の間に、データ検査器260はデータバス46の同じデータ信号87を繰り返すことを選択的に要求する。前記反復を行った後に限って、該当するチャンネルＡまたはチャンネルＢの出力信号は、データバス46のデータ信号87に応答して変化する。さらに第８図において、チャンネルＡデータ検査器288は複数の２値データフリップフロップ282・284・286を備えており、これらを相互に接続して多段シフトレジスタを形成する。各データフリップフロップ282・284・286は、第21図の複数の逐次の各時間フレーム62・62'・62"の間、データバス46の信号87を記憶する。第８図のチャンネルＡデータ検査器の入力端子290・292・294・298は、データバス46と、EEPROM354の１対の電気的に消去可能なリードオンリーメモリすなわちEEセル320および322と、クロック損失検出回路240から、それぞれ信号を受ける。チャンネルＡデータ検査器の入力端子296は、ANDゲート304の出力303から出る使用可能クロックパルス302を受ける。ANDゲート304は、ICLOCK信号とCOIN_A信号とOUTPUT_WINDOW信号をそれぞれ受ける３個の入力311・313・315を備える。選択された動作モードすなわちモード１またはモード２は、これらの信号の性質とタイミングを決定する。
モード１では、時間スロット65当たり１クロックサイクル61がある。OUTPUT_WINDOW信号は継続的に低であり、入力311のインバータ312により３入力ANDゲート304は継続的に使用（動作）可能である。入力315の別のインバータ314はICLOCK信号192を反転させて、ICLOCKが低のときにクロックサイクル61の後半サイクルの間だけ３入力ANDゲート310を使用可能にする。COIN_A信号は、データリンクモジュール32に関連する選択された時間スロット65が発生している間だけ高である。エッジの感度のよいデータフリップフロップ282・284・286は、COIN_Aが低から高に遷移したとき使用可能になる。データフリップフロップ282・284・286は、データリンクモジュール32に関連する選択された時間スロット65の間、しかもその間だけ使用可能になる。
モード２では、時間スロット67当たり２クロックサイクル67と67'がある。モード２では、第１クロックサイクル61の間はOUTPUT_WINDOW信号は高であり、第２クロックサイクル61'の間はOUTPUT/WINDOW信号は低である。したがって、３入力ANDゲート304は２つのクロックサイクル67と67'の第２サイクル61'の間だけ活動状態である。他の点では、モード２でのデータ検査器260はモード１と同様に動作する。
データリンクモジュール32のチャンネルＡに関連する、ただし第21図の逐次のフレーム62・62'・62"の中の、時間スロット（65か67のどちらか）の間、使用可能クロックパルス302はデータフリップフロップ282・284・286をそれぞれ使用可能にする。最初、データフリップフロップ282・286・288は、第６図の回路からのLONG_RESET信号によりプリセットされる。その後、データリンクモジュール32のチャンネルＡの最初の時間スロット61が発生すると、第１フリップフロップ282のＱ出力324と、また反復回路出力フリップフロップ318のＤ入力316に、データバスのデータ信号が現れる。最近のフレーム（62と62'と62"のどれか）の間、データバス46の信号87は反復回路出力フリップフロップ318のＤ入力316に常に再生されるが、反復回路出力フリップフロップ318は、ANDゲート304の出力303から使用可能クロックパルス302が発生したときだけ使用可能になる。反復回路出力フリップフロップ318での使用可能クロックパルスの発生は、プログラミングにより制御する。
プログラムによりEEセル320に論理０を含めるとANDゲート338の出力336は論理０に切り換わり、NANDゲート342の出力340は各クロックサイクル61の後半の間は高に切り換わり、第１フリップフロップ282を活動状態にしてからクロックサイクル61の半サイクル後に、反復回路出力フリップフロップ318は使用可能になり、データを一切繰り返さない。プログラムによりEEセル320に論理１を含め、かつプログラムによりEEセル322に論理０を含めると、第１フリップフロップ282と第２フリップフロップ284が同じＱ出力を持つときだけ、出力フリップフロップ318のクロックは使用可能になる。第１フリップフロップ282と第２フリップフロップ284が同じＱ出力を持つのは、２つの逐時の各フレーム62と62'の間の選択された時間スロット（65か67のどちらか）内に、データバス46のデータ信号87を反復したときだけである。第１フリップフロップ282と第２フリップフロップ284のそれぞれのＱ出力324と326は、排他的ORゲート328に入る。
排他的ORゲート328の出力330に出る信号と、NORゲート344およびNANDゲート346の出力に出る信号と、EEセル320および322の状態の組み合せにより、データ信号87の２度目の逐次反復を含むフレーム62'の直後に（すなわちクロックサイクル61の半サイクル後に）、反復回路出力フリップフロップ318は使用可能になる。
プログラムによりEEセル320と322に論理１を含めると、第１・第２・第３フリップフロップのＱ出力324・326・332がそれぞれ同じ信号を持つときだけ、第３フレーム62"の直後に（クロックサイクル61の半サイクル後に）、反復回路出力フリップフロップ318のクロックピンは使用可能になる。フリップフロップ286の出力232の信号は、フリップフロップ282の出力324の信号と共に、排他的ORゲート348に入る。第１フレーム62と第３フレーム62"が同じときだけ、ゲート348の出力349の信号は低になる。
表１は、EEセル320と322のプログラムがデータ検査器に与える影響を要約したものである。
0003553077.tif 000002
同様にして、必要があればデータ検査器260を拡張して、フリップフロップやEEセルや関連するプログラム可能な論理回路を更に追加することにより、逐次のフレーム62の同じデータ信号87が少なくとも４回以上発生したことを認識し選択的に応答する。
極性選択回路
既知のデータリンクモジュールのＣ出力端子の欠点をなくすために、データリンクモジュール32は第2B図にブロックの形で示す組み合わせ論理回路の極性選択器350を備える。極性選択器350は第９図の極性独立回路352を備える。極性独立回路352はデータ検査器260からA_OUTPUT信号とB_OUTPUT信号を受け、またEEPROM354から極性選択情報を受ける。第９図に詳細に示すように極性独立回路352はANDゲート356を備える。ANDゲート356は、A_OUTPUT信号とB_OUTPUT信号を受ける２個の入力端子358と360を持ち、またC_OUTPUT信号を出す出力端子362を持つ。既知のデータリンクモジュールとは異なり、この発明のANDゲート356の入力信号の極性は、A_OUTPUT信号とB_OUTPUT信号の極性と同じというように制限されることはない。ANDゲート356の各入力の極性は、A_OUTPUT信号とB_OUTPUT信号の極性とは別個に、選択的に変えることができる。EEセル364の中の１個からの極性選択情報とA_OUTPUT信号が排他的ORゲート366に入る。排他的ORゲートの出力368はA_OUTPUTを出すが、その極性は入力の極性とは選択的に異なる。同様に、B_OUTPUT信号と第2EEセル370は別の排他的ORゲート372を通して入る。ANDゲート356の出力の極性は第3EEセル374により選択的に制御されるので、排他的ORゲート375はC_OUTPUT信号をA_OUTPUT信号とB_OUTPUT信号の任意の論理組み合わせ関数にすることができる。
入力同期器
第2A図において、集積回路80は入力データ制御回路182と184を備え、データリンクモジュール32に関連する時間スロット65の間にチャンネルＡおよびチャンネルＢ入力信号が変化しても、集積回路の後の部分が変化しないように絶縁する。チャンネルＡ入力データ制御回路182とチャンネルＢ入力データ制御回路184は実質的に同じなので、チャンネルＡ入力データ制御回路だけを詳細に説明する。チャンネルＡ入力データ制御回路182の入力信号はCOIN_A・IINPUT_A・INPUT_WINDOW・INPUT_INHIBITであり、出力信号はINPUT_DATA_Aである。第５図に詳細に示すように、入力データ制御回路182はデータフリップフロップ400と３入力ANDゲート402を備える。IINPUT_A信号はデータフリップフロップ400のＤ入力404に入り、データリンクモジュール32に関連する時間スロット65の最初だけ、データフリップフロップ400はCOIN_A信号により使用可能になる。OCIN_A信号は常時低であり、データリンクモジュールに関連するアドレスの間だけ高になる。データフリップフロップ400はエッジに敏感である。COIN_A信号の立ち上がりエッジで、データリンクモジュール32の時間スロット65の間、IINPUT_A信号の状態はフリップフロップ400のＱ出力406にラッチされる。Ｑ出力406は、COIN_AおよびINPUT_WINDOWと共に３入力ANDゲート402に入る。モード１では、INPUT_WINDOWは継続的に低であり、ANDゲート402の１つの入力410にインバータ408があるので、ANDゲートはINPUT_WINDOWにより使用可能になる。データリンクモジュール32の時間スロット65の間はCOIN_Aは高なので、モジュールのこの時間スロットの間、ANDゲート402はCOIN_Aにより使用可能になる。したがってモード１では、データリンクモジュール32の時間スロット65の間だけ、IINPUT_A信号はANDゲート402の出力端子412に現れる。次に第17C図と第17D図のタイミング図において、モード２では各時間スロット67の長さはモード１の各時間スロット65の長さの２倍であるが、モード２の各時間スロット67の前半だけデータバス46に入力信号を与える。モード２では、INPUT_WINDOWは主クロック信号85の半分の周波数で動作する。モード２では、INPUT_WINDOWは時間スロット67の前半では低であり、時間スロットの後半では高である。再び第５図において、ANDゲート402の入力410のインバータ408により、データリンクモジュール32の時間スロット67の前半だけANDゲートは使用可能になる。したがってモード２では、データリンクモジュール32の時間スロット67の前半だけ、IINPUT_A信号はANDゲート402の出力412に現れる。ANDゲート402の出力412は入力データ制御回路182の出力端子414であり、ここから信号INPUT_DATA_Aが出る。INPUT_DATA_A信号はデータバス駆動回路420に入る。
モード選択指示器
次に第15図において、データリンクモジュール32のシフトレジスタ588や590などの他の要素の動作と集積回路80との動作とを同期させるため、またモジュールの他の要素に動作モード知らせるため、集積回路は単一の端子110を備えており、SYNC信号196とMODE信号488を交互に送る。第2B図にブロックの形で示すように、組み合わせのMODE/SYNC信号456をモード／同期出力回路458で作る。モード／同期出力回路458は、入力信号MODE488・SYNC196・OSC136・OPOR_DLY198を受ける４入力端子と、組み合わせのMODE/SYNC出力信号456を出す１出力端子468を備える。MODE/SYNC信号456は、チャンネルＡ入力信号およびチャンネルＢ入力信号から、またデータバス46のデータ信号87から独立している。集積回路80に動作電力が供給されている限り、MODE/SYNC出力端子468は周期的にSYNC出力信号196を出す。ただし、POR_DLY信号が低である起動直後の短い時間は除く。もちろん、集積回路80に主クロック信号85がなくなるとMODE/SYNC出力端子468には同期情報が存在しなくなるが、この場合にはMODE/SYNC出力端子468にモード情報が出る。
モード／同期出力回路458を第10図に詳細に示す。POR_DLYが低のときはデータフリップフロップ476をクリアする。反転SYNC信号196と遅れSYNC信号196はANDゲート474に入り、SYNCが低に遷移するとき正の短時間パルスを出す。短時間パルスはデータフリップフロップ476をプリセットする。フリップフロップ476のＤ入力478は継続的に接地ポテンシャルにある。OSC信号136はフリップフロップ476のクロック入力480に入る。したがってフリップフロップ476のＱ出力482は通常は低であるが、各フレームの初めに短時間パルスにより高にプリセットされる。しかしフリップフロップ476のＱ出力482はOSC136の１サイクルだけ高であり、その後低に戻る。フリップフロップ476のＱ出力482は、MODE信号488と共に排他的ORゲート484に入る。MODE信号は、プログラミング中に選択されてEEPROM354に記憶されたモードを反映する。モード１ではMODE＝０であって、排他的ORゲート484はフリップフロップ476のＱ出力482を反転させる。モード２ではMODE＝１であって、排他的ORゲート484はフリップフロップ476のＱ出力482を変えない。モードに関わらず、インバータ／バッファ486がMODE/SYNC信号456'を反転させた後、MODE/SYNC信号456は集積回路80のMODE/SYNC出力端子110に出る。第17A図と第17B図のタイミング図に示すように、モード１ではMODE/SYNC456は継続的に低である。ただし各フレームの初めにOSC136の１サイクル間だけ高になる。モード２ではMODE/SYNC456は継続的に高である。ただし各フレーム62の初めにOSC136の１サイクル間だけ低になる。
多重化フレーム識別器
次に第21図において、フレーム62を多重化すれば、後のフレーム62'は前のフレーム62とは異なるデータを運ぶことができる。次に第2A図において、集積回路80は、多重フレーム62に必要な多重クロック信号492を生成する多重クロック回路490を備える。また集積回路80は出力端子108を持っており、多重クロック信号（MUX_CLK）492はデータリンクモジュール32の比較的少数のまた比較的簡単な外部要素からアクセスすることができる。従来の方法では、同様の信号を生成するには外部の複雑な要素を追加する必要があるが、前記機能を用いればこの欠点を除くことができる。
次に第16図において、集積回路80は多重アドレスクロック出力端子108を備え、データリンクモジュール32のデコーダ494は複数のシフトレジスタ496・498・500を選択的に使用するためにこれを用いる。複数の各シフトレジスタ496・498・500は、同じ時間スロット65の間に、ただし異なるフレーム62内で、データをデータバス46から関連する出力フィールド装置54・54'・54"に移す。MUX_CLK信号492を用いることにより、フレーム62の時分割多重化が可能になる。時分割多重化を行うときに、各フレーム62にフレーム番号を付ける。時間スロット１−４を用いて、各フレーム62に番号を付ける。時間スロット０は、フレームの多重化では用いない。第１図の主クロックモジュール36は、各フレームの時間スロット１−４の間にフレーム番号を表す一連の４つの信号をデータバスに乗せて、各フレーム62にフレーム番号を付ける。フレーム番号を付けるのに４ビットを用いるので、最大16個の異なる番号をフレームに付けることができる。16フレームに多重化すると最大3,840ビット（フレーム当たり16x240ビット）のデータを直列に伝送することができる。この実施態様では４つの時間スロットを用いて最大15フレームを多重化したが、最大16個の時間スロットを用いると、最大32,768のフレームを多重化し、最大7,864,320ビット（フレーム当たり32,768x240ビット）のデータを運ぶことができる。
第2A図にブロックの形で示すように、多重クロック回路490は、８ビットフレームアドレスを受ける８個の並列入力端子501−508と、SYNC・ICLOCK・OUTPUT_WINDOWをそれぞれ受ける端子509・510・511を備える。この回路は、多重クロック信号（MUX_CLK）492を出力する１出力端子513を備える。
第11図に更に詳細に示すように、多重クロック回路490は８入力501−508のNANDゲート514を備える。NANDゲート514の６入力はインバータを備え、フレーム番号00000101＝５を持つフレーム62を検出する。NANDゲート514はCOUNT_5信号を出す。この信号は通常は高であるが、フレーム番号５のフレームを検出した後の１主クロックサイクル61の間は低である。
SYNC信号196は各フレーム62の初めにRSフリップフロップ512をセットし、フリップフロップ512はＱ出力515に高出力を出す。この出力は３入力ANDゲート516を使用可能にする。モード１では、OUTPUT_WINDOW信号121は継続的に低で、これも３入力ANDゲート516を使用可能にする。SYNC信号196とOUTPUT_WINDOW信号121の組み合わせにより、カウンタ114が第５フレームを数えるまでは、多重クロック回路490の出力端子513にICLOCK192を再生する。第５フレームを数えると、NANDゲート514はCOUNT_5信号を出してフリップフロップ512をリセットする。フリップフロップ512の出力Ｑは０になるので、カウンタ114が５つのフレーム62を数えると、３入力ANDゲート516は使用禁止になる。第５フレーム62の後は、MUX_CLK信号492は出ない。
モード２では、多重クロック回路490は同様の動作をするが、異なるのは、OUTPUT_WINDWO121がICLOCK192の半分の周波数で、ICLOCKと同期して動作することである。モード２では、OUTPUT_WINDOWとICLOCKが共に負のときだけ、３入力ANDゲート516はICLOCK192を多重クロック出力端子513に通す。第17C図のタイミング図に示すように、モード２ではMUX_CLK492'は幅の異なる正パルスと負パルスの列である。
第16図に示すように、MUX_CLK492はデコーダ494の入力518に入る。データバスはデコーダ494の別の入力519に接続する。MUX_CLK信号492により、デコーダ494は時間スロット１−４の間にデータバス46からフレーム番号を直列に受ける。デコーダ494の出力は最大16本の個別の線を備え、各シフトレジスタ496・498・500に関連するフレーム62の間に、各シフトレジスタを１個ずつ逐次使用可能にする。
プログラミング
集積回路80の論理回路は、所定の内部DC電圧、好ましくは約９ボルトで動作する。第2B図にブロックの形で示すように、集積回路80は電圧調整器520を備える。電圧調整器520は12ボルトから32ボルトまでの入力DC電圧VCCを受け、約９ボルトの内部DC動作電圧ＶすなわちVrefを出す。電圧調整器520は既知の型の１つであって、この発明の一部ではない。集積回路80の信号通過回路は、VCCが２つの電圧範囲内のどちらかのときに活動状態になり、データリンクモジュール32を通して信号を送る。好ましい２つの電圧範囲は、約12−15ボルトと約18−32ボルトである。DC入力電圧VCCと基準電圧Vrefは、第2B図にブロックの形で示すモジュールプログラマ232に入る。モジュールプログラマに入るその他の入力信号は、POR、IDATA、ICLOCK、LONG_RST、÷2ICLOCK、EEPROM354からの入力信号である。モジュールプログラマからの出力信号は、プログラム電圧可能信号（PVE）、プログラム／検査モード信号（P/V_MODE）、プログラム／検査データ信号（P/V_DATA）、EEPROM354への出力信号である。
モジュールプログラマ232の詳細を第12図に示す。モジュールプログラマはプログラムイネーブラを備える。プログラムイネーブラは３個の抵抗器によりVCCと接地の中間の２つの電圧を出す電圧分割器530を備える。２つの中間電圧の一方は電圧比較器532の正入力531に入る。比較器532の他方の入力はVrefである。２つの中間電圧の他方はもう１つの電圧比較器354の負入力533に入る。比較器534の他方の入力はVrefである。VCCが約15.5−17.5ボルトの範囲のときは、各電圧比較器532と534の出力は高で、ANDゲート536の出力に高PVE信号を出す。またモジュールプログラマは４個のフリップフロップ538・540・542・544、４ビットのカウンタ546、５ビットのカウンタ548、直並列変換器550、並直列変換器552、状態機械553、後で詳細に説明する少なくとも11個の論理ゲート554−565を備える。４ビットのカウンタ546は低LONG_RST（クロック信号の遷移がないことを示す）により使用可能になり、VCCが15.5ボルトと17.5ボルトの間のときデータ線の遷移を15回数える。遅れ要素566と排他的ORゲート555によりクロック信号の遷移を検出すると、４ビットのカウンタ546はクリアされる。カウンタ546の４ビットの出力はゲート556により論理積をとって、フリップフロップ538をセットする。フリップフロップ538は常時リセット状態にある。ただし集積回路80をプログラムするときやプログラミングを検査するときは、フリップフロップは４ビットのカウンタ546によりセットされる。通常は高のLONG_RSTは遅れ要素570とゲート557に入り、ゲート557の出力はLONG_RSTが負に遷移するとき一時的に低になり、その出力は３入力ANDゲート558に入る。３入力ANDゲート558の他の入力はPVE（PVEが高のときは集積回路80がプログラミング可であることを示す）と動作の終わり（end of busy）（EOB）信号である。プログラミングの前は、LONG_RST信号は高でなければならない。しかしLONG_RST入力が一時的に低になると、フリップフロップ538はリセットされ、プログラミングができない。ANDゲート558の３入力が高のときは、フリップフロップ538のリセット信号がなくなり、プログラミングの前の予備ステップの１つが完了する。集積回路80がプログラミング可になるには、データ線46に15パルスを受けることも必要である。15パルスを受けると、４ビットのカウンタ546は出力を出してフリップフロップ538をセットする。フリップフロップ538のＱ出力をP/V_MODE信号と呼ぶ。第18A図のタイミング図に示すように、FF1  538からのP/V_MODE信号は、時点539で低から高に遷移する。PV_MODEが高のときはプログラミング中または検査中であることを示す。フリップフロップ538のＱ出力が低のときは、第２フリップフロップ540をクリアする。
プログラミングデータは、クロック線44とデータバス46を用いてデータリンクモジュール32のデータリンクモジュール集積回路80にシフトする。第18A図−第18C図のタイミング図に示すように、データストリームはプログラム／検査（P/V）ビットと32データビットを含む。第１ビットはP/Vビットである。プログラミングのときはP/Vビットは低であり、検査のときはP/Vビットは高である。フリップフロップ540はICLOCKにより使用可能になり、第１プログラミングビットが高のときセットされる。最初の16ビットはチャンネルＡとＢのアドレス（それぞれ８ビット）を含む。次の16ビットは制御機能を含む。制御機能は、出力ＡからＣの極性、出力ＢからＣの極性、モード選択、チャンネルＡ反復１回、チャンネルＡ反復２回、チャンネルＢ反復１回、チャンネルＢ反復２回、入力A/B高選択を含む。正の真のデータを、クロックサイクルの初め（正に向かうエッジ）にデータ線に乗せ、クロックサイクルの180゜（負に向かうエッジ）で集積回路に移す。P/Vビットが高であれば、次の32クロックサイクルで、プログラムされたデータをデータ線にシフトする。第３フリップフロップ542はCOUNT_OF_ONE信号を出す。この信号により、５ビットのカウンタ548はプログラミングビット数である32まで数えることができる。また第３フリップフロップ542は直並列変換器550を使用可能にする。変換器550はプログラミング中に、すなわちR/Wが低でSH_ENが低のとき、データバスから直列データを受ける。EEPROM354のEEセル（図示せず）からのデータを並直列変換器552に戻し、プログラミングの検査中にANDゲート559と出力ORゲート560を経て集積回路80から取り出す。第２フリップフロップ540のＱ出力が低のときはANDゲート561が使用可能になり、EEセルに書き込む。第２フリップフロップ540のＱ出力が高のときはANDゲート559が使用可能になり、EEセルから読み出す。ANDゲート559の出力はORゲート560に入り、第14図に示すデータ駆動回路420にデータを出力する。５ビットのカウンタ548は32クロックサイクルを数えてANDゲート565を使用可能にし、ANDゲート565はゲート561を使用可能にする。ANDゲート561が使用可能になると、状態機械553で使用するタイミングを第４フリップフロップ544に与える。第４フリップフロップ544の出力は状態機械553にプログラム可信号（PROG_RDY）を与える。第18C図のタイミング図に示すように、電気的に消去可能なプログラムサイクル574の間は、PROG_RDY信号は高になる。状態機械553は、プログラミング制御論理回路572を通してEEセルのバーンイン（burning in）を制御する。状態機械553は出力OBUSYを持ち、ゲート562および563と遅れ要素568を通してフリップフロップ544をクリアする。各クロックサイクルの初めに各データビットをデータ線46に乗せ、プログラムマはこれを読むことができる。このデータは負の真である。
集積回路80のプログラミング供給電圧は、16.5Vdc＋−1.0Vdcでなければならない。バスと集積回路80の間には300Ωのバッファ抵抗器（図示せず）を用いるのが好ましい。この抵抗器の両端での電圧損失は約0.4Vdcである。供給電圧はこの損失を補償する。
２本の制御線（クロック線44とデータ線46）の電圧レベルは、バス共通と集積回路80の内部動作電圧Ｖとの間に振れる。この電圧は好ましくは９ボルトである。クロック線44とデータ線46のそれぞれの入力フィルタ188と186の一部は100kΩの抵抗器（図示せず）である。これらの抵抗器も、集積回路80の入力保護に用いられる。これにより、入力信号が数百ボルトであっても集積回路80を損傷せず、または動作不良を起こさない。プログラマクロックおよびデータ信号とリリーの前述の特許に述べられている従来型のデータリンクモジュールとに互換性を持たせるため、12ボルト信号を用いる。プログラミング中は、クロック周波数は25kHzと30kHzの間である。クロック周波数は、EEPROM354に書き込むときのタイミング基準として用いる。
第18C図のプログラムサイクル用のタイミング図に示すように、データを集積回路80にシフトした後、電気的に消去可能なプログラミングサイクル574はそれぞれ２サイクルの200msを必要とする。第１サイクルは消去サイクルであり、第２サイクルはEEPROM354のプログラミングである。４入力ANDゲート564の出力は直並列変換器550の可能クロック入力に入る。各集積回路80のプログラミング時間は約500msである。
データバス線46および主クロック線44によりデータリンクモジュールをプログラムする方法は次の通りである。ステップ１で、データリンクモジュール32から電力を除く。ステップ２で、直流15.5ボルトから17.5ボルトをデータリンクモジュール32のVCC端子に加える。ステップ３で、パワーオンリセット遅れ回路190が低POR信号を出すのを所定の時間待つ。ステップ４で、所定の時間、すなわち第18A図の70の間、好ましくは少なくとも５マイクロ秒の間、CLOCK信号を高に保ち、次に、CLOCK信号を引続き高に保ちながら同時にデータ線を高と低の間に15回遷移させる。ステップ５で、主クロック信号85をデータリンクモジュール32の主クロック端子84に与え、LONG_RESETが高になるのをOSCの所定のサイクル数の間待つ。ステップ６で、第18B図の論理高のP/Vビット578をデータ線46で送る。ステップ７で、32ビットのプログラミングデータをデータ線46で送る。ステップ８で、状態機械553とプログラミング制御論理回路572がプログラムされたビットをEEPROM354の各セルに「バーン（burn）」するのを所定の時間待つ。状態機械553とプログラミング制御論理回路572の詳細はこの技術でよく知られており、この発明の一部ではない。ステップ９で、17.5ボルトより高い直流電圧または15.5ボルトより低い直流電圧をVCC端子に加える。ステップ10で、プログラミングに従ってデータリンクモジュール32を動作させる。ステップ６とステップ７の間で、実際のプログラミングの準備のために、モジュールプログラマ232をプログラムする人は不確定の時間間隔だけ休止することができるようになっている。この時間間隔を、第18A図と第18B図のタイミング図に間隔576で示す。実際のプログラミングはハンドヘルド・プログラミング装置で行うのが好ましい。このプログラミング装置の詳細はよく知られており、この発明の一部ではない。上述のステップにより、データリンクモジュールがデータ線46の騒音によって偶然プログラムされることはなくなる。
第18D図−第18F図のタイミング図に示すように、データリンクモジュールのプログラミングを検査する方法はプログラミングの方法と同様であるが、次の点が異なる。すなわち、ステップ６で、第18E図の論理低P/Vビット596をデータ線46で送ることと、ステップ７で、32ビットのプログラミングをP/V_DATA線とDATA_DRIVE出力を経てデータ線で受けることである。
入力／出力語拡張器
既知のデータリンクモジュールとは異なり、データリンクモジュール32は単一ビットのデータか多重ビット語のデータ、好ましくは８ビットから16ビット語のデータを、入力装置50からデータバス46に、またはバスから出力装置54に選択的に通す。第15図に示すように、データリンクモジュール32は集積回路80と、好ましくは２個のシフトレジスタ588と590を備える。シフトレジスタ588は好ましくは16ビットの並直列シフトレジスタで、16ビットの入力フィールド装置580からデータを並列に受け、このデータをデータバス46で直列に送信する。シフトレジスタ590は好ましくは16ビットの直並列シフトレジスタで、データを16ビットの出力フィールド装置582に並列に転送する。第15図に示すデータリンクモジュールは入力モジュールとしてまたは出力モジュールとして用いる。またはモード２で動作するときは、入力および出力モジュールとして同時に動作する。
従来のデータリンクモジュール集積回路とは異なり、データリンクモジュール32はシフトクロックイン端子104を備える。端子104に、第17A図−第17D図に示すアドレスＡの時間スロット422とアドレスＢの時間スロット424との時間間隔453の間に、主クロック信号85を再生する。さらに、集積回路80はシフトクロックアウト端子106を備える。端子106に、モード１ではアドレスＡの時間スロット422とアドレスＢの時間スロット424の間の時間間隔453の間に、反転した主クロック信号85を出す。第2A図の語拡張回路430は、集積回路80の出力端子104と106にSHIFT_CLK_IN信号とSHIFT_CLK_OUT信号をそれぞれ出す。
P.49
第13図に詳細を示す語拡張器430は、６個の入力端子431−436と２個の出力端子437および438を備える。モード制御回路440はMODE_CLK信号を生成する。MODE_CLK信号は、EEセル441が低のときはICLOCK信号であり、EEセル41が高のときは÷2ICLOCK信号である。語拡張回路430はデータフリップフロップ450を備える。フリップフロップ450は各フレーム62の初めにSYNCによりクリアされる。フリップフロップ450は、通常は接地入力452により低出力451を出す。COIN_A信号はフリップフロップをプリセットして出力451を高にする。出力451は、高COIN_B信号が発生するまで高である。
フリップフロップ450の出力451は、MODE_CLKと共にANDゲート455に入る。ANDゲート455の出力444はSHIFT_CLK_OUTを出す。これはモード２動作の間は÷2ICLOCKの再生である。
また語拡張回路430は３入力445−447のANDゲート460を備える。OUTPUT_WINDOW信号121はANDゲート460の入力447に入る。OUTPUT_WINDOW信号は、第2A図にブロックの形で示す窓制御回路120から出る。また第13図は、OUTPUT_WINDOW信号を生成する窓制御回路120の一部の詳細を示す。モード１動作ではOUTPUT_WINDOW信号は常に低で、ANDゲート460を継続的に使用可能にする。モード２動作中は、OUTPUT_WINDOWは各÷2ICLOCKサイクルの後半の間だけ低で、各÷2CLOCKサイクルの後半の間だけANDゲート460を使用可能にする。ICLOCK信号はANDゲート460の入力458に入り、各ICLOCKサイクルの後半の間だけANDゲートを使用可能にする。したがってモード２の間は、ANDゲート460の出力461は時間スロットA422'で始まり時間スロットB424'で終わる、異なる幅の正および負パルスの列である。ANDゲート460の出力461はSHIFT_CLK_IN信号を出す。モード２動作中に出るSHIFT_CLK_IN信号を第17C図と第17D図に示す。
再び第15図において、制御するフィールド装置580からの出力信号は同期並直列シフトレジスタ588の入力端子に入る。集積回路80のモード／同期出力端子110は、並直列シフトレジスタ588のシフト高／負荷（SH/LD）端子584に接続する。モード／同期出力端子110の同期パルス196はシフトレジスタ588の負荷を制御する。集積回路80のシフトクロックアウト（SCO）端子106は、並直列シフトレジスタ588のクロック端子585に接続する。並直列シフトレジスタ588のDATA_OUT端子586は、ORゲート598とFET600を経てデータバス46に接続する。並直列シフトレジスタ588内のデータは、各SCOパルスの立ち下がりエッジでデータバス46に転送される。SCOパルスの立ち下がりエッジは、各時間スロット65の初めに発生する。
データバス46は、同期直並列シフトレジスタ590のDATA_IN端子592に接続する。同期直並列シフトレジスタ590は、594に入力するシフトクロックイン（SCI）信号によりクロックされ、各SCIパルスの立ち下がりエッジでデータバス46からデータを受ける。各SCIの立ち下がり端は、各SCOパルスの立ち下がりエッジが発生した後の主クロックサイクル85の半サイクルに発生する。直並列シフトレジスタ590の出力信号は、データリンクモジュール32が制御するフィールド装置582の入力端子に入る。
モード２では、主クロックサイクル85の前半にデータを並直列シフトレジスタ588からデータバス46に送り、クロックサイクルの後半にデータをバスから直並列シフトレジスタ590に移す。第17C図と第17D図のタイミング図に示すように、モード２では、SCO信号は反転主クロック信号85であり、SCI信号は幅の異なる正パルスと負パルスのパルス列である。パルス幅が異なるのは、OUTPUT_WINDOWが第13図のSCIのANDゲート460に入るからである。SCIパルスの幅が異なるのは、各SCIパルスの立ち下がりエッジが、モード２の時間スロット67の後半に発生するようにするためである。
高電圧保護回路
既知のデータリンクモジュールとは異なり、データリンクモジュール集積回路80はチャンネルＡの入力信号とチャンネルＢの入力信号をデータバス46から絶縁する。従来の技術とは異なり、集積回路80の入力端子94と96に入る信号は、内部トランジスタを駆動してバス電圧を制御するわけではない。逆に、集積回路80は第１図の外部のトランジスタ600に接続するデータ駆動出力端子112を備え、バス電圧を低にする。第2A図にブロックの形で示すように、データ駆動回路420はDATA_DRIVE信号を出す。第14図に示すように、データリンクモジュール32は集積回路80と、集積回路の外部のトランジスタ600を備える。好ましくは100kΩの抵抗器602をデータバス入力端子86に設けて、集積回路80に入る電流を制限する。データ駆動回路420はP/V_DATA・INPUT_DATA_A・INPUT_DATA_Bを入力とする３入力ORゲート604を備える。ORゲート604の出力端子606の信号は抵抗器608を通り、データ駆動端子112のDATA_DRIVE信号610として集積回路80から外に出る。DATA_DRIVE信号610は外部のトランジスタ600を駆動する。第14図には電界効果トランジスタ（FET）600を示しているが、バイポーラトランジスタも用いられる。データバス駆動出力610はFET600のゲート612に接続する。FET600のソース614は、好ましくは10Ωの抵抗器616を通してデータバス46に接続する。FET600のドレン618は接地48に接続する。トランジスタ600は増幅器としてではなく、スイッチとして用いる。
チャンネルＡに関連する時間スロット422の間はINPUT_DATA_Aは高である。INPUT_DATA_Aが高のときはデータバス駆動信号は高になり、FET600は導通する。FET600が導通すると、データバス電圧は論理低すなわち論理０である約9.0ボルトから、論理高すなわち論理１である約0.7ボルトに下がる。同様にして、INPUT_DATA_BとP/V_DATAが高のときは、FET600は導通する。
外部トランジスタ600を用いると、従来の集積回路の内部のトランジスタに加えても破損しない限界より高いデータバス電圧および電流を、データリンクモジュール32の集積回路80に加えることができる。さらに、非常に高いバス電圧を外部トランジスタ600に加えると破損して低インピーダンス源になり、比較的高価な集積回路80の破損を防ぐ。バス電圧が約60ボルトになると、外部トランジスタ600は破損して集積回路80を保護する。集積回路80はバス46に少なくとも60ボルトをかけても耐えられる。外部トランジスタ600は、破損しても簡単にまた低コストで交換することができるが、集積回路80を交換するのは比較的高価であり、一層困難である。
データバス完全性チェッカ
次に第15図と第16図において、データリンクモジュール32はデータバス46の完全性を決定するためのデータバス完全性チェッカ630を備える。故障していると完全性チェッカ630が決定すると、チェッカ630は、データリンクモジュール32の集積回路80がデータバス46からデータ信号87を受けることと、クロックバス44からクロック信号85を受けることを禁止する。チェッカ630は３つの型の故障に応答する。すなわち、接地の故障と、動作電圧と接地の中間の或る電圧の故障を含めた動作電圧の故障と、バスの浮遊すなわち開路の故障である。チェッカ630は、出力モジュール56として動作するモジュール32（たとえば第16図に示すデータリンクモジュール32）上と、入力モジュール52および出力モジュール56として動作するモジュール（たとえば第15図に示すデータリンクモジュール32）上に設ける。しかしチェッカ630はすべてのモジュール32上に設けるが、入力モジュール32上では機能しない。
好ましい実施態様では、チェッカ630は集積回路80の外の、データリンクモジュール32上に取り付ける。第16図において、チェッカ630は３個の入力端子を備える。すなわち、データバス46から信号87を受ける端子632と、クロックバス44から信号85を受ける端子634と、集積回路80からモード／同期信号456を受ける端子636である。チェッカ630は２個の出力端子を備える。すなわち、集積回路80のデータ端子86に接続する端子638と、集積回路80のクロック端子84に接続する端子640である。
チェッカ630は、第21図の各時間フレーム62の間の同期期間58の間に動作する。同期期間58は、主クロックモジュールがクロックパルスをクロックバス44に乗せることを定期的に止めたときに、主クロックモジュール36が生成する。データバスにデータ信号87が存在しないときは、正しく機能しているデータバス46は比較的高い正電圧（好ましくは９−12ボルト）である。チェッカ630は主クロックモジュール36と共に動作する。主クロックモジュール36は各同期期間58の間データバス46を動作させる。つまり、第20A図の時間間隔648の間データバスを低にし、その後でデータバスを常時高の正電圧状態に戻す。データバス46を低にしたことは、データバス上に第20A図の信号87'が存在することを主クロックモジュール36が模擬したことになる。時間間隔648は厳密ではない。しかし時間間隔648はすべての論理要素が安定するだけの十分な長さではあるが、同期期間58の半分より長くはない。データバスを低にする主クロックモジュール36の回路はよく知られており、この発明の一部ではない。モード２動作では、クロックモジュール36ではなく、コンピュータ・インターフェースカード（図示せず）を用いてデータバス46を低にする。
データバスチェッカ630は、各時間フレーム62の間の同期期間58の間に、模擬した信号87'を探す。模擬したデータバス信号87'を検出したときは、チェッカ630は通常の動作を許可する。しかし模擬した信号87'を検出しなかったときは、チェッカ630は、自分が取り付けられているデータリンクモジュール32がそのモジュール向けのデータ信号87を受けることを禁止する。またチェッカ630は指示器642を備え、自分が取り付けられているデータリンクモジュール32につながるデータバス線633の条件について、制御システム30の運転者に警告する。この意味では、第１図のデータバス線633はデータバス46の支線である。
データバス完全性チェッカ630の回路631を第19図に示す。２入力NANDゲート644の入力646と647は、共にデータバス46に接続する。しかし、論理インバータ652を持つ遅れ要素が、データバス46とNANDゲートの２入力の一方の647の間にある。NANDゲート644の出力端子654は、RSフリップフロップ658のＳ入力端子656に結合する。データバス電圧が低から高に遷移すると、NANDゲート644の出力から出る比較的短時間のパルスによりRSフリップフロップ658がセットされる。同様にして、別のNANDゲート660と別の遅れ要素／インバータ662は、主クロック信号85が低から高に遷移する毎に別の比較的短時間のパルスを出す。別のNANDゲート660の出力端子666は、RSフリップフロップ658のＲ入力端子658に結合する。RSフリップフロップ658は、クロックサイクル61毎にリセットされる。しかし同期期間58の間は、定義によりクロックサイクルは存在しない。２個のNANDゲート644および660と、２個の遅れ要素650および662はシュミットトリガにより、ヒステリシスに似た方法で、データ信号87とクロック信号85の遅い立ち上がり時間を克服し、またデータバス46とクロックバス44の騒音を克服する。
同期データフリップフロップ670のＤ入力端子672は供給電源の正電圧源（図示せず）に接続しており、フリップフロップ670のクロック入力端子674が高になると、フリップフロップ670はセットされる。クロック入力端子674はエッジに敏感であり、信号の立ち上がりエッジにだけ応答する。遅れ要素／インバータ662からフリップフロップ670のクロック入力674まで線676で接続する。したがって、主クロック信号85が高から低に遷移する度にフリップフロップ670はセットされる。フリップフロップ670がセットされると、第20A図と第20B図の信号XSYNC664がフリップフロップ670のＱ出力端子665に出る。
起動のとき、最初フリップフロップ670は、ローカル・パワーオンリセット回路696により非同期でセットされる。回路696は、ダイオード678と抵抗器680とコンデンサ682を備え、フリップフロップのプリセット端子（PRE）683に接続する。集積回路80は同期期間58の間、そのモード／同期端子110に同期パルス196を出す。ANDゲート684と遅れ要素／インバータ686は、同期パルス196が低から高に遷移するとき、第20A図と第20B図のリセットパルス688をANDゲートの出力685に出す。リセットパルス688はフリップフロップ670の非同期のクリア端子（CLR）689に入る。したがって、集積回路80のモード／同期端子110の同期パルス196に応答して、フリップフロップ670のＱ出力674に出る信号XSYNCは低になる。フリップフロップ670のクロック端子674の信号が次に低から高に遷移すると（これは主クロック信号85が高から低に遷移するときに起こる）、このフリップフロップは再びセットされ、次の時間フレーム62までセットされたままである。
第２データフリップフロップ690のＤ入力端子692は、RSフリップフロップ658のＱ出力端子694に接続する。第２データフリップフロップ690のクロック端子696は、データフリップフロップ670のＱ出力端子674に接続する。第２データフリップフロップ690の非同期のクリア端子（CLR）698は、ローカル・パワーオンリセット回路676に接続する。起動すると、フリップフロップ690はリセットされ、そのＱ出力端子702は低である。したがって起動のとき、電源の正電圧源とＱ端子702の間に接続する発光ダイオード（LED）704が点灯する。さらに、起動のときＱ出力端子706が高になり、２個のダイオード708と710のフリップフロップ690側を電源の正電圧にする。
第２データフリップフロップ690は、各同期期間58の終わりにRSフリップフロップ658のＱ出力端子694の状態をサンプリングする。同期期間58の間に第１データフリップフロップ670がデータバス46に立ち上がりエッジがあることを検出すると、第２データフリップフロップ690のＱ出力端子702は高をラッチし、ダイオード708と710を逆にバイアスし、データリンクモジュール32は通常の動作を行う。LED704はオフである。しかし立ち上がりエッジを検出しなかったときは、第２データフリップフロップ690のＱ出力端子702は低をラッチする。立ち上がりエッジがないということは、データバス46が故障であることを示す。Ｑ出力が低であればLED704は点灯する。ダイオード708は、フリップフロップ690のＱ端子706と集積回路80のデータバス入力端子86の間に接続する。ダイオード710は、フリップフロップ690のＱ端子706と集積回路80のクロックバス入力端子84の間に接続する。データバス46が故障であれば、フリップフロップ690のＱ端子706は高である。Ｑ出力端子706が高になると、クロックバス44またはデータバス46が低になろうとするとき、２個のダイオード708と710は導通する。ダイオード708が導通のときは、集積回路80のデータバス入力端子86は高電圧レベルであって、データ信号87が存在しないことを示す。したがってすぐ集積回路80はデータバス46の信号87に応答しなくなる。従来の技術とは異なり、故障を検出したときとデータリンクモジュール32がデータバス信号87を受けるのを止めるときとの間にはほとんど遅れがない。したがって従来の技術とは異なり、データリンクモジュール32は、データリンクモジュール32に接続する１個または複数個の出力装置を制御する制御信号を出すのをすぐ止める。これは優れた点である。なぜなら、データバスが故障状態なのでデータバス46のすべての信号87は恐らく間違っているからである。ダイオード710が導通のときは、集積回路80のクロックバス入力端子84は高電圧レベルであって、そのデータリンクモジュール32にだけ主クロック信号85の損失を生じる。集積回路80の内部のクロック損失検出回路240は、集積回路が主クロック信号85を受けるのをチェッカ630が禁止し始めると間もなく集積回路をオフにする。
この発明の好ましい実施態様について詳細に説明したが、特許請求の範囲に規定されているこの発明の範囲から逸れることなく、多くの変形が可能なことが理解できる。
【図１７Ｂ】
0003553077.tif 000003
【図１】
0003553077.tif 000004
【図２Ａ】
0003553077.tif 000005
【図２Ｂ】
0003553077.tif 000006
【図３Ａ】
0003553077.tif 000007
【図３Ｂ】
0003553077.tif 000008
【図４】
0003553077.tif 000009
【図５】
0003553077.tif 000010
【図６】
0003553077.tif 000011
【図７】
0003553077.tif 000012
【図８】
0003553077.tif 000013
【図９】
0003553077.tif 000014
【図１０】
0003553077.tif 000015
【図１１】
0003553077.tif 000016
【図１２】
0003553077.tif 000017
【図１３】
0003553077.tif 000018
【図１４】
0003553077.tif 000019
【図１５】
0003553077.tif 000020
【図１６】
0003553077.tif 000021
【図１７Ａ】
0003553077.tif 000022
【図１７Ｃ】
0003553077.tif 000023
【図１７Ｄ】
0003553077.tif 000024
【図１７Ｅ】
0003553077.tif 000025
【図１８Ｆ】
0003553077.tif 000026
【図１８Ａ】
0003553077.tif 000027
【図１８Ｅ】
0003553077.tif 000028
【図１８Ｂ】
0003553077.tif 000029
【図１８Ｃ】
0003553077.tif 000030
【図１８Ｄ】
0003553077.tif 000031
【図１９】
0003553077.tif 000032
【図２０Ａ】
0003553077.tif 000033
【図２０Ｂ】
0003553077.tif 000034
【図２１】
0003553077.tif 000035