(57)【特許請求の範囲】
【請求項１】
互いにメッセージフレームの送受信を行う、少なくとも３つのＥＣＵ（第一ＥＣＵ，第二ＥＣＵ，第三ＥＣＵ）を備え、
前記各ＥＣＵは、それぞれ、初期値からの経過時間を計数する第一タイマカウンタと、第二タイマカウンタと、を有するとともに、下記（ステップ１）から下記（ステップ４）のプロセスを順に実行する第一制御部と、第二制御部と、第三制御部と、をそれぞれ有することを特徴とする多重通信装置。
（ステップ１）前記第一ＥＣＵから、前記第二ＥＣＵと、前記第三ＥＣＵと、にそれぞれ前記第一タイマカウンタのカウント値を送信する。
（ステップ２）前記第二ＥＣＵから、前記第一ＥＣＵと、前記第三ＥＣＵと、にそれぞれ前記第二タイマカウンタのカウント値を送信する。
（ステップ３）前記第三ＥＣＵが、前記第一ＥＣＵから受信した前記第一タイマカウンタのカウント値と、前記第二ＥＣＵから受信した前記第二タイマカウンタのカウント値と、の差分値を算出する。
（ステップ４）前記差分値と、前記第一ＥＣＵの前記第二タイマカウンタのカウント値と、に基づいて、前記第一ＥＣＵの前記第一タイマカウンタのカウント値を補正して、前記各ＥＣＵの前記第一タイマカウンタのカウント値の同期をとり、前記第一ＥＣＵの前記第一タイマカウンタのカウント値は、前記第一ＥＣＵの前記第一タイマカウンタのカウント値から前記第一ＥＣＵの前記第二タイマカウンタのカウント値を差し引いて、さらに、前記差分値を差し引いた値を、前記第一ＥＣＵの前記第一タイマカウンタのカウント値から差し引いた値に補正される。
【請求項２】
前記（ステップ１）から前記（ステップ４）のプロセスに加えて、下記（ステップ５）のプロセスを実行することを特徴とする請求項１に記載の多重通信装置。
（ステップ５）前記差分値と、前記第二ＥＣＵの前記第一タイマカウンタのカウント値と、に基づいて、前記第二ＥＣＵの前記第二タイマカウンタのカウント値を補正して、前記各ＥＣＵの前記第二タイマカウンタのカウント値の同期をとり、前記第二ＥＣＵの前記第二タイマカウンタのカウント値は、前記第二ＥＣＵの前記第二タイマカウンタのカウント値から前記第二ＥＣＵの前記第一タイマカウンタのカウント値を差し引いて、さらに、前記差分値を加算した値を、前記第二ＥＣＵの前記第二タイマカウンタのカウント値から差し引いた値に補正される。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＥＣＵ間で互いに通信を行って、所定の処理を実行する多重通信装置に関するものである。
【背景技術】
【０００２】
昨今、例えば、車両には、様々なセンサによって検出された情報に基づいて、エンジンやトランスミッション、シャーシ等の制御を行う制御システムが実装されている。このような制御システムにあっては、多量のデータを短時間で処理する必要があるため、車両内に配設された通信ネットワーク（通信バス）上に複数の異なるＥＣＵ（Electronic Control Unit）を接続して、各ＥＣＵで分担して処理を行い、処理結果を互いに通信しあって所定の制御を行っている。このように必要な処理を複数のＥＣＵで分散して行う分散処理は、車両に限らず、大規模な制御システムに広く適用されている。
【０００３】
このような多重通信装置（分散処理システム）にあっては、各ＥＣＵ間でメッセージフレームの通信を行って、必要な情報をやり取りしている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５７−１７６４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された多重通信装置（分散処理システム）にあっては、各ＥＣＵ（特許文献１におけるセンタ計算機，ローカルプロセッサに対応）間で通信を行った際に、複数のＥＣＵから特定のＥＣＵに対して、同時にメッセージフレームが送信される、所謂メッセージフレームの衝突の発生が考慮されていなかった。したがって、このようなメッセージフレームの衝突が発生すると、必要な情報を全て受信するまでに時間遅れ（遅延時間）が発生する虞があった。
【０００６】
さらに、このような多重通信装置においては、異なるＥＣＵ間で時間同期をとりながら処理を進める必要がある。そのために必要な時間同期は、メッセージフレームの送受信のタイミングに基づいてとられていた。したがって、メッセージフレームの衝突が発生すると、メッセージフレームの送受信に遅延時間が生じて時間同期をとることができなくなるため、処理の遂行が阻害される虞があった。
【０００７】
本発明は、このような従来の問題点に鑑みなされたもので、多重通信装置に接続された複数のＥＣＵ間で確実に時間同期をとることを目的とするものである。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明に係る多重通信装置は、互いにメッセージフレームの送受信を行う、少なくとも３つのＥＣＵ（第一ＥＣＵ，第二ＥＣＵ，第三ＥＣＵ）を備え、前記各ＥＣＵは、それぞれ、初期値からの経過時間を計数する第一タイマカウンタと、第二タイマカウンタと、を有するとともに、下記（ステップ１）から下記（ステップ４）のプロセスを順に実行する第一制御部と、第二制御部と、第三制御部と、をそれぞれ有することを特徴とする。
（ステップ１）前記第一ＥＣＵから、前記第二ＥＣＵと前記第三ＥＣＵと、にそれぞれ前記第一タイマカウンタのカウント値を送信する。
（ステップ２）前記第二ＥＣＵから、前記第一ＥＣＵと前記第三ＥＣＵと、にそれぞれ前記第二タイマカウンタのカウント値を送信する。
（ステップ３）前記第三ＥＣＵが、前記第一ＥＣＵから受信した前記第一タイマカウンタのカウント値と、前記第二ＥＣＵから受信した前記第二タイマカウンタのカウント値との差分値を算出する。
（ステップ４）前記差分値と、前記第一ＥＣＵの前記第二タイマカウンタのカウント値と、に基づいて、前記第一ＥＣＵの前記第一タイマカウンタのカウント値を補正して、前記各ＥＣＵの前記第一タイマカウンタのカウント値の同期をとり、前記第一ＥＣＵの前記第一タイマカウンタのカウント値は、前記第一ＥＣＵの前記第一タイマカウンタのカウント値から前記第一ＥＣＵの前記第二タイマカウンタのカウント値を差し引いて、さらに、前記差分値を差し引いた値を、前記第一ＥＣＵの前記第一タイマカウンタのカウント値から差し引いた値に補正される。
【発明の効果】
【０００９】
本発明に係る多重通信装置によれば、前記した構成とすることによって、メッセージフレームの衝突により複数のＥＣＵ間の通信に遅延時間が生じた場合、または遅延時間の長さが変化した場合であっても、自動的に第一ＥＣＵの第一タイマカウンタのカウント値が補正されるため、異なるＥＣＵ間で確実に時間同期をとることができる。これによって、複数のＥＣＵで構成された多重通信装置において、所定の処理を時間遅れなく実行することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態である実施例１の全体構成を示すブロック図である。
【図２】実施例１において行われる処理の流れを示すシーケンス図である。
【図３】実施例１における各ＥＣＵのタイマカウンタのカウント値の具体的な遷移状態を示す図である。
【発明を実施するための形態】
【実施例１】
【００１１】
以下、本発明の多重通信装置の具体的な実施形態について、図面を参照して説明する。
【００１２】
図１は、本発明の一実施形態である多重通信装置１００の概略構造を示す図である。まず、図１を用いて、多重通信装置１００の全体構成について説明する。
［全体構成の説明］
【００１３】
多重通信装置１００は、図１に示すように、マスターＥＣＵである第一ＥＣＵ２０と、スレーブＥＣＵである、第二ＥＣＵ３０と第三ＥＣＵ４０と、を備えている。そして、第一ＥＣＵ２０と、第二ＥＣＵ３０と、第三ＥＣＵ４０と、は、ＣＡＮ（Control Area Network）バス１０によって互いに接続されている。  
【００１４】
第一ＥＣＵ２０と、第二ＥＣＵ３０と、第三ＥＣＵ４０と、はそれぞれ独立した２種類のタイマを備えている。即ち、第一ＥＣＵ２０は、第一タイマカウンタ２０ａと第二タイマカウンタ２０ｂを備え、第二ＥＣＵ３０は、第一タイマカウンタ３０ａと第二タイマカウンタ３０ｂを備え、第三ＥＣＵ４０は、第一タイマカウンタ４０ａと第二タイマカウンタ４０ｂを備えている。
【００１５】
これらのタイマカウンタは、それぞれ、多重通信装置１００の動作開始のタイミングで、予め設定された初期値から、各ＥＣＵが備えた内部タイマの計時に基づいてカウントアップされる。各タイマカウンタの詳細な動きについては後述する。
【００１６】
さらに、第一ＥＣＵ２０は、第一ＥＣＵ２０が有する各タイマカウンタ（２０ａ，２０ｂ）のカウント値を制御するとともに、これらのタイマカウンタ（２０ａ，２０ｂ）のカウント値を第二ＥＣＵ３０，第三ＥＣＵ４０に送信し、また、第二ＥＣＵ３０，第三ＥＣＵ４０が有するタイマカウンタ（３０ａ，３０ｂ，４０ａ，４０ｂ）のカウント値を受信する第一制御部２０ｃを有している。
【００１７】
また、第二ＥＣＵ３０は、第一制御部２０ｃと同様の機能を有する第二制御部３０ｃを有し、第三ＥＣＵ４０は、第一制御部２０ｃと同様の機能を有する第三制御部４０ｃをそれぞれ有している。
【００１８】
各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）はＣＡＮバス１０を介して、互いにデータのやり取りを行うことができる。
【００１９】
このデータは、メッセージフレームと呼ばれる所定のビット長のフレームに格納される。そして、このメッセージフレームには、やり取りを行うデータとともに、送信元のＥＣＵ、および送信先のＥＣＵを特定するアドレス情報と、送信元のＥＣＵのタイマカウンタのカウント値が、それぞれ所定のフォーマットで格納されて、送信先のＥＣＵに向けて送信される。
【００２０】
一方、送信先のＥＣＵは、メッセージフレームに格納されたアドレス情報に基づいて、自分に宛てて送信されたメッセージフレームであることを確認してこれを受信し、メッセージフレームに格納されたデータを読み取って、データに応じた処理を実行する。
［実施例１の処理の流れの説明］
【００２１】
次に、図２を用いて、多重通信装置１００で行われる処理の流れについて、順を追って説明する。
【００２２】
図２は、実施例１で行われる処理の流れを、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）毎に表したシーケンス図である。図２の縦軸（下向き矢印）は時間推移を示している。また、各ＥＣＵ間に引かれた矢印は、ＥＣＵ間の情報の流れを示している。
【００２３】
図２に示すように、各ＥＣＵ間でタイマカウンタのカウント値を送受信して、第一タイマカウンタのカウント値と第二タイマカウンタのカウント値とを比較しながら、ＥＣＵ間の時間同期がとられる。以下、時間同期をとるために実行される各シーケンスの概要を、順を追って説明する。
【００２４】
（シーケンス１）各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）に、各ＥＣＵに実装された第一タイマカウンタ２０ａ，３０ａ，４０ａと第二タイマカウンタ２０ｂ，３０ｂ，４０ｂのカウント値の初期値をそれぞれセットする。
【００２５】
（シーケンス２）各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）にセットされた初期値のうち、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値の初期値を第二ＥＣＵ３０と第三ＥＣＵ４０に送信する準備を行って、準備が完了次第、送信を行う。このとき、データの送信準備を開始してから、送信先のＥＣＵに受信されるまでに必要な遅延時間Δｐ１が発生する。
【００２６】
（シーケンス３）第二ＥＣＵ３０と第三ＥＣＵ４０が、受信した第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値を読み出して、第二ＥＣＵ３０の第一タイマカウンタ３０ａと第三ＥＣＵ４０の第一タイマカウンタ４０ａに、それぞれセットする。
【００２７】
（シーケンス４）第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値を、第一ＥＣＵ２０と第三ＥＣＵ４０に送信する準備を行う。このとき、データの送信を行う準備のために必要な遅延時間Δｐ２が発生する。
【００２８】
（シーケンス５）第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値を、第一ＥＣＵ２０と第三ＥＣＵ４０に送信する。そして、第一ＥＣＵ２０と第三ＥＣＵ４０が、送信されたカウント値を受信する。このとき、データの受信を行うために必要な遅延時間Δｐ３が発生する。
【００２９】
（シーケンス６）第一ＥＣＵ２０と第三ＥＣＵ４０が、受信した第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値を読み出して、第一ＥＣＵ２０の第二タイマカウンタ２０ｂと第三ＥＣＵ４０の第二タイマカウンタ４０ｂに、それぞれセットする。
【００３０】
（シーケンス７）第三ＥＣＵ４０の第一タイマカウンタ４０ａのカウント値から第三ＥＣＵ４０の第二タイマカウンタ４０ｂのカウント値を差し引いて差分値を求める。
【００３１】
（シーケンス８）算出した差分値を第三ＥＣＵ４０から第一ＥＣＵ２０と第二ＥＣＵ３０に送信する。このとき、データの送信を行う準備のために必要な遅延時間Δｐ４が発生する。
【００３２】
（シーケンス９）第一ＥＣＵ２０と第二ＥＣＵ３０が、送信された差分値を受信する。このとき、データの受信を行うために必要な遅延時間をΔｐ５が発生する。
【００３３】
（シーケンス１０）第一ＥＣＵ２０において、第一タイマカウンタ２０ａのカウント値から第二タイマカウンタ２０ｂのカウント値を差し引いて、そこから、さらに、受信した差分値を差し引いて、第一ＥＣＵ２０の第一タイマカウンタ２０ａの補正値を得る。
【００３４】
（シーケンス１１）第二ＥＣＵ３０において、第二タイマカウンタ３０ｂのカウント値から第一タイマカウンタ３０ａのカウント値を差し引いて、そこに、受信した差分値を加算して、第二ＥＣＵ３０の第二タイマカウンタ３０ｂの補正値を得る。
【００３５】
（シーケンス１２）第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値から、（シーケンス１０）で算出した補正値を差し引いて、新たな第一タイマカウンタ２０ａのカウント値とする。また、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値から、（シーケンス１１）で算出した補正値を差し引いて、新たな第二タイマカウンタ３０ｂのカウント値とする。
【００３６】
以上、（シーケンス１）から（シーケンス１２）で構成されたプロセスを実行することによって、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第一タイマカウンタ（２０ａ，３０ａ，４０ａ）の同期をとることができるとともに、第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）の同期をとることができる。
［各ＥＣＵのタイマカウンタのカウント値の具体的な遷移の説明］
【００３７】
次に、各ＥＣＵのタイマカウンタのカウント値の具体的な遷移と、各タイマカウンタの同期がとれる仕組みについて、図３を用いて説明する。図３は、実施例１で行われる処理の過程における、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）のタイマカウンタのカウント値の具体的な遷移状態を示す図である。
【００３８】
（シーケンス１）各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）に、タイマカウンタのカウント値の初期値ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６をそれぞれセットする。なお、初期値ｔ１から初期値ｔ６は、全て異なる値であっても構わない。即ち、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）のタイマカウンタは、初期状態において同期がとれている必要はない。
【００３９】
（シーケンス２）各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）にセットされた初期値ｔ１から初期値ｔ６のうち、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値である初期値ｔ１を第二ＥＣＵ３０と第三ＥＣＵ４０に送信する。このとき、データの送信を完了して、送信先のＥＣＵに受信されるまでに必要な遅延時間Δｐ１が発生する。したがって、各タイマカウンタのカウント値は、遅延時間Δｐ１だけ進行する。
【００４０】
（シーケンス３）第二ＥＣＵ３０と第三ＥＣＵ４０がデータを受信して、第二ＥＣＵ３０の第一タイマカウンタ３０ａと第三ＥＣＵ４０の第一タイマカウンタ４０ａに、それぞれ、初期値ｔ１をセットする。
【００４１】
（シーケンス４）第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値（ｔ４＋Δｐ１＋Δｐ２）を、第一ＥＣＵ２０と第三ＥＣＵ４０に送信する準備を行う。このとき、準備に要する時間を遅延時間Δｐ２とする。したがって、送信準備が完了した時点で、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）のタイマカウンタのカウント値は、（シーケンス３）の終了時点と比べて、遅延時間Δｐ２だけ進行する。
【００４２】
（シーケンス５）第一ＥＣＵ２０と第三ＥＣＵ４０がデータを受信する。このとき、データの受信を行うために必要な遅延時間をΔｐ３とする。即ち、第一ＥＣＵ２０と第三ＥＣＵ４０がデータを受信したときに、各タイマカウンタのカウント値は遅延時間Δｐ３だけ進行する。
【００４３】
（シーケンス６）第一ＥＣＵ２０と第三ＥＣＵ４０が、受信データに格納されていた第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値（ｔ４＋Δｐ１＋Δｐ２）を読み出して、第一ＥＣＵ２０の第二タイマカウンタ２０ｂと第三ＥＣＵ４０の第二タイマカウンタ４０ｂにそれぞれセットする。なお、以後の説明を簡単にするため、セットしたカウント値をａとする。
【００４４】
（シーケンス７）第三ＥＣＵ４０の第一タイマカウンタ４０ａのカウント値をｂ（＝ｔ１＋Δｐ２＋Δｐ３）として、そこから第三ＥＣＵ４０の第二タイマカウンタ４０ｂのカウント値ａを差し引いて、差分値（ｂ−ａ）を求める。本実施例の場合、差分値として、ｂ−ａ＝ｔ１−ｔ４−Δｐ１＋Δｐ３が算出される。
【００４５】
（シーケンス８）差分値（ｂ−ａ）を第三ＥＣＵ４０から第一ＥＣＵ２０と第二ＥＣＵ３０に送信する。このとき、データの送信を行うために必要な遅延時間をΔｐ４とする。即ち、第三ＥＣＵ４０が差分値（ｂ−ａ）の送信を完了したときに、各タイマカウンタのカウント値は遅延時間Δｐ４だけ進行する。
【００４６】
（シーケンス９）第一ＥＣＵ２０と第二ＥＣＵ３０が、差分値（ｂ−ａ）の受信を完了する。このとき、データの受信を行うために必要な遅延時間をΔｐ５とする。即ち、第一ＥＣＵ２０と第二ＥＣＵ３０が差分値（ｂ−ａ）の受信を完了したときに、各タイマカウンタのカウント値は遅延時間Δｐ５だけ進行する。
【００４７】
（シーケンス１０）第一ＥＣＵ２０において、第一タイマカウンタ２０ａのカウント値から第二タイマカウンタ２０ｂのカウント値を差し引いて、そこから、さらに差分値（ｂ−ａ）を差し引く。この演算によって演算値Ａ＝Δｐ１を得る。
【００４８】
（シーケンス１１）第二ＥＣＵ３０において、第二タイマカウンタ３０ｂのカウント値から第一タイマカウンタ３０ａのカウント値を差し引いて、そこに、差分値（ｂ−ａ）を加算する。この演算によって演算値Ｂ＝Δｐ３を得る。
【００４９】
（シーケンス１２）第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値から演算値Ａ（＝Δｐ１）を差し引く。また、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値から演算値Ｂ（＝Δｐ３）を差し引く。
【００５０】
（シーケンス１２）を終了すると、図３に示すように、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値と、第二ＥＣＵ３０の第一タイマカウンタ３０ａのカウント値と、第三ＥＣＵ４０の第一タイマカウンタ４０ａのカウント値は、互いに等しい値になる。このように、（シーケンス１）から（シーケンス１２）のプロセスを実行することによって、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値の同期をとることができる。
【００５１】
同様に、図３に示すように、（シーケンス１２）を終了すると、第一ＥＣＵ２０の第二タイマカウンタ２０ｂのカウント値と、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値と、第三ＥＣＵ４０の第二タイマカウンタ４０ｂのカウント値は、互いに等しい値になる。このように、（シーケンス１）から（シーケンス１２）のプロセスを実行することによって、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）のカウント値の同期をとることができる。
【００５２】
ここで、各遅延時間Δｐ１，Δｐ２，Δｐ３，Δｐ４，Δｐ５はいずれも未知数であって、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の性能や、送受信する情報量等によって変化する。また、ＣＡＮバス１０に流れるメッセージフレームの衝突が発生したときにも遅延時間が変化する。しかし、実施例１の構成によると、前記した動作説明の通り、遅延時間の値によらずに各ＥＣＵ（２０，３０，４０）の第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値の同期がとれることがわかる。さらに、各ＥＣＵ（２０，３０，４０）の第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）のカウント値の同期がとれることがわかる。
【００５３】
なお、同期がとれたときの各タイマカウンタのカウント値自体は、図３の（シーケンス１２）の結果に示すように、遅延時間Δｐ１，Δｐ２，Δｐ３，Δｐ４，Δｐ５、および初期値ｔ１，ｔ４の値に依存して、その都度変化する。
【００５４】
ここで、第一タイマカウンタ（２０ａ，３０ａ，４０ａ）または第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）に異常が生じているときには、前記した（シーケンス１）から（シーケンス１２）を実行して得られた第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値が全て等しくならない。または、第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）のカウント値が全て等しくならない。したがって、第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値が全て等しくないとき、または第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）のカウント値が全て等しくないときは、タイマカウンタに異常が生じている可能性が高い。そのため、このような状態が検出されたときには、同期がとれない旨の警告を出力して報知することも可能である。
【００５５】
以上説明したように、実施例１に係る多重通信装置１００は、互いにメッセージフレームの送受信を行う、少なくとも３つのＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）を備え、前記各ＥＣＵは、それぞれ、初期値からの経過時間を計数する第一タイマカウンタ２０ａ，３０ａ，４０ａと、第二タイマカウンタ２０ｂ，３０ｂ，４０ｂと、を有するとともに、下記（ステップ１）から下記（ステップ４）のプロセスを順に実行する第一制御部２０ｃと、第二制御部３０ｃと、第三制御部４０ｃと、をそれぞれ有する。
（ステップ１）第一ＥＣＵ２０から、第二ＥＣＵ３０と、第三ＥＣＵ４０と、にそれぞれ第一タイマカウンタ２０ａのカウント値を送信する。
（ステップ２）第二ＥＣＵ３０から、第一ＥＣＵ２０と、第三ＥＣＵ４０と、にそれぞれ第二タイマカウンタ３０ｂのカウント値を送信する。
（ステップ３）第三ＥＣＵ４０が、第一ＥＣＵ２０から受信した第一タイマカウンタ２０ａのカウント値と、第二ＥＣＵ３０から受信した第二タイマカウンタ３０ｂのカウント値と、の差分値を算出する。
（ステップ４）前記差分値と、第一ＥＣＵ２０の第二タイマカウンタ２０ｂのカウント値と、に基づいて、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値を補正して、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値の同期をとる。
したがって、実施例１に係る多重通信装置１００によれば、メッセージフレームの衝突が発生した際に、ＥＣＵの処理の遅れに伴って発生する遅延時間Δｐ１，Δｐ２，Δｐ３，Δｐ４，Δｐ５の値が変化したときであっても、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値の同期を確実にとることができる。
【００５６】
また、実施例１に係る多重通信装置１００は、前記（ステップ１）から前記（ステップ４）のプロセスに加えて、下記（ステップ５）のプロセスを実行する。
（ステップ５）前記（ステップ３）で得られた差分値と、第二ＥＣＵ３０の第一タイマカウンタ３０ａのカウント値と、に基づいて、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値を補正して、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）のカウント値の同期をとる。
したがって、実施例１に係る多重通信装置１００によれば、各ＥＣＵ（第一ＥＣＵ２０，第二ＥＣＵ３０，第三ＥＣＵ４０）の第一タイマカウンタ（２０ａ，３０ａ，４０ａ）のカウント値に加えて、第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）のカウント値も同期をとることができる。このように、２種類の異なるタイマカウンタの同期を独立してとれることによって、一方のタイマカウンタにビットエラーによるビット化けやビット固着等の不具合が発生した場合であっても、正常に動作している他方のタイマカウンタを利用して処理を継続することができる。
【００５７】
そして、実施例１に係る多重通信装置１００によれば、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値が、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値から第一ＥＣＵ２０の第二タイマカウンタ２０ｂのカウント値を差し引いて、さらに、前記差分値を差し引いた値を、第一ＥＣＵ２０の第一タイマカウンタ２０ａのカウント値から差し引いた値に補正されるため、簡便な演算処理によって、第一タイマカウンタ（２０ａ，３０ａ，４０ａ）の同期をとることができる。
【００５８】
さらに、実施例１に係る多重通信装置１００によれば、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値が、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値から第二ＥＣＵ３０の第一タイマカウンタ３０ａのカウント値を差し引いて、さらに、前記差分値を加算した値を、第二ＥＣＵ３０の第二タイマカウンタ３０ｂのカウント値から差し引いた値に補正されるため、簡便な演算処理によって、第二タイマカウンタ（２０ｂ，３０ｂ，４０ｂ）の同期をとることができる。
【００５９】
なお、実施例１では、３個のＥＣＵからなる多重通信装置について説明したが、多重通信装置１００が備えるＥＣＵの数は３個に限定されるものではない。即ち、４個以上のＥＣＵが接続された多重通信装置を構成した場合であっても、本発明を同様に適用することができる。
【００６０】
すなわち、４個以上のＥＣＵが接続された多重通信装置にあっては、４個め以降のＥＣＵは、全て実施例１で説明した第三ＥＣＵ４０と同様に取り扱われる。すなわち、図２，図３で説明したシーケンス２において、４個め以降のＥＣＵに対しても、第一ＥＣＵ２０から第一タイマカウンタ２０ａのカウント値が送信される。また、シーケンス５において、４個め以降のＥＣＵに対しても、第二ＥＣＵ３０から第二タイマカウンタ３０ｂのカウント値が送信される。そして、４個め以降のＥＣＵに対しても、実施例１で説明したシーケンス７以降が実行される。なお、シーケンス７からシーケンス９で行う差分値の算出と送信は、第三ＥＣＵ以降のいずれか１個のＥＣＵに対してのみ実施すればよい。
【００６１】
また、実施例１は、図１に示した通り、複数のＥＣＵ（２０，３０，４０）がＣＡＮバス１０によって接続された多重通信装置１００を例にあげて説明したが、複数のＥＣＵ間を接続する通信線はＣＡＮ規格の通信線に限定されるものではない。すなわち、イーサネット（登録商標），ＦｌｅｘＲａｙ等の規格に準拠した通信線であっても、実施例１と同様の多重通信装置を実現することができる。
【００６２】
以上、この発明の実施例を図面により詳述してきたが、実施例はこの発明の例示にしか過ぎないものであるため、この発明は実施例の構成にのみ限定されるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれることは勿論である。
【符号の説明】
【００６３】
１０・・・ＣＡＮバス
２０・・・第一ＥＣＵ
２０ａ・・第一タイマカウンタ
２０ｂ・・第二タイマカウンタ
２０ｃ・・第一制御部３０・・・第二ＥＣＵ
３０ａ・・第一タイマカウンタ
３０ｂ・・第二タイマカウンタ
３０ｃ・・第二制御部４０・・・第三ＥＣＵ
４０ａ・・第一タイマカウンタ
４０ｂ・・第二タイマカウンタ
４０ｃ・・第三制御部１００・・多重通信装置
【図１】
0006402428.tif 000002
【図２】
0006402428.tif 000003
【図３】
0006402428.tif 000004