(57)【要約】【課題】送信システムエラー検出および訂正。【解決手段】リアルタイムエラー訂正のために、第２のプログラマブルロジックデバイスから第１のシリアルリンクを介して第１のプログラマブルロジックデバイスで第１の通信信号を受信し、第２のプログラマブルロジックデバイスから第２のシリアルリンクを介して第１のプログラマブルロジックデバイスで第２の通信信号を受信する。第１のシリアルリンクおよび第２のシリアルリンクは並行に配置され、単一のルートを介して通信し、第１および第２の通信信号は同一の情報を表す。第１のプログラマブルロジックデバイスにおいて第１と第２の通信信号を比較して第１の通信信号、第２の通信信号、またはその両方でデータ内のエラーを検出し、エラーが検出されたときに、第１と第２の通信信号の比較に少なくとも部分的に基づいて第１のプログラマブルロジックデバイスでリアルタイムでエラーを訂正する。【選択図】図１
2015130668.tif 000002
【特許請求の範囲】
【請求項１】
フォールトトレラントデータ送信システムであって、
プログラマブルロジックデバイスを備え、前記プログラマブルロジックデバイスが、
第１のシリアルリンクに通信可能に結合されるように構成された第１のシリアルポートであって、第１の送信信号を前記第１のシリアルリンクから受信するように構成された第１のシリアルポートと、
第２のシリアルリンクに通信可能に結合されるように構成された第２のシリアルポートであって、前記第２のシリアルポートが第２の送信信号を前記第２のシリアルリンクから受信するように構成され、前記第１のシリアルリンクおよび前記第２のシリアルリンクが互いに並行に配置され、単一のルートを介して通信するように構成され、前記第１の通信信号および前記第２の通信信号が同一の情報を表す、第２のシリアルポートと、
前記第１の通信信号と前記第２の通信信号を比較して前記第１の通信信号、前記第２の通信信号、またはその両方に含まれるデータ内のエラーを検出し、
前記エラーが検出されたときに、前記第１の通信信号と前記第２の通信信号の前記比較に少なくとも部分的に基づいてリアルタイムで前記エラーを訂正するように
構成された、回路と
を備える、フォールトトレラントデータ送信システム。
【請求項２】
前記回路が、前記第１の通信信号内のビットを前記第２の通信信号からのビットで置き換えること、または前記第１の通信信号、前記第２の通信信号もしくはその両方を無視することによって、リアルタイムで前記エラーを訂正するように構成された、請求項１記載のフォールトトレラントデータ送信システム。
【請求項３】
前記回路が、前記エラーが訂正可能かどうかをエラータイプおよびエラーの大きさに少なくとも部分的に基づいて判定し、前記第１の通信信号と前記第２の通信信号の前記比較および前記エラータイプに少なくとも部分的に基づいてリアルタイムで前記エラーを訂正するように構成された、請求項１記載のフォールトトレラントデータ送信システム。
【請求項４】
前記回路が、前記第１の通信信号または前記第２の通信信号において、繰返し、削除、挿入、並べ直し、破損、遅延、なりすまし、またはそれらの任意の組合せを検出するように構成された、請求項１記載のフォールトトレラントデータ送信システム。
【請求項５】
前記回路が、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックアレイ、汎用アレイロジック、特定用途向け集積回路、またはそれらの任意の組合せを備える、請求項１記載のフォールトトレラントデータ送信システム。
【請求項６】
前記回路が、
前記第１の通信信号と前記第２の通信信号の間でビット単位の一致を検査すること、
前記第１の通信信号もしくは前記第２の通信信号でコード化された順序番号を前記プログラマブルロジックデバイスに記憶された予期した順序番号と比較すること、
前記第１の通信信号もしくは前記第２の通信信号でコード化されたタイミングデータを前記プログラマブルロジックデバイスに記憶されたタイミングデータと比較すること、
前記第１の通信信号もしくは前記第２の通信信号でコード化された送信者ＩＤを前記プログラマブルロジックデバイスに記憶された予期した送信者ＩＤと比較すること、
前記第１の通信信号もしくは前記第２の通信信号でエラー検査技法を実行し、前記エラー検査技法の結果を前記第１の通信信号もしくは前記第２の通信信号でコード化されたエラー検査データと比較すること、または、
それらの任意の組合せ
を行うように構成された、請求項１記載のフォールトトレラントデータ送信システム。
【請求項７】
データ送信システムにおけるリアルタイムエラー訂正のための方法であって、
第２のプログラマブルロジックデバイスから第１のシリアルリンクを介して第１のプログラマブルロジックデバイスで第１の通信信号を受信するステップと、
前記第２のプログラマブルロジックデバイスから第２のシリアルリンクを介して前記第１のプログラマブルロジックデバイスで第２の信号を受信するステップであって、前記第１のシリアルリンクおよび前記第２のシリアルリンクが互いに並行に配置され、単一のルートを介して通信するように構成され、前記第１の通信信号および前記第２の通信信号が同一の情報を表す、ステップと、
前記第１のプログラマブルロジックデバイス内で前記第１の通信信号と前記第２の通信信号を比較して前記第１の通信信号、前記第２の通信信号、またはその両方でデータ内のエラーを検出するステップと、
前記エラーが検出された場合、前記第１の通信信号と前記第２の通信信号の前記比較に少なくとも部分的に基づいて前記第１のプログラマブルロジックデバイスでリアルタイムで前記エラーを訂正するステップと
を含む、方法。
【請求項８】
前記第１の通信信号と前記第２の通信信号を比較するステップが、エラーのタイプおよびエラーの大きさに少なくとも部分的に基づいて前記エラーが訂正可能かどうかを判定するステップを含み、リアルタイムで前記エラーを訂正するステップが、前記比較および前記エラータイプに少なくとも部分的に基づく、請求項７記載の方法。
【請求項９】
前記第１の通信信号と前記第２の通信信号を比較するステップが、前記第１の通信信号または前記第２の通信信号において、繰返し、削除、挿入、並べ直し、破損、遅延、なりすまし、またはそれらの任意の組合せを検出するステップを含む、請求項７記載の方法。
【請求項１０】
前記第１の通信信号と前記第２の通信信号を比較するステップが、前記第１の通信信号と前記第２の通信信号の間でビット単位の一致を検査するステップを含む、請求項７記載の方法。
【請求項１１】
前記第１の通信信号と前記第２の通信信号の間でビット単位の一致を検査するステップが、前記第２の通信信号を反転または逆転させるステップを含む、請求項１０記載の方法。
【請求項１２】
リアルタイムで前記エラーを訂正するステップが、前記第１の通信信号内のビットを前記第２の通信信号からのビットで置き換えるステップ、または前記第１の通信信号、前記第２の通信信号、もしくはその両方を無視するステップを含む、請求項７記載の方法。
【請求項１３】
前記第１の通信信号と前記第２の通信信号を比較するステップが、前記第１の通信信号または前記第２の通信信号でコード化されたタイミングデータを前記第１のプログラマブルロジックデバイスに記憶されたタイミングデータと比較するステップを含む、請求項７記載の方法。
【請求項１４】
前記第１の通信信号と前記第２の通信信号を比較するステップが、前記第１の通信信号または前記第２の通信信号でコード化された順序番号を前記第１のプログラマブルロジックデバイスに記憶された予期した順序番号と比較するステップを含む、請求項７記載の方法。
【請求項１５】
前記第１の通信信号と前記第２の通信信号を比較するステップが、前記第１の通信信号または前記第２の通信信号でコード化された送信者ＩＤを前記第１のプログラマブルロジックデバイスに記憶された予期した送信者ＩＤと比較するステップを含む、請求項７記載の方法。
【請求項１６】
前記第１の通信信号と前記第２の通信信号を比較するステップが、
前記第１の通信信号または前記第２の通信信号でエラー検査技法を実行するステップと、
前記エラー検査技法の結果を前記第１の通信信号または前記第２の通信信号でコード化されたエラー検査データと比較するステップと
を含む、請求項７記載の方法。
【請求項１７】
前記エラー検査技法が、巡回冗長検査を含む、請求項１６記載の方法。
【請求項１８】
前記第１の通信信号と前記第２の通信信号を比較するステップが、ソフトウェア監視なしに前記第１のプログラマブルロジックデバイス内のハードウェアのみを使用して実行される、請求項７記載の方法。
【請求項１９】
前記単一のルートが、第１のストランドおよび第２のストランドを有するケーブルを備え、前記第１のストランドが前記第１のシリアルリンクを備え、前記第２のストランドが前記第２のシリアルリンクを備える、請求項７記載の方法。
【請求項２０】
データ送信システムを動作させるための方法であって、
送信された第１の通信信号と第２の通信信号を比較することによって、プログラマブルロジックデバイスにおいて前記第１の通信信号、前記第２の通信信号、またはその両方において表されたデータ内のエラーを検出するステップであって、前記第１の通信信号および前記第２の通信信号が前記プログラマブルロジックデバイスによって並行して受信され、前記第１の通信信号および前記第２の通信信号が同一の情報を表し、前記エラーを検出するステップが前記プログラマブルロジックデバイスにおけるハードウェア検出のみを含む、ステップと、
前記エラーが検出された場合に、前記エラーのタイプを判定するステップと、
前記エラーのタイプ、前記第１の通信信号、前記第２の通信信号、またはそれらの任意の組合せに少なくとも部分的に基づいて、前記プログラマブルロジックデバイスにおいて前記エラーを訂正するステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、送信システムに関し、より具体的には、データ送信システムのためのハードウェアシリアルリンク故障検出システムに関する。
【背景技術】
【０００２】
一般に、データ送信システムは、ある入力／出力（Ｉ／Ｏ）デバイスから別のＩ／Ｏデバイスにデータを転送するために使用され得る。たとえば、送信システムは、タービン、発電機、コンプレッサ、コンバスタなどの様々なデバイスとインターフェースをとり、制御する様々な工業用コントローラの間の通信を円滑化するために、工業用制御システムで使用され得る。より具体的には、送信システムは、コントローラが制御コマンドなどのデータを互いに通信することを可能にすることができる。たとえば、第１のコントローラは、第２のコントローラに制御コマンドを送信して送信システムを介してタービンの稼働を開始することができる。したがって、送信システムの信頼性を向上させることは有益であることになる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７６４２７４８号公報
【発明の概要】
【課題を解決するための手段】
【０００４】
出願時に特許請求された発明の範囲に準じたある種の実施形態が、以下に要約される。これらの実施形態は、特許請求されている発明の範囲を限定するものではなく、そうではなくて、これらの実施形態は、本発明の起こり得る形の簡潔な概要を提供することのみを意図されている。実際、本発明は、以下に記載の実施形態と同様のまたはそれらとは異なり得る様々な形を包含し得る。
【０００５】
第１の実施形態は、第２のプログラマブルロジックデバイスから第１のシリアルリンクを介して第１のプログラマブルロジックデバイスで第１の通信信号を受信するステップと、第２のプログラマブルロジックデバイスから第２のシリアルリンクを介して第１のプログラマブルロジックデバイスで第２の信号を受信するステップとを含むデータ送信システムでのリアルタイムエラー訂正のための方法であって、第１のシリアルリンクおよび第２のシリアルリンクが互いに並行に配置され、単一のルートを介して通信するように構成され、第１の通信信号および第２の通信信号が同一の情報を表す、方法が説明される。本方法は、第１のプログラマブルロジックデバイスにおいて第１の通信信号と第２の通信信号を比較して第１の通信信号、第２の通信信号、またはその両方でデータ内のエラーを検出するステップと、エラーが検出されたときに、第１の通信信号と第２の通信信号の比較に少なくとも部分的に基づいて第１のプログラマブルロジックデバイスでリアルタイムでエラーを訂正するステップとをさらに含む。
【０００６】
第２の実施形態は、プログラマブルロジックデバイスを含むデータ送信システムを説明する。そのプログラマブルロジックデバイスは、第１のシリアルポートが第１のシリアルリンクから第１の送信信号を受信する、第１のシリアルリンクに通信可能に結合された第１のシリアルポートと、第２のシリアルポートが第２のシリアルリンクから第２の送信信号を受信する、第２のシリアルリンクに通信可能に結合された第２のシリアルポートとを含む。第１のシリアルリンクおよび第２のシリアルリンクは、互いに並行に配置され、単一のルートを介して通信し、第１の通信信号および第２の通信信号は同一の情報を表す。そのプログラマブルロジックデバイスは、第１の通信信号と第２の通信信号を比較して第１の通信信号、第２の通信信号、またはその両方に含まれるデータ内のエラーを検出するために、エラーが検出されたときに、第１の通信信号と第２の通信信号の比較に少なくとも部分的に基づいてリアルタイムでエラーを訂正するために、回路を含む。
【０００７】
第３の実施形態は、送信された第１の通信信号と第２の通信信号を比較することによってプログラマブルロジックデバイスで第１の通信信号、第２の通信信号、またはその両方において表されたデータ内のエラーを検出するステップを含む、データ送信システムを動作させるための方法を説明し、第１の通信信号および第２の通信信号はプログラマブルロジックデバイスによって並行して受信され、第１の通信信号および第２の通信信号は同一の情報を表し、エラーの検出はそのプログラマブルロジックデバイス内のハードウェア検出のみを含む。本方法は、エラーが検出された場合に、そのエラーのタイプを判定するステップと、エラーのタイプ、第１の通信信号、第２の通信信号、またはそれらの任意の組合せに少なくとも部分的に基づいて、プログラマブルロジックデバイスでエラーを訂正するステップとをさらに含む。
【０００８】
本発明のこれらのおよび他の特徴、態様、および利点は、以下のような、同様の文字が図面を通して同様の部分を表す、添付の図面を参照して、以下の詳細な説明が読まれるときに、よりよく理解されよう。
【図面の簡単な説明】
【０００９】
【図１】一実施形態による、データ送信システムの概略図である。
【図２】一実施形態による、図１に示すデータ送信システム内のコントローラのブロック図である。
【図３】一実施形態による、三重モジュール式冗長コントローラのブロック図である。
【図４】一実施形態による、通信信号のブロック図である。
【図５】一実施形態による、通信信号をデータ送信システムに送信するためのプロセスを示す流れ図である。
【図６】一実施形態による、通信信号をデータ送信システムから受信するためのプロセスを示す流れ図である。
【図７】一実施形態による、シリアルリンクにおいて故障を検出するためのプロセスを示す流れ図である。
【図８】一実施形態による、受信された通信信号内のエラーを検出および訂正するためのプロセスを示す流れ図である。
【発明を実施するための形態】
【００１０】
本発明の１つまたは複数の特定の実施形態が、以下に説明される。これらの実施形態の簡潔な説明を提供することを目的として、実際の実装形態のすべての特徴は本明細書には記載されないことがある。任意のそのような実際の実装形態の開発では、いずれの工学または設計プロジェクトでもそうであるように、多数の実装形態特有の決定が、実装形態によって変わり得るシステム関連およびビジネス関連の制約の順守などの開発者の特有の目的を達成するために行われる必要があることを理解されたい。さらに、そのような開発の努力は、複雑で、時間を要することがあるが、それでもなお、本開示の利益を有する当業者の設計、製作、および製造の通常業務となろうことを理解されたい。
【００１１】
本発明の様々な実施形態の要素を紹介するとき、「１つの（ａ、ａｎ）」、「その（ｔｈｅ）」および「前記（ｓａｉｄ）」という冠詞は、１つまたは複数のその要素が存在することを意味するものである。「備える」、「含む」、および「有する」という用語は、包括的であり、挙げられた要素以外の追加の要素が存在し得ることを意味するものである。
【００１２】
データ送信システムは、しばしば、工業用制御システムおよび自動化システムなどのシステム内で使用されてそのシステム内の様々な入力／出力（Ｉ／Ｏ）デバイス間の通信を円滑化する。たとえば、データ送信システムは、様々なコントローラが互いにデータを通信することを可能にすることができる。一般に、コントローラは、タービン、発電機、コンプレッサ、コンバスタ、センサ、ポンプ、バルブ、他の野外装置などの様々なデバイスとインターフェースをとり、制御する。したがって、コントローラによって通信されるデータは、制御されたデバイスによって集められたデータ、制御コマンド、デバイス状況などを含み得る。データ送信システムを使用し得るシステムの特質により、そのようなデータ送信システムの信頼性を向上させることは有益となろう。
【００１３】
データ送信システムの信頼性を向上させるための１つの技法は、プロセス制御のためのオブジェクトのリンクと埋め込み（Ｏｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｉｎｇ  ｆｏｒ  Ｐｒｏｃｅｓｓ  Ｃｏｎｔｒｏｌ、ＯＰＣ）、モドバス（Ｍｏｄｂｕｓ）、ファウンデーションフィールドバス、プロセスフィールドバス、および／またはＢＡＣｎｅｔなどの様々な通信プロトコルの使用を含み得る。一般に、これらの通信プロトコルは、何らかのソフトウェア監視および処理を使用し得る。たとえば、ファウンデーションフィールドバスを使用するとき、ある一定のレベルの処理が、データを送信および受信するための機能ブロックを実行するために使用され得る。しかし、いくつかのＩ／Ｏデバイスは、そのようなプロトコルのための所望の処理能力を含まないことがあるので、本開示は処理能力にかかわらずＩ／Ｏデバイスのための送信システムの信頼性を向上させるための実施形態を含む。したがって、本明細書に記載の技法は、安全システム適用例を含む、様々な適用例における通信のための低レベルのシリアルリンクを実現する。低レベルのシリアルリンクは、より少ない処理および資源（たとえば、ソフトウェアおよびハードウェア資源）を使用し、その上で、ＳＩＬ１、２、３、および／または４を含む所望の安全完全性レベル（ＳＩＬ）証明を満たすために適切な動作を提供することができる。ある種の実施形態において、低レベルのシリアルリンクは、ハードウェア故障検出方式を適用して、処理および他の資源の使用を低減するのに適した所望の安全証明を実現することができる。
【００１４】
したがって、第１の実施形態は、プログラマブルロジックデバイスを含むフォールトトレラント送信システムを示す。そのプログラマブルロジックデバイスは、第１のシリアルポートが第１のシリアルリンクから第１の送信信号を受信する、第１のシリアルリンクに通信可能に結合された第１のシリアルポートと、第２のシリアルポートが第２のシリアルリンクから第２の送信信号を受信する、第２のシリアルリンクに通信可能に結合された第２のシリアルポートとを含む。第１のシリアルリンクおよび第２のシリアルリンクは、互いに並行に配置され、第１の単一のルートを介して通信し、第１の通信信号および第２の通信信号は同一の情報を表す。そのプログラマブルロジックデバイスは、第１の通信信号と第２の通信信号を比較することによって第１のシリアルリンク、第２のシリアルリンク、またはその両方で故障を検出し、故障が検出された場合には、送信システムがその故障にかかわらず動作を継続することができるかどうかを判定する、回路をさらに含む。言い換えれば、同情報を表すパラレル通信信号の受信は、様々なデバイス間の通信リンク（たとえば、シリアルリンク）における故障の検出を可能にする。さらに、本送信システムは、検出された故障に知的に反応することによって、よりフォールトトレラントであり得る。
【００１５】
したがって、第２の実施形態は、プログラマブルロジックデバイスを含むデータ送信システムを示す。そのプログラマブルロジックデバイスは、第１のシリアルポートが第１のシリアルリンクから第１の送信信号を受信する、第１のシリアルリンクに通信可能に結合された第１のシリアルポートと、第２のシリアルポートが第２のシリアルリンクから第２の送信信号を受信する、第２のシリアルリンクに通信可能に結合された第２のシリアルポートとを含む。第１のシリアルリンクおよび第２のシリアルリンクは、互いに並行に配置され、単一のルートを介して通信し、第１の通信信号および第２の通信信号は同一の情報を表す。そのプログラマブルロジックデバイスは、第１の通信信号と第２の通信信号を比較して第１の通信信号、第２の通信信号、またはその両方に含まれるデータ内のエラーを検出し、エラーが検出されたときには、第１の通信信号と第２の通信信号の比較に少なくとも部分的に基づいてリアルタイムでエラーを訂正するために、回路をさらに含む。言い換えれば、同情報を表すパラレル通信信号の受信は、通信信号のエラーの検出およびリアルタイム訂正を可能にする。本明細書では、「リアルタイム」は、先行するステップに直ちに続くことを意味するものである。たとえば、エラー訂正は、エラーが検出されるとすぐに開始し得る。
【００１６】
以下にさらに詳しく説明するように、いくつかの実施形態では、データ送信システムは、ソフトウェア監視を殆どまたは全く有さずにハードウェアを使用して送信システムの信頼性を向上させることができる。その結果、データ送信システムの信頼性の向上が、プロセッサを有するＩ／Ｏデバイスおよびプロセッサを有さないＩ／Ｏデバイスに実現され得る。さらに、本明細書に記載の技法は、Ｉ／Ｏデバイスが国際電気標準会議（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ、ＩＥＣ）６１５０８に準拠することを可能にし、いくつかの実施形態では、ＳＩＬ１、２、３、および／または４証明を満たすことを可能にする。
【００１７】
前置きとして、図１は、工業用制御システム１２内に配置されたデータ送信システム１０の一実施形態を示す。工業用制御システム１２は、工業用制御システム１２内の様々なデバイスと各々がインターフェースをとり、制御することができる複数のコントローラ１４を含む。図示するように、第１のコントローラは、タービン１６（たとえば、ガスタービン、蒸気タービン、水力タービン）に結合され、制御し、センサ１８に通信可能に結合され、第２のコントローラは、バルブ２０およびポンプ２２に結合され、それを制御する。他の実施形態では、コントローラ１４は、コンバスタ、発電機、および他のターボ機械など、工業用制御システム１２内の他のデバイスに結合され、制御することができる。
【００１８】
さらに、図示するように、コントローラ１４は、データ送信システム１０を介して互いに通信することができる。工業用制御システム１２のいくつかの実施形態では、データ送信システム１０は、高速イーサネット（登録商標）（ＨＳＥ）ネットワークまたはＨ１ネットワークを含み得る。しかし、以下にさらに詳しく説明するように、本明細書に記載の技法は、任意の直列二地点間構造を使用することができる。データ送信システム１０を使用することによって、コントローラ１４は、接続されたデバイスの状況、収集された測定結果、および制御コマンドなどの様々なタイプのデータを通信することができる。たとえば、第１のコントローラは、データ送信システム１０を介して第２のコントローラにセンサ１８によって収集された測定結果を送信することができる。それに応答して、第２のコントローラは、タービン１６の動作を修正するように第１のコントローラに命令する制御コマンドを送信することができる。したがって、通信、接続されたデバイスの制御、およびコントローラの他の様々な機能を円滑化するために、コントローラ１４は、１つまたは複数のプロセッサ２４と、１つまたは複数のプロセッサ２４によって実行可能な非一時的機械可読命令を記憶することができるメモリ２６とを含む。
【００１９】
データ送信システム１０の一実施形態の詳細な表示が、図２に示される。図示するように、各コントローラ１４は、データ送信サブシステム１５を含む。いくつかの実施形態では、データ送信サブシステム１５は、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックアレイ、汎用アレイロジック、またはそれらの任意の組合せなど、プログラマブルロジックデバイスでもよい。他の実施形態では、サブシステム１５は、特定用途向け集積回路でもよい。加えて、データ送信サブシステム１５は、各コントローラ１４のハードウェアサブシステムとして（たとえば、ホットスワップ可能なカードとして）含まれ得る。サブシステム１５を含み得るコントローラ１４の一例は、ニューヨークのＧｅｎｅｒａｌ  Ｅｌｅｃｔｒｉｃ  Ｃｏｍｐａｎｙ  ｏｆ  Ｓｃｈｅｎｅｃｔａｄｙによって入手可能にされたＭａｒｋ  ＶＩｅコントロールシステムである。
【００２０】
図示された実施形態では、データ送信サブシステム１５によって実行される機能は、コントローラプロセッサ２４および／またはメモリ２６によって実行することができる機能ブロックとして表される。図示するように、サブシステム１５は、時計システム（機能ブロック２７）、フリーランニングカウンタ（ＦＲＣ）（機能ブロック２８）、データＩ／Ｏ（機能ブロック３０）、データ比較／複製（機能ブロック３２）、および、コントローラ１４をデータ送信システム１０に結合させるパラレルＩ／Ｏポート（機能ブロック３４および３６）を含む。以下にさらに詳しく説明するように、ＦＲＣ２８は、タイミングデータを生成して通信信号の時刻同期を可能にすることができ、データＩ／Ｏ３０は通信信号を生成することができ、データ比較／複製３２は、通信信号を複製し、通信リンク（たとえば、シリアルリンク）内の故障を検出し、受信された通信信号内のエラーを検出／訂正することができる。
【００２１】
さらに、図示するように、送信システム１０は、単一のルート（たとえば、ケーブル）３８と、ルート３８のいずれかの末端部に結合されたパラレルシリアル送受信機４０および４２とを含む。より具体的には、シリアル送受信機４０および４２は、Ｉ／Ｏポート３４および３６とインターフェースし、コントローラ１４がサブシステム１５を介して他のコントローラ１４と通信することを可能にする。シリアル送受信機４０および４２は、ＲＳ−２３２送受信機、ＲＳ−４８５送受信機、差動バス送受信機、シングルエンド送受信機、または他の低レベルのシリアル送受信機でもよい。いくつかの実施形態では、１つのみのケーブル（たとえば、キャット５、キャット５ｅ、またはキャット６）が使用されて、２つのサブシステム１５を接続し、それによってルートおよび関連機器を最小限に抑える。他の実施形態では、複数のケーブルが使用され得る。いくつかの実施形態では、シリアル送受信機４０および４２は、無線周波数よりも低い周波数で通信信号を送信して、無線周波数に起因する信号内のノイズの量を最小限に抑えることができる。たとえば、シリアル送受信機４０および４２は、１〜２０ＭＨｚ、２０〜３０ＭＨｚ、３０〜４０ＭＨｚ、４０〜５０ＭＨｚ、５０〜６０、６０〜１００ＭＨｚ、またはそれらの任意の組合せの間で通信して、１〜２０Ｍｂｉｔ／秒、２０〜３０Ｍｂｉｔ／秒、３０〜４０Ｍｂｉｔ／秒、４０〜５０Ｍｂｉｔ／秒、５０〜６０Ｍｂｉｔ／秒、６０〜１００Ｍｂｉｔ／秒またはそれらの任意の組合せの間のデータ送信を可能にすることができる。
【００２２】
明確に図示されていないが、単一のルート３８は、シリアル送受信機４０を結合する第１のシリアルリンクと、並行してシリアル送受信機４２を結合させる第２のシリアルリンクとを含む。より具体的には、第１のおよび第２のシリアルリンクは、コントローラ１４間の通信信号のパラレル送信を可能にすることができる。たとえば、第１の通信信号は第１のシリアルリンクを介して送信することができ、第２の通信信号は、並行して、そしてほぼ同時に、第２のシリアルリンクを介して送信することができる。以下にさらに詳しく説明するように、第１の通信信号および第２の通信は、同情報を表すことができ、シリアルリンク内の故障の検出および通信信号内のエラーの検出／訂正を円滑化する。いくつかの実施形態では、適切なルート３８は、４つのワイヤを第１のシリアルリンクのために使用することおよび４つのワイヤを第２のシリアルリンクのために使用することを可能にする８つのシリアルワイヤを含むので、適切なルート３８は、カテゴリ５（キャット５）ケーブルでもよい。他の実施形態では、第１のシリアルリンクおよび第２のシリアルリンクは、別個のルートで含まれ得る。さらに、図示するように、単一のルート３８は、１つのコントローラを別のコントローラに結合させ、それによって、直列二地点間構造をセットする。本明細書では、「二地点間構造」は、１つのデバイスが別のデバイスに直接に結合される場合を述べている。言い換えれば、いくつかの実施形態では、コントローラ１４は、ルート３８を介してのみ通信することができ、他方のコントローラ１４の識別、通信信号の送信時間、通信信号の順序、またはそれらの任意の組合せを両方のコントローラ１４が予定する（たとえば、予想するまたは期待する）ことを可能にする。そのような構造は、１〜１０メートル離れて、１０〜２０メートル離れて、２０〜３０メートル離れて、３０〜４０メートル離れて、４０〜１００メートル離れて、またはそれらの任意の組合せで置かれたデバイスの間の通信に適切であり得る。
【００２３】
いくつかの実施形態では、コントローラ１４は、図３に示すような三重モジュール式冗長（ＴＭＲ）コントローラ１４でもよい。一般に、ＴＭＲコントローラ１４は、３つのコアを使用することによって、信頼性を向上させることができる。より具体的には、図示するように、ＴＭＲコントローラ１４は、各々がほぼ同じに機能するＲコア４６、Ｓコア４８、およびＴコア５０を含む。それにより、ＴＭＲコントローラ１４は、投票方式を介して動作して、正常に動作しないコア（たとえば、４６、４８、または５０）の影響を低減する。
【００２４】
図示するように、ＴＭＲコントローラ１４内のＲコア４６は第１の送信システム５２によって結合され、Ｓコア４８は第２の送信システム５４によって結合され、Ｔコースは第３の送信システム５６によって結合される。より具体的には、いくつかの実施形態では、各々の送信システム（たとえば、５２、５４、および５６）は、たとえば、データ送信サブシステム１５を含むこと、および、互いにほぼ独立して動作することによって、前述のデータ送信システム１０と同様に機能することができる。より具体的には、各送信システム（たとえば、５２、５４、および５６）は、各ペアのコアの間の通信信号のパラレル送信を可能にするために、第１のおよび第２のシリアルリンク（または、サブシステム１５の任意の他の構成要素）を含み得る。言い換えれば、第１の送信システム５２はＲコア４６間でパラレル通信信号（たとえば、２つ以上の同一のデータ送信）を送信することができ、第２の送信システム５４はＳコア４８間でパラレル通信信号を送信することができ、第３の送信システム５６はＴコア５０間でパラレル通信信号を送信することができる。加えて、前述のように、第１のおよび第２のシリアルリンクは、単一のまたは２つの別個のルート内に含まれ得る。したがって、図３に示す実施形態では、３つの別個のルートまたは６つの別個のルートが使用され得る。別法として、すべての６つのシリアルリンクが、単一のルートに含まれ得る。
【００２５】
データ送信システム１０を介してコントローラ１４間で送信され得る通信信号５８の一実施形態が、図４に示される。図示するように、通信信号５８は、通信信号データ６０、順序番号６２、タイミングデータ６４、送信者ＩＤ６６、および、エラー検査データ６８を含む。通信信号データ６０は、コントローラ１４間で通信されることを意図されたデータを含み得る。たとえば、通信信号データ６０は、制御コマンド、ログインデータ、認証データ、投票データ、測定データ、デバイス状況などを含み得る。
【００２６】
順序番号６２は、通信信号５８が送信された順番を表すことができる。いくつかの実施形態では、順序番号６２は、通信信号５８のヘッダ内に含まれ得る。したがって、順序番号５８は、受信コントローラ１４が通信信号５８が送信された順番を判定することを可能にすることができる。
【００２７】
前述のように、タイミングデータ６４は、通信信号５８の時刻同期を可能にするために、ＦＲＣ２８によって生成され得る。たとえば、いくつかの実施形態では、タイミングデータ６４は、ＦＲＣ２８でのカウントを表す一意の文字でもよい。それにより、送信および受信コントローラ１４内のＦＲＣ２８が同期される場合、タイミングデータ６４は通信信号５８がいつ送信されたかを受信コントローラ１４が判定することを可能にする。
【００２８】
送信者ＩＤ６６は、送信コントローラ１４を識別することができる。たとえば、いくつかの実施形態では、送信者ＩＤは、媒体アクセス制御（ＭＡＣ）アドレス、所有権を主張できる一意のモジュールＩＤコード、または他の同様の一意の識別子でもよい。いくつかの実施形態では、所有権を主張できる一意のモジュールＩＤコードは、データコードを含む一意の通し番号を含み得る。したがって、送信者ＩＤ６６は、受信コントローラ１４が送信コントローラ１４の識別を判定することを可能にすることができる。
【００２９】
エラー検査データ６８は、巡回冗長検査、チェックサム、暗号学的ハッシュ関数、または同様のものなどのエラー検査技法を円滑化するデータを含み得る。たとえば、巡回冗長検査が使用される場合、エラー検査データ６８は、通信信号５８の多項式除法の余りを含み得る。動作中、送信コントローラ１４は、エラー検査技法を実行し、通信信号５８でエラー検査データ６８（たとえば、チェックサム）をコード化することができる。その結果、受信コントローラ１４は、エラー検査技法を繰り返すこと、およびその結果をエラー検査データ６８と突き合わせること（たとえば、新たにチェックサムを計算すること、および、送信されたチェックサムで計算を確認すること）によって、エラー／故障を検出することができる。
【００３０】
前述のように、送信システム１０は、コントローラ１４間で通信信号５８を送信することを可能にする。図５は、パラレル通信信号を送信するために、送信コントローラ１４、および、より具体的には、データ送信サブシステム１５（たとえば、プログラマブルロジックデバイス）によって使用され得る、プロセス７０の一実施形態を示す。プロセス７０は、メモリ２６に記憶されたおよびプロセッサ２４によって実行される非一時的機械可読命令またはコードによって、実装され得る。図示された実施形態では、プロセス７０は、通信信号データを生成すること（プロセスブロック７４）、順序番号をコード化すること（プロセスブロック７６）、タイミングデータをコード化すること（プロセスブロック７８）、送信者ＩＤをコード化すること（プロセスブロック８０）、およびエラーデータをコード化すること（プロセスブロック８２）を含む第１の通信信号の生成（大括弧７２）によって、開始する。プロセス７０は、第２の通信信号を生成すること（プロセスブロック８４）、および第１のシリアルリンクで第１の通信信号を（プロセスブロック８６）そして第２のシリアルリンクで第２の通信信号を（プロセスブロック８８）並行して送信することによって、継続する。
【００３１】
より具体的には、第１の通信信号は、データＩ／Ｏ３０によって生成され得る。通信信号データ６０を生成するために（プロセスブロック７４）、データＩ／Ｏ３０は、第１の通信信号で送信するためのデータを収集することができる。たとえば、デバイス状況が送信されようとするとき、データＩ／Ｏ３０は、それの状況について接続されたデバイス（たとえば、１６、２０または２２）をポーリングすること、または、デバイスを監視するセンサ（たとえば、１８）から測定結果を検索することができる。順序番号６２をコード化するために（プロセスブロック７６）、データＩ／Ｏ３０は、各通信信号が送信されると値を増加させる逐次カウンタを含み得る。それにより、カウンタからのカウントが、通信信号５８が送信される順番を表すために、順序番号６２として含まれ得る。送信者ＩＤ６６をコード化するために（プロセスブロック８０）、データＩ／Ｏ３０は、送信コントローラのメモリ２６からその送信コントローラを識別する記憶された一意の識別子を検索することができる。
【００３２】
タイミングデータ６４をコード化するために（プロセスブロック７８）、データＩ／Ｏ３０は、ＦＲＣ２８からタイミングデータ６４を受信することができる。より具体的には、ＦＲＣ２８は、システム時計２７から受信されたタイミング信号に基づいて、タイミングデータ６４を生成することができる。たとえば、ＦＲＣ２８は、そのタイミング信号に基づいてカウントアップし、それが特定のカウントに到達した後は、カウントをリセットすることができる。通信信号５８が送信されようとするときのカウントに基づいて、ＦＲＣ２８は、そのカウントを表す一意の文字を出力することができる。それにより、通信信号５８が受信されるとき、受信コントローラは、それ自体のＦＲＣ２８内のカウントとその一意の文字を比較して、いつ送信信号５８が送信されたかを判定することができる。
【００３３】
エラー検査データ６８をコード化するために（プロセスブロック８２）、データＩ／Ｏ３０は、巡回冗長検査、チェックサム、暗号学的ハッシュ関数、または同様のものなどのデータ検査方法を実行することができる。たとえば、巡回冗長検査が使用される場合、データＩ／Ｏ３０は、通信信号５８、またはより具体的には通信信号データ６０、で多項式除法を実行し、その多項式除法の余りをエラー検査データ６８としてコード化することができる。それにより、受信コントローラ１４は、そのエラー検査技法を繰り返すことおよびその結果をエラー検査データ６８と突き合わせることによって、エラーを検出することができる。他の実施形態では、順序番号６２をコード化すること（プロセスブロック７６）、タイミングデータ６４をコード化すること（プロセスブロック７６）、送信者ＩＤ６６をコード化すること（プロセスブロック７６）、およびエラー検査データ６８をコード化すること（プロセスブロック７６）は、任意の順序で実行され得る。
【００３４】
第１の通信信号は、次いで、データＩ／Ｏ３０からデータ比較／複製３２に渡されて、第２の通信信号を生成することができる（プロセスブロック８４）。より具体的には、データ比較／複製３２は、たとえば第１の通信信号を複製することによって、同情報を第１の通信信号として表すために、第２の通信信号を生成することができる。加えてまたは別法として、第２の通信信号を生成するために、データ比較／複製３２は、第１の通信信号を反転させること（たとえば、「１」を「０」に、またはその逆に変更する）、または第１の通信信号を逆転させること（たとえば、第１の通信信号の最上位ビットを第２の通信信号の最下位ビットとして置くことなど）ができる。たとえば、第１の通信信号が「１００１１１００」である場合、逆転された第２の通信信号は「００１１１００１」でもよく、反転された第２の信号は「０１１０００１１」でもよい。
【００３５】
第１の通信信号の逆転および／または反転は、シリアルリンクにおける故障の検出および／または送信されるデータにおけるエラーの検出／訂正を円滑化することができる。たとえば、通信信号が反転される場合、それらの通信信号のうちの１つの通信信号内のエラーは、第１の通信信号と第２の通信信号内のビットが両方とも「高い」または両方とも「低い」ときに検出され得る。また、第２の通信信号が逆転される場合、エラーは、第１の通信信号の最上位ビットが第２の通信信号の最下位ビットと一致しないときに検出され得る。さらに、エラーは、第１の通信信号の誤りのあるビットを第２の通信信号からの誤りのないビットで置き換えることによって、訂正され得る。
【００３６】
第１の通信信号は、データ比較／複製３２から第１のＩ／Ｏポート３４に渡されて第１のシリアルリンクを介して送信することができ（プロセスブロック８６）、第２の通信信号は、第２のシリアルリンクを介してデータ比較／複製３２から第２のＩ／Ｏポート３６に渡すことができる（プロセスブロック８８）。以下にさらに詳しく説明するように、シリアルリンク故障検出およびデータエラー検出／訂正を円滑化するために、第１の通信信号および第２の通信信号は、並行して、ほぼ同時に、送信され得る。
【００３７】
送信システム１０の受信側では、送信された通信信号５８が、受信コントローラ１４によって受信される。図６は、たとえば単一のルート（たとえば、キャット５ケーブル）で、パラレル通信信号５８を受信するために、受信コントローラ１４、より具体的にはデータ送信サブシステム１５（たとえば、プログラマブルロジックデバイス）、によって使用され得るプロセス９０の一実施形態を示す。プロセス９０は、メモリ２６に記憶された、プロセッサ２４によって実行される非一時的機械可読命令またはコードによって、実装され得る。図示するように、プロセス９０は、第１の通信信号を待つこと（プロセスブロック９２）および第２の通信信号を待つこと（プロセスブロック９４）によって、開始する。第１の通信信号が受信され（プロセスブロック９６）、第２の通信信号が受信される（プロセスブロック９８）場合、第１の通信信号と第２の通信信号が比較され（大括弧１００）、これは、ビット単位の一致について第１の通信信号と第２の通信信号を比較すること（プロセスブロック１０２）、コード化された順序番号を比較すること（プロセスブロック１０４）、コード化されたタイミングデータを比較すること（プロセスブロック１０６）、送信者ＩＤを比較すること（プロセスブロック１０８）、および、コード化されたエラー検査データを比較すること（プロセスブロック１１０）を含み得る。
【００３８】
より具体的には、データ比較／複製３２は、第１のＩ／Ｏポート３４を介する第１の通信信号の受信を待つこと（プロセスブロック９２）、および第２のＩ／Ｏポート３６を介する第２の通信信号の受信を待つこと（プロセスブロック９４）を待つことができる。いくつかの実施形態では、これは、定期的にスケジュールされた通信信号５８のウォッチドッグタイムアウトを使用することを含み得る。言い換えれば、データ比較／複製３２は、スケジュールされた通信信号５８の期待される到達時間など、所定の時間待つことができ、通信信号５８がその時間内に受信されない場合には、データ比較／複製信号５８は、タイムアウト信号を出力することができる。いくつかの実施形態では、前述のように、二地点間構造の使用は、コントローラ１４が前の通信信号５８の実際の到達時間を調べることを可能にすることができるので、期待される到達時間は、受信コントローラ１４によって予定することができる。したがって、図２に示すように、データ比較／複製３２は、時計システム２７に結合されてタイミング信号を受信する。いくつかの実施形態では、通信信号５８は、１〜５ミリ秒、５〜８ミリ秒、８〜１０ミリ秒、１０〜１２ミリ秒、１２〜１５ミリ秒、１５〜３０ミリ秒、またはそれらの任意の組合せごとに期待される。したがって、タイムアウト信号の出力は、通信信号５８が削除されたまたは遅れたことを指示し得る。
【００３９】
第１の通信信号および第２の通信信号の両方が受信された後は、データ比較／複製３２は、第１の通信信号と第２の通信信号の比較を開始することができ（大括弧１００）、シリアルリンク内の故障の検出および送信されたデータにおけるエラーの検出／訂正を円滑化することができる。より具体的には、前述のように、第２の通信信号は第１の通信信号の逆転または反転されたバージョンでもよいので、ビット単位の一致について第１の通信信号と第２の通信信号を比較するために（プロセスブロック１０２）、データ比較／複製３２は、第２の通信信号を第１の通信信号と比較する前に、第２の通信信号を反転または逆転させることができる。したがって、ビット単位の比較は、通信信号５８内のビットが削除された、挿入された、または破損したことを指示し得る。加えて、以下にさらに詳しく説明するように、ビット単位の比較は、通信信号５８内のビットのリアルタイム訂正を円滑化することができる。
【００４０】
コード化された順序番号６２を比較するために（プロセスブロック１０４）、データ比較／複製３２は、通信信号５８のヘッダから順序番号６２を検索することができ、コントローラ１４が通信信号５８が送信された順番を判定することを可能にする。より具体的には、データ比較／複製３２は、第１の通信信号と第２の通信信号のうちの一方または両方でコード化された順序番号６２を予期した順序番号６２と比較することができる。たとえば、通信信号５８でコード化された順序番号６２が前のペアの通信信号と同じである場合、繰返しエラーが検出され得る。加えて、通信信号５８でコード化された順序番号６２が予期した順序番号とは異なる場合、削除、挿入または並べ直しエラーが検出され得る。エラーが存在しない場合、受信された各通信信号５８でコード化された順序番号６２は、前に受信された通信信号５８でコード化された順序番号６２と所定の関係を有することになるので、いくつかの実施形態では、前述のように、二地点間直列構造の使用は、受信コントローラ１４が予期した順序番号を維持することを可能にすることができる。したがって、順序番号６２の比較は、通信信号５８の一方または両方が繰り返された、削除された、挿入された、または並べ直されたことを指示し得る。
【００４１】
コード化されたタイミングデータ６４を比較するために（プロセスブロック１０６）、データ比較／複製３２は、第１の通信信号および第２の通信信号の一方または両方を時刻同期させることができる。いくつかの実施形態では、これは、通信信号５８でコード化されたタイミングデータ６４を受信コントローラ１４でＦＲＣ２８によって生成されたメモリ２６内の記憶されたタイミングデータ６４と突き合わせることによって、通信信号５８が送信された時間を判定することを含み得る。たとえば、送信および受信コントローラの両方でＦＲＣ２８は、午後３時を示すための一意の文字「Ｘ」を生成することができる。加えて、通信信号５８でコード化されたタイミングデータ６４が、前に受信された通信信号５８でコード化されたタイミングデータ６４と同じである場合、繰返しエラーが検出され得る。さらに、通信信号５８でコード化されたタイミングデータが、前に受信された通信信号５８でコード化されたタイミングデータ６４よりも早い場合、並べ直しまたは遅延エラーが検出され得る。したがって、コード化されたタイミングデータ６４の比較は、通信信号５８の一方または両方が繰り返された、並べ直された、または遅れたことを指示し得る。
【００４２】
送信者ＩＤ６６を比較するために（プロセスブロック１０８）、データ比較／複製３２は、送信コントローラ１４の識別を判定することができる。より具体的には、これは、第１の通信信号および第２の通信信号の一方または両方でコード化された送信者ＩＤ６６をメモリ２６内に記憶された送信者ＩＤ６６と突き合わせることを含み得る。たとえば、コントローラメモリ２６は、コントローラが通信信号５８をそこから受信することを期待するデバイスに対応する送信者ＩＤ６６のリストを記憶することができる。いくつかの実施形態では、前述のように、二地点間直列構造の使用は、受信コントローラ１４が、どのデバイスにコントローラ１４が結合されるかを予め定め、それらのデバイスに関連する送信者ＩＤを記憶することを可能にすることができる。したがって、コード化された送信者ＩＤ６６が、コントローラ１４がそこから通信信号５８を受信することを期待しないデバイスに対応する場合に、コード化された送信者ＩＤ６６の比較は、通信信号５８の一方または両方が挿入されたことを指示し得る。
【００４３】
コード化されたエラー検査データ６８を比較するために（プロセスブロック１１０）、データ比較／複製３２は、第１の通信信号および第２の通信の一方または両方で、巡回冗長検査（ＣＲＣ）などのエラー検査技法を実行して、受信された通信信号５８が破損しているかどうかを判定することができる。より具体的には、データ比較／複製３２は、送信コントローラ１４で実行されたエラー検査技法を複製し、それの結果をコード化されたエラー検査データ６８と比較することができる。その結果、コード化されたエラー検査データ６８の比較は、通信信号５８の一方または両方が破損している、または他の方法で互いと一致しないことを指示し得る。
【００４４】
他の実施形態では、ビット単位で通信信号を比較すること（プロセスブロック１０２）、コード化された順序番号６２を比較すること（プロセスブロック１０４）、コード化されたタイミングデータ６４を比較すること（プロセスブロック１０６）、送信者ＩＤ６６を比較すること（プロセスブロック１０８）、および、エラー検査データ６８を比較すること（プロセスブロック１１０）は、任意の順序で実行され得る。さらに、ある種の実施形態において、挿入、削除、遅延、またはそれらの任意の組合せの検出は、なりすましを指示し得る。本明細書では、なりすましは、送信システム１０への認証されていない侵入を表すものである。たとえば、通信信号５８が挿入された、削除された、または遅れているときに、これは、認証されていないデバイス（たとえば、コントローラ１４）が送信システム１０にアクセスし、通信信号５８を変更していることを指示し得る。
【００４５】
前述のように、それぞれ第１のおよび第２のシリアルリンクを介して並行してほぼ同一の情報を表す第１の通信信号および第２の通信信号を送信することは、第１のシリアルリンク、第２のシリアルリンク、またはその両方での故障および／またはなりすましの検出を可能にする。シリアルリンクにおいて故障を検出するために使用され得るプロセス１１２の一実施形態が、図７に示される。プロセス１１２は、メモリ２６に記憶された、プロセッサ２４によって実行される非一時的機械可読命令またはコードによって、実装され得る。図示するように、プロセス１１２は、第１の通信信号と第２の通信信号を待つこと（決定ブロック１１４）によって、開始し得る。両方の通信信号が受信された場合、第１の通信信号と第２の通信信号が比較され得る（プロセスブロック１００）。タイムアウト信号が出力されたかどうかおよび／または通信信号の比較に基づいて、シリアルリンクにおける故障が検出され得る（決定ブロック１１６）。シリアルリンクで故障が検出されない場合、送信システム１０は動作を継続する（プロセスブロック１１８）。一方、故障が検出された場合、送信システム１０がその検出された故障にかかわらず動作を継続するべきか（プロセスブロック１１８）または動作を中止するべきか（プロセスブロック１２２）が判定され得る（決定ブロック１２０）。
【００４６】
より具体的には、前述のように、データ比較／複製３２は、通信信号５８のために通信信号フレームなどの指定された時間待つことができる（プロセスブロック１１４）。通信信号５８の一方または両方が受信されない場合、データ比較／複製３２は、通信信号５８の一方または両方がタイムアウトされたことを指示するタイムアウト信号を出力することができる。一方、両方の信号５８が指定された時間内に受信された場合、データ比較／複製３２は通信信号５８を比較することができ（プロセスブロック１００）、これは、ビット単位の一致について第１の通信信号と第２の通信信号５８を比較すること（プロセスブロック１０２）と、コード化された順序番号を比較すること（プロセスブロック１０４）と、コード化されたタイミングデータを比較すること（プロセスブロック１０６）と、送信者ＩＤを比較すること（プロセスブロック１０８）と、コード化されたエラー検査データを比較すること（プロセスブロック１１０）とを含み得る。前述のように、その通信信号の比較は、通信信号で送信されるデータにおけるエラーの検出を円滑化することができる。
【００４７】
通信信号５８の比較および／またはタイムアウト信号が出力されたかどうかに基づいて、データ比較／複製３２は、故障が第１のシリアルリンク、第２のシリアルリンク、またはその両方内に存在するかどうかを判定することができる（決定ブロック１１６）。たとえば、第１の通信信号がタイムアウトしたが、第２の通信信号はしていない場合、データ比較／複製３２は、第１のシリアルリンクが故障を有すると判定することができる。加えて、任意のエラー（たとえば、繰返し、削除、挿入、並べ直し、破損、遅延、またはなりすまし）は、シリアルリンクのうちの１つまたは複数における故障を指示し得る。たとえば、第１の通信信号５８に破損があるが第２の通信信号５８には破損がないことは、第１のシリアルリンクでの絶縁が弱くなり、浮遊電磁波などの外部干渉を受けやすいことを指示し得る。
【００４８】
さらに、いくつかの実施形態では、シリアルリンク内の故障が検出された場合、シリアルリンクの状況が、その故障に基づいて更新され得る。たとえば、故障が検出される前に、第１のシリアルリンクおよび第２のシリアルリンクの状況は「良好」に設定されるが、第１のシリアルリンク内の故障が検出された場合、第１のシリアルリンクの状況は「不良」に更新され得る。以下にさらに説明するように、他の実施形態では、その状況は、送信システム１０が動作をより賢明に管理することを可能にするために、中間状況を含み得る。たとえば、シリアルリンクは、単一のエラーのみが検出された場合、またはエラーが単に周期的に検出される場合（たとえば、送信されるあらゆる通信信号でではなく）、「部分的に不良」または「潜在的に不良」の状況を有し得る。たとえば、第１のエラーが検出された場合には、状況は「機能している」から「潜在的に不良」に更新することができ、第２のエラーが３つの通信信号の後に検出された場合には、状況は再び「不良」に更新され得る。
【００４９】
故障が検出された場合、データ比較／複製３２は、その故障に関連する状況に基づいて送信システムの動作を中止するか継続するかをより賢明に判定することができる（決定ブロック１２０）。言い換えれば、送信システム１０は、よりフォールトトレラントになり、シリアルリンク内の故障が検出されるたびに直ぐにシャットダウンしないことが可能になる。いくつかの実施形態では、動作を継続するかどうかの決定は、シリアルリンクの状況と通信信号５８に含まれる情報とに依存し得る。たとえば、第１のシリアルリンクが「機能している」が第２のシリアルリンクは「不良」であり、通信信号５８は温度測定結果を単に通信する場合、送信システム１０は、第１のシリアルリンクを介して受信された通信信号５８に単に基づいて動作を継続することができる。そのような一実施形態では、コントローラ１４は、センサ１８の測定結果の送信および受信を継続することを決定することができるが、制御コマンドの送信／受信を中止することを決定することが可能である。
【００５０】
加えて、送信システム１０の動作を継続するかどうかの決定に影響を及ぼす他の要因は、送信システム１０を使用するシステムの特質と、通信信号内のエラーの履歴とを含み得る。たとえば、キャンディ製造工場内の送信システム１０は原子力発電所よりもフォールトトレラントであることがあり、１つの「機能している」シリアルリンクおよび１つの「潜在的に不良」リンクで動作することを選択することが可能であるが、原子力発電所は２つの「機能している」シリアルリンクでのみ動作し得る。加えて、エラーの履歴がなかった場合、送信システム１０は、エラーが異常に起因するものと考え、次のエラーが検出されるまで動作を継続することができる。そのような実施形態では、送信システム１０は、不良シリアルリンクを訂正するための機会をオペレータに与えるために、設定された期間の動作を継続することを決定することができるが、故障が設定された期間の後に訂正されていない場合には動作を中止することができる。
【００５１】
さらに、動作を継続するかどうかの決定は、エラーがリアルタイムで訂正可能であるかどうかに依存し得る。たとえば、エラーが削除である、または通信信号５８およびその通信信号の両方で最上位ビットの破損が逆転された場合、送信システム１０は、訂正された通信信号５８に基づいて動作を継続することを選択することができる。通信信号５８中のエラーの訂正可能性が、以下にさらに詳細に説明される。
【００５２】
前述の例に基づいて、動作を継続するか中止するかの決定は、送信システム１０を使用するシステムの特質、シリアルリンクの状況、通信信号５８内のエラーがリアルタイムで訂正可能かどうか、通信信号５８で送信される情報の特質、エラーの履歴など、様々な要因のうちの１つまたは複数に基づいてカスタマイズされ得ることを理解されたい。そのような判定のために使用される機能は、データ比較／複製３２あるいはプロセッサ２４および／またはメモリ２６の他のシステムによって実行され得る。
【００５３】
リアルタイムでエラーを訂正するためのプロセス１２４の一実施形態が、図８に示される。プロセス１２４は、メモリ２６に記憶された、プロセッサ２４によって実行される非一時的機械可読命令またはコードによって、実装され得る。図示するように、エラーが検出された場合（プロセスブロック１２６）、そのエラー訂正が可能であるかどうかの判定が行われる（決定ブロック１２８）。エラーが訂正不可能である場合、送信システム１０は、動作を中止することができる（プロセスブロック１３２）。そのエラーが訂正可能である場合、エラーはリアルタイムで訂正され（プロセスブロック１３４）、送信システム１０は動作を継続する（プロセスブロック１３６）。
【００５４】
より具体的には、データ比較／複製３２は、エラーのタイプおよびエラーの大きさなどの様々な要因に基づいて、エラーが訂正可能であるかどうかを判定することができる。たとえば、前述の例で、エラーが単に各通信信号５８の最上位ビットを破損し、通信信号５８が逆転された場合、データ比較／複製３２は、第１の通信信号の最上位ビットを第２の通信信号の最下位ビットで置き換えることおよびその逆によって、エラーを訂正することができる。加えて、検出されたエラーが繰返しである場合、送信システム１０は、単に、前に受信された通信信号を実行することおよび次に受信された通信信号を無視することによって、エラーを訂正することができる。同様に、検出されたエラーが挿入である場合、送信システムは、挿入された通信信号５８を単に無視し、エラーを訂正することができる。一方、検出されたエラーがなりすましである場合、エラーは、訂正可能ではないことがあり、送信システム１０は、送信システム１０への侵入が検出されたので動作を中止することを選択することができる。
【００５５】
前述の例に基づいて、データ比較／複製３２は、第１の通信信号内の誤りのあるビットを第２の通信信号からの誤りのないビットで置き換えることによって、リアルタイムで第１の通信信号の１つまたは複数のビットに影響を及ぼすエラーを訂正することができる。加えて、データ比較／複製３２は、第１の通信信号を無視することによって、第１の通信信号に影響を及ぼすが第２の通信信号には影響を及ぼさないエラーを訂正することができる。さらに、データ比較／複製３２は、第１の通信信号および第２の通信信号の両方を無視することによって、第１の通信信号および第２の通信信号の両方に影響を及ぼすエラーを訂正することができる。検出されたエラーの訂正可能性は、事実に固有することがあることを理解されたい。そのような判定のために使用される機能は、データ比較／複製３２あるいはプロセッサ２４および／またはメモリ２６の他の部分によって、実行され得る。
【００５６】
さらに、本明細書に記載の技法は、エラーが検出されるとすぐに訂正される、またはそのエラーがリアルタイムで訂正されることを可能にする。たとえば、前述の例で、第１の通信信号の最上位ビットと第２の通信信号の最下位ビットがビット単位で比較される際、第１の通信信号の最上位ビットは第２の通信信号の最下位ビットで置き換えることが可能であり、前に受信された通信信号５８は受信時に実行することができ、次に受信された通信信号は受信時に無視してもよく、挿入された通信信号５８は受信時に無視することができる。
【００５７】
前述は２つのパラレルシリアルリンクを説明するが、他の実施形態は、３つ以上のパラレルシリアルリンク（たとえば、３つのまたは４つのパラレルシリアルリンク）を含み得る。３つ以上のパラレルシリアルリンクの使用は、一般に、前述の技法を使用してデータ送信システム１０の信頼性を向上させることができることが、理解されよう。
【００５８】
記載された実施形態の技術的効果は、データ送信システム１０の信頼性を増すことを含む。より具体的には、データ送信システム１０の信頼性は、並行して同情報を表す通信信号５８を各々送信するパラレルシリアルリンクを使用することによって、向上させることができる。パラレル通信信号５８の受信および比較に基づいて、シリアルリンク内の故障および通信信号内のエラーが検出され得る。その結果、送信システム１０の信頼性は、送信システム１０をよりフォールトトレラントにすることおよびリアルタイムでエラーを訂正することによって、向上させることができる。加えて、いくつかの実施形態では、故障およびエラーの検出および／または訂正は、処理能力にかかわらず、すべてのデバイスに実現される信頼性の向上を可能にする、ハードウェアの使用のみで実現され得る。
【００５９】
本明細書は、最良の形態を含めて本発明を開示するために、さらには任意のデバイスまたはシステムの製造および使用と任意の組み込まれた方法の実行とを含めて、当業者が本発明を実施することを可能にするために、例を使用する。本発明の特許性のある範囲は、本特許請求の範囲によって定義され、当業者が気が付く他の例を含み得る。そのような他の例は、それらが本特許請求の範囲の文言と異ならない構造的要素を有する場合、またはそれらが本特許請求の範囲の文言とごくわずかな差を有する同等の構造的要素を含む場合、本特許請求の範囲内にあるものとする。
【符号の説明】
【００６０】
１０  データ送信システム
１２  工業用制御システム
１４  コントローラ
１５  データ送信サブシステム
１６  タービン
１８  センサ
２０  バルブ
２２  ポンプ
２４  プロセッサ
２６  メモリ
３０  データＩ／Ｏ
３２  データ比較／複製
３４  Ｉ／Ｏポート
３６  Ｉ／Ｏポート
３８  ルート
４０  パラレルシリアル送受信機
４２  パラレルシリアル送受信機
４６  Ｒコア
４８  Ｓコア
５０  Ｔコア
５２  第１の送信システム
５４  第２の送信システム
５６  第３の送信システム
５８  通信信号
６０  通信信号データ
６２  順序番号
６４  タイミングデータ
６６  送信者ＩＤ
６８  エラー検査データ
【図１】
2015130668.tif 000003
【図２】
2015130668.tif 000004
【図３】
2015130668.tif 000005
【図４】
2015130668.tif 000006
【図５】
2015130668.tif 000007
【図６】
2015130668.tif 000008
【図７】
2015130668.tif 000009
【図８】
2015130668.tif 000010