(57)【特許請求の範囲】
【請求項１】
時分割通信を行う通信装置であって、
他の通信装置と時分割通信する通信部と、
他の通信装置が送信する同期フレームを用いて時刻合わせを行なう通信制御部と、
を備え、
前記通信制御部は、
前記通信部が受信する前記同期フレームの数が規定数に不足しているときは、
時刻合わせをするために用いていない通信フレームを前記同期フレームとして取り扱うことにより時刻合わせを行なう
ことを特徴とする通信装置。
【請求項２】
前記通信制御部は、
前記通信部が行う時分割通信の１通信サイクル内に前記通信部が受信する前記同期フレームの数が前記規定数に達しないときは、前記同期フレームの数が不足していると判断する
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記通信制御部は、
前記同期フレームを送信すべき他の通信装置から前記通信部が前記同期フレームを受信しなかったときは、前記同期フレームの数が不足していると判断する
ことを特徴とする請求項１記載の通信装置。
【請求項４】
前記同期フレームを送信していない他の通信装置に対して同期フレームを送信開始するよう要求する切替要求部を備える
ことを特徴とする請求項１記載の通信装置。
【請求項５】
前記通信部が前記同期フレームを送信していない場合において前記同期フレームを送信開始すべき旨の要求を前記通信部が受け取ったときは前記通信部に前記同期フレームを送信開始させる切替処理部を備えた
ことを特徴とする請求項１記載の通信装置。
【請求項６】
他の通信装置に対して通信を停止するよう要求する停止要求部を備え、
前記通信制御部は、
前記停止要求部から通信を停止するよう要求された他の通信装置が通信を停止することによって前記同期フレームの数が前記規定数に不足するか否かを判断し、
前記切替要求部は、
前記同期フレームの数が前記規定数に不足すると前記通信制御部が判断したときは、
前記同期フレームを送信していない他の通信装置に対して同期フレームを送信開始するよう要求する
ことを特徴とする請求項４記載の通信装置。
【請求項７】
前記通信部は前記同期フレームを送信することを特徴とする請求項４記載の通信装置。
【請求項８】
前記通信制御部は、
通信を停止すべき旨の要求を前記通信部が他の通信装置から受け取ったときは、
前記通信部が通信を停止することによって前記同期フレームの数が前記規定数に不足するか否かを判断し、
前記切替要求部は、
前記同期フレームの数が前記規定数に不足すると前記通信制御部が判断したときは、
前記同期フレームを送信していない他の通信装置に対して同期フレームを送信開始するよう要求する
ことを特徴とする請求項４記載の通信装置。
【請求項９】
前記通信部が前記同期フレームを送信していないときは前記通信部に前記同期フレームを送信開始させるとともにその旨を他の通信装置に通知する切替処理部を備えた
ことを特徴とする請求項１記載の通信装置。
【請求項１０】
前記停止要求部は、
前記同期フレームを送信していない他の通信装置が前記同期フレームを送信開始する旨の通知を前記通信部が当該他の通信装置から受け取ったときは、
他の通信装置に対して通信を停止するよう要求することを所定時間保留する
ことを特徴とする請求項６記載の通信装置。
【請求項１１】
通信を停止すべき旨の要求を前記通信部が他の通信装置から受け取ったとき前記通信部に通信を停止させる停止処理部を備え、
前記停止処理部は、
前記同期フレームを送信していない他の通信装置が前記同期フレームを送信開始する旨の通知を前記通信部が当該他の通信装置から受け取ったときは、
前記通信部に通信を停止させることを中止するか、または所定時間保留する
ことを特徴とする請求項１記載の通信装置。
【請求項１２】
前記通信制御部は、
当該通信装置ではない他の通信装置に宛てた、通信を停止すべき旨の要求を、前記通信部が他の通信装置から受け取ったときは、
通信を停止するよう要求された他の通信装置が通信を停止することによって前記同期フレームの数が前記規定数に不足するか否かを判断し、
前記切替処理部は、
前記同期フレームの数が前記規定数に不足すると前記通信制御部が判断したときは、
前記通信部に前記同期フレームを送信開始させるとともにその旨を他の通信装置に通知する
ことを特徴とする請求項９記載の通信装置。
【請求項１３】
前記切替要求部は、
同期フレームを送信開始するよう要求する通信フレームを、前記同期フレームを送信していない複数の他の通信装置に対して同報する
ことを特徴とする請求項４記載の通信装置。
【請求項１４】
前記通信部はＦｌｅｘＲａｙプロトコルを用いて他の通信装置と通信する
ことを特徴とする請求項１記載の通信装置。
【請求項１５】
請求項１記載の通信装置を複数備えたことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時分割通信を行う通信装置、およびその通信装置を有する通信システムに関するものである。
【背景技術】
【０００２】
複数の装置を通信ネットワークで結ぶ制御システムでは、システム成立の要となる通信に対し、通信量増大に対応する高速度性、リアルタイム処理に必要な低ジッタ性、安全な制御とシステム運用のための高信頼性などが要求される。
【０００３】
自動車分野でも、電子制御の発展に伴い車載通信ネットワークの役割が大きくなり、上記要求に対応する通信プロトコルとして、ＦｌｅｘＲａｙ（登録商標）が用いられている。ＦｌｅｘＲａｙは、複数のノードが１つの伝送路を共有し相互にデータ送受信するために、時分割多元接続方式を採用している。時分割多元接続を実現するためには、ネットワーク上の複数ノードが１つのネットワーク時間を共有する必要がある。そこでＦｌｅｘＲａｙでは、分散型の時間同期手法を採用している。
【０００４】
分散型の時間同期手法では、ネットワーク上の各ノードは、特定の通信フレーム（以下「フレーム」）の到着時刻を用いて、自ノードが管理するネットワーク時間のオフセットと進行速度を補正する。この補正を繰り返すことにより、ネットワーク時間が維持され、すなわちノード間のネットワーク時間の誤差は許容範囲内となり、各ノードは時分割通信を継続することができる。
【０００５】
このようなネットワーク時間の同期に利用されるフレームを、ここでは「同期フレーム」と呼ぶ。ＦｌｅｘＲａｙでは、同期フレームを送信するか否かを、ノード毎に設定する。あるノードが同期フレームを送信するか否かは、通信コントローラの設定によって変更できる。同期フレームを送信するノードは、時分割通信の１通信サイクルにつき１つの同期フレームを送信する。ネットワーク上の各ノードは、１通信サイクル内に受信した同期フレームをすべてネットワーク時間の補正に利用する。
【０００６】
分散型の時間同期を実行するためには、同期フレームを送信するノードがネットワーク上に規定数以上必要となる。同期フレームを送信するノード数が不足すると、通信が不安定となり、最悪の場合には通信不可となる。ＦｌｅｘＲａｙでは、通信継続に必要な同期フレーム送信ノード数は「２」と規定されている。１通信サイクル内に受信する同期フレーム数が２未満である状態が所定の通信サイクル数だけ継続すると、ノードは通信不可状態となる。
【０００７】
一方で、同期フレームを送信するノードの一部が、通信を停止しなければならない状況が生じる場合がある。例えば、ノードの故障、システムの消費電力低減等を目的とした能動的な停止、などの状況が挙げられる。この場合も、同期フレーム数が不足してノードが通信不可状態になる可能性がある。
【０００８】
下記特許文献１には、スタートアップノードから送出されるべき同期フレームが不足していることを検出すると、非スタートアップノードがスタートアッププロセスに加入することが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−２２０７８号公報
【非特許文献】
【００１０】
【非特許文献１】ＦｌｅｘＲａｙ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｙｓｔｅｍ  Ｐｒｏｔｏｃｏｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ２．１  Ｒｅｖｉｓｉｏｎ  Ａ，ＦｌｅｘＲａｙ  Ｃｏｎｓｏｒｔｉｕｍ（２００５年１２月）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１に記載の技術では、スタートアップが完了した後に同期フレーム数が不足すると、ノードが通信不可状態になる可能性がある。
【００１２】
本発明は、上記のような課題を解決するためになされたものであり、通信装置の稼働中に同期フレーム数が不足したときでも、通信不可状態に陥らないようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る通信装置は、同期フレームの数が規定数に満たないときは、時刻合わせをするために用いていない通信フレームを同期フレームとして取り扱う。
【発明の効果】
【００１４】
本発明に係る通信装置によれば、同期フレーム数が不足したときでも、他の通信フレームによって代替することができるので、通信を安定的に継続することができる。これにより、通信システムの信頼性や可用性を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る通信システム１００の構成図である。
【図２】ノード１０の動作フローを示す図である。
【図３】ネットワーク２０の１通信サイクルにおける通信スロットを各ノード１０へ割り当てた様子を示す図である。
【図４】ノード１０−ｋ（ｋ＝１〜ｎ）の動作フローを示す図である。
【図５】図４の動作フローに基づく通信システム１００の動作を示す図である。
【図６】ノード１０−ｙ（ｙ＝１〜ｎ）の動作フローを示す図である。
【図７】図６の動作フローに基づく通信システム１００の動作を示す図である。
【図８】実施形態４における、同期フレーム送信ノードではないノード１０−ｚの動作フローを示す図である。
【図９】図８の動作フローに基づく通信システム１００の動作を示す図である。
【図１０】実施形態６におけるノード１０−ｘの動作フローを示す図である。
【図１１】図１０の動作フローに基づく通信システム１００の動作を示す図である。
【発明を実施するための形態】
【００１６】
＜実施の形態１＞
図１は、本発明の実施の形態１に係る通信システム１００の構成図である。通信システム１００は、複数の通信ノード（以下、「ノード」）１０−１、１０−２、・・・１０−ｎを有する。各ノードは、時分割多元通信によって互いに通信する。以下、各ノードを総称的に指すときは、ノード１０と呼ぶ。各ノードを区別するときは、上記のような添字を付与する。各ノードの構成要素についても同様である。
【００１７】
ノード１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、メインメモリ１２、通信コントローラ１３、通信インターフェース（Ｉ／Ｆ）１４、記憶部１５を備える。各機能部は、内部接続線によって接続されている。Ｉ／Ｆ１４は、ネットワーク２０に接続されている。
【００１８】
ＣＰＵ１１は、ノード１０の全体動作を制御する。また、後述する各プログラムを実行する。メインメモリ１２は、ＣＰＵ１１が動作する際に必要なデータを格納する。通信コントローラ１３は、データリンク層より上位層の通信プロトコルを実装した論理回路である。Ｉ／Ｆ１４は、通信コントローラ１３のデジタル信号とネットワーク２０の信号を相互に変換する。
【００１９】
記憶部１５は、制御プログラム、通信状態把握部１６、切替処理部１７、停止処理部１８を格納する。通信状態把握部１６、切替処理部１７、停止処理部１８は、プログラムとして実装されている。ＣＰＵ１１は、これらのプログラムをメインメモリ１２に読み込み実行することにより、各機能を実現する。以下の説明では、記載の便宜上、各プログラムを動作主体として説明することがあるが、実際に各プログラムを実行するのはＣＰＵ１１であることを付言しておく。
【００２０】
本発明における「通信部」は、通信コントローラ１３とＩ／Ｆ１４が相当する。「通信制御部」は、通信状態把握部１６が相当する。「切替要求部」「切替処理部」は、切替処理部１７が相当する。「停止要求部」「停止処理部」は、停止処理部１８が相当する。
【００２１】
本明細書で説明するプログラムやデータは、あらかじめ記憶部１５に格納しておいてもよいし、脱着可能なフラッシュメモリ等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。または、当該プログラムにより実現される機能を、プログラムに代えてＣＰＵ１１の周辺回路やＡＳＩＣのような専用のハードウェアにより実現してもよい。
【００２２】
図２は、ノード１０の動作フローを示す図である。以下、図２の各ステップについて説明する。
【００２３】
（図２：ステップＳ２００）
ＣＰＵ１１は、例えば時分割通信の通信サイクル毎など、所定の周期毎に本動作フローを実行する。
【００２４】
（図２：ステップＳ２０１）
通信状態把握部１６は、ネットワーク２０の状態を把握する。具体的には、ある期間内に受信する同期フレーム数ｓａを計測する。例えば、直前の１通信サイクル内に受信した同期フレームを計数する。また、同期フレーム以外の通信フレームを含む全ての通信フレームの受信状況を把握し、受信状況から他ノードの状態を把握する。
【００２５】
（図２：ステップＳ２０１：補足）
ここでいう他ノードの状態とは、通信異常のないことにより送信ノードが動作しているか、受信データの内容から送信ノードの制御アプリケーションが正しく動作しているか、などの状態のことをいう。
【００２６】
（図２：ステップＳ２０２）
通信状態把握部１６は、ステップＳ２０１で計測した同期フレーム数ｓａが、ネットワーク時間を補正するのに必要な規定数を満たしているか否かを判定する。判定方法としては、通信状態把握部１６に同期フレーム必要数ｓｒをあらかじめ保持させておき、ｓｒ＞ｓａであれば不足している、そうでなければ不足していない、と判定する。同期フレーム必要数ｓｒは、ネットワーク２０の通信プロトコルが規定している同期フレームの必要数、システムが要求する信頼性などに応じて、ノード１０を設計する時に決定する。判定の結果、同期フレームが不足していればステップＳ２０３に進み、不足していなければ本動作フローを終了する。
【００２７】
（図２：ステップＳ２０３）
通信状態把握部１６は、Ｉ／Ｆ１４が本ステップの時点で受信しているフレームのうち、現在は同期フレームとして利用していないが、同期フレームとして利用することができるものがあるか否かを検索する。同期フレームとして利用できるフレームがあればステップＳ２０４に進み、なければ本動作フローを終了する。
【００２８】
（図２：ステップＳ２０４）
通信状態把握部１６は、ステップＳ２０３で検索したフレームを以後同期フレームとして利用するよう、通信コントローラ１３の設定を変更する。ステップＳ２０４が完了すると、本動作フローは終了する。
【００２９】
図３は、ネットワーク２０における通信スケジュール、すなわち１通信サイクルにおける通信スロットを各ノード１０へ割り当てた様子を示している。通信スロットは、フレームをネットワーク２０に送出するための時間枠である。１つのノード１０が１つの通信スロットにおいて１つのフレームを送信することができる。各ノード１０へいずれの通信スロットを割り当てるかは、ノード１０を設計する時に決定され、その設定は通信コントローラ１３内に保持される。
【００３０】
１通信サイクルに相当する通信スケジュール３０は、８つの通信スロットに分割されている。通信スロット１、３、５、６、８において、それぞれノード１０−１〜１０−５がフレーム３１−１〜３１−５を送信している。フレームの添字は、当該フレームを送信したノードの番号を示す。各フレームは、全てのノード１０によって受信される。
【００３１】
ノード１０−１の通信状態把握部１６−１には、同期フレーム必要数ｓｒとして「３」が設定されているものとする。また通信コントローラ１３−１には、同期フレームとして通信スロット３、５、６で受信するフレーム、すなわちフレーム３１−２〜３１−４を利用することが設定されているものとする。
【００３２】
ノード１０−１がフレーム３１−２〜４を正常受信している間は、通信状態把握部１６はステップＳ２０２において、同期フレーム数は不足していないと判定し、通信コントローラ１３−１はネットワーク時間の補正を実行することができる。
【００３３】
ある時点でノード１０−２の故障などにより、ノード１０−１がフレーム３１−２を正常受信できなくなったと仮定する。このとき、通信状態把握部１６はステップＳ２０２において、同期フレーム数が不足していると判定する。
【００３４】
ステップＳ２０３において通信状態把握部１６は、フレーム３１−５が同期フレームとして利用できる否かを判定する。ステップＳ２０３の判定ルールとして、ネットワーク２０の通信プロトコル規定を考慮した上で、対象フレームの属性や受信状態（正常受信できているか否か）等を判断材料とするものをあらかじめ規定しておく。
【００３５】
フレーム３１−５が同期フレームとして利用できれば、ステップＳ２０４において通信状態把握部１６は、フレーム３１−５を同期フレームとして利用するよう通信コントローラ１３−１に設定する。
【００３６】
以上の動作により、同期フレーム３１−２が欠落しても、ノード１０−１は同期フレーム数を必要数である３以上確保することができ、ネットワーク時間を安定的に維持することができる。
【００３７】
＜実施の形態２＞
本発明の実施の形態２では、各ノード１０はネットワーク２０上の通信プロトコルとしてＦｌｅｘＲａｙを用いる。また本実施の形態２では、ネットワーク２０上のノードが他のノードに対して、同期フレームを送信開始するよう要求し、別のノードに通信を停止するよう要求する動作例を説明する。通信システム１００および各ノード１０の構成は、実施の形態１と同様である。通信コントローラ１３とＩ／Ｆ１４は、ＦｌｅｘＲａｙに対応した通信機能を備えるものとする。
【００３８】
ＦｌｅｘＲａｙでは、フレームのヘッダにある同期フラグ（Ｓｙｎc  Ｆｒａｍｅ  Ｉｎｄｉｃａｔｏｒ）というビットが１であれば当該フレームは同期フレームであり、０であれば当該フレームは非同期フレームであるものとして取り扱う。同期フレームを送信するノードは、通信サイクル毎に、同期フレームを必ず１回送信する。
【００３９】
図４は、あるノード１０−ｋ（ｋ＝１〜ｎ）の動作フローを示す図である。ノード１０−ｋの制御アプリケーションは、ネットワーク２０上の別のノード１０−ｙ（ｙ＝１〜ｎ，ｙ≠ｋ）を停止させる予定をあらかじめ決めているものとする。以下、図４の各ステップについて説明する。
【００４０】
（図４：ステップＳ４００）
ＣＰＵ１１は、ノード１０−ｋがノード１０−ｙを停止させる予定時刻になった時点で本動作フローを開始する。
【００４１】
（図４：ステップＳ４０１）
通信状態把握部１６−ｋは、ステップＳ２０１と同様に、ネットワーク状態を把握する。同期フレーム受信数ｓａは、同期フラグが１のフレーム数を計数することにより把握する。ＦｌｅｘＲａｙでは通信異常時を除き、１通信サイクルにおける同期フレーム数は、同期フレームを送信するノード数に等しい。このため通信状態把握部１６−ｋは、同期フレーム受信数ｓａを、同期フレームを送信している正常稼働中のノード数とみなす。
【００４２】
（図４：ステップＳ４０２）
通信状態把握部１６−ｋは、ステップＳ４０１で計測した同期フレーム送信ノード数ｓａと、ネットワーク時間補正に必要な同期フレーム数ｓｒとを比較し、同期フレームを送信するノード数が不足しているか否かを判定する。ノード１０−ｙが同期フレームを送信するノードである場合、ノード１０−ｙが停止することによって同期フレームが減少することを見込み、ｓｒ＞ｓａ−１であれば、同期フレームを送信するノード数が不足するものと判定とする。ノード１０−ｙが同期フレームを送信するノードでない場合、ｓｒ＞ｓａであれば、同期フレームを送信するノード数が不足するものと判定する。同期フレームを送信するノード数が不足していればステップＳ４０３に進み、不足していなければステップＳ４０６に進む。
【００４３】
（図４：ステップＳ４０２：補足その1）
通信状態把握部１６−ｋは、ノード１０−ｙが同期フレームを送信するノードであるか否かを、ノード１０−ｙから受信したフレームの同期フラグを観察するか、または各ノードの属性をあらかじめデータとして保持しておくことにより判定する。受信フレームがノード１０−ｙから送信されたものであることは、通信スロットと送信ノードの対応関係、フレームのヘッダに含まれるフレームＩＤと送信ノードの対応関係などを、あらかじめデータとして保持しておくことにより判定する。
【００４４】
（図４：ステップＳ４０２：補足その２）
通信状態把握部１６−ｋは、同期フレームの総数を計数することに代えて、同期フレームを送信すべきノードから同期フレームを受信することができたか否かにより、同期フレームが不足しているか否かを判定することもできる。いずれのノードが同期フレームを送信すべきかは、あらかじめデータとして保持しておけばよい。
【００４５】
（図４：ステップＳ４０３）
通信状態把握部１６−ｋは、ステップＳ４０１で把握した各ノードの状態から、同期フレームを送信していないノードのうち、正常動作しており、かつ同期フレームを送信するノードに切り替えることができるノード１０−ｚ（ｚ＝１〜ｎ，ｚ≠ｋ，ｚ≠ｙ）を検索する。ノード１０−ｚを、同期フレームを送信するノードに切り替えることができか否かは、各ノードの属性としてあらかじめ保持しておいてもよいし、ノード１０−ｚが送信フレーム内に、自ノードが同期フレームを送信するノードに切り替わることができる旨を示すフラグ等を含めるようにしてもよい。同期フレームを送信するノードに切り替えることができるノードがあればステップＳ４０４に進み、なければ本動作フローを終了する。
【００４６】
（図４：ステップＳ４０４）
切替処理部１７−ｋは、ステップＳ４０３において通信状態把握部１６−ｋが検索した切替可能ノード１０−ｚに対し、同期フレーム送信切替要求（同期フレームを送信するノードへ切り替わるべき旨の要求）を送信する。具体的には、切替要求を示すデータと、切替要求対象ノード番号ｚを含むフレームを、ネットワーク２０上に送信する。
【００４７】
（図４：ステップＳ４０５）
切替処理部１７−ｋは、ステップＳ４０４において切替要求を送信したノード１０−ｚが、同期フレームを送信するノードに切り替わったか否かを判定する。具体的には、ノード１０−ｚから受信するフレーム内に、同期フラグ、または切替要求に対する応答を示すデータが存在するか否かを観察することにより、切り替わったか否かを判定する。切替処理部１７−ｋは、例えば所定時間内に切替完了を確認できればステップＳ４０６に進み、確認できなければ本動作フローを終了する。
【００４８】
（図４：ステップＳ４０６）
停止処理部１８−ｋは、停止対象ノード１０−ｙに対し、停止要求を送信する。具体的には、停止要求を示すデータと、停止要求対象ノード番号ｙを含むフレームを、ネットワーク２０上に送信する。ステップＳ４０６が完了すると、本動作フローは終了する。
【００４９】
図５は、図４の動作フローに基づく通信システム１００の動作を示す図である。図５（ａ）は各ノード間の通信シーケンスを示し、図５（ｂ）は１通信サイクルにおける通信スロットを各ノード１０へ割り当てた様子を示す。ノード１０−１（ｋ＝１）は停止要求を発行するノード、ノード１０−２（ｙ＝２）は停止対象ノード、ノード１０−３（ｚ＝３）は同期フレーム送信切替要求の対象ノードである。
【００５０】
１通信サイクルに相当する通信スケジュール５０では、通信スロット１、３、５においてそれぞれノード１０−１〜１０−３がフレーム５１−１〜５１−３を送信している。各フレームは、全てのノード１０によって受信される。
【００５１】
通信状態把握部１６には、同期フレーム送信ノード必要数ｓｒとして「２」が設定されている。この数値は、自ノードの同期フレームを含む。また通信コントローラ１３−１と１３−２が同期フレーム送信ノードとして、通信コントローラ１３−３が同期フレーム非送信ノードとして設定されている。そのため、フレーム５１−１と５１−２が同期フレーム、フレーム５１−３が非同期フレームとなっている。
【００５２】
なお、ＦｌｅｘＲａｙでは１つの通信コントローラは２つの通信チャネルを扱うことができるが、ここでは説明の簡単のため、１チャネルのみ利用しているものとする。２つのチャンネルを扱う場合は、ステップＳ４０２の同期フレーム数計測は、２つのチャネルに対して実行される。
【００５３】
（１）同期フレーム数判定
ある時点で、ノード１０−１はノード１０−２に停止要求を送信することを決め、図４の動作フローを実行する。ステップＳ４０２においてノード１０−１は、停止要求対象ノード１０−２が同期フレームを送信するノードであるので、判定式「ｓｒ（＝２）＞ｓａ（＝２）−１」に基づき、同期フレーム数は不足すると判定する。ステップＳ４０３においてノード１０−１は、ノード１０−３が同期フレーム送信ノードに切り替わることができるか否かを判定する。ここでは、通信状態把握部１６−１が所持するノード１０−３の属性データが「切替可能」と設定されており、かつステップＳ４０１で把握したノード１０−ｚの状態が正常であるものと過程する。ノード１０−１は、ノード１０−３が同期フレーム送信ノードに切り替わることができると判定する。
【００５４】
（２）切替要求
ステップＳ４０４にてノード１０−１は、ノード１０−３に対し同期フレーム送信切替要求を、フレーム５１−１を用いて送信する。
【００５５】
（３）切替応答
ノード１０−３の切替処理部１７−３は、ノード１０−１に対し、切替要求を受け付けることを示す切替応答を、フレーム５１−３を用いて送信する。その後、切替処理部１７−３は、通信コントローラ１３−３を同期フレーム送信ノードに設定する。これにより、ノード１０−３が再起動した後にフレーム５１−３が同期フレームとなる。
【００５６】
（４）停止要求
ステップＳ４０５においてノード１０−１は、ノード１０−３からの切替応答、およびフレーム５１−３の同期フラグが１となったことを観測して、ノード１０−３が同期フレーム送信ノードに切り替わったことを確認する。これを受け、ステップＳ４０６においてノード１０−１は、ノード１０−２に対し、フレーム５１−１を用いて停止要求を送信する。ノード１０−２の停止処理部１８−２は、停止要求を受け取り、通信を始めとする各処理を停止する。以後、フレーム５１−２はネットワーク２０に送信されなくなる。
【００５７】
（５）停止要求：補足
ここでいう停止要求とは、少なくとも通信を停止することをいう。例えば、ノード自体の稼動を停止させてもよいし、ノードは稼動させたままで通信アプリケーションのみ停止するようにしてもよい。
【００５８】
上記の例において、同期フレーム送信切替要求や停止要求は、ネットワーク２０を用いて送受信しているが、ネットワーク２０とは別の通信ネットワーク、例えばＣＡＮ（Ｃａｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を利用して送信してもよい。
【００５９】
以上のように、本実施の形態２によれば、ノード１０−１がノード１０−２に対して停止要求を発行しても、ノード１０−３が同期フレーム送信ノードに切り替わるので、ネットワーク２０上にはフレーム５１−１、５１−３の２つの同期フレームが存在することになる。これにより、以前は同期フレームとして用いられていなかった、ノード１０−３が送信するフレームが、同期フレームとして用いられるようになる。したがって、ネットワーク２０内で同期フレームが不足することなく、各ノード１０はネットワーク時間の補正を継続することができる。
【００６０】
また、本実施の形態２によれば、ステップＳ４０２において、ノード１０−１が停止要求を発行することにより同期フレーム送信ノードが減少することを見込み、ノード１０−２が停止するより先にノード１０−３を同期フレーム送信ノードに切り替える。これにより、同期フレームが一時的に不足することを回避でき、ネットワーク時間をより安定的に維持することができる。
【００６１】
なお、本実施の形態２において、ネットワークで一番最後まで停止せず、類似システムでも搭載されるノードを同期フレーム送信ノードとし、さらに同期フレーム送信ノード数の不足を検出して同期フレーム送信切替要求を送信する機能を持たせてもよい。これにより、ネットワーク２０上で同期フレーム数を安定して維持することができるので、ネットワーク時間の安定性を向上することができる。
【００６２】
＜実施の形態３＞
本発明の実施の形態３では、実施の形態２と異なり、停止要求を受けたノード１０−２がノード１０−３に対して同期フレーム送信切替要求を発行する動作例を説明する。通信システム１００および各ノード１０の構成は、実施の形態１〜２と同様である。
【００６３】
図６は、ノード１０−ｙ（ｙ＝１〜ｎ）の動作フローを示す図である。以下、図６の各ステップについて説明する。
【００６４】
（図６：ステップＳ６００）
停止処理部１８−ｙは、ノード１０−ｋから停止要求を受け取ると、本動作フローを開始する。
【００６５】
（図６：ステップＳ６０１）
通信状態把握部１６−ｙは、ステップＳ２０１と同様に、ネットワーク状態を把握する。
【００６６】
（図６：ステップＳ６０２）
通信状態把握部１６−ｙは、ステップＳ６０１で計測した同期フレーム送信ノード数ｓａと、ネットワーク時間補正に必要な同期フレーム数ｓｒとを比較し、同期フレームを送信するノード数が不足しているか否かを判定する。ノード１０−ｙが同期フレームを送信するノードである場合、ノード１０−ｙが停止することによって同期フレームが減少することを見込み、ｓｒ＞ｓａ−１であれば、同期フレームを送信するノード数が不足するものと判定とする。ノード１０−ｙが同期フレームを送信するノードでない場合、ｓｒ＞ｓａであれば、同期フレームを送信するノード数が不足するものと判定する。同期フレームを送信するノード数が不足していればステップＳ６０３に進み、不足していなければステップＳ６０６に進む。
【００６７】
（図６：ステップＳ６０３）
通信状態把握部１６−ｙは、ステップＳ６０１で把握した各ノードの状態に基づき、同期フレームを送信していないノードのうち、正常動作しており、かつ同期フレームを送信するノードに切り替えることができるノード１０−ｚ（ｚ＝１〜ｎ，ｚ≠ｋ，ｚ≠ｙ）を検索する。同期フレームを送信するノードに切り替えることができるノードがあればステップＳ６０４に進み、なければ本動作フローを終了する。
【００６８】
（図６：ステップＳ６０４）
切替処理部１７−ｙは、ステップＳ６０３において通信状態把握部１６−ｙが検索した切替可能ノード１０−ｚに対し、同期フレーム送信切替要求（同期フレームを送信するノードへ切り替わるべき旨の要求）を送信する。
【００６９】
（図６：ステップＳ６０５）
切替処理部１７−ｙは、ステップＳ６０４において切替要求を送信したノード１０−ｚが、同期フレームを送信するノードに切り替わったか否かを判定する。切替処理部１７−ｙは、例えば所定時間内に切替完了を確認できればステップＳ６０６に進み、確認できなければ本動作フローを終了する。
【００７０】
（図６：ステップＳ６０６）
停止処理部１８−ｙは、自ノード１０−ｙを停止する。ステップＳ６０６が完了すると、本動作フローは終了する。
【００７１】
なお、ノード１０−ｋからの停止要求に対する応答は、ノード１０−ｚが同期フレーム送信ノードに切り替わる前（例えばステップＳ６０３からステップＳ６０４に進む際）でもよいし、切り替わった後（ステップＳ６０５からステップＳ６０６に進む際）でもよい。また、ステップＳ６０３で切替可能ノードがない場合には、ノード１０−ｙはノード１０−ｋに対して停止不可を示す応答を送信し、停止処理を行わなくてもよい。
【００７２】
図７は、図６の動作フローに基づく通信システム１００の動作を示す図である。ノード１０−１（ｋ＝１）は停止要求を発行するノード、ノード１０−２（ｙ＝２）は停止対象ノード、ノード１０−３（ｚ＝３）は同期フレーム送信切替要求の対象ノードである。
【００７３】
（１）停止要求
ある時点で、ノード１０−１はノード１０−２に停止要求を送信する。
【００７４】
（２）同期フレーム数判定
ノード１０−２は、停止要求を受け取ると、図６の動作フローを実行する。ステップＳ６０２においてノード１０−２は、自ノード１０−２が同期フレームを送信するノードであるので、判定式「ｓｒ（＝２）＞ｓａ（＝２）−１」に基づき、同期フレーム数が不足すると判定する。ステップＳ６０３においてノード１０−２は、ノード１０−３が同期フレーム送信ノードに切り替わることができるか否かを判定する。ここでは、ノード１０−３が同期フレーム送信ノードに切り替わることができると判定したものとする。
【００７５】
（３）切替要求
ステップＳ６０４においてノード１０−２は、ノード１０−３に対し同期フレーム送信切替要求を、フレーム５１−２を用いて送信する。
【００７６】
（４）切替応答
ノード１０−３の切替処理部１７−３は、ノード１０−２に対し、切替要求を受け付けることを示す切替応答を、フレーム５１−３を用いて送信する。その後、切替処理部１７−３は、通信コントローラ１３−３を同期フレーム送信ノードに設定する。これにより、ノード１０−３が再起動した後にフレーム５１−３が同期フレームとなる。ステップＳ６０５においてノード１０−２は、ノード１０−３からの切替応答、およびフレーム５１−３の同期フラグが１となったことを観測して、ノード１０−３が同期フレーム送信ノードに切り替わったことを確認する。これを受け、ステップＳ６０６において、ノード１０−２の停止処理部１８−２は、自ノードを停止する。以後、フレーム５１−２はネットワーク２０に送信されなくなる。
【００７７】
以上のように、本実施の形態３によれば、ノード１０−２は、停止要求を受け取ると、同期フレーム数が不足するか否かを判定し、不足する場合は同期フレーム送信切替要求を発行する。これにより、停止要求を発行するノードが同期フレームの不足を考慮していない場合でも、ネットワーク２０上で同期フレームが不足することを防ぎ、ネットワーク時刻を安定的に維持することができる。
【００７８】
＜実施の形態４＞
本発明の実施の形態４では、同期フレームを送信するノードではないノードが、自発的に同期フレーム送信ノードに切り替わる動作例を説明する。通信システム１００および各ノード１０の構成は、実施の形態１〜３と同様である。
【００７９】
図８は、本実施形態４における、同期フレーム送信ノードではないノード１０−ｚの動作フローを示す図である。以下、図８の各ステップについて説明する。
【００８０】
（図８：ステップＳ８００）
ＣＰＵ１１は、例えばある周期毎、またはノード１０−ｚが停止要求を観測した時点で本動作フローを開始する。
【００８１】
（図８：ステップＳ８０１）
通信状態把握部１６−ｚは、ステップＳ４０１と同様に、ネットワーク状態を把握する。
【００８２】
（図８：ステップＳ８０２）
通信状態把握部１６−ｚは、ステップＳ８０１で計測した同期フレーム送信ノード数ｓａと、ネットワーク時間補正に必要な同期フレーム数ｓｒとを比較し、同期フレーム送信ノード数の不足有無を判定する。具体的には、ｓｒ＞ｓａならば、同期フレーム送信ノード数が不足と判定する。同期フレーム送信ノード数が不足していればステップＳ８０３に進み、不足していなければ本動作フローを終了する。
【００８３】
（図８：ステップＳ８０３）
切替処理部１７−ｚは、自ノード１０−ｚが同期フレーム送信ノードに切り替わることができるか否かを判定する。切替可能であればステップＳ８０４に進み、切替不可であれば本動作フローを終了する。
【００８４】
（図８：ステップＳ８０４）
切替処理部１７−ｚは、同期フレーム送信ノードへの切替処理を実行する。その際、切替処理部１７−ｚは、他ノード１０−ｘ（ｘ≠ｚ）に対し、自ノードが同期フレーム送信ノードへ切り替わる旨を宣言するデータを送信する。この切替宣言を受信したノード１０−ｘの停止処理部１８−ｘは、他ノードに対して停止要求を送信することを所定時間中断する。また、この切替宣言を受信したノード１０−ｘが停止要求を受け取った場合は、自ノードを停止させる処理を所定時間中断し、または中止する。ステップＳ８０４が完了すると、本動作フローは終了する。
【００８５】
（図８：ステップＳ８０４：補足）
本ステップにおいて、停止要求を送信することを中断したり、自ノードを停止させる処理を中断または中止したりするのは、同期フレームが不足することを防ぐためである。すなわち、ノード１０−ｚが同期フレーム送信ノードに切り替わる前に同期フレーム送信ノードを停止させると、ノード１０−ｚが同期フレーム送信ノードに切り替わるまでの期間で同期フレームが不足する可能性があるからである。
【００８６】
図９は、図８の動作フローに基づく通信システム１００の動作を示す図である。図９（ａ）は各ノード間の通信シーケンスを示し、図９（ｂ）は１通信サイクルにおける通信スロットを各ノード１０へ割り当てた様子を示す。ノード１０−１（ｋ＝１）は停止要求を発行するノード、ノード１０−２（ｙ＝２）は停止対象ノード、ノード１０−３（ｚ＝３）は同期フレーム送信切替要求の対象ノードである。
【００８７】
１通信サイクルに相当する通信スケジュール９０では、通信スロット１、３、５、７においてそれぞれノード１０−１〜１０−４がフレーム９１−１〜９１−４を送信している。各フレームは、全てのノード１０によって受信される。
【００８８】
通信状態把握部１６には、同期フレーム送信ノード必要数ｓｒとして、ＦｌｅｘＲａｙが規定する同期フレーム数より余裕のある「３」が設定されている。この数値は、自ノードの同期フレームを含む。また通信コントローラ１３−１、１３−２、１３−４が同期フレーム送信ノードとして、通信コントローラ１３−３が同期フレーム非送信ノードとして設定されている。そのため、フレーム９１−１、９１−２、９１−４が同期フレーム、フレーム９１−３が非同期フレームとなっている。
【００８９】
（１）同期フレーム数判定
ある時点で、ノード１０−３は図８の動作フローを実行する。この直前に、ノード１０−４が故障等の理由により、同期フレーム９１−４を送信できなくなっているとする。ステップＳ８０２においてノード１０−３は、判定式「ｓｒ（＝３）＞ｓａ（＝２）」に基づき、同期フレーム数が不足していると判定する。ステップＳ８０３においてノード１０−３は、自ノード１０−３が同期フレーム送信ノードに切り替わることができるか否かを判定する。制御アプリケーションから通信停止を禁止されておらず、通信状態把握部１６−３の所持する自ノード１０−３の属性データが「切替可能」に設定されており、ステップＳ８０１で把握した自ノード１０−３の状態が正常であれば、自ノード１０−３は切替可能と判定する。
【００９０】
（２）切替宣言
ステップＳ８０４において、切替処理部１７−３は自ノード１０−３を同期フレーム送信ノードへ切り替える処理を実行する。また、切り替えを実行する際に、同期フレーム送信ノードへ切り替わる旨の通知（切替宣言）を他ノードに送信する。
【００９１】
（３）停止要求
ノード１０−３が同期フレーム送信ノードに切り替わった後は、フレーム９１−３が同期フレームとなる。ノード１０−ｘはフレーム９１−１〜９１−３の３つの同期フレームにより、ネットワーク時間の補正を継続することができる。この同期フレーム数は、ＦｌｅｘＲａｙの通信プロトコルで規定している必要数である２より多い。このため、例えばノード１０−１がノード１０−２に対し停止要求を発行し、ノード１０−２が停止したとしても、各ノード１０−ｘは通信を継続することができる。
【００９２】
以上のように、本実施の形態４によれば、ノード１０−２は、同期フレームを送信しない同期フレーム非送信ノードから同期フレーム送信ノードに切り替わるので、ネットワーク２０上における同期フレームの数に余裕を持たせることができる。これにより、ネットワーク時間を安定的に維持することができる。
【００９３】
また、本実施の形態４によれば、同期フレーム送信ノードに切り替わる旨の宣言を受け取ったノードは、停止要求を他ノードに対して発行することを中断し、または自ノードを停止させることを中断もしくは中止する。これにより、同期フレームが一時的に不足する可能性を低減し、ネットワーク２０を安定させることができる。
【００９４】
＜実施の形態５＞
実施形態４において、通信状態把握部１６−ｚは、自ノード宛ではない停止要求を受け取る場合がある。これは、各ノード１０がネットワーク２０上の全てのノード１０に対して通信フレームを送信する場合に生じる。
【００９５】
そこで、図８のステップＳ８０２において、通信状態把握部１６−ｚは、上記のような他ノード宛の停止要求を受信した場合、その宛先ノードが停止することによって同期フレームが減少すると見込み、判定式「ｓｒ＞ｓａ−１」に基づき、同期フレーム送信ノード数が不足とすると判定することもできる。
【００９６】
この場合、ノード１０−ｚは、停止要求の宛先ノードが停止することによってネットワーク２０上の同期フレームが不足することに先立ち、同期フレーム送信ノードに自ら切り替わることができる。これにより、同期フレームが不足することを事前に防ぎ、ネットワーク時間を安定的に維持することができる。
【００９７】
＜実施の形態６＞
本発明の実施の形態６では、同期ノード送信切替要求を複数のノードに対して同報する動作例を説明する。通信システム１００および各ノード１０の構成は、実施の形態１〜５と同様である。
【００９８】
図１０は、本実施形態６におけるノード１０−ｘの動作フローを示す図である。以下、図１０の各ステップについて説明する。
【００９９】
（図１０：ステップＳ１０００）
ＣＰＵ１１−ｘは、通信を開始してから所定時間Ｔ１が経過した後に、本動作フローを開始する。所定時間Ｔ１待機するのは、全てのノード１０が起動するまで待機するためである。
【０１００】
（図１０：ステップＳ１００１）
通信状態把握部１６−ｘは、ステップＳ４０１と同様に、ネットワーク状態を把握する。
【０１０１】
（図１０：ステップＳ１００２）
通信状態把握部１６−ｘは、ステップＳ１００１で計測した同期フレーム送信ノード数ｓａと、ネットワーク時間補正に必要な同期フレーム数ｓｒとを比較し、同期フレーム送信ノード数が不足しているか否かを判定する。具体的には、ｓｒ＞ｓａならば同期フレーム送信ノード数が不足しているとする。同期フレーム送信ノード数が不足していればステップＳ１００３に進み、不足していなければ本動作フローを終了する。
【０１０２】
（図１０：ステップＳ１００３）
切替処理部１７−ｘは、同期フレーム送信切替要求を、ネットワーク２０にブロードキャストする。この切替要求は、宛先ノードを特定せずに送信される。
【０１０３】
（図１０：ステップＳ１００４）
ノード１０−ｘは、切替要求を送信後、所定時間待機する。
【０１０４】
（図１０：ステップＳ１００５）
通信状態把握部１６−ｘは、ステップＳ１００３を実行してから所定時間Ｔ２が経過したか否かを判定する。経過時間の計測は、ＣＰＵ１１周辺回路のタイマや、ＦｌｅｘＲａｙ通信サイクル数の計数による。所定時間Ｔ２が経過している場合には本動作フローを終了し、経過していない場合にはステップＳ１００２に戻る。
【０１０５】
（図１０：ステップＳ１００５：補足）
本ステップで所定時間Ｔ２経過したか否かを判定しているのは、ステップＳ１００３を所定時間Ｔ２の間、継続的に実行し続けるためである。
【０１０６】
以上、ノード１０−ｘの動作フローを説明した。ステップＳ１００３の同期フレーム送信切替要求を受信した同期フレーム非送信ノード１０−ｚ（ｚ＝１〜ｎ，ｚ≠ｘ）の切替処理部１７−ｚが、同期フレーム送信ノードへ切り替わるか否かの条件として、例えば下記のような条件を採用することができる。
【０１０７】
（切替条件例その１）
切替要求の受信回数ｒｒが、切替処理部１７−ｚにあらかじめ設定された受信回数閾値ｒｎ以上（ｒｒ≧ｒｎ）となったとき。
【０１０８】
（切替条件例その２）
切替要求を受信してから、切替処理部１７−ｚにあらかじめ設定された所定時間（ノード毎に異なる）が経過した後に、ステップＳ１００２と同様に同期フレーム送信ノード数の不足有無を判定し、同期フレーム数が不足している場合。
【０１０９】
図１１は、図１０の動作フローに基づく通信システム１００の動作を示す図である。図１１（ａ）は各ノード間の通信シーケンスを示し、図１１（ｂ）は１通信サイクルにおける通信スロットを各ノード１０へ割り当てた様子を示す。
【０１１０】
通信コントローラ１３−１、１３−４〜１３−６が同期フレーム送信ノードとして、通信コントローラ１３−２と１３−３が同期フレーム非送信ノードとして設定されている。また、切替処理部１７−ｚが同期フレームへの切替を行う条件は、上記の（切替条件例その１）を採用するものとする。受信回数閾値ｒｎは、ノード１０−２が１、ノード１０−３が２とする。
【０１１１】
１通信サイクルに相当する通信スケジュール１１０では、通信スロット１、３、４、６、７、８において、それぞれノード１０−１〜１０−６がフレーム１１０−１〜１１０−６を送信している。各フレームは、全てのノード１０によって受信される。
【０１１２】
通信状態把握部１６−ｘには、同期フレーム送信ノード必要数ｓｒとして「４」が設定されている。この数値は、自ノードの同期フレームを含む。
【０１１３】
（１）動作開始
ノード１０−１は、通信を開始してから所定時間Ｔ１が経過した後に、図１０の動作フローを開始する。このとき、ノード１０−２〜１０−４は既に通信を開始しているが、ノード１０−５〜１０−６は故障等の原因で通信できない状態であるとする。
【０１１４】
（２）切替要求
ステップＳ１００２においてノード１０−１は、判定式「ｓｒ（＝４）＞ｓａ（＝２）」に基づき、同期フレーム数が不足していると判定する。ステップＳ１００３において、切替処理部１７−１は同期フレーム送信切替要求をネットワーク２０にブロードキャストする。この切替要求を受信したノード１０−２は、切替処理部１７−２に設定された受信回数閾値ｒｎが１であるため、自ノードを同期フレーム送信ノードに切り替える。これにより、フレーム１１０−２は同期フレームとなる。この切り替えの間、ノード１０−１はステップＳ１００４において待機している。ここではステップＳ１００５において、ノード１０−１は、切替要求のブロードキャストを開始してから所定時間Ｔ２が経過していないと判断し、ステップＳ１００２に戻るものとする。
【０１１５】
（３）切替要求
２回目のステップＳ１００２においてノード１０−１は、判定式「ｓｒ（＝４）＞ｓａ（＝３）」に基づき、同期フレーム数が不足していると判定する。ステップＳ１００３においてノード１０−１は、２回目の同期フレーム送信切替要求をブロードキャスト送信する。この切替要求を受信したノード１０−３は、切替処理部１７−２に設定された受信回数閾値ｒｎが２であるため、自ノードを同期フレーム送信ノードに切り替える。これにより、フレーム１０−３は同期フレームとなる。この切り替えの間、ノード１０−１はステップＳ１００４において待機している。ここではステップＳ１００５において、ノード１０−１は、切替要求のブロードキャストを開始してから所定時間Ｔ２が経過していないと判断し、ステップＳ１００２に戻るものとする。
【０１１６】
（４）同期フレーム数判定
３回目のステップＳ１００２においてノード１０−１は、判定式「ｓｒ（＝４）＝ｓａ（＝４）」に基づき、同期フレーム数は不足していないと判定し、図１０の処理を終了する。図１０の処理終了後は、同期フレーム数が４、すなわち設計時と同じ値になっている。このため、故障等により同期フレーム数が設計値より少ない場合でも、同期フレーム数を回復して、ネットワーク時間の維持を安定的に行うことができる。
【０１１７】
以上のように、本実施の形態６によれば、ノード１０−１は同期フレーム送信切替要求をブロードキャスト送信する。これにより、切替要求を受け取ったノードが、例えば図１１で説明したノード１０−５〜１０−６のように何らかの原因によって同期フレーム送信ノードに切り替わることができない場合でも、他のノードが同期フレーム送信ノードに切り替わることができる可能性がある。したがって、同期フレーム数が不足する可能性を低減することができる。
【０１１８】
なお、本実施の形態６において、切替要求を受け取ったノードは、再起動後に同期フレーム送信ノードに切り替わる。そのため、再起動することが許容されないノード、例えば重要な制御演算を実行しているノードは、切替要求を受け取っても同期フレーム送信ノードに切り替わらない。したがって、切替要求をブロードキャスト送信したとしても、同期フレーム送信ノードに切り替わるノードが過剰に生じる可能性は少ないといえる。
【０１１９】
＜実施の形態７＞
以上の実施の形態１〜６は、適宜組み合わせて用いることができる。例えば、実施の形態３で説明した、ノード１０−１からノード１０−２に対して停止要求を送信する動作に加えて、実施の形態４で説明した、ノード１０−３が自発的に同期フレーム送信ノードに切り替わる動作を採用することができる。
【符号の説明】
【０１２０】
１０：ノード、１１：ＣＰＵ、１２：メインメモリ、１３：通信コントローラ、１４：通信インターフェース（Ｉ／Ｆ）、１５：記憶部、１６：通信状態把握部、１７：切替処理部、１８：停止処理部、１００：通信システム。
【図１】
0005388914.tif 000002
【図２】
0005388914.tif 000003
【図３】
0005388914.tif 000004
【図４】
0005388914.tif 000005
【図５】
0005388914.tif 000006
【図６】
0005388914.tif 000007
【図７】
0005388914.tif 000008
【図８】
0005388914.tif 000009
【図９】
0005388914.tif 000010
【図１０】
0005388914.tif 000011
【図１１】
0005388914.tif 000012