ところで、近年、エンジン制御用のマイクロコンピュータは、より高い性能が要求されている。この要求に応えるために、例えば、1つの半導体チップ上にCPUコアを複数搭載するマルチコア構成、及びキャッシュメモリを搭載する構成の少なくとも一方を採用することで、処理能力を向上させることが考えられている。このようにマルチコア構成及びキャッシュメモリ搭載構成の少なくとも一方が採用されたマイクロコンピュータ(以下「高性能マイクロコンピュータ」ともいう)をエンジン制御用電子制御装置に用いれば、従来から用いられている、CPUコアが1つでキャッシュメモリをもたないマイクロコンピュータに比べ、より高い処理能力が実現される。
そして、このような高性能マイクロコンピュータを搭載したエンジン制御用電子制御装置においても、上記特許文献1に記載の技術を適用して、エンジン停止中に車載バッテリの電力によって特定の制御処理を実行する際にはその特定の制御処理を含む必要最低限の制御処理のみを実行して他の制御処理を実行しないようにすれば、バッテリの消費電力を低減することができる。
しかしながら、CPUコアを複数搭載することやキャッシュメモリを搭載することは、いずれも、マイクロコンピュータの処理能力を向上させるための有効な方法である反面、電力を大きく消費する方法でもある。そのため、このような高性能マイクロコンピュータをエンジン制御に用いると、CPUコアが1つでキャッシュメモリを持たない従来のマイクロコンピュータを用いた場合に比べ、当然ながら、マイクロコンピュータの消費電力(ひいてはエンジン制御用電子制御装置の消費電力)は大きくなる。
しかも、近年のエンジン制御用電子制御装置は、エンジン停止中も低い消費電力で動作し続ける他の電子制御装置(例えばイモビライザー制御用やドア制御用の電子制御装置など)と協調制御を行うよう構成されているものが多い。そして、エンジン停止中にこれら他の電子制御装置から起動要求を受けて一時的に起動し、その起動要求に応じた特定の制御処理を車載バッテリの電源により行うことが増加しつつある。つまり、エンジン停止中に実行すべき特定の制御処理は、KEYOFFエバポダイアグ処理以外にも種々のものがあり、今後ますます増加していくことも予想される。
そのため、高性能マイクロコンピュータをエンジン制御用電子制御装置に用いる場合は、上記特許文献1に記載のような、エンジン停止中に特定の制御処理を実行する際にその特定の制御処理を含む必要最低限の処理のみを行う、という手法だけでは、消費電力の低減は不十分であり、バッテリ上がりを招くおそれがある。
本発明は上記課題に鑑みなされたものであり、マルチコア構成及びキャッシュメモリ搭載構成の少なくとも一方が採用されたマイクロコンピュータを備えたエンジン制御用電子制御装置において、エンジン停止中に車載バッテリの電源により特定の制御処理を行う際の消費電力を効果的に低減することを目的とする。
上記課題を解決するためになされた請求項1記載の発明は、車両に搭載され、外部から所定の起動用主スイッチ信号が入力されるか又は該起動用主スイッチ信号の入力とは別の起動条件が成立した場合に車載バッテリからの電源供給を受けて動作するマイクロコンピュータを備えると共に、該マイクロコンピュータが、起動用主スイッチ信号が入力された場合は車両のエンジンを制御し、起動条件が成立した場合には該起動条件に応じた特定の制御処理を行うよう構成されたエンジン制御用電子制御装置である。
そして、マイクロコンピュータは、少なくとも1つのCPUコアと、CPUコアによりアクセスされ、CPUコアが実行するプログラムが記憶されており記憶内容を電気的に書き換え可能に構成されているROM及びCPUコアがプログラムを実行する際に用いるデータが記憶されるRAMを有する記憶手段と、CPUコアにより用いられ、ROMに対応したインストラクションキャッシュメモリ及び前記RAMに対応したデータキャッシュメモリを有するキャッシュメモリと、起動条件の成立により特定の制御処理を行う際、当該マイクロコンピュータの動作モードを低消費電力モードに設定する動作モード設定手段とを備えている。この低消費電力モードは、起動用主スイッチ信号の入力による動作時よりも消費電力が低い動作モードであり、より具体的には、CPUコアの使用数又は各キャッシュメモリの使用有無が、起動用主スイッチ信号の入力による動作時とは異なるものである。
エンジン制御の停止中(つまりマイクロコンピュータの動作停止中)に起動条件が成立して特定の制御処理が実行される際は、エンジン動作中のようにオルタネータ等からの発電電力はなく、車載バッテリの充電も行われない。そのため、特定の制御処理の実行時におけるマイクロコンピュータの処理能力が高いほど、また、実行時間が長くなればなるほど、バッテリの充電電力はどんどん消費されていく。
そこで、エンジン制御の停止中に特定の制御処理を実行する際は、マイクロコンピュータの動作モードを、エンジン動作時(起動用主スイッチ信号の入力時)における動作モードとは異なる低消費電力モードに設定する。そして、消費電力を低減させるために、具体的には、マイクロコンピュータが使用するCPUコアの数又はキャッシュメモリの使用有無を、起動用主スイッチ信号の入力時とは異なるものにするのである。
CPUコア及びキャッシュメモリは、いずれも、マイクロコンピュータにおいて消費電力の大きい要素である。そのため、これらCPUコアの使用数やキャッシュメモリの使用有無をエンジン動作時とは異なるものにすることで、マイクロコンピュータの消費電力をエンジン動作時よりも低く抑えることができる。
従って、上記構成のエンジン制御用電子制御装置によれば、マイクロコンピュータは、エンジン制御の停止中に起動条件が成立して特定の制御処理を実行する際は、エンジン制御時(起動用主スイッチ信号の入力時)よりも消費電力の低い低消費電力モードで動作するため、エンジン制御停止中に車載バッテリの電源により特定の制御処理を行う際の消費電力を効果的に低減することが可能となる。
また、ROMの記憶内容を書き換える制御処理を行う際は、その制御処理の性質上、インストラクションキャッシュメモリの使用効果はほとんどない。
そのため、エンジン制御停止中に車載バッテリの電力によってマイクロコンピュータがROMの記憶内容を書き換える際には、マイクロコンピュータの動作モードを、インストラクションキャッシュメモリは使用ずデータキャッシュメモリは使用する低消費電力モードとすることで、消費電力を効果的に低減することができる。
ここで、例えば特定の制御処理が複数種類ある場合に、低消費電力モードを一律固定にしてどの特定の制御処理を実行する際も同じ低消費電力モードで動作するようにすると、ある特定の制御処理に対しては消費電力が低すぎて十分な処理能力が得られなかったり、逆に、ある特定の制御処理に対しては処理能力が必要以上に大きくて電力が無駄に消費されてしまう、ということが起こりうる。
そこで、特定の制御処理が複数ある場合は、例えば請求項2に記載のように、低消費電力モードも複数用意するとよい。即ち、マイクロコンピュータは、消費電力の異なる複数種類の低消費電力モードを有し、起動条件の成立時に該起動条件の種類に応じて異なる特定の制御処理を実行すると共に、該特定の制御処理毎に複数種類の低消費電力モードのいずれかが対応付けられている。そして、動作モード設定手段は、起動条件の成立により特定の制御処理を実行する際、マイクロコンピュータを、該実行する特定の制御処理に対応した低消費電力モードに設定する。
このように構成されたエンジン制御用電子制御装置によれば、特定の制御処理の種類毎に適切な(或いは最適な)低消費電力モードに設定することができるため、特定の制御処理を行う際の消費電力をより効果的に低減することが可能となる。
マイクロコンピュータの低消費電力モードとして、具体的にどのようなモードを設定するか(即ち、CPUコアの使用数やキャッシュメモリの使用有無を具体的にどのように設定するか)は種々考えられるが、例えば請求項3記載のように、マイクロコンピュータは、低消費電力モードとして、少なくとも、キャッシュメモリを全く使用しない又はその使用を制限するキャッシュメモリ使用制限モードを備えたものとすることができる。
上記のように構成されたエンジン制御用電子制御装置によれば、エンジン制御停止中に特定の制御処理を実行する際、キャッシュメモリの動作に必要な電力の消費を抑えることができ、その分、消費電力を低減することが可能となる。
なお、キャッシュメモリ使用制限モードでの動作が有効となる特定の制御処理としては、例えば、高速処理性能が必ずしも要求されず処理速度が低速でもよい制御処理、キャッシュメモリを使用する効果が比較的小さい制御処理、又は終了するまで長時間必要(車載バッテリからの電源供給が長時間必要)な制御処理などがある。
マイクロコンピュータがキャッシュメモリを複数有する場合に、全てのキャッシュメモリを使用しないようにするか又は一部使用を制限するかは、実行する特定の制御処理に要求される処理能力や所要時間或いはキャッシュメモリの使用効果等に応じて適宜決めればよい。
請求項4記載のエンジン制御用電子制御装置は、マイクロコンピュータが、低消費電力モードとして、各キャッシュメモリのいずれも使用しない第1低消費電力モードと、データキャッシュメモリを使用せずインストラクションキャッシュメモリを使用する第2低消費電力モードと、インストラクションキャッシュメモリを使用せずデータキャッシュメモリを使用する第3低消費電力モードと、のうち少なくとも1つを有している。
このように、インストラクションキャッシュメモリ及びデータキャッシュメモリの各々について使用有無の異なる複数種類の低消費電力モードを設定することで、上記請求項3と同様の効果が得られるのに加え、実行する特定の制御処理の種類に応じてより適切な(最適な)低消費電力モードを設定することが可能となる。つまり、特定の制御処理毎に、マイクロコンピュータに必要十分な処理能力を発揮させつつその消費電力を効果的に低減することが可能となる。
なお、第1低消費電力モード〜第3低消費電力モードのいずれかでの動作が有効となる特定の制御処理としては、上記請求項3と同様、例えば、高速処理性能が必ずしも要求されず処理速度が低速でもよい制御処理、キャッシュメモリを使用する効果が比較的小さい制御処理、又は終了するまで長時間必要(車載バッテリからの電源供給が長時間必要)な制御処理などがある。
また、第1低消費電力モードは、第2低消費電力モード及び第3低消費電力モードに比べて消費電力が最も小さい。そのため、例えば、実行すべき特定の制御処理が、処理能力よりもバッテリ消費電力を重視(消費電力を低減することを重視)するものである場合は第1低消費電力モードに設定し、処理能力を重視するものであれば第2低消費電力モード或いは第3低消費電力モードにするなど、低消費電力モードとしてどれを設定するかは、特定の制御処理毎に、要求される処理能力や所要時間等に応じて適宜決めればよい。
また、第2低消費電力モード又は第3低消費電力モードのどちらにするかについては、例えば、特定の制御処理毎に、どちらに設定した方が効果的か(つまり、どちらのキャッシュメモリを用いた方が効果的か)といったこと等を考慮して決めればよい。
上記請求項3,4に記載のエンジン制御用電子制御装置では、キャッシュメモリの使用を制限等することで消費電力の低減を実現したが、CPUコアを複数備えている場合は、例えば請求項5,6に記載のように、CPUコアの使用数を制限することで消費電力の低減を実現できる。
即ち、請求項5記載のエンジン制御用電子制御装置は、マイクロコンピュータが、CPUコアを複数備え、低消費電力モードとして、複数のCPUコアのうち少なくとも1つを使用しないコア使用制限モードを有している。
このように、エンジン制御停止中に特定の制御処理を実行する際、CPUコアの使用数を制限することで、制限した分、消費電力を低減することが可能となる。
なお、このコア使用制限モードでの動作が有効となる特定の制御処理としては、例えば、高速処理性能が必ずしも要求されず処理速度が低速でもよい制御処理、複数のCPUコアの全てを使用する効果が比較的小さい制御処理、又は終了するまで長時間必要(車載バッテリからの電源供給が長時間必要)な制御処理などがある。
この場合において、更に、請求項6記載のように、CPUコアを1つのみ使用するコア最小使用モードを有するようにすれば、CPUコアの使用数を制限することによる消費電力低減としては最もその低減量を大きくすることができ、より効果的となる。特定の制御処理がCPUコア1つで十分なものである場合は、このコア最小使用モードにすることで、必要十分な処理性能を確保しつつ消費電力をより効果的に低減できる。
ここで、上記請求項3,4に記載のようにキャッシュメモリの使用を制限等することで消費電力を低減することと、上記請求項5,6に記載のようにCPUコアの使用数を制限することで消費電力を低減することを適宜組み合わせることで、例えば請求項7〜9に記載のように、より多種多様な低消費電力モードを設定することが可能となる。
請求項7記載のエンジン制御用電子制御装置は、マイクロコンピュータが、CPUコアを複数備え、低消費電力モードとして、CPUコアを1つのみ使用すると共にキャッシュメモリを全く使用しない第1低消費電力モードと、CPUコアを1つのみ使用すると共にキャッシュメモリを使用する又はその使用を制限する第2低消費電力モードと、CPUコアを2つ使用すると共にキャッシュメモリを全く使用しない又はその使用を制限する第3低消費電力モードとを有している。
このように構成されたエンジン制御用電子制御装置によれば、CPUコアの使用数及びキャッシュメモリの使用有無等の組み合わせによって、特定の制御処理の種類毎により適した(最適な)低消費電力モードを設定することが可能となる。
また、請求項8記載のエンジン制御用電子制御装置は、マイクロコンピュータが、CPUコアを複数備え、記憶手段として、CPUコアが実行するプログラムが記憶されたROM及びCPUコアがプログラムを実行する際に用いるデータが記憶されるRAMを備え、キャッシュメモリとして、ROMに対応したインストラクションキャッシュメモリ及びRAMに対応したデータキャッシュメモリを備える。そして、低消費電力モードとして、CPUコアを1つのみ使用すると共に、インストラクションキャッシュメモリ及びデータキャッシュメモリを共に使用しない第1低消費電力モードと、CPUコアを1つのみ使用すると共に、データキャッシュメモリは使用せずにインストラクションキャッシュメモリを使用する第2低消費電力モードと、CPUコアを2つ使用すると共に、インストラクションキャッシュメモリは使用せずにデータキャッシュメモリを使用する第3低消費電力モードとを有している。
このように構成されたエンジン制御用電子制御装置によっても、CPUコアの使用数及びキャッシュメモリの使用有無等の組み合わせによって、特定の制御処理の種類毎により適した(最適な)低消費電力モードを設定することが可能となる。特に、キャッシュメモリについてはインストラクションキャッシュメモリ及びデータキャッシュメモリの個々について使用有無を設定している。そのため、例えば、ある特定の制御処理がいずれか一方のキャッシュメモリを不要とする(使用してもあまり効果がない等)場合にはその特定の制御処理についてはその不要キャッシュメモリを使用しない低消費電力モードに設定する、といったことが可能となるなど、キャッシュメモリの種類をも考慮したより適切な(最適な)低消費電力モードを設定することが可能となる。
また、請求項4記載のエンジン制御用電子制御装置は、例えば請求項9記載のように、マイクロコンピュータがCPUコアを1つ備えたものであってもよい。マイクロコンピュータに要求される処理能力の程度によっては、例えば、CPUコアの数を増やす必要まではなくキャッシュメモリを設けるだけで十分、というケースもあり、そのような場合は、CPUコアが1つでキャッシュメモリを搭載したマイクロコンピュータが用いられることになる。このようにCPUコアが1つのマイクロコンピュータにおいては、CPUコアの使用数を制限して消費電力低減するということはできないが、キャッシュメモリの使用有無を制限等することで、消費電力を低減することが可能となる。
そして、請求項7〜9いずれかに記載のエンジン制御用電子制御装置は、より具体的には、例えば請求項10〜12に記載のように構成できる。
請求項10記載のエンジン制御用電子制御装置は、当該装置への起動用主スイッチ信号の入力が停止されて当該装置によるエンジンの制御が停止されてから所定時間が経過したことを検知する計時手段と、当該装置によるエンジンの制御の停止後、計時手段により上記所定時間の経過が検知されたとき、起動条件が成立したものとして車載バッテリの電源をマイクロコンピュータに供給して該マイクロコンピュータを動作させる電源制御手段と を備えている。そして、計時手段が上記所定時間の経過を検知したことにより起動条件が成立したときは、動作モード設定手段がマイクロコンピュータを第1低消費電力モードに設定すると共に、マイクロコンピュータは、特定の制御処理として、車両におけるエバポパージシステムの診断処理を行う。
エバポパージシステムの診断処理は、例えば既述のKEYOFFエバポダイアグ処理のように、車両におけるエバポパージシステムのリークを検出するための処理である。この処理は、一般に、高速処理性能を必要とせず低速動作で十分であるが、診断処理にかかる時間は比較的長い(例えば数十分程度)。
そのため、エンジン制御停止中に車載バッテリの電力によってマイクロコンピュータがエバポパージシステムの診断処理を行う際には、マイクロコンピュータの動作モードを第1低消費電力モード(CPUコアを1つ使用し、キャッシュメモリは使用しないモード)とすることで、エバポパージシステムの診断処理に必要な処理能力を十分に確保しつつ、消費電力を効果的に低減することができる。
また、請求項11記載のエンジン制御用電子制御装置は、外部装置とデータ通信できるよう構成されており、外部装置からデータが受信された場合にこれを検知する受信検知手段と、エンジンの制御が停止されているときに受信検知手段によりデータの受信が検知されたとき、起動条件が成立したものとして車載バッテリの電源をマイクロコンピュータに供給して該マイクロコンピュータを動作させる電源制御手段とを備えている。そして、受信検知手段がデータの受信を検知したことにより起動条件が成立したときは、動作モード設定手段がマイクロコンピュータを第2低消費電力モードに設定すると共に、マイクロコンピュータは、特定の制御処理として、その受信されたデータに基づく処理を行う。
エンジン制御用電子制御装置がエンジン制御停止中に外部装置との通信を行うケースとしては、例えば、既述の通り、車両に搭載された他の電子制御装置がエンジン制御用電子制御装置と協調制御を行う際にその電子制御装置との間でデータ通信を行うこと等が考えられる。このように、エンジン制御用電子制御装置が外部装置とデータ通信を行う場合、エンジン制御用電子制御装置における処理速度が外部装置の処理に影響を与える可能性があることから、処理速度はできる限り速い方が好ましい。一方、処理時間としては、比較的短くてすむことが多い(例えば数秒程度)。
しかし、マイクロコンピュータの通信装置を利用してデータの送受信を行う場合、通信データの処理速度については、通信速度、通信機能の性能に影響するところがほとんどである。従って、CPUコアを2個以上使用してもあまり処理速度の向上には繋がらない。一方、キャッシュメモリに関しては、マイクロコンピュータの通信装置に対しての送受信データの読み出し/書き込み速度が向上し、結果、全体の処理速度の向上が期待できる。
そのため、エンジン制御停止中に車載バッテリの電力によってマイクロコンピュータが外部装置とデータ通信を行う際には、マイクロコンピュータの動作モードを第2低消費電力モード(CPUコアを1つ使用し、キャッシュメモリは使用する又は使用を制限するモード)とすることで、データ通信に必要な処理能力を十分に確保しつつ、消費電力を効果的に低減することができる。
また、請求項12記載のエンジン制御用電子制御装置は、外部装置とデータ通信できるよう構成されており、エンジンの制御が停止されているときに外部から所定の起動用副スイッチ信号が入力されたとき、起動条件が成立したものとして車載バッテリの電源をマイクロコンピュータに供給して該マイクロコンピュータを動作させる電源制御手段と、ROMの記憶内容を書き換えるべき旨の書換要求が外部装置から入力された場合にこれを検知する書換要求検知手段とを備えている。そして、起動用副スイッチ信号の入力により起動条件が成立すると共に書換要求検知手段が書換要求の入力を検知したときは、動作モード設定手段がマイクロコンピュータを第3低消費電力モードに設定すると共に、マイクロコンピュータは、特定の制御処理として、書換要求に基づいてROMの記憶内容の書き換えを行う。
外部装置を用いたROMの記憶内容の書き換えは、その書き換え作業の工数削減の観点では、高速処理能力が有効であり、例えば、CPUコアを2つ使用し、一方が記憶内容を書き換えて他方がそのベリファイチェックを行うようにすることで、高速処理能力を得ることができる。一方、ROMの記憶内容を書き換える制御処理を行う際は、その制御処理の性質上、インストラクションキャッシュメモリの使用効果はほとんどない。
そのため、エンジン制御停止中に車載バッテリの電力によってマイクロコンピュータが外部装置からの要求に従ってROMの記憶内容を書き換える際には、マイクロコンピュータの動作モードを第3低消費電力モード(CPUコアを2つ使用し、キャッシュメモリは使用しない又は使用を制限するモード)とすることで、データ通信に必要な処理能力を十分に確保しつつ、消費電力を効果的に低減することができる。
ところで、エンジン制御停止中に起動条件が複数成立した場合であって、各起動条件に応じた複数種類の特定の制御処理が実行される場合に、マイクロコンピュータの動作モード(低消費電力モード)をどのようにするかは種々考えられるが、例えば請求項13記載のように設定することができる。即ち、複数種類の低消費電力モードに、各々、優先順位を設定しておき、動作モード設定手段が、起動条件が複数成立した場合には、該成立した複数の起動条件に対応した低消費電力モードのうち最も優先順位の高いモードに設定する。
優先順位の設定は、例えば、電力消費量が大きい特定の制御処理ほど優先順位が上位になるようにしてもよい。このようにすれば、特定の制御処理が複数実行される場合にどの制御処理においても所望の処理能力を得ることができる。また例えば、より重要な制御処理(優先して実行させるべき特定の制御処理)ほど優先順位が上位になるようにしてもよい。このようにすれば、重要度の高い制御処理ほど、その処理実行に必要な処理能力を確実に確保することができる。
また、上記請求項1〜13いずれかに記載のエンジン制御用電子制御装置は、例えば請求項14記載のように、車載バッテリの電圧が所定の閾値以下であるか否かを判断するバッテリ電圧判断手段を備え、低消費電力モードとして、特定の制御処理に対応付けられた低消費電力モードのうち最も消費電力の低いものと同じ消費電力か又はそれよりも消費電力の低い、電圧低下時動作モードを有し、動作モード設定手段は、起動条件の成立によりマイクロコンピュータが特定の制御処理を行う際、バッテリ電圧判断手段により車載バッテリの電圧が上記閾値以下と判断されたならば、動作モードを電圧低下時動作モードに設定するものとして構成するとよい。
車載バッテリの電圧が低下すると、エンジン制御用電子制御装置が行う上記特定の制御処理に影響が及ぶおそれがあるのに加え、車両における他の装置等の動作にも影響を及ぼすおそれが大きい。例えば、車載バッテリから常時電力供給を受けて各種データを記憶するバックアップRAMを有している場合、車載バッテリの電圧が低下するとその記憶内容が消えてしまうおそれがある。
そこで、エンジン制御停止中に特定の制御処理を行う際、車載バッテリの電圧を判断し、所定の閾値を超えていれば、その特定の制御処理に対応した低消費電力モードに設定するが、車載バッテリの電圧が所定の閾値以下ならば、実行する特定の制御処理如何に関わらず電圧低下時動作モードに設定する。つまり、特定の制御処理に必要な最低限の処理能力は確保しつつ、車載バッテリの電圧低下を抑制することを優先するのである。
このように、車載バッテリの電圧が閾値以下の場合は動作モードを電圧低下時動作モードに設定することで、車載バッテリの電圧低下を抑制し、エンジン制御停止中に車載バッテリの電源により動作している他の装置等の動作に悪影響が及ぶのを防止することができる。
また、上記請求項1〜14いずれかに記載のエンジン制御用電子制御装置は、例えば請求項15記載のように、動作モード設定手段が、マイクロコンピュータを低消費電力モードに設定している際に、起動用主スイッチ信号が入力されたならば、動作モードを、CPUコアおよびキャッシュメモリの全てを使用する通常動作モードに設定するものとして構成することができる。
このように構成することで、低消費電力モードに設定されていても、起動用主スイッチ信号が入力されたならば、通常動作モード(CPUコアの使用数及びキャッシュメモリの使用有無の観点では最高の処理能力が得られる動作モード)に設定されるため、マイクロコンピュータは、エンジン制御用電子制御装置における主たる制御であるエンジンの制御を最高の処理能力で実行することができる。
請求項16記載の発明は、請求項1〜15いずれかに記載のエンジン制御用電子制御装置に搭載されるマイクロコンピュータであって、1つの半導体チップ上に形成されてなることを特徴とする。このように構成されたマイクロコンピュータによれば、請求項1〜15いずれかに記載のエンジン制御用電子制御装置に適用でき、その場合、装置の小型化と車載バッテリの消費電力低減が共に可能となる。
以下に、本発明の好適な実施形態を図面に基づいて説明する。
[第1実施形態]
図1は、本実施形態のエンジン制御用電子制御装置(以下「エンジン制御ECU」という)を表す構成図である。
図1に示すように、本実施形態のエンジン制御ECU10は、車両に搭載され、主として図示しないエンジンを制御するものであり、エンジンを制御するための各種処理を実行するエンジン制御用マイクロコンピュータ(以下「エンジン制御マイコン」という)20と、エンジン制御マイコン20を動作させるための主電源電圧Va,vbを出力する主電源回路31及びソークタイマIC40やメインリレー駆動回路21等を動作させるための副電源電圧Vsを出力する副電源回路32を有する電源IC30と、エンジン制御マイコン20から出力される駆動制御信号に応じてKEYOFFエバポダイアグ処理に関わるアクチュエータ(図2のパージ弁113,電動ポンプ119,制御弁121。詳細は後述。)を駆動する駆動回路23とを備えている。
ここで、電源IC30の副電源回路32には、車両のバッテリ41のプラス端子の電圧(以下、「バッテリ電圧」という)が常時供給されている。そして、副電源回路32は、そのバッテリ電圧から副電源電圧Vsを常時生成して、エンジン制御マイコン20を含むエンジン制御ECU10の各部へ出力する。
また、電源IC30の主電源回路31には、車両のイグニッションスイッチ(以下、「IGSW」と記す)43がオンされるか、或いは、所定の起動条件が成立したことによって、メインリレー駆動回路21からメインリレー駆動信号が出力された場合に、本エンジン制御ECU10の外部に設けられた給電用のメインリレー(ML)42を介してバッテリ電圧が供給される。そして、主電源回路31は、メインリレー42を介して供給されるバッテリ電圧から主電源電圧Va,Vbを生成して出力する。
具体的に説明すると、まず、本エンジン制御ECU10が搭載された車両は、運転者等がキーを挿入する周知のキーシリンダ(図示略)を備えている。そして、周知の如く、このキーシリンダにキーを挿入しただけの状態ではOFFであり、その状態からキーを捻る毎に、アクセサリスイッチ(以下、「ACCSW」と記す)44がON、IGSW43がONし、更に捻るとスタータモータ(図示略)が回転してエンジンが始動する。なお、IGSW43やACCSW44は、上記のようにキーシリンダにキーを挿入して操作するタイプのものに限らず、例えば、無線機能を備えたキーを携帯した運転者がキーを携帯したままの状態で車両のスイッチを操作することで上記同様のスイッチ操作を行えるタイプのもの等であってもよいことはいうまでもない。
そして、本エンジン制御ECU10には、IGSW43及びACCSW44を介して、IGSW43又はACCSW44のON/OFF状態を示すACCSW信号が入力されている。即ち、このACCSW信号は、ACCSW44がONされたとき又はIGSW43がONされたときにハイレベルとなり、IGSW43及びACCSW44が双方共にOFFされたときにローレベルとなる。また、本エンジン制御ECU10には、IGSW43を介して、IGSW43のON/OFF状態を示すIGSW信号も入力されている。このIGSW信号は、IGSW43がONされるとハイレベルになり、OFFされるとローレベルになる。
つまり、ACCSW44がONされた状態では、IGSW信号はローレベルであるがACCSW信号はハイレベルとなる。そして、IGSW43がONされた状態では、IGSW信号及びACCSW信号が共にハイレベルとなる。
なお、本実施形態では、上記のように、ACCSW44がONされたとき及びIGSW43がONされたときのいずれにおいてもACCSW信号が出力される構成としたが、これは一例であって、例えば、ACCSW信号はACCSW44がONされたときのみ出力されるようにすると共に、IGSW信号をメインリレー駆動回路21にも入力するようにしてもよい。
そして、エンジン制御ECU10には、ACCSW信号と、パケット検出部22からのCANパケット検出信号と、ソークタイマIC40からのソークタイマ起動信号と、エンジン制御マイコン20からのメインリレー保持信号と、のうち少なくとも一つがハイレベルである場合に、メインリレー42のコイルに通電(メインリレー駆動信号を出力)して該メインリレー42の接点を短絡(オン)させるメインリレー駆動回路21が備えられている。尚、パケット検出部22、ソークタイマIC40、メインリレー駆動回路21はいずれも、副電源電圧Vsを受けて動作するものである。
よって、ACCSW信号、CANパケット検出信号、ソークタイマ起動信号、及びメインリレー保持信号のうち何れかがハイレベルである場合に、メインリレー42がオンして、主電源回路31にバッテリ電圧が供給され、その主電源回路31からエンジン制御マイコン20へ主電源電圧Va,Vbが出力されることとなる。
主電源回路31は、より具体的には、1.5Vの主電源電圧Vaを生成し出力する1.5V系電源回路35と、5Vの主電源電圧Vbを生成し出力する5V系電源回路36とを備えている。
また、電源IC30は、主電源回路31が主電源電圧Va,Vbの出力を開始した時に、その主電源電圧Va,Vbが安定すると見なされる微少時間だけエンジン制御マイコン20にリセット信号を出力する、いわゆるパワーオンリセット機能も備えている。このため、エンジン制御マイコン20は、主電源回路31が主電源電圧Va,Vbの出力を開始すると、初期状態から動作を開始(即ち、起動)することとなる。
一方、ソークタイマIC40は、図示は省略したものの、時間を計測するためのカウンタと、このカウンタのクロック源と、このカウンタのカウント値と比較される設定値が記憶されるレジスタと、カウンタ値とレジスタ内の設定値とを比較してカウンタ値が設定値と一致したらメインリレー駆動回路21へのソークタイマ起動信号をハイレベルに保持する比較回路とを備えている。
そして更に、ソークタイマIC40は、以下の(A)〜(C)の機能を有している。
(A)エンジン制御マイコン20から“タイマスタート指令”を受けると、カウンタ値を0にリセットして、カウンタをスタートさせる。
(B)レジスタには、エンジン制御マイコン20によって任意の設定値が書き込まれる。
(C)比較回路は、エンジン制御マイコン20から“出力リセット指令”を受けると、ソークタイマ起動信号の出力レベルをローレベルにリセットする。
(D)カウンタ値は、エンジン制御マイコン20から読み出すことができる。
上記構成のソークタイマIC40は、IGSW43がオフとなってエンジン制御マイコン20へのIGSW信号がローレベルになると、エンジン制御マイコン20からのタイマスタート指令を受けてカウンタをスタートさせる。つまり、IGSW43のOFF後(換言すればエンジン制御マイコン20によるエンジン制御の停止後)の経過時間を計測開始する。
そして、カウンタのスタート後、そのカウンタ値がレジスタ内の設定値と一致したら(つまり設定値が示す所定時間が経過したら)、そのカウンタ値を履歴として残すと共に、メインリレー駆動回路21へのソークタイマ起動信号をハイレベルに保持する。これにより、メインリレー駆動回路21からメインリレーへのメインリレー駆動信号がハイレベルとなってバッテリ電圧がエンジン制御ECU10内に供給され、エンジン制御マイコン20も起動することとなる。
つまり、本実施形態のエンジン制御ECU10は、IGSW43及びACCSW44が共にOFFされていて当該エンジン制御ECU10にバッテリ電圧が供給されずエンジン制御マイコン20がその動作を停止しているときであっても、IGSW43のOFF後、所定時間が経過したときは、ソークタイマIC40からのソークタイマ起動信号によってバッテリ電圧が供給され、エンジン制御マイコン20が起動するのである。
そして、このようにソークタイマICからのソークタイマ起動信号がハイレベルになること(以下、「ソークタイマ起動要因」ともいう)によってエンジン制御マイコン20が起動した場合、エンジン制御マイコン20は、通常のエンジン制御は行わず、そのソークタイマ起動要因に対応した特定の制御処理である、KEYOFFエバポダイアグ処理を実行する。そして、そのKEYOFFエバポダイアグ処理が終了すると、エンジン制御マイコン20は、ソークタイマIC40へ出力リセット指令を送信することで、ソークタイマ起動信号をローレベルにリセットする。なお、エンジン制御マイコン20は、起動したときにソークタイマIC40のカウンタ値を読み出し、そのカウンタ値に基づいて、自身の起動がソークタイマ起動要因によるものであるか否かを判断する。
なお、エンジン制御マイコン20は、後述するように、自身の動作中はメインリレー駆動回路21へのメインリレー保持信号をハイレベルに保持する。これは、例えばIGSW43のONによりメインリレー駆動回路21へのACCSW信号がハイレベルとなってエンジン制御ECU10へのバッテリ電圧の供給が開始された後に、IGSW43がONであるにも関わらずノイズ等の何らかの要因でACCSW信号がローレベルに変化するおそれがあり、そうなるとエンジン制御中にエンジン制御ECU10へのバッテリ電圧供給が突然遮断されてしまう。このような、エンジン制御ECU10へのバッテリ電圧供給開始後に何らかの要因で意図せずバッテリ電圧の供給が遮断されてしまうのを防ぐために、エンジン制御マイコン20は、バッテリ電圧の供給(ひいては主電源回路31からの主電源電圧Va,Vbの供給)が開始されてその動作を開始したら、メインリレー駆動回路21へのメインリレー保持信号をハイレベルにすることで、動作中にバッテリ電圧の供給が遮断されないようにしているのである。
そのため、ソークタイマ起動要因によりエンジン制御マイコン20が起動したら、ソークタイマIC40からのソークタイマ起動信号がハイレベルになると共に、エンジン制御マイコン20からのメインリレー保持信号もハイレベルとなって、メインリレー駆動回路21からメインリレー駆動信号が出力される。そして、KEYOFFエバポダイアグ処理が終了すると、上記のようにソークタイマ起動信号がローレベルにリセットされると共に、エンジン制御マイコン20からのメインリレー保持信号もローレベルとなって、メインリレー駆動回路21からのメインリレー駆動信号がローレベルとなる。これにより、エンジン制御ECU10へのバッテリ電圧供給が停止され、エンジン制御マイコン20はその動作を停止する。
また、本エンジン制御ECU10は、CANネットワークBUS45を介して、イモビライザーECU(以下、「イモビECU」と略す)46や図示しないドアECU等の他のECUと相互にデータ通信可能に構成されている。
そして、本エンジン制御ECU10が備えるパケット検出部22は、CANネットワークBUS45を介して受信された通信パケットを検出するもの(通信ドライバ)であり、通信パケット受信したとき、その通信パケットのエラーをチェックして、エラーがなかった場合に、メインリレー駆動回路21へのCANパケット検出信号をハイレベルにする。
なお、パケット検出部22は、受信した通信パケットがエンジン制御ECU10宛の通信パケットか否かに関わらず、とにかく、通信パケットが受信されてそれが正常なCANの通信パケットであると判断したら、CANパケット検出信号をハイレベルにしてメインリレー42をONさせ、電源IC30にバッテリ電圧を供給させる。
つまり、IGSW43及びACCSW44が共にOFFされていてエンジン制御ECU10が動作停止しているときに、パケット検出部22によって正常なCAN通信パケットが受信されたならば、バッテリ電圧がエンジン制御ECU10へ供給されると共にエンジン制御マイコン20に主電源電圧Va,Vbが供給され、エンジン制御マイコン20も起動するのである。そして、その起動後に、受信した通信パケットが当該エンジン制御マイコン20宛て(エンジン制御ECU10宛て)のものであるか否かの判断が行われる。
そして、エンジン制御の停止中、パケット検出部22からのCANパケット検出信号がハイレベルになること(以下、「CANウェイクアップ起動要因」ともいう)によってエンジン制御マイコン20が起動した場合、エンジン制御マイコン20は、通常のエンジン制御は行わず、そのCANウェイクアップ起動要因に対応した特定の処理である、CANネットワークBUS45を介して受信されたデータに基づく処理(以下、「CANウェイクアップ処理」ともいう)を実行する。そして、そのCANウェイクアップ処理が終了すると、エンジン制御マイコン20は、ソークタイマIC40へ出力リセット指令を送信することで、ソークタイマ起動信号をローレベルにリセットする。なお、エンジン制御マイコン20は、起動したときに、自身に入力されているCANパケット検出信号のレベルに基づいて、自身の起動がCANウェイクアップ起動要因によるものであるか否かを判断する。
なお、エンジン制御マイコン20は、CANウェイクアップ起動要因によって起動した場合も、ソークタイマ起動要因による起動時と同様、メインリレー駆動回路21へのメインリレー保持信号をハイレベルに保持する。そして、CANウェイクアップ処理が終了して自身の動作を停止する際に、メインリレー保持信号をローレベルにする。これにより、エンジン制御ECU10へのバッテリ電圧供給が停止され、エンジン制御マイコン20はその動作を停止する。
また、パケット検出部22は、例えば、通信パケットを検出後、所定時間だけCANパケット検出信号をハイレベルにしてその後はローレベルにするものとしてもよいし、例えばソークタイマIC40と同じように、通信パケットの検出後、エンジン制御マイコン20でのCANウェイクアップ処理が終了するまではハイレベルに保持し続けるものとしてもよい。
また、CANネットワークBUS45には、外部装置としてのダイアグチェッカ48を接続するためのコネクタ47が設けられている。このダイアグチェッカ48は、コネクタ47に接続することで、このコネクタ47を介してACC電源(ACCSW44のON時に供給される電源)が供給されることにより動作する。そして、例えば作業者等がこのダイアグチェッカ48を操作することで、CANネットワークBUS45を介して、エンジン制御マイコン20内のバックアップRAM6に記憶されたダイアグ情報を読み出したり、エンジン制御マイコン20内のフラッシュROM4のプログラムの書き換え(以下、「リプログ処理」ともいう)を行ったりすることができる。
つまり、本実施形態においては、ダイアグチェッカ48を用いてエンジン制御ECU10に対する各種作業を行う場合は、ダイアグチェッカ48をコネクタ47に接続すると共に、ACCSW44をONにする必要がある。
そして、エンジン制御の停止中であってエンジン制御ECU10にバッテリ電圧が供給されていないときに、リプログ処理を行うためにACCSW44をONにすると、メインリレー駆動回路21に入力されるACCSW信号がハイレベルとなり、メインリレー駆動回路21からのメインリレー駆動信号がハイレベルになって、エンジン制御ECU10へのバッテリ電圧供給が開始される。
このように、エンジン制御の停止中、ACCSW信号がハイレベルになること(以下、「ACCSW起動要因」ともいう)によってエンジン制御マイコン20が起動した場合、エンジン制御マイコン20は、通常のエンジン制御は行わず、そのACCSW起動要因に対応した特定の制御処理(本実施形態ではリプログ処理)を実行する。具体的には、既述のように、ACC電源の供給を受けて動作するダイアグチェッカ48を作業者が操作することにより行われる。具体的には、ダイアグチェッカ48を用いてプログラムの書換要求信号を送信すると共に書き換えるべきプログラムを送信する。エンジン制御マイコン20は、この書換要求信号及び送信されてきたプログラムに基づき、フラッシュROM4の記憶内容を書き換える。
そして、作業者の操作に従って所定のリプログ処理が終了し、作業者がACCSW44をOFFすると、ACCSW信号がローレベルになる。エンジン制御マイコン20は、ACCSW起動要因によって起動した場合も、ソークタイマ起動要因による起動時と同様、メインリレー駆動回路21へのメインリレー保持信号をハイレベルに保持する。そして、リプログ処理が終了してACCSW44がOFFされることによりACCSW信号がローレベルになると、メインリレー保持信号をローレベルにする。これにより、エンジン制御ECU10へのバッテリ電圧供給が停止され、エンジン制御マイコン20はその動作を停止する。
なお、エンジン制御マイコン20は、起動したときに、自身に入力されているACCSW信号のレベルに基づいて、自身の起動がACCSW起動要因によるものであるか否かを判断する。
また、エンジンを始動させるべく、IGSW43をONしたときは、メインリレー駆動回路21へのACCSW信号がハイレベルになると共に、エンジン制御マイコン20へ入力されるIGSW信号もハイレベルになる。これにより、エンジン制御ECU10にバッテリ電圧が供給されてエンジン制御マイコン20がその動作を開始する。このとき、エンジン制御マイコン20は、自身に入力されているIGSW信号がハイレベルになっていることに基づき、IGSW43のONによる起動であるものと判断して、各種のエンジン制御を実行する。
このように、本実施形態のエンジン制御マイコン20では、IGSW43がONされたときにだけバッテリ電圧が供給されてその動作(エンジン制御)が開始されるだけでなく、エンジン制御が停止されてバッテリ電圧が供給されていないときであっても、上述したソークタイマ起動要因、CANウェイクアップ起動要因、及びACCSW起動要因のうちいずれかが生じた場合は、バッテリ電圧が供給されて、起動要因に応じた特定の制御処理(KEYOFFエバポダイアグ処理、CANウェイクアップ処理、又はリプログ処理)が行われる。
本実施形態のエンジン制御マイコン20は、1つの半導体チップ上に形成され、CPUコアを2つ備えたいわゆるデュアルコア構成であると共に、キャッシュメモリを2つ備えている。即ち、エンジン制御マイコン20は、CPUコアとしての第1CPU1及び第2CPU2と、フラッシュROM4と、RAM4と、バックアップRAM6と、A/Dコンバータ7と、CAN送受信回路8と、マイコン入出力ポート9とを備え、これらが内部バス18を介して相互に接続されている。
バックアップRAM6は、IGSW43やACCSW44の状態に関係なく副電源回路32からの副電源電圧Vsの供給を常時受けて動作するものであり、ダイアグ情報等が記憶される。つまり、バッテリ電圧及び副電源回路32が正常である限り、このバックアップRAM6には副電源電圧Vsが供給され続ける。
CAN送受信回路8は、エンジン制御マイコン20がCANネットワークBUS45を介して他のECU或いは外部装置等(ダイアグチェッカ48等)とデータ通信を行うための通信インタフェースとして機能する。
マイコン入出力ポート9は、当該エンジン制御マイコン20とその外部との間で入出力される各種デジタル信号を処理する入出力インタフェースとして機能する。上述のメインリレー保持信号はこのマイコン入出力ポート9からメインリレー駆動回路21へ出力される。また、上述のACCSW信号、CANパケット検出信号、IGSW信号は、このマイコン入出力ポート9を介してエンジン制御マイコン20内へ入力される。また、エンジン制御マイコン20とソークタイマICとの間の通信(既述)も、このマイコン入出力ポート9を介して行われる。
また、A/Dコンバータ7には、エバポパージシステムを構成する圧力センサ25からの信号をはじめ、各種のアナログ信号が入力される。これらアナログ信号は、このA/Dコンバータ7にてデジタルデータに変換された上で、エンジン制御マイコン20内で各種制御処理に用いられる。なお、圧力センサ25からの信号は、KEYOFFエバポダイアグ処理の実行時に用いられる。
フラッシュROM4は、記憶内容を電気的に書き換え可能な周知の不揮発性メモリであり、主として、第1CPU1及び第2CPU2により実行される各種プログラムが記憶されている。RAMは、各CPU1,2が各種プログラムを実行する際の作業領域として用いられ、各種データ等が一時的に記憶される。
また、エンジン制御マイコン20が備えるキャッシュメモリは、具体的には、フラッシュROM4に対応して設けられ、フラッシュROM4内のプログラムが格納されるインストラクションキャッシュメモリ14と、RAM5に対応して設けられ、RAM5内のデータが格納されるデータキャッシュメモリ15である。
このように、本実施形態のエンジン制御マイコン20は、デュアルコア構成であると共に2つのキャッシュメモリを有するキャッシュメモリ搭載構成となっており、IGSW43のON時には、高い処理能力でエンジン制御を行う。
一方、本実施形態のエンジン制御マイコン20は、IGSW43がOFFされているときに上記いずれかの起動要因が生じて起動され、その起動要因に対応した特定の制御処理を実行する際には、実行する特定の制御処理の種類に応じて動作モードを設定するようにしている。
即ち、IGSW43のON時であってエンジン制御を行う際は、第1CPU1及び第2CPU2の双方を用いると共にインストラクションキャッシュメモリ14及びデータキャッシュメモリ15の双方を用いるエンジン制御モードとすることで、最高の処理能力を発揮させてエンジン制御を実行する。
これに対し、IGSW43がOFFされているときに、ソークタイマ起動要因が生じたことによりエンジン制御マイコン20が起動されたときは、エンジン制御マイコン20は特定の制御処理としてKEYOFFエバポダイアグ処理を実行するわけだが、この場合、エンジン制御マイコン20は、自身の動作モードをKEYOFFエバポモードに設定する。このKEYOFFエバポモードとは、2つのCPU(CPUコア)のうち第1CPU1のみを用いると共に、キャッシュメモリはいずれも使用しない動作モードである。
また、IGSW43がOFFされているときに、CANウェイクアップ起動要因が生じたことによりエンジン制御マイコン20が起動されたときは、エンジン制御マイコン20は特定の制御処理としてCANウェイクアップ処理を実行するわけだが、この場合、エンジン制御マイコン20は、自身の動作モードをCANウェイクアップモードに設定する。このCANウェイクアップモードとは、2つのCPU(CPUコア)のうち第1CPU1のみを用いると共に、インストラクションキャッシュメモリ14を使用してデータキャッシュメモリ15は使用しない動作モードである。
また、IGSW43がOFFされているときに、ACCSW起動要因が生じたことによりエンジン制御マイコン20が起動されたときは、エンジン制御マイコン20は特定の制御処理としてリプログ処理を実行するわけだが、この場合、エンジン制御マイコン20は、自身の動作モードをリプログモードに設定する。このリプログモードとは、2つのCPU(CPUコア)の双方を使用すると共に、データキャッシュメモリ15を使用してインストラクションキャッシュメモリ14は使用しない動作モードである。
そして、上記のように動作モードを複数種類に設定(選択)できるよう、本実施形態のエンジン制御マイコン20は、第2CPU制御レジスタ12と、インストラクションキャッシュ制御レジスタ16と、データキャッシュ制御レジスタ17を備えている。
第2CPU制御レジスタ12は、第1CPU1により制御される。第1CPU1は、エンジン制御マイコン20の起動時に、起動要因を判断(つまりどの制御をこれから行うのかを判断)し、起動要因に対応した動作モード(つまりこれから実行する制御処理の種類に対応した動作モード)に従い、第2CPU制御レジスタ12を介して第2CPU2を動作又は休止させる。
例えば、IGSW43がONされてエンジン制御が実行される場合(エンジン制御モード)、又はACCSW起動要因によりリプログ処理が実行される場合(リプログモード)は、2つのCPUを共に使用することから、第1CPU1は、第2CPU制御レジスタ12を介して第2CPU2を動作させる。一方、ソークタイマ起動要因によりKEYOFFエバポダイアグ処理が実行される場合(KEYOFFエバポモード)、又はCANウェイクアップ起動要因によりCANウェイクアップ処理が実行される場合(CANウェイクアップモード)は、第1CPU1は第2CPU制御レジスタ12を介して第2CPU2を休止させる。
インストラクションキャッシュ制御レジスタ16は、各CPU1,2がフラッシュROM4にアクセスしてその記憶内容(プログラム)を読み出すにあたり、インストラクションキャッシュメモリ14を使用するか或いはフラッシュROM4に直接アクセスするかを設定する(切り換える)ものであり、第1CPU1により制御される。
例えば、IGSW43がONされてエンジン制御が実行される場合(エンジン制御モード)は、2つのキャッシュメモリを共に使用することから、各キャッシュ制御レジスタ16,17は、いずれも、対応するキャッシュメモリを使用できるように設定する。また、ACCSW起動要因によりリプログ処理が実行される場合(リプログモード)は、データキャッシュメモリ15のみ使用することから、データキャッシュ制御レジスタ17がデータキャッシュメモリ15を使用できるよう設定する。また、ソークタイマ起動要因によりKEYOFFエバポダイアグ処理が実行される場合(KEYOFFエバポモード)は、2つのキャッシュメモリを共に使用しないことから、各キャッシュ制御レジスタ16,17は、いずれも、対応するキャッシュメモリを使用しないように設定する。また、CANウェイクアップ起動要因によりCANウェイクアップ処理が実行される場合(CANウェイクアップモード)は、インストラクションキャッシュメモリ14のみ使用することから、インストラクションキャッシュ制御レジスタ16がインストラクションキャッシュメモリ14を使用できるよう設定する。
なお、エンジン制御マイコン20において、各CPU1,2、フラッシュROM4、RAM5、各キャッシュメモリ14,15、第2CPU制御レジスタ12、各キャッシュ制御レジスタ16,17は、1.5V系マイコンコア群を構成する要素であり、主電源回路31内の1.5V系電源回路35からの主電源電圧Vaにより動作する。一方、A/Dコンバータ7、CAN送受信回路8、マイコン入出力ポート9は、5V系I/Oを構成する要素であり、5V系電源回路36からの主電源電圧Vbにより動作する。
また、エンジン制御ECU10には、KEYOFFエバポダイアグ処理に関わるアクチュエータを駆動する駆動回路23以外にも、エンジン制御に関わる各種電気負荷を駆動する各種駆動回路(図示略)が設けられている。また、図示は省略しているが、エンジン制御マイコン20には、エンジンの水温を検出する水温センサからの信号や、車両の走行速度(車速)を検出する車速センサからの信号など、車両の運転状態を検出するための各種信号も、A/Dコンバータ7或いはマイコン入出力ポート9を介して入力されるようになっている。
ここで、エバポパージシステム及びKEYOFFエバポダイアグ処理について簡単に説明する。
図2に示すように、エバポパージシステムは、燃料タンク101にエバポ通路103を介して接続されたキャニスタ105と、キャニスタ105からエンジンの吸気管107におけるスロットル弁(スロットルバルブ)109の下流側にエバポガスをパージするためのパージ通路111と、そのパージ通路111を開閉する電磁式のパージ弁113と、キャニスタ105の大気孔105aに新気(新たな大気)を導入するための新気導入通路115と、その新気導入通路115に設けられた大気フィルタ117と、キャニスタ105の大気孔105aと新気導入通路115との接続部分に設けられ、キャニスタ105内に圧力を加えるための電動ポンプ119と、その電動ポンプ119と一体化されて設けられ、上記大気孔105aを開閉させる電磁式の制御弁121と、その制御弁121と共に電動ポンプ119に一体化されて設けられ、キャニスタ105内の圧力を検出する圧力センサ25とを備えている。
このようなエバポパージシステムにおいて、通常は、パージ弁113を閉じると共に、制御弁121を開いてキャニスタ105の大気孔105aを開放しておき、燃料タンク101で発生するエバポガスをキャニスタ105に吸着させる。そして、エンジンの運転状態に応じてパージ弁113を開くと、吸気管107内が負圧であるため、新気導入通路115からキャニスタ105の大気孔105aに流入する空気とともに一度吸着されたエバポガスがキャニスタ105から脱離して、吸気管107へ搬送されてエンジンでの燃焼に供される。
一方、このエバポパージシステムのリークを検出するためのエバポ診断処理は、以下の手順で実施される。
まず、パージ弁113を閉じると共に制御弁121を開き、電動ポンプ119によりキャニスタ105と燃料タンク101に圧力(この例では負圧)を加えた後、制御弁121を閉じる。その後、圧力センサ25によりキャニスタ105及び燃料タンク101の圧力を例えば規定時間毎に測定し、その測定した各圧力値の変化状態から、当該システムの系内にリークがあるか否か(具体的には、燃料タンク101,エバポ通路103,キャニスタ105,及びパージ通路111の何れかに穴があるか否か)を判定する。つまり、系内にリークがあれば、圧力センサ25によって検出される圧力が正常時よりも急速に大気へと近づいていくため、その現象を検知することでリークの発生を検出する。
次に、エンジン制御ECU10へのバッテリ電圧供給が停止されてエンジン制御が停止されているときに上記いずれかの起動条件が生じてエンジン制御マイコン20が起動する際の、動作モードについて、通常のエンジン制御時における動作モードと比較しつつ説明する。
図3(b)に示すように、ACCSW44及びIGSW43がいずれもONでエンジンが動作し、エンジン制御ECU10によりエンジン制御が実行されている間は、図示しないオルタネータからの発電電力が得られ、この発電電力によってバッテリ41の充電も行われる。そのため、エンジン制御ECU10を長時間動作させ続けても、バッテリ電圧は、満充電電圧から低下せずほぼ一定値(十分な電圧)を保持し、バックアップRAM保証限界電圧を下回ることはない。なお、バックアップRAM保証限界電圧とは、エンジン制御マイコン20内のバックアップRAM6の記憶内容を保持するために最低限必要なバッテリ電圧である。バッテリ電圧がこのバックアップRAM保証限界電圧を下回ると、バックアップRAM6の記憶内容が消去されてしまうおそれがある。
一方、図3(a)に示すように、ACCSW44がOFFでIGSW43もOFFの場合は、ユーザーの意思とは関係なく自動的にエンジン制御マイコン20が起動する場合がある。具体的には、ソークタイマ起動要因によるKEYOFFエバポダイアグ処理、又は、CANウェイクアップ起動要因によるCANウェイクアップ処理である。また、ACCSW44がONでIGSW43がOFFの場合は、ACCSW起動要因によるリプログ処理が行われる。
これら3つの制御処理は、エンジン停止中にエンジン制御マイコン20が起動して実行されるものであるため、オルタネータからの発電電力は無く、バッテリ電力を消費することになる。そのため、これら制御処理のためにエンジン制御ECU10を長時間動作させ続けると、バッテリ電圧は、満充電電圧から次第に低下していき、ついにはバックアップRAM保証限界電圧を下回ってしまうおそれがある。そうなると、バックアップRAM6のダイアグ情報が消えてしまうなどエンジン制御ECU10に悪影響を及ぼしてしまうだけでなく、バッテリ電圧により駆動する他の装置等にも同様に悪影響を及ぼしてしまうおそれがある。
ここで、エンジン制御の停止中に実行される上記3つの制御処理は、いずれも、エンジン制御に比べると、処理に要する時間が短くて済んだり、必ずしも高い処理能力を必要としない。つまり、エンジン制御に比べれば、エンジン制御マイコン20の処理能力が低くても十分に対応できる。
図4に、上記3つの特定の制御処理(エンジン停止中にバッテリ電圧により実行される制御処理)について、必要とされる高速動作性とその処理に要する時間を概略的に示す。
CANウェイクアップ処理は、CANネットワークBUS45に流れる通信パケットがパケット検出部22により検出された後にエンジン制御マイコン20が起動して実行されるものである。この処理としては、例えば、エンジン停止中であっても低電力状態で動作し続ける他のECU(例えばイモビECU46など)との間で通信経路故障診断などを行うものがある。この場合、エンジン制御ECU10は、通信相手のECUがデータ送受信を開始する前に、CANネットワークへの加入手続きを所定の短時間(一般的に数十〜数百ms以内)に行う必要があるため、エンジン制御マイコン20には高速動作性能が要求される。但し、処理時間としては通信データ(通信パケット)のやり取りであり、数秒程度で完了する。
リプログ処理は、ACCSW44をONとして、エンジン制御マイコン20内のフラッシュROM4の記憶内容を書き換えるものである。リプログ処理に掛かる作業者の工数を削減するためには高速動作性を追及してもよいが、リプログ処理の速度は、フラッシュROM4自体の書き換え速度やCANの通信速度等に影響されるため、いかにマイコン内のCPU処理能力を高くしてもあまり効果が期待できない。そのため、CANウェイクアップ処理ほどの高速動作性能は要求されない。また、処理に要する時間は、フラッシュROM4の容量やCAN送受信回路8の性能等にもよるが、一般的に数分程度である。
KEYOFFエバポダイアグ処理は、エンジン停止後、ソークタイマIC40により数時間後に自動的に起動して実行される処理である。この処理は、高い性能は必要ないが、処理に要する時間は、電動ポンプ119の動作や圧力変化を測定する時間等に多くの時間を要する。そのため、燃料タンク101に残っている燃料の容量にもよるが、数十分程度の処理時間を要する。
そこで、本実施形態のエンジン制御ECU10では、エンジン制御の停止中に上記いずれの起動条件によって上記いずれかの制御処理を実行する際は、エンジン制御マイコン20が、エンジン制御時の動作モード(エンジン制御モード)よりも処理能力の低い(換言すれば消費電力が低い)動作モードに設定するようにしている。
図5は、エンジン制御マイコン20の動作パターンを各種制御処理別に説明する説明図であり、(a)はCPU(CPUコア)の動作パターン、(b)はキャッシュメモリの動作パターンを示す。
図5に示すように、IGSW43のON時のエンジン制御では、2つのCPU(第1CPU1,第2CPU2)を共に使用し、インストラクション(ROM)キャッシュメモリ14及びデータ(RAM)キャッシュメモリ15を共にONとする(使用する)ことで、最高動作性能で高いリアルタイム応答性を実現する。即ち、エンジン制御中はオルタネータで発電しており、その発電量はエンジン制御マイコン20の消費する電力よりも十分に大きいため、高性能を追求する通常動モードに設定する。
一方、エンジン制御停止中にソークタイマ起動要因が生じたことにより実行されるKEYOFFエバポダイアグ処理は、既述の通り低速動作でよいが数十分程度とかなり長い時間バッテリ駆動が必要となる。そのため、CPUは1個のみ(第1CPU1のみ)使用し、キャッシュメモリはいずれもOFFとする(使用しない)、消費電力が最低となる動作モード(KEYOFFエバポモード)に設定する。つまり、処理性能を低く抑える代わりにバッテリ消費電力の低減を追及する。
CANウェイクアップ処理は、既述の通り高速動作が必要だが、処理時間は数秒程度と短い。この場合、エンジン制御時の動作モード(エンジン制御モード)と同様に、CPUを2個使用すると共に各キャッシュメモリ14,15を共にONとする(使用する)高速動作モードとしてもよいのだが、2つのCPU1,2に対し、CAN通信のI/OはCAN送受信回路8内に1つあるだけである。そのため、第1CPU1と第2CPU2がI/O資源アクセスで競合しないように、排他処理する必要がある。従って、仮に第1CPU1と第2CPU2を共に使用したとしても、CANのI/Oへアクセスできるのはどちらか片方のCPUであるため、本実施形態では、第1CPU1のみを使用することとした。
またキャッシュメモリについては、一般的にRISCプロセッサはメモリマップドI/O方式のアーキテクチャを採用しており、I/Oへのアクセスも一つのメモリとしてアクセスする。その場合I/Oアクセスはキャッシュメモリ非対象領域として元々設定されているため(ハードウェアでデータが自動的に変わるI/Oレジスタのキャッシュは無意味)、データキャッシュメモリを有効としてもあまり高速動作性能は実現されない。そのため、本実施形態では、データ(RAM)キャッシュメモリ15は低消費電力化のためOFF(使用しない)とし、インストラクション(ROM)キャッシュメモリ14のみON(使用)するようにした。
リプログ処理は、リプログ作業者の工数削減においては高速動作が有効であるため、2つのCPU(第1CPU1,第2CPU2)を共に使用する。これにより、例えば、第1CPU1でフラッシュROM4を書き換え、第2CPU2でベリファイチェックを行うなど、マルチコア構成の効果は得られる。しかし、キャッシュ対象であるフラッシュROM4の値(記憶内容)が書き換えられるというリプログ処理の性質上、ROMキャッシュメモリ14を使用することはほとんど無意味である。そのため、無駄な電力消費を抑えるため、ROMキャッシュメモリ14はOFFとした。一方、リプログ処理を行う際は、一般的に、フラッシュROM4に書き込むデータをRAM5にバッファリングしているため、そのRAM5へのアクセスが高速化されれば、結果として書き換え時間の短縮が図れる。そのため、RAMキャッシュメモリ15をONとした。
図6に、本実施形態のエンジン制御マイコン20にて実行される動作モード設定処理のフローチャートを示す。この動作モード設定処理は、エンジン制御マイコン20に主電源回路31からの主電源電圧Va,Vbが供給されてパワーONリセットされた後に実行されるものであり、パワーオンリセット後、この動作モード設定処理が開始されると、まず、一連のイニシャル処理(マイコンハードウェアの各種初期設定)が行われる(S110)。
続いて、起動要因取得処理が行われる(S120)。これは、エンジン制御マイコン20自身がどのような起動要因によって起動したのかを取得する処理である。このとき、エンジン制御マイコン20に入力されるIGSW信号がハイレベルであれば、IGSW43のON(以下、「IGSW起動要因」ともいう)による起動であると判断する。また、エンジン制御マイコン20に入力されるIGSW信号がローレベルであってACCSW信号がハイレベルであれば、ACCSW起動要因による起動であると判断する。また、パケット検出部22からエンジン制御マイコン20に入力されるCANパケット検出信号がハイレベルであれば、CANウェイクアップ起動要因による起動であると判断する。また、ソークタイマIC40内のカウンタ値を読み出して、その値が所定の設定値に達している場合は、ソークタイマ起動要因による起動であると判断する。そして、このS120の起動要因取得処理により取得された起動要因に基づき、S130以下の処理が実行される。
なお、本実施形態では、上記4つの起動要因に優先順位が設定されている。具体的には、優先順位の最も高いのがIGSW起動要因、次に高いのがACCSW起動要因、次に高いのがCANウェイクアップ起動要因、そして最も低いのがソークタイマ起動要因である。この優先順位は、各起動要因の発生により実行される特定の制御処理の消費電力が大きい順(換言すれば、必要とする処理能力の大きい順)に設定されている。即ち、最も優先度の高い制御処理がエンジン制御であり、次に優先度の高い処理はリプログ処理であり、その次に優先度の高い処理はCANウェイクアップ処理であり、最も優先度の低い処理はKEYOFFエバポダイアグ処理である。
S120の起動要因取得処理は、上述した4つの起動要因の全てについてその有無を判断してもよいが、設定されている優先順位(詳細は後述)の順に起動要因の有無を調べて、起動要因が取得された時点でS130以降の処理に進むようにしてもよい。
S120の処理により起動要因が取得されると、まず、最も優先順位の高い起動要因であるIGSW起動要因が取得されたか否か、即ち、IGSW3がONされてIGSW信号がハイレベルとなっていたか否かが判断される(S130)。ここで、IGSW起動要因が取得されていたならば(S130:YES)、エンジン制御マイコン20の動作モードとしてエンジン制御モードを選択(設定)し(S140)、再びS120に戻る。これにより、エンジン制御マイコン20は、第1CPU1及び第2CPU2の双方をONする(使用する)と共にROMキャッシュメモリ14及びRAMキャッシュメモリ15の双方をONする(使用する)動作モードとなり、最高の処理能力を発揮してエンジン制御を実行することができる。
一方、IGSW起動要因が取得されていない場合は(S130:NO)、次に優先順位の高い起動要因であるACCSW起動要因が取得されたか否か、即ち、IGSW43がOFFでACCSW44がONであってACCSW信号がハイレベルとなっていたか否かが判断される(S150)。ここで、ACCSW起動要因が取得されていたならば(S150:YES)、エンジン制御マイコン20の動作モードとしてリプログモードを選択(設定)し(S160)、再びS120に戻る。これにより、エンジン制御マイコン20は、第1CPU1及び第2CPU2の双方をONする(使用する)と共にRAMキャッシュメモリ15をONしてROMキャッシュメモリ14はOFFする動作モードとなる。このリプログモードは、リプログ処理に必要な性能を確保しつつエンジン停止中のバッテリ消費電力を効果的に低減することが可能なモードである。
また、ACCSW起動要因も取得されていない場合は(S150:NO)、次に優先順位の高い起動要因であるCANウェイクアップ起動要因が取得されたか否か、即ち、IGSW43及びACCSW44が何れもOFFであってパケット検出部22からのCANパケット検出信号がハイレベルとなっていたか否かが判断される(S170)。ここで、CANウェイクアップ起動要因が取得されていたならば(S170:YES)、エンジン制御マイコン20の動作モードとしてCANウェイクアップモードを選択(設定)し(S180)、再びS120に戻る。これにより、エンジン制御マイコン20は、2つのCPU1,2のうち第1CPU1のみをONすると共にROMキャッシュメモリ14を使用してRAMキャッシュメモリ15は使用しない動作モードとなる。このCANウェイクアップモードは、CANウェイクアップ処理に必要な性能を確保しつつエンジン停止中のバッテリ消費電力を効果的に低減することが可能なモードである。
また、CANウェイクアップ起動要因も取得されていない場合は(S170:NO)、次に優先順位の高い起動要因であるソークタイマ起動要因が取得されたか否か、即ち、IGSW43及びACCSW44が何れもOFFであってソークタイマIC40のカウンタ値が所定の設定値に達していたか否かが判断される(S190)。ここで、ソークタイマ起動要因が取得されていたならば(S190:YES)、エンジン制御マイコン20の動作モードとしてKEYOFFエバポモードを選択(設定)し(S200)、再びS120に戻る。これにより、エンジン制御マイコン20は、2つのCPU1,2のうち第1CPU1のみを用いると共にいずれのキャッシュメモリも使用しない動作モードとなる。このKEYOFFエバポモードは、KEYOFFエバポダイアグ処理に必要な性能を確保しつつエンジン停止中のバッテリ消費電力を効果的に低減することが可能なモードである。
このように、S120の起動要因取得後、その取得した起動要因に基づいて何れかの動作モードに設定されると、再びS120以下の処理が行われる。つまり、エンジン制御マイコン20は、起動後にその起動要因に基づいて動作モードを設定した後も、起動要因を繰り返し取得すると共にその取得した起動要因に応じた動作モードに設定する。
これにより、例えばリプログモードに設定された後にIGSW43がONされた場合は、エンジン制御モードに設定変更される。この場合、実行中のリプログ処理は継続される。また例えば、KEYOFFエバポモードに設定されてKEYOFFエバポダイアグ処理が実行されているときにACCSW44がONされた場合は、リプログモードに設定変更されることになる。この場合も、実行中のKEYOFFエバポダイアグ処理はそのまま継続される。
このように、ある動作モードが設定されている場合に、その動作モードよりも優先順位の高い動作モードに設定すべき起動要因が生じた場合は、その優先順位の高い起動要因に対応した動作モードに設定変更する。逆に、現在の動作モードよりも優先順位の低い起動要因が同時に生じた場合は、動作モードの設定変更は行わない。つまり、起動要因が複数生じて複数の制御処理を実行する必要のある場合は、その複数の起動要因(複数の制御処理)のうち最も優先順位の高い起動要因に対応した動作モードに設定されるのである。
以上説明したように、本実施形態のエンジン制御ECU10は、エンジン制御マイコン20が、CPUコアを2つ有するいわゆるデュアルコア構成になっていると共に、インストラクション(ROM)キャッシュメモリ14及びデータ(RAM)キャッシュメモリ15を備えたキャッシュメモリ搭載構成となっている。
そして、IGSW43のON(IGSW起動要因の発生)によりエンジン制御マイコン20が起動した場合は、エンジン制御マイコン20は2つのCPU1,2及び2つのキャッシュメモリ14,15をフルに使用して最高の処理能力を発揮できるエンジン制御モードに設定される。
一方、IGSW43がOFFされてエンジン制御が停止されているときにも、所定の起動要因が発生した場合は、エンジン制御ECU10にバッテリ電圧が供給されてエンジン制御マイコン20が起動し、バッテリ電圧による所定の制御処理(起動要因に応じた特定の制御処理)が実行される。
この場合の起動要因として、本実施形態では、ACCSW起動要因、CANウェイクアップ起動要因、及びソークタイマ起動要因があり、これらは上記の順で優先順位が設定されている。そして、いずれかの起動要因が発生した場合、エンジン制御マイコン20は、その起動要因に対応した特定の制御処理を実行すべく、自身をその起動要因に対応した(その特定の制御処理に対応した)動作モードに設定する。また、複数の起動要因が同時に発生している場合は、優先順位の最も高い起動要因に対応した動作モードに設定する。
従って、本実施形態のエンジン制御ECU10によれば、エンジン制御マイコン20は、エンジン制御の停止中にIGSW起動要因以外の起動要因が発生して特定の制御処理を実行する際、エンジン制御時よりも消費電力の低い動作モードで動作するため、エンジン制御停止中にバッテリ電圧により特定の制御処理を行う際の消費電力を効果的に低減することができる。
しかも、起動要因の種類毎に(実行すべき特定の制御処理の種類に応じて)その起動要因に適した(その制御処理に適した)動作モードが設定されるため、起動要因毎により効果的な消費電力の低減が可能となる。
具体的には、本実施形態では、エンジン制御停止中に実行される特定の制御処理が3種類あるが、各制御処理毎に、その制御処理を実行するのに必要十分な処理能力が得られると共に消費電力を効果的に低減できるよう、CPU(コア)の使用数やROMキャッシュメモリ14及びRAMキャッシュメモリ15の使用有無が細かく設定されている。
デュアルコア構成及びキャッシュメモリ搭載構成の高性能マイコンは、シングルコア及びキャッシュメモリを搭載しないマイコンに比べると当然ながら消費電力は大きい。そこで、本実施形態のように、CPU(コア)の使用数及びキャッシュメモリの使用有無を切り換えて消費電力の低い動作モードを複数種類設定することで、実行する特定の制御処理毎に、エンジン制御マイコン20に必要十分な処理能力を発揮させつつその消費電力を効果的に低減することが可能となる。
特に、KEYOFFエバポダイアグ処理は、処理完了まで長時間を要するが、使用するCPUコアは第1CPU1のみでキャッシュメモリは全く使用しないという、消費電力の最も低い(処理能力の最も低い)動作モードに設定されるため、長時間処理が実行されてもバッテリ電圧の低下を最小限に抑えることが可能となる。
また、起動要因毎に優先順位を設定していることにより、起動要因が複数発生して複数の制御処理を行う必要がある場合であっても、その複数の制御処理がいずれも適切に実行されるような動作モード(上記実施形態では、実行される複数の制御処理のうち最も高い処理能力を必要とする制御処理に対応した動作モード)に設定される。そのため、起動要因が複数発生しても、消費電力を低減しつつ各制御処理を適切に実行することができる。
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、第1CPU1及び第2CPU2はいずれも本発明のCPUコアに相当し、ソークタイマIC40は本発明の計時手段に相当し、パケット検出部22は本発明の受信検知手段に相当する。また、第1CPU1,第2CPU制御レジスタ12,及び各キャッシュ制御レジスタ16,17により本発明の動作モード設定手段が構成され、メインリレー駆動回路21,電源IC30,及びメインリレー42により本発明の電源制御手段が構成される。
また、IGSW43をONすることにより生じるハイレベルのIGSW信号及びACCSW信号は、本発明の起動用主スイッチ信号に相当し、ACCSW44をONすることにより生じるハイレベルのACCSW信号は、本発明の起動用副スイッチ信号に相当する。
さらに、IGSW起動要因を除く他の3つの起動要因(ACCSW起動要因、ソークタイマ起動要因、CANウェイクアップ起動要因)はいずれも本発明の起動条件に相当する。また、エンジン制御モードは本発明の通常動作モードに相当し、リプログモード、CANウェイクアップモード、及びKEYOFFエバポモードはいずれも本発明の低消費電力モードに相当する。このうち特に、リプログモードは、本発明のキャッシュメモリ使用制限モード及び第3低消費電力モードに相当し、CANウェイクアップモードは、本発明のキャッシュメモリ使用制限モード、コア使用制限モード、コア最小使用モード、及び第2低消費電力モードに相当し、KEYOFFエバポモードは、本発明のキャッシュメモリ使用制限モード、コア使用制限モード、コア最小使用モード、及び第1低消費電力モードに相当する。
[第2実施形態]
上記第1実施形態では、エンジン制御ECUに搭載されるエンジン制御マイコンが、CPUコアを2つ(第1CPU1及び第2CPU2)備えたデュアルコア構成のマイコンである場合を例に挙げて説明したが、本実施形態では、CPUコアは1つのみのシングルコア構成のマイコンをエンジン制御マイコンとして用いる場合について説明する。
本実施形態のエンジン制御ECUは、上記第1実施形態のエンジン制御ECU10と比較して、ハードウェア的には、エンジン制御マイコンが備えるCPUコアの数が異なるだけである。即ち、図7に示すように、本実施形態のエンジン制御マイコン60は、CPUコア(CPU61)を1つ備えている。そのため、第1実施形態のエンジン制御マイコン20が備えていた第2CPU制御レジスタ12も有しない。
本実施形態のエンジン制御マイコン60における、CPU61以外の他の構成については、第1実施形態のエンジン制御マイコン20と同じであるため、第1実施形態と同じ符号を付し、その詳細説明を省略する。
図8に、本実施形態のエンジン制御マイコン20にて実行される動作モード設定処理のフローチャートを示す。この動作モード設定処理において、S210,S220,S230,S250,S270,S290の各処理は、それぞれ、第1実施形態の動作モード設定処理(図6参照)におけるS110,S120,S130,S150,S170,S190の処理と全く同じであるため、これら各処理についてはその詳細説明を省略する。
図8の動作モード設定処理において、S220の処理により起動要因が取得されると、まず、IGSW起動要因が取得されたか否かが判断される(S230)。ここで、IGSW起動要因が取得されていたならば(S230:YES)、エンジン制御マイコン60の動作モードとしてエンジン制御モードを選択(設定)し(S240)、再びS220に戻る。これにより、エンジン制御マイコン60は、ROMキャッシュメモリ14及びRAMキャッシュメモリ15の双方をONする(使用する)動作モードとなり、最高の処理能力を発揮してエンジン制御を実行することができる。
一方、IGSW起動要因が取得されていない場合は(S230:NO)、ACCSW起動要因が取得されたか否かが判断される(S250)。ここで、ACCSW起動要因が取得されていたならば(S250:YES)、エンジン制御マイコン20の動作モードとしてリプログモードを選択(設定)し(S260)、再びS220に戻る。これにより、エンジン制御マイコン60は、RAMキャッシュメモリ15をONしてROMキャッシュメモリ14はOFFする動作モードとなる。つまり、リプログするデータ(プログラム)がバッファリングされるRAM5に対応したキャッシュメモリ(RAMキャッシュメモリ15)のみをONとするのである。このリプログモードは、リプログ処理に必要な性能を確保しつつエンジン停止中のバッテリ消費電力を効果的に低減することが可能なモードである。
また、ACCSW起動要因も取得されていない場合は(S250:NO)、CANウェイクアップ起動要因が取得されたか否かが判断される(S270)。ここで、CANウェイクアップ起動要因が取得されていたならば(S270:YES)、エンジン制御マイコン60の動作モードとしてCANウェイクアップモードを選択(設定)し(S280)、再びS220に戻る。これにより、エンジン制御マイコン60は、ROMキャッシュメモリ14を使用してRAMキャッシュメモリ15は使用しない動作モードとなる。このCANウェイクアップモードは、CANウェイクアップ処理に必要な性能を確保しつつエンジン停止中のバッテリ消費電力を効果的に低減することが可能なモードである。
また、CANウェイクアップ起動要因も取得されていない場合は(S270:NO)、ソークタイマ起動要因が取得されたか否かが判断される(S290)。ここで、ソークタイマ起動要因が取得されていたならば(S290:YES)、エンジン制御マイコン60の動作モードとしてKEYOFFエバポモードを選択(設定)し(S300)、再びS220に戻る。これにより、エンジン制御マイコン60は、いずれのキャッシュメモリも使用しない、消費電力の最も小さい動作モードとなる。このKEYOFFエバポモードは、KEYOFFエバポダイアグ処理に必要な性能を確保しつつエンジン停止中のバッテリ消費電力を効果的に低減することが可能なモードである。
なお、本実施形態のエンジン制御マイコン20はシングルコア構成であるため、いずれの動作モードもCPU61を使用することに変わりはない。そのため、上記各動作モードの違いは、キャッシュメモリの使用有無(より詳しくはROMキャッシュメモリ14及びRAMキャッシュメモリ15の使用有無)による違いのみである。
また、起動要因に基づいて動作モードを設定した後も、起動要因を繰り返し取得すると共にその取得した起動要因に応じた動作モードに設定することは、上記第1実施形態と同様である。
従って、本実施形態のようにシングルコア構成のエンジン制御マイコン60を備えたエンジン制御ECUにおいても、キャッシュメモリの使用有無が異なる複数の動作モードを用意すると共に、起動要因毎に適切な動作モードを設定するようにしている。そのため、第1実施形態と同様、エンジン制御停止中に実行される各特定の制御処理毎に、その特定の制御処理を実行するのに必要十分な処理能力が得られると共に消費電力を効果的に低減することができる。
[第3実施形態]
次に、エンジン制御ECUに搭載されるエンジン制御マイコンが、CPUコアを3つ備えたマルチコア構成である場合について説明する。
本実施形態のエンジン制御ECUは、上記第1実施形態のエンジン制御ECU10と比較して、ハードウェア的には、エンジン制御マイコンが備えるCPUコアの数が異なるだけである。即ち、図9に示すように、本実施形態のエンジン制御マイコン80は、CPUコアを3つ(第1CPU81、第2CPU2、第3CPU3)備えている。このうち、第1CPU81は、エンジン制御マイコン80の動作時には常に動作するものであり、起動時の起動要因に応じて、他の第2CPU2及び第3CPU3を使用するか否かを切り換える。この切り換えは、第1CPU81が、第2CPU制御レジスタ12及び第3CPU制御レジスタ13を制御することにより実現される。
本実施形態のエンジン制御マイコン80における、各CPU81,2,3及び各CPU制御レジスタ12,13以外の他の構成については、第1実施形態のエンジン制御マイコン20と同じであるため、第1実施形態と同じ符号を付し、その詳細説明を省略する。
図10に、本実施形態のエンジン制御マイコンで実行される各種制御における、CPUコアの使用数を示す。図10に示すように、KEYOFFエバポダイアグ処理及びCANウェイクアップ処理の場合はCPUコアを1つのみ(第1CPU81のみ)使用し、リプログ処理の場合はCPUコアを2つ(第1CPU81及び第2CPU2)使用することは、上記第1実施形態の場合と同様である。
一方、第1実施形態と異なるのは、エンジン制御時におけるCPUコアの使用数である。本実施形態では、エンジン制御時には、全てのCPUコア(第1CPU81、第2CPU2、第3CPU3)を使用する。
エンジン制御においては、燃料噴射制御、点火時期制御、さらにはエンジン回転数を算出する制御など、数十種類にものぼるタスクを並行して処理することが要求される。そこで、エンジン制御時には全てのCPUコアをONする(使用する)ことで、例えば第1CPU81が混合気に着火する点火時期制御を行い、同時に第2CPU2がエンジン回転数の算出を行い、第3CPU3も同時に電子スロットルの制御を行うなど、CPUコアをフルに使用した並列動作実行が可能となり、高いリアルタイム応答性を実現できる。
そして、このようにエンジン制御では最高動作性能を実現する一方、エンジン停止中のバッテリ電圧による特定の制御処理においては、要求される動作性能に応じたCPUコア数を割り当てることで、消費電力の低減も実現できる。
図11に、本実施形態のエンジン制御マイコン80にて実行される動作モード設定処理のフローチャートを示す。この動作モード設定処理において、S310,S320,S330,S350,S370,S390の各処理は、それぞれ、第1実施形態の動作モード設定処理(図6参照)におけるS110,S120,S130,S150,S170,S190の処理と全く同じであるため、これら各処理についてはその詳細説明を省略する。
図11の動作モード設定処理において、S320の処理により起動要因が取得されると、まず、IGSW起動要因が取得されたか否かが判断される(S330)。ここで、IGSW起動要因が取得されていたならば(S330:YES)、エンジン制御マイコン80の動作モードとしてエンジン制御モードを選択(設定)し(S340)、再びS320に戻る。これにより、エンジン制御マイコン80は、3つのCPUコア全てをONする(使用する)と共にROMキャッシュメモリ14及びRAMキャッシュメモリ15の双方もONする(使用する)動作モードとなり、最高の処理能力を発揮してエンジン制御を実行することができる。
一方、IGSW起動要因が取得されていない場合は(S330:NO)、ACCSW起動要因が取得されたか否かが判断される(S350)。ここで、ACCSW起動要因が取得されていたならば(S350:YES)、エンジン制御マイコン80の動作モードとしてリプログモードを選択(設定)し(S360)、再びS320に戻る。これにより、エンジン制御マイコン80は、第1CPU81及び第2CPU2をONして第3CPU3はOFFすると共にRAMキャッシュメモリ15をONしてROMキャッシュメモリ14はOFFする動作モードとなる。
また、ACCSW起動要因も取得されていない場合は(S350:NO)、CANウェイクアップ起動要因が取得されたか否かが判断される(S370)。ここで、CANウェイクアップ起動要因が取得されていたならば(S370:YES)、エンジン制御マイコン80の動作モードとしてCANウェイクアップモードを選択(設定)し(S380)、再びS320に戻る。これにより、エンジン制御マイコン80は、第1CPU81をONして第2CPU2及び第3CPU3はOFFすると共にROMキャッシュメモリ14をONしてRAMキャッシュメモリ15はOFFする動作モードとなる。
また、CANウェイクアップ起動要因も取得されていない場合は(S370:NO)、ソークタイマ起動要因が取得されたか否かが判断される(S390)。ここで、ソークタイマ起動要因が取得されていたならば(S390:YES)、エンジン制御マイコン80の動作モードとしてKEYOFFエバポモードを選択(設定)し(S400)、再びS320に戻る。これにより、エンジン制御マイコン80は、第1CPU81をONして第2CPU2及び第3CPU3はOFFすると共にいずれのキャッシュメモリも使用しない、消費電力の最も小さい動作モードとなる。
従って、本実施形態のようにマルチコア構成のエンジン制御マイコン80を備えたエンジン制御ECUにおいても、第1実施形態と同様、エンジン制御停止中に実行される各特定の制御処理毎に、その特定の制御処理を実行するのに必要十分な処理能力が得られると共に消費電力を効果的に低減することができる。
[変形例]
以上、本発明の実施の形態について説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記第1実施形態において、エンジン停止中(IGSW43がOFF中)に何らかの起動要因にてエンジン制御マイコンが起動する際、バッテリ電圧をみて、その電圧がある閾値よりも低下している場合には、起動要因に関係なく消費電力のより低い動作モードに設定するようにしてもよい。図12に基づいてより具体的に説明する。
図12の動作モード遷移処理は、エンジン停止中に起動要因が発生してエンジン制御マイコンが起動した後、定期的に実行されるものである。この処理が開始されると、まず、エンジン制御マイコンが備えるA/Dコンバータ7によるバッテリ電圧のA/D変換処理が行われる(S410)。そして、得られたA/D変換結果がRAM6に格納される(S420)。
そして、バッテリ電圧のA/D値、即ちRAM6に格納されたバッテリ電圧のA/D変換結果が、所定の基準閾値(本例では10V)未満であって、且つ、IGSW43がOFFされているか否かが判断される(S430)。この基準閾値は、図3で説明したバックアップRAM保証限界電圧に相当するものである。また、このS430の処理は本発明のバッテリ電圧判断手段が実行する処理に相当する。
このとき、バッテリ電圧が基準閾値以上であるか、又はIGSW43がONされているならば(S430:NO)、通常の動作モード設定処理(図6)に移行する(S440)。一方、バッテリ電圧が基準閾値未満であって且つIGSW43がOFFされているならば(S430:YES)、電圧低下時動作モードを選択する(S450)。つまり、消費電力の最も小さい動作モードであってKEYOFFエバポモードと同じモードに変更するのである。
バッテリ電圧が低い場合に最も懸念される事項の1つが、バッテリ電圧による電源(詳しくはバッテリ電圧から生成される副電源電圧Vs)で動作(記憶)しているバックアップRAM6の記憶内容(ダイアグ情報)が消えてしまうことである。そこで、バッテリ電圧が低い場合は消費電力の最も小さい動作モードを選択する。そして、その後バッテリ電圧が十分に充電された後に、再び図6の動作モード設定手段に従って起動要因に対応した最適な動作モードを選択する。
従って、上記のようにバッテリ電圧が基準閾値以下の場合は動作モードを電圧低下時動作モードに設定することで、バッテリ41の電圧低下を抑制し、エンジン制御停止中にバッテリ41の電源により動作している他の装置等(バックアップRAM6等)の動作に悪影響が及ぶのを防止することができる。
また、上記各実施形態では、いずれも、キャッシュメモリとしてインストラクション(ROM)キャッシュメモリ14及びデータ(RAM)キャッシュメモリ15を用いた場合について説明したが、CPUコアを複数有すると共にキャッシュメモリを1つ用いたエンジン制御マイコン、或いは、キャッシュメモリを3つ以上用いたエンジン制御マイコンにおいても、本発明を適用できる。
また、マルチコア構成のマイコンの場合、2コアだけでなく、将来的には、3コア、4コア、8コア構成などを採用していくことが予想される。そのような複数コアの場合であっても、上記各実施形態と同じように、特定の制御処理毎に、その制御処理に必要な処理能力や所要時間等を考慮して適切な(最適な)動作モードを選択することで、各制御処理を適切に実行させつつ消費電力を低減することが可能となる。
1,81…第1CPU、2…第2CPU、3…第3CPU、4…フラッシュROM、5…RAM、6…バックアップRAM、7…A/Dコンバータ、8…CAN送受信回路、9…マイコン入出力ポート、10…エンジン制御ECU、12…第2CPU制御レジスタ、13…第3CPU制御レジスタ、14…インストラクションキャッシュメモリ、15…データキャッシュメモリ、16…インストラクションキャッシュ制御レジスタ、17…データキャッシュ制御レジスタ、18…内部バス、20,60,80…エンジン制御マイコン、21…メインリレー駆動回路、22…パケット検出部、23…駆動回路、25…圧力センサ、30…電源IC、31…主電源回路、32…副電源回路、35…1.5V系電源回路、36…5V系電源回路、40…ソークタイマIC、41…バッテリ、42…メインリレー、43…IGSW、44…ACCSW、45…CANネットワークBUS、46…イモビライザーECU、47…コネクタ、48…ダイアグチェッカ、101…燃料タンク、103…エバポ通路、105…キャニスタ、105a…大気孔、107…吸気管、111…パージ通路、113…パージ弁、115…新気導入通路、117…大気フィルタ、119…電動ポンプ、121…制御弁