(57)【要約】【課題】通信バスのバス負荷を高くすることなく、マスターノードとスレーブノードとが通信バスで接続されたネットワークのマスターノードとスレーブノードとの同期のずれを防止する。【解決手段】マスターノードのＥＣＵ１のマスター側タイムスタンプ処理部１８が形成する検出手段により通信バス３を含むスレーブノード側の負荷状況の変化を検出し、マスター側タイムスタンプ処理部１８が形成する更新手段により、前記検出手段がスレーブノード側の負荷状況の変化を検出し、通信バス３を含むスレーブノード側の負荷状況が変化してマスターノード、スレーブノードのいずれか一方から送った情報がマスターノード、スレーブノードのいずれか他方に届くまでのオフセット時間が変化するタイミングに合わせて、マスターノードのＥＣＵ１のオフセット時間を算出して更新する。【選択図】図２
2012178770.tif 000002
【特許請求の範囲】
【請求項１】
マスターノードとスレーブノードとが通信バスで接続されたネットワークの前記マスターノードから前記スレーブノードに、前記マスターノード、前記スレーブノードのいずれか一方から送った情報が前記マスターノード、前記スレーブノードのいずれか他方に届くまでのオフセット時間で修正した時刻合せ用の現在時刻の情報を送り、前記スレーブノードの時刻を前記スレーブノードが受信した時刻に補正する時刻同期システムにおいて、
前記マスターノードは、
前記通信バスを含む前記スレーブノード側の負荷状況の変化を検出する検出手段と、
前記検出手段が前記スレーブノード側の負荷状況の変化を検出したときに、前記オフセット時間を算出して更新する更新手段とを備えたことを特徴とする時刻同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マスターノードとスレーブノードとが通信バスで接続されたＣＡＮやＬＩＮのようなネットワークの前記マスターノードと前記スレーブノードとの時刻同期システムに関し、詳しくは、マスターノードからスレーブノードに、マスターノードから送った情報がスレーブノードに届くまでのオフセット時間で修正した時刻合せ用の現在時刻の情報を送ってマスターノードの時刻とスレーブノードの時刻とを同期させるものに関する。
【背景技術】
【０００２】
従来、自動車内の各種のＥＣＵ等は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）に代表されるシリアル通信プロトコルのネットワークの通信バスにより結ばれて情報をやり取りする。
【０００３】
この場合、各ＥＣＵは個々の内部カウンタで時刻を計時して動作するが、それらの時刻をＥＣＵ間で同期させておけば、例えば、車内に異常や故障が発生したときに、それに基づいてスレーブノードの各ＥＣＵが関連する項目のダイアグノーシス・コード（以下、「ＤＴＣ」という）を時刻とともに記憶することで、その後、各ＥＣＵが保持している「ＤＴＣ」に付された時刻から異常や故障の発生個所を突き止めて明確にすること等が可能になる。
【０００４】
そして、前記ＣＡＮのネットワークの例で説明すると、各ＥＣＵが個々に計時する時刻をＥＣＵ間で同期させる機能としてタイムスタンプ機能が知られている。
【０００５】
このタイムスタンプ機能は、例えば各ＥＣＵがそれぞれの内部カウンタで１ｍｓ周期のクロックを計時して個別に得る時刻を、マスターノードのＥＣＵの時刻に合わせて同期させる機能である。
【０００６】
そして、前記内部カウンタが０〜５０００ｍｓを計時するのものであれば、従来は、マスターノードのＥＣＵにより、５０００ｍｓ（＝５ｓ）の毎周期毎に定期的に自己の「現在時刻」を時刻合せ用の現在時刻の情報としてスレーブノードの各ＥＣＵに提供し、スレーブノードの各ＥＣＵにより、受信した「現在時刻」を自己の内部カウンタにセットして自己の「現在時刻」を受信した「現在時刻」に修正し、スレーブノードの各ＥＣＵの時刻をマスターノードのＥＣＵの時刻に合わせて同期させている。
【０００７】
しかしながら、前記したようにマスターノードのＥＣＵからスレーブノードの各ＥＣＵに定期的にマスターノードのＥＣＵの「現在時刻」を送ってノード間の同期をとるだけでは、マスターノードのＥＣＵから送られた「現在時刻」をスレーブノードの各ＥＣＵが受信するまでの時間の遅れが考慮されていない。しかも、その時間の遅れは、スレーブノードの各ＥＣＵの搭載位置や周囲の温度等および処理能力等によって異なり、スレーブノード間で同一でない。したがって、マスターノードのＥＣＵとスレーブノードの各ＥＣＵとの時刻にはスレーブノードのＥＣＵ毎のずれが生じる。
【０００８】
図８は上記の時刻のずれの一例を示し、図の左側が前記内部カウンタの十進数の数値（０〜５０００）で示したマスターノードのＥＣＵの１ｍｓ間隔の時刻（実際の時刻）であり、図８の中央、右側が同様に内部カウンタの十進数の数値（０〜５０００）で示したスレーブノードの２つのＥＣＵ（ＥＣＵａ、ＥＣＵｂ）の１ｍｓ間隔の時刻である。
【０００９】
そして、マスターノードのＥＣＵの「００００」毎に、マスターノードのＥＣＵが、その時刻の情報を「現在時刻」の情報としてスレーブノードのＥＣＵａ、ＥＣＵｂに送る。このとき、スレーブノードのＥＣＵａでは「現在時刻」の情報が届くまでに３つの＊印で示す３ｍｓの遅れが生じ、スレーブノードのＥＣＵｂでは「現在時刻」の情報が届くまでに１つの＊印で示す１ｍｓの遅れが生じたとすると、スレーブノードのＥＣＵａの時刻は、実際の時刻に対して、マスターノードのＥＣＵの時刻「０００３」を時刻「００００」とする３ｍｓ遅れの時刻になり、スレーブノードのＥＣＵｂの時刻は、実際の時刻に対して、マスターノードのＥＣＵの時刻「０００１」を時刻「００００」とする１ｍｓ遅れの時刻になる。
【００１０】
この場合、何らかの異常や故障が発生し、例えば実際の時刻「４９９８」に「ＤＴＣ」が得られたスレーブノードのＥＣＵｂが「ＤＴＣ」とそのときの時刻「４９９７」を記憶し、それから遅れた実際の時刻「４９９９」に「ＤＴＣ」が得られたスレーブノードのＥＣＵｂが「ＤＴＣ」とそのときの時刻「４９９８」を記憶したとすると、ＥＣＵｂの「ＤＴＣ」が車内で最も早い実際の時刻「４９９８」に得られたものであったとしても、ＥＣＵｂの「ＤＴＣ」はＥＣＵａの「ＤＴＣ」の後に得られた２番目以降のものであると誤判断されるおそれがある。
【００１１】
そこで、定期的に（例えば前記の５０００ｍｓ毎に）、マスターノードのＥＣＵとスレーブノードの各ＥＣＵとの時間情報のやり取りに基づき、マスターノードのＥＣＵ、スレーブノードのＥＣＵのいずれか一方から送った情報がマスターノードのＥＣＵ、スレーブノードのＥＣＵのいずれか他方に届くまでのオフセット時間を算出し、マスターノードのＥＣＵからスレーブノードの各ＥＣＵに送る種々の情報に付加される「現在時刻」をオフセット時間で修正した「現在時刻」として、マスターノードのＥＣＵとスレーブノードの各ＥＣＵとの時刻を合わせることが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−６５５７９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
マスターノードとスレーブノードとが通信バスで接続されたＣＡＮやＬＩＮのようなネットワークにおいて、前記したように、定期的に算出したオフセット時間で修正した「現在時刻」をスレーブノードのＥＣＵに送ってマスターノードのＥＣＵとスレーブノードのＥＣＵとの時刻を合わせたとしても、オフセット時間が次回算出されて更新される前に通信バスを含むスレーブノード側の負荷状況が変化すると、マスターノードのＥＣＵが保持するオフセット時間が適切な時間ではなくなり、マスターノードのＥＣＵとスレーブノードのＥＣＵの時刻がずれてマスターノードのＥＣＵとスレーブノードの同期のずれが生じる。なお、この同期のずれを防止するため、マスターノードが保持するオフセット時間を頻繁に算出して更新することが考えられるが、この場合は、そのための時間情報の頻繁なやり取りによって通信バスのバス負荷が高くなり、必要な本来の情報のやり取りに支障をきたし、実用的でない。
【００１４】
本発明は、通信バスのバス負荷を高くすることなく、マスターノードとスレーブノードとの同期のずれを防止することを目的とする。
【課題を解決するための手段】
【００１５】
上記した目的を達成するために、本発明の時刻同期システムは、マスターノードとスレーブノードとが通信バスで接続されたネットワークの前記マスターノードから前記スレーブノードに、前記マスターノード、前記スレーブノードのいずれか一方から送った情報が前記マスターノード、前記スレーブノードのいずれか他方に届くまでのオフセット時間で修正した時刻合せ用の現在時刻の情報を送り、前記スレーブノードの時刻を前記スレーブノードが受信した時刻に補正する時刻同期システムにおいて、前記マスターノードは、前記通信バスを含む前記スレーブノード側の負荷状況の変化を検出する検出手段と、前記検出手段が前記スレーブノード側の負荷状況の変化を検出したときに、前記オフセット時間を算出して更新する更新手段とを備えたことを特徴としている。（請求項１）。
【発明の効果】
【００１６】
請求項１に記載の発明によれば、検出手段の検出に基づき、マスターノードにおいて、通信バスを含むスレーブノード側の負荷状況が変化してオフセット時間が変化するタイミングに合わせて、更新手段がオフセット時間を算出して更新する。
【００１７】
この場合、マスターノードは、通信バスを含むスレーブノード側の負荷状況が変化したときにスレーブノードと通信してオフセット時間を更新することで、通信バスのバス負荷を高くすることなく、常に、適切なオフセット時間を保持することができる。そして、この適切なオフセット時間で修正した時刻合せ用の現在時刻（前記「現在時刻」）の情報をスレーブノードに送ることにより、通信バスのバス負荷を高くすることなく、マスターノードとスレーブノードとの時刻を合わせて同期のずれを防止することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の時刻同期システムの一実施形態の全体構成のブロック図である。
【図２】図１のマスターノードのＥＣＵの詳細なブロック図である。
【図３】図１のスレーブノードのＥＣＵの詳細なブロック図である。
【図４】図１のマスターノードのＥＣＵの動作説明用のフローチャートである。
【図５】図１のスレーブノードのＥＣＵの動作説明用のフローチャートである。
【図６】図１のマスターノードとスレーブノードの同期合せのタイムチャートである。
【図７】図１の時刻同期システムのタイムスタンプ例の説明図である。
【図８】従来の時刻同期システムのタイムスタンプ例の説明図である。
【発明を実施するための形態】
【００１９】
つぎに、本発明をより詳細に説明するため、本発明の一実施形態について、図１〜図７を参照して詳述する。
【００２０】
（システムの全体構成）
図１は本実施形態の時刻同期システムが適用される自動車のＣＡＮの構成例を示し、１はマスターノードのＥＣＵであり、例えば車速やエンジン回転数等の表示を制御するメータ表示制御のＥＣＵにより形成される。２ａ、２ｂ、２ｃ、…はそれぞれスレーブノードのＥＣＵであり、例えばＣＶＴ制御のＥＣＵ、燃料噴射制御のＥＣＵ、ＡＢＳ（ａｎｔｉｌｏｃｋｅｄ  ｂｒａｋｉｎｇ  ｓｙｓｔｅｍ）制御のＥＣＵ、…それぞれにより形成される。３は各ＥＣＵ１、２ａ、２ｂ、２ｃ、…をつなぐＣＡＮの通信バスである。なお、以降は、スレーブノードの各ＥＣＵをＥＣＵ２ａ〜２ｃとして説明する。
【００２１】
そして、マイクロコンピュータ構成のマスターノードのＥＣＵ１とスレーブノードの各ＥＣＵ２ａ〜２ｃは、ＣＡＮのシリアル通信プロトコルにしたがって情報をやり取りし、スタンプ機能の後述する同期合せによってスレーブノードの各ＥＣＵ２ａ〜２ｃの時刻をマスターノードのＥＣＵ１の時刻に同期させる。
【００２２】
（マスターノードのＥＣＵ１の構成）
図２はマスターノードのＥＣＵ１の一部のブロック構成例を示し、マスターノードのＥＣＵ１は、随時、各種の命令や「ＤＴＣ」等のデータ等の本来の情報を通信バス３を通してスレーブノードの各ＥＣＵ２ａ〜２ｃとやり取りするが、マスターノードのＥＣＵ１がスレーブノードの各ＥＣＵ２ａ〜２ｃに送信する情報は、送信元のノードや情報の区別等のためのＩＤ（識別子）が付され、情報バッファ１１から送受信処理部１２、送受信バッファ１３を通って通信バス３に出力される。また、スレーブノードの各ＥＣＵ２ａ〜２ｃから通信バス３に送信された情報は、送受信バッファ１３から送受信処理部１２を通って情報バッファ１１に取り込まれる。
【００２３】
また、マスターノードのＥＣＵ１は、クロック部１４が出力する例えば１ｍｓのクロックを時計部１５の計時カウンタ１６でカウントし、十進数表示でカウント値０〜５０００を基本周期とする「現在時刻」を形成する。なお、計時カウンタ１６のカウント値が５０００になったり、後述するスレーブノード側の負荷状況の変化の検出が行なわれたりすると、計時カウンタ１６は０にリセットされるとともに、回数カウンタ１７の計時回数が＋１カウントアップされる。回数カウンタ１７の計時回数は、異なる周期の同じカウント値の「現在時刻」を区別するものである。
【００２４】
そして、計時カウンタ１６の「現在時刻」および回数カウンタ１７の計時回数は、必要に応じてマスター側タイムスタンプ処理部１８に取り込まれ、通常制御の情報送信時には、オフセット時間管理部１９の後述するオフセット時間で修正した「現在時刻」がマスター側タイムスタンプ処理部１８から送受信処理部１２に送られて、送信する情報に付加される。なお、オフセット時間の初期算出のための「現在時刻」およびオフセット時間の更新のための「現在時刻」と、通常制御のオフセット時間で修正された「現在時刻」とは、送信する情報に付加される「返信要求」のフラグがセットされているか否かから識別可能である。
【００２５】
マスター側タイムスタンプ処理部１８は、本発明の検出手段および更新手段を形成する。そして、前記検出手段は、例えば送受信処理部１２の情報の送受信頻度や送受信の空き時間等から通信バス３の時々刻々のバス負荷の状況を検出するとともに、例えばスレーブノードのＥＣＵ別の情報受信速度等からスレーブノードの各ＥＣＵ２ａ〜２ｃの時々刻々の処理負荷の状況を検出し、それらの検出に基づき、例えば時々刻々のバス負荷にスレーブノードの各ＥＣＵ２ａ〜２ｃの時々刻々の処理負荷を加算して、スレーブノードのＥＣＵ別に通信バスを含む時々刻々のスレーブノード側の負荷状況を把握し、この負荷状況がしきい値以上増減してオフセット時間が所定時間以上増減するときに、スレーブノードのＥＣＵ別に、通信バス３を含むスレーブノード側の負荷状況の変化を検出する。
【００２６】
マスター側タイムスタンプ処理部１８が形成する前記更新手段は、例えば、自動車を最初に始動するＩＧ（イグニッション）オンのときに、スレーブノードのＥＣＵ２ａ〜２ｃ毎に、順に、そのときの計時カウンタ１６の「現在時刻」（「００００」〜「５０００」の情報）を送受信処理部１２、送受信バッファ１３を介して通信バス３に出力し、スレーブノードのＥＣＵ２ａ〜２ｃの返信が通信バス３から送受信バッファ１３、送受信処理部１２を介してマスター側タイムスタンプ処理部１８に入力されるまでの時間の半分を初期のオフセット時間として算出し、算出した初期のオフセット時間をオフセット時間管理部１９に書き込んで保持する。オフセット時間管理部１９は、例えばＩＧオフにより記憶内容が消去されるメモリからなる。
【００２７】
マスター側タイムスタンプ処理部１８が形成する前記更新手段は、算出した初期のオフセット時間を算出した後は、スレーブノードのＥＣＵ別に通信バス３を含むスレーブノード側の負荷状況の変化が検出される毎に、負荷状況の変化が検出されたスレーブノードのＥＣＵ２ａ〜２ｃに対して、そのときのオフセット時間管理部１９のオフセット時間を加算して修正した「現在時刻」の情報を送受信処理部１２、送受信バッファ１３を介して通信バス３に出力し、スレーブノードの該当するＥＣＵ２ａ〜２ｃの返信が通信バス３から送受信バッファ１３、送受信処理部１２を介してマスター側タイムスタンプ処理部１８に入力されるまでの時間の半分をオフセット時間の増減時間として算出し、算出した増減時間をオフセット時間管理部１９に保持されているスレーブノードの該当するＥＣＵ２ａ〜２ｃのオフセット時間に加減して最新の負荷に応じたオフセット時間を算出し、オフセット時間管理部１９の該当するＥＣＵ２ａ〜２ｃのオフセット時間を算出したオフセット時間に更新する。
【００２８】
（スレーブノードの各ＥＣＵ２ａ〜２ｃの構成）
図３は例えばスレーブノードのＥＣＵ２ａの一部のブロック構成例を示す。スレーブノードの各ＥＣＵ２ａ〜２ｃの図３の一部に該当する部分の構成は略同じである。そして、スレーブノードの各ＥＣＵ２ａ〜２ｃにおいて、マスターノードのＥＣＵ１から通信バス３に送信された各ＥＣＵ２ａ〜２ｃ宛の情報は、各ＥＣＵ２ａ〜２ｃの送受信バッファ２１から送受信処理部２２を通り、情報バッファ２３に取り込まれる。
【００２９】
スレーブノードの各ＥＣＵ２ａ〜２ｃがマスターノードのＥＣＵに送信する情報は、ＩＤ（識別子）が付され、情報バッファ２３から送受信処理部２２、送受信バッファ２１を通って通信バス３に出力される。同様に、スレーブ側タイムスタンプ処理部２４の返信の情報もＩＤ（識別子）が付され、送受信処理部２２、送受信バッファ２１を通って通信バス３に出力される。
【００３０】
また、スレーブノードの各ＥＣＵ２ａ〜２ｃは、マスターノードのＥＣＵ１と同様、クロック部２５が出力する例えば１ｍｓのクロックを時計部２６の計時カウンタ２７でカウントし、十進数表示でカウント値０〜５０００を基本周期とする「現在時刻」の情報を形成する。なお、計時カウンタ２７のカウント値が５０００になるまでに、マスターノードのＥＣＵ１からオフセット時間で修正された「現在時刻」を受信すると、計時カウンタ２７の「現在時刻」が受信した「現在時刻」（オフセット時間で修正された「現在時刻」）に補正されるともに回数カウンタ２８の計時回数が＋１カウントアップされる。また、計時カウンタ２７のカウント値が５０００になると、計時カウンタ２７が更新されて０にリセットされるとともに、回数カウンタ１７の計時回数が＋１カウントアップされる。
【００３１】
スレーブノードの各ＥＣＵ２ａ〜２ｃのスレーブ側タイムスタンプ処理部２４は、受信処理部２２が受信した情報から「現在時刻」を取り込み、前記「返信要求」のフラグのセットの有無からか、オフセット時間の初期算出、更新のための「現在時刻」の受信を認識すると、直ちに、受信した「現在時刻」の情報を、そのままマスターノードのＥＣＵ１に返信する。
【００３２】
マスターノードのＥＣＵ１、スレーブノードの各ＥＣＵ２ａ〜２ｃは、上記の構成に基づき、タイムスタンプ機能によるオフセット時間の算出および同期合せの際に、つぎに説明するように動作する。
【００３３】
（マスターノードのＥＣＵ１の動作）
図４はマスターノードのＥＣＵ１の動作を示し、この動作はＩＧオンで開始され、最初に、「現在時刻」の情報を初期送信する（ステップＳ１）、この初期送信に基づくマスターノードの各ＥＣＵ２ａ〜２ｃからの返信を受信すると（ステップＳ２のＹＥＳ）、初期送信から返信を受信するまでの時間の半分からオフセット時間を算出してオフセット時間管理部１９に初期設定する（ステップＳ３）。その後、定常制御の情報の送信であれば（ステップＳ４のＹＥＳ）、オフセット時間管理部１９のオフセット時間で修正した「現在時刻」を情報に付加してスレーブノード側に送信し（ステップＳ５）、ＩＧオフになるまではステップＳ６をＮＯで通過してステップＳ４から処理をくり返す。
【００３４】
一方、ステップＳ４において、通常制御の情報の送信でなければ（ステップＳ４のＮＯ）、前記検出手段がスレーブノード側の負荷の変化を検出したときに（ステップＳ７のＹＥＳ）、オフセット時間を更新するために、そのときの「現在時刻」をオフセット時間管理部１９のオフセット時間で修正して送信し（ステップＳ８）、その返信を受信すると（ステップＳ２のＹＥＳ）、送信から返信を受信するまでの時間の半分から最新のオフセット時間を算出してオフセット時間管理部１９のオフセット時間を算出した最新のオフセット時間に更新する（ステップＳ３）。また、本実施形態の場合、前記検出手段がスレーブノード側の負荷の変化を検出しなくても（ステップＳ７のＮＯ）、従来と同様に計時カウンタ１６の計時時刻が５０００ｍｓに達して「現在時刻」のカウントが一周期する毎に（ステップＳ９のＹＥＳ）、そのときの「現在時刻」をオフセット時間管理部１９のオフセット時間で修正して送信し（ステップＳ８）、その返信を受信すると（ステップＳ２のＹＥＳ）、送信から返信を受信するまでの時間の半分からオフセット時間を算出してオフセット時間管理部１９のオフセット時間を算出したオフセット時間に更新する（ステップＳ３）。
【００３５】
（スレーブノードのＥＣＵ２ａ〜２ｃの動作）
図５はスレーブノードのＥＣＵ２ａ〜２ｃの動作を示し、スレーブノードのＥＣＵ２ａ〜２ｃは、オフセット時間を算出するための「現在時刻」を初期受信すると（ステップＱ１のＹＥＳ）、受信した「現在時刻」をマスターノードのＥＣＵ１に返信し（ステップＱ２）、ＩＧオフになるまではステップＱ３をＮＯで通過してステップＱ１に戻る。
【００３６】
また、オフセット時間を更新するための「現在時刻」を受信したときにも（ステップＱ１のＮＯ、ステップＱ４のＹＥＳ）、受信した「現在時刻」をマスターノードのＥＣＵ１に返信し（ステップＱ２）、ＩＧオフになるまではステップＱ３をＮＯで通過してステップＱ１に戻る。
【００３７】
つきに、通常制御の情報の受信等により、オフセット時間で修正された「現在時刻」を受信すると（ステップＱ１、Ｑ２のＮＯ、ステップＱ３のＹＥＳ）、計時カウンタ２７の「現在時刻」を受信した「現在時刻」に補正し、時刻合せを行なってマスターノードとステップの同期をとる（ステップＱ６）。その後、ステップＱ３に移行する。
【００３８】
つぎに、マスターノードのＥＣＵ１、スレーブノードの各ＥＣＵ２ａ〜２ｃの動作に基づく、マスターノードとスレーブノードの同期合せの一例について説明する。
【００３９】
図６はマスターノードとスレーブノードの同期合せのタイムチャートの一例を示し、説明を簡単にするため、スレーブノードのＥＣＵをＥＣＵ２ａとすると、ＩＧオンまたはスレーブノード側の負荷状況の変化に基づき、時刻ｔ１にマスターノードのＥＣＵ１がオフセット時間の初期算出または更新のために「現在時刻」を送信することにより（図６の工程＃１）、時刻ｔ２にスレーブノードのＥＣＵ２ａが受信した「現在時刻」をそのまま返信する（図６の工程＃２）。この返信が時刻ｔ３にマスターノードのＥＣＵ１に受信されると、マスターノードのＥＣＵ１は送信した「現在時刻」と、返信の「現在時刻」を受信したときの自己の「現在時刻」（最新の「現在時刻」）との差分を算出し（図６の工程＃３）、時刻ｔ４に、算出した差分の時間の半分の時間をオフセット時間として算出する（図６の工程＃４）。なお、更新の場合は算出した差分の時間の半分が既に算出されているオフセット時間の増減時間になり、この増減時間を既に算出されているオフセット時間に加えて最新のオフセット時間が算出される。ここまでが、図６のオフセット時間算出の処理である。
【００４０】
そして、算出された最新のオフセット時間はマスターノードのＥＣＵ１のオフセット時間管理部１９に保持されて管理され、図６の定常制御の処理において、オフセット時間で修正された「現在時刻」が時刻ｔ５にマスターノードのＥＣＵ１から送信されると（図６の工程＃５）、時刻ｔ６にそれを受信したスレーブノードのＥＣＵ２ａが自己の「現在時刻」を受信した「現在時刻」に置換してマスターノードとスレーブノードの同期処理を行なって時刻を合せる（図６の工程＃６）。
【００４１】
以降、スレーブノード側でフェールが発生したり、処理負荷が高くなったりして、スレーブノード側の負荷状況が変化すると、工程＃１〜＃４によってマスターノードのＥＣＵ１のオフセット時間管理部１９に保持されているオフセット時間が最新の負荷状況に即したオフセット時間に更新される。
【００４２】
図７はこのようにして同期合せを行なった場合のタイムスタンプ例を示し、ここでは、スレーブノードのＥＣＵを図８の従来例に合わせて、ＥＣＵ２ａ、ＥＣＵ２ｂとし、マスターノードのＥＣＵ１の内部カウンタとしての計時カウンタ１６の「現在時刻」に対して、スレーブノードのＥＣＵ２ａ、２ｂの内部カウンタとしての計時カウンタ１６の「現在時刻」が、図８の場合と同様に３ｍｓ、１ｍｓ遅れているとする。なお、＊等は図８と同じものを示す。
【００４３】
この場合、マスターノードのＥＣＵ１がスレーブノードのＥＣＵ２ａ、２ｂに送信する時刻合せ用の「現在時刻」が、ＥＣＵ２ａ、２ｂの負荷状況に応じたオフセット時間３ｍｓ、１ｍｓで修正されて３ｍｓ、１ｍｓ進んだ時刻になるので、マスターノードのＥＣＵ１の時刻（実際の時刻）にスレーブノードのＥＣＵ２ａ、２ｂの時刻がずれなく同期する。そのため、車内に何らかの異常や故障が発生すると、例えば、実際の時刻「４９９８」に「ＤＴＣ」が得られたスレーブノードのＥＣＵ２ａが「ＤＴＣ」とそのときの時刻「４９９８」を記憶し、それから遅れた実際の時刻「４９９９」に「ＤＴＣ」が得られたスレーブノードのＥＣＵ２ｂが「ＤＴＣ」とそのときの時刻「４９９９」を記憶するので、ＥＣＵ２ａの「ＤＴＣ」が車内で最も早い実際の時刻「４９９８」に得られ、ＥＣＵ２ｂの「ＤＴＣ」がＥＣＵ２ａの「ＤＴＣ」の後に得られた２番目以降のものであると正しく判断される。
【００４４】
以上説明したように、本実施形態の場合、マスターノードのＥＣＵ１の前記検出手段が、スレーブノードのＥＣＵ２ａ〜２ｃ毎に通信バス３を含むスレーブノード側の負荷状況の変化を検出し、マスターノードのＥＣＵ１の前記更新手段が、スレーブノードのＥＣＵ２ａ〜２ｃそれぞれのスレーブノード側の負荷状況の変化を検出したときに、ＥＣＵ２ａ〜２ｃそれぞれのオフセット時間を算出して更新するため、マスターノードのＥＣＵ１は、スレーブノードのＥＣＵ２ａ〜ｃと頻繁に通信することなく、スレーブノードのＥＣＵ２ａ〜２ｃそれぞれのスレーブノード側の負荷状況が変化して適切なオフセット時間が変化するタイミングに合わせて、ＥＣＵ２ａ〜２ｃそれぞれのオフセット時間を算出して負荷状況に応じた適切なオフセット時間に更新することができる。
【００４５】
この場合、マスターノードのＥＣＵ１は、通信バス３のバス負荷を高くすることなく、常に、スレーブノードのＥＣＵ２ａ〜２ｃそれぞれの適切なオフセット時間をオフセット時間管理部１９に保持して管理することができる。そして、通常制御の情報送信時等に、マスターノードのＥＣＵ１からスレーブノードのＥＣＵ２ａ〜２ｃに、それぞれの適切なオフセット時間で修正した「現在時刻」をスレーブノードに送ることにより、通信バス３のバス負荷を高くすることなく、タイムスタンプ機能によってマスターノードとスレーブノードとの時刻を正確に合わせて同期のずれを防止することができる。そのため、例えばスレーブノードのＥＣＵ２ａ〜２ｃが「ＤＴＣ」とともに記憶した時刻から車内の異常や故障の発生個所を迅速・正確に突き止めて明確にすること等ができる。
【００４６】
そして、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行なうことが可能であり、例えば、前記実施形態では、スレーブノード側の負荷状況の変化を検出しなくても、従来と同様にマスターノードのＥＣＵ１の計時カウンタ１６が「現在時刻」の１周期である５０００ｍｓを計時したときにはオフセット時間を算出して更新するようにしたが、通信バス３のバス負荷の一層の軽減等を図る場合には、スレーブノード側の負荷状況の変化を検出したときのみオフセット時間を算出して更新するようにしてもよい。
【００４７】
また、計時カウンタ１６、２７の最大のカウント時間やクロックの周期等は、システムに応じた適当なものであってよく、前記実施形態の５０００、１ｍｓに限るものではない。
【００４８】
さらに、マスターノードのＥＣＵ１およびスレーブノードのＥＣＵ２ａ〜２ｃの構成は図２、図３の構成に限るものではなく。通信バス３がＬＩＮ等の通信バスであってもよい。
【００４９】
つきに、スレーブノードのＥＣＵ２ａ〜２ｃは、通信バス３を介して、スレーブノード間で通信することがあってもよいのは勿論であり、スレーブノードのＥＣＵ２ａ〜２ｃは１つ以上であればよい。
【００５０】
そして、マスターノード、スレーブノードはＥＣＵで構成されるものに限るものではなく、本発明は、種々の機器や設備のマスターノードとスレーブノードとが通信バスで接続されたネットワークの時刻同期システムに適用することができる。
【符号の説明】
【００５１】
１    マスターノードのＥＣＵ
２ａ〜２ｃ    スレーブノードのＥＣＵ
３    通信バス
１６、２７    計時カウンタ
１８    マスター側タイムスタンプ処理部
１９    オフセット時間管理部
【図１】
2012178770.tif 000003
【図２】
2012178770.tif 000004
【図３】
2012178770.tif 000005
【図４】
2012178770.tif 000006
【図５】
2012178770.tif 000007
【図６】
2012178770.tif 000008
【図７】
2012178770.tif 000009
【図８】
2012178770.tif 000010