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