(57)【特許請求の範囲】
【請求項１】
独立した異なるクロックで動作する複数の通信装置がタイムトリガ方式で通信を行う通信システムであって、
前記複数の通信装置の中の１つの通信装置であって、同期処理に係る基準フレームを送出する第１の通信装置と、
前記第１の通信装置を監視し、前記第１の通信装置から送出された前記基準フレームを受信し、受信した前記基準フレームに対する補正量に係る情報を判定結果として送出する第２の通信装置と、
前記第２の通信装置からの前記判定結果を収集し、収集した前記判定結果に基づいて前記基準フレームを送出する通信装置を変更するか否かを判断する第３の通信装置とを備え、
前記第３の通信装置が前記基準フレームを送出する通信装置を変更すると判断した場合には、前記複数の通信装置の中から１つの通信装置を選出して、前記基準フレームを送出する通信装置を、前記第１の通信装置から前記選出された通信装置に切り替えることを特徴とする通信システム。
【請求項２】
前記第２の通信装置から送出される、前記基準フレームに対する補正量に係る情報は、前記第１の通信装置から送出された前記基準フレームに基づく時間と、自通信装置内のクロックに基づく時間との差が、設定された閾値範囲内であるか否かを示す情報を含むことを特徴とする請求項１記載の通信システム。
【請求項３】
前記第２の通信装置から送出される、前記基準フレームに対する補正量に係る情報は、前記第１の通信装置から送出された前記基準フレームに対する自通信装置での補正値が設定された閾値範囲内であるか否かを示す情報を含むことを特徴とする請求項１記載の通信システム。
【請求項４】
前記第３の通信装置が前記基準フレームを送出する通信装置を変更すると判断した場合には、前記基準フレームを送出する通信装置を、前記第１の通信装置から前記第３の通信装置に切り替え、前記複数の通信装置の中から１つの通信装置を選出して、前記判定結果を収集する通信装置を、前記第３の通信装置から前記選出された通信装置に切り替えることを特徴とする請求項１〜３の何れか１項に記載の通信システム。
【請求項５】
前記第３の通信装置は、前記複数の通信装置の中の指定された前記第２の通信装置からの前記第１の通信装置に係る判定結果だけを収集することを特徴とする請求項１〜４の何れか１項に記載の通信システム。
【請求項６】
前記第３の通信装置は、前記複数の通信装置の中で、前記基準フレームを送出する通信装置の候補として、前記第１の通信装置の次に優先順位の高い通信装置であることを特徴とする請求項１記載の通信システム。
【請求項７】
前記第１の通信装置及び前記第３の通信装置として選出される優先度を定義したテーブルを設け、当該テーブルに従って前記複数の通信装置の中から前記第１の通信装置及び前記第３の通信装置をそれぞれ選出することを特徴とする請求項１記載の通信システム。
【請求項８】
前記通信装置毎に割り振られるフレームの送信順序に従って、前記複数の通信装置の中から前記第１の通信装置及び前記第３の通信装置をそれぞれ選出することを特徴とする請求項１記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関し、詳しくは通信可能に接続されている複数の通信装置を同期させるための同期制御技術に関する。
【背景技術】
【０００２】
近年の自動車には、エコロジー、省スペース、安全性といったニーズがあり、高速伝送、リアルタイム、高信頼性など極め細やかな制御が求められている。この要求に応えるために、自動車内の各モジュールは電子制御化が進められ、複数の電子制御装置（ＥＣＵ）が搭載されている。複数の電子制御装置は、ネットワークを構成し、装置間の通信によって各制御情報のやり取りが行われている。
【０００３】
電子制御装置間の通信において、現在普及している通信プロトコル（例えば車内ＬＡＮ規格であるＣＡＮなど）は、要求が高まる中、能力不足が課題と考えられている。そのため、車載ネットワークにおける次世代の通信方式として、ＦｌｅｘＲａｙプロトコルが注目されている。ＦｌｅｘＲａｙプロトコルは、高信頼性を目的とした通信方式であり、制御系やセーフティ系での適用が見込まれている。
【０００４】
ＦｌｅｘＲａｙプロトコルは、通信方式としてタイムトリガ方式（言い換えれば、時分割多重方式（ＴＤＭＡ方式））を採用しており、各ノード間において同期を取ることにより通信可能になる。しかしながら、ＦｌｅｘＲａｙプロトコル通信を行うネットワーク（以下、「ＦｌｅｘＲａｙネットワーク」とも称す。）には、ネットワーク上のノードで共用される基準となるクロックは存在しない。すなわち、ＦｌｅｘＲａｙネットワークでは、全体での厳格な絶対時間は規定されていない。
【０００５】
ＦｌｅｘＲａｙネットワークにおいて、各ノードは、同期ノードから送信された同期フレームの受信時刻を基に、個々のクロック（自ノードのクロック）でグローバル時間を算出してクラスタ（ネットワーク・システム）の同期化を行う。ここで、グローバル時間は、クラスタとしての時間である。
【０００６】
下記特許文献１には、複数のノードが接続されたＳＤＨ伝送方式のネットワークにおいて、クロックマスタノードとスレーブノードを固定せずに、各ノードが持つクロック毎に優先順位を設定し、クロックマスタノードを優先順位に応じて決定して他のスレーブノードがクロックを同期するクロック同期制御システムが提案されている。さらには、決定したクロックマスタノードに接続された外部クロックの障害時に、次に優先順位の高いクロックを有するノードが新しいクロックマスタノードとして切り替わり、そのクロックマスタノードに対するクロックの同期を行うことが記載されている。
【０００７】
また、下記特許文献２には、マスタクロックを供給するマスタノードがダウンした場合に通信不能に陥ってしまうことを防止するためのＬＡＮ制御機構が提案されている。詳細には、各ノードが、独立したクロックを供給する発振器を備え、受信部により抽出されたクロックに位相同期して発生したクロックと発振器から供給されるクロックとのいずれか一方を優先順位によってマスタクロックとして選択することが提案されている。
【０００８】
【特許文献１】特開２００３−５１８３１号公報
【特許文献２】特開平６−２９１７５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＦｌｅｘＲａｙネットワークにおいて、クラスタの同期化は、まず、リーディングスタートアップノードとフォローイングスタートアップノードとにより、クラスタ同期を形成する。このとき取得した同期パラメータを基に、現クラスタ内のノードと、クラスタ同期に参加する各ノードが、各補正を実施してクラスタ同期を形成する。このようにして図１４（Ａ）に示すように、クラスタ１１０内の各ノード（バス１０９に接続されたノードＡ１０１〜ノードＨ１０８）は、１つのグローバル時間で同期を確立し通信を行う。
【００１０】
上述のようにクラスタ同期を形成するため、同期の基準となるパラメータは、スタートアップ時の同期ノードに大きく依存し、中心周波数から大きく外れた状態でクラスタ同期を形成する可能性がある。また、クラスタ同期は、各同期ノードから送信される同期フレームにより、各ノードがフォールトトレラントミッドポイント（ＦＴＭ）アルゴリズムを使用して補正を実施し同期状態を維持する。
【００１１】
このアルゴリズムは、ネットワークの負荷が重い場合に末端同士のノードの補正計算に使用されるパラメータが大きく異なることになり、クラスタ同期の分極化を発生させるおそれがある。すなわち、ネットワークの負荷が重かったり、クラスタを形成するノードが離れていたりする場合には、２つのグローバル時間で同期化が行われ、図１４（Ｂ）に示すようにクラスタ内で分極するおそれがある。図１４（Ｂ）には、バス１０９に接続されたノードＡ１０１〜ノードＨ１０８が、第１のグローバル時間で同期を確立した同期グループＡ１１１（ノードＡ１０１〜ノードＤ１０４）と、第２のグローバル時間で同期を確立した同期グループＢ１１２（ノードＥ１０５〜ノードＨ１０８）とに分極した様子を示している。
【００１２】
このようなクラスタ同期の分極化が発生すると、フレームの送受信タイミングがずれてきて、受信側ノードにてフレームが取り込めなくなる。したがって、同期フレームも取り込めなくなり、同期外れの状態となって通信できなくなってしまう。
【００１３】
本発明は、クラスタ同期の分極化の発生を防止し、かつ適切な同期の基準となるノードを選択できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明の通信システムは、通信システムにおける複数の通信装置の中の１つの通信装置であって同期処理に係る基準フレームを送出する第１の通信装置と、第１の通信装置を監視し、第１の通信装置から送出された基準フレームを受信し、受信した基準フレームに対する補正量に係る情報を判定結果として送出する第２の通信装置と、第２の通信装置からの判定結果を収集し、収集した判定結果に基づいて基準フレームを送出する通信装置を変更するか否かを判断する第３の通信装置とを有する。第３の通信装置が基準フレームを送出する通信装置を変更すると判断した場合には、複数の通信装置の中から１つの通信装置を選出して、基準フレームを送出する通信装置を、第１の通信装置から選出された通信装置に切り替える。
【発明の効果】
【００１５】
本発明によれば、複数の通信装置の中の１つの通信装置が基準となって、通信装置の同期処理が行われるので、分極化の発生を防止し、通信装置が複数のグループに分極することを防ぐことができる。また、他の通信装置による基準フレームを送出する通信装置の監視結果に応じて基準フレームを送出する通信装置が適宜変更されるので、基準フレームを送出する通信装置を適切に選択でき、高品質な通信を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面に基づいて説明する。
【００１７】
図１は、本発明の一実施形態における通信システムの構成例を示す図である。
本実施形態における通信システムは、複数のノード（ノードＡ１〜ノードＨ８）がバス９を介して互いに通信可能に接続されている。各ノードは、独立した異なるクロックで動作し、ＦｌｅｘＲａｙプロトコルに基づいて通信を行う。なお、図１においては、８つのノードを有する通信システムを一例として示しているが、これに限定されるものではなく、通信システムが有するノード数は任意である。
【００１８】
ノードＡ１、ノードＣ３、ノードＥ５、及びノードＨ８は、同期ノード及び監視ノードとしての機能を有する。ノードＢ２、ノードＤ４、ノードＦ６、及びノードＧ７は、監視ノードとしての機能を有する。
【００１９】
同期ノードは、同期フレームを送出可能なノードであり、優先順位に応じて同期マスタノード及び次期同期マスタノードに選出される。同期マスタノードは、クラスタ同期の基準となる同期フレームを送信する同期ノードである。次期同期マスタノードは、同期マスタノードの次に優先順位の高い（次に同期マスタノードになる権利を有する）同期ノードである。
【００２０】
監視ノードは、同期マスタノードを監視するノードである。監視ノードは、同期マスタノードからの同期フレームに対して、自ノードの補正の閾値範囲内であるか否かを判定して結果を通知する。監視ノードより通知される判定結果は、次期同期マスタノードによって収集され、それを基に同期マスタノードの変更を実施するか否かの判断が行われる。
【００２１】
なお、図１に示したように、本実施形態における通信システムのすべてのノードが監視ノードとしての機能を有していることが望ましい。しかし、監視ノードとしての機能を必ずしも有していなくとも良く、同期ノードとしての機能だけを有するノードが存在しても良いし、同期ノード及び監視ノードのいずれの機能も有していないノードが存在しても良い。
【００２２】
図２は、本実施形態における適用可能なネットワークトポロジの例を示す図である。図１においてはバス型の通信システムを例示したが、本実施形態における通信システムのトポロジ（クラスタ構成）は、図２（Ａ）に一例を示すようなバス型に限らず、図２（Ｂ）に一例を示すようなスター型であっても良い。また、図２（Ｃ）に一例を示すようなバス型とスター型の混在（ハイブリッド型）であっても良い。
【００２３】
図３は、本実施形態における同期ノードの構成例を示すブロック図である。
同期ノード１０は、ＣＰＵ１１、メモリ１２、及びコミュニケーションコントローラ１５を有し、これらが内部バスを介して通信可能に接続されている。
【００２４】
ＣＰＵ１１は、同期ノード１０内の各構成部を総括的に制御する。例えば、ＣＰＵ１１は、ノードの初期設定処理、送信／受信データ制御処理、及びメモリ１２に格納されている同期ノード優先度テーブル１３や監視ノードテーブル１４に係るテーブル管理処理を実行する。また、例えば、ＣＰＵ１１は、マスタフラグの切り替え判定処理や、次期マスタフラグの切り替え判定処理を実行する。マスタフラグ及び次期マスタフラグについては後述する。
【００２５】
メモリ１２は、同期ノード１０を動作させるための各種処理プログラムやデータを記憶しているとともに、処理実行時のワークエリア等として機能する。メモリ１２には、同期ノード優先度テーブル１３及び監視ノードテーブル１４が格納されている。同期ノード優先度テーブル１３及び監視ノードテーブル１４は、通信システムを設計した段階で各同期ノードに共通のパラメータとして与えられる。
【００２６】
同期ノード優先度テーブル１３は、クラスタ内の同期ノードの優先順位（優先度）を管理するためのテーブルであり、例えばノードに割り振られたスロット番号とその優先度とが関連付けられている。また、監視ノードテーブル１４は、クラスタ内で監視ノードとして動作し、同期マスタノードの監視を実施するノードを定義するテーブルであり、例えば監視ノードとして動作するノードに割り振られたスロット番号が格納されている。このように、同期ノード優先度テーブル１３を設けることでクラスタ内の同期ノードの優先順位を任意に設定できる。また、監視ノードテーブル１４を設けることで、クラスタ内で監視ノードとして動作させるノードを容易に指定することができる。
【００２７】
なお、同期ノードに割り振られたスロット番号の小さい順もしくは大きい順に同期ノードの優先順位を設定したりして、テーブルによる優先順位の管理が不要である場合には、同期ノード優先度テーブル１３は具備していなくとも良い。また、監視ノードとして動作させるノードを選択せずに、クラスタ内のすべてのノードが監視ノードとして動作する場合には、監視ノードテーブル１４は具備していなくとも良い。
【００２８】
コミュニケーションコントローラ１５は、ＣＰＵインタフェース部１６、メッセージ情報部１７、スケジュール制御部１８、クラスタ同期制御部１９、レジスタ部２２、及びバス送受信制御部２４を有する。ＣＰＵインタフェース部１６は、内部バスを介してＣＰＵ１１等と通信を行うためのインタフェース部である。
【００２９】
メッセージ情報部１７は、送受信メッセージ（送受信データ）を格納する。送信データのメッセージ情報部１７への設定、及び受信データのメッセージ情報部１７からの読み出しは、ＣＰＵ１１によりＣＰＵインタフェース部１６を介して行われる。
【００３０】
スケジュール制御部１８は、スロットの構成やコミュニケーションサイクル等の通信スケジュールを管理制御し、バス送受信制御部２４を制御する。さらに、スケジュール制御部１８は、自ノードが同期マスタノードである場合には、マスタフラグの切り替えタイミングを管理する。また、スケジュール制御部１８は、自ノードが次期同期マスタノードである場合には、次期マスタフラグの切り替えタイミング及び監視ノードより通知される判定結果の収集タイミングを管理する。
【００３１】
クラスタ同期制御部１９は、マスタ制御部２０及び次期マスタ制御部２１を有し、クラスタ同期に係る制御を行う。マスタ制御部２０は、自ノードが同期マスタノードであって、バス送受信制御部２４にて受信したフレームから次期マスタフラグが抽出された場合には、ＣＰＵインタフェース部１６を介してＣＰＵ１１に通知する。ＣＰＵ１１は、当該通知を受けてマスタフラグの切り替え判定処理を行い、次のコミュニケーションサイクルから自ノードから送出するフレームにおけるマスタフラグを落とすよう制御を行う。
【００３２】
次期マスタ制御部２１は、自ノードが次期同期マスタノードである場合に、バス送受信制御部２４にて受信したフレームから抽出された各監視ノードでの判定結果を収集する。さらに、次期マスタ制御部２１は、スケジュール制御部１８から供給されるタイミングで、収集した判定結果を基に得られた同期マスタノードを適切でない（ＮＧ）と判定した監視ノード数と、レジスタ部２２内の判定結果ＮＧノード数レジスタ２３に予め設定されている判定値との比較を行う。その結果、次期マスタ制御部２１は、同期マスタノードをＮＧと判定した監視ノード数がレジスタ２３に設定された判定値を超えた場合には、ＣＰＵインタフェース部１６を介してＣＰＵ１１に通知する。ＣＰＵ１１は、当該通知を受けてマスタフラグ及び次期マスタフラグの切り替え処理を行い、次のコミュニケーションサイクルでは自ノードから送出するフレームの次期マスタフラグを立て、それに続くコミュニケーションサイクルでは自ノードから送出するフレームの次期マスタフラグを落としマスタフラグを立てるよう制御を行う。
【００３３】
バス送受信制御部２４は、スケジュール制御部１８からのタイミング（通信スケジュール）に従って、ＢＵＳを介した他のノードとの通信を行う。詳細には、バス送受信制御部２４は、送信時にはメッセージ情報部１７から送信データを読み出してＢＵＳに対し送信するとともに、自ノードの状態に応じてクラスタ同期に係る制御情報を送信する。また、バス送受信制御部２４は、受信時にはＢＵＳを介して受信したフレームの受信データをメッセージ情報部１７に設定するとともに、自ノードの状態に応じて受信フレームから抽出したクラスタ同期に係る情報をクラスタ同期制御部１９に設定する。
【００３４】
図４は、本実施形態における監視ノードの構成例を示すブロック図である。
監視ノード３０は、ＣＰＵ３１、メモリ３２、及びコミュニケーションコントローラ３３を有し、これらが内部バスを介して通信可能に接続されている。また、コミュニケーションコントローラ３３は、ＣＰＵインタフェース部３４、メッセージ情報部３５、スケジュール制御部３６、クラスタ同期制御部３７、レジスタ部３９、及びバス送受信制御部４１を有する。
【００３５】
ＣＰＵ３１は、監視ノード３０内の各構成部を総括的に制御する。例えば、ＣＰＵ３１は、ノードの初期設定処理、送信／受信データ制御処理、及びレジスタ部３９内の同期判定閾値レジスタ４０に対する管理処理等を実行する。メモリ３２は、監視ノード３０を動作させるための各種処理プログラムやデータを記憶しているとともに、処理実行時のワークエリア等として機能する。
【００３６】
ＣＰＵインタフェース部３４は、内部バスを介してＣＰＵ３１等と通信を行うためのインタフェース部である。メッセージ情報部３５は、送受信メッセージ（送受信データ）を格納する。送信データのメッセージ情報部３５への設定、及び受信データのメッセージ情報部３５からの読み出しは、ＣＰＵ３１によりＣＰＵインタフェース部３４を介して行われる。
【００３７】
スケジュール制御部３６は、スロットの構成やコミュニケーションサイクル等の通信スケジュールを管理制御し、バス送受信制御部４１を制御する。さらに、スケジュール制御部３６は、バス送受信制御部４１にて受信した同期マスタノードからの同期フレームに対する自ノードの補正値を生成する。すなわち、スケジュール制御部３６は、同期マスタノードからの同期フレームに基づくグローバル時間と、自ノードにおけるローカルな時間との差を認識し、その補正値を生成する。
【００３８】
クラスタ同期制御部３７は、マスタ判定制御部３８を有し、クラスタ同期に係る制御を行う。マスタ判定制御部３８は、スケジュール制御部３６で生成した同期フレームに対する補正値と、レジスタ部３９内の同期判定閾値レジスタ４０に設定されている閾値とを比較し、比較結果をバス送受信制御部４１に通知する。
【００３９】
バス送受信制御部４１は、スケジュール制御部３６からのタイミング（通信スケジュール）に従って、ＢＵＳを介した他のノードとの通信を行う。バス送受信制御部４１は、送信時にはメッセージ情報部３５から送信データを読み出してＢＵＳに対し送信するとともに、同期マスタノードの判定結果（マスタ判定フラグ）を送信する。また、バス送受信制御部４１は、受信時にはＢＵＳを介して受信したフレームの受信データをメッセージ情報部３５に設定する。
【００４０】
図５は、本実施形態における同期・監視ノードの構成例を示すブロック図である。
同期・監視ノード５０は、同期ノード及び監視ノードの両方の機能を有するノードであり、図３に示した同期ノード及び図４に示した監視ノードのそれぞれが持つ構成を備えている。
【００４１】
同期・監視ノード５０は、ＣＰＵ５１、メモリ５２、及びコミュニケーションコントローラ５５を有し、これらが内部バスを介して通信可能に接続されている。また、コミュニケーションコントローラ５５は、ＣＰＵインタフェース部５６、メッセージ情報部５７、スケジュール制御部５８、クラスタ同期制御部５９、レジスタ部６３、及びバス送受信制御部６６を有する。
【００４２】
ＣＰＵ５１は、同期・監視ノード５０内の各構成部を総括的に制御する。例えば、ＣＰＵ５１は、ノードの初期設定処理、送信／受信データ制御処理、及びテーブル管理処理を実行する。テーブル管理処理には、メモリ５２に格納されている同期ノード優先度テーブル５３や監視ノードテーブル５４に係る管理処理、及びレジスタ部６３内のレジスタ６４、６５に対する管理処理を含む。また、例えば、ＣＰＵ１１は、マスタフラグの切り替え判定処理や、次期マスタフラグの切り替え判定処理を実行する。
【００４３】
メモリ５２は、同期・監視ノード５０を動作させるための各種処理プログラムやデータを記憶しているとともに、処理実行時のワークエリア等として機能する。メモリ５２には、同期ノード優先度テーブル５３及び監視ノードテーブル５４が格納されている。同期ノード優先度テーブル５３及び監視ノードテーブル５４は、図３に示した同期ノード優先度テーブル１３及び監視ノードテーブル１４と同様である。
【００４４】
ＣＰＵインタフェース部５６は、内部バスを介してＣＰＵ５１等と通信を行うためのインタフェース部である。メッセージ情報部５７は、送受信メッセージ（送受信データ）を格納する。送信データのメッセージ情報部５７への設定、及び受信データのメッセージ情報部５７からの読み出しは、ＣＰＵ５１によりＣＰＵインタフェース部５６を介して行われる。
【００４５】
スケジュール制御部５８は、スロットの構成やコミュニケーションサイクル等の通信スケジュールを管理制御し、バス送受信制御部６６を制御する。さらに、スケジュール制御部５８は、自ノードが同期マスタノードである場合にはマスタフラグの切り替えタイミングを管理し、自ノードが次期同期マスタノードである場合には次期マスタフラグの切り替えタイミング及び監視ノードより通知される判定結果の収集タイミングを管理する。また、スケジュール制御部５８は、自ノードが同期マスタノードでない場合には、バス送受信制御部６６で受信した同期マスタノードからの同期フレームに対する自ノードの補正値を生成する。
【００４６】
クラスタ同期制御部５９は、マスタ制御部６０、次期マスタ制御部６１、及びマスタ判定制御部６２を有し、クラスタ同期に係る制御を行う。
マスタ制御部６０は、自ノードが同期マスタノードであって、バス送受信制御部６６で受信したフレームから次期マスタフラグが抽出された場合には、ＣＰＵインタフェース部５６を介してＣＰＵ５１に通知する。ＣＰＵ５１は、当該通知を受けてマスタフラグの切り替え判定処理を行い、次のコミュニケーションサイクルから自ノードから送出するフレームにおけるマスタフラグを落とすよう制御を行う。
【００４７】
次期マスタ制御部６１は、自ノードが次期同期マスタノードである場合に、バス送受信制御部６６で受信したフレームから抽出された各監視ノードでの判定結果（自ノードでの判定結果を含む。）を収集し、同期マスタノードをＮＧと判定した監視ノード数と判定結果ＮＧノード数レジスタ６４に設定されている判定値との比較を所定のタイミングで行う。その結果、次期マスタ制御部６１は、同期マスタノードをＮＧと判定した監視ノード数がレジスタ６４に設定された判定値を超えた場合には、ＣＰＵインタフェース部５６を介してＣＰＵ５１に通知する。ＣＰＵ５１は、当該通知を受けてマスタフラグ及び次期マスタフラグの切り替え処理を行い、次のコミュニケーションサイクルでは自ノードから送出するフレームの次期マスタフラグを立て、それに続くコミュニケーションサイクルでは自ノードから送出するフレームの次期マスタフラグを落としマスタフラグを立てるよう制御を行う。
【００４８】
マスタ判定制御部６２は、自ノードが同期マスタノードでない場合に、スケジュール制御部５８で生成した同期フレームに対する補正値と、同期判定閾値レジスタ６５に設定されている閾値とを比較し、比較結果をバス送受信制御部６６に通知する。
【００４９】
バス送受信制御部６６は、スケジュール制御部５８からのタイミング（通信スケジュール）に従って、ＢＵＳを介した他のノードとの通信を行う。バス送受信制御部６６は、送信時にはメッセージ情報部５７から送信データを読み出してＢＵＳに対し送信するとともに、自ノードの状態に応じてクラスタ同期に係る制御情報を送信する。また、バス送受信制御部６６は、受信時にはＢＵＳを介して受信したフレームの受信データをメッセージ情報部５７に設定するとともに、自ノードの状態に応じて受信フレームから抽出したクラスタ同期に係る情報をクラスタ同期制御部５９に設定する。
【００５０】
図６は、本実施形態にて送受信されるフレームフォーマットの一例を示す図である。
本実施形態では、従来のＦｌｅｘＲａｙフレームフォーマットにフィールドＮＦを追加した構成としている。図６に示したフレームフォーマットにおいて、フィールドＮＦ以外の各フィールドは、同期フレームであるか否かを示すビット（Sync Frame Indicator）等を含めて従来のＦｌｅｘＲａｙフレームフォーマットと同じであるので、その説明は省略する（例えば、FlexRay Protocol Specification Version 2.1 Revision A 参照。）。
【００５１】
フィールドＮＦは、マスタフラグフィールド、次期マスタフラグフィールド、及びマスタ判定フラグフィールドを有する。なお、フィールドＮＦにおける“Reserved”ビットは、フィールドＮＦを１バイトのフィールドとするために設けたものであり、本実施形態において必須ではない。
【００５２】
マスタフラグフィールドは、現在のクラスタ同期の基準となる同期ノードを示すマスタフラグに割り当てられた１ビットのフィールドである。同期マスタノードは、マスタフラグフィールドにマスタフラグを立てて同期フレームを送出する。
【００５３】
次期マスタフラグフィールドは、次に移行するクラスタ同期の基準の同期ノードを示す次期マスタフラグに割り当てられた１ビットのフィールドである。次期同期マスタノードは、同期マスタノードを移行させる場合には、次期マスタフラグフィールドに次期マスタフラグを立てて同期フレームを送出しクラスタ内に通知する。
【００５４】
マスタ判定フラグフィールドは、現在選出されている同期マスタノードの判定結果を示すマスタ判定フラグに割り当てられた３ビットのフィールドである。各監視ノードは、同期マスタノードの判定結果に応じたビットパターンをマスタ判定フラグフィールドに設定してフレームを送出し自ノードでの判定結果をクラスタ内に通知する。
【００５５】
図７は、マスタ判定フラグについて説明するための図である。
図７（Ａ）に示すように、自ノード（監視ノード）は、マスタフラグの立っている同期フレーム、すなわち同期マスタノードからの同期フレームに対する自ノードの補正値が、同期判定閾値レジスタに設定された閾値範囲内であるか否か、また正方向の補正であるか負方向の補正であるかを判定する。その判定結果に応じて、監視ノードは、図７（Ｂ）に示すように送出するフレームのマスタ判定フラグを設定する。
【００５６】
負方向の補正であり、かつ補正量が閾値範囲内である場合（図７（Ａ）に示す領域Ｐ２）には、監視ノードは、送出するフレームのマスタ判定フラグを“０００”に設定する。負方向の補正であり、かつ補正量が閾値より大きい場合（図７（Ａ）に示す領域Ｐ１）には、監視ノードは、送出するフレームのマスタ判定フラグを“００１”に設定する。同様に、正方向の補正であり、かつ補正量が閾値範囲内である場合（図７（Ａ）に示す領域Ｐ３）には、監視ノードは、送出するフレームのマスタ判定フラグを“０１０”に設定する。正方向の補正であり、かつ補正量が閾値より大きい場合（図７（Ａ）に示す領域Ｐ４）には、監視ノードは、送出するフレームのマスタ判定フラグを“０１１”に設定する。マスタフラグの立っている同期フレームを受信できなかった場合には、監視ノードは、同期マスタノードロスト状態であるとして、送出するフレームのマスタ判定フラグを“１ＸＸ”（ＸはＤｏｎ’ｔ  Ｃａｒｅ）に設定する。
【００５７】
なお、図７に示すマスタ判定フラグの設定例は一例であり、これに限定されるものではない。マスタ判定フラグのビットパターンによって、同期マスタノードの判定結果が一意に認識できれば良い。
【００５８】
図８は、本実施形態における同期ノードが有する同期ノード優先度テーブルの一例を示す図である。同期ノード優先度テーブルは、クラスタ内の同期ノードの優先順位（優先度）を管理するテーブルであり、ノードに割り振られたスロット番号とその優先度とが関連付けられている。図８に示す例では、スロット番号（Ｓｌｏｔ１）が割り振られた同期ノードの優先順位が高く、割り振られた同期ノードのスロット番号が、スロット番号（Ｓｌｏｔ５）、スロット番号（Ｓｌｏｔ３）、スロット番号（Ｓｌｏｔ８）、…の順に優先順位が低くなる。
【００５９】
例えば、スロット番号（Ｓｌｏｔ１）が割り振られた同期ノードが同期マスタノードであるとき、スロット番号（Ｓｌｏｔ５）が割り振られた同期ノードが次期同期マスタノードとなる。この状態で、同期マスタノードの移行が行われると、スロット番号（Ｓｌｏｔ５）が割り振られた同期ノードが同期マスタノードとなり、スロット番号（Ｓｌｏｔ３）が割り振られた同期ノードが次期同期マスタノードとなる。また、スロット番号（Ｓｌｏｔ１）が割り振られた同期ノードの優先順位が最も低くなる。
【００６０】
図９は、本実施形態における同期ノードが有する監視ノードテーブルの一例を示す図である。図９に示す例では、クラスタ内において、スロット番号（Ｓｌｏｔ１、Ｓｌｏｔ２、Ｓｌｏｔ３、Ｓｌｏｔ５、Ｓｌｏｔ６、Ｓｌｏｔ８）が割り振られたノードが監視ノードとして定義されている。この場合には、次期同期マスタノードは、スロット番号（Ｓｌｏｔ１、Ｓｌｏｔ２、Ｓｌｏｔ３、Ｓｌｏｔ５、Ｓｌｏｔ６、Ｓｌｏｔ８）が割り振られた各ノードからの判定結果を収集して、同期マスタノードの移行を実施するか否かを判断する。
【００６１】
次に、本実施形態における通信システムでの同期マスタノード移行動作について説明する。
以下の説明では、本実施形態における通信システムは、図１に示した８つのノード（ノードＡ１〜ノードＡ８）からなり、各ノードｉ（ｉ＝１〜８の整数）にはスロット番号（Ｓｌｏｔｉ）がそれぞれ割り振られているとする。また、同期ノードであるノードＡ１、ノードＣ３、ノードＥ５、及びノードＨ８は、図８に示した同期ノード優先度テーブル及び図９に示した監視ノードテーブルを有するものとする。すなわち、ノードＡ１、ノードＥ５、ノードＣ３、ノードＨ８の順に同期ノードの優先順位が設定され、かつノードＡ１、ノードＢ２、ノードＣ３、ノードＥ５、ノードＦ６、ノードＨ８が監視ノードとして動作する。また、各同期ノードの判定結果ＮＧノード数レジスタには、同期マスタノードをＮＧと判定した監視ノード数が４以上の場合には同期マスタノードの移行を行い、３以下の場合には同期マスタノードの移行を行わないよう判定値が設定されているとする。
【００６２】
図１０に示すように、同期マスタノードがノードＡ１からノードＥ５に移行する場合を一例に説明する。
図１１（Ａ）に示すように、クラスタ同期の基準に選出されている同期ノード（同期マスタノード）がノードＡ１であるとき、ノードＡ１は、マスタフラグを立てて同期フレームを送出する。クラスタ内の各ノードは、ノードＡ１から送出された同期フレームを基準にして同期処理を実行する。
【００６３】
また、各監視ノード（ノードＢ２、ノードＣ３、ノードＥ５、ノードＦ６、ノードＨ８）は、マスタフラグの立っている同期フレーム、すなわちノードＡ１からの同期フレームに対する自ノードの補正値が閾値範囲内であるか否かを判定し、判定結果をマスタ判定フラグに設定してフレームを送出しクラスタ内に通知する。ここでは、図１２に示すように、ノードＢ２における補正量が負方向の閾値範囲内であり、それ以外のノード（ノードＣ３、ノードＥ５、ノードＦ６、ノードＨ８）における補正量が負方向の閾値範囲外であるとする。
【００６４】
次に移行するクラスタ同期の基準の同期ノード（次期同期マスタノード）であるノードＥ５は、各監視ノード（ノードＢ２、ノードＣ３、ノードＥ５、ノードＦ６、ノードＨ８）より送出されたフレームからマスタ判定フラグを抽出することで、各監視ノードでの判定結果を収集する。さらに、次期同期マスタノードであるノードＥ５は、収集した判定結果を基にノードＡ１が同期マスタノードとしてＮＧであると判定した監視ノード数と、判定結果ＮＧノード数レジスタに設定された判定値との比較を行い、同期マスタノードの変更を実施するか否かを判断する。
【００６５】
この例では、４つのノード（ノードＣ３、ノードＥ５、ノードＦ６、ノードＨ８）が、ノードＡ１を同期マスタノードとしてＮＧであると判定しているので、次期同期マスタノードであるノードＥ５は、ノードＡ１が同期マスタノードとして適正ではないと判断する。そして、次のコミュニケーションサイクル（同期マスタ移行サイクル）において、図１１（Ｂ）に示すように、次期同期マスタノードであるノードＥ５は、次期マスタフラグを立てて同期フレームを送出し同期マスタノードの移行を実施することをクラスタ内に通知する。すなわち、次期同期マスタノードは、同期マスタノードの変更が必要であると判断した場合には、次期マスタフラグを立てて同期フレームを送出しクラスタ内に通知する。
【００６６】
なお、この同期マスタ移行サイクルにおいて、同期マスタノードであるノードＡ１は、マスタフラグを立てて同期フレームを送出するが、他の同期ノードから送出された次期マスタフラグの立っている同期フレームを認識することにより、次のコミュニケーションサイクルからマスタフラグを落とす。
【００６７】
図１１（Ｃ）に示すように、次期同期マスタノードであったノードＥ５は、同期マスタ移行サイクルに続く次のコミュニケーションサイクルにおいて新たな同期マスタノードとなり、次期マスタフラグを落とすとともにマスタフラグを立てて同期フレームを送出する。また、ノードＥ５の次に優先順位の高いノードＣ３が次期同期マスタノードとなる。クラスタ内の各ノードは、ノードＥ５から送出された同期フレームを基準にして同期処理を実行する。
【００６８】
また、各監視ノード（ノードＡ１、ノードＢ２、ノードＣ３、ノードＦ６、ノードＨ８）は、マスタフラグの立っているノードＥ５からの同期フレームに対する自ノードの補正値が閾値範囲内であるか否かを判定し、判定結果をマスタ判定フラグに設定してフレームを送出しクラスタ内に通知する。ここでは、図１３に示すように、ノードＡ１における補正量が正方向の閾値範囲外であり、ノードＢ２、ノードＣ３、ノードＨ８における補正量が正方向の閾値範囲内であり、ノードＦ６における補正量が負方向の閾値範囲内であるとする。すなわち、５つの監視ノードのうち、４つの監視ノードは、補正量が閾値範囲内であり、１つの監視ノードは、補正量が閾値範囲外であるとする。
【００６９】
次期同期マスタノードであるノードＣ３は、各監視ノード（ノードＡ１、ノードＢ２、ノードＣ３、ノードＦ６、ノードＨ８）より送出されたフレームからマスタ判定フラグを抽出し、各監視ノードでの判定結果を収集する。さらに、収集した判定結果を基にノードＥ５が同期マスタノードとしてＮＧであると判定した監視ノード数と、判定結果ＮＧノード数レジスタに設定された判定値との比較を行い、同期マスタノードの変更を実施するか否かを判断する。
【００７０】
上述のように１つのノードＡ１だけが、ノードＥ５を同期マスタノードとしてＮＧであると判定している。したがって、次期同期マスタノードであるノードＣ３は、ノードＥ５が同期マスタノードとして適切であると判断し、同期マスタノードの変更は行わずに状態を維持する。
【００７１】
なお、上述した説明において、次期同期マスタノードは、各監視ノードでの判定結果を基に同期マスタノードをＮＧと判定した監視ノード数と、判定結果ＮＧノード数レジスタに設定された判定値との比較結果に基づいて、同期マスタノードの変更を実施するか否かを判断するようにしているが、さらに各監視ノードでの判定結果を基に同期マスタノードロスト状態のノードがクラスタ内に存在する場合に同期マスタノードの変更を実施するようにしても良い。
【００７２】
本実施形態によれば、複数の同期ノードにおける１つを同期マスタノードとして、同期マスタノードからクラスタ同期の基準となる同期フレームを送信し、この同期フレームに基づいてクラスタの同期化を行うので、クラスタの分極化が発生することを防止して、通信システム内のノードが複数のグループに分極することを防ぐことができる。
【００７３】
また、クラスタ同期に参加するノードが、同期マスタノードからの同期フレームに対する自ノードの補正量が設定された閾値範囲内であるか否かの判定を行い、閾値範囲外であるノード数が所定数を超えた場合には同期マスタノードの変更を実施する。これにより、クラスタ同期の基準となる同期マスタノードに適切な同期ノードを選択することができ、高品質なフレーム通信を提供することができる。
【００７４】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００７５】
（付記１）独立した異なるクロックで動作する複数の通信装置がタイムトリガ方式で通信を行う通信システムであって、
前記複数の通信装置の中の１つの通信装置であって、同期処理に係る基準フレームを送出する第１の通信装置と、
前記第１の通信装置を監視している他の通信装置からの判定結果を収集し、収集した判定結果に基づいて前記基準フレームを送出する通信装置を変更するか否かを判断する第２の通信装置とを備え、
前記第２の通信装置が前記基準フレームを送出する通信装置を変更すると判断した場合には、前記複数の通信装置の中から１つの通信装置を選出して前記第１の通信装置に切り替えることを特徴とする通信システム。
（付記２）前記第１の通信装置を監視している通信装置は、前記第１の通信装置から送出された前記基準フレームに基づく時間と、自通信装置内のクロックに基づく時間との差が、設定された閾値範囲内であるか否かを判定し判定結果を送出することを特徴とする付記１記載の通信システム。
（付記３）前記第１の通信装置を監視している通信装置は、前記第１の通信装置から送出された前記基準フレームに対する自通信装置での補正値が設定された閾値範囲内であるか否かを判定し判定結果を送出することを特徴とする付記１記載の通信システム。
（付記４）前記第２の通信装置が前記基準フレームを送出する通信装置を変更すると判断した場合には、当該第２の通信装置を前記第１の通信装置に切り替え、前記複数の通信装置の中から１つの通信装置を選出して第２の通信装置とすることを特徴とする付記１記載の通信システム。
（付記５）前記第２の通信装置は、前記複数の通信装置の中の指定された通信装置からの前記第１の通信装置に係る判定結果だけを収集することを特徴とする付記１記載の通信システム。
（付記６）前記第１の通信装置に係る判定結果が収集される前記指定された通信装置を定義したテーブルを設けたことを特徴とする付記５記載の通信システム。
（付記７）前記第２の通信装置は、前記判定結果に基づき前記第１の通信装置が同期の基準として適していないと判定した通信装置数と、設定された通信装置数と比較して、前記基準フレームを送出する通信装置を変更するか否かを判断することを特徴とする付記１記載の通信システム。
（付記８）前記第１の通信装置及び前記第２の通信装置は、前記複数の通信装置の中から所定の順序で選出されることを特徴とする付記１記載の通信システム。
（付記９）前記第１の通信装置及び前記第２の通信装置として選出される優先度を定義したテーブルを設け、当該テーブルに従って前記複数の通信装置の中から前記第１の通信装置及び前記第２の通信装置をそれぞれ選出することを特徴とする付記８記載の通信システム。
（付記１０）前記通信装置毎に割り振られるフレームの送信順序に従って、前記複数の通信装置の中から前記第１の通信装置及び前記第２の通信装置をそれぞれ選出することを特徴とする付記８記載の通信システム。
（付記１１）前記通信装置間で送受信されるフレーム内に前記判定結果を示すフィールドを設けたことを特徴とする付記１記載の通信システム。
（付記１２）前記通信装置間で送受信されるフレーム内に、前記基準フレームであることを示すフラグを設定するフィールドを設けたことを特徴とする付記１記載の通信システム。
（付記１３）前記通信装置間で送受信されるフレーム内に、前記基準フレームを送出する通信装置の変更を行うことを示すフラグを設定するフィールドを設けたことを特徴とする付記１記載の通信システム。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態における通信システムの構成例を示す図である。
【図２】本実施形態における適用可能なネットワークトポロジの例を示す図である。
【図３】本実施形態における同期ノードの構成例を示す図である。
【図４】本実施形態における監視ノードの構成例を示す図である。
【図５】本実施形態における同期・監視ノードの構成例を示す図である。
【図６】本実施形態にて送受信されるフレームフォーマットの一例を示す図である。
【図７】マスタ判定フラグを説明するための図である。
【図８】同期ノード優先度テーブルの一例を示す図である。
【図９】監視ノードテーブルの一例を示す図である。
【図１０】本実施形態における同期マスタノード移行動作を示す図である。
【図１１】同期マスタノード移行動作の各サイクルにおける状態を説明するための図である。
【図１２】同期マスタ判定の判定結果の一例を示す図である。
【図１３】同期マスタ判定の判定結果の一例を示す図である。
【図１４】ＦｌｅｘＲａｙネットワークにおけるクラスタ同期を説明するための図である。
【符号の説明】
【００７７】
１〜８  ノード
９  バス
１０  同期ノード
３０  監視ノード
５０  同期・監視ノード
１１、３１、５１  ＣＰＵ
１２、３２、５２  メモリ
１３、５３  同期ノード優先度テーブル
１４、５４  監視ノードテーブル
１５、３３、５５  コミュニケーションコントローラ
１６、３４、５６  ＣＰＵインタフェース部
１７、３５、５７  メッセージ情報部
１８、３６、５８  スケジュール制御部
１９、３７、５９  クラスタ同期制御部
２０、６０  マスタ制御部
２１、６１  次期マスタ制御部
３８、６２  マスタ判定制御部
２２、３９、６３  レジスタ部
２３、６４  判定結果ＮＧノード数レジスタ
４０、６５  同期判定閾値レジスタ
２４、４１、６６  バス送受信制御部
【図１】
0005266705.tif 000002
【図２】
0005266705.tif 000003
【図３】
0005266705.tif 000004
【図４】
0005266705.tif 000005
【図５】
0005266705.tif 000006
【図６】
0005266705.tif 000007
【図７】
0005266705.tif 000008
【図８】
0005266705.tif 000009
【図９】
0005266705.tif 000010
【図１０】
0005266705.tif 000011
【図１１】
0005266705.tif 000012
【図１２】
0005266705.tif 000013
【図１３】
0005266705.tif 000014
【図１４】
0005266705.tif 000015