(57)【要約】【課題】複数個のＣＰＵを搭載した車両制御装置で、エンジン停止中であっても重複処理による処理の確実性を確保しながら、バッテリーの消耗も抑制する。【解決手段】車両制御装置に搭載されている第１ＣＰＵおよび第２ＣＰＵのうち、エンジンが停止している状態では、第１ＣＰＵを低速で動作させ、第２ＣＰＵを停止させてスイッチの設定状態を監視する。スイッチの設定状態の変化を検知すると、第２ＣＰＵは停止したまま第１ＣＰＵを標準速度で動作させ、スイッチの設定状態を複数回、確認する。その結果、設定状態が変化したことが確認されたら、停止していた第２ＣＰＵを標準速度で動作させる。こうすれば、エンジンが停止している状態では、バッテリーの消耗を抑制し、スイッチの設定状態が変化したら、それを複数回確認するので誤検出を防止できる。【選択図】図２
2019185693.tif 000002
【特許請求の範囲】
【請求項１】
複数個のＣＰＵを搭載し、少なくとも一部の処理については前記複数個のＣＰＵを用いて重複処理することによって、車両を制御する車両制御装置（１００）であって、
前記車両のエンジンが停止したことを検知すると、前記複数個のＣＰＵの中で所定の第１ＣＰＵ（１００ａ）は標準速度よりも低速で動作するが、前記第１ＣＰＵを除いた第２ＣＰＵ（１００ｂ）は動作を停止するエンジン停止時動作状態に、前記複数個のＣＰＵの動作状態を設定する停止時動作状態設定部（１０１）と、
前記複数個のＣＰＵの動作状態が前記エンジン停止時動作状態に設定されている場合に、前記車両に搭載されたスイッチ（１０、２０）の設定状態を、前記第１ＣＰＵを用いて監視する設定状態監視部（１０２）と、
前記エンジン停止時動作状態で前記スイッチの設定状態が変化したことが検知されると、前記複数個のＣＰＵの動作状態を、前記第１ＣＰＵは前記標準速度で動作するが、前記第２ＣＰＵの動作は停止したままの確認時動作状態に設定する確認時動作状態設定部（１０３）と、
前記複数個のＣＰＵの動作状態が前記確認時動作状態に切り換わると、前記スイッチの設定状態を所定の複数回に亘って確認することによって、前記スイッチの設定状態が変化したか否かを判断する設定状態判断部（１０４）と、
前記スイッチの設定状態が変化したと判断された場合には、前記複数個のＣＰＵの動作状態を、前記第１ＣＰＵおよび前記第２ＣＰＵが前記標準速度で動作する標準時動作状態に設定する標準時動作状態設定部（１０５）と
を備える車両制御装置。
【請求項２】
請求項１に記載の車両制御装置であって、
前記ＣＰＵを前記標準速度で動作させるための標準クロックと、前記ＣＰＵを前記低速で動作させるための低速クロックとを生成するクロック生成部（１０６）を備え、
前記停止時動作状態設定部は、前記第１ＣＰＵには前記低速クロックを供給し、前記第２ＣＰＵには前記標準クロックおよび前記低速クロックの何れの供給も停止することによって、前記複数個のＣＰＵの動作状態を前記エンジン停止時動作状態に設定しており、
前記確認時動作状態設定部は、前記第１ＣＰＵには前記標準クロックを供給し、前記第２ＣＰＵには前記標準クロックおよび前記低速クロックの何れの供給も停止することによって、前記複数個のＣＰＵの動作状態を前記確認時動作状態に設定しており、
前記標準時動作状態設定部は、前記第１ＣＰＵおよび前記第２ＣＰＵの何れにも前記標準クロックを供給することによって、前記複数個のＣＰＵの動作状態を前記標準時動作状態に設定する
ことを特徴とする車両制御装置。
【請求項３】
請求項１または請求項２に記載の車両制御装置であって、
前記停止時動作状態設定部は、前記車両のエンジン（１）が停止した状態で、前記第１ＣＰＵおよび前記第２ＣＰＵの何れも実行中の処理が存在しない状態が所定時間に亘って継続した場合には、前記複数個のＣＰＵの動作状態を前記エンジン停止時動作状態に設定する
ことを特徴とする車両制御装置。
【請求項４】
複数個のＣＰＵを搭載して車両（１）を制御する処理のために用いられ、少なくとも一部の処理については前記複数個のＣＰＵを用いて重複して処理する車両制御装置（１００）の起動方法であって、
前記車両のエンジン（１）が停止したことを検知する工程（Ｓ３０４）と、
前記車両のエンジンが停止したことが検知されると、前記複数個のＣＰＵの動作状態を、所定の第１ＣＰＵ（１００ａ）は標準速度よりも低速で動作するが、前記第１ＣＰＵを除いた第２ＣＰＵ（１００ｂ）は動作を停止するエンジン停止時動作状態に設定する工程（Ｓ１００）と、
前記停止時動作状態で、前記車両に搭載されたスイッチ（１０、２０）の設定状態を、前記第１ＣＰＵを用いて監視する工程（Ｓ１０４）と、
前記エンジン停止時動作状態で前記スイッチの設定状態の変化が検知されると、前記複数個のＣＰＵの動作状態を、前記第１ＣＰＵは前記標準速度で動作するが、前記第２ＣＰＵの動作は停止したままの確認時動作状態に設定する工程（Ｓ１０７）と、
前記確認時動作状態に設定されると、前記スイッチの設定状態を所定の複数回に亘って確認する工程（Ｓ２００〜Ｓ２０３）と、    1
前記確認時動作状態での前記複数回の確認結果に基づいて前記スイッチの設定状態が変化したか否かを判断し、変化していた場合には、前記複数個のＣＰＵの動作状態を、前記第１ＣＰＵおよび前記第２ＣＰＵが前記標準速度で動作する標準時動作状態に設定する工程（Ｓ２０７）と
を備える車両制御装置の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個のＣＰＵ（いわゆる中央演算装置）を搭載して、車両を制御するための少なくとも一部の処理については、複数個のＣＰＵを用いて重複処理する技術に関する。
【背景技術】
【０００２】
今日の車両は、中央演算装置（いわゆるＣＰＵ）を搭載した車両制御装置によって制御されている。また、車両制御装置に複数個のＣＰＵを搭載して、複数個のＣＰＵで処理を役割分担することによって高速処理を実現する技術や、車両の安全性に関わる一部の処理については、複数個のＣＰＵで重複して処理することによって誤動作の虞を回避する技術が提案されている。また、車両制御装置を動作させるための電力は、車両に搭載されたバッテリーから供給されており、バッテリーには、エンジンの動力で駆動する発電機を用いて充電するようになっている。
もっとも、車両制御装置で行われる処理は、必ずしもエンジンの運転中に行われるとは限らない。例えば、エンジン始動スイッチが押されたことを検知して、エンジンを始動させる処理はエンジンの停止中に行われる。この処理を複数個のＣＰＵで重複処理したのでは、車両のバッテリーを消耗させてしまう虞がある。
【０００３】
そこで、エンジンの停止中には、一方のＣＰＵを停止させて、他方のＣＰＵを用いてエンジン始動スイッチの状態を監視しておき、エンジン始動スイッチがＯＮにされたことを検知したら、もう一方のＣＰＵを起動させる技術が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０１３９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、提案されている技術では、エンジンの停止中は一方のＣＰＵが停止しているのでバッテリーの消耗は抑制することができるが、複数個のＣＰＵを用いて重複処理しているわけではないので、処理の確実性を高める効果は得られないという問題があった。
【０００６】
この発明は、従来技術における上述した課題を解決するためになされたものであり、複数個のＣＰＵを搭載した車両制御装置で、エンジン停止中であっても、重複処理による処理の確実性を確保しながら、バッテリーの消耗も抑制することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００７】
上述した問題を解決するために本発明の車両制御装置および車両制御装置の起動方法では、エンジンが停止している状態では、複数のＣＰＵの中の第２ＣＰＵを停止させ、それ以外の第１ＣＰＵを低速で動作させて、スイッチの設定状態を監視する。そして、スイッチの設定状態が変化したことが検知されると、第２ＣＰＵは停止したまま、第１ＣＰＵを標準速度で動作させて、スイッチの設定状態を所定の複数回、確認する。その結果、設定状態が変化したことが確認されたら、停止していた第２ＣＰＵを標準速度で動作させる。
【０００８】
こうすれば、エンジンが停止している状態では、第１ＣＰＵを低速で動作させ、第２ＣＰＵを停止させておくので、バッテリーの消耗を抑制することができる。加えて、スイッチの設定状態が変化した場合には、第２ＣＰＵは停止させたまま、第１ＣＰＵを標準速度で動作させて、スイッチの設定状態を複数回検出する。このため、スイッチの設定状態を重複して確認することになるので、誤検出する虞を防止することができる。それでいながら、第２ＣＰＵは停止しているのでバッテリーの消耗を抑制することができ、更に、第１ＣＰＵは標準速度で動作しているので、スイッチの設定状態を検出する回数が増えても、迅速に検出することができる。そして、スイッチの設定状態が変化したことが確認できたら、第２ＣＰＵも標準速度で動作させることで、第１ＣＰＵと第２ＣＰＵとで処理を分担したり、第１ＣＰＵおよび第２ＣＰＵで重複して処理することが可能となるので、処理内容に応じて迅速に、あるいは確実に処理することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本実施例の車両制御装置１００の大まかな内部構造を示したブロック図である。
【図２】本実施例の車両制御装置１００の大まかな動作を示したブロック図である。
【図３】本実施例の車両制御装置１００がエンジン１の停止時に実行するエンジン停止時動作状態処理のフローチャートである。
【図４】本実施例の車両制御装置１００がエンジン１の停止時に車両側のスイッチ類の設定状態を確認するために実行する確認時動作状態処理のフローチャートである。
【図５】本実施例の車両制御装置１００が車両側のスイッチ類の設定状態が変化したことを検知した場合に実行する標準時動作状態処理のフローチャートである。
【図６】本実施例の車両制御装置１００の起動時の動作を例示したタイムチャートである。
【発明を実施するための形態】
【００１０】
以下では、上述した本発明の内容を明確にするために、本発明の実施例について説明する。
Ａ．装置構成  ：
図１には、本実施例の車両制御装置１００の大まかな内部構造が示されている。図示されるように、本実施例の車両制御装置１００は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの２つのＣＰＵを搭載しており、図示しないインターフェース回路を介して、エンジン始動スイッチ１０や、オートマチックトランスミッションのポジションスイッチ２０や、エンジン制御装置２００などに接続されている。
尚、本実施例の車両制御装置１００には、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂが１個ずつ（従って２個のＣＰＵが）搭載されているものとして説明するが、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂは複数個であっても構わない。もっとも、バッテリーの消耗を抑制する観点からは、第１ＣＰＵ１００ａの数は１つであることが望ましい。
【００１１】
エンジン始動スイッチ１０は、車両に搭載されて運転者によって操作されるスイッチであり、運転者がエンジン１を始動させようとする際にはＯＮに設定され、運転者がエンジン１を停止させようとする際にはＯＦＦに設定される。
ポジションスイッチ２０も、車両に搭載されて運転者によって操作されるスイッチである。周知のように、車両に搭載されているオートマチックトランスミッションには、ドライブレンジ（いわゆるＤレンジ）、リバースレンジ（いわゆるＲレンジ）、ニュートラルレンジ（いわゆるＮレンジ）、パーキングレンジ（いわゆるＰレンジ）の４つの動作レンジが存在しており、運転者はポジションスイッチ２０を操作することによって、これら４つの動作レンジを切り換える。
【００１２】
エンジン制御装置２００は、車両に搭載されたエンジン１の動作を制御する。車両の運転者がエンジン始動スイッチ１０をＯＮに設定すると、それを車両制御装置１００が検知して、車両の図示しないバッテリーとエンジン制御装置２００とを接続する。すると、エンジン制御装置２００に電力が供給されてエンジン制御装置２００が起動し、エンジン制御装置２００の制御の元でエンジン１が始動するようになっている。
また、車両制御装置１００とエンジン制御装置２００とは、車内ネットワーク３０によって接続されており、車両制御装置１００は、車内ネットワーク３０を介してエンジン１の動作状況を認識することができる。
【００１３】
また、本実施例の車両制御装置１００には、停止時動作状態設定部１０１と、設定状態監視部１０２と、確認時動作状態設定部１０３と、設定状態判断部１０４と、標準時動作状態設定部１０５と、クロック生成部１０６とを備えている。
尚、これらの「部」は、複数個のＣＰＵを搭載した本実施例の車両制御装置１００が、エンジン１の停止中であっても、重複処理による安全性を確保しながら、バッテリーの消耗を抑制するために備える機能に着目して、車両制御装置１００の内部を便宜的に分類した抽象的な概念である。従って、車両制御装置１００の内部が、これらの「部」に物理的に区分されていることを表すものではない。これらの「部」は、ＣＰＵで実行されるコンピュータープログラムとして実現することもできるし、ＬＳＩを含む電子回路として実現することもできるし、更にはこれらの組合せとして実現することもできる。
【００１４】
停止時動作状態設定部１０１は、エンジン１が停止していることを検知して、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、「エンジン停止時動作状態」に設定する。ここで、エンジン停止時動作状態とは、第１ＣＰＵ１００ａが標準よりも低速で動作し、第２ＣＰＵ１００ｂが動作を停止している動作状態である。一般的なＣＰＵと同様に、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂは、供給されたクロックに同期して内部の処理を実行しており、供給されるクロックが高速になると（回路上の限界までの範囲であれば）処理速度が高くなる。
また、クロック生成部１０６は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂを標準の動作速度（以下、標準速度）で動作させるための標準クロックと、標準速度よりも低速で操作させるための低速クロックとを生成している。そこで、停止時動作状態設定部１０１は、クロック生成部１０６から受け取った低速クロックを第１ＣＰＵ１００ａに供給することによって、第１ＣＰＵ１００ａを標準よりも低速で動作させる。更に、第２ＣＰＵ１００ｂには標準クロックおよび低速クロックの何れの供給も停止することで第２ＣＰＵ１００ｂの動作を停止させる。こうすることによって、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態が、エンジン停止時動作状態に設定される。
【００１５】
設定状態監視部１０２は、停止時動作状態設定部１０１が、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態をエンジン停止時動作状態に設定すると起動されて、車両に搭載されている各種のスイッチ類（本実施例ではエンジン始動スイッチ１０やポジションスイッチ２０）の設定状態を監視する。上述したように、エンジン停止時動作状態では、第１ＣＰＵ１００ａは低速で動作しているが、第２ＣＰＵ１００ｂは動作していないので、第１ＣＰＵ１００ａを用いてエンジン始動スイッチ１０やポジションスイッチ２０の設定状態を監視する。そして、設定状態が変化したことを検知すると、設定状態が本当に変化したか否かを確認するために、確認時動作状態設定部１０３を起動する。
【００１６】
確認時動作状態設定部１０３は、起動すると、クロック生成部１０６から標準クロックを受け取って、第１ＣＰＵ１００ａに供給するクロックを低速クロックから標準クロックに切り換える。その結果、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態は、第１ＣＰＵ１００ａが標準速度で動作し、第２ＣＰＵ１００ｂが動作を停止した「確認時動作状態」に切り換わる。そして、確認時動作状態に切り換えたら、設定状態判断部１０４を起動する。
【００１７】
設定状態判断部１０４は、確認時動作状態設定部１０３によって起動されると、車両に搭載されている各種のスイッチ類（本実施例ではエンジン始動スイッチ１０やポジションスイッチ２０）の設定状態を、所定の複数回に亘って検出することにより、スイッチ類の設定状態が本当に変化したか否かを判断する。
尚、上述したように確認時動作状態では、第１ＣＰＵ１００ａは標準速度で動作しているが、第２ＣＰＵ１００ｂは動作していないので、第１ＣＰＵ１００ａを用いてエンジン始動スイッチ１０やポジションスイッチ２０の設定状態を検出する。また、確認時動作状態では第１ＣＰＵ１００ａは標準速度で動作しているので、複数回であってもスイッチ類の状態を短時間で検出することができる。
そして、複数回の検出結果に基づいて、エンジン始動スイッチ１０あるいはポジションスイッチ２０などの設定状態が本当に変化したか否かを判断し、本当に変化したと判断した場合は、標準時動作状態設定部１０５を起動する。
【００１８】
標準時動作状態設定部１０５は、設定状態判断部１０４によって起動されると、クロック生成部１０６から標準クロックを受け取って、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂに供給する。その結果、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂが何れも標準速度で動作する「標準時動作状態」に切り換わる。
上述したように、本実施例の車両制御装置１００は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態として「エンジン停止時動作状態」、「確認時動作状態」、「標準時動作状態」の３つの状態を備えており、これらは次のように切り換わる。詳細には後述するが、こうすることで、エンジン１の停止中でも、重複処理による安全性の確保と、バッテリーの電力消費量の抑制とを両立させることが可能となる。
【００１９】
図２には、本実施例の車両制御装置１００が、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を切り換えながら動作する様子が概念的に示されている。
車両のエンジン１が動作している間は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態は、標準時動作状態Ｇとなっている。前述したように標準時動作状態Ｇでは、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂが何れも標準速度で動作しており、２つのＣＰＵで処理を分担することによって高速処理を実現したり、重複して処理することによって処理を確実に実行して安全性を高めたりすることができる。
もちろん、２つのＣＰＵが同時に動作するので電力消費量も大きくなるが、エンジン１で発電機を動作させてバッテリーに充電することができるので、バッテリーが消耗する虞は生じない。
【００２０】
車両のエンジン１が停止すると、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態は、エンジン停止時動作状態Ｓに切り換わる。前述したようにエンジン停止時動作状態Ｓでは、第２ＣＰＵ１００ｂが動作を停止するので、その分だけ電力消費量が低下する。更に、第１ＣＰＵ１００ａは標準速度よりも低速で動作するので、第１ＣＰＵ１００ａでの電力消費量も低下する。このため、標準時動作状態Ｇでの電力消費量に比べて、例えば１０分の１程度まで低下する。
もちろん、エンジン停止時動作状態Ｓでは、第２ＣＰＵ１００ｂが停止しており、動作している第１ＣＰＵ１００ａも低速で動作しているに過ぎないので、高速処理を実現することはできず、重複処理による処理の確実性を確保することもできない。そこで、エンジン停止時動作状態Ｓでは、車両の運転者による各種スイッチ類（本実施例ではエンジン始動スイッチ１０やポジションスイッチ２０）の操作の有無を監視する。そして、各種スイッチ類の操作が検知されたら、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、エンジン停止時動作状態Ｓから確認時動作状態Ｃに切り換える。
【００２１】
前述したように、確認時動作状態Ｃでは、第２ＣＰＵ１００ｂは依然として停止しているが、第１ＣＰＵ１００ａは標準速度で動作する。そこで、各種スイッチ類の設定状態を，所定の複数回（例えば３回）に亘って検出する。すなわち、確認時動作状態Ｃでは第１ＣＰＵ１００ａが標準速度で動作しているので、各種スイッチ類の設定状態を検出する回数が多くなっても、短時間で検出することができる。
そして、複数回の検出結果に基づいて、各種スイッチ類の設定が本当に変化しているか否かを判断する。例えば、エンジン停止時動作状態Ｓでエンジン始動スイッチ１０がＯＮになったことを検知した後、確認時動作状態Ｃでエンジン始動スイッチ１０の設定状態を複数回、検出した結果、何れもＯＮであった場合は、エンジン始動スイッチ１０がＯＮに設定されたものと判断する。あるいは、エンジン停止時動作状態Ｓでポジションスイッチ２０がＮレンジになったことを検知した後、確認時動作状態Ｃでポジションスイッチ２０の設定状態を複数回、検出した結果が何れもＮレンジであった場合は、ポジションスイッチ２０の設定がＮレンジに切り換えられたものと判断する。
【００２２】
このように、運転者によって各種スイッチ類（ここではエンジン始動スイッチ１０あるいはポジションスイッチ２０）が操作されたと判断したら、停止していた第２ＣＰＵ１００ｂを標準速度で動作させることによって、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を標準時動作状態Ｇに切り換える。この結果、運転者によって各種スイッチ類が操作された内容に対応する処理を、高速にあるいは確実に実行することが可能となる。例えば、運転者によってエンジン始動スイッチ１０がＯＮに設定された場合は、エンジン１を始動させるために、エンジン制御装置２００に電力を供給するための処理を実行する。あるいは、ポジションスイッチ２０が操作された場合は、オートマチックトランスミッションの動作レンジを切り換えるための処理を実行する。
【００２３】
これに対して、各種スイッチ類が切り換えられたことを確認できなかった場合は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、確認時動作状態Ｃからエンジン停止時動作状態Ｓに復帰させる。例えば、エンジン停止時動作状態Ｓでエンジン始動スイッチ１０がＯＮになったことを検知したにも拘わらず、確認時動作状態Ｃでエンジン始動スイッチ１０の設定状態を複数回、検出した結果が何れもＯＦＦであった場合は、エンジン停止時動作状態Ｓでの検知結果は誤検知であったものと判断する。あるいは、複数回の検出結果に、ＯＮとＯＦＦとが混在していた場合は、エンジン始動スイッチ１０がＯＮになったことを確認できないものと判断する。このような場合は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、確認時動作状態Ｃからエンジン停止時動作状態Ｓに復帰させる。
【００２４】
また、各種スイッチ類が切り換えられたことが確認できたために、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態が標準時動作状態Ｇに切り換えられた場合でも、ポジションスイッチ２０が操作された時のように、エンジン１が停止したままの状態であった場合は、標準時動作状態Ｇからエンジン停止時動作状態Ｓに切り換わる。
【００２５】
こうすれば、エンジン１が停止している間は、第２ＣＰＵ１００ｂは停止させたまま、第１ＣＰＵ１００ａを低速で動作させることによって（すなわち、エンジン停止時動作状態Ｓで）各種スイッチ類の設定状態を検知するので、バッテリーの消耗を抑制することができる。
そして、各種スイッチ類の設定状態が変化したことを検知すると、第１ＣＰＵ１００ａを標準速度で動作させて（すなわち、確認時動作状態Ｃで）各種スイッチ類の設定状態を所定の複数回、検出し、その結果に基づいて、各種スイッチ類の設定状態が変化したか否かを確認する。第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂで並行して確認するわけではないが、第１ＣＰＵ１００ａで何度も検出することにより、時間的に重複して確認していることになる。また、この段階では第１ＣＰＵ１００ａは標準速度で動作しているので、各種スイッチ類の設定状態の検出回数が複数回であっても、迅速に確認することができる。そして、各種スイッチ類の設定状態が変化したことが確認できた後は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂが標準速度で（すなわち、標準時動作状態Ｇで）動作するので、処理の内容に応じて高速で処理したり、重複して処理したりすることが可能となる。
【００２６】
もちろん、確認時動作状態Ｃや標準時動作状態Ｇでは、エンジン停止時動作状態Ｓに比べてバッテリーが消耗するが、確認時動作状態Ｃで実行する処理は、各種スイッチ類の設定状態を所定の複数回検出する処理に過ぎないので、短時間で終了する。また、各種スイッチ類の設定状態を確認した結果、エンジン始動スイッチ１０がＯＮに設定されていた場合はエンジン１が始動されるので、バッテリーが消耗する虞は生じない。また、操作されたスイッチがエンジン始動スイッチ１０ではなく、従ってエンジン１が始動されなかった場合は、スイッチの操作に伴う処理が終了すると標準時動作状態Ｇからエンジン停止時動作状態Ｓに切り換わる。このため、標準時動作状態Ｇでもバッテリーが消耗することはない。このように、本実施例の車両制御装置１００では、エンジン１が停止中のバッテリーの消耗を抑制しながら、各種スイッチ類が操作されたことを確実に且つ迅速に検出することができ、各種スイッチ類が操作されていた場合は、操作に応じた処理を迅速に行うことができる。
【００２７】
以下では、こうしたことを実現するために、車両制御装置１００の内部で行われている処理について具体的に説明する。
【００２８】
Ｂ．エンジン停止時動作状態処理  ：
図３には、車両のエンジン１が停止状態で第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を切り換えるために車両制御装置１００が実行するエンジン停止時動作状態処理のフローチャートが示されている。車両が駐車場に停まっている場合など、運転者がエンジン１を始動させる前の状態では、このエンジン停止時動作状態処理が実行されている。
図３に示されるように、エンジン停止時動作状態処理では、先ず初めに、第１ＣＰＵ１００ａに供給するクロックを低速クロックに設定し、第２ＣＰＵ１００ｂにはクロックの供給を停止することによって、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、エンジン停止時動作状態Ｓに設定する（Ｓ１００）。
【００２９】
次に、第１ＣＰＵ１００ａを用いて各種スイッチ類の設定状態を検出する（Ｓ１０１）。ここで、第１ＣＰＵ１００ａを用いて検出しているのは、第２ＣＰＵ１００ｂはクロックの供給が停止された結果、動作が停止しているためである。
続いて、各種スイッチ類の設定状態を検出した結果を、現状設定状態として、スイッチ毎に記憶する（Ｓ１０２）。
【００３０】
そして、所定のクロック数が経過したか否かを判断する（Ｓ１０３）。上述したように，第２ＣＰＵ１００ｂは動作を停止しているので、第１ＣＰＵ１００ａに供給される低速クロックのクロック数を計数し、計数した値が所定のクロック数（例えば、１００）に達したか否かを判断する。
その結果、所定のクロック数に達していない場合は（Ｓ１０３：ｎｏ）、低速クロックのクロック数を計数しながら、計数した値が所定のクロック数に達したか否かを判断する（Ｓ１０３）。供給されるクロックは低速クロックなので、計数した値が所定のクロック数に達するにはある程度の時間が掛かるが、それでもやがては、所定のクロック数に達して、Ｓ１０３で「ｙｅｓ」と判断される。
【００３１】
そこで、第１ＣＰＵ１００ａを用いて各種スイッチ類の設定状態を検出する（Ｓ１０４）。そして、検出した設定状態が、スイッチ毎に記憶しておいた現状設定状態から変化しているか否かを判断する（Ｓ１０５）。
その結果、検出した設定状態が、記憶しておいた現状設定状態から変化していなかった場合は（Ｓ１０５：ｎｏ）、再びＳ１０３に戻って、新たにクロック数の計数を開始して、計数した値が所定のクロック数に達したか否かを判断する。
【００３２】
これに対して、検出した設定状態が、記憶しておいた現状設定状態から変化していた場合は（Ｓ１０５：ｙｅｓ）、変化していた設定状態を、仮設定状態として記憶する（Ｓ１０６）。例えば、各種スイッチ類が、エンジン始動スイッチ１０およびポジションスイッチ２０であるとして、現状設定状態として記憶されているスイッチの設定状態が、エンジン始動スイッチ１０はＯＦＦで、ポジションスイッチ２０はＰレンジであったが、Ｓ１０４で設定状態を検出したところ、エンジン始動スイッチ１０がＯＮになっていたとする。このような場合は、エンジン始動スイッチ１０について、新たな設定状態（すなわち、ＯＮ）を仮設定状態として記憶する。また、ポジションスイッチ２０については、Ｐレンジのままなので、仮設定状態は記憶しない。
尚、エンジン始動スイッチ１０については、新たに検出した設定状態が現状設定状態から変化しているにも拘わらず、新たな設定状態を「仮」設定状態としているのは、１回の検出結果に基づいて判断したのでは、誤判断する可能性があるためである。
【００３３】
そこで、新たに検出した設定状態を仮設定状態として記憶したら（Ｓ１０６）、その仮設定状態が本当に正しい設定状態であることを確認するため、第１ＣＰＵ１００ａに供給するクロックを低速クロックから標準クロックに変更することによって、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、エンジン停止時動作状態から確認時動作状態に変更する（Ｓ１０７）。尚、確認時動作状態でも、第２ＣＰＵ１００ｂにはクロックは供給されていないので、第２ＣＰＵ１００ｂは動作を停止したままとなっている。
こうして、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、確認時動作状態に切り換えたら、今度は、確認時動作状態処理を開始する。
【００３４】
Ｃ．確認時動作状態処理  ：
図４には、確認時動作状態処理のフローチャートが示されている。図示されるように、確認時動作状態処理では、第１ＣＰＵ１００ａに供給されるクロック数が、所定のクロック数に達したか否かを判断する（Ｓ２００）。ここで、第２ＣＰＵ１００ｂではなく、第１ＣＰＵ１００ａに供給されるクロック数を計数しているのは、確認時動作状態でも第２ＣＰＵ１００ｂにはクロックが供給されないからである。
もっとも、確認時動作状態ではエンジン停止時動作状態とは異なって、第１ＣＰＵ１００ａに供給されるクロックが、低速クロックよりも高速の標準クロックに切り換わっているので、計数しているクロック数が所定のクロック数に達するまでに要する時間は、エンジン停止時動作状態の場合よりも短くなる。
尚、本実施例では、図３のＳ１０３の判断と、図４のＳ２００の判断とで、同じクロック数を用いているので、処理を単純化することができる。もちろん、図３のＳ１０３の判断と、図４のＳ２００の判断とで、異なるクロック数を用いて判断しても良い。
【００３５】
Ｓ２００で、所定のクロック数に達していないと判断した場合は（Ｓ２００：ｎｏ）、標準クロックのクロック数を計数しながら、計数した値が所定のクロック数に達するまで、Ｓ２００の判断を繰り返すことによって待機状態となる。
その結果、所定のクロック数に達したら（Ｓ２００：ｙｅｓ）、仮設定状態が記憶されているスイッチについての設定状態を、第１ＣＰＵ１００ａを用いて検出し（Ｓ２０１）、検出結果を記憶する（Ｓ２０２）。
【００３６】
続いて、スイッチの設定状態の検出回数が、所定回数（例えば３回）に達したか否かを判断する（Ｓ２０３）。図４の確認時動作状態処理を開始して、Ｓ２０１で初めてスイッチの設定状態を検出した場合は、当然ながらＳ２０３では「ｎｏ」と判断されるので、再びＳ２００に戻って、所定のクロック数が経過した否かを判断する。そして、所定のクロック数が経過したら（Ｓ２００：ｙｅｓ）、仮設定状態が設定されているスイッチについての設定状態を検出し（Ｓ２０１）、検出結果を記憶する（Ｓ２０２）。また、検出結果を記憶する際には、少なくとも所定回数分の検出結果については後から読み出せるように、上書きすることなく記憶しておく。そして、再び、検出回数が所定回数に達したか否かを判断する（Ｓ２０３）。
【００３７】
こうした操作を繰り返しているうちに、やがては検出回数が所定回数に達する（Ｓ２０３：ｙｅｓ）。そこで、今度は、Ｓ２０２で記憶しておいた所定回数分の検出結果を読み出した後（Ｓ２０４）、エンジン停止時動作状態処理のＳ１０６で記憶しておいた仮設定状態が正しいか否かを、所定回数の検出結果に基づいて判断する（Ｓ２０５）。
例えば、所定回数の全ての検出結果が、仮設定状態と一致していた場合は、仮設定状態が正しいと判断することができる。これに対して、所定回数の全ての検出結果が、仮設定状態と異なっていた場合は、仮設定状態は正しくないと判断することができる。
【００３８】
また、その中間の場合、すなわち、一致する検出結果と、一致しない検出結果とが混在している場合も、仮設定状態は正しくないと判断する。
もちろん、仮設定状態と一致する検出結果の方が、一致しない検出結果よりも多い場合は、仮設定状態は正しいと判断することも可能である。しかし、エンジン始動スイッチ１０やポジションスイッチ２０などのように、車両の安全性に関わるスイッチについては、本来的には全ての検出結果が一致するべきなので、安全性を考慮して、全ての検出結果が仮設定状態と一致しない限りは、何らかの理由で誤検出したものと判断する。
【００３９】
その結果、記憶しておいた仮設定状態は、スイッチの正しい設定状態であると判断した場合は（Ｓ２０５：ｙｅｓ）、本当にスイッチの設定状態が変化したものと考えられる。そこで、仮設定状態として記憶していた設定状態を、そのスイッチについての現状設定状態として記憶した後（Ｓ２０６）、スイッチの設定状態の変化に応じた処理を開始するべく、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂに標準クロックを供給する。こうして、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、標準時動作状態に切り換えたら（Ｓ２０７）、標準時動作状態処理を開始する。
【００４０】
これに対して、記憶しておいた仮設定状態は、スイッチの正しい設定状態ではないと判断した場合は（Ｓ２０５：ｎｏ）、図３に示したエンジン停止時動作状態処理のＳ１０４でスイッチの設定状態を誤検出したために、スイッチの設定状態が変化したと判断した（Ｓ１０５：ｙｅｓ）ものと考えられる。
そこで、この場合（図４のＳ２０５：ｎｏ）は、記憶しておいた仮設定状態を破棄した後（Ｓ２０８）、図３に示したエンジン停止時動作状態処理に復帰する。
【００４１】
Ｄ．標準時動作状態処理  ：
図５には、標準時動作状態処理のフローチャートが示されている。図示されるように、確認時動作状態処理では、前述した確認時動作状態処理で第１ＣＰＵ１００ａを用いて設定状態を確認したスイッチについての設定状態を、第２ＣＰＵ１００ｂを用いて検出する（Ｓ３００）。
そして、その検出結果が、前述した確認時動作状態処理で第１ＣＰＵ１００ａを用いて検出した結果と一致するか否かを確認する（Ｓ３０１）。すなわち、図４を用いて前述したように、確認時動作状態処理ではスイッチの設定状態を所定の複数回、検出することによって、スイッチの設定状態が変化したことを確認しているが（図４のＳ２０４、Ｓ２０５）、同じ第１ＣＰＵ１００ａで繰り返して検出しているに過ぎない。そこで、エンジン始動スイッチ１０やポジションスイッチ２０のように、安全上、重要なスイッチについては、第２ＣＰＵ１００ｂでも設定状態を検出することによって、誤検出の可能性を排除している。
【００４２】
その結果、前述した確認時動作状態処理の中で第１ＣＰＵ１００ａによって得られた検出結果と、Ｓ３００で第２ＣＰＵ１００ｂによって得られた検出結果とが一致していた場合は（Ｓ３０１：ｙｅｓ）、スイッチの設定状態に応じた処理を開始する（Ｓ３０２）。例えば、エンジン始動スイッチ１０の設定状態がＯＮになったのであれば、エンジン制御装置２００にバッテリーの電力を供給することによってエンジン制御装置２００を起動させ、エンジン制御装置２００によってエンジン１を始動させる。
これに対して、第１ＣＰＵ１００ａによる検出結果と、第２ＣＰＵ１００ｂによる検出結果とが一致していない場合は（Ｓ３０１：ｎｏ）、何らかの異常が発生していると考えられるので、その旨を出力した後（Ｓ３０３）、図５の標準時動作状態処理を終了する。
【００４３】
尚、上述したように、本実施例では、図５の標準時動作状態処理を開始すると、第２ＣＰＵ１００ｂでもスイッチの設定状態を検出して（Ｓ３００）、図４の確認時動作状態処理で検出した設定状態と一致することを確認する（Ｓ３０１）ものとして説明した。しかし、図４の確認時動作状態処理でも、スイッチの設定状態を複数回検出することによって、スイッチの設定状態を確認していることに鑑みて、Ｓ３００およびＳ３０１の操作は省略しても良い。あるいは、エンジン始動スイッチ１０やポジションスイッチ２０などのように、車両の安全性の観点から重要なスイッチについては、Ｓ３００およびＳ３０１の操作を行うが、その他のスイッチについては省略するようにしても良い。
【００４４】
以上のようにして、スイッチの設定状態に応じた処理を行ったら（Ｓ３０３）、エンジン１が停止したか否かを判断する（Ｓ３０４）。車両制御装置１００は、エンジン１を制御するエンジン制御装置２００と、車内ネットワーク３０を介して通信可能となっており、エンジン１が停止しているか否かは容易に判断することができる。
その結果、エンジン１が停止していない場合は（Ｓ３０４：ｎｏ）、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂを用いて、標準時動作状態での処理を実施する（Ｓ３０５）。すなわち、図５の標準時動作状態処理が開始される際には、その前の確認時動作状態処理で、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂに標準クロックが供給されて標準時動作状態となっている（図４のＳ２０７）。そこで、エンジン１が動作している間は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂで処理を分担して高速処理を実現したり、あるいは同じ処理を重複して実行することによって確実性を確保したりするなど、処理の内容に応じて標準時動作状態での処理を実行する。
【００４５】
このような標準時動作状態での処理を実施している間に、エンジン１が停止したと判断したら（Ｓ３０４：ｙｅｓ）、第１ＣＰＵ１００ａで実行中の処理がなく、且つ、第２ＣＰＵ１００ｂで実行中の処理も無い状態が、所定時間に亘って継続したか否かを判断する（Ｓ３０６）。例えば、エンジン１が停止された時点で第１ＣＰＵ１００ａと第２ＣＰＵ１００ｂとが分担して処理を実行していた場合は、一方のＣＰＵでの処理が終了していても、他方のＣＰＵでは処理が継続している場合がある。あるいは、一方のＣＰＵでの処理結果を受けて、他方のＣＰＵが処理を開始する場合もある。
そこで、エンジン１が停止されると（Ｓ３０４：ｙｅｓ）、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの何れでも処理を実行していない状態が、所定時間にわたって継続したか否かを判断する（Ｓ３０６）。
【００４６】
その結果、第１ＣＰＵ１００ａまたは第２ＣＰＵ１００ｂの少なくとも一方が処理を実行している場合、あるいは、何れのＣＰＵでも処理を終了しているが、まだ所定時間が経過していない場合は（Ｓ３０６：ｎｏ）、エンジン１が停止したままか否かを確認する（Ｓ３０４）。そして、エンジン１が停止したままであった場合は（Ｓ３０４：ｙｅｓ）、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂが処理を終了して所定時間が経過するまで、Ｓ３０４およびＳ３０６の判断を繰り返す。
こうした判断を繰り返している間に、エンジン１が始動された場合は、Ｓ３０４で「ｎｏ」と判断されるので、上述したように、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂを用いて標準時動作状態での処理を実施する（Ｓ３０５）。
【００４７】
また、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂが処理を終了して所定時間が経過した場合は（Ｓ３０６：ｙｅｓ）、第１ＣＰＵ１００ａに供給するクロックを標準クロックから低速クロックに切り換えると共に、第２ＣＰＵ１００ｂへのクロックの供給を停止することによって、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を、エンジン停止時動作状態に切り換える（Ｓ３０７）。
そして、エンジン停止時動作状態に切り換えた後は、図３を用いて前述したエンジン停止時動作状態処理を開始する。
【００４８】
本実施例の車両制御装置１００は、以上のようにして、エンジン停止時動作状態Ｓ、確認時動作状態Ｃ、標準時動作状態Ｇを切り換えることによって、エンジン１が停止している間でも、バッテリーの消耗を抑制しながら、各種のスイッチ類の設定状態が変化したことを確実に検出することができる。そして、スイッチ類の設定状態が変化したことを検出した後は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂを用いて迅速に処理を開始することができる。
【００４９】
図６には、エンジン始動スイッチ１０の設定状態がＯＦＦからＯＮに変化する場合を例に用いて、上述した効果が得られる理由が示されている。
図示されるように、エンジン始動スイッチ１０の設定状態がＯＦＦの間は、エンジン１の動作状態は停止状態となっており、そして、図３を用いて前述したように、エンジン１の停止中は、第２ＣＰＵ１００ｂは動作を停止し、第１ＣＰＵ１００ａが低速で動作するエンジン停止時動作状態Ｓとなっている。図中に破線の矢印で示したように、第１ＣＰＵ１００ａは一定の間隔でエンジン始動スイッチ１０の設定状態を検出するが、この程度の動作では電力消費は僅かに過ぎないので、エンジン１の停止中に車両のバッテリーの消耗が進むことはない。
【００５０】
その後、車両の運転者によってエンジン始動スイッチ１０がＯＮにされたとする。その時点では、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態はエンジン停止時動作状態Ｓとなっているが、次回にエンジン始動スイッチ１０の設定状態を検出すると、第１ＣＰＵ１００ａが低速で動作する状態から標準速度で動作する状態に切り換わる。その結果、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態は、エンジン停止時動作状態Ｓから確認時動作状態Ｃに移行する。
そして、図中に破線の矢印で示されるように、エンジン始動スイッチ１０の設定状態を所定の複数回（図中では３回）、検出する。こうして、エンジン始動スイッチ１０の設定状態を複数回、確認するので、第２ＣＰＵ１００ｂの動作が停止したままでも、エンジン始動スイッチ１０の設定状態を誤検出してしまうことを防止することができる。加えて、第１ＣＰＵ１００ａは標準速度で動作するので、設定状態の検出回数が複数回になっても、エンジン始動スイッチ１０がＯＮに設定されたことを迅速に確認することができる。
【００５１】
こうして、エンジン始動スイッチ１０がＯＮになったことが確認されたら、第２ＣＰＵ１００ｂを標準速度で起動させることによって、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの動作状態を標準時動作状態Ｇに移行させる。標準時動作状態Ｇになると、エンジン停止時動作状態Ｓや確認時動作状態Ｃに比べて電力消費量が増加するが、エンジン１も動作を開始するので、バッテリーが消耗する虞は生じない。
【００５２】
以上に説明したように、本実施例の車両制御装置１００では、エンジン停止時動作状態Ｓ、確認時動作状態Ｃを切り換えることによって、エンジン１が停止している間でも、バッテリーの消耗を抑制しながら、各種のスイッチ類の設定状態が変化したことを確実に検出する。そして、スイッチ類の設定状態が変化したことを確実に検出した後は、確認時動作状態Ｃから標準時動作状態Ｇに切り換えることによって、処理を迅速に実行することが可能となる。
【００５３】
また、図５を用いて前述したように、エンジン１が停止した後は、第１ＣＰＵ１００ａおよび第２ＣＰＵ１００ｂの何れの処理も終了して、所定時間が経過したことを確認してから、標準時動作状態Ｇをエンジン停止時動作状態Ｓに切り換える。このため、処理が残っているにも拘わらず、エンジン停止時動作状態Ｓに切り換わってしまい、迅速な処理ができなくなってしまう事態が生じることも防止可能となる。
【００５４】
以上、本発明の実施例について説明したが、本発明は上記の実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【符号の説明】
【００５５】
１…エンジン、    １０…エンジン始動スイッチ、    ２０…ポジションスイッチ、
１００…車両制御装置、      １００ａ…第１ＣＰＵ、    １００ｂ…第２ＣＰＵ、
１０１…停止時動作状態設定部、    １０２…設定状態監視部、
１０３…確認時動作状態設定部、    １０４…設定状態判断部、
１０５…標準時動作状態設定部、    １０６…クロック生成部、
２００…エンジン制御装置、
Ｃ…確認時動作状態、    Ｇ…標準時動作状態、    Ｓ…エンジン停止時動作状態。
【図１】
2019185693.tif 000003
【図２】
2019185693.tif 000004
【図３】
2019185693.tif 000005
【図４】
2019185693.tif 000006
【図５】
2019185693.tif 000007
【図６】
2019185693.tif 000008