(57)【要約】【課題】  第各制御ユニットの処理負担を平準化して、高速かつ安定的な制御処理を実現する。【解決手段】  各制御ユニット１０１−１０４は、１つ以上のモジュールで構成される制御プログラムと、各モジュール毎のモジュール名及びバージョン情報を含む管理情報とを保持している。第１の制御ユニットは、各制御ユニットが保持する各モジュールの管理情報を取得し、取得した管理情報に基づき、共通のモジュール名毎にバージョン情報を比較し、旧バージョンのモジュールを保持している第２の制御ユニット及び新バージョンのモジュールを保持している第３の制御ユニットを特定する。第１の制御ユニットはその後、特定した前記第２の制御ユニットが前記第３の制御ユニットから新バージョンのモジュールを取得するように前記第２の制御ユニットを制御する。【選択図】  図１
2008168649.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載される車両用制御システムであって、
相互に通信可能に接続された複数の制御ユニットを含み、
前記複数の制御ユニットのそれぞれは、１又は２以上のモジュールで構成される制御プログラムと、各モジュールのモジュール名及びバージョン情報を含む管理情報とを記憶する記憶手段を有し、
前記複数の制御ユニットのうちの第１の制御ユニットは、
前記複数の制御ユニットのそれぞれの前記記憶手段が保持する各モジュールの前記管理情報を取得する取得手段と、
取得した前記管理情報に基づき、共通のモジュール名毎に前記バージョン情報を比較し、旧バージョンのモジュールを保持している第２の制御ユニット及び新バージョンのモジュールを保持している第３の制御ユニットを特定する特定手段と、
前記特定手段により特定された前記第２の制御ユニットが前記第３の制御ユニットから前記新バージョンのモジュールを取得するように、前記第２の制御ユニットを制御する制御手段と、
を有することを特徴とする車両用制御システム。
【請求項２】
前記第２の制御ユニットは、前記制御手段からの制御指令に応答して、前記第３の制御ユニットに対して前記新バージョンのモジュールの送信要求を発行し、
前記第３の制御ユニットは、前記送信要求に応答して前記新バージョンのモジュールを前記第２の制御ユニットに送信し、
前記第２の制御ユニットは更に、受信した前記新バージョンのモジュールで前記旧バージョンのモジュールを更新する
ことを特徴とする請求項１に記載の車両用制御システム。
【請求項３】
車両に搭載される車両用制御システムであって、
相互に通信可能に接続された複数の制御ユニットを含み、
前記複数の制御ユニットのそれぞれは、
１又は２以上のモジュールで構成される制御プログラムを記憶する記憶手段と、
前記制御プログラムに基づき制御処理を実行するプロセッサであって該プロセッサの処理負荷を計測する機能を有するプロセッサと、
を有し、
前記複数の制御ユニットのうちの第１の制御ユニットは、
前記複数の制御ユニットのそれぞれから、前記プロセッサの処理負荷の情報を取得する取得手段と、
前記プロセッサの処理負荷が基準を超えていない第２の制御ユニットが、前記プロセッサの処理負荷が基準を超えている第３の制御ユニットが実行中の特定のモジュールによる処理を担うように、前記第２の制御ユニットを制御する制御手段と、
を有することを特徴とする車両用制御システム。
【請求項４】
前記第２の制御ユニットは、前記制御手段からの制御指令に応答して、前記第３の制御ユニットに対して前記特定のモジュールによる処理の停止要求を発行し、
前記第３の制御ユニットは、前記停止要求に応答して、前記特定のモジュールによる処理を停止するとともに、前記第２の制御ユニットに対し、前記特定のモジュールによる処理を停止したことを示す停止確認信号を発行し、
前記第２の制御ユニットは更に、前記停止確認信号に応答して、前記特定のモジュールによる処理を開始する
ことを特徴とする請求項３に記載の車両用制御システム。
【請求項５】
前記第１の制御ユニットは、前記複数の制御ユニットのそれぞれの前記記憶手段が保持する各モジュールのバージョンを管理する管理手段を有し、
前記制御手段は、前記第２の制御ユニットの前記記憶手段が保持する前記特定のモジュールのバージョンが予め定められた条件を満たす場合にのみ前記第２の制御ユニットに対する制御を行う
ことを特徴とする請求項３又は４に記載の車両用制御システム。
【請求項６】
前記第２の制御ユニットは、前記記憶手段に前記特定のモジュールが記憶されていない場合に、前記第３の制御ユニットから前記特定のモジュールを取得する手段を有することを特徴とする請求項３に記載の車両用制御システム。
【請求項７】
前記複数の制御ユニットのそれぞれは、更に、当該制御ユニットの故障を検出する故障検出手段を有し、
前記制御手段は、更に、前記プロセッサの処理負荷が基準を超えていない第４の制御ユニットが、前記故障検出手段により故障が検出された第５の制御ユニットが実行中の処理を担うように、前記第４の制御ユニットを制御することを特徴とする請求項３に記載の車両用制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用制御システムに関し、特に、複数の制御ユニットを備える車両制御システムに関する。
【背景技術】
【０００２】
近年の自動車には、多数の電子制御ユニット（ＥＣＵ）が搭載されている。このうち関係するＥＣＵは相互に接続され、各制御系の高度な連係動作が行われる。
【０００３】
自動車の高機能化に伴い、自動車一台あたりに搭載されるＥＣＵの数は年々増加する傾向にある。このため、ＥＣＵ用のソフトウェア開発工数も増加する一方であり、その負荷を低減するようなしくみが望まれている。その対応策として、ＥＣＵのソフトウェアは複数のモジュールによる階層構造とされ、これまで個別に開発されていたモジュールの共通化が図られている。また、アップグレードやアップデート（以下「更新」という。）は、モジュール単位で行うことができるようになっている。
【０００４】
【特許文献１】特開平７−９５６５６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
共通のモジュールは最新バージョンのもので統一、維持されることが望ましい。しかしながら、従来のモジュールの更新作業は個々の制御ユニットに対するものであったため、複数の制御ユニットにそれぞれインストールされている機能共通のモジュールのすべてを漏れなく最新バージョンのものに更新することは容易ではなかった。相互接続される制御ユニットの数が増加するほど、この問題は深刻なものとなる。
【０００６】
したがって、本発明の目的は、複数の制御ユニットにインストールされるソフトウェア・モジュールのバージョン管理を容易化することにある。
【０００７】
また、上記のとおり、昨今の自動車では複数の制御ユニットが相互接続されるものの、これらの制御ユニット間には処理負荷の高低が生じていた。このため、とりわけ処理負荷の高い制御ユニットにおいては高速かつ安定的な制御処理の実現が困難になっている一方で、別の制御ユニットの処理負荷には余裕があるという状況が生じていた。
【０００８】
したがって、本発明の別の目的は、各制御ユニットの処理負担を平準化して、高速かつ安定的な制御処理を実現することにある。
【０００９】
また、従来は、ある制御ユニットに故障が発生した場合には、制御ユニット間で相互作用を及ぼしている以上、その制御ユニットの故障が回復しないかぎりシステム全体としても機能しなくなる仕組みになっていた。
【００１０】
したがって、本発明の更に別の目的は、１つの制御ユニットが故障に陥ってもシステム全体としては動作を続けることが可能なしくみを実現することである。
【課題を解決するための手段】
【００１１】
本発明の一側面によれば、車両に搭載される車両用制御システムであって、相互に通信可能に接続された複数の制御ユニットを含み、前記複数の制御ユニットのそれぞれは、１又は２以上のモジュールで構成される制御プログラムと、各モジュールのモジュール名及びバージョン情報を含む管理情報とを記憶する記憶手段を有し、前記複数の制御ユニットのうちの第１の制御ユニットは、前記複数の制御ユニットのそれぞれの前記記憶手段が保持する各モジュールの前記管理情報を取得する取得手段と、取得した前記管理情報に基づき、共通のモジュール名毎に前記バージョン情報を比較し、旧バージョンのモジュールを保持している第２の制御ユニット及び新バージョンのモジュールを保持している第３の制御ユニットを特定する特定手段と、前記特定手段により特定された前記第２の制御ユニットが前記第３の制御ユニットから前記新バージョンのモジュールを取得するように、前記第２の制御ユニットを制御する制御手段とを有することを特徴とする車両用制御システムが提供される。
【００１２】
この構成によれば、複数の制御ユニットにそれぞれインストールされている共通のモジュールを、自動的に、漏れなく新バージョンのものに維持することができる。
【００１３】
本発明の別の側面によれば、車両に搭載される車両用制御システムであって、相互に通信可能に接続された複数の制御ユニットを含み、前記複数の制御ユニットのそれぞれは、１又は２以上のモジュールで構成される制御プログラムを記憶する記憶手段と、前記制御プログラムに基づき制御処理を実行するプロセッサであって該プロセッサの処理負荷を計測する機能を有するプロセッサとを有し、前記複数の制御ユニットのうちの第１の制御ユニットは、前記複数の制御ユニットのそれぞれから、前記プロセッサの処理負荷の情報を取得する取得手段と、前記プロセッサの処理負荷が基準を超えていない第２の制御ユニットが、前記プロセッサの処理負荷が基準を超えている第３の制御ユニットが実行中の特定のモジュールによる処理を担うように、前記第２の制御ユニットを制御する制御手段とを有することを特徴とする車両用制御システムが提供される。
【００１４】
この構成によれば、処理負荷に余裕のある制御ユニットが処理負荷に余裕のない制御ユニットの処理の少なくとも一部を代替するので、各制御ユニットの処理負担を平準化することができる。これにより、高速かつ安定的な制御処理が実現される。
【００１５】
また、本発明の好適な実施形態によれば、前記複数の制御ユニットのそれぞれは、更に、当該制御ユニットの故障を検出する故障検出手段を有し、前記制御手段は、更に、前記プロセッサの処理負荷が基準を超えていない第４の制御ユニットが、前記故障検出手段により故障が検出された第５の制御ユニットが実行中の処理を担うように、前記第４の制御ユニットを制御する。
【００１６】
この構成によれば、故障した制御ユニットの処理を、他の制御ユニットが代替できるので、制御システムとしては動作を続行することが可能である。
【発明の効果】
【００１７】
本発明によれば、複数の制御ユニットにインストールされるソフトウェア・モジュールのバージョン管理を容易化できる。
【００１８】
また、本発明によれば、各制御ユニットの処理負担が平準化され、高速かつ安定的な制御処理が実現される。
【００１９】
さらに、本発明によれば、１つの制御ユニットが故障に陥ってもシステム全体としては動作を続けることが可能な仕組みが実現される。
ができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、本発明の実施に有利な具体例を示すにすぎない。また、以下の実施形態の中で説明されている特徴の組み合わせの全てが本発明の課題解決手段として必須のものであるとは限らない。
【００２１】
図１は、本発明の車両用制御システムが適用される自動車を模式的に示す図である。また、図２は、本実施形態における車両用制御システムの全体構成を示すブロック図である。本実施形態に係る車両用制御システムは、複数の電子制御ユニット（ＥＣＵ）１０１〜１０４を備え、図１、２に示されるように、各ＥＣＵはバス１０５を介して相互に通信可能に接続されている。なお、本発明はＥＣＵの特定の個数に限定されるものではない。
【００２２】
ＥＣＵ−Ｄ１０４は、センサ２１から入力される信号に応じてアクチュエータ２２を制御するほか、ＥＣＵ−Ａ１０１，ＥＣＵ−Ｂ１０２，ＥＣＵ−Ｃ１０３に対するマスタ制御ユニットとして機能する。ＥＣＵ−Ａ１０１は、センサ２３から入力される信号に応じてアクチュエータ２４を制御する。ＥＣＵ−Ｂ１０２は、センサ２５から入力される信号に応じてアクチュエータ２６を制御する。ＥＣＵ−Ｃ１０３は、センサ２７から入力される信号に応じてアクチュエータ２８を制御する。
【００２３】
以下、各ＥＣＵの詳細構成を説明する。
【００２４】
図３は、マスタＥＣＵ（第１の制御ユニット）であるＥＣＵ−Ｄ１０４の構成を示すブロック図である。
【００２５】
３０１は中央処理プロセッサ（ＣＰＵ）、３０２はメモリコントローラ（ＭＣ）、３０３はＲＡＭ、３０４はＲＯＭ、３０５はＲＯＭ３０４によって保持される制御プログラム、３０６はバス１０５に接続するバスインタフェース、３０７及び３０８はそれぞれ、センサ２１及びアクチュエータ２２を接続するＩ／Ｏポートである。
【００２６】
ＣＰＵ３０１は、ＲＯＭ３０４に記憶されている制御プログラム３０５を実行してシステム全体の制御を行う。ＣＰＵ３０１は、自動車のイグニッションがＯＮにされるとその制御プログラム３０５の実行を開始するようになっている。制御プログラム３０５は１又は２以上のモジュールで構成され、本実施形態では図示の如く、バージョン管理モジュール、負荷管理モジュール、自己診断モジュールをはじめ、モジュールＡ，Ｂ，Ｆ，Ｉを含んでいる。
【００２７】
ここで、バージョン管理モジュールは、各ＥＣＵが保持する制御プログラムの各モジュールのバージョンを管理するためのプログラムモジュールである。負荷管理モジュールは、各ＥＣＵの処理負荷を監視し処理の割り振りを管理するためのプログラムモジュールである。また、自己診断モジュールは、自己のＥＣＵについて、故障の有無を検出するためのプログラムモジュールである。
【００２８】
ＲＡＭ３０３は例えばＳＲＡＭで構成され、ＣＰＵ３０１のワークエリアを提供する。ＲＯＭ３０４は例えばフラッシュＥＥＰＲＯＭで構成され、制御プログラム３０５をモジュール単位で書き換えることが可能である。ＣＰＵ３０１とＲＡＭ３０３，ＲＯＭ３０４とのアクセスは、ＭＣ３０２を介して行われる。
【００２９】
図４は、ＥＣＵ−Ａ１０１の構成を示すブロック図である。
【００３０】
４０１はＣＰＵ、４０２はメモリコントローラ（ＭＣ）、４０３はＲＡＭ、４０４はＲＯＭ、４０５はＲＯＭ４０４によって保持される制御プログラム、４０６はバス１０５に接続するバスインタフェース、４０７及び４０８はそれぞれ、センサ２３及びアクチュエータ２４を接続するＩ／Ｏポートである。
【００３１】
ＣＰＵ４０１は、ＲＯＭ４０４に記憶されている制御プログラム４０５を実行する。制御プログラム４０５は１又は２以上のモジュールで構成され、本実施形態では図示の如く、バージョンレポートモジュール、負荷レポートモジュール、自己診断モジュールをはじめ、モジュールＡ，Ｂ，Ｃ，Ｈを含んでいる。ここで、バージョンレポートモジュールは、各モジュールのバージョン情報をＥＣＵ−Ｄ１０４に送信するためのプログラムモジュールであり、負荷レポートモジュールは、ＣＰＵ占有率を処理負荷として計測し、その処理負荷の情報をＥＣＵ−Ｄ１０４に送信するためのプログラムモジュールである。
【００３２】
ＲＡＭ４０３は例えばＳＲＡＭで構成され、ＣＰＵ４０１のワークエリアを提供する。ＲＯＭ４０４は例えばフラッシュＥＥＰＲＯＭで構成され、制御プログラム４０５をモジュール単位で書き換えることが可能である。ＣＰＵ４０１とＲＡＭ４０３，ＲＯＭ４０４とのアクセスは、ＭＣ４０２を介して行われる。
【００３３】
図５は、ＥＣＵ−Ｂ１０２の構成を示すブロック図である。
【００３４】
５０１はＣＰＵ、５０２はメモリコントローラ（ＭＣ）、５０３はＲＡＭ、５０４はＲＯＭ、５０５はＲＯＭ５０４によって保持される制御プログラム、５０６はバス１０５に接続するバスインタフェース、５０７及び５０８はそれぞれ、センサ２２５及びアクチュエータ２６を接続するＩ／Ｏポートである。
【００３５】
ＣＰＵ５０１は、ＲＯＭ５０４に記憶されている制御プログラム５０５を実行する。制御プログラム５０５は１又は２以上のモジュールで構成され、本実施形態では図示の如く、バージョンレポートモジュール、負荷レポートモジュール、自己診断モジュールをはじめ、モジュールＡ，Ｂ，Ｄ，Ｈを含んでいる。ＲＡＭ５０３は例えばＳＲＡＭで構成され、ＣＰＵ５０１のワークエリアを提供する。ＲＯＭ５０４は例えばフラッシュＥＥＰＲＯＭで構成され、制御プログラム５０５をモジュール単位で書き換えることが可能である。ＣＰＵ５０１とＲＡＭ５０３，ＲＯＭ５０４とのアクセスは、ＭＣ５０２を介して行われる。
【００３６】
図６は、ＥＣＵ−Ｃ１０３の構成を示すブロック図である。
【００３７】
６０１はＣＰＵ、６０２はメモリコントローラ（ＭＣ）、６０３はＲＡＭ、６０４はＲＯＭ、６０５はＲＯＭ６０４によって保持される制御プログラム、６０６はバス１０５に接続するバスインタフェース、６０７及び６０８はそれぞれ、センサ２７及びアクチュエータ２８を接続するＩ／Ｏポートである。
【００３８】
ＣＰＵ６０１は、ＲＯＭ６０４に記憶されている制御プログラム６０５を実行する。制御プログラム６０５は１又は２以上のモジュールで構成され、本実施形態では図示の如く、バージョンレポートモジュール、負荷レポートモジュール、自己診断モジュールをはじめ、モジュールＡ，Ｂ，Ｅ，Ｈを含んでいる。ＲＡＭ６０３は例えばＳＲＡＭで構成され、ＣＰＵ６０１のワークエリアを提供する。ＲＯＭ６０４は例えばフラッシュＥＥＰＲＯＭで構成され、制御プログラム６０５をモジュール単位で書き換えることが可能である。ＣＰＵ６０１とＲＡＭ６０３，ＲＯＭ６０４とのアクセスは、ＭＣ６０２を介して行われる。
【００３９】
このように、図３〜６に示した各ＥＣＵは概ね同様の構成をとるが、それぞれが保持する制御プログラムの内容を比較すると、各ＥＣＵで共通して保持しているモジュールもあれば、いずれか１つのＥＣＵでしか保持されていないモジュールもあることに留意されたい。具体的には、ＥＣＵ−Ｄ１０４は、マスタＥＣＵとしての機能を果たすための、バージョン管理モジュール、負荷管理モジュールを備えている。これに対してＥＣＵ−Ａ１０１，ＥＣＵ−Ｂ１０２，ＥＣＵ−Ｃ１０３はバージョンレポートモジュール及び負荷レポートモジュールを備えている。また、自己診断モジュールは各ＥＣＵが備えている。
【００４０】
さらに、例示に係るモジュールＡ，Ｂは、各ＥＣＵが共通して保持するが、モジュールＣ，Ｄ，Ｅ，Ｆはそれぞれ、ＥＣＵ−Ａ１０１、ＥＣＵ−Ｂ１０２、ＥＣＵ−Ｃ１０３、ＥＣＵ−Ｄ１０４だけが保持している。また、モジュールＩはＥＣＵ−Ｄ１０４とＥＣＵ−Ｃ１０３とに保持されており、モジュールＨはＥＣＵ−Ａ１０１とＥＣＵ−Ｂ１０２とに保持されている。
【００４１】
この他、各ＥＣＵは、それぞれが保持する制御プログラムの各モジュールについて、モジュール名及びそのバージョン情報を含む管理情報を、例えばＲＡＭに保持している。
【００４２】
本実施形態における車両用制御システムの構成は概ね上記のとおりである。次に、本システムにおける制御処理を詳しく説明する。
【００４３】
＜バージョン管理処理＞
図７は、本実施形態におけるバージョン管理手順を示すシーケンス図である。このバージョン管理手順は、電源投入時（イグニッションＯＮ時）又は外部からのリクエスト信号を受信した時に実行される。
【００４４】
まず、ＥＣＵ−Ｄ１０４は、他の全ＥＣＵ（すなわち、ＥＣＵ−Ａ１０１，ＥＣＵ−Ｂ１０２，ＥＣＵ−Ｃ１０３）に対し、各ＥＣＵが正常に接続されていることを確認するために、応答を返すようリクエスト信号を送信する（ステップＳ１０１）。このリクエスト信号を受信したＥＣＵはそれぞれ、応答信号をＥＣＵ−Ｄ１０４に送信する（ステップＳ１０２）。
【００４５】
ステップＳ１０１，Ｓ１０２によって各ＥＣＵが正常に接続されていることを確認したＥＣＵ−Ｄ１０４は、ＥＣＵ−Ａ１０１に対し、ＥＣＵ−Ａ１０１が保持する制御プログラムの各モジュールのモジュール名及びバージョン情報を返すようリクエストする（ステップＳ１０３）。ＥＣＵ−Ａ１０１はこれに応答して、制御プログラム４０５の各モジュールについてモジュール名とそのバージョン番号とが関連付けられた管理情報をＥＣＵ−Ｄ１０４に返送する（ステップＳ１０４）。続けて、このステップＳ１０３，Ｓ１０４と同様の処理を、ＥＣＵ−Ｂ１０２及びＥＣＵ−Ｃ１０３に対しても同様に実行する（ステップＳ１０５〜Ｓ１０８）。
【００４６】
このようにして、ＥＣＵ−Ｄ１０４は、ステップＳ１０３〜Ｓ１０８において、各ＥＣＵが保持する各モジュールのモジュール名及びバージョン情報を含んだ管理情報を取得する。取得した管理情報は順次ＲＡＭ３０３に記憶される。次に、ＥＣＵ−Ｄ１０４は、取得した管理情報に基づき、共通のモジュール名ごとに、バージョン番号を比較し、旧バージョンのモジュールを保持しているＥＣＵ（第２の制御ユニット）及び新バージョンのモジュールを保持しているＥＣＵ（第３の制御ユニット）を特定する（ステップＳ１０９）。
【００４７】
ここでは、ＥＣＵ−Ａ１０１が保持するモジュールＡのバージョンが他のＥＣＵが保持するモジュールＡのバージョンよりも古いと判定され、ＥＣＵ−Ａ１０１の旧バージョンのモジュールＡをＥＣＵ−Ｂ１０２の新バージョンのモジュールＡで更新することに決定したと仮定する。そこでＥＣＵ−Ｄ１０４は、ＥＣＵ−Ａ１０１に対し、ＥＣＵ−Ｂ１０２が保持しているモジュールＡをロードするよう制御指令を送る（ステップＳ１１０）。
【００４８】
この制御指令を受信したＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４に確認信号を送信すると共に（ステップＳ１１１）、ＥＣＵ−Ｂ１０２に対し、ＥＣＵ−Ｂ１０２が保持するモジュールＡの送信要求を発行する（ステップＳ１１２）。
【００４９】
ＥＣＵ−Ｂ１０２は、この送信要求に応答して、制御プログラム５０５におけるモジュールＡを、この送信要求の発行元であるＥＣＵ−Ａ１０１に送信する(ステップＳ１１３）。
【００５０】
ＥＣＵ−Ａ１０１は、ＥＣＵ−Ｂ１０２からモジュールＡの受信を完了し次第、ＥＣＵ−Ｂ１０２に受信完了通知を発行する（ステップＳ１１４）。ＥＣＵ−Ａ１０１はその後、受信した新バージョンのモジュールＡで、制御プログラム４０５における旧バージョンのモジュールＡを更新する（ステップＳ１１５）。ＥＣＵ−Ａ１０１は更に、ＥＣＵ−Ｄに対しモジュールＡの更新完了通知を発行する（ステップＳ１１５）。
【００５１】
ＥＣＵ−Ｄ１０４は、この更新完了通知を受信すると、この通知に対する確認信号を、ＥＣＵ−Ａ１０１に送信する（ステップＳ１１７）。
【００５２】
以上のようなバージョン管理手順によれば、複数のＥＣＵにそれぞれインストールされている共通のモジュールを、自動的に、漏れなく新バージョンのものに維持することができる。
【００５３】
＜処理負荷管理手順１＞
図８は、本実施形態における処理負荷管理手順の第１の例を示すシーケンス図である。この処理負荷管理手順は、電源投入（イグニッションＯＮ）後、所定時間間隔で繰り返し実行される。
【００５４】
ＥＣＵ−Ａ１０１，ＥＣＵ−Ｂ１０２，ＥＣＵ−Ｃ１０３はそれぞれ、負荷レポートモジュールの機能により、モジュール別のＣＰＵ占有率と制御プログラム全体でのＣＰＵ占有率の情報を、処理負荷の情報としてＥＣＵ−Ｄ１０４に送信し（ステップＳ２０１）、ＥＣＵ−Ｄ１０４はこれらの情報を取得する。
【００５５】
ＥＣＵ−Ｄ１０４は、各ＥＣＵにおけるＣＰＵ占有率が基準をオーバーしているかどうかを判定する。ここでは、ＥＣＵ−Ｂ１０２で実行中の制御プログラムのＣＰＵ占有率が基準を超えていると判断され、ＣＰＵの処理負荷に余裕があるＥＣＵ−Ａ１０１に、ＥＣＵ−Ｂ１０２におけるモジュールＢの処理を担わせる判断がなされたと仮定する。
【００５６】
ＥＣＵ−Ｂ１０２におけるモジュールＢの処理をＥＣＵ−Ａ１０１に交替させるのに先立って、本実施形態では、上述のバージョン管理手順を経て、ＥＣＵ−Ａ１０１におけるモジュールＢが適切なバージョンで保持されていることを確認する（ステップＳ２０２）。
【００５７】
その後、ＥＣＵ−Ｄ１０４は、ＥＣＵ−Ａ１０１に対し、ＥＣＵ−Ｂ１０２のモジュールＢの処理を交替するよう制御指令を送る（ステップＳ２０３）。
【００５８】
この制御指令を受信したＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４に確認信号を送信すると共に（ステップＳ２０４）、ＥＣＵ−Ｂ１０２に対し、モジュールＢの停止要求を発行する（ステップＳ２０５）。
【００５９】
ＥＣＵ−Ｂ１０２は、この停止要求に応答して、制御プログラム５０５におけるモジュールＢの実行を停止し、その停止したことを知らせる停止確認信号をＥＣＵ−Ａ１０１に送信する（ステップＳ２０６）。
【００６０】
ＥＣＵ−Ａ１０１は、この停止確認信号を受信し次第、制御プログラム４０５におけるモジュールＢの実行を開始すると共に、ＥＣＵーＤ１０４に対し、処理を交替したことを知らせる処理交替完了通知を発行する（ステップＳ２０７）。
【００６１】
ＥＣＵ−Ｄ１０４は、この処理交替完了通知を受信すると、この通知に対する確認信号を、ＥＣＵ−Ａ１０１に送信する（ステップＳ２０８）。ＥＣＵ−Ｄ１０４はその後、再度、各ＥＣＵのＣＰＵ占有率を監視して処理を繰り返す。
【００６２】
以上の処理負荷管理手順１によれば、処理負荷に余裕のある制御ユニットが、処理負荷に余裕のない制御ユニットにおける制御プログラムの処理の少なくとも一部を代替する。これにより、各制御ユニットの処理負担を平準化することができ、高速かつ安定的な制御処理が実現される。
【００６３】
＜処理負荷管理手順２＞
ところで、処理負荷に余裕のある制御ユニットに、特定のモジュールの処理を交替させようとしても、その制御ユニットが当該特定のモジュールを保持していない場合もある。本実施形態ではこの場合、その制御ユニットに当該特定のモジュールを取得させるようにする。この処理の具体例を、図９のシーケンス図を参照して説明する。図９では、図８における処理と同様の処理ステップには同じ参照番号を付してある。
【００６４】
ここでは、ステップＳ２０１の後、ＥＣＵ−Ｄ１０４が、各ＥＣＵにおけるＣＰＵ占有率が基準をオーバーしているかどうかを判定したところ、ＥＣＵ−Ｂ１０２で実行中の制御プログラムのＣＰＵ占有率が基準を超えていると判断され、ＣＰＵの処理負荷に余裕があるＥＣＵ−Ａ１０１に、ＥＣＵ−Ｂ１０２におけるモジュールＤの処理を担わせる判断がなされたと仮定する。
【００６５】
この場合、ステップＳ２０２では、ＥＣＵ−Ａ１０１の制御プログラム４０５にはモジュールＤは含まれていないことが判明する（図４参照）。そこで、ＥＣＵ−Ｄ１０４は、ＥＣＵ−Ａ１０１に対し、モジュールＤをＥＣＵ−Ｂ１０２から取得するよう制御指令を送る（ステップＳ３０１）。
【００６６】
この制御指令を受信したＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４に確認信号を送信すると共に（ステップＳ３０２）、ＥＣＵ−Ｂ１０２に対し、モジュールＤの送信要求を発行する（ステップＳ３０３）。
【００６７】
ＥＣＵ−Ｂ１０２は、この送信要求に応答して、制御プログラム５０５におけるモジュールＤをＥＣＵ−Ａ１０１に送信する（ステップＳ３０４）。
【００６８】
ＥＣＵ−Ａ１０１は、ＥＣＵ−Ｂ１０２からのモジュールＤの受信を完了し次第、ＥＣＵ−Ｂ１０２及びＥＣＵ−Ｄ１０４に受信完了通知を発行する（ステップＳ３０５、Ｓ３０６）。
【００６９】
ＥＣＵ−Ｄ１０４は、この受信完了通知を受信すると、この通知に対する確認信号を、ＥＣＵ−Ａ１０１に送信する（ステップＳ３０７）。
【００７０】
その後、上述したステップＳ２０３以降の処理を実行する。
【００７１】
以上の処理負荷管理手順２によれば、処理負荷に余裕のある制御ユニットが特定のモジュールを保持していない場合でも、その特定のモジュールを取得した後に、処理負荷に余裕のない制御ユニットにおける当該特定のモジュールの処理を代替することができる。
【００７２】
＜処理負荷管理手順３＞
図１０は、いずれかのＥＣＵが故障を検出した場合における処理負荷管理手順の例を示すシーケンス図である。
【００７３】
ここでは、ステップＳ２０１でＥＣＵ−Ｄ１０４が各ＥＣＵのＣＰＵ占有率を取得した後、ＥＣＵ−Ｃ１０３が自己診断モジュールの実行によって故障を検出したと仮定する。このときＥＣＵ−Ｃ１０３は、故障が検出されたことを示す故障検出信号をＥＣＵ−Ｄ１０４に送信する（ステップＳ４０１）。
【００７４】
ＥＣＵ−Ｄ１０４は、この故障検出信号を受信すると、ＥＣＵ−Ｃ１０３における処理を別のＥＣＵに交替させるための制御を行う。ここでは例えば、処理負荷に余裕のあるＥＣＵ−Ａ１０１にＥＣＵ−Ｃ１０３におけるモジュールＢ，Ｅ，Ｉの処理を交替させる判断をしたと仮定する。
【００７５】
この場合、ステップＳ２０２では、ＥＣＵ−Ａ１０１の制御プログラム４０５にはモジュールＥ，Ｉは含まれていないことが判明する（図４参照）。そこで、ＥＣＵ−Ｄ１０４はまず、ＥＣＵ−Ａ１０１に対し、モジュールＥをＥＣＵ−Ｃ１０３から取得するよう制御指令を送る（ステップＳ４０２）。
【００７６】
この制御指令を受信したＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４に確認信号を送信すると共に（ステップＳ４０３）、ＥＣＵ−Ｃ１０３に対し、モジュールＥの送信要求を発行する（ステップＳ４０４）。
【００７７】
ＥＣＵ−Ｃ１０３は、この送信要求に応答して、制御プログラム６０５におけるモジュールＥをＥＣＵ−Ａ１０１に送信する（ステップＳ４０５）。
【００７８】
ＥＣＵ−Ａ１０１は、ＥＣＵ−Ｃ１０３からのモジュールＥの受信を完了し次第、ＥＣＵ−Ｃ１０３及びＥＣＵ−Ｄ１０４に受信完了通知を発行する（ステップＳ４０６、Ｓ４０７）。
【００７９】
ＥＣＵ−Ｄ１０４は、この受信完了通知を受信すると、ＥＣＵ−Ａ１０１に対し、モジュールＩをＥＣＵ−Ｄ１０４から取得するよう制御指令を送る（ステップＳ４０８）。
【００８０】
この制御指令を受信したＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４に確認信号を送信すると共に（ステップＳ４０９）、ＥＣＵ−Ｄ１０４に対し、モジュールＩの送信要求を発行する（ステップＳ４１０）。
【００８１】
ＥＣＵ−Ｄ１０４は、この送信要求に応答して、制御プログラム３０５におけるモジュールＩをＥＣＵ−Ａ１０１に送信する（ステップＳ４１１）。
【００８２】
ＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４からのモジュールＩの受信を完了し次第、ＥＣＵ−Ｄ１０４に受信完了通知を発行する（ステップＳ４１２）。
【００８３】
その後、ＥＣＵ−Ｄ１０４は、ＥＣＵ−Ａ１０１に対し、ＥＣＵ−Ｃ１０３のモジュールＢ，Ｅ，Ｉの処理を交替するよう制御指令を送る（ステップＳ４１３）。
【００８４】
この制御指令を受信したＥＣＵ−Ａ１０１は、ＥＣＵ−Ｄ１０４に確認信号を送信すると共に（ステップＳ４１４）、ＥＣＵ−Ｃ１０３に対し、モジュールＢ，Ｅ，Ｉの停止要求を発行する（ステップＳ４１５）。
【００８５】
ＥＣＵ−Ｃ１０３は、この停止要求に応答して、制御プログラム６０５におけるモジュールＢ，Ｅ，Ｉの実行を停止し、その停止したことを知らせる停止確認信号をＥＣＵ−Ａ１０１に送信する（ステップＳ４１６）。
【００８６】
ＥＣＵ−Ａ１０１は、この停止確認信号を受信し次第、モジュールＢ，Ｅ，Ｉの実行を開始すると共に、ＥＣＵーＤ１０４に対し、処理を交替したことを知らせる処理交替完了通知を発行する（ステップＳ４１７）。
【００８７】
ＥＣＵ−Ｄ１０４は、この処理交替完了通知を受信すると、この通知に対する確認信号を、ＥＣＵ−Ａ１０１に送信する（ステップＳ４１８）。ＥＣＵ−Ｄ１０４はその後、再度、各ＥＣＵのＣＰＵ占有率を監視して処理を繰り返す。
【００８８】
以上の処理負荷管理手順３によれば、故障した制御ユニットの処理を、他の制御ユニットが代替できるので、制御システムとしては動作を続行することが可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の車両用制御システムが適用される自動車を模式的に示す図である。
【図２】実施形態における車両用制御システムの全体構成を示すブロック図である。
【図３】実施形態におけるＥＣＵ−Ｄ（マスタＥＣＵ）の構成を示す図である。
【図４】実施形態におけるＥＣＵ−Ａの構成を示すブロック図である。
【図５】実施形態におけるＥＣＵ−Ｂの構成を示すブロック図である。
【図６】実施形態におけるＥＣＵ−Ｃの構成を示すブロック図である。
【図７】実施形態におけるバージョン管理手順を示すシーケンス図である。
【図８】実施形態における処理負荷管理手順の第１の例を示すシーケンス図である。
【図９】実施形態における処理負荷管理手順の第２の例を示すシーケンス図である。
【図１０】実施形態における処理負荷管理手順の第３の例を示すシーケンス図である。
【符号の説明】
【００９０】
１０１：ＥＣＵ−Ａ
１０２：ＥＣＵ−Ｂ
１０３：ＥＣＵ−Ｃ
１０４：ＥＣＵ−Ｄ
【図１】
2008168649.tif 000003
【図２】
2008168649.tif 000004
【図３】
2008168649.tif 000005
【図４】
2008168649.tif 000006
【図５】
2008168649.tif 000007
【図６】
2008168649.tif 000008
【図７】
2008168649.tif 000009
【図８】
2008168649.tif 000010
【図９】
2008168649.tif 000011
【図１０】
2008168649.tif 000012