(57)【特許請求の範囲】
【請求項１】
第１の制御処理を第１の制御周期内の所定時間で実行終了する第１の電子制御ユニットと、
前記第１の制御処理と連携して動作する第２の制御処理を、該第２の制御処理の実行時間の倍以上の第２の制御周期内に実行する第２の電子制御ユニットと、が接続された車両用電子制御システムであって、
前記第１の電子制御ユニットは、前記第２の制御周期の半分未満の周期で同期信号を送信し、
前記第２の電子制御ユニットは、前記同期信号をトリガーに第２の制御周期のカウントを開始し、前記第２の制御周期内に前記第２の制御処理を終了させる、
ことを特徴とする車両用電子制御システム。
【請求項２】
前記第１の制御処理が定期的に実行される場合、
前記第２の電子制御ユニットは、
前記第１の制御処理の実行が開始されてから最初の前記同期信号が送信されるタイミングを検出し、前記タイミングから予め定めた時間が経過すると、前記同期信号が受信されなくても、前記第２の制御処理の実行を開始する、
ことを特徴とする請求項１記載の車両用電子制御システム。
【請求項３】
前記第１の電子制御ユニットは、前記第１の制御周期の十分の一以下の周期で同期信号を送信する、
ことを特徴とする請求項１又は２に記載の車両用電子制御システム。
【請求項４】
前記第１の電子制御ユニットと前記第２の電子制御ユニットは、前記同期信号が送信される信号線を介して接続されている、
ことを特徴とする請求項１〜３いずれか１項記載の車両用電子制御システム。
【請求項５】
前記第２の電子制御ユニットは、制御信号を受信した回数をカウントするカウント手段を有し、
前記第１の制御処理が開始されてから受信した前記同期信号の回数が所定値以上になると、前記第２の制御処理の実行を開始する、
ことを特徴とする請求項１記載の車両用電子制御システム。
【請求項６】
前記第１の制御周期と前記第２の制御周期は同じであり、
前記第１の電子制御ユニットは、前記第１の制御周期の前半で前記第１の制御処理を実行終了させ、前記第２の電子制御ユニットは、前記第２の制御周期の前半経過以降に前記第２の制御処理を開始し前記第２の制御周期内に前記第２の制御処理を終了させる、
ことを特徴とする請求項１記載の車両用電子制御システム。
【請求項７】
前記第２の電子制御ユニットは、前記第１の制御周期の開始時から前記同期信号の少なくとも１つを受信しなくても、前記第１の制御周期の開始時に前記同期信号を受信したならば開始したはずの前記第２の制御周期内に前記第２の制御処理を終了させる、
ことを特徴とする請求項１記載の車両用電子制御システム。
【請求項８】
第１の制御処理を第１の制御周期内の所定時間で実行終了する第２の車両用電子制御ユニットと接続され、第２の制御処理を該第２の制御処理の実行時間の倍以上の第２の制御周期内に実行する車両用電子制御ユニットにおいて、
前記第２の車両用電子制御ユニットから前記第２の制御周期の半分未満の周期で送信された同期信号をトリガーに前記第２の制御周期のカウントを開始し、前記第２の制御周期内に前記第１の制御処理と連携して動作する第２の制御処理を終了させる、
ことを特徴とする車両用電子制御ユニット。
【請求項９】
第１の制御処理を第１の制御周期内の所定時間で実行終了する第１の電子制御ユニットと、
前記第１の制御処理と連携して動作する第２の制御処理を、該第２の制御処理の実行時間の倍以上の第２の制御周期内に実行する第２の電子制御ユニットと、が接続された車両用電子制御システムの車両用制御同期方法であって、
前記第１の電子制御ユニットが、前記第２の制御周期の半分未満の周期で同期信号を送信し、
前記第２の電子制御ユニットが、前記第１の電子制御ユニットが送信した前記同期信号をトリガーに第２の制御周期のカウントを開始し、前記第２の制御周期内に前記第２の制御処理を終了させる、
ことを特徴とする車両用制御同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の電子制御ユニットが接続された車両用電子制御システム等に関し、特に、密接に関係した複数の処理を別々の電子制御ユニットで実行する車両用電子制御システム、車両用電子制御ユニット及び車両用制御同期方法に関する。
【背景技術】
【０００２】
車両に搭載される電子制御ユニット（以下、ＥＣＵという）に要求される制御は高機能化・複雑化が進んでおり、１つのＥＣＵに全ての機能を搭載することが困難になってきている。このため、本来は１つのＥＣＵで実行することが好ましい処理を、別々のＥＣＵで実行する必要性が増している。しかしながら、この１つのＥＣＵで実行することが好ましい処理を分割して得られた２つの処理は、互いに密接な関係にあるため処理の同期を取ることが要求される。【０００３】
図１は、２つの処理の同期を模式的に説明する図の一例である。図１Ａは１つのＥＣＵで実行される２つのＡ処理、Ｂ処理の時間的な関係を示す図の一例である。Ａ処理とＢ処理は密接な関係にあるため、図１Ａに示すように、ＥＣＵはＡ処理後（処理の切り替え等に必要な最小限の時間の後）、Ｂ処理の実行を開始する。ＥＣＵはＡ処理の処理結果に基づき例えばアクチュエータＡを制御し、Ｂ処理の処理結果に基づき別の関連するアクチュエータＢを制御する。こうすることで２つのアクチュエータが連携して制御される。なお、Ａ処理とＢ処理に配分される時間（以下、制御周期という）は決まっており、制御周期ＡはＡ処理に必要充分な時間が、制御周期ＢはＢ処理に必要十分な時間がそれぞれ与えられている。【０００４】
図１Ｂ、図１ＣはＡ処理をＥＣＵ＿Ａで、Ｂ処理をＥＣＵ＿Ｂで分割して処理する場合のＡ処理とＢ処理の時間的な関係を図の一例である。なお、ＥＣＵ＿ＡとＥＣＵ＿Ｂは電気的に接続されている。ＥＣＵ＿ＡとＥＣＵ＿Ｂ間で処理の同期を取らないと、Ａ処理が終了してからＢ処理が開始するまでに時間があいてしまったり（図１Ｂ）、Ａ処理が終了していないのにＢ処理が開始してしまう（図１Ｃ）等、Ａ処理とＢ処理の好ましい時間的な関係が崩れてしまう。例えば、前者ではアクチュエータＡの制御後、アクチュエータＢの制御が遅れ、後者ではＢ処理は１つ前のＡ処理の処理結果を用いてアクチュエータＢを制御するので、いずれの場合もアクチュエータＡとＢをスムースに連携して制御できない。【０００５】
処理の同期について、複数のコンピュータで構成されたクラスタコンピュータにおいて、一方のコンピュータから他方のコンピュータにセッションの開始と終了を非同期に通知する技術が考案されている（例えば、特許文献１参照。）。通知により、マスターとなるコンピュータから並列処理部分の最初と最後のタイミングをスレーブのコンピュータに指示できるとしている。【０００６】
しかしながら、特許文献１記載の同期技術のように単に通知することで処理の同期を取る場合、通知時に通信エラーが生じただけで複数のコンピュータが同期をとることが困難になる。【０００７】
図を用いて説明する。図２（ａ）はＥＣＵ＿ＡからＥＣＵ＿Ｂに送信される同期信号の一例を示す図である。ＥＣＵ＿ＡはＡ処理が終了する前後に同期信号をＥＣＵ＿Ｂに送信する。ＥＣＵ＿Ｂは同期信号をトリガーにＢ処理の実行を開始することができる。【０００８】
しかしながら、同期信号の通信時に通信エラーや優先度の高い割込みが発生することがあり、ＥＣＵ＿Ｂが常に同期信号を受信できるとは限らない。図２Ｂに示すように通信エラーが生じると、ＥＣＵ＿ＢはＢ処理を開始できず、ＥＣＵ＿Ａが次のＡ処理を実行して同期信号をＥＣＵ＿Ｂに送信するまで、ＥＣＵ＿ＢはＢ処理の実行を開始できないことになる。すなわち、通信エラーが生じるとＥＣＵ＿Ｂは最低でも１回の制御を飛ばしてしまうことになる。このような状況はアクチュエータＢの制御を不安定にしてしまう。【０００９】
このように、従来の２つの処理の同期方法では、密接な関係にある制御を同期して実現できるよう、２つの処理の同期を取ることが困難であった。この点、制御に関係のない単なる情報処理ではＥＣＵ＿Ｂの処理が１回抜けても大きな不都合は生じない。また、通信エラーを検出して再度、ＥＣＵ＿Ａが同期信号を送信するなどの時間的余裕があるため、これまで問題とはならなかった。
【特許文献１】特開２００６−２２８１９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上記課題に鑑み、密接な関係にある複数の処理をそれぞれ実行する複数の電子制御ユニットにおいて、同期の精度を向上できる車両用電子制御システム、車両用電子制御ユニット及び車両用制御同期方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、第１の制御処理を第１の制御周期内の所定時間で実行終了する第１の電子制御ユニットと、前記第１の制御処理と連携して動作する第２の制御処理を、該第２の制御処理の実行時間の倍以上の第２の制御周期内に実行する第２の電子制御ユニットと、が接続された車両用電子制御システムであって、前記第１の電子制御ユニットは、前記第２の制御周期の半分未満の周期で同期信号を送信し、前記第２の電子制御ユニットは、前記同期信号をトリガーに第２の制御周期のカウントを開始し、前記第２の制御周期内に前記第２の制御処理を終了させる、ことを特徴とする。
【発明の効果】
【００１２】
密接な関係にある複数の処理をそれぞれ実行する複数の電子制御ユニットにおいて、同期の精度を向上できる車両用電子制御システム、車両用電子制御ユニット及び車両用制御同期方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１Ａ】２つの処理の同期を模式的に説明する図の一例である（従来図）。
【図１Ｂ】一方の処理の遅延を模式的に説明する図の一例である（従来図）。
【図１Ｃ】一方の処理の実行の開始が早すぎる２つの処理の関係を模式的に説明する図の一例である（従来図）。
【図２Ａ】ＥＣＵ＿ＡからＥＣＵ＿Ｂに送信される同期信号の一例を示す図である（従来図）。
【図２Ｂ】ＥＣＵ＿ＡからＥＣＵ＿Ｂに送信される同期信号に生じる通信エラーを模式的に示す図である（従来図）。
【図３】複数の電子制御ユニットが同期を取るための同期信号を模式的に説明する図の一例である。
【図４】複数の電子制御ユニットが接続された電子制御システムの概略構成図の一例である。
【図５】ＥＣＵ＿ＡとＥＣＵ＿Ｂの機能ブロック図の一例である。
【図６】電子制御ユニットシステムの動作手順の特徴部を示すフローチャート図の一例である。
【図７】複数の電子制御ユニットが接続された電子制御システムの概略構成図の一例である（実施例２）。
【図８】ＥＣＵ＿ＡとＥＣＵ＿Ｂの機能ブロック図の一例である（実施例２）。
【図９】図６のステップＳ４０の手順を示すフローチャート図の一例である。
【図１０Ａ】複数の電子制御ユニットが同期を取るための同期信号を模式的に説明する図の一例である。
【図１０Ｂ】処理開始時刻とΔＴを模式的に説明する図の一例である。
【図１１】ＥＣＵ＿ＡとＥＣＵ＿Ｂの機能ブロック図の一例である（実施例３）。
【図１２】処理開始時刻とΔＴを説明する図の一例である。
【図１３】電子制御ユニットシステムの動作手順の特徴部を示すフローチャート図の一例である（実施例３）。
【図１４Ａ】Ａ処理とＢ処理の時間的な関係の一例を示す図である。
【図１４Ｂ】Ａ処理とＢ処理の時間的な関係の一例を示す図である。
【図１４Ｃ】Ａ処理、Ｂ処理、Ｃ処理の時間的な関係の一例を示す図である
【符号の説明】
【００１４】
１１Ａ、１１Ｂ    入出力インターフェイス
１２Ａ、１２Ｂ    ＥＥＰＲＯＭ
１３Ａ、１３Ｂ    ＣＰＵ
１４Ａ、１４Ｂ    ＣＡＮ通信部
１５Ａ、１５Ｂ    スイッチ素子
１６Ａ，１６Ｂ    ＡＳＩＣ
１７              直接接続線
１８              ＣＡＮバス
２０              同期信号プログラム
２４              同期信号送信部
２５              同期信号受信部
５０              ＥＣＵ
１００            電子制御システム
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について図面を参照しながら実施例を挙げて説明する。【００１６】
図３は、本実施形態の複数の電子制御ユニットが同期を取るための同期信号を模式的に説明する図の一例である。以下。電子制御ユニットを、ＥＣＵ（Electronic  Control  Unit）という。ＥＣＵを区別する場合にはＥＣＵ＿Ａ、ＥＣＵ＿Ｂ、ＥＣＵ＿Ｃ等のように称し、区別しない場合は単にＥＣＵ５０という。【００１７】
ＥＣＵ＿Ａは、制御周期Ａよりも十分に短い送信周期Ｔで同期信号をＥＣＵ＿Ｂに送信する。ＥＣＵ＿Ｂは、同期信号の受信で生じる同期信号割込みをＢ処理の実行を開始するスタートタイミングにする。同期信号は、制御周期Ａ及び制御周期Ｂよりも十分に短い周期で送信されるので、ＥＣＵ＿ＡがＡ処理を開始してから数個の同期信号をＥＣＵ＿Ｂが受信できなくても、ＥＣＵ＿Ｂは受信できた同期信号をスタートタイミングにしてＢ処理の実行を開始することができる。したがって、ＥＣＵ＿ＡがＡ処理を開始してから数個の同期信号をＥＣＵ＿Ｂが受信できなくても、ＥＣＵ＿Ｂは制御周期Ｂの経過を待つことなくＢ処理の実行を開始でき、ＥＣＵ＿ＢがアクチュエータＢの制御をせず制御周期Ｂが経過してしまうことがない。【００１８】
なお、ＥＣＵ＿Ａは制御周期Ａのほぼ前半でＢ処理に必要な処理を終了させることができ、ＥＣＵ＿Ｂは制御周期Ｂのほぼ後半でＢ処理を終了するようになっている。また、ＥＣＵ＿ＡはＡ処理が終了次第、処理Ｂに必要な処理結果をＥＣＵ＿Ｂに送信する（必要でなければ送信しない）。したがって、図示するようにＡ処理の開始からわずかに遅れるスタートタイミングでＥＣＵ＿ＢがＢ処理の実行を開始しても、ＥＣＵ＿ＢはＡ処理の結果を利用してＢ処理を実行できる。このことは、ＥＣＵ＿Ａ、ＥＣＵ＿Ｂの処理速度が従来と同程度であれば、図３の制御周期Ａ、Ｂは、従来のＡ処理又はＢ処理の制御周期よりも長くなっていることを意味する。【００１９】
ＥＣＵ＿Ｂが、Ａ処理から送信される何個目の同期信号をスタートタイミングとするかは設計することができるので、制御周期Ａ、Ｂを従来と同程度にしてもよい。このように同期信号とスタートタイミングの関係を可変にできることも、本実施形態のＥＣＵ５０の特徴の１つである。
【実施例１】
【００２０】
図４は、複数のＥＣＵ５０が接続された電子制御システム１００の概略構成図の一例を示す。ＥＣＵ９９は、Ａ処理とＢ処理を単体で実行するＥＣＵであり、このＡ処理をＥＣＵ＿ＡにＢ処理をＥＣＵ＿Ｂに分離した。図４では、ＥＣＵ＿ＡとＥＣＵ＿Ｂの構造が同様に記載されているが、両者は異なっていてもよい。すなわち、ＥＣＵ９９から複数（図では２つ）のＥＣＵ＿Ａ、ＥＣＵ＿Ｂに機能を分離する際、Ａ処理、Ｂ処理の処理負荷を勘案してハードウェアの処理能力を適切に設計できる。なお、図４では、同期信号を送信するＥＣＵ＿Ａをマスター、受信するＥＣＵ＿Ｂをスレーブとしたが、これは便宜上の区分でＥＣＵ＿ＢがＥＣＵ＿Ａ又は他のＥＣＵに同期信号を送信することもできる。【００２１】
図４において、元のＥＣＵ９９を例えばエンジンＥＣＵとする。エンジンＥＣＵには電源制御機能とエンジン制御機能とが搭載されている。ところが、電源制御機能が多様化される傾向にあり、電源制御機能はＥＣＵ＿Ａに、エンジン制御機能はＥＣＵ＿Ｂに、１つのＥＣＵ９９で実行されていた機能をそれぞれ分割することで負荷を分散することとした。電源制御機能は、例えばイグニッションオンによりスタータモータを駆動してエンジン回転数を上昇させると共に、燃料ポンプとバッテリの間のスイッチをオンして燃料ポンプを始動することでエンジンへの燃料の供給を可能とする。また、エンジン制御機能は、回転数の上昇したエンジンの燃料噴射タイミング等を制御してエンジンをアイドル回転させる。【００２２】
また、例えば、電源制御機能は、バッテリの電圧と電流からバッテリのＳＯＣ（State  of  Chagfe）を算出し、ＳＯＣによれば充電不足と判定される場合、オルタネータの調整電圧を制御し、エンジン制御機能はアイドル時のエンジン回転数を上げて充電量を増加させる。このように、電源制御機能とエンジン制御機能の関係は互いに密接に関係しているといえる。【００２３】
また、近年では、ハイブリッド車や電気自動車が市販されているため、電気モータとエンジンを密接に関係させて制御したり、複数のホイールインモータを密接に関係させて制御する状況が生じつつある。ハイブリッド車の場合、ハイブリッドＥＣＵと呼ばれるＥＣＵ５０が、運転者によるアクセルペダルの操作量と車速とに基づいて、インプットシャフトに出力すべき要求トルクを計算し、この要求トルクが得られるよう、エンジンとモータのそれぞれの制御量を算出する（Ａ処理）。エンジンＥＣＵは一方の制御量に基づき回転数等を演算してエンジンを制御し（Ｂ処理）、モータＥＣＵは他方の制御量（トルク指令）に基づきモータに流す電流値を算出し、またその電流値に応じて決定されたデューティ比のＰＷＭ信号によりインバータをスイッチングする（Ｃ処理）。【００２４】
したがって、ハイブリッドＥＣＵ、エンジンＥＣＵ及びモータＥＣＵの３つのＥＣＵ５０が実行するＡ処理〜Ｃが密接に連携して車両を走行させている。本実施例の同期信号により、３つのＥＣＵ５０間でＡ処理〜Ｃ処理の同期をとることが可能となる。
ハイブリッド車の例ではそれぞれの機能（Ａ処理〜Ｃ処理）を統合していないが、３つのＥＣＵ５０が実行する処理を２つのＥＣＵ５０に統合することもできる。例えば、Ａ処理とＢ処理をＥＣＵ＿Ａに、Ｃ処理をＥＣＵ＿Ｂに統合することで、２つのＥＣＵ５０間で本実施例の同期信号により同期をとることが可能となる。すなわち、本実施例の同期信号は、１つのＥＣＵ９９の処理を複数のＥＣＵ５０に分離する場合だけでなく、ＥＣＵ５０を統合した場合にも適用可能である。【００２５】
また、この他、エンジンと変速機にも密接に関係した処理があり、従来、パワートレインＥＣＵにて実行していた２つの処理を、ＥＣＵ＿ＡとＥＣＵ＿Ｂに分離しても、本実施例の同期信号により同期をとることが可能となる。【００２６】
このように本実施例の電子制御システム１００は、密接な、換言すれば不可分な関係にあるＡ処理とＢ処理を別体のＥＣＵ５０で実行する。密接又は不可分とは、例えば、Ａ処理の後、必ずＢ処理が必要であること、かつ、Ｂ処理の実行を開始するスタートタイミングがＡ処理の処理結果が得られてから経過する時間の制約を受けること、をいう。【００２７】
図４に示すように、ＥＣＵ＿ＡのＣＰＵ１３Ａには入出力インターフェイス１１Ａ、ＥＥＰＲＯＭ１２Ａ、スイッチ素子１５Ａ、ＡＳＩＣ（Application Specific Integrated Circuit）１６Ａ、及び、ＣＡＮ通信部１４Ａがバスを介して接続されている。ＥＣＵ＿ＢのＣＰＵ１３Ｂには入出力インターフェイス１１Ｂ、ＥＥＰＲＯＭ１２Ｂ、スイッチ素子１５Ｂ、ＡＳＩＣ１６Ｂ、及び、ＣＡＮ通信部１４Ｂがバスを介して接続されている。ＥＣＵ＿ＡとＥＣＵ＿Ｂの構成は同様なので、以下ではＥＣＵ＿Ａについて説明する。【００２８】
ＥＥＰＲＯＭ１２Ａには、Ａ処理（ＥＣＵ＿Ｂの場合はＢ処理）に対応したＡ処理プログラム、Ａ処理に必要なデータ、及び、同期信号を送信するための同期信号プログラム２０が記憶されている。このほか、ＥＣＵ＿ＡはＡ処理だけを実行するわけではないので（Ｂ処理と密接に関係しない処理も実行する）、Ａ処理プログラム以外の不図示のプログラムを記憶している。Ａ処理プログラムと同期信号プログラム２０は別体でもよいし、Ａ処理を１つのＭａｉｎ関数で実行すると共に、Ｍａｉｎ関数内に同期信号プログラム２０を配置してもよい。【００２９】
入出力インターフェイス１１Ａには各種のセンサが接続される。ＥＣＵ５０がエンジンＥＣＵである場合、例えばＯ２センサ、水温センサ、クランクポジションセンサ等が接続されている。スイッチ素子１５Ａは、ＭＯＳＦＥＴやＩＧＢＴ（Insulated Gate Bipolar
Transistor）等を実体とし、スイッチ素子１５Ａには各種のスイッチ、アクチュエータやソレノイドが接続されている。ＡＳＩＣ１６Ａには、特定の演算や制御に対応して実装されモータやアクチュエータが接続されている。ＥＣＵ＿ＡのＣＡＮ通信部１４Ａは、ＣＡＮバス１８を介してＥＣＵ＿ＢのＣＡＮ通信部１４Ｂと接続されており、時分割多重通信による複数のＥＣＵ間の通信を実現する。なお、ＥＣＵ間の通信にＣＡＮでなくＦｌｅｘＲａｙなどの他の通信方法を用いてもよい。また、通信でなく、直接接続線１７でＥＣＵ＿ＡとＥＣＵ＿Ｂを接続してもよい。ＣＡＮ通信部１４Ａ、１４Ｂと直接接続線１７の関係については後述する。【００３０】
図５は、本実施例のＥＣＵ＿ＡとＥＣＵ＿Ｂの機能ブロック図の一例を示す。ＣＰＵ１３Ａは１つ又は複数のＣＰＵコアを搭載し、ＥＥＰＲＯＭ１２Ａに記憶されたＡ処理プログラム及び同期信号プログラム２０を実行する。ＥＣＵ＿ＡのＣＰＵ１３ＡがＡ処理プログラム及び同期信号プログラム２０を実行すること又はＡＳＩＣ１６Ａ等のロジック回路により、Ａ処理実行部２２、第１タイマ割込み部２１、第２タイマ割込み部２３、及び、同期信号送信部２４が実現される。同様に、ＥＣＵ＿ＢのＣＰＵ１３ＢがＢ処理プログラムを実行すること又はＡＳＩＣ１６Ｂ等のロジック回路により、Ｂ処理実行部２７、同期信号受信部２５、及び、第３タイマ割込み部が実現される。【００３１】
〔Ａ処理の実行〕
Ａ処理実行部２２はＡ処理を実行する。ＣＰＵ１３ＡがＡ処理を実行する時間はほぼ一定であり、この時間よりも長めのスライスタイムを配分しておけばＡ処理の実行が終了する。配分される時間が、制御周期Ａに相当する。なお、Ａ処理は、ＣＰＵ１３Ａが何らかの割込みを検知して開始されたり、所定のタイミング（例えばＢ処理が終了したタイミング）で開始される。【００３２】
第１タイマ割込み部２１は、この制御周期Ａが経過するとＣＰＵ１３Ａにタイマ割込みする。第１タイマ割込み部２１は、例えば、Ａ処理の実行直前に、第１タイマをリセットし、制御周期Ａを第１タイマにセットし、第１タイマをスタートさせる。第１タイマのスタート後（実際には次述する第２タイマのスタート後）、Ａ処理実行部２２はＡ処理の実行を開始する。第１タイマが制御周期Ａの経過をカウントしてＣＰＵ１３Ａに割り込みすると、ＣＰＵ１３ＡはＡ処理以外の処理を実行する。【００３３】
〔同期信号の送信〕
同期信号はいくつかの態様で送信することができる。例えば、ＣＰＵ１３Ａが複数のコアを有する場合は、Ａ処理を実行するコアとは別のコアにより同期信号プログラム２０を実行することで、同期信号を送信することができる。また、ＡＳＩＣ１６Ａにより同期信号を送信することができる。この場合、ハード的に同期信号送信部２４を送信することができる。これらの態様では、Ａ処理に影響を与えずに同期信号を送信することができるが、コストの増大をもたらす場合がある。【００３４】
また、Ａ処理プログラムと同期信号プログラムを１つのプログラムで実装して、Ａ処理実行部２２が定期的に同期信号を送信する同期信号プログラムを実行する態様がある。この場合、同期信号送信部２４はＭａｉｎ関数から呼び出される下位の関数やサブルーチンとなる。しかしながら、同期信号の送信周期Ｔが短いと、送信周期Ｔの精度が保証しにくくなるおそれがある。【００３５】
また、タイマ割込みを利用する態様がある。図５の機能ブロック図にはタイマ割込みを利用した態様を図示した。同期信号送信部２４は、送信周期毎に実行され同期信号を送信すると終了する。【００３６】
まず、第２タイマ割込み部２３は、例えば、第１タイマ割込み部２１が第１タイマをスタートさせた直後に、第２タイマをリセットし、送信周期Ｔを第２タイマにセットし、第２タイマをスタートさせる。第２タイマのスタート後、Ａ処理実行部２２はＡ処理を実行するが、第２タイマが送信周期Ｔの経過をカウントしてＣＰＵ１３Ａに割り込みすると、割り込みハンドラがＡ処理のコンテキストを退避させ、ＣＰＵ１３Ａに同期信号プログラム２０を実行させる。これにより同期信号送信部２４が実現され、同期信号送信部２４は同期信号を送信する。【００３７】
同期信号送信部２４が同期信号を送信し終わると、割り込みハンドラが待避したコンテキストをＣＰＵ１３Ａ等に設定して、Ａ処理プログラムを実行させる。Ａ処理の退避、同期信号の送信、及び、Ａ処理の再開を繰り返すことで、ＥＣＵ＿Ａは送信周期Ｔ毎に同期信号を送信することができる。【００３８】
〔同期信号〕
同期信号について説明する。同期信号はＣＡＮ通信又は直接接続線１７を介して送信される。直接接続線１７とは、ＥＣＵ＿Ａの端子（図４ではスイッチ素子１５Ａ）とＥＣＵ＿Ｂの端子（図４では入出力インターフェイス１１Ｂ）を接続する例えばワイヤーハーネスである。直接接続線１７では、ＥＣＵ＿ＡとＥＣＵ＿Ｂだけが使用するものなので、同期信号がＥＣＵ＿Ｂに到達しないなどの送信エラーが生じにくい。しかしながら、直接接続線１７を新たに車載する必要があるのでコスト増、車両重量増となるおそれがある。【００３９】
一方、ＣＡＮ通信により同期信号を送信する場合、各ＥＣＵ５０がＣＡＮ通信部１４Ａ、１４Ｂを搭載しているのでコスト増となりにくい。しかし、ＣＡＮ通信はＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）をアクセス手順とするため、ＥＣＵ＿Ａが同期信号を送信する際、ＥＣＵ＿Ｂを含む他のＥＣＵ５０がＣＡＮバス１８を使用していると、ＥＣＵ＿Ａは所望のタイミングで同期信号を送信できない場合がある。【００４０】
以上から、例えば、ＥＣＵ＿ＡとＥＣＵ＿Ｂが接続されたＣＡＮバス１８の使用率が十分に小さいとしてよい場合には、直接接続線１７を実装せずＣＡＮ通信により同期信号を送信するよう設計する。ＣＡＮバス１８の使用率が比較的大きい場合には、直接接続線１７を実装して同期信号を送信するよう設計する。すなわち、車両毎や設計方針により好適な実装例は異なる。【００４１】
直接接続線１７を用いて送信される同期信号はＨｉ（例えば５Ｖ）信号である。同期信号送信部２４は、スイッチ素子１５ＡをいずれかのスイッチをオンにしてＨｉ信号を送信する。ＥＣＵ＿Ｂの入出力インターフェイス１１ＢはＬｏｗからＨｉの立ち上がりエッジを検出し、同期信号受信部２５はこの検出結果を同期信号として受信する。【００４２】
また、ＣＡＮ通信を用いて送信される同期信号はＣＡＮフレームである。ＣＡＮの通信データは次のＣＡＮフレームを送信単位とする。
「ＳＯＦ；データＩＤフィールド；ＲＴＲ；ＤＬＣ；データフィールド；ＣＲＣフィールド；ＡＣＫフィールド；ＥＯＦ」
このうち、データＩＤフィールドに通信データを識別するデータＩＤが格納されている。このデータＩＤには同期信号を格納していることを示す値が設定される。データフィールドには本来、送信対象のデータが格納されるが、本実施例ではＥＣＵ＿Ａが同期のタイミングをＥＣＵ＿Ｂに通知できればよいので、データフィールドにデータを格納する必要はない。なお、複数の異なる同期信号をＥＣＵ＿Ａが送信する場合、同期信号を識別するデータをデータフィールドに格納してもよい。同期信号を送信するＣＡＮフレームは、各フィールドの値が固定となるので、同期信号プログラム内に固定データとして記憶しておくことができる。【００４３】
ＥＣＵ＿ＢのＣＡＮ通信部１４Ｂは、ＣＡＮバス１８を同報的に送信されるＣＡＮフレームのデータＩＤを参照し、それがＥＣＵ＿Ｂが受信すべきＣＡＮフレームであると受信する。同期信号受信部２５は、ＣＡＮ通信部１４Ｂが有する受信割込みを利用して同期信号を受信する。【００４４】
〔送信周期Ｔ〕
送信周期Ｔについて説明する。送信周期Ｔは、制御周期Ａよりも十分に短い時間であればよく、好適には、制御周期Ａの１／１０程度であり、例えば、制御周期Ａの１／３〜１／１００の範囲である。【００４５】
送信周期Ｔが短いほど、Ｂ処理の実行を開始するスタートタイミングをＡ処理のスタートタイミングと一致させやすくなる。しかし、直接接続線１７を用いて同期信号を送信する場合、直接接続線１７の負荷を考慮しなくてもよいが、送信周期Ｔが短いほど同期信号送信部２４によるＣＰＵ１３Ａの処理負荷が増大する。このため、例えばＡ処理の実行に影響を与えない、適切な送信周期Ｔに設計される。【００４６】
ＣＡＮ通信を用いて同期信号を送信する場合は、送信周期Ｔが短いほどＣＡＮバス１８のバス負荷が増大する。このため、所定以上にＣＡＮフレームが衝突しない、適切な送信周期Ｔを決定する。このようにして、上限の（最も短い）送信周期Ｔを決定することができる。【００４７】
一方、送信周期Ｔの下限は、Ａ処理の実際の実行時間により制限される。上記のように例えば、Ａ処理が制御周期Ａの半分程度の時間で終了するのであれば、送信周期Ｔは少なくても制御周期Ａの「１／２」より短い必要がある。【００４８】
〔Ｂ処理の実行〕
Ｂ処理は同期信号の受信をスタートタイミングに実行が開始される。同期信号受信部２５は、直接接続線１７を介して所定の回路が立ち上がりエッジを検出する（Ｉ／Ｏ割込み）と同期信号を受信する。同期信号受信部２５はＣＰＵ１３Ａに割込みするので、これによりＥＣＵ＿ＢはＢ処理の実行を開始する。【００４９】
また、ＥＣＵ＿ＢがＣＡＮ通信により同期信号を受信する場合、ＣＡＮ通信部１４Ｂが同期信号であるＣＡＮフレームを受信した際、同期信号受信部２５がＣＰＵ１３Ｂに割り込みする（受信割り込み）。これにより、ＣＰＵ１３ＢはＢ処理の実行を開始する。以下、Ｉ／Ｏ割込みと受信割り込みを区別せず、単に「同期信号割込み」という。【００５０】
ＣＰＵ１３Ｂが同期信号割込みされると、割り込みハンドラは、ＣＰＵ１３Ｂがそれまで実行していた処理のコンテキストを退避させ、ＣＰＵ１３ＢにＢ処理プログラムを実行させる。これにより、Ｂ処理実行部２７が実現され、Ｂ処理実行部２７はＢ処理を実行する。ＣＰＵ１３ＢがＢ処理を実行する時間はほぼ一定であり、この時間よりも長めのスライスタイムを配分しておけばＢ処理の実行が終了する。配分される時間が、制御周期Ｂに相当する。【００５１】
第３タイマ割込み部２６は、この制御周期Ｂが経過するとＣＰＵ１３Ｂにタイマ割込みする。このため第３タイマ割込み部２６は、例えば、Ｂ処理の実行直前に、第３タイマをリセットし、制御周期Ｂを第３タイマにセットし、第３タイマをスタートさせる。したがって、Ｂ処理実行部２７は第３タイマのスタート後にＢ処理の実行を開始する。第３タイマが制御周期Ｂの経過をカウントしてＣＰＵ１３Ｂに割り込みすると、ＣＰＵ１３ＢはＢ処理以外の処理に移行する。なお、図３では、制御周期Ａと制御周期Ｂは同程度になっているが、上記のように制御周期Ａと制御周期Ｂは互いに独立である。【００５２】
〔電子制御システム（ＥＣＵ＿Ａ、ＥＣＵ＿Ｂ）１００の動作手順〕
図６は、電子制御ユニットシステムの動作手順の特徴部を示すフローチャート図の一例を示す。ＥＣＵ＿ＡとＥＣＵ＿Ｂはそれぞれ独自に処理を実行しているが、Ａ処理とＢ処理は制御に密接な関係があるため、図６のフローチャート図による動作は例えばＥＣＵ＿ＡがＡ処理を開始するとスタートする。【００５３】
ＣＰＵ１３ＡがＡ処理プログラム及び同期信号プログラムを実行すると、第１タイマ割込み部２１は第１タイマ（制御周期Ａ）を設定し、第１タイマをスタートさせ、第２タイマ割込み部２３は第２タイマ（送信周期Ｔ）を設定し第２タイマをスタートさせる（Ｓ１０）。【００５４】
ついで、Ａ処理実行部２２はＡ処理の実行を開始する（Ｓ２０）。Ａ処理実行部２２は第２タイマがＣＰＵ１３Ａに割込みするまでＡ処理を実行する（Ｓ３０）。【００５５】
送信周期Ｔが経過して第２タイマがＣＰＵ１３Ａに割込みすると（Ｓ３０のＹｅｓ）、同期信号送信部２４が同期信号をＥＣＵ＿Ｂに送信する（Ｓ４０）。同期信号を送信すると、Ａ処理実行部２２がＡ処理を再開する。【００５６】
Ａ処理の実行中、第１タイマがＣＰＵ１３Ａに割り込むまで（Ｓ５０のＮｏ）、処理はステップＳ２０に戻り、Ａ処理実行部２２がＡ処理の実行を継続する（Ｓ２０）。【００５７】
なお、制御周期Ａが経過して第１タイマがＣＰＵ１３Ａに割り込むと（Ｓ５０のＹｅｓ）、ＥＣＵ＿ＡはＡ処理以外の他の処理を実行することができる（Ｓ６０）。【００５８】
ＥＣＵ＿Ｂの処理に移り、ＥＣＵ＿Ｂは同期信号を受信するまでＢ処理以外の他の処理を実行している（Ｓ１１０）。【００５９】
そして、ＥＣＵ＿Ａから同期信号が送信されると（Ｓ１２０のＹｅｓ）、同期信号受信部２５はＣＰＵ１３Ｂに割込みし、ＣＰＵ１３ＢがＢ処理プログラムを実行する。Ｂ処理の実行の開始に伴い第３割タイマ込み部２６が実行され、第３タイマ割込み部２６は第３タイマ（制御周期Ｂ）を設定し、第３タイマをスタートさせる（Ｓ１３０）。【００６０】
また、Ｂ処理実行部２７はＢ処理の実行を開始する（Ｓ１４０）。Ｂ処理実行部２７は、制御周期Ｂが経過せず第３タイマがＣＰＵ１３Ｂに割込みするまで（Ｓ１５０のＮｏ）、ステップＳ１４０のＢ処理を実行する（Ｓ１４０）。このように、ＥＣＵ＿ＡとＥＣＵ＿Ｂは、ＥＣＵ＿ＡがＡ処理の実行を開始すると図６の処理を繰り返す。【００６１】
以上説明したように、本実施例の電子制御システム１００は、ＥＣＵ＿Ａの制御周期Ａより十分に短い周期で同期信号をＥＣＵ＿Ｂに送信するので、ＥＣＵ＿ＡがＡ処理を開始してから数個の同期信号をＥＣＵ＿Ｂが受信できなくても、ＥＣＵ＿Ｂはその後に受信した同期信号をスタートタイミングにしてＢ処理の実行を開始することができる。したがって、ＥＣＵ＿Ｂは、密接な関係にあるＡ処理に対する遅れを最小限にしてＢ処理を実行でき、従来のように１つの制御周期Ｂの間、Ｂ処理が実行されないという事態を解消できる。
【実施例２】
【００６２】
本実施例では、ＥＣＵ＿Ａが直接接続線１７とＣＡＮ通信の両方を用いてＥＣＵ＿Ｂに同期信号を送信できる電子制御システム１００について説明する。【００６３】
図７は、複数の電子制御ユニットが接続された電子制御システム１００の概略構成図の一例を示す。なお、図７において図４と同一部には同一の符号を付しその説明は省略する。図７の電子制御システム１００は、ＥＣＵ＿ＡとＥＣＵ＿ＢがＣＡＮ通信可能であると共に、直接接続線１７を有する。こうすることで、直接接続線１７とＣＡＮ通信部１４Ａ、１４Ｂのいずれか一方を用いた通信が困難になっても、ＥＣＵ＿Ｂは他方を介して同期信号を受信することができる。【００６４】
同期信号送信部２４が同期信号を送信するいくつかの態様について説明する。
（１）態様の１つめは、同期信号を送信する際は、同期信号送信部２４が直接接続線１７とＣＡＮ通信の両方で同期信号を送信する態様である。この場合、同期信号をほぼ確実にＥＣＵ＿Ｂに到達させることができるが、ＣＡＮバス１８のバス負荷が増大するおそれがある。同期信号送信部２４は同時期に直接接続線１７からＨｉ信号を、ＣＡＮ通信部１４ＡからＣＡＮフレームを送信するが、同期信号受信部２５が直接接続線１７とＣＡＮ通信部１４Ｂを介し同時に同期信号を受信することは少ない。このため、同期信号受信部２５は早期に受信した同期信号を処理Ｂのスタートタイミングにすることができる。
（２）態様の２つめは、直接接続線１７とＣＡＮ通信部１４Ａ、１４Ｂのいずれか一方に異常が生じた場合、同期信号送信部２４が他方を介して同期信号を送信する態様である。例えば、直接接続線１７に異常が生じた場合もＣＡＮ通信で同期信号を送信でき、ＣＡＮ通信に異常が生じた場合、直接接続線１７で同期信号を送信でき、フェイルセーフが可能となる。しかし、この場合、ＥＣＵ＿Ｂで生じた異常をＥＣＵ＿Ａが検出して送信方法を選択することになるため、ＥＣＵ＿ＡがＥＣＵ＿Ｂの異常を共有することが必要となる。ＥＣＵ＿Ｂは、直接接続線１７又はＣＡＮ通信のいずれかで同期信号を受信すればよいが、ＥＣＵ＿Ａで生じた異常をＥＣＵ＿Ｂが共有することが好ましくなる。【００６５】
図８は、（２）の態様における本実施例の機能ブロック図の一例を示す。（１）の態様では、同期信号送信部２４が直接接続線１７からＨｉ信号を、ＣＡＮ通信部１４ＡからＣＡＮフレームを送信するが、機能ブロック図に変更はないので省略した。本実施例のＥＣＵ＿Ａは異常検出部２８を、ＥＣＵ＿Ｂは異常検出部３１をそれぞれ有する。ＥＣＵ＿ＡとＥＣＵ＿Ｂは直接接続線１７で接続されているので、直接接続線１７に異常を検出されない場合、同期信号送信部２４は直接接続線１７を介して同期信号を送信することで、バス負荷を低減できる。【００６６】
そして、異常検出部２８と異常検出部３１は直接接続線１７の異常を検出する。例えば、直接接続線１７が接続されている端子に規定外の低い又は高い電圧が検出された場合、ＥＣＵ＿Ａの異常検出部２８又はＥＣＵ＿Ｂの異常検出部３１の少なくともいずれかが直接接続線１７に異常があると検出する。また、ＥＣＵ＿Ｂの異常検出部３１は、一定期間、直接接続線１７を介してＥＣＵ＿Ａから同期信号が受信されない場合、異常を検出することができる。【００６７】
異常を検出した一方の異常検出部２８（３１）は、他方の異常検出部３１（２８）に異常を通知する。異常の通知は例えばＣＡＮフレームを用いる。これにより、ＥＣＵ＿Ａの異常検出部２８とＥＣＵ＿Ｂの異常検出部３１が異常の検出を共有できる。異常検出部２８は、例えば異常の検出の有無を示す異常検出フラグ（異常なし：フラグオフ、異常あり：フラグオン）２９を操作して、直接接続線１７の異常を記録する。同様に、異常検出部３１は、異常検出フラグ３２を操作して、直接接続線１７の異常を記録する。【００６８】
同期信号送信部２４は、異常検出フラグ２９を参照し、異常検出フラグ２９がオフの場合は直接接続線１７で同期信号を送信し、異常検出フラグ２９がオンの場合はＣＡＮ通信部１４Ａから同期信号を送信する。また、同期信号受信部２５は、異常検出フラグ３２を参照し、異常検出フラグ３２がオフの場合は直接接続線１７で同期信号を受信し、異常検出フラグ３２がオンの場合はＣＡＮ通信部１４Ｂで同期信号を受信する。【００６９】
こうすることで、直接接続線１７に異常がない場合はバス負荷を低減でき、直接接続線１７に異常が生じた場合はＣＡＮ通信で同期信号を送信することができる。【００７０】
図９は、図６のステップＳ４０の手順を示すフローチャート図の一例である。電子制御システム１００の動作手順は図６と同じなので省略する。なお、異常検出部２８、３１は、図６の手順とは関係なく、異常を検出した場合にすでに異常検出フラグ２９，３２をオンにしている。【００７１】
送信周期Ｔが経過して第２タイマがＣＰＵ１３Ａに割込みすると（Ｓ３０のＹｅｓ）、同期信号送信部２４が同期信号をＥＣＵ＿Ｂに送信する（Ｓ４０）。この時、同期信号送信部２４は異常検出フラグ２９を参照し、異常検出フラグ２９がオンかオフかを判定する（Ｓ４１）。【００７２】
異常検出フラグ２９がオフの場合（Ｓ４１のＮｏ）、同期信号送信部２４は同期信号をＣＡＮフレームにて送信する（Ｓ４２）。異常検出フラグ２９がオンの場合（Ｓ４１のＹｅｓ）、同期信号送信部２４は同期信号を直接接続線１７にて送信する（Ｓ４３）。以降の手順は図６と同様である。【００７３】
本実施例の電子制御システム１００は、実施例１の効果に加え、ＣＡＮ通信と直接接続線１７の両方で同期信号を送信できることで、より確実に同期信号をＥＣＵ＿Ｂに送信することができる。
【実施例３】
【００７４】
本実施例では、ＥＣＵ＿Ｂが同期信号を受信できない状態が続いても、Ｂ処理の実行の開始の遅延を回避できる電子制御システム１００について説明する。【００７５】
図１０Ａは、複数の電子制御ユニットが同期を取るための同期信号を模式的に説明する図の一例である。これまで説明したように、ＥＣＵ＿Ａは制御周期Ａより十分に短い送信周期Ｔで同期信号をＥＣＵ＿Ｂに送信する。【００７６】
しかしながら、例えば、同期信号のいくつかが直接接続線１７に生じたノイズやＣＡＮ通信の通信エラーにより受信できない場合がある。また、ＥＣＵ＿Ｂに種々の割り込みが生じるので直接接続線１７以外のＩ／Ｏ割込みが生じた際に、同期信号が到達するとＥＣＵ＿Ｂが同期信号を受信できない場合がある（以下、これらを受信不良という。）。このような受信不良が連続すると（図では２回）、Ｂ処理が遅延してしまうが、Ａ処理とＢ処理に密接な関係があるためこのような遅延は好ましくない。【００７７】
そこで、図１０Ｂに示すように、ＥＣＵ＿Ｂは、Ｂ処理の処理開始時刻を設定しておき、処理開始時刻からΔＴ以上の時間経過すると、同期信号が受信されなくても、Ｂ処理の実行を開始する。したがって、Ｂ処理の実行の開始の遅延を最大でもΔＴに抑制することができる。【００７８】
図１１は、本実施例のＥＣＵ＿ＡとＥＣＵ＿Ｂの機能ブロック図の一例を示す。図１１において図５と同一部には同一の符号を付しその説明は省略する。実施例２のように異常検出部２８等を含んでいてもよい。【００７９】
本実施例のＥＣＵ＿Ｂは、信号カウント部３３と遅延時間計測部３４を有する。信号カウント部３３は、同期信号を受信した回数をカウントし、Ａ処理の実行が終了したタイミング（時刻）を検出する。遅延時間計測部３４は、Ａ処理の実行が終了した時刻から計測時間を計測し、その計測時間が図１０の処理開始時刻からΔＴ以上経過すると、ＣＰＵ１３Ｂに割り込みする。これにより、ＥＣＵ＿Ｂは同期信号を受信していなくても、Ｂ処理の実行を開始することができる。
なお、この割り込みは、遅延時間計測部３４がカウンタ回路のようなハードウェアであればハードウェア割り込みでよいし、遅延時間計測部３４がソフトウェアにより実装されていればシステムコールなどのソフトウェア割り込みとなる。また、後者の場合、遅延時間計測部３４はＢ処理の実行が開始される前にＣＰＵ１３Ｂがプログラムを実行することで実現している。【００８０】
処理開始時刻とΔＴについて図１２を用いて説明する。処理開始時刻は、ＥＣＵ＿ＡがＡ処理の実行を開始した直後に、同期信号送信部２４が送信する同期信号（以下、最初の同期信号という）をＥＣＵ＿Ｂが受信する時刻である。受信不良のため、実際にはＥＣＵ＿Ｂは最初の同期信号を受信しないと想定される。このため、処理開始時刻は、最後に同期信号を受信した時刻（Ａ処理が終了した時刻）を起点に時間を計測することで設定される。【００８１】
同期信号送信部２４がＡ処理の制御周期Ａの間に送信する同期信号の回数は例えばＮ回に固定である（図１２では１０回）。このため信号カウント部３３は、同期信号受信部２５が同期信号を受信した回数をカウントする。そして、同期信号がＮ回になるとＡ処理が終了したことを遅延時間計測部３４に通知する。遅延時間計測部３４は、この通知を起点に計測時間の計測を開始する。なお、信号カウント部３３は、処理開始時刻が1度でも明らかになれば、同期信号が受信されなくても送信周期Ｔが経過したことから受信不良を推測して、同期信号を受信した回数を仮想的にカウントすることができる。【００８２】
図１２に示すようにＡ処理は同じＡ処理間隔毎に実行されるので、Ａ処理が終了して再度、Ａ処理の実行が開始されるまでのＡ処理間隔はほぼ一定である。遅延時間計測部３４は、計測している計測時間がこのＡ処理間隔と一致した時刻を、処理開始時刻に設定する。そして、計測している計測時間が処理開始時刻からΔＴ以上超過するとＣＰＵ１３Ｂに割込みする。こうすることで、最初の同期信号に受信不良が生じても、最大の遅延時間をΔＴに抑制することができる。【００８３】
ΔＴについて説明する。ΔＴは、Ｂ処理の実行にどの程度の時間的な制約があるかにより決定される。例えば、Ｂ処理の実行の開始が、同期信号の送信周期Ｔに相当する時間の遅延も許されないのなら、送信周期Ｔ未満に決定される。また、最初の同期信号から２回程度の受信不良を許容できるのなら、３×送信周期Ｔ未満に決定される。【００８４】
図１３は、電子制御ユニットシステムの動作手順の特徴部を示すフローチャート図の一例を示す。図１３において、ＥＣＵ＿Ａの動作手順は図６と同じである。【００８５】
ＥＣＵ＿Ｂは同期信号を受信するまでＢ処理以外の他の処理を実行している（Ｓ１１０）。【００８６】
遅延時間計測部３４は、Ｓ１４６で説明する計測時間が処理開始時刻からΔＴ以上経過したか否かを例えばサイクル時間毎に判定する（Ｓ１１５）。同期信号の受信不良が生じると、ＥＣＵ＿Ａから同期信号が送信されたか否か不明であり、同期信号が受信できたか否かも不明となるので、遅延時間計測部３４は、同期信号の受信に関係なく処理開始時刻からΔＴ以上経過したか否かを判定する。【００８７】
処理開始時刻からΔＴ以上経過していない場合（Ｓ１１５のＮｏ）、受信不良がなければ同期信号が受信されることになる。実施例１と同様に、同期信号受信部２５はＥＣＵ＿Ａから同期信号を受信すると（Ｓ１２０のＹｅｓ）、ＣＰＵ１３Ｂに割込みして、ＣＰＵ１３ＢがＢ処理プログラムを実行する。したがって、第３割込み部が実行され、第３タイマ割込み部２６は第３タイマ（制御周期Ｂ）を設定し、第３タイマをスタートさせる（Ｓ１３０）。【００８８】
また、信号カウント部３３は、Ｂ処理の実行中、同期信号受信部２５が同期信号を受信する毎に受信した回数をカウントアップする（Ｓ１４０）。そして、同期信号を受信した回数がＮ回以上になったか否かを判定し（Ｓ１４５）、Ｎ回以上になると遅延時間計測部３４に通知することで、遅延時間計測部３４が計測時間の計測を開始する（Ｓ１４６）。Ｎ回受信した時の時刻が、Ａ処理が終了した時刻とみなされる。また、信号カウント部３３はカウントした回数をゼロにリセットする（Ｓ１４７）。【００８９】
ついで、Ｂ処理実行部２７はＢ処理の実行を開始する（Ｓ１４０）。Ｂ処理実行部２７は、制御周期Ｂが経過せず第３タイマがＣＰＵ１３Ｂに割込みするまで（Ｓ１５０のＮｏ）、ステップＳ１４０のＢ処理の実行を開始する（Ｓ１４０）。【００９０】
このようにＡ処理が終了してから計測時間の計測を開始することで、ステップＳ１１５において、遅延時間計測部３４は処理開始時刻からΔＴ以上経過したか否かを判定できる。処理開始時刻からΔＴ以上経過した場合（Ｓ１１５のＹｅｓ）、信号カウント部３３は回数に所定の初期値を設定して（Ｓ１１６）、第３タイマがスタートされ（Ｓ１３０）、Ｂ処理の実行が開始される（Ｓ１４０）。なお、この所定の初期値は、設定されているΔＴに応じた値である。例えば、受信不良を許容する同期信号の数が２回なら、回数の所定の初期値は「２」になる。【００９１】
以上のように、本実施例の電子制御システム１００は、処理開始時刻からΔＴ以上の時間、同期信号が受信されない場合、Ｂ処理の実行を開始することで、Ｂ処理の実行の開始の遅延を最大でもΔＴに抑制することができる。
【実施例４】
【００９２】
電子制御システム１００のいくつかの変形例を説明する。図１４ＡはＡ処理とＢ処理の時間的な関係の一例を示す。図１４ＡではＡ処理がＡ１処理〜Ａ３のサブプロセスを有し、Ｂ処理がＢ１処理〜Ｂ３のサブプロセスを有する。Ａ１処理はＢ１処理と、Ａ２処理はＢ２処理と、Ａ３処理はＢ３処理と、それぞれ密接に関係している。【００９３】
このため、Ｂ１処理はＡ１処理に継いで遅延なく、Ｂ２処理はＡ２処理に継いで遅延なく、Ｂ３処理はＡ３処理に継いで遅延なく、実行を開始することが必要になるが、ＥＣＵ＿Ｂは同期信号を制御周期Ａよりも十分に短い送信周期Ｔで受信することで、Ｂ１処理〜Ｂ３の実行開始のスタートタイミングを厳密に決定できる。この場合、Ａ１処理は送信周期Ｔ×２程度の時間で、Ａ２処理は送信周期Ｔ×５程度の時間で、Ａ３処理は送信周期Ｔ×８程度の時間で、実行が終了するようになっており、ＥＣＵ＿Ｂは受信した同期信号の数をカウントするだけでＢ１処理〜Ｂ３処理のスタートタイミングを検出できる。【００９４】
また、ＥＣＵ＿Ｂは、最初の同期信号を受信した時刻をスタートタイミングとするのでなく、同期信号を受信した回数をカウントして、所定の回数の同期信号を受信した時刻をスタートタイミングとすることができる。図１４Ｂは、Ａ処理とＢ処理の時間的な関係の一例を示す。図１４Ｂでは、Ｂ処理のスタートタイミングが、同期信号を５回受信した時刻になっている。【００９５】
したがって例えば、Ａ処理の実行の終了が遅くなるような設計変更がＡ処理プログラムに施された場合、Ｂ処理のスタートタイミングをシフトすればよいので、Ｂ処理の設計変更を最小限にできる。【００９６】
また、Ｂ処理と密接に関係するＣ処理がある場合、ＥＣＵ＿Ｂが同期信号をＥＣＵ＿Ｃに送信すれば、ＥＣＵ＿ＣはＢ処理と同期を取ってＣ処理のスタートタイミングを決定できる。図１４Ｃは、Ａ処理、Ｂ処理、Ｃ処理の時間的な関係の一例を示す。Ｃ処理は、ＥＣＵ＿Ｂから受信した最初の同期信号をスタートタイミングとしている。Ａ処理とＢ処理は同期を取って実行され、Ｂ処理とＣ処理も同期を取って実行されるので、Ａ処理に対しＣ処理の実行を開始する時刻も同期を取ることができる。【００９７】
また、例えば、Ａ処理の処理結果が得られるタイミングに影響する設計変更があっても、ＥＣＵ＿ＢとＥＣＵ＿Ｃは、同期信号を受信した回数に応じてスタートタイミングを変更するだけでよいので、Ｂ処理及びＣ処理における同期を取るための設計変更を最小限にできる。すなわち、密接に関係した処理の数が多くなると、本実施例の電子制御システム１００の有効性がさらに増してくる。【００９８】
以上説明したように、本実施形態の電子制御システム１００は、ＥＣＵ＿Ａが制御周期Ａよりも十分に短い周期で同期信号を送信することで、同期信号が受信できなくてもＥＣＵ＿Ｂは受信できた場合と同程度のタイミングで処理Ｂの実行を開始できる。イベントドリブン型の同期制御と異なり、同期信号の受信不良の影響をほとんど受けない。【００９９】
また、ＥＣＵ＿Ａから最初に送信される同期信号の時刻である処理開始時刻からΔＴが経過すると、同期信号が受信されなくてもＢ処理の実行を開始するので、同期信号の受信不良があっても遅延を最小限に抑制できる。【０１００】
また、密接な関係の処理の一方に設計変更があっても、同期における他方の処理の設計変更を最小限にできる。
【図１Ａ】
0005381999.tif 000002
【図１Ｂ】
0005381999.tif 000003
【図１Ｃ】
0005381999.tif 000004
【図２Ａ】
0005381999.tif 000005
【図２Ｂ】
0005381999.tif 000006
【図３】
0005381999.tif 000007
【図４】
0005381999.tif 000008
【図５】
0005381999.tif 000009
【図６】
0005381999.tif 000010
【図７】
0005381999.tif 000011
【図８】
0005381999.tif 000012
【図９】
0005381999.tif 000013
【図１０Ａ】
0005381999.tif 000014
【図１０Ｂ】
0005381999.tif 000015
【図１１】
0005381999.tif 000016
【図１２】
0005381999.tif 000017
【図１３】
0005381999.tif 000018
【図１４Ａ】
0005381999.tif 000019
【図１４Ｂ】
0005381999.tif 000020
【図１４Ｃ】
0005381999.tif 000021