(57)【要約】【課題】ネットワーク上の各ノードの同期補正機能に故障が発生しているか否かを診断できるようにして、適切な通信を継続的に行えるようにする。【解決手段】ネットワークのノードとして接続される各ＥＣＵの同期補正機能に故障診断部１２５を付加する。故障診断部１２５は、補正量算出部１２２で算出された同期補正量に所定のシフト量を加算して、同期補正部１２４にシフト量を加算した同期補正量に基づいた同期補正を行わせる。そして、次のサイクルで補正量算出部１２２で算出される同期補正量が、前回のサイクルで加算したシフト量から推定される値となっているか否かにより、同期補正部１２４に故障が発生しているか否かを診断する。【選択図】図７
2008022066.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の各ノードが他のノードとの間で同期をとって通信を行う同期型の通信ネットワークシステムにおいて、
前記ネットワーク上の各ノードが、
他のノードとの間でのフレーム送受信タイミングの誤差を検出する誤差検出手段と、
前記誤差検出手段で検出された誤差に基づいて、自ノードの同期補正量を算出する補正量算出手段と、
前記補正量算出手段で算出された同期補正量に基づいて、自ノードのフレーム送受信タイミングを調整する同期補正手段と、
前記補正量算出手段で算出された同期補正量に所定のシフト量を加算して、前記同期補正手段に当該シフト量を加算した同期補正量に基づいた同期補正を行わせ、次の通信サイクルにおいて前記補正量算出手段で算出される同期補正量が前記シフト量から推定される値となっているか否かによって、前記同期補正手段の故障の有無を診断する故障診断手段とを備えることを特徴とする通信ネットワークシステム。
【請求項２】
前記故障診断手段は、前記補正量算出手段で算出された同期補正量に正の値のシフト量を加算して行う故障診断と、前記補正量算出手段で算出された同期補正量に負の値のシフト量を加算して行う故障診断とを交互に繰り返して行うことを特徴とする請求項１に記載の通信ネットワークシステム。
【請求項３】
前記故障診断手段は、前記補正量算出手段で定常的に算出される同期補正量の定常値と予め定められた同期補正量の最大許容値とに基づいて、前記シフト量を設定することを特徴とする請求項１に記載の通信ネットワークシステム。
【請求項４】
前記ネットワークが、ゲートウェイを介して接続された複数のサブネットワークから構成され、
各サブネットワーク上の各ノードの前記補正量算出手段は、前記誤差検出手段で検出された誤差と、前記ゲートウェイによって算出された複数サブネットワーク間の同期ずれを補正するための外部補正量とに基づいて、自ノードの同期補正量を算出することを特徴とする請求項１に記載の通信ネットワークシステム。
【請求項５】
ネットワーク上の各ノードが他のノードとの間で同期をとって通信を行う同期型の通信ネットワークシステムにおける各ノードの同期補正機能に故障が生じているか否かを診断する故障診断方法において、
前記各ノードの同期補正機能は、他のノードとの間でのフレーム送受信タイミングの誤差を検出して、当該誤差に基づいて自ノードの同期補正量を算出し、当該同期補正量に基づいて自ノードのフレーム送受信タイミングを調整するものであり、
前記同期補正量に所定のシフト量を加算して、当該シフト量を加算した同期補正量に基づく同期補正の結果、次の通信サイクルにおいて算出される同期補正量が前記シフト量から推定される値となっているか否かによって、同期補正機能の故障の有無を診断することを特徴とする同期補正機能の故障診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上の各ノードが他のノードとの間で同期をとって通信を行う同期型の通信ネットワークシステム、及び、同期型通信ネットワークシステムにおける各ノードの同期補正機能の故障有無を診断する故障診断方法に関する。
【背景技術】
【０００２】
車両に搭載される通信ネットワークシステムのプロトコルの１種として、ＦｌｅｘＲａｙ（Daimler Chrysler AGの登録商標）と呼ばれる通信プロトコルが知られている。このＦｌｅｘＲａｙは、高い信頼性を確保しながら最大１０Ｍｂｐｓ程度の通信速度を実現するものであり、車両走行に直接関わる部分の電子化制御（Ｘ−ｂｙ−ｗｉｒｅ）を実用化する上での重要な技術として注目されている。
【０００３】
ＦｌｅｘＲａｙでは、データ転送方式としてタイムトリガ方式を採用しており、ネットワーク上の各ノードは、ネットワーク内での共通の時間認識であるグローバルタイムに従い、１通信サイクルの中で自ノードに割り当てられたデータ転送帯域（時間的な区分であり、スロットと呼ばれる。）を認識して、このスロット内でフレームの送信を行う必要がある。このため、ネットワーク上の各ノードは、クロック同期によって他のノードとの間の時間認識のずれを吸収するようにしている。
【０００４】
各ノードのクロック同期は、通常、ネットワーク起動時におけるスタートアップ処理において実施されるが、その後の稼動に伴う温度変化や電圧変動、クロック発生器の製造上のばらつき、経時劣化などにより、各ノード間で徐々に時間認識のずれ（同期ずれ）が生じることも想定される。そこで、ネットワーク上の各ノードは、このような同期ずれを補正する同期補正機能を備えており、自ノードの同期補正を定期的に行うことにより、他のノードとの間での適切なデータ転送を継続的に行えるようにしている。
【０００５】
なお、ＦｌｅｘＲａｙにおける各ノードの同期補正の手法については、下記非特許文献１に詳細が記載されている。
【非特許文献１】「FlexRay Communication System Protocol Specification Version2.1 RevisionA」，２００５年１２月，ｐ．１６９−１９３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、車両に搭載される通信ネットワークシステムでは、ネットワーク上の各ノードの動作環境が、振動や温度変化などが頻繁に生じうる過酷な環境となるため、上述した各ノードの同期補正機能自体に故障が発生することも考えられる。しかしながら、従来は、各ノードの同期補正機能自体に故障が発生した場合の対策は講じられていないため、ネットワーク上のあるノードの同期補正機能に故障が発生すると、通信サイクルを繰り返すごとに当該ノードの同期が徐々にずれて、ある段階で同期のずれ量が許容範囲を超え、当該ノードの送信フレームがスロットの境界を跨ぐ境界違反（Boundary Error）が発生して、ネットワーク全体に悪影響を及ぼすという結果を招く場合がある。
【０００７】
本発明は、以上のような従来の実情に鑑みて創案されたものであって、ネットワーク上の各ノードの同期補正機能に故障が発生しているか否かを診断できるようにして、同期補正機能に故障が発生しているノードを放置することによる上述した問題を回避して、適切な通信を継続的に行えるようにした通信ネットワークシステム及び同期補正機能の故障診断方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明は、ネットワーク上の各ノードが、他のノードとの間でのフレーム送受信タイミングの誤差を検出して、当該誤差に基づいて自ノードの同期補正量を算出し、当該同期補正量に基づいて自ノードのフレーム送受信タイミングを調整するといった同期補正機能を備えていることを前提に、前記同期補正量に所定のシフト量を加算して、当該シフト量を加算した同期補正量に基づく同期補正の結果、次の通信サイクルにおいて算出される同期補正量が前記シフト量から推定される値となっているか否かによって、同期補正機能の故障の有無を診断する機能を付加することで、上述した課題を解決する。
【発明の効果】
【０００９】
本発明によれば、ネットワーク上の何れかのノードの同期補正機能に故障が発生したときに、その故障を迅速且つ的確に検出できるので、同期補正機能に故障が発生しているノードを放置することに起因する境界違反の発生を未然に防止して、適切な通信を継続的に行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態として、通信プロトコルにＦｌｅｘＲａｙを採用した車載用の通信ネットワークシステムに本発明を適用した例について、具体的に説明する。
【００１１】
［第１の実施形態］
本実施形態の通信ネットワークシステムは、図１に示すように、ＥＣＵ１〜ＥＣＵ９の９つのＥＣＵ（Electronic Control Unit）がネットワークのノードとしてＦｌｅｘＲａｙバス１０に接続されて構成され、これら９つのＥＣＵ１〜９間でＦｌｅｘＲａｙプロトコルに従った通信を行って、情報を共有する車載用のネットワークシステムである。なお、ＦｌｅｘＲａｙでは、通信に冗長性を持たせて信頼性を確保するために、チャンネルＡ，Ｂの２チャンネルでのデュアル通信をサポートしているが、本実施形態では、説明の簡単のために、１チャンネルのみでの通信を行うものとして説明する。
【００１２】
ＦｌｅｘＲａｙでのデータ転送の仕組みを図２に概略的に示す。ＦｌｅｘＲａｙでのデータ転送は、通信ネットワーク稼動中に繰り返されるコミュニケーション・サイクルを単位として行われる。コミュニケーション・サイクルは、図２に示すように、スタティック・セグメントと、ダイナミック・セグメントと、シンボル・ウィンドウと、ネットワーク・アイドルタイムの４つのセグメントから構成される。
【００１３】
スタティック・セグメントは、フレームサイズ一定でデータ転送を行う領域であり、複数のスタティック・スロットから構成される。スタティック・スロットは、スタティック・セグメントにおいて１フレームを送信する時間区分（帯域）であり、全てのスタティック・スロットの時間は等しく、そのスロット内で送信されるフレームの長さも等しい。
【００１４】
ダイナミック・セグメントは、フレームサイズ可変でデータ転送を行う領域であり、複数のダイナミック・スロットから構成される。ダイナミック・スロットは、ダイナミック・セグメントにおいて１フレームを送信する時間区分であり、その長さや数が、フレーム長や数の変化に柔軟に対応できるように可変とされ、最小のスロット単位であるミニスロットの整数倍の長さに設定される。
【００１５】
シンボル・ウィンドウは、ネットワークのスタートアップ時やウェイクアップ時などにオプションとして使用される領域である。また、ネットワーク・アイドルタイムは、エラー訂正や、詳細を後述するクロック同期の同期補正量算出などで使用される領域である。
【００１６】
ＦｌｅｘＲａｙのフレーム・フォーマットを図３に概略的に示す。ＦｌｅｘＲａｙのフレームは、図３に示すように、ヘッダ・セグメント（５バイト）と、ペイロード・セグメント（０〜２５４バイト）と、トレイラ・セグメント（３バイト）の３つのセグメントで構成される。ヘッダ・セグメントには、送信するデータに関するヘッダ情報が格納され、ペイロード・セグメントには、データそのものが格納される。また、トレイラ・セグメントはフレーム全体でエラーがあるかどうかをチェックする機能を持ち、ヘッダ・セグメントとペイロード・セグメントをＣＲＣ（Cyclic Redundancy Check）にかけた結果が格納される。
【００１７】
本実施形態の通信ネットワークシステムにおいて、ネットワークのノードとして接続されるＥＣＵ１〜ＥＣＵ９は、上述したコミュニケーション・サイクルのスタティック・セグメントやダイナミック・セグメントの中で自ＥＣＵのフレーム送信用に割り当てられたスロットを認識して、当該スロット内でフレームの送信を行う。このとき、各スロットのサイズは送信するフレームが十分に収まる長さに設定されており、ＥＣＵ１〜ＥＣＵ９は、自ＥＣＵのフレーム送信用に割り当てられたスロットの前後の境界をフレームが跨いでしまう境界違反が生じないように、図４に模式的に示すように、スロット境界との間に余裕を持たせた状態で当該スロット内でフレームを送信する。
【００１８】
ＥＣＵ１〜ＥＣＵ９は、後述するホストＣＰＵのアプリケーションレベルでの機能は各々異なるものの、通信に関しては、基本的に共通の構成、機能を有している。以下では、これらＥＣＵ１〜ＥＣＵ９を特に区別する場合を除いて、ＥＣＵ１００と総称して説明する。
【００１９】
ＥＣＵ１００のハード的な内部構成を図５に示す。ＥＣＵ１００の内部には、図５に示すように、主要な構成要素として、ホストＣＰＵ１０１と、コミュニケーション・コントローラ１０２と、バス・ドライバ１０３とが設けられている。ホストＣＰＵ１０１は、ＥＣＵ１００の全体を制御するコントローラであり、コミュニケーション・コントローラ１０２は、ＥＣＵ１００の通信を制御するコントローラである。また、バス・ドライバ１０３は、ＦｌｅｘＲａｙバス１０とコミュニケーション・コントローラ１０２との間での物理的信号と論理的信号との信号変換を行うものである。なお、ＦｌｅｘＲａｙバス１０は、例えばＵＴＰ（Unshield Twisted Pair）ケーブルなどからなり、コネクタ１０４によりＥＣＵ１００と接続され、ＥＣＵ１００の内部において、受信時のノイズを除去するフィルタ１０５を介してバス・ドライバ１０３に接続されている。
【００２０】
コミュニケーション・コントローラ１０２の機能構成を図６に示す。コミュニケーション・コントローラ１０２には、ソフトウェアで実現される機能構成として、図６に示すように、ホストＣＰＵ１０１とのデータ送受信を行うインターフェース回路（ＣＨＩ：controller host interface）１１１、コミュニケーション・コントローラ１０２の状態遷移を制御するプロトコル・エンジン（ＰＯＣ：protocol operation control）１１２、クロック同期を行うクロック同期回路（clock synchronization processing）１１３、通信クロックの生成を行うマクロティック生成回路（macrotick generation）１１４、通信起動時のシーケンス制御を行うスタートアップ回路（clock synchronization startup）１１５、メモリ管理を行うバッファ処理回路（media access control）１１６、フレームエンコード／デコード回路（frame and symbol processing）１１７およびビットコーディング／ビットデコーディング回路（coding/decoding processes）１１８の各機能構成が設けられる。なお、チャンネルＡ，Ｂの２チャンネルでのデュアル通信を行う場合には、上述した各機能構成のうちで、スタートアップ回路１１５、バッファ処理回路１１６、フレームエンコード／デコード回路１１７およびビットコーディング／ビットデコーディング回路１１８が、Ａチャンネル用とＢチャンネル用とでそれぞれ独立に設けられる。
【００２１】
本実施形態の通信ネットワークシステムは、ネットワークのノードとして接続される各ＥＣＵ１００のコミュニケーション・コントローラ１０２における上述した各機能構成のうちで、特に、クロック同期回路１１３で実行される同期補正の機能に故障が発生しているかどうかを診断できるようにしたことに大きな特徴を有している。以下では、この本実施形態に特徴的な部分を中心に、ＥＣＵ１００のコミュニケーション・コントローラ１００による同期補正の処理について更に詳しく説明する。
【００２２】
本実施形態の通信ネットワークシステムは、通信プロトコルとしてタイムトリガ方式のＦｌｅｘＲａｙを採用しており、ネットワークのノードとして接続される各ＥＣＵ１００は、ネットワーク内での共通の時間認識であるグローバルタイムに従って、コミュニケーション・サイクルのスタティック・セグメントやダイナミック・セグメントの中で自ＥＣＵに割り当てられたスロットを認識して、当該スロット内でフレームの送信を行う必要がある。そのため、各ＥＣＵ１００のコミュニケーション・コントローラ１０２は、スタートアップ回路１１５でのスタートアップ処理の際に、自ＥＣＵ固有のクロックに依存するローカルタイムとグローバルタイムとの差を認識し、クロック同期によりその差を補正するようにしている。
【００２３】
各ＥＣＵ１００のクロック同期は、このようにコミュニケーション・コントローラ１０２のスタートアップ回路１１５でスタートアップ処理を行う際に実施されるが、その後の稼動に伴う温度変化や電圧変動、クロック発生器の製造上のばらつき、経時劣化などにより、各ＥＣＵ１００間での同期は徐々にずれていく場合がある。そのため、各ＥＣＵ１００のコミュニケーション・コントローラ１０２は、クロック同期回路１１３で同期補正処理を定期的に行うことで、自ＥＣＵ１００の時間認識のずれを許容範囲内に抑えて、他のＥＣＵとの間での適切なデータ転送を継続的に行えるようにしている。
【００２４】
各ＥＣＵ１００の内部で扱われる時間単位には、マクロティック（ＭＴ）とマイクロティック（μＴ）とがある。マイクロティックは、各ＥＣＵ１００のコミュニケーション・コントローラ１０２のクロックによって決まる時間単位であり、各ＥＣＵ１００ごとのローカルな時間の最小単位である。また、マクロティックは、ネットワーク全体にわたって共通の時間単位であり、マクロティックの整数倍の長さに設定される（ただし、１マクロティックあたりのマイクロティックの数はＥＣＵ間で異なる場合もある。）。上述したデータ転送の周期であるコミュニケーション・サイクルや、その下位レベルのスタティック・スロット、ダイナミック・スロットは、全てこのマクロティックを単位として、その長さがマクロティックの整数倍に設定されている。また、ＥＣＵ１００のコミュニケーション・コントローラ１０２による同期補正は、このマクロティックをもとに実行される。
【００２５】
本実施形態の通信ネットワークシステムにおいて、ネットワークのノードとして接続される各ＥＣＵ１００のコミュニケーション・コントローラ１０２のクロック同期回路１１３で実現される同期補正機能の詳細を図７に示す。各ＥＣＵ１００の同期補正機能は、図７に示すように、誤差検出部１２１と、補正量算出部１２２と、同期エラー判定部１２３と、同期補正部１２４と、故障診断部１２５とからなる。
【００２６】
誤差検出部１２１は、自ＥＣＵの認識しているグローバルタイムを基準として想定されるフレーム受信タイミングと、実際に他のＥＣＵからのフレームを受信したタイミング、すなわち、他のＥＣＵが実際にフレームを送信したタイミングとの相対的な誤差を検出する。この誤差検出部１２１による誤差の検出は、上述したコミュニケーション・サイクルのスタティック・セグメントにおいて他のＥＣＵのフレーム送信用に割り当てられたスタティック・スロットを対象として行われ、予め定められたサンプリング数分だけ、他のＥＣＵとの間の相対的なグローバルタイムの認識誤差を検出する。
【００２７】
補正量算出部１２２は、誤差検出部１２４で検出されたサンプル数分の誤差の値に基づいて、自ＥＣＵと他のＥＣＵとの間の相対的な時間認識のずれを補正するための同期補正量を算出する。この補正量算出部１２２による同期補正量の算出は、上述したコミュニケーション・サイクルのネットワーク・アイドルタイムにおいて行われ、その算出の手法としては、ＦＴＭ（Fault-tolerant midpoint）アルゴリズムが用いられる。ＦＴＭアルゴリズムは、サンプリング数分の誤差の値の大きい方と小さい方から、サンプリング数に応じて定められる所定個数ｋの誤差の値を取り除き、残った誤差の値の最大値と最小値との平均値から、同期補正量を求めるものである。
【００２８】
ＦＴＭアルゴリズムによる同期補正量の算出について具体的な例を挙げて説明すると、例えば、誤差検出部１２４での誤差検出のサンプリング数が８に設定され、ＥＣＵ１が図８（ａ）に示すように、ＥＣＵ２との間での誤差の値として−３、ＥＣＵ３との間での誤差の値として−５、ＥＣＵ４との間での誤差の値として６、ＥＣＵ５との間での誤差の値として７、ＥＣＵ６との間での誤差の値として８、ＥＣＵ７との間での誤差の値として１１、ＥＣＵ８との間での誤差の値として１３、ＥＣＵ９との間での誤差の値として１５をそれぞれ検出したとする。この場合、図８（ｂ）に示すように、サンプリング数８に対応するｋの値は２と定められているので、図８（ｃ）に示すように、ＥＣＵ１の誤差検出部１２４で検出した８つの誤差の値のうち、大きい方の２つの値である１５と１３、小さい方の２つの値である−５と−３が除かれ、残った値の最大値１１と最小値６との平均値である８（小数点以下切り捨て）が、同期補正量として算出される。
【００２９】
同期エラー判定部１２３は、補正量算出部１２２で算出された同期補正量が予め定めた補正値リミッタを超える場合に、ＥＣＵ１００に同期エラーが発生していると判定する。この補正値リミッタは、フレームがスロットの境界を跨いでしまうエラーである境界違反が生じる直前の値に設定され、境界違反が生じない範囲で同期補正量に基づいた同期補正が行われるようにしている。
【００３０】
同期補正部１２４は、補正量算出部１２２で算出された同期補正量に基づいて、自ノードの認識しているグローバルタイムを修正する同期補正を行い、この修正したグローバルタイムに基づいて自ノードのフレーム送受信タイミングを調整する。この同期補正部１２４による自ノードのグローバルタイムの修正は、上述したコミュニケーション・サイクルのネットワーク・アイドルタイムにおいて、補正量算出部１２２による同期補正量の算出が行われた後に実施され、自ノードのフレーム送受信タイミングの調整は、次のコミュニケーション・サイクルのスタティック・セグメントやダイナミック・セグメントで実施される。
【００３１】
本実施形態の通信ネットワークシステムにおいて、ネットワークのノードとして接続される全てのＥＣＵ１〜９でこの同期補正部１２４が正常に機能している場合には、各ＥＣＵ１〜８のそれぞれが共通のグローバルタイムに従って自ノードのフレーム送信用に割り当てられたスロット内でフレームを送信するので、図９（ａ）に示すように、各ＥＣＵ１〜８は、各スロット内でフレームの送信と受信とを正常に行うことができる。しかしながら、ネットワークのノードとして接続されるいずれかのＥＣＵ、例えばＥＣＵ１の同期補正部１２４に故障が生じた場合には、この同期補正部１２４に故障が生じたＥＣＵ１の同期が徐々にずれて、図９（ｂ）に示すように、当該ＥＣＵ１で受信したフレームがスロット境界を跨ぐことによる境界違反が発生するだけでなく、他のＥＣＵ２〜９も、ＥＣＵ１からのフレームがスロット境界を跨ぐことによる境界違反が発生し、ネットワーク全体に悪影響を及ぼすことになる。
【００３２】
そこで、本実施形態の通信ネットワークシステムにおいては、ネットワークのノードとして接続される各ＥＣＵ１〜９のクロック同期回路１１３にそれぞれ故障診断部１２５を設け、この故障診断部１２５により、同期補正部１２４に故障が発生しているかどうかを診断できるようにしている。
【００３３】
故障診断部１２５は、故障診断のために同期補正部１２４を特別に動作させる診断準備プロセスと、同期補正部１２４の故障の有無を判定する判定プロセスとの２段階のプロセスで同期補正部１２４の故障診断を行う。診断準備プロセスと判定プロセスとは、２周期分のコミュニケーション・サイクルで順次連続して行われ、例えば、奇数周期のコミュニケーション・サイクルにおいて診断準備プロセスが実施され、偶数周期のコミュニケーション・サイクルにおいて判定プロセスが実施される。具体的には、故障診断部１２５は、まず、奇数周期のコミュニケーション・サイクルでの診断準備プロセスにおいて、補正量算出部１２２で算出された同期補正量に所定のシフト量を加算して、同期補正部１２４に当該シフト量を加算した同期補正量に基づいた同期補正を行わせる。その後、故障診断部１２５は、次の偶数周期のコミュニケーション・サイクルでの判定プロセスにおいて、補正量算出部１２２で算出される同期補正量が、前の周期で加算したシフト量から推定される値となっているか否かによって、同期補正部１２４の故障の有無を診断する。すなわち、診断準備プロセスでは同期補正部１２４に所定のシフト量を加算した同期補正を行わせるため、同期補正部１２４に故障が生じていなければ、当該ＥＣＵ１００の同期は、次のコミュニケーション・サイクルでシフト量相当分だけ逆方向に強制的にずらされることになる。そして、次のコミュニケーション・サイクルでは、補正量算出部１２２でこのずれを補正するための補正量が算出されることになる。したがって、判定プロセスでは、補正量算出部１２２でシフト量から推定される同期補正量が算出されるか否か、具体的には、例えば、補正量算出部１２２で算出された同期補正量がシフト量に応じたずれを補正するために所定の閾値を超えるような大きな値となっているか否か、或いは、診断準備プロセスにおいて同期補正量に加算したシフト量の符号とは逆の符号の同期補正量が算出されているか否かなどを確認することで、同期補正部１２４に故障が生じているか否かを診断することが可能となる。
【００３４】
ここで、診断準備プロセスにおいて補正量算出部１２２で算出された同期補正量に加算するシフト量は、当該シフト量を加算した同期補正を行うことで境界違反が発生することがないように、補正量算出部１２２で定常的に算出される同期補正量の定常値と、予め定められた同期補正量の最大許容値、すなわち上述した補正値リミッタの値とに基づいて設定される。具体的には、例えば、過去に補正量算出部１２２で算出された同期補正量を記憶しておいて、その最大値もしくは平均値を同期補正量の定常値として求め、この求めた定常値を補正値リミッタの値から減算して得られる値をシフト量とする。
【００３５】
また、同期補正部１２４の故障をより確実に診断するためには、シフト量は正の値と負の値とが交互に設定されるようにし、補正量算出部１２２で算出された同期補正量に正の値のシフト量を加算して行う故障診断と、補正量算出部１２２で算出された同期補正量に負の値のシフト量を加算して行う故障診断とを交互に繰り返して行うようにすることが望ましい。なお、故障診断部１２５が同期補正部１２４の故障診断を行うタイミングは特に限定されないが、例えば、ネットワーク確立後の初期診断時や、いずれかのＥＣＵ１００で境界違反のエラーが発生したとき、ネットワークの異常を診断するための所定の診断機からコマンドを受けたときなどが考えられる。
【００３６】
ここで、故障診断部１２５により実施される診断準備プロセスの一連の処理の流れについて、図１０のフローチャートを参照して説明する。なお、本例は、補正量算出部１２２で算出された同期補正量の最大値を補正値リミッタの値から減算して得られる値をシフト量として設定する場合の例である。
【００３７】
故障診断部１２５は、診断準備プロセスを開始すると、まず、ステップＳ１０１において、通信が正常に行われている状態で補正量算出部１２２により算出された過去の同期補正量の最大値（デフォルト値は０）と、補正量算出部１２２で算出された現在の同期補正量とを比較する。そして、現在の同期補正量の絶対値が過去の同期補正量の最大値よりも大きな値である場合には、ステップＳ１０２において、同期補正量の最大値を現在の同期補正量の値で更新し、現在の同期補正量の絶対値が過去の同期補正量の最大値以下であれば、過去の同期補正量の最大値をそのまま同期補正量の最大値として維持する。故障診断部１２５では、診断準備プロセスを実施するたびに以上の処理を繰り返すことで、同期補正量の最大値を最新の値で更新できるようにしている。
【００３８】
次に、故障診断部１２５は、ステップＳ１０３において、同期補正量の最大許容値である補正値リミッタの値から上述した同期補正量の最大値を減算することで、シフト量を求める。
【００３９】
次に、故障診断部１２５は、ステップＳ１０４において、同期補正量に加算するシフト量の正負が前回の診断時とは逆になるように、シフト量の正負の符号を決定する。そして、ステップＳ１０５において、ステップＳ１０３で求めたシフト量にステップＳ１０４で決定した符合を掛け合わせて診断に用いる最終的なシフト量を算出し、ステップＳ１０６において、ステップＳ１０５で算出した最終的なシフト量を補正量算出部１２２で算出された現在の同期補正量に加算して、このシフト量を加算した同期補正量に基づいて、同期補正部１２４に同期補正を行わせる。
【００４０】
次に、故障診断部１２５により実施される判定プロセスの一連の処理の流れについて、図１１のフローチャートを参照して説明する。なお、本例は、診断準備プロセスにおいて同期補正量に加算したシフト量の符号とは逆の符号の同期補正量が算出されているか否かを確認することで、同期補正部１２４の故障を診断する場合の例である。
【００４１】
故障診断部１２５は、判定プロセスを開始すると、まず、ステップＳ２０１において、補正量算出部１２２により算出された現在の同期補正量に、診断準備プロセスのステップＳ１０５でシフト量に掛け合わせた診断符号を掛け合わせて、故障判定値を算出する。ここで、同期補正部１２４に故障が発生しておらず正常に動作していれば、シフト量を打ち消す方向の同期補正量、つまり、診断符号とは逆の符号の同期補正量が算出されて、故障判定値は負の値となるはずである。
【００４２】
そこで、故障診断部１２５は、次のステップ２０２において、ステップＳ２０１で算出した故障判定値が負の値となっているか否かを確認し、故障判定値が負の値となっていれば、ステップＳ２０３において故障診断部１２５は正常に機能していると判断して、ステップＳ２０４においてエラーカウンタを０にクリアした後、判定プロセスを終了する。
【００４３】
一方、故障判定値が正の値となっている場合には、故障診断部１２５は、ステップＳ２０５においてエラーカウンタのインクリメントを行い、ステップＳ２０６において、エラーカウンタの値が予め定めた故障判定リミッタ値に達したか否かを判定する。そして、故障診断部１２５は、エラーカウンタの値が故障判定リミッタ値に達していなければ、ステップＳ２０７において同期補正部１２４の故障診断中として判定プロセスを終了し、エラーカウンタの値が故障判定リミッタ値に達していれば、ステップＳ２０８において同期補正部１２４に故障が発生していると断定して、例えばホストＣＰＵなどにその旨の情報を伝達して、判定プロセスを終了する。
【００４４】
以上、具体的な例を挙げて詳細に説明したように、本実施形態の通信ネットワークシステムによれば、ネットワークのノードとして接続される各ＥＣＵ１〜９が、コミュニケーション・コントローラ１０２で実行される同期補正の機能に故障診断の機能を付加して、同期補正機能に故障が発生したときには、その故障を迅速且つ的確に検出できるようにしているので、同期補正機能に故障が発生しているＥＣＵが放置されることに起因して、他のＥＣＵ全てに境界違反のエラーが発生してネットワーク全体に悪影響を及ぼすといった不都合を未然に防止することができ、適切な通信を継続的に行うことができる。
【００４５】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。本実施形態の通信ネットワークシステムは、図１２に示すように、ネットワーク全体が、ゲートウェイ２０を介して接続された第１サブネットワーク２１と第２サブネットワーク２２とから構成され、これら第１サブネットワーク２１に属するＥＣＵ１〜５と、第２サブネットワーク２２に属するＥＣＵ６〜９とが、外部同期機能によって互いに同期をとりながら、第１の実施形態で説明したＦｌｅｘＲａｙプロトコルに従った通信を行うものである。なお、外部同期の方法としては様々な方法が採用可能であるが、本実施形態における外部同期の方法は、第１サブネットワーク２１をマスタネットワークとして、第２サブネットワーク２２が第１サブネットワーク２１に同期を合わせるものとする。
【００４６】
本実施形態の通信ネットワークシステムにおいて、第１サブネットワーク２１と第２サブネットワーク２２とを接続するゲートウェイ２０は、マスタネットワークである第１サブネットワーク２１に対する第２サブネットワーク２２の同期ずれを外部同期補正値として算出する。そして、ゲートウェイ２０は、この外部同期補正値を第２サブネットワーク２２に属する各ＥＣＵ６〜９に通知する。
【００４７】
第２サブネットワーク２２に属する各ＥＣＵ６〜９は、第１の実施形態で説明したＥＣＵ１００と同一の構成を有し、コミュニケーション・コントローラ１０２のクロック同期回路１１３で実現される同期補正機能で外部同期も行う点が、第１の実施形態とは異なる。具体的には、第２サブネットワーク２２に属する各ＥＣＵ６〜９では、図７に示した補正量算出部１２２が、誤差検出部１２１で検出された誤差をもとにＦＴＭアルゴリズムを用いて算出したサブネットワーク内同期補正値に、ゲートウェイ２０から通知された外部同期補正値を加算して、最終的な同期補正量を算出するようにしている。そして、同期補正部１２４が、このサブネットワーク内同期補正値に外部同期補正値を加算して求めた同期補正量に基づいて、第１サブネットワーク２１も含めたネットワーク全体に対しての同期補正を行うようにしている。
【００４８】
また、第２サブネットワーク２２に属する各ＥＣＵ６〜９では、図７に示した故障診断部１２５が、診断準備プロセスにおいて、サブネットワーク内同期補正値に外部同期補正値を加算して求めた同期補正量に所定のシフト量を加算して、同期補正部１２４に当該シフト量を加算した同期補正量に基づいた同期補正を行わせるようにしている。なお、判定プロセスは、第１の実施形態と共通である。また、第１サブネットワーク２１に属する各ＥＣＵ１〜５は、故障診断部１２５で実施する診断準備プロセスも含め、全て第１の実施形態と共通である。
【００４９】
以上のように、本実施形態の通信ネットワークシステムでは、第１サブネットワーク２１に従属する第２サブネットワーク２２の各ＥＣＵ６〜９が、外部同期も含めたネットワーク全体での同期補正を行いながら、その同期補正機能の故障診断も行うようにしているので、第１の実施形態と同様に、同期補正機能に故障が発生したときにその故障を迅速且つ的確に検出することが可能で、同期補正機能に故障が発生しているＥＣＵが放置されることに起因して、他のＥＣＵ全てに境界違反のエラーが発生してネットワーク全体に悪影響を及ぼすといった不都合を未然に防止することができ、適切な通信を継続的に行うことができる。
【００５０】
なお、以上説明した通信ネットワークシステムは本発明の一適用例を例示したものであり、本発明の技術的範囲は、以上の説明で開示した内容に限定されるものではなく、これらの開示から容易に導き得る様々な代替技術も含まれることは勿論である。例えば、上述した通信ネットワークシステムでは、ネットワークトポロジとしてバス型を採用しているが、バス型以外にもスター型やバス型とスター型とのハイブリッドなど、様々なトポロジが採用可能である。また、本発明は、通信プロトコルにＦｌｅｘＲａｙプロトコルを採用した通信ネットワークシステムに限らず、ＦｌｅｘＲａｙプロトコルと同様の手法でノードの同期補正を行う他のプロトコルを採用した通信ネットワークシステムに対しても、有効に適用可能である。
【図面の簡単な説明】
【００５１】
【図１】本発明の第１の実施形態としての通信ネットワークシステムの全体構成を示す図である。
【図２】ＦｌｅｘＲａｙプロトコルにおけるデータ転送の仕組みを説明する図である。
【図３】ＦｌｅｘＲａｙプロトコルにおけるフレーム・フォーマットを示す図である。
【図４】スロット境界との間に余裕を持たせた状態でスロット内でフレームを送信する様子を示す図である。
【図５】ネットワークのノードとして接続される各ＥＣＵのハード的な内部構成を示す図である。
【図６】各ＥＣＵが備えるコミュニケーション・コントローラの機能ブロック図である。
【図７】コミュニケーション・コントローラのクロック同期回路で実現される同期補正機能の詳細な機能構成を示す図である。
【図８】ＦＴＭアルゴリズムを用いて同期補正量を算出する手法を説明する図である。
【図９】ネットワークのノードとして接続されるＥＣＵの同期補正機能に故障が発生した場合の影響を説明する図であり、（ａ）は同期補正機能が正常に動作している場合の通信の様子を示す図、（ｂ）はＥＣＵ１の同期補正機能に故障が発生した場合の通信の様子を示す図である。
【図１０】各ＥＣＵの故障診断部により実施される診断準備プロセスの一連の処理の流れを示すフローチャートである。
【図１１】各ＥＣＵの故障診断部により実施される判定プロセスの一連の処理の流れを示すフローチャートである。
【図１２】本発明の第２の実施形態としての通信ネットワークシステムの全体構成を示す図である。
【符号の説明】
【００５２】
１〜９  ＥＣＵ
１０  ＦｌｅｘＲａｙバス
１０１  ホストＣＰＵ
１０２  コミュニケーション・コントローラ
１０３  バス・ドライバ
１１３  クロック同期回路
１２１  誤差検出部
１２２  補正量算出部
１２３  同期エラー判定部
１２４  同期補正部
１２５  故障診断部
【図１】
2008022066.tif 000003
【図２】
2008022066.tif 000004
【図３】
2008022066.tif 000005
【図４】
2008022066.tif 000006
【図５】
2008022066.tif 000007
【図６】
2008022066.tif 000008
【図７】
2008022066.tif 000009
【図８】
2008022066.tif 000010
【図９】
2008022066.tif 000011
【図１０】
2008022066.tif 000012
【図１１】
2008022066.tif 000013
【図１２】
2008022066.tif 000014