【実施例1】
【0021】
図3は、本実施例における電子制御装置の動作の概略を説明する図の一例である。
(1)本実施例の電子制御装置は、他の電子制御装置から収集した車両情報からアプリを決定するためのソフト切替情報を作成しSRAM19に記憶する。このソフト切替情報を参照値と称することにする。ソフト切替情報は定期的に更新される。CPU11は、ソフト切替情報を適宜参照しながらプログラムに含まれるアプリA〜Dを選択して実行する(
図3(a))。ソフト切替情報を参照したCPU11は、それを前回値としてSRAM19に格納する。
(2)参照値のソフト切替情報は定期的に更新される(ソフト切替情報1から2に更新されたものとする)。CPU11はアプリA〜Dを選択する際に、参照値のソフト切替情報2をSRAM19から読み出すと共に、前回値のソフト切替情報2をSRAM19から読み出す。そして、両者を比較して参照値が前回値と一致した場合に、アプリA〜Dを選択して制御を実行する(
図3(b))。こうすることで、ソフト切替情報が変化していない場合にだけアプリA〜Dを実行するので、当該車両では想定されていない不適合な装備とプログラムの組み合わせが発生することを低減できる。参照値が前回値と一致した場合、CPU11は参照値を前回値としてSRAM19に格納する(前回値がソフト切替情報2になる。)。
(3)また、ソフト切替情報2がソフト切替情報3に更新されたが、ソフト切替情報3がソフト切替情報2に対し変化していたとする。この場合、参照値と前回値が一致しないので、CPU11はアプリA〜Dを選択することなく、適切なフェールセーフ処理を行うことができる(
図3(c))。すなわち、本来変化しないはずのソフト切替情報が変化したことを検出できたので、不測の要因によりSRAM19の記憶内容に異常が生じたと判定できる。
【0022】
したがって、本実施例の電子制御装置によれば、想定されていない不適合な装備とプログラムの組み合わせが発生することを低減できるだけでなく、参照値に異常が生じたことを直接、検出することができる。また、前回値と参照値を直接比較するので、ソフト切替情報のビット列などから異常を検出するよりも確実に変化を検出できる。
【0023】
〔構成例〕
図4は、車載システムの概略構成図の一例を示す。車載システム500は、CAN(Controller Area Network)等の車載ネットワークに各種の電子制御装置が接続された構成となっている。電子制御装置は、ECU(Electronic Control Unit)とも呼ばれ、図では電源ECU100、エンジンECU200及びT/M_ECU300が接続されている。エンジンECU200及びT/M_ECU300は、電源ECU100がアプリを選択するための車両情報を送信するノードであればよく、図示するECUの他にECUが存在してもよい。電源ECU100は、特許請求の範囲の電子制御装置に相当するが、他のECUに対しても以下の実施例にて説明する制御を適用可能である。
【0024】
電源ECU100は、CPU11、RAM12、フラッシュメモリ13、I/O14、及び、CANコントローラ15を有している。また、I/O14にはエンジンSW16、ストップランプスイッチ17及びシフトポジションセンサ18が接続されている。CPU11はSRAM(Static RAM)19を有している。SRAM19は例えばレジスタ又はキャッシュメモリである。SRAMはフリップフロップを記憶素子とし、DRAM(Dynamic RAM)と比較すると高速なメモリである。SRAM19はCPU11内にあることが一般的だが、バスを介してCPU11と接続されていてもよい。SRAM19は本来は揮発性メモリだが、電源ECU100にはIG−OFFでもバッテリ400から電力が供給されているので、不揮発メモリとして扱うことができる。
【0025】
SRAM19にはソフト切替情報が、フラッシュメモリ13にはプログラム9がそれぞれ記憶されている。ソフト切替情報はRAM12やフラッシュメモリ13などの不揮発メモリに記憶してもよい。CANコントローラ15はCANバス20に流れるCANフレームを受信したり、CANバス20にCANフレームを送信したりする通信装置である。CANコントローラ15は次述するエンジン情報及びT/M情報を受信する。
【0026】
エンジンSW16は、例えば、エンジン始動のために乗員が押圧操作するプッシュ型のモーメンタリースイッチである。ただしエンジンSW16は、メカニカルキーを挿入可能になっており、乗員がメカニカルキーを回動操作した場合もエンジン始動することができる。ストップランプスイッチ17は、運転者がブレーキペダルを踏み込んだ時にONとなるスイッチである。シフトポジションセンサ18は、シフトレバーの操作位置を検出するセンサである。
【0027】
電源ECU100はスタータリレーのON/OFFを制御することでエンジン始動やシステム始動(ハイブリッド車(HV)や電気自動車(EV)の場合)を制御し、また、バッテリー400の充電制御(アイドリング時、定速走行時、減速時毎に発電電圧を変更する)などを行う。また、エンジンSW16の操作等に伴ってIG1リレー、IG2リレー、及び、ACCリレーを制御する。
【0028】
例えば、ブレーキペダルが踏み込まれ、かつ、シフトポジションがP又はNの状態でエンジンSW16がONされると、電源ECU100はスタートリレーをONにすることでエンジンを始動する。エンジンが始動した場合は、ACCリレー、IG1リレー及びIG2リレーをONにする。なお、ブレーキペダルが踏み込まれていない場合は、エンジンスイッチがONになる度に、ACCリレーON → IG1リレーON → ACCリレーOFF・IG1リレーOFFを繰り返す。
【0029】
ACCリレーがONになることでACCリレーに接続された補機(例えば、AV、ナビ系統など)が作動し、IG1リレーがONになることでIG1リレーに接続された補機(メータ、ワイパーなど)が作動し、IG2リレーがONになることでIG2リレーに接続された補機(イグニッション、イグナイタなど)が作動する。また、IG2リレーがON(エンジン動作中)であることをIG−ON状態という場合がある。なお、全てのリレーがOFFの状態をIG−OFF状態といい、この状態でも各ECUには、割り込みを受け付けて作動したり、SRAM19のデータを保持するための最小限の電力がバッテリー400から供給されている。
【0030】
また、HV車やEV車の場合、IG−ON状態に相当する状態をReady−ON状態といい、この場合、エンジンは作動中の場合と停止中の場合がある。また、IG−OFF状態に相当する状態をReady−OFF状態という。
【0031】
エンジンECU200は、内燃機関としてのエンジンの燃料噴射制御、点火時期制御、スロットル開度制御等、各種の制御を行う。エンジンにはガソリンを燃料とするレシプロエンジン、軽油を燃料とするディーゼルエンジンなどがあり、さらに、気筒数や排気量の違いなどから様々な種類のエンジンがある。また、HV車ではエンジンとモータの少なくとも一方を動力とし、エンジンを用いずモータのみを動力とするEV車も存在する。さらに、HV車には家庭用電源から充電可能なプラグインハイブリッド車(PEHV)というタイプがある。また、HV車又はPEHV車には、エンジン駆動とモータ駆動の制御方式の違いによりシリーズ方式、パラレル方式又はシリーズ・パラレル方式の3方式がある。また、EV車には、モータの数や配置場所(車体上かホイール内か)などによる違いがある。これらの駆動方式の違いの大部分は、エンジンECU200だけで吸収可能だが、違いによっては、エンジンECU200以外の電子制御装置が違いに対応した処理を行う必要を生じさせる。エンジンECU200は、他の電子制御装置が駆動方式の違いに対応した処理を行うことができるように、駆動方式を特定するためのエンジン情報を周期的に車載ネットワークに送信している。
【0032】
また、T/M_ECU300はトランスミッション装置を制御する。トランスミッション装置には、マニュアルトランスミッション、オートマチックトランスミッション、及び、CVT(無段変速装置)などがある。これらの変速方式の違いの大部分は、T/M_ECU300だけで吸収可能だが、違いによってはT/M_ECU300以外の電子制御装置が違いに対応した処理を行う必要を生じさせる。T/M_ECU300は、他の電子制御装置が変速方式の違いに対応した処理を行うことができるように、変速方式を特定するためのT/M情報を周期的に車載ネットワークに送信している。
【0033】
〔電源ECUの機能〕
図5は、電源ECU100の機能ブロック図の一例を示す。電源ECU100は、ソフト切替情報作成部21、アプリ選択部22、ソフト切替情報変化判定部23、フェールセーフ部24、及び、電源制御部25を有している。これらは、CPU11がフラッシュメモリ13に記憶された不図示のプログラム(アプリA〜D以外の)を実行することで実現される。
【0034】
ソフト切替情報作成部21は、エンジン情報とT/M情報からソフト切替情報を作成する。ソフト切替情報は、電源ECU100が複数のアプリA〜Dのうちどのアプリを実行するかを特定する情報である。
【0035】
エンジン情報とソフト切替情報は走行中(例えば、ガソリン車:IG−ON状態、HV車・EV車:Ready−ON状態であるが、ACC―ON状態において装備が変化することは少ない)に変動することはないが、SRAM19に記憶されたままでは不測の要因によりソフト切替情報に異常が生じるおそれがある。このため、ソフト切替情報作成部21は、周期的(例えば、エンジン情報とT/M情報を受信する毎、1秒毎、1分毎など)にソフト切替情報を作成してSRAM19に記憶する。すなわち、SRAM19に記憶されている参照値のソフト切替情報は周期的に更新される。なお、参照値のソフト切替情報と前回値のソフト切替情報は、それぞれ記憶領域191,192に記憶されるものとする。記憶領域191,192は、複数のレジスタの1つ又はキャッシュメモリの領域である。
【0036】
<アプリについて>
フラッシュメモリ13に記憶されているプログラム9は、例えばエンジンの駆動方式やトランスミッション装置の変速方式(以下、車両システムという)の違いに関係なく電源ECU100に搭載される共通の(汎用の)プログラムである。このプログラム9は、複数のアプリ、サブルーチン、モジュール又はタスクと呼ばれる機能(以下、単にアプリという)に分割されており、電源ECU100は、車両システムに応じて必要なアプリを実行する。電源ECU100が行う処理は主に車両の電源制御に関する処理である。
【0037】
したがって、アプリA〜Dは、駆動方式や変速方式に固有の制御を反映したものである。例えば、ガソリン車やディーゼル車では、エンジンSW16のONにより電源ECU100がすぐにスタートリレーをONにしてエンジンを始動させる。また、エンジン始動後は、その状態が維持され走行中にエンジンが停止することはない。
【0038】
これに対しHV車では、エンジンのアイドリングを停止した状態でモータのみで始動する場合がある。また、HV車は車速が上がったり、運転者が加速要求するとエンジンを始動させ、エンジン駆動が不要になるとエンジンを停止させる場合がある。このため、HV車の電源ECU100は、上記のReady−ON状態を有し、エンジン始動が可能であることを、エンジンECU200に例えば「READY」信号を出力することで通知している。READY信号はエンジンが始動するまで保持される。
【0039】
このように、ガソリン車とHV車ではエンジン始動・停止の制御が異なっており、アプリA〜Dはガソリン車とHV車とにそれぞれ固有の制御が反映されたものとなっている。
【0040】
また、マニュアル車とオートマチック車とでは以下のような違いがある。例えば、オートマチック車の場合はシフトロック機構が装備されているので、P(パーキング)ポジションから他のポジションへの切り換えが禁止される場合がある。マニュアル車の場合、クラッチペダルを踏み込めばそのような禁止制御は行われない。このように、マニュアル車とオートマチック車とシフトロック及び必要な制御の有無が異なっており、アプリA〜Dはマニュアル車とオートマチック車とにそれぞれ固有の制御が反映されたものとなっている。
【0041】
<ソフト切替情報について>
図6はソフト切替情報の作成を説明する図の一例である。車両システムに対応づけて、アプリの識別情報(アプリA〜D)が登録されている。ソフト切替情報作成部21は、エンジン情報とT/M情報から車両システムを特定しこのようなテーブルを参照して、ソフト切替情報を作成する。また、
図6ではソフト切替情報はアプリA〜Dそのものであるが、アプリA〜Dの先頭アドレス、ラベル名などが登録されていてもよい。
【0042】
なお、ソフト切替情報は、エンジン情報とT/M情報以外の車両情報からも作成されてもよい。すなわち、車両情報は、アプリA〜Dの切り替えを必要とする装備に関するものであればよい。
【0043】
<ソフト切替情報の変化の検出>
図5に戻り、アプリ選択部22は、車両システムに特有の処理を行う際(車両システムに応じて異なる制御が必要な処理を実行する際)、アプリA〜Dから適切なアプリを選択するため、参照値のソフト機切替情報を読み出す。従来は、このアプリをそのまま電源制御部25に通知していたが、本実施例ではソフト切替情報変化判定部23が、アプリ選択部22から参照値のソフト切替情報を取得して、SRAM19の前回値のソフト切替情報と比較する。ソフト切替情報は変化しないはずなので参照値と前回値は一致するはずである。ソフト切替情報変化判定部23は、比較結果(一致/不一致)をアプリ選択部22に通知する。アプリ選択部22は一致という比較結果を取得した場合に電源制御部25にソフト切替情報を通知する。
【0044】
これにより、電源制御部25は車載システム500に適合した制御を行うことができる。また、一致した場合、ソフト切替情報変化判定部23は、前回値を参照値で更新する。
【0045】
また、前回値と参照値が一致しなかった場合、ソフト切替情報変化判定部23はフェールセーフ部24にフェールセーフ処理を要求する。フェールセーフ部24は、例えばシステムを停止する。システムの停止とは少なくともアプリA〜Dを一切、実行しないことをいう。アプリA〜D以外の不図示のプログラムについては実行可能であるが、全てのプログラムの実行を停止しシステム全体を停止してもよい。
【0046】
また、前回値は正しいはずなので(前回値の前のソフト切替情報と一致したため)、システム停止するのでなく、アプリ選択部22に前回値のソフト切替情報を通知してもよい。しかし、連続して前回値と参照値が一致しない場合や頻繁に不一致が発生する場合には、フェールセーフ部24がシステムを停止する。こうすることで、一時的なノイズ等により参照値が変更された場合にシステム停止しないので、運転者が違和感を感じる機会を低減できる。
【0047】
なお、
図5では参照値も前回値もSRAM19に記憶されている。参照値はアプリ選択のため参照されるので、ソフト切替情報作成部21がCPU11のSRAM19に記憶しておくことで参照時にCPU11に読み出す必要をなくすことができる。また、参照値は前回値と比較されるので、アプリ選択部22が参照後にCPU11のSRAM19に記憶しておくことで比較時にCPU11に読み出す必要をなくすことができる。よって、参照値と前回値をSRAM19に記憶することで、RAM12に記憶するよりも比較処理を高速化できる。
【0048】
なお、本実施例は、参照値と前回値のソフト切替情報をRAM12に記憶しておくことを禁止する意図はなく、参照値、前回値の一方をSRAM19に他方をRAM12などの他の記憶手段に記憶してもよい。また、参照値と前回値の一方又は両方をフラッシュメモリや記憶手段を備えた回路の空きメモリに記憶してもよい。
【0049】
〔動作手順〕
図7は、電源ECU100の動作手順を示すフローチャート図の一例である。
図7(a)はソフト切替情報の更新手順を、
図7(b)はアプリの実行手順をそれぞれ示す。
図7(a)(b)の処理手順は、電源ECU100にバッテリー400が接続され、電子制御装置の起動中に繰り返し実行される。
【0050】
CANコントローラは自身が受信すべきCANフレームであるエンジン情報とT/M情報を受信する。ソフト切替情報作成部21はエンジン情報とT/M情報を受信したことを契機に処理を行う(S1のYes)。
【0051】
ソフト切替情報作成部21はエンジン情報とT/M情報からソフト切替情報を作成する(S2)。
【0052】
そして、SRAM19に参照値としてソフト切替情報を記憶することで、周期的にソフト切替情報を更新する(S3)。
【0053】
次に、アプリ選択部22は、参照値のソフト切替情報をSRAM19から読み出す(S10)。アプリ選択部22は参照値のソフト切替情報をソフト切替情報変化判定部23に送出する。
【0054】
ソフト切替情報変化判定部23は車両が走行中か否かを判定する(S20)。これは、車両の走行中は、車載システム500が変更されることがないためである。車両が走行中とは、IG−ON状態(HV車の場合はReady−ON状態)であることを言う。なお、故障が発生した場合は、走行中でも車載システム500が変更されることが生じうる。車両が走行中でない場合(S20のNo)、処理はステップS50に進む。
【0055】
車両が走行中の場合(S20のYes)、ソフト切替情報変化判定部23は参照値が前回値に対し変化したか否かを判定する(S30)。
【0056】
変化していた場合(S30のYes)、走行中にソフト切替情報が変化するはずがないので、フェールセーフ部24がシステムを停止するなどのフェールセーフ処理を行う(S40)。
【0057】
なお、前回値が不定の場合がある。これは、マイコンによっては復帰処理によりリセット解除後(リセットON→リセットOFF)にSRAM19の内容が不定となるものがあるためである(SRAMの性質によりリセットによりゼロにならない)。この場合、前回値と参照値のアドレスに不定なデータが記憶されていても一致しない場合が多い。また、CANバス20を介した通信が始まることで、車載システム500を反映したソフト切替情報が作成され、参照値が更新された段階でも参照値と前回値が異なってしまう。
【0058】
このようにマイコンの復帰時には参照値と前回値が不一致になるが、復帰時にはフェールセーフ処理は不要なので、前回値に不定のソフト切替情報が記憶されており、参照値が正常値(不定でない)であれば、ソフト切替情報変化判定部23は参照値と前回値が一致していると判定する(又は一致判定の対象外とする)。不定であることの検出については実施例2にて説明する。
【0059】
参照値が前回値に対し変化していなかった場合(S30のNo)、ソフト切替情報に変化はないので、電源制御部25が参照値のソフト切替情報に基づきアプリA〜Dのいずれかを選択して制御を行う(S50)。
【0060】
以上説明したように、本実施例によれば、車両走行中には装備が変わることはあり得ないことを利用して、SRAM19の参照値のソフト切替情報が変化したことを直接、検出し、想定されていない不適合な装備とプログラムの組み合わせが発生することを低減できる。
【実施例2】
【0061】
車両の大規模なメンテナンスや検査、又は、修理などでエンジンやトランスミッション装置を取り外して交換したり、部品交換、修復等が行われる場合がある。この場合、物理的に装備が変更されたので、電源ECU100が実行するアプリは変更後の装備に対応したものであるべきである。換言すると、物理的に装備が変更された場合は、変更前の装備に対応したアプリを実行すべきではない。
【0062】
そこで、本実施例では、修理時にはバッテリー400が外されることを利用して、装備の変更に対応したアプリの実行を可能とする電源ECU100について説明する。
【0063】
具体的には、IG−OFF状態(又はReady−OFF状態)でもバッテリー400が接続された状態ではSRAM19の内容が保持されているが、バッテリー400が外されることでSRAM19の内容は消失する。また、修理後にバッテリー400を装着すると、マイコンがリセットされSRAM19の内容が不定となる。
【0064】
したがって、SRAM19に記憶されたソフト切替情報が不定の場合は、修理等により装備が変更されている可能性がある(単にマイコンがリセットされた場合も不定になる)。よって、ソフト切替情報が不定の場合は、新たな車載システム500からソフト生成情報を作成するまでアプリを実行しないことで、変更前の装備に対応したアプリを実行できる。
【0065】
〔不定の検出〕
上記のようにマイコンによってはリセット解除後にSRAM19の内容が不定になるため、電源ECU100が復帰したため(再起動したため)にSRAM19に記憶される値が不定となる期間がある。
【0066】
ソフト切替情報が不定であること、又は、正常値であることの判定は、特許文献1の手法を利用できる。すなわち、ソフト切替情報のビット列を前半部分と後半部分とに区切り(例えば、8bitを4bitと4bitに区切る)、以下のようにソフト切替情報を2つ記録しておく。例えば、ソフト切替情報が0x5Aの場合、前半と後半を反転させて0xA5というソフト切替情報を作成して、0x5Aと0xA5をどちらも前回値として記憶しておく。どちらかのソフト切替情報の前半部分と後半部分とを交換することで、2つのソフト切替情報が一致する。ソフト切替情報が不定であったり、正常値でない場合はソフト切替情報の前半部分と後半部分とを交換しても互いに一致しないので、不定であること又は正常値でないことを検証できる。
【0067】
また、別の例として、ソフト切替情報のビット列を反転させて、元のソフト切替情報とビット列が反転されたソフト切替情報を記録しておいてもよい。ソフト切替情報が不定であったり、正常値でない場合は一方のソフト切替情報のビット列を反転させても互いに一致しないので、不定であること又は正常値でないことを検証できる。
【0068】
〔動作手順〕
図8は、電源ECU100の動作手順を示すフローチャート図の一例である。
図8において
図7(b)と同一の処理はその主要部のみを説明する場合がある。
【0069】
まず、アプリ選択部22は、参照値のソフト切替情報をSRAM19から読み出す(S10)。アプリ選択部22は参照値のソフト切替情報をソフト切替情報変化判定部23に送出する。
【0070】
ここで、ソフト切替情報変化判定部23は、前回値が不定か否かを判定する(S12)。前回値が不定でない場合(S12のNo)、処理はステップS20に移行する。
【0071】
前回値が不定の場合(S12のYes)、ソフト切替情報変化判定部23はアプリ選択部22に通知するので、アプリ選択部22は電源制御部25にソフト切替情報を指示しない。これにより、アプリ制御を禁止する(S14)。
【0072】
その後、アプリ選択部22はソフト切替情報作成部21がソフト切替情報を新たに作成するまで待機する(S16)。ソフト切替情報は、IG−ONにより各ECUが車両情報を送信することで作成されるので、IG−ONにより各ECUが車両情報を送信するまでアプリは実行されない。
【0073】
ソフト切替情報が新たに作成され参照値が更新された場合(S16のYes)、処理はS10に戻り、この後は実施例1と同様に処理される。なお、前回値は不定のままなので、ソフト切替情報が新たに作成された場合、アプリ選択部22が参照値を前回値にコピーしておくことが好ましい。これにより、ステップS30で前回値と参照値が一致しないと判定されることを防止できる。
【0074】
したがって、電源制御部25は、装備が変更された後の正しいソフト切替情報に基づき、適切なアプリを選択して実行できる(S50)。
【0075】
したがって、本実施例によれば、実施例1の効果に加え、電源ECU100が復帰した際にアプリ制御を停止して、新たなソフト切替情報の作成まで待機することで、装備の変更があっても装備との組み合わせに適合したアプリを実行できる。また、ソフト切替情報が不定の場合に、ステップS30で前回値と参照値が不一致であると判定され、フェールセーフ処理してしまうことを防止できる。