(57)【要約】  一実施形態では、ネットワークが、複数のリニアバスノードおよび複数のリングインタフェースユニットを備える。リニアバスノードはそれぞれ、複数のリングインタフェースユニットの少なくとも１つを用いて、複数のリングそれぞれに通信可能に結合される。別の実施形態では、ネットワークが、リングおよび複数のノードを備える。複数のノードはそれぞれ、リニアバスを介してデータを通信するように適合される。ネットワークは、複数のリングインタフェースユニットをさらに備える。リングインタフェースユニットはそれぞれ、リングにそれぞれのノードを通信可能に結合する。
2007525107.tif 000002
【特許請求の範囲】
【請求項１】
リニアバスを介してデータを通信するように適合されたノード（１０６、１０８）と、
前記ノードと通信し、前記ノードをリング（１１２）に通信可能に結合するためのリングインタフェースユニット（１２０）とを備える機器。
【請求項２】
リニアバスを介してデータを通信するように適合されたノード（１０６、１０８）と、
前記ノードと通信し、前記ノードをリング（１１２）に通信可能に結合するためのリングインタフェースユニット（１２０）とを備える機器。
【請求項３】
前記リングインタフェースユニットが、前記複数のリニアバスではなく前記複数のリングに前記ノードを通信可能に結合する、請求項２に記載の機器。
【請求項４】
前記リングインタフェースユニットが、前記ノードを各リングの第１および第２の部分（１１４）に通信可能に結合することによって、前記複数のリングそれぞれに前記ノードを通信可能に結合する、請求項２に記載の機器。
【請求項５】
前記ノードがデータを送信するとき、前記リングインタフェースユニットが、前記複数のリングそれぞれの前記第１および第２の部分を介して前記データを通信する、請求項４に記載の機器。
【請求項６】
リニアバスノード（１０６、１０８）と、
前記リニアバスノードをリング（１１２）に通信可能に結合するためのリングインタフェースユニット（１２０）とを備える機器。
【請求項７】
リング（１１２）と、
それぞれが、リニアバスを介してデータを通信するように適合された複数のノード（１０６、１０８）と、
前記リングにそれぞれのノードをそれぞれが通信可能に結合する複数のリングインタフェースユニット（１２０）とを備えるネットワーク（１００）。
【請求項８】
それぞれが、複数のリニアバスを介してデータを通信するように適合された複数のノード（１０６、１０８）と、
複数のリング（１１２）にそれぞれのノードをそれぞれが通信可能に結合する複数のリングインタフェースユニット（１２０）とを備えるネットワーク（１００）。
【請求項９】
複数のリニアバスノード（１０６、１０８）と、
複数のリングインタフェースユニット（１２０）とを備え、
前記リニアバスノードがそれぞれ、前記複数のリングインタフェースユニットの少なくとも１つを使ってリング（１１２）に通信可能に結合されるネットワーク（１００）。
【請求項１０】
複数のリニアバスノード（１０６、１０８）と、
複数のリングインタフェースユニット（１２０）とを備え、
前記リニアバスノードがそれぞれ、前記複数のリングインタフェースユニット（１２０）の少なくとも１つを使って複数のリング（１１２）のそれぞれに通信可能に結合されるネットワーク（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によって本明細書に組み込まれている、２００３年１１月１９日に出願した米国仮出願第６０／５２３８３９号に関連し、その出願日付の利益を主張する。
以下の説明は、概して通信システムに関し、詳細には、分散型耐故障システムに関する。
【背景技術】
【０００２】
故障の結果、１人または複数の負傷または死亡者が生じる可能性があるアプリケーションにおいて、分散型耐故障通信システムが通常、用いられる。このようなアプリケーションは、本明細書において、「安全性が重大なアプリケーション」と呼ばれる。安全性が重大なアプリケーションの一例は、飛行機または他の航空もしくは地上車両に含まれるセンサおよびアクチュエータを監視し管理するのに用いられるシステム内にある。
【０００３】
航空および他の車両用アプリケーションにおいて、通常は、このような分散型耐故障システムの重量およびコストを最小限に抑えることが望ましい。伝統的な耐故障通信アーキテクチャ（たとえば、三重モジュール式冗長や四重冗長アーキテクチャ）は、このようなアーキテクチャにおいてもたらされる冗長な通信経路の追加コストおよび／または追加重量のせいで、個々のシャーシまたは機器部では対応できない程の、このような耐故障システムにおける重量およびコストに関わるかなりの不利益を被る。
【０００４】
一般に、航空アプリケーションにおける使用に対して検討される１つのアーキテクチャは、時間駆動アーキテクチャ（ＴＴＡ）である。ＴＴＡシステムにおいて、多数のノードが、たとえば時間駆動プロトコル／Ｃ（ＴＴＰ／Ｃ）を用いて、２つの複製高速通信チャネルを介して相互に通信する。いくつかの実施形態では、このようなＴＴＡシステム内のノードの少なくとも１つが、たとえば時間駆動プロトコル／Ａ（ＴＴＰ／Ａ）を用いて、２つの複製低速直列通信チャネルを介して、１つまたは複数のセンサおよび／またはアクチュエータに結合される。ＴＴＡ、ＴＴＰ／Ｃ、およびＴＴＰ／Ａは、ＴＴＴｅｃｈ  Ｃｏｍｐｕｔｅｒｔｅｃｈｎｉｋ  ＡＧによって推奨されている仕様に記載されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、ＴＴＡシステムでは、多数のノードが、ＴＴＰ／Ｃプロトコルに従って、スター型トポロジまたはバストポロジを有する通信ネットワークを用いてすべてネットワーク接続される。同様に、ノードならびにそのノードと通信するセンサおよび／またはアクチュエータが、ＴＴＰ／Ａプロトコルに従って、リニアバストポロジを用いてすべてネットワーク接続される。スター型トポロジ（ここでは、「スター型ネットワーク」とも呼ばれる）を有するネットワークは、多数の冗長なデータ経路をもたらすが、スター型ネットワークは通常、実装するのに大規模な、より多くの配線を必要とし、その結果、ノードの間の距離が増すと、このようなスター型ネットワークのコストおよび重量が増す。リニアバストポロジ（ここでは、「リニアバストポロジ」とも呼ばれる）を有するネットワークは通常、実装するのに、スター型ネットワークよりはるかに少ないワイヤを必要とする。ただし、リニアバスネットワークは、単一障害点の影響を受けやすいので、高い信頼性を必要とする、安全性が重大な一部のアプリケーションには適さない場合がある。
【課題を解決するための手段】
【０００６】
一実施形態では、機器が、複数のリニアバスを介してデータを通信するように適合されたノードと、このノードと通信し、ノードを複数のリングに通信可能に結合するためのリングインタフェースユニットとを備える。
【０００７】
別の実施形態では、機器が、リニアバスノードと、リニアバスノードを複数のリングに通信可能に結合するためのリングインタフェースユニットとを備える。
別の実施形態では、ネットワークが、複数のノードを備える。複数のノードはそれぞれ、複数のリニアバスを介してデータを通信するように適合される。ネットワークは、複数のリングインタフェースユニットをさらに備える。リングインタフェースユニットはそれぞれ、複数のリングにそれぞれのノードを通信可能に結合する。
【０００８】
別の実施形態では、ネットワークが、複数のリニアバスノードおよび複数のリングインタフェースユニットを備える。リニアバスノードはそれぞれ、複数のリングインタフェースユニットの少なくとも１つを用いて、複数のリングそれぞれに通信可能に結合される。
【０００９】
別の実施形態では、機器が、リニアバスを介してデータを通信するように適合されたノードと、このノードと通信し、ノードをリングに通信可能に結合するためのリングインタフェースユニットとを備える。
【００１０】
特許請求の範囲に記載されている本発明の１つまたは複数の実施形態の詳細が、添付の図面および以下の説明において説明される。こうした説明、図面、および特許請求の範囲から、他の特徴および利点が明らかになるであろう。
【００１１】
様々な図面における同じ参照番号および名称は、同じ要素を示す。
【発明を実施するための最良の形態】
【００１２】
図１は、通信ネットワーク１００の一実施形態の上位ブロック図である。ネットワーク１００の実施形態は、安全性が重大なアプリケーションにおいて（たとえば、航空または自動車用アプリケーションにおいて）使われる分散型耐故障システムにおける、そのシステムとの、またはそのシステムとしての使用に適している。図１に示される実施形態において、ネットワーク１００は、マスター／スレーブＴＴＰ／Ａプロトコルアーキテクチャを用いて実装される。ネットワーク１００は、１つのマスターノードペア１０２（ここでは、「マスターペア」１０２とも呼ばれる）および多数のスレーブノードペア１０４（ここでは、「スレーブペア」１０２とも呼ばれる）を含む。図１に示される実施形態では、ネットワーク１００を介してマスターペア１０２と通信する３つのスレーブノードペア１０４（個別に「スレーブペアＡ」、「スレーブペアＢ」、および「スレーブペアＣ」で示す）がある。他の実施形態では、他の数のサブシステムが使われる。
【００１３】
図１に示される実施形態において、各ノードペア１０２、１０４は、２つの冗長ノードを含む。他の実施形態では、ネットワーク１００内のノードペア１０２および／または１０４の１つまたは複数によって実施される機能は、異なる数のノードを有して（たとえば、単一のノードまたは３つ以上のノードを使って）実装される。マスターペア１０２は、２つのマスターノード１０６を含む。マスターノード１０６はここでは、それぞれ、個別に「マスターノードＡ」および「マスターノードＢ」と呼ばれる。各マスターノード１０６は、マスターノード向けにＴＴＰ／Ａ仕様において指定された通信および制御機能を実装する。一実装形態では、マスターノード１０６の１つは、１次マスターノードと指定され、そうすることが可能な場合は、ネットワーク１００のためにマスターノード処理を実施する。このような実装において、他方のマスターノード１０６は、２次またはバックアップマスターノード１０６と指定される。１次マスターノードが、ネットワーク１００のためにマスターノード処理を実施中（ここでは、「アクティブ」モードで動作中とも呼ばれる）の間、２次マスターノード１０６は、「シャドー」モードで動作し、このモードでは、２次マスターノード１０６は、ネットワーク１００内の通信を監視し、そうすることによって、１次マスターノードがマスターノード処理を実施することが不可能になった場合には、２次マスターノード１０６が、ネットワーク１００のためのマスターノード処理の実施を直ちに引き継ぐことが可能になる。他の実装形態では、他の二重冗長性方式が用いられる。
【００１４】
スレーブペア１０４はそれぞれ、２つのスレーブノード１０８を含む。各スレーブペア１０８のスレーブノード１０８はここでは、それぞれ個別に「スレーブノードＡ」および「スレーブノードＢ」と呼ばれる。各スレーブノード１０８は、スレーブトランスデューサノード向けにＴＴＰ／Ａ仕様で指定された通信および制御機能を実装する。各スレーブペア１０４の各スレーブノードＡ、Ｂは、少なくとも１つのトランスデューサ１１０に結合される。少なくとも１つのトランスデューサ１１０は、たとえば、少なくとも１つのセンサおよび／またはアクチュエータを含む。図１に示される実施形態において、各スレーブペア１０４は、２つの冗長トランスデューサ１１０を含み、一方のトランスデューサ１１０（ここでは、「トランスデューサＡ」とも呼ばれる）は、スレーブノードＡに結合され、もう一方のトランスデューサ１１０（ここでは、「トランスデューサＢとも呼ばれる」）は、スレーブノードＢに結合されている。マスターノードペア１０２（より具体的には、マスターノードＡ、Ｂ）は、センサ（トランスデューサ１１０はセンサを含む）によって検出された情報を受信するため、かつ／またはアクチュエータ（トランスデューサ１１０はアクチュエータを含む）を作動させるために、スレーブペア１０４（より具体的には、スレーブノードＡ、Ｂ）と通信する。このような実装において、マスターノードペア１０２とスレーブノードペア１０４の間のデータ通信（たとえば、フレームの形での通信）は、ＴＴＰ／Ａプロトコルに従って行われる。
【００１５】
図１に示される実施形態の一実装形式では、各スレーブペア１０４に対して、スレーブノード１０８の１つが、１次スレーブノードと指定され、そうすることが可能な場合は、そのスレーブペア１０４のためにスレーブノード処理を実施する。このような実装において、各スレーブサブシステム１０４用の他のスレーブノードは、２次またはバックアップスレーブノードと指定される。１次スレーブノードが、所与のスレーブペア１０４のためにスレーブノード処理を実施中（ここでは、「アクティブ」モードで動作中とも呼ばれる）の間、２次スレーブノードは、「待機」モードで動作し、このモードでは、２次スレーブノードは、ネットワーク１００内の通信を監視し、そうすることによって、１次スレーブノードがスレーブノード処理を実施することが不可能になった場合には、２次スレーブノードが、そのスレーブペア１０４のためのスレーブノード処理の実施を直ちに引き継ぐことが可能になる。他の実装形態では、他の二重冗長性方式が用いられる。
【００１６】
マスターペア１０２は、２つの通信チャネル１１２を介してスレーブサブシステム１０４と通信する。通信チャネル１１２はそれぞれ、各ノードを、そのノードの２つの隣接ノードに接続する多重双方向直列リンク１１４を含むリングとして実装される。２つのチャネル１１２はここでは、それぞれ、個別に「チャネル０」または「リング０」および「チャネル１」または「リング１」とも呼ばれる。たとえば、図１に示されるように、リング０の一部であるリンク１１４は、マスターノードＡを、マスターノードＢに時計回り方向に結合し、リング０の一部である別のリンク１１４は、マスターノードＡを、スレーブペアＣのスレーブノードＡに反時計回り方向に結合する。２つのリングが図１に示されているが、他の実施形態では、より多くのまたはより少ないリングが使われる（たとえば、図１１に示される実施形態では、１つのリングが使われる）ことが理解されるべきである。
【００１７】
図１に示される具体的な実施形態において、ノード１０６、１０８は、ＴＴＰ／Ａリニアバス構成要素を使って実装される。つまり、ノード１０６、１０８はそれぞれ、通常はＴＴＰ／Ａノードを１つまたは複数のリニアバスに結合するのに使われるＴＴＰ／Ａ構成要素を使って実装される。図１に示される具体的な実施形態において、各ノード１０６、１０８は、４つのリニアバスを介して通信するように適合される。各リニアバスノードは、１対のリングインタフェースユニット１２０を用いてリングに結合される。このような各リニアバスノードに対して、一方のリングインタフェースユニット１２０（ここでは、個別にリングインタフェースユニット１２０−０と呼ばれる）が、ノードをリング０に結合し、他方のリングインタフェースユニット（ここでは、個別にリングインタフェースユニット１２０−１と呼ばれる）が、ノードをリング１に結合する。このようにして、ＴＴＰ／Ａリニアバス構成要素は、図１の二重リングバストポロジにおいて使われ得る。より全般的には、リングインタフェースユニット１２０は、このようなリニアバス構成要素を利用して達成され得る完全性および／または信頼性を向上させるために、このようなトポロジにおける使用以外のためには設計されていないリニアバス構成要素を使って、リングバストポロジ（または同様のトポロジ）を実装するのに使われ得る。
【００１８】
各リングインタフェースユニット１２０は、図１で、対応するノードとは別個のものとして示されているが、他の実施形態ではリングインタフェースユニット１２０は、対応するノードに統合される（たとえば、ＴＴＰ／Ａインタフェース構成要素が、ネットワーク１００のリングバストポロジを直接サポートする場合）。また、他の実施形態では、本明細書において所与のリニアバスノード向けの１対のリングインタフェースユニット１２０−０、１２０−１によって実施されるものとして記載される機能は、単一のリングインタフェースユニットを用いて実装される。
【００１９】
各マスターノード１０６は、第２の上位層ネットワーク１１６（図１に示される実施形態では、ＴＴＰ／Ｃネットワーク１１６）へのゲートウェイとしても働く。マスターノード１０６は、ネットワーク１１６内のノード（図１には示さず）と、２つの複製高速チャネル１１８を介して通信する。たとえば、このような実施形態の一実装形式において、ネットワーク１１６は、バストポロジまたはスター型トポロジを用いて実装され、高速チャネル１１８は、イーサネット（登録商標）ネットワークプロトコルなどのローカルエリアネットワークプロトコルを用いて実装される。
【００２０】
動作する際、図１に示されるネットワーク１００の実施形態におけるノード１０６、１０８の１つ（ここでは、「送信ノード」と呼ばれる）が、ネットワーク１００内の他のノードにデータを（たとえば、１つまたは複数のデータフレームの形で）送信する際、送信ノードは、４つの別々のデータ経路に沿って同じデータを送信する。ＴＴＰ／Ａプロトコルを用いて実装される、図１に示される具体的な実施形態において、ネットワーク１００内のノードは、合意がとれている時分割多元接続（ＴＤＭＡ）スケジュールに従って送信する。送信ノードは、リング０の周囲を時計回りおよび反時計回り両方向で、かつリング１の周囲を時計回りおよび反時計回り両方向でデータを送信する。このような実施形態において、あるノードによる各送信に対して、ネットワーク内の他のノードの１つが、その送信用の「終端」または「宛先」ノードとして指定される。送信ノードおよび指定された終端ノードは、リング０、１を「切断する」。ネットワーク１００内の他のノード（つまり、送信ノードおよび終端ノード以外のノード）はそれぞれ、リピータとして働き、そのノードによって受信されたどのデータも、ネットワーク１００内の次のノードに、データが受信されたのと同じリングに沿って転送する。
【００２１】
一例では、マスターノードＡが送信ノードであり、スレーブペアＢのスレーブノードＡが、その送信用の終了ノードである。このような例において、マスターノードＡは、結合されているリングインタフェースユニット１２０−０を経由して、時計回りおよび反時計回り両方向でリング０に沿って送信し、リングインタフェースユニット１２０−１を経由して、時計回りおよび反時計回り両方向でリング１に沿って送信する。反時計回り方向でリング０に沿ってマスターノードＡから送信されるデータは、スレーブペアＣのスレーブノードＡに結合されたリングインタフェースユニット１２０−０によって最初に受信され、このインタフェースユニットが、受信したデータを、リング０に沿って反時計回り方向でスレーブペアＣのスレーブノードＢに転送する。リングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＣのスレーブノードＡにも転送する。スレーブペアＣのスレーブノードＢに結合されたリングインタフェースユニット１２０−０は、リング０からデータを受信し、受信したデータを、リング０に沿って反時計回り方向で、スレーブペアＢのスレーブノードＡに転送する。リングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のために、スレーブペアＣのスレーブノードＢにも転送する。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−０は、リング０からデータを受信する。スレーブペアＢのスレーブノードＡは、この例では終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−０は、受信したデータをそれ以上、リング０に沿って反時計回り方向で転送しない。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＢのスレーブノードＡに転送する。
【００２２】
同様の処理が、リング１に沿って反時計回り方向で起こる。反時計回り方向でリング１に沿ってマスターノードＡから送信されるデータは、スレーブペアＣのスレーブノードＡに結合されたリングインタフェースユニット１２０−１によって最初に受信され、このインタフェースユニットが、受信したデータを、リング１に沿って反時計回り方向でスレーブペアＣのスレーブノードＢに転送する。リングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＣのスレーブノードＡにも転送する。スレーブペアＣのスレーブノードＢに結合されたリングインタフェースユニット１２０−１は、リング１からデータを受信し、受信したデータを、リング１に沿って反時計回り方向で、スレーブペアＢのスレーブノードＡに転送する。リングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のために、スレーブペアＣのスレーブノードＢにも転送する。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−１は、リング１からデータを受信する。スレーブペアＢのスレーブノードＡは、この例では終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−１は、受信したデータをそれ以上、リング１に沿って反時計回り方向で転送しない。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＢのスレーブノードＡに転送する。
【００２３】
時計回り方向でリング０に沿ってマスターノードＡから送信されるデータは、マスターノードＢに結合されたリングインタフェースユニット１２０−０によって最初に受信され、このインタフェースユニットが、受信したデータを、リング０に沿って時計回り方向でスレーブペアＡのスレーブノードＡに転送する。リングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにマスターノードＢにも転送する。スレーブペアＡのスレーブノードＡに結合されたリングインタフェースユニット１２０−０は、リング０からデータを受信し、受信したデータを、リング０に沿って時計回り方向で、スレーブペアＡのスレーブノードＢに転送する。リングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＡのスレーブノードＡにも転送する。スレーブペアＡのスレーブノードＢに結合されたリングインタフェースユニット１２０−０は、リング０からデータを受信し、受信したデータを、リング０に沿って時計回り方向で、スレーブペアＢのスレーブノードＢに転送する。リングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＡのスレーブノードＢにも転送する。スレーブペアＢのスレーブノードＢに結合されたリングインタフェースユニット１２０−０は、リング０からデータを受信し、受信したデータを、リング０に沿って時計回り方向で、スレーブペアＢのスレーブノードＡに転送する。リングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のために、スレーブペアＢのスレーブノードＢにも転送する。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−０は、リング０からデータを受信する。スレーブペアＢのスレーブノードＡは、この例では終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−０は、受信したデータをそれ以上、リング０に沿って時計回り方向で転送しない。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−０は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＢのスレーブノードＡに転送する。
【００２４】
同様の処理が、リング１に沿って時計回り方向で起こる。時計回り方向でリング１に沿ってマスターノードＡから送信されるデータは、マスターノードＢに結合されたリングインタフェースユニット１２０−１によって最初に受信され、このインタフェースユニットが、受信したデータを、リング１に沿って時計回り方向でスレーブペアＡのスレーブノードＡに転送する。リングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにマスターノードＢにも転送する。スレーブペアＡのスレーブノードＡに結合されたリングインタフェースユニット１２０−１は、リング１からデータを受信し、受信したデータを、リング１に沿って時計回り方向で、スレーブペアＡのスレーブノードＢに転送する。リングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＡのスレーブノードＡにも転送する。スレーブペアＡのスレーブノードＢに結合されたリングインタフェースユニット１２０−１は、リング１からデータを受信し、受信したデータを、リング１に沿って時計回り方向で、スレーブペアＢのスレーブノードＢに転送する。リングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＡのスレーブノードＢにも転送する。スレーブペアＢのスレーブノードＢに結合されたリングインタフェースユニット１２０−１は、リング１からデータを受信し、受信したデータを、リング１に沿って時計回り方向で、スレーブペアＢのスレーブノードＡに転送する。リングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のために、スレーブペアＢのスレーブノードＢにも転送する。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−１は、リング１からデータを受信する。スレーブペアＢのスレーブノードＡは、この例では終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−０は、受信したデータをそれ以上、リング１に沿って時計回り方向で転送しない。スレーブペアＢのスレーブノードＡに結合されたリングインタフェースユニット１２０−１は、受信したデータを、そうすることによってＴＴＰ／Ａプロトコル処理のためにスレーブペアＢのスレーブノードＡに転送する。
【００２５】
結果として、データが送信ノード（この例では、マスターノードＡ）から送信されると、データは、４つのデータ経路、すなわちリング０に沿った時計回りのデータ経路、リング０に沿った反時計回りのデータ経路、リング０に沿った時計回りのデータ経路、およびリング１に沿った反時計回りのデータ経路に沿って送信される。ネットワーク１００内に故障がない場合、終端ノード（この例では、スレーブペアＢのスレーブノードＡ）は、送信ノードによって送信されたデータの４つのインスタンスを（各々を、４つのデータ経路それぞれから）受信し、本実施形態では、受信されるデータは、すべて同じであるべきである。４つの別々のデータ経路により、ネットワーク１００のノードの間での通信の信頼性および冗長性が高まる。たとえば、４つの別々のデータ経路を有する、図１に示されるネットワーク１００は、１つのビザンチン故障に耐えることが可能である。
【００２６】
図２は、図１に示されるネットワーク１００における使用に適したマスターノード１０６の一実施形態のブロック図である。マスターノード１０６は、アプリケーション２０２を実行するホスト２００を含む。マスターノード１０６の高水準機能を実装するアプリケーション２０２。図２に示される実施形態において、ホスト２００は、アプリケーション２０２を実行するプログラム可能なプロセッサ２０４を使って実装される。ホスト２００は、このような実施形態において、アプリケーション２０２およびアプリケーション２０２によって使われるデータ構造２０８を格納するメモリ２０６を含む。たとえば、このような実施形態の一実装形式において、アプリケーション２０２は、飛行機内のドアを制御し、かつ／または監視するサブシステムなど、車両のサブシステムを監視し、かつ／または制御する制御アプリケーションである。このような実装において、スレーブノード１０８に結合されたトランスデューサ１１０は、飛行機内のドアを監視し、かつ／または制御するのに使われる。
【００２７】
マスターノード１０６は、ホスト２００が適切な通信プロトコルを用いてネットワーク１００のチャネル１１２を介してマスターノード１０６およびスレーブノード１０８との間でデータを通信するためのプロトコルインタフェース２１０を含む。プロトコルインタフェース２１０は、プロトコルインタフェース２１０によってサポートされる特定の通信プロトコルを実装する多数のプロトコルコントローラ２１２を含む。図２に示される実施形態において、２つのプロトコルコントローラ２１２が、各マスターノード１０６中で使われる。プロトコルコントローラ２１２の一方は、リング０を介して通信するのに使われ、ここでは、「プロトコルコントローラ」２１２−０と呼ばれる。もう一方のプロトコルコントローラ２１２は、リング１を介して通信するのに使われ、ここでは、「プロトコルコントローラ」２１２−１と呼ばれる。図２に示される実施形態において、プロトコルコントローラ２１２は、ＴＴＰ／Ａプロトコルを実装する（ただし、他の実施形態では他のプロトコルが用いられる）。本実施形態では、プロトコルインタフェース２１０はここでは、「ＴＴＰ／Ａプロトコルインタフェース」２１０とも呼ばれ、プロトコルコントローラ２１２はここでは、「ＴＴＰ／Ａプロトコルコントローラ」２１２と呼ばれる。各ＴＴＰ／Ａプロトコルコントローラ２１２は、一実装形態では、ＴＴＰ／Ａプロトコルを実装するための適切なプログラム命令を有してプログラミングされている、プログラム可能なプロセッサ（図２には示さず）を含む。
【００２８】
プロトコルインタフェース２１０は、ホスト２００とプロトコルコントローラ２１２の間のインタフェースとして働く通信ネットワークインタフェース（ＣＮＩ）２１４も含む。図２に示される実施形態において、ＣＮＩ２１４は、多数のデュアルポート型メモリ２１６（ここでは、「ＣＮＩメモリ」２１６とも呼ばれる）を含む。１つのＣＮＩメモリ２１６が、適切なアドレス、データ、ならびに制御バスおよびライン（図２には示さず）を使って、ホスト２００をプロトコルコントローラ２１２−０に結合するのに使われる。このＣＮＩメモリ２１６はここでは、個別に「ＣＮＩメモリ」２１６−０と呼ばれる。ホスト２００は、１つのポートを使って、ＣＮＩメモリ２１６−０に対して読書きを行い、プロトコルコントローラ２１２−０は、他のポートを使って、ＣＮＩメモリ２１６−０に対して読書きを行う。他のＣＮＩメモリ２１６は、適切なアドレス、データ、ならびに制御バスおよびライン（図２には示さず）を使って、ホスト２００をプロトコルコントローラ２１２−１に結合するのに使われ、ここでは、個別に「ＣＮＩメモリ」２１６−１と呼ばれる。ホスト２００は、一方のポートを使って、ＣＮＩメモリ２１６−１に対して読書きを行い、プロトコルコントローラ２１２−１は、他方のポートを使って、ＣＮＩメモリ２１６−１に対して読書きを行う。このような実施形態の一実装形式において、各ＣＮＩメモリ２１６は、デュアルポート型スタティックランダムアクセスメモリ（ＳＲＡＭ）を使って実装される（ただし、他の実施形態および実装形態では、他のタイプのメモリが使われる）。
【００２９】
図２に示される具体的な実施形態において、マスターノード１０６は、プロトコルコントローラ２１２と１対のリニアバスの間の物理層インタフェースの提供用に設計されたドライバ２２０を含む。ただし、二重リングを使用するネットワーク１００内で使われる際、ノード１０６は、リングインタフェースユニット１２０を使って、二重リングに結合される。ネットワーク１００内で使われる際、１対のドライバ２２０は、それぞれのリングインタフェースユニット１２０に結合され、このインタフェースユニットは、マスターノード１０６を、ネットワーク１００のそれぞれのリングに結合する。図２に示される実施形態において、１対のドライバ２２０（それぞれ、図２では、参照番号「２２０−０」を使って個別に識別される）は、プロトコルコントローラ２１２−０をリングインタフェースユニット１２０−０に結合する。他方のドライバペア２２０（それぞれ、図２では、参照番号「２２０−１」を使って個別に識別される）は、プロトコルコントローラ２１２−１をリングインタフェースユニット１２０−１に結合する。一実装形態では、ドライバ２２０は、万能非同期受信機／送信機（ＵＡＲＴ）を使って実装される。
【００３０】
ホスト２００上で実行されるアプリケーション２０２も、図１の高水準ネットワーク１１６のノードと、適切な通信プロトコルを用いるより高水準なプロトコルインタフェース２２２を介して通信する。より高水準なプロトコルインタフェース２２２は、プロトコルインタフェース２２２によってサポートされる特定の通信プロトコルを実装するより高水準なプロトコルコントローラ２２４を含む。図２に示される実施形態において、より高水準なプロトコルコントローラ２２４は、ＴＴＰ／Ｃプロトコルを実装する（ただし、他の実施形態では他のプロトコルが用いられる）。本実施形態において、プロトコルインタフェース２２２はここでは、「ＴＴＰ／Ｃプロトコルインタフェース」２２２とも呼ばれ、プロトコルコントローラ２２４はここでは、「ＴＴＰ／Ｃプロトコルコントローラ」２２４と呼ばれる。ＴＴＰ／Ｃプロトコルコントローラ２２４は、一実装形態では、ＴＴＰ／Ｃプロトコルを実装するのに適したプログラム命令を有してプログラミングされた、プログラム可能なプロセッサ（図２には示さず）を含む。
【００３１】
プロトコルインタフェース２２２は、ホスト２００とプロトコルコントローラ２２４の間のインタフェースとして働く第２の通信ネットワークインタフェース（ＣＮＩ）２２６も含む。図２に示される実施形態において、ＣＮＩ２２６は、デュアルポート型メモリ２２８（ここでは、「ＣＮＩメモリ」２２８とも呼ばれる）を含む。ＣＮＩメモリ２２８は、適切なアドレス、データ、ならびに制御バスおよびライン（図２には示さず）を使って、ホスト２００をプロトコルコントローラ２２４に結合するのに使われる。ホスト２００は、一方のポートを使って、ＣＮＩメモリ２２８に対して読書きを行い、プロトコルコントローラ２２４は、もう一方のポートを使って、ＣＮＩメモリ２２８に対して読書きを行う。このような実施形態の一実装形式において、ＣＮＩメモリ２２８は、デュアルポート型スタティックランダムアクセスメモリ（ＳＲＡＭ）を使って実装される（ただし、他の実施形態および実装形態では、他のタイプのメモリが使われる）。
【００３２】
１対のドライバ２３０が、ＴＴＰ／Ｃプロトコルコントローラ２２４と、図１のより高速のチャネル１１８との間の物理層インタフェースとして働く。一実装形態では、ドライバ２３０は、イーサネット（登録商標）物理層装置を使って実装される。
【００３３】
図３は、図１に示されるネットワーク１００における使用に適したスレーブノード１０８の一実施形態のブロック図である。各スレーブノード１０８は、スレーブノード１０８に、そのスレーブノード１０８が結合されている少なくとも１つのトランスデューサ１１０と通信させるトランスデューサインタフェース３０２を含む。図３に示される具体的な実施形態において、トランスデューサインタフェース３０２は、トランスデューサ１１０とスレーブノード１０８の間の物理インタフェースおよび接続を実現する物理トランスデューサインタフェース３０４を含む。また、図３に示される実施形態において、トランスデューサインタフェース３０２は、物理トランスデューサインタフェース３０６に結合されたトランスデューサ１１０のタイプ向けの制御および／または監視機能を実装すると共に通信ネットワークインタフェース３１０（後で説明される）と対話する高水準トランスデューサインタフェース３０６を含む。図３に示される実施形態において、マスターノード１０６がそのスレーブノード１０８と通信するためのチャネル１１２（つまり、リング０、１）それぞれに対して、別々の高水準トランスデューサインタフェース３０６が提供される。つまり、チャネル０（ここでは、個別に「高水準トランスデューサインタフェース」３０６−０と呼ばれる）のために、１つの高水準トランスデューサインタフェース３０６が提供され、チャネル１（ここでは、個別に「高水準トランスデューサインタフェース」３０６−１と呼ばれる）のために、別の高水準トランスデューサインタフェース３０６が提供される。
【００３４】
スレーブノード１０８は、チャネル１１２を介してトランスデューサインタフェース３０２とマスターノード１０６の間でデータを通信するプロトコルインタフェース３０８も含む。図３に示される実施形態において、各チャネル１１２ごとに、別々のプロトコルインタフェース３０８が提供される。つまり、１つのプロトコルインタフェース３０８（ここでは、個別に「プロトコルインタフェース」３０８−０と呼ばれる）は、チャネル０と通信し、別のプロトコルインタフェース３０８（ここでは、個別に「プロトコルインタフェース」３０８−１と呼ばれる）は、チャネル１と通信する。図３に示される実施形態において、プロトコルインタフェース３０８は、ＴＴＰ／Ａスレーブプロトコルを実装する。
【００３５】
通信ネットワークインタフェース（ＣＮＩ）３１０が、高水準トランスデューサインタフェース３０６とプロトコルインタフェース３０８の間のインタフェースとして働く。図３に示される実施形態において、ＣＮＩ３１０は、多数のメモリ３１２（ここでは、「ＣＮＩメモリ」３１２とも呼ばれる）を使って実装される。１つのＣＮＩメモリ３１２が、高水準トランスデューサインタフェース３０６−０およびプロトコルインタフェース３０８−０を相互に結合するのに使われる。このＣＮＩメモリ３１２はここでは、個別に「ＣＮＩメモリ３１２−０」）と呼ばれる。別のＣＮＩメモリ３１２が、高水準トランスデューサインタフェース３０６−１およびプロトコルインタフェース３０８−１を相互に結合するのに使われる。このＣＮＩメモリ３１２はここでは、個別に「ＣＮＩメモリ３１２−１」）と呼ばれる。
【００３６】
図３に示される実施形態において、高水準トランスデューサインタフェース３０６−０およびプロトコルインタフェース３０８−０は、本明細書において、高水準トランスデューサインタフェース３０６−０およびプロトコルインタフェース３０８−０によって実施されるものとして記載される機能を実現するのに適したプログラム命令を有するプログラム可能なプロセッサ（図示せず）をプログラミングすることによって実装される。高水準トランスデューサインタフェース３０６−１およびプロトコルインタフェース３０８−１は、本明細書において、高水準トランスデューサインタフェース３０６−１およびプロトコルインタフェース３０８−１によって実施されるものとして記載される機能を実現するのに適したプログラム命令を有する別のプログラム可能なプロセッサ（図示せず）をプログラミングすることによって実装される。このような実施形態において、ＣＮＩメモリ３１２はそれぞれ、別々のメモリ素子を使って実装される。このような実施形態の一実装形式において、各ＣＮＩメモリ３１２は、それぞれのプログラム可能なプロセッサ内部に統合されたメモリを使って実装される。このような実施形態の別の実装では、各ＣＮＩメモリ３１２は、適切なアドレス、データ、ならびに制御バスおよびラインを使って、それぞれのプログラム可能なプロセッサに結合された外部メモリ素子を使って実装される。
【００３７】
図３に示される具体的な実施形態において、スレーブノード１０８は、プロトコルインタフェース３０８と１対のリニアバスの間の物理層インタフェースの提供用に設計されたドライバ３１４を含む。ただし、二重リングを使用するネットワーク１００内で使われる際、ノード１０８は、リングインタフェースユニット１２０を使って、二重リングに結合される。ネットワーク１００内で使われる際、１対のドライバ３１４が、それぞれのリングインタフェースユニット１２０に結合され、このインタフェースユニットは、スレーブノード１０８を、ネットワーク１００のそれぞれのリングに結合する。図３に示される実施形態において、１対のドライバ３１４（それぞれ、図３では、参照番号「３１４−０」を使って個別に識別される）は、プロトコルインタフェース３０８−０およびリングインタフェースユニット１２０−０を結合する。他方のドライバペア３１４（それぞれ、図２では、参照番号「３１４−１」を使って個別に識別される）は、プロトコルインタフェース３０８−１およびリングインタフェースユニット１２０−１を結合する。一実装形態では、ドライバ３１４は、万能非同期受信機／送信機（ＵＡＲＴ）を使って実装される。
【００３８】
図４は、リングインタフェースユニット１２０の一実施形態のブロック図である。リングインタフェースユニット１２０の実施形態は、それぞれ図２、３に示されるノード１０６、１０８での使用に適している。リングインタフェースユニット１２０は、リングインタフェースユニット１２０が含まれているノードそれぞれのドライバおよびプロトコルインタフェースに、リングインタフェースユニット１２０を結合する信号条件および経路指定モジュール４０２を含む。
【００３９】
リングインタフェース１２０とドライバおよびプロトコルインタフェースとの間のインタフェース４０４は、プロトコルインタフェースが、リングインタフェースユニット１２０（図４のコンテキストでは、単に「リング」とも呼ばれる）に結合されたリング上でデータを送信する準備ができるとアサートを行う送信要求（ＲＴＳ）ライン４０６を含む。インタフェース４０４は、それぞれのプロトコルインタフェースがデータを受け取り、または送信する（つまり、リピータとして働かない）ことを望んでいるということをリングインタフェースユニット１２０に示すようにプロトコルインタフェースがアサートするリングインタフェースユニット（ＲＩＵ）選択ライン４０８も含む。インタフェース４０４は、ドライバが、リングインタフェースユニット１２０によってリング上で送信されるデータを連続して供給するための送信データ（ＴｘＤ）ライン４１０も含む。インタフェース４０４は、リングインタフェースユニット１２０によってリングから受信されたデータが、リングインタフェースユニット１２０が結合されているドライバに連続して供給されるための第１および第２の受信データ（ＲｘＤ）ライン４１２、４１４をさらに含む。たとえば、第１の受信データライン４１２は、それぞれのドライバに、（リングインタフェースユニット１２０に対して）リングの時計回り部分から受信されたデータを供給し、第２の受信データライン４１４は、それぞれのドライバに、リングの反時計回り部分から受信されたデータを供給する。
【００４０】
リングインタフェースユニット１２０は、それぞれ、リングインタフェースユニット１２０が結合されているリングの第１および第２のリンク１１４との間で信号を受信し、送信する第１および第２のトランシーバ４１６、４１８を含む。信号調節および経路指定モジュール４０２は、ドライバと第１および第２のトランシーバ４１６、４１８との間で信号を経路指定する。リングインタフェースユニット１２０は、それぞれ第１および第２のトランシーバ４１６、４１８を、リングインタフェースユニット１２０が結合されている特定のリングの第１および第２のリンク１１４にそれぞれ結合する第１および第２のラインインタフェースユニット４２３、４２６を含む。図４に示される実施形態において、リングインタフェースユニット１２０が結合されている（かつ、様々なノードを一緒に結合する）第１および第２のリンク１１４は、２線リンクを用いて（たとえば、銅製ツイストペアケーブルを用いて）実装される。
【００４１】
図４に示される実施形態において、第１のラインインタフェースユニット４２３は、インピーダンス一致のためのバイアス抵抗器４２６−１、４２６−２とそれぞれ直列の無線周波数（ＲＦ）チョーク４２４−１、４２４−２と、第１のリンク１１４に第１のトランシーバ４１６を結合する変圧器４２８とを含む。同様に、図４に示される実施形態において、第２のラインインタフェースユニット４２６は、インピーダンス一致のためのバイアス抵抗器４３２−１、４３２−２と、それぞれ直列のＲＦチョーク４３０−１、４３０−２と、第２のリンク１１４に第２のトランシーバ４１８を結合する変圧器４３４とを含む。
【００４２】
図５Ａ〜５Ｃは、図４に示されるリングインタフェースユニット１２０の実施形態の動作を示すブロック図である。図５Ａは、送信機モードの間の（つまり、リングインタフェースユニット１２０がその一部であるノードが、リング上で送信を行っているときの）リングインタフェースユニット１２０の動作を示す。リングインタフェースユニット１２０が結合されているプロトコルインタフェースは、ＲＩＵ選択ライン４０８およびＲＴＳライン４０６をアサートすることによって、リングインタフェースユニット１２０を送信機モードにする。次いで、送信されるデータが、ドライバから、送信データライン４１０上のリングインタフェースユニット１２０に供給される。信号調節および経路指定モジュール４０２（図５Ａには示さず）は、送信データライン４１０上で受信されたデータを、第１および第２のトランシーバ４１６、４１８（図５Ａには示さず）に経路指定し、こうしたトランシーバは、それぞれ第１および第２のライン１１４上でデータを送出する。
【００４３】
図５Ｂは、受信機モードの間の（つまり、リングインタフェースユニット１２０のノードがリングからデータを受信中であるときの）リングインタフェースユニット１２０の動作を示す。リングインタフェースユニット１２０が結合されているプロトコルインタフェースは、ＲＴＳライン４０６をアサート停止すると共にＲＩＵ選択ライン４０８をアサートすることによって、リングインタフェースユニット１２０を受信機モードにする。次いで、トランシーバ４１６（図５Ｂには示さず）は、第１のリンク１１４からデータを受信し、トランシーバ４１８（図５Ｂには示さず）は、第２のリンク１１４からデータを受信する。信号調節および経路指定モジュール４０２（図５Ｂには示さず）は、受信したデータを、第１および第２の受信データライン４１２、４１４を介してそれぞれのドライバに経路指定する。
【００４４】
図５Ｃは、リピータモードの間（つまり、リングインタフェースユニット１２０がその一部であるノードが、リング上で、またはリングからデータを送信中でも、受信中でもないとき）のリングインタフェースユニット１２０の動作を示す。リングインタフェースユニット１２０が結合されているプロトコルインタフェースは、（ＲＴＳ選択ライン４０６の状態に関わらず）ＲＩＵ選択ライン４０８をアサート停止することによって、リングインタフェースユニット１２０をリピータモードにする。リピータモードの間、第１のトランシーバ４１６（図５Ｃには示さず）によって第１のリンク１１４からデータが受信されると、信号調節および経路指定モジュール４０２（図５Ｃには示さず）は、受信したデータを、第２のトランシーバ４１８（図５Ｃには示さず）に経路指定する。第２のトランシーバ４１８は、第２のリンク４２２上でフレームを送出する。第２のリンク１１４から第２のトランシーバ４１８によってデータが受信されると、信号調節および経路指定モジュール４０２は、受信したデータを、第１のトランシーバ４１６に経路指定する。第１のトランシーバ４１６は、第１のリンク１１４上でデータを送出する。信号調節および経路指定モジュール４０２は、受信したデータを、第１および第２の受信データライン４１２、４１４を介してドライバにも供給する。
【００４５】
図６は、図１のネットワーク１００が単一の故障をどのように扱うかを示すブロック図である。図６に示される例において、スレーブペアＢのスレーブノードＡとスレーブペアＣのスレーブノードＢとの間のリング１に含まれるリンク１１４（図６に、破線を使って示される）には、データがそのリンク１１４を介してスレーブペアＢのスレーブノードＡとスレーブペアＣのスレーブノードＢとの間を移動するのを妨げる故障６０２がある。上述した例と同様に、図６に示される例において、マスターノードＡは送信ノードであり、スレーブペアＢのスレーブノードＡは、終端ノードと指定される。
【００４６】
故障６０２の結果として、マスターノードＡから、時計回り方向にリング１に沿って送信されるデータは、スレーブペアＢのスレーブノードＡで受信されない。しかし、それにも関わらず、スレーブペアＢのスレーブノードＡは依然として、マスターノードＡから反時計回り方向にリング１に沿って送信されるデータを受信することが可能である。また、スレーブペアＢのスレーブノードＡは依然として、マスターノードＡから時計回りおよび反時計回り両方向でリング０に沿って送信されるデータを受信することが可能である。
【００４７】
図７は、図１のネットワーク１００が２つの故障をどのように扱うかを示すブロック図である。図７に示される例において、スレーブペアＢのスレーブノードＡとスレーブペアＣのスレーブノードＢとの間のリング１に含まれるリンク１１４（図７に、破線を使って示される）には、データがそのリンク１１４を介してスレーブペアＣのスレーブノードＢとスレーブペアＢのスレーブノードＡとの間を移動するのを妨げる故障７０２がある。また、この例では、スレーブペアＢのスレーブノードＡとスレーブペアＢのスレーブノードＢとの間のリング１に含まれるリンク１１４（図７に、破線を使って示される）には、データがそのリンク１１４を介してスレーブペアＢのスレーブノードＢとスレーブペアＢのスレーブノードＡとの間を移動するのを妨げる故障７０４がある。上述した例と同様に、図７に示される例において、マスターノードＡは送信ノードであり、スレーブサブシステムＢのスレーブノードＡは、終端ノードと指定される。
【００４８】
第１の故障７０２の結果として、マスターノードＡから、反時計回り方向にリング１に沿って送信されるデータは、スレーブペアＢのスレーブノードＡで受信されることができない。第２の故障７０４の結果として、マスターノードＡから、時計回り方向にリング１に沿って送信されるデータは、スレーブペアＢのスレーブノードＡによって受信されることができない。しかし、それにも関わらず、スレーブペアＢのスレーブノードＡは依然として、マスターノードＡから時計回りおよび反時計回り両方向にリング０に沿って送信されるデータを受信することが可能である。
【００４９】
図８は、図１のネットワーク１００が２つの故障をどのように扱うかを示すブロック図である。図８に示される例において、スレーブペアＢのスレーブノードＡとスレーブペアＢのスレーブノードＢとの間のリング０に含まれるリンク１１４（図８に、破線を使って示される）には、データがそのリンク１１４を介してスレーブペアＢのスレーブノードＢとスレーブペアＢのスレーブノードＡとの間を移動するのを妨げる故障８０２がある。また、この例では、スレーブペアＢのスレーブノードＡとスレーブペアＢのスレーブノードＢとの間のリング１に含まれるリンク１１４（図８に、破線を使って示される）には、データがそのリンク１１４を介してスレーブペアＢのスレーブノードＡとスレーブペアＢのスレーブノードＢとの間を移動するのを妨げる故障８０４がある。上述した例と同様に、図８に示される例において、マスターノードＡは送信ノードであり、スレーブペアＢのスレーブノードＡは、終端ノードと指定される。第１の故障４０２および第２の故障４０４の結果として、マスターノードＡから、時計回り方向にリング０、１両方に沿って送信されるデータは、スレーブペアＢのスレーブノードＡで受信されることができない。しかし、それにも関わらず、スレーブペアＢのスレーブノードＡは依然として、マスターノードＡから反時計回り方向にリング０、１両方に沿って送信されるデータを受信することが可能である。
【００５０】
図９は、図１のネットワーク１００が「バブリングイディオト（ｂａｂｂｌｉｎｇ  ｉｄｉｏｔ）」タイプの故障をどのように扱うかを示すブロック図である。ノードが、送信を行うようにスケジュールされていないときにリング０、１の一方の上で送信を行うか、または常にそのリング上で送信を行うと、バブリングイディオト故障が起こる。図９に示される例において、スレーブペアＢのスレーブノードＡが、その時点で送信を行うようにスケジュールされ（つまり、スレーブペアＢのスレーブノードＡは、この例において送信ノードである）、マスターノードＡが、終端ノードと指定される。図９に示される例においても、スレーブペアＣのスレーブノードＡには、スレーブペアＢのスレーブノードＡが送信を行うようにスケジュールされているときにスレーブペアＣのスレーブノードＡにリング０上で送信を行わせるバブリングイディオト故障がある。つまり、スレーブペアＢのスレーブノードＡが送信する間、スレーブペアＣのスレーブノードＡも、時計回りおよび反時計回り両方向でリング０に沿って送信する。
【００５１】
スレーブペアＣのスレーブノードＡには、リング０に関してバブリングイディオト故障があるので、スレーブペアＣのスレーブノードＡが、不良データ（つまり、スレーブペアＢのスレーブノードＡからではなく、スレーブペアＣのスレーブノードＡから発するデータ）を、リング０上で時計回り方向でマスターノードＡに送信する。マスターノードＡは、終端ノードなので、スレーブペアＣのスレーブノードＡから受信された不良データを、リング０上でそれ以上は転送しない。また、スレーブペアＣのスレーブノードＡには、リング０に関してバブリングイディオト故障があるので、スレーブペアＣのスレーブノードＡが、リング０上で、反時計回り方向でスレーブペアＣのスレーブノードＢに不良データを送信する。スレーブペアＣのスレーブノードＢは次いで、そのデータを、リング０上でスレーブペアＢのスレーブノードＡに転送する。スレーブペアＢのスレーブノードＡは、送信ノードなので、スレーブペアＣのスレーブノードＢから受信された不良データを、リング０上でそれ以上は転送しない。より具体的には、スレーブペアＢのスレーブノードＡのリングインタフェースユニット１２０−０、１２０−１は、図５Ａに示される送信モードで動作中なので、スレーブペアＢのスレーブノードＡは、スレーブペアＣのスレーブノードＡによって送信されるどのデータも受信しない。どの不良データも転送するのではなく、スレーブペアＢのスレーブノードＡは、有効なデータ（つまり、スレーブペアＢのスレーブノードＡから発するデータ）を、リング０、１両方の上で、両方向で送信する。しかし、スレーブペアＣのスレーブノードＡによる不良データの送信は、スレーブペアＢのスレーブノードＡの、このような不良データが移動する際に経由するリンク１１４（図９に破線を使って示される）に沿って有効なデータを送信する能力と干渉する。
【００５２】
バブリングイディオト故障に関わらず、マスターノードＡは、スレーブペアＢのスレーブノードＡによって送信される有効なデータを受信することが可能である。マスターノードＡは、スレーブペアＢのスレーブノードＡによって時計回り方向で、リング１上で送信される有効なデータを受信する。マスターノードＡは、スレーブペアＢのスレーブノードＡによって反時計回り方向で、リング０、１両方の上で送信される有効なデータも受信する。
【００５３】
図１に示されるネットワーク１００の実施形態は、本明細書では、ＴＴＰ／Ａプロトコルのマスター／スレーブプロトコルを用いて実装されるものとして記載されているが、本明細書に記載されるシステム、装置、方法および技術は、他の実施形態および実装形態では、他のやり方で、たとえば、他のネットワークトポロジおよび／またはプロトコルならびに／あるいは、たとえば他の数のノードおよび／またはリングを用いて実装されることが理解されるべきである。たとえば、このような他の一実施形態が、図１０に示される。
【００５４】
図１０は、ピアツーピアネットワーク１０００の例示的な実施形態のブロック図である。図１０に示される実施形態において、ネットワーク１０００は、複数のノード１００６がそれぞれ「ピア」であるピアツーピアネットワークとして実装される。図１０に示される具体的な実施形態において、ネットワーク１０００は、４つのノード１００６（図１０に、個別に「ノードＡ」、「ノードＢ」、「ノードＣ」、および「ノードＤ」で示す）を含む。他の実施形態では、他の数のノード１００６が使われる。
【００５５】
ノード１００６はそれぞれ、２つの通信チャネル１０１２を介して、ネットワーク１０００の他のノード１００６と通信する。通信チャネル１０１２はそれぞれ、各ノード１００６を、そのノードの２つの隣接ノードに接続する多重双方向直列リンク１０１４を含むリングとして実装される。２つのチャネル１０１２はここでは、それぞれ個別に、「チャネル０」または「リング０」および「チャネル１」または「リング１」とも呼ばれる。たとえば、図１０に示されるように、リング０の一部であるリンク１０１４は、時計回り方向にノードＡをノードＢに結合し、リング０の一部である別のリンク１０１４は、反時計回り方向にノードＡをノードＤに結合する。
【００５６】
図１０に示される具体的な実施形態において、ノード１００６は、リニアバス構成要素を使って実装される。つまり、ノード１００６はそれぞれ、このようなノードを１つまたは複数のリニアバスに結合するのに、通常使われる構成要素を使って実装される。図１０に示される具体的な実施形態において、各ノード１００６は、４つのリニアバスを介して通信するように適合される。各リニアバスノードは、図１〜５Ｃに関連して上述したタイプの１対のリングインタフェースユニット１２０を使って、リングに結合される。このような各リニアバスノードごとに、１つのリングインタフェースユニット１２０（ここでは、個別にリングインタフェースユニット１２０−０と呼ばれる）が、ノードをリング０に結合し、他のリングインタフェースユニット１２０（ここでは、個別にリングインタフェースユニット１２０−１と呼ばれる）が、ノードをリング１に結合する。このようにして、リニアバス構成要素は、図１０の二重リングバストポロジにおいて（たとえば、このようなリニアバス構成要素を使って達成され得る完全性および／または信頼性を向上させるのに）使われ得る。
【００５７】
各リングインタフェースユニット１２０は、図１０において、対応するノードとは別個のものとして示されるが、他の実施形態では、各リングインタフェースユニット１２０は、対応するノードに統合される。また、他の実施形態では、ここで、所与のリニアバスノード向けに１対のリングインタフェースユニット１２０−０、１２０−１によって実施されるものとして記載される機能は、単一のリングインタフェースユニットを使って実装される。
【００５８】
図１０に示される実施形態において、ネットワーク１０００のノード１００６の少なくともサブセットが、他の装置またはネットワークに結合される。たとえば、図１０に示されるように、ノードＡは、別個のネットワーク１０１６に通信可能に結合される。この例では、ノードＡは、ネットワーク１０００とネットワーク１０１６の間のゲートウェイとして働く。また、この例では、ノードＣは、別の装置１０１７（たとえば、センサおよび／またはアクチュエータや他の任意のタイプの装置などのトランスデューサ）に、たとえば二地点間通信リンクを用いて通信可能に結合される。
【００５９】
動作する際、図１０に示されるネットワーク１０００の実施形態におけるノード１００６の１つ（ここでは、「送信ノード」と呼ばれる）が、データを（たとえば、１つまたは複数のデータフレームの形で）ネットワーク１００内の他のノード１００６に送信するとき、送信ノードは、同じデータを、４つの別々のデータ経路に沿って送信する。送信ノードは、データを、リング０の周りで時計回りおよび反時計回り両方向で、また、リング１の周りで時計回りおよび反時計回り両方向で送信する。各送信ノードからの送信は、ピアツーピアネットワーク１０００内の他のノードそれぞれによって受信され処理されることが意図される。
【００６０】
このような実施形態において、あるノードによる各送信に対して、ネットワーク内の他のノードの１つが、その送信に対する「終端」ノードと指定される。送信ノードおよび指定された終端ノードは、リング０、１を「切断」する。ネットワーク１０００内の他のノード（つまり、送信ノードおよび終端ノード以外のノード）はそれぞれ、リピータとして働き、そのノードで受信されたどのデータも、データが受信されたのと同じリングに沿ってネットワーク１０００内の次のノードに転送する。
【００６１】
一例では、ノードＡが送信ノードであり、ノードＣが、その送信に対する終了ノードである。このような例において、ノードＡは、それに結合されたリングインタフェースユニット１２０−０を介して、時計回りおよび反時計回り両方向でリング０に沿って送信し、リングインタフェースユニット１２０−１を介して、時計回りおよび反時計回り両方向でリング１に沿って送信する。
【００６２】
ノードＡから時計回り方向で、リング０に沿って送信されるデータは、ノードＢに結合されたリングインタフェースユニット１２０−０によって最初に受信される。ノードＢに結合されたリングインタフェースユニット１２０−０は、受信したデータを、それによる処理のためにノードＢに転送し、受信したデータを、リング０に沿って時計回り方向でノードＣに転送する。ノードＣに結合されたリングインタフェースユニット１２０−０は、受信したデータを、それによる処理のためにノードＣに転送する。この例では、ノードＣは終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−０は、受信したデータを、リング０に沿って時計回り方向でそれ以上転送しない。
【００６３】
同様の処理が、リング１に沿った時計回り方向で起こる。ノードＡから時計回り方向で、リング１に沿って送信されるデータは、ノードＢに結合されたリングインタフェースユニット１２０−１によって最初に受信される。ノードＢに結合されたリングインタフェースユニット１２０−１は、受信したデータを、それによる処理のためにノードＢに転送し、受信したデータを、リング１に沿って時計回り方向でノードＣに転送する。ノードＣに結合されたリングインタフェースユニット１２０−１は、受信したデータを、それによる処理のためにノードＣに転送する。この例では、ノードＣは終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−１は、受信したデータを、リング１に沿って時計回り方向でそれ以上転送しない。
【００６４】
ノードＡから反時計回り方向で、リング１に沿って送信されるデータは、ノードＤに結合されたリングインタフェースユニット１２０−０によって最初に受信される。ノードＤに結合されたリングインタフェースユニット１２０−０は、受信したデータを、それによる処理のためにノードＤに転送し、受信したデータを、リング０に沿って反時計回り方向でノードＣに転送する。ノードＣに結合されたリングインタフェースユニット１２０−０は、受信したデータを、それによる処理のためにノードＣに転送する。この例では、ノードＣは終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−０は、受信したデータを、リング０に沿って反時計回り方向でそれ以上転送しない。
【００６５】
同様の処理が、リング１に沿った反時計回り方向で起こる。ノードＡから反時計回り方向で、リング１に沿って送信されるデータは、ノードＤに結合されたリングインタフェースユニット１２０−１によって最初に受信される。ノードＤに結合されたリングインタフェースユニット１２０−１は、受信したデータを、それによる処理のためにノードＤに転送し、受信したデータを、リング１に沿って反時計回り方向でノードＣに転送する。ノードＣに結合されたリングインタフェースユニット１２０−１は、受信したデータを、それによる処理のためにノードＣに転送する。この例では、ノードＣは終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０−１は、受信したデータを、リング１に沿って反時計回り方向でそれ以上転送しない。
【００６６】
図１１は、ネットワーク１１００の例示的な実施形態のブロック図である。図１１に示される実施形態において、ネットワーク１１００は、複数のノード１１０６それぞれが、単一のチャネル１１１２を介して相互に通信可能に結合される「単方向」ネットワークとして実装される。さらに、図１１に示されるネットワーク１１００は、ここでは、ピアツーピアネットワークとして記載されるが、他の手法（たとえば、マスター／スレーブネットワーク）が用いられ得ることが理解されるべきである。図１０に示される具体的な実施形態において、ネットワーク１１００は、４つのノード１１０６（図１１に、個別に「ノードＡ」、「ノードＢ」、「ノードＣ」、および「ノードＤ」で示す）を含む。他の実施形態では、他の数のノード１１０６が使われる。
【００６７】
通信チャネル１１１２は、各ノード１１０６を、そのノードの２つの隣接ノードに接続する多重双方向直列リンク１１１４を含むリングとして実装される。たとえば、図１０に示されるように、リングの一部であるリンク１１１４が、ノードＡをノードＢに時計回り方向で結合し、リングの一部である別のリンク１０１４が、ノードＡをノードＤに反時計回り方向で結合する。
【００６８】
図１１に示される具体的な実施形態において、ノード１１０６は、リニアバス構成要素を使って実装される。つまり、ノード１００６はそれぞれ、このようなノードを１つまたは複数のリニアバスに結合するのに、通常使われる構成要素を使って実装される。図１１に示される具体的な実施形態において、各ノード１１０６は、２つのリニアバスを介して通信するように適合される。各リニアバスノードは、図１〜５Ｃに関連して上述したタイプの１対のリングインタフェースユニット１２０を使って、リングに結合される。このようにして、リニアバス構成要素は、図１１のリングバストポロジにおいて（たとえば、このようなリニアバス構成要素を使って達成され得る完全性および／または信頼性を向上させるのに）使われ得る。
【００６９】
各リングインタフェースユニット１２０は、図１０において、対応するノードとは別個のものとして示されるが、他の実施形態では、各リングインタフェースユニット１２０は、対応するノードに統合される。
【００７０】
図１１に示される実施形態において、ネットワーク１１００のノード１１０６の少なくともサブセットが、他の装置またはネットワークに結合される。たとえば、図１１に示されるように、ノードＡは、別のネットワーク１１１６に通信可能に結合される。この例では、ノードＡは、ネットワーク１１００とネットワーク１１１６の間のゲートウェイとして働く。また、この例では、ノードＣは、別の装置１１１７（たとえば、センサおよび／またはアクチュエータや他の任意のタイプの装置などのトランスデューサ）に、たとえば二地点間通信リンクを用いて通信可能に結合される。
【００７１】
動作する際、図１１に示されるネットワーク１０００の実施形態におけるノード１１０６の１つ（ここでは、「送信ノード」と呼ばれる）が、データを（たとえば、１つまたは複数のデータフレームの形で）ネットワーク１１００内の他のノード１１０６に送信するとき、送信ノードは、同じデータを、２つの別々のデータ経路に沿って送信する。送信ノードは、データを、リングの周りで時計回りおよび反時計回り両方向で送信する。各送信ノードからの送信は、ピアツーピアネットワーク１１００内の他のノードそれぞれによって受信され処理されることが意図される。
【００７２】
このような実施形態において、あるノードによる各送信に対して、ネットワーク内の他のノードの１つが、その送信に対する「終端」ノードと指定される。送信ノードおよび指定された終端ノードは、リングを「切断」する。ネットワーク１１００内の他のノード（つまり、送信ノードおよび終端ノード以外のノード）はそれぞれ、リピータとして働き、そのノードで受信されたどのデータも、リングに沿ってネットワーク１０００内の次のノードに転送する。
【００７３】
一例では、ノードＡが送信ノードであり、ノードＣが、その送信に対する終了ノードである。このような例において、ノードＡは、それに結合されたリングインタフェースユニット１２０を介して、時計回りおよび反時計回り両方向でリングに沿って送信する。
【００７４】
ノードＡから時計回り方向で、リングに沿って送信されるデータは、ノードＢに結合されたリングインタフェースユニット１２０によって最初に受信される。ノードＢに結合されたリングインタフェースユニット１２０は、受信したデータを、それによる処理のためにノードＢに転送し、受信したデータを、リングに沿って時計回り方向でノードＣに転送する。ノードＣに結合されたリングインタフェースユニット１２０は、受信したデータを、それによる処理のためにノードＣに転送する。この例ではノードＣは終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０は、受信したデータを、リングに沿って時計回り方向でそれ以上転送しない。
【００７５】
ノードＡから反時計回り方向で、リングに沿って送信されるデータは、ノードＤに結合されたリングインタフェースユニット１２０によって最初に受信される。ノードＤに結合されたリングインタフェースユニット１２０は、受信したデータを、それによる処理のためにノードＤに転送し、受信したデータを、リングに沿って反時計回り方向でノードＣに転送する。ノードＣに結合されたリングインタフェースユニット１２０は、受信したデータを、それによる処理のためにノードＣに転送する。この例ではノードＣは終了ノードなので、そのノードに結合されたリングインタフェースユニット１２０は、受信したデータを、リングに沿って反時計回り方向でそれ以上転送しない。
【００７６】
本明細書に記載されるシステム、装置、方法および技術は、デジタル電子回路としても、プログラム可能なプロセッサ（たとえば、コンピュータなどの専用プロセッサや汎用プロセッサ）またはフィールドプログラム可能なゲートアレイ（ＦＰＧＡ）や複合プログラム可能論理回路（ＣＰＬＤ）、ファームウェア、ソフトウェアなど、他のプログラム可能な装置を用いても、これらを組み合わせても実装されることができる。こうした技術を実施する機器は、適切な入出力装置、プログラム可能なプロセッサ、およびプログラム可能なプロセッサによる実行のためのプログラム命令を有形に実施する記憶媒体を含み得る。こうした技術を実施するプロセスは、入力データに作用し適切な出力を生成することによって、所望の機能を実施するための命令からなるプログラムを実行するプログラム可能なプロセッサによって実施され得る。こうした技術は有利には、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置との間でデータおよび命令を受信し、データおよび命令を送信するように結合された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能な１つまたは複数のプログラムとして実装され得る。概して、プロセッサが、読出し専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受信する。コンピュータプログラム命令およびデータを有形に実施するのに適した記憶装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ素子などの半導体メモリ素子、内部ハードディスクおよび取外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＤＶＤディスクを含むあらゆる形の不揮発性メモリを含む。上記項目のいずれも、専用の特定用途向け集積回路（ＡＳＩＣ）によって補完されることも、それに組み込まれることもできる。
【００７７】
添付の特許請求の範囲によって定義される本発明のいくつかの実施形態が説明された。それにも関わらず、特許請求の範囲に記載されている本発明の精神および範囲から逸脱することなく、説明された実施形態に対する様々な変更が行われ得ることが理解されよう。したがって、他の実施形態も、添付の特許請求の範囲の範囲内である。
【図面の簡単な説明】
【００７８】
【図１】通信ネットワークの一実施形態を示す上位ブロック図である。
【図２】図１のネットワークにおける使用に適したマスターノードの一実施形態を示すブロック図である。
【図３】図１のネットワークにおける使用に適したスレーブノードの一実施形態を示すブロック図である。
【図４】リングインタフェースユニットの一実施形態を示すブロック図である。
【図５Ａ】図４に示されるリングインタフェースユニットの実施形態の動作を示すブロック図である。
【図５Ｂ】図４に示されるリングインタフェースユニットの実施形態の動作を示すブロック図である。
【図５Ｃ】図４に示されるリングインタフェースユニットの実施形態の動作を示すブロック図である。
【図６】図１のネットワークが単一の故障をどのように扱うかを示すブロック図である。
【図７】図１のネットワークが２つの故障をどのように扱うかを示すブロック図である。
【図８】図１のネットワークが２つの故障をどのように扱うかを示すブロック図である。
【図９】図１のネットワークが「バブリングイディオト」タイプの故障をどのように扱うかを示すブロック図である。
【図１０】ピアツーピアネットワークの一実施形態を示すブロック図である。
【図１１】単方向ネットワークの例示的な実施形態を示すブロック図である。
【図１】
2007525107.tif 000003
【図２】
2007525107.tif 000004
【図３】
2007525107.tif 000005
【図４】
2007525107.tif 000006
【図５Ａ】
2007525107.tif 000007
【図５Ｂ】
2007525107.tif 000008
【図５Ｃ】
2007525107.tif 000009
【図６】
2007525107.tif 000010
【図７】
2007525107.tif 000011
【図８】
2007525107.tif 000012
【図９】
2007525107.tif 000013
【図１０】
2007525107.tif 000014
【図１１】
2007525107.tif 000015