(57)【特許請求の範囲】
【請求項１】
リング型またはチェーン状の接続形態の複数のノードから構成されるデータ通信システムであって、
前記ノードは、
互いに独立した第１の通信手段および第２の通信手段と、
前記第１の通信手段および前記第２の通信手段を制御する制御手段と、
生成・送信された時刻情報および自他ノードの識別情報を含む自ノードのデータを保持するデータ保持手段と
を備え、
前記制御手段は、
前記第１の通信手段および前記第２の通信手段により隣接するノードとの間で自ノードの保持する最新の各ノードのデータを送受信し、
前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位に新しいデータである場合に自ノードの保持する最新の各ノードのデータを更新し、
前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位にデータの生成時の第１の時間差を計算するとともに、当該第１の時間差が第１の閾値未満のノードにつき、前記第１の通信手段もしくは前記第２の通信手段により受信したデータの識別情報に基づいて現在時刻との第２の時間差を計算し、
前記第１の時間差および前記第２の時間差からノード間リンクもしくはノード自体の故障を判定する
ことを特徴とするデータ通信システム。
【請求項２】
請求項１に記載のデータ通信システムにおいて、
前記制御手段は、
前記第１の時間差が前記第１の閾値以上のノードは、故障していないが、当該ノードから前記第１の時間差の正負の示す側の自ノードまでの通信経路に存在するノード間リンクもしくはノードが故障していると判断し、
前記第２の時間差が第２の閾値以上のノードは、故障しているか、当該ノードの両側のノード間リンクが故障していると判断し、
全ノードの判断結果から総合的に故障箇所を判定する
ことを特徴とするデータ通信システム。
【請求項３】
リング型またはチェーン状の接続形態の複数のノードのそれぞれを構成するデータ通信装置であって、
互いに独立した第１の通信手段および第２の通信手段と、
前記第１の通信手段および前記第２の通信手段を制御する制御手段と、
生成・送信された時刻情報および自他ノードの識別情報を含む自ノードのデータを保持するデータ保持手段と
を備え、
前記制御手段は、
前記第１の通信手段および前記第２の通信手段により隣接するノードとの間で自ノードの保持する最新の各ノードのデータを送受信し、
前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位に新しいデータである場合に自ノードの保持する最新の各ノードのデータを更新し、
前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位にデータの生成時の第１の時間差を計算するとともに、当該第１の時間差が第１の閾値未満のノードにつき、前記第１の通信手段もしくは前記第２の通信手段により受信したデータの識別情報に基づいて現在時刻との第２の時間差を計算し、
前記第１の時間差および前記第２の時間差からノード間リンクもしくはノード自体の故障を判定する
ことを特徴とするデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード間でデータ通信を行う技術に関する。
【背景技術】
【０００２】
ロボット、自動車等の内部に配置される複数の回路ユニット等のノード間でデータ通信を行う場合、ノードをつなぐリンクやノード自体の故障時に適切な処理が行えるよう、故障を検出して故障箇所を特定することが重要となる。
【０００３】
特許文献１には、リング型ネットワークに配置された各ノードが所定時間毎にデータを正方向および逆方向に交互に送信すると共に、これら各ノードが所定時間毎にデータの受信を確認するデータ通信確認モードを有することで、装置および伝送路の故障部位を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３７６１１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載される技術は故障を検出して故障箇所を特定する一つの解決策ではあるが、故障の検出および故障箇所の特定のために専用の「データ通信確認モード」を設けるものであるため、リアルタイムに行われている装置本来の重要なデータ通信を一時的に停止もしくは縮小しなければならず、通常のデータ通信に影響を及ぼすという問題があった。
【０００６】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、通常のデータ通信を行ないながら故障の検出および故障箇所の特定を並行して行うことのできるデータ通信システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、リング型またはチェーン状の接続形態の複数のノードから構成されるデータ通信システムであって、前記ノードは、互いに独立した第１の通信手段および第２の通信手段と、前記第１の通信手段および前記第２の通信手段を制御する制御手段と、生成・送信された時刻情報および自他ノードの識別情報を含む自ノードのデータを保持するデータ保持手段とを備え、前記制御手段は、前記第１の通信手段および前記第２の通信手段により隣接するノードとの間で自ノードの保持する最新の各ノードのデータを送受信し、前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位に新しいデータである場合に自ノードの保持する最新の各ノードのデータを更新し、前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位にデータの生成時の第１の時間差を計算するとともに、当該第１の時間差が第１の閾値未満のノードにつき、前記第１の通信手段もしくは前記第２の通信手段により受信したデータの識別情報に基づいて現在時刻との第２の時間差を計算し、前記第１の時間差および前記第２の時間差からノード間リンクもしくはノード自体の故障を判定するデータ通信システムを要旨としている。
【０００８】
また、請求項２に記載されるように、請求項１に記載のデータ通信システムにおいて、前記制御手段は、前記第１の時間差が前記第１の閾値以上のノードは、故障していないが、当該ノードから前記第１の時間差の正負の示す側の自ノードまでの通信経路に存在するノード間リンクもしくはノードが故障していると判断し、前記第２の時間差が第２の閾値以上のノードは、故障しているか、当該ノードの両側のノード間リンクが故障していると判断し、全ノードの判断結果から総合的に故障箇所を判定するようにすることができる。
【０００９】
また、請求項３に記載されるように、リング型またはチェーン状の接続形態の複数のノードのそれぞれを構成するデータ通信装置であって、互いに独立した第１の通信手段および第２の通信手段と、前記第１の通信手段および前記第２の通信手段を制御する制御手段と、生成・送信された時刻情報および自他ノードの識別情報を含む自ノードのデータを保持するデータ保持手段とを備え、前記制御手段は、前記第１の通信手段および前記第２の通信手段により隣接するノードとの間で自ノードの保持する最新の各ノードのデータを送受信し、前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位に新しいデータである場合に自ノードの保持する最新の各ノードのデータを更新し、前記第１の通信手段および前記第２の通信手段により受信したデータの識別情報に基づいて、ノード単位にデータの生成時の第１の時間差を計算するとともに、当該第１の時間差が第１の閾値未満のノードにつき、前記第１の通信手段もしくは前記第２の通信手段により受信したデータの識別情報に基づいて現在時刻との第２の時間差を計算し、前記第１の時間差および前記第２の時間差からノード間リンクもしくはノード自体の故障を判定するデータ通信装置として構成することができる。
【発明の効果】
【００１０】
本発明のデータ通信システムにあっては、通常のデータ通信を行ないながら故障の検出および故障箇所の特定を並行して行うことができる。そのため装置本来の通常のデータ通信に影響を及ぼすことがない。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態にかかるデータ通信システムの構成例を示す図である。
【図２】各ノードの構成例を示す図である。
【図３】各ノード最新データの構造例を示す図である。
【図４】各ノードの処理例を示すフローチャートである。
【図５】送受信データの構造例を示す図である。
【図６】故障の例を示す図（その１）である。
【図７】故障の例を示す図（その２）である。
【図８】故障の例を示す図（その３）である。
【図９】故障の例を示す図（その４）である。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施形態につき説明する。
【００１３】
＜構成＞
図１は本発明の一実施形態にかかるデータ通信システムの構成例を示す図である。
【００１４】
図１において、各ノード１Ａ、１Ｂ、１Ｃ、１Ｄには電気的に互いに独立した通信ポート＃１、＃２がそれぞれ設けられており、ノード１Ａの通信ポート＃１はノード１Ｂの通信ポート＃２に、ノード１Ｂの通信ポート＃１はノード１Ｃの通信ポート＃２に、ノード１Ｃの通信ポート＃１はノード１Ｄの通信ポート＃２に、ノード１Ｄの通信ポート＃１はノード１Ａの通信ポート＃２に、それぞれ接続されている。各ノード間の接続をリンクと呼ぶこととし、このリンクは全二重もしくは半二重によりデータの送受信が双方向に可能になっている。なお、リンクは有線に限らず、無線でもよい。また、リンクは、冗長化のために複数の通信路（有線と無線等）から構成されるものとしてもよい。
【００１５】
なお、ノードが４つの場合について図示しているが、ノードの数はこれに限られない。また、理想的なリング型について図示しているが、当初（正常状態）からリング型でなくてもよく、各ノードがチェーン状に接続されていてもよい。この場合、後述する処理により、いずれかのノード間のリンクが機能していないことが検出されるが、正常状態であるものとして故障とは判断しない。
【００１６】
図２は、図１のデータ通信システムを構成する各ノード１の構成例を示す図である。
【００１７】
図２において、ノード１は、制御部１１と通信部１２と通信部１３とを備えている。制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等のハードウェアから構成されるものである。通信部１２、１３はＮＩＣ（Network Interface Card）等のハードウェアである。通信部１２と通信部１３は電気的に互いに独立しており、制御部１１により所定のデータ通信が隣接ノードとの間で行われる。
【００１８】
制御部１１は、通信部１２用の送信バッファ１１１および受信バッファ１１２と、通信部１３用の送信バッファ１１３および受信バッファ１１４と、各ノード最新データ保持部１１５と、故障判定結果保持部１１６とを備えている。
【００１９】
送信バッファ１１１は通信部１２の送信データを書き込む記憶領域であり、通信部１２は送信バッファ１１１に書き込まれているデータを所定のタイミングで隣接するノードに送信する。受信バッファ１１２は通信部１２の受信データを書き込む記憶領域であり、通信部１２は隣接するノードからデータを受信すると受信バッファ１１２に受信データを書き込む。送信バッファ１１３は通信部１３の送信データを書き込む記憶領域であり、通信部１３は送信バッファ１１３に書き込まれているデータを所定のタイミングで隣接するノードに送信する。受信バッファ１１４は通信部１３の受信データを書き込む記憶領域であり、通信部１３は隣接するノードからデータを受信すると受信バッファ１１４に受信データを書き込む。
【００２０】
各ノード最新データ保持部１１５は、自ノードおよび他ノードの最新データを保持する記憶領域である。自ノードのデータは、自ノードの状態に応じて制御部１１が更新する。他ノードのデータは、通信部１２もしくは通信部１３により受信されたデータに含まれる、ノード毎の最新データに基づいて制御部１１が更新する。データ構造例については後述する。
【００２１】
故障判定結果保持部１１６は故障と判定された結果（故障の有無、故障箇所等）を保持する記憶領域である。
【００２２】
図３は各ノード最新データ保持部１１５に保持される各ノード最新データの構造例を示す図である。
【００２３】
各ノード最新データは、ノード毎に、「ノードＩＤ」「タイムスタンプ」「ノードデータ」等の項目を有している。「ノードＩＤ」はシステム内でノードを識別する情報である。「タイムスタンプ」は当該ノードデータが生成・送信された時刻の情報であり、当該ノードデータが転送されても変化しない。「ノードデータ」はシステム内で他のノードと共有する各ノードのデータであり、回路ユニット等のノードの状態を示すデータである。
【００２４】
＜動作＞
図４は各ノード１の処理例を示すフローチャートである。
【００２５】
図４において、制御部１１の制御のもと、通信ポート＃１による隣接ノードとの間での各ノード最新データの送受信（ステップＳ１）と、通信ポート＃２による隣接ノードとの間での各ノード最新データの送受信（ステップＳ２）とが並行して、もしくは順次に行われる。
【００２６】
図５は送受信データの構造例を示す図であり、送信側ノードは各ノード最新データ保持部１１５に保持している各ノード最新データをノード毎に連続もしくは断続に送信する。なお、隣接するノードとの間のリンクに故障がある場合や隣接するノード自体に故障がある場合は、データの送受信を試みても送受信が行えないことになる。その場合、受信バッファ１１２、１１４に保持されたデータは以前の最後に受信したデータのままとなる。
【００２７】
次いで、図４に戻り、制御部１１は、通信ポート＃１、＃２の受信バッファ１１２、１１４の受信データについて、自ノードを除き、ノード毎に各ノード最新データ保持部１１５の各ノード最新データとそれぞれのタイムスタンプを比較し、より新しいデータである場合には、その新しいデータにより各ノード最新データ保持部１１５の各ノード最新データを更新する（ステップＳ３）。各ノード最新データ保持部１１５の各ノード最新データのうち、自ノードの分については、受信データにかかわらず、ノード内の状態に基づく最新データに更新する。
【００２８】
次いで、制御部１１は、通信ポート＃１、＃２の受信バッファ１１２、１１４の受信データについて、自ノードを除き、ノード毎に両通信ポート＃１、＃２からのデータのタイムスタンプの時間差（タイムスタンプ時間差）を計算する（ステップＳ４）。
【００２９】
次いで、制御部１１は、計算したタイムスタンプ時間差が第１の閾値未満のノードを抽出する。第１の閾値は、データ通信の経路の違いを考慮した、正常なデータ送受信であると認められる許容遅延時間を超える値であり、予め定めた値を設定するか、システムの起動時のノード間ハンドシェークにおける応答時間から動的に設定される。
【００３０】
そして、タイムスタンプ時間差が第１の閾値未満のノードにつき、通信ポート＃１、＃２のいずれかの受信データのタイムスタンプと現在時刻との時間差（現在時刻時間差）を計算する（ステップＳ５）。
【００３１】
次いで、制御部１１は、全てのノードにつき、タイムスタンプ時間差が第１の閾値未満で、かつ、現在時刻時間差が第２の閾値未満か否か判断する（ステップＳ６）。第２の閾値は、各ノードのノードデータの正常時における生成・送信の時間間隔を超える値であり、予め定めた値を設定する。
【００３２】
そして、全てのノードにつき、タイムスタンプ時間差が第１の閾値未満で、かつ、現在時刻時間差が第２の閾値未満であると判断した場合（ステップＳ６のＹｅｓ）、制御部１１は通信環境（リンクおよびノードの通信機能）につき正常と判定する（ステップＳ７）。
【００３３】
また、いずれかのノードにつき、タイムスタンプ時間差が第１の閾値未満で、かつ、現在時刻時間差が第２の閾値未満、という条件を満たさないと判断した場合（ステップＳ６のＮｏ）、制御部１１は、タイムスタンプ時間差が第１の閾値以上のノードは、故障していないがタイムスタンプ時間差の正負の示す側のリンクもしくはノードが故障しており、現在時刻時間差が第２の閾値以上のノードは、故障かそのノードの両側のリンクが故障と判断し、全ノードの判断結果から総合的に故障箇所を判定する（ステップＳ８）。判定結果は故障判定結果保持部１１６に格納される。
【００３４】
図６は故障の例を示す図であり、図１に示したデータ通信システムにおいて、ノード１Ａとノード１Ｄを接続するリンク（ケーブル、コネクタ等）が断線や接続不良等の故障を起こした場合を想定している。
【００３５】
ここでは、図４のステップＳ４で計算されるタイムスタンプ時間差は通信ポート＃２の受信データのタイムスタンプから通信ポート＃１の受信データのタイムスタンプを減算するものとし、ノード１Ｃに着目した場合について説明する。
【００３６】
この例では、故障発生直前までは、ノード１Ａについては、ノード１Ｂを経由してノード１Ｃの通信ポート＃２に到達していた受信データのタイムスタンプと、ノード１Ｄを経由してノード１Ｃの通信ポート＃１に到達していた受信データのタイムスタンプとは、経路の違い程度のものであり、許容時間以内に収まる。
【００３７】
しかし、ノード１Ａ、１Ｄ間のリンク故障により、ノード１Ｄはノード１Ａから直接にデータを受信できないため、ノード１Ａ→ノード１Ｂ→ノード１Ｃ→ノード１Ｄの経路によって最新データに更新されてノード１Ｄからノード１Ｃに送信されるまでにはタイムラグが発生することとなる。
【００３８】
そのため、ノード１Ｃから見て、ノード１Ａについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、図４のステップＳ５で計算される現在時刻時間差は計算対象外となる。ノード１Ｂについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。ノード１Ｄについては、タイムスタンプ時間差は負の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。
【００３９】
この場合、図４のステップＳ８の処理により、ノード１Ａから右回りのノード１Ｃまでのリンクもしくはノードに故障があり、ノード１Ｂから右回りのノード１Ｃまでのリンクもしくはノードに故障があり、ノード１Ｄから左回りのノード１Ｃまでのリンクもしくはノードに故障があることになるため、それらの共通箇所として、ノード１Ａとノード１Ｄの間のリンクの故障と判定される。
【００４０】
図７は故障の他の例を示す図であり、図１に示したデータ通信システムにおいて、ノード１Ａ自体が故障を起こした場合を想定している。
【００４１】
この例では、ノード１Ａ自体の故障により、ノード１Ｂ、１Ｄはノード１Ａの故障以前のデータを持ち続けることとなり、ノード１Ｃがノード１Ｂ、１Ｄから受信するデータのタイムスタンプは同じで許容時間以内となるが、現在時刻からの差が大きくなる。
【００４２】
そのため、ノード１Ｃから見て、ノード１Ａについては、タイムスタンプ時間差は第１の閾値以下となり、現在時刻時間差は第２の閾値を超過することとなる。ノード１Ｂについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。ノード１Ｄについては、タイムスタンプ時間差は負の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。
【００４３】
この場合、ノード１Ａの現在時刻時間差が第２の閾値を超過することから、ノード１Ａの故障と判定される。なお、この判定結果は、ノード１Ｂから右回りのノード１Ｃまでのリンクもしくはノードに故障があり、ノード１Ｄから左回りのノード１Ｃまでのリンクもしくはノードに故障があることと矛盾するものではない。
【００４４】
図８は故障の他の例を示す図であり、図１に示したデータ通信システムにおいて、ノード１Ｄとノード１Ｃを接続するリンクが故障を起こした場合を想定している。
【００４５】
この例では、ノード１Ｃから見て、ノード１Ａについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。ノード１Ｂについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。ノード１Ｄについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。
【００４６】
この場合、ノード１Ａから右回りのノード１Ｃまでのリンクもしくはノードに故障があり、ノード１Ｂから右回りのノード１Ｃまでのリンクもしくはノードに故障があり、ノード１Ｄから右回りのノード１Ｃまでのリンクもしくはノードに故障があることになるため、それらの共通箇所として、ノード１Ｄとノード１Ｃの間のリンクの故障と判定される。
【００４７】
なお、自ノードに直接に接続されるリンクの故障については、自ノードの通信ポートにおける電気信号の変化や通信プロトコルのレスポンス等から直接に故障を判定することもできる。
【００４８】
図９は故障の他の例を示す図であり、図１に示したデータ通信システムにおいて、ノード１Ｄ自体が故障を起こした場合を想定している。
【００４９】
この例では、ノード１Ｃから見て、ノード１Ａについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。ノード１Ｂについては、タイムスタンプ時間差は正の値で第１の閾値を超過することとなり、現在時刻時間差は計算対象外となる。ノード１Ｄについては、タイムスタンプ時間差は第１の閾値以下となり、現在時刻時間差は第２の閾値を超過することとなる。
【００５０】
この場合、ノード１Ｄの現在時刻時間差が第２の閾値を超過することから、ノード１Ｄの故障と判定される。なお、この判定結果は、ノード１Ａから右回りのノード１Ｃまでのリンクもしくはノードに故障があり、ノード１Ｂから右回りのノード１Ｃまでのリンクもしくはノードに故障があることと矛盾するものではない。
【００５１】
なお、隣接ノードの故障については、データ通信系の故障である場合は、通信ポートにおける電気信号の変化や通信プロトコルのレスポンス等から直接に故障を判定することもできる。
【００５２】
リンクもしくはノードの故障が１箇所の場合を例にして説明したが、２箇所以上の故障が起きた場合についても、同様に、故障箇所の特定もしくは故障範囲の絞り込みを行うことができる。
【００５３】
＜総括＞
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００５４】
１、１Ａ〜１Ｄ      ノード
１１                制御部
１１１              送信バッファ
１１２              受信バッファ
１１３              送信バッファ
１１４              受信バッファ
１１５              各ノード最新データ保持部
１１６              故障判定結果保持部
１２、１３          通信部
【図１】
0005881009.tif 000002
【図２】
0005881009.tif 000003
【図３】
0005881009.tif 000004
【図４】
0005881009.tif 000005
【図５】
0005881009.tif 000006
【図６】
0005881009.tif 000007
【図７】
0005881009.tif 000008
【図８】
0005881009.tif 000009
【図９】
0005881009.tif 000010