(57)【要約】【課題】車両情報を参照してプログラムを選択して実行する電子制御装置において、参照先の車両情報が変化した場合に変化を検出できる電子制御装置を提供すること。【解決手段】装備が異なる他の車両と共通に車両に搭載され、車両の装備に応じて異なるアプリケーションプログラムを実行する電子制御装置１００であって、アプリ特定情報を周期的に更新する更新手段２１と、更新手段が更新したアプリ特定情報を記憶するアプリ特定情報記憶手段１９１と、アプリ特定情報記憶手段に記憶されたアプリ特定情報が指示するアプリケーションプログラムを実行する機能提供手段２５と、前回の周期で、更新手段が更新したアプリ特定情報を記憶するアプリ特定情報記憶手段１９２と、アプリ特定情報記憶手段に記憶されたアプリ特定情報に対し、第１のアプリ特定情報記憶手段に記憶されたアプリ特定情報が変化した場合、フェールセーフ処理を行うフェールセーフ手段２４と、を有することを特徴とする。【選択図】図３
2014094690.tif 000002
【特許請求の範囲】
【請求項１】
装備が異なる他の車両と共通に車両に搭載され、車両の装備に応じて異なるアプリケーションプログラムを実行する電子制御装置であって、
前記アプリケーションプログラムを特定するためのアプリ特定情報を周期的に更新する更新手段と、
前記更新手段が更新した前記アプリ特定情報を記憶する第１のアプリ特定情報記憶手段と、
前記第1のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が指示する前記アプリケーションプログラムを実行する機能提供手段と、
前回の周期で、前記更新手段が更新した前記アプリ特定情報を記憶する第２のアプリ特定情報記憶手段と、
前記第２のアプリ特定情報記憶手段に記憶された前記アプリ特定情報に対し、前記第１のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が変化した場合、予め定められたフェールセーフ処理を行うフェールセーフ手段と、
を有する電子制御装置。
【請求項２】
前記更新手段は、当該電子制御装置と車載ネットワークを介して接続されたノードから車両の装備内容を示す装備情報を周期的に取得して、該装備情報に基づき前記アプリ特定情報を作成し、前記第１のアプリ特定情報記憶手段の前記アプリ特定情報を更新する、ことを特徴とする請求項１記載の電子制御装置。
【請求項３】
前記第２のアプリ特定情報記憶手段に記憶された前記アプリ特定情報に対し、前記第１のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が変化した場合、前記フェールセーフ手段は、前記機能提供手段が前記アプリケーションプログラムを実行することを禁止する、
ことを特徴とする請求項１又は２記載の電子制御装置。
【請求項４】
前記第２のアプリ特定情報記憶手段に記憶された前記アプリ特定情報に対し、前記第１のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が変化していた場合でも、前記第２のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が不定状態の場合、前記フェールセーフ手段はフェールセーフ処理を行わない、
ことを特徴とする請求項１〜３いずれか１項記載の電子制御装置。
【請求項５】
前記第２のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が不定状態であることを検出する不定状態検出手段を有し、
前記不定状態検出手段が、前記アプリ特定情報が不定状態であることを検出した場合、前記更新手段が車載ネットワークから受信した車両の装備内容を示す装備情報に基づき作成した前記アプリ特定情報にて前記第１のアプリ特定情報記憶手段の前記アプリ特定情報を更新するまで、前記機能提供手段は前記アプリケーションプログラムの実行を禁止する、
ことを特徴とする請求項１〜４いずれか１項記載の電子制御装置。
【請求項６】
前記第１のアプリ特定情報記憶手段及び前記第２のアプリ特定情報記憶手段はＣＰＵ内のＳＲＡＭ（Static Random Access Memory）である、
ことを特徴とする請求項１〜５いずれか1項記載の電子制御装置。
【請求項７】
前記装備情報は、エンジンコントロールユニットが送信するエンジンの駆動方式情報、及び、トランスミッションコントロールユニットが送信するトランスミッション装置の変速方式情報である、
ことを特徴とする請求項２項記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装備が異なる他の車両と共通に車両に搭載され、車両の装備に応じて異なるアプリケーションプログラムを実行する電子制御装置に関する。
【背景技術】
【０００２】
車両制御の電子化が進んでおり、１台の車両に多くの電子制御装置が搭載されている。電子制御装置は搭載される車両の装備に最適化されたプログラムを有している。
【０００３】
しかしながら、車両メーカとしては多くの車種の車両に共通のソフトウェアを搭載することで電子制御装置の開発コストをコストダウンしたいという要請がある。
【０００４】
そこで、装備が異なる車両に対し共通のプログラムを搭載しておき、プログラムから必要なサブルーチンなどを選択的に実行する技術が考えられている。この場合、車両の電子制御装置は装備を確認して、必要なプログラムを選択的に実行する（例えば、特許文献１参照。）。特許文献１にはエンジン制御部から受信した車両種別特定情報ＥＤによりエンジンタイプを特定し、また、トランスミッション制御部から受信した車両種別特定情報ＥＤによりトランスミッションタイプを特定し、特定された車両種別に対応する実行モードを選択・設定して、各車両種別に共通の汎用制御プログラムを実行する電子制御ユニットが開示されている。
【０００５】
図１は、従来技術を説明する図の一例である。フラッシュメモリには汎用のプログラムが記憶されている。電子制御装置のＣＰＵは、車載ネットワークで通信する他の電子制御装置から収集した車両情報（車両の装備を特定するための情報）をＲＡＭに記憶し、適宜参照しながらプログラムのサブルーチンを選択して実行する（図１（ａ））。
【０００６】
ここで、故障が発生するなどの特殊な状況を除けば、車両情報が走行中に変わることはない。しかし、不測の要因によりＲＡＭの記憶内容に異常が生じることがないとは否定できない。仮に、ＲＡＭの記憶内容（車両情報）に異常が生じた場合、当該車両では想定されていない装備とプログラムの組み合わせが発生し、電子制御ユニットは不適合な処理を継続してしまうという問題がある。
【０００７】
このため、特許文献１では、走行中に変化しない車両情報を周期的に収集してＲＡＭの車両情報を更新する処理を行っている（図１（ｂ）。
【０００８】
しかしながら、車両情報を更新するため、他の電子制御装置から車両情報を周期的に受信する場合、受信中のノイズや通信途絶等により車両情報が異常値となるおそれが生じる。このため、特許文献１では以下の２つのタイミングで車両情報が異常値となったかどうかを検出する。
【０００９】
図２（ａ）（ｂ）は特許文献１において車両情報が異常値となった場合の検出方法を説明する図である。異常値の検出のため電子制御装置は、通信受信値、通信確定値（ＲＡＭ内）、及び、車両種別特定情報の３つの車両情報を利用する。通信受信値は、他の電子制御装置から受信した直後の車両情報であり、通信確定値は車両情報の受信内容を確定記憶させるためのものである。車両種別特定情報には通信確定値がそのまま転送され上書きされる。ＣＰＵがプログラムの選択のために参照するのは車両種別特定情報である。
【００１０】
図２（ａ）に示すように、ノイズないし通信途絶により車両情報が異常受信状態となった場合、通信受信値が異常値（図のＦ）となる。特許文献１では、異常値となったことを通信受信値のビット列を監視すること（上位ビットと下位ビットの比較）で行っており、車両情報が異常受信状態となった場合は通信受信値で通信確定値を更新しない。このため、通信確定値、及び、車両種別特定情報は前回値を維持する（Ｃを維持する）。
【００１１】
また、図２（ｂ）に示すように、通信確定値にデータ異常が発生する場合がある。特許文献１では、通信確定値の車両情報が異常受信状態となった場合、通信確定値から車両種別特定情報に記憶内容の転送・上書きを行なわず、車両種別特定情報が前回の記憶内容を保持するようにしている。
【００１２】
したがって、特許文献１では、通信異常やデータ異常が発生しても車両種別特定情報に波及させないことで、当該車両では想定されていない装備とプログラムの組み合わせが発生することを低減できる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−１８５７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１では通信異常をビット列から判定しているため、車両情報における異常の生じ方によっては異常を検出できないという問題がある。例えば、上位ビットと下位ビットに同じようにノイズが発生した場合は異常を検出できない。
【００１５】
また、ＣＰＵが参照するのは車両種別特定情報であるにも関わらず、車両種別特定情報に異常が発生したことを検出していないという問題がある。
【００１６】
本発明は、上記課題に鑑み、車両情報を参照してプログラムを選択して実行する電子制御装置において、参照先の車両情報が変化した場合に変化を検出できる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、装備が異なる他の車両と共通に車両に搭載され、車両の装備に応じて異なるアプリケーションプログラムを実行する電子制御装置であって、前記機能部分を特定するためのアプリ特定情報（例えば、ソフト切替情報）を周期的に更新する更新手段と、前記更新手段が更新した前記アプリ特定情報を記憶する第１のアプリ特定情報記憶手段（例えば、参照値のソフト切替情報）と、前記第1のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が指示する前記機能部分のプログラムを実行する機能提供手段と、前回の周期で、前記更新手段が更新した前記アプリ特定情報を記憶する第２のアプリ特定情報記憶手段（例えば、前回値のソフト切替情報）と、前記第２のアプリ特定情報記憶手段に記憶された前記アプリ特定情報に対し、前記第１のアプリ特定情報記憶手段に記憶された前記アプリ特定情報が変化した場合、予め定められたフェールセーフ処理を行うフェールセーフ手段と、を有することを特徴とする。
【発明の効果】
【００１８】
車両情報を参照してプログラムを選択して実行する電子制御装置において、参照先の車両情報が変化した場合に変化を検出できる電子制御装置を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】従来技術を説明する図の一例である。
【図２】特許文献１に記載されている車両情報が異常値となったことの検出を説明する図である。
【図３】電子制御装置の動作の概略を説明する図の一例である。
【図４】車載システムの概略構成図の一例である。
【図５】電源ＥＣＵの機能ブロック図の一例である。
【図６】ソフト切替情報の作成を説明する図の一例である。
【図７】電源ＥＣＵの動作手順を示すフローチャート図の一例である（実施例１）。
【図８】電源ＥＣＵの動作手順を示すフローチャート図の一例である（実施例２）。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【実施例１】
【００２１】
図３は、本実施例における電子制御装置の動作の概略を説明する図の一例である。
（１）本実施例の電子制御装置は、他の電子制御装置から収集した車両情報からアプリを決定するためのソフト切替情報を作成しＳＲＡＭ１９に記憶する。このソフト切替情報を参照値と称することにする。ソフト切替情報は定期的に更新される。ＣＰＵ１１は、ソフト切替情報を適宜参照しながらプログラムに含まれるアプリＡ〜Ｄを選択して実行する（図３（ａ））。ソフト切替情報を参照したＣＰＵ１１は、それを前回値としてＳＲＡＭ１９に格納する。
（２）参照値のソフト切替情報は定期的に更新される（ソフト切替情報１から２に更新されたものとする）。ＣＰＵ１１はアプリＡ〜Ｄを選択する際に、参照値のソフト切替情報２をＳＲＡＭ１９から読み出すと共に、前回値のソフト切替情報２をＳＲＡＭ１９から読み出す。そして、両者を比較して参照値が前回値と一致した場合に、アプリＡ〜Ｄを選択して制御を実行する（図３（ｂ））。こうすることで、ソフト切替情報が変化していない場合にだけアプリＡ〜Ｄを実行するので、当該車両では想定されていない不適合な装備とプログラムの組み合わせが発生することを低減できる。参照値が前回値と一致した場合、ＣＰＵ１１は参照値を前回値としてＳＲＡＭ１９に格納する（前回値がソフト切替情報２になる。）。
（３）また、ソフト切替情報２がソフト切替情報３に更新されたが、ソフト切替情報３がソフト切替情報２に対し変化していたとする。この場合、参照値と前回値が一致しないので、ＣＰＵ１１はアプリＡ〜Ｄを選択することなく、適切なフェールセーフ処理を行うことができる（図３（ｃ））。すなわち、本来変化しないはずのソフト切替情報が変化したことを検出できたので、不測の要因によりＳＲＡＭ１９の記憶内容に異常が生じたと判定できる。
【００２２】
したがって、本実施例の電子制御装置によれば、想定されていない不適合な装備とプログラムの組み合わせが発生することを低減できるだけでなく、参照値に異常が生じたことを直接、検出することができる。また、前回値と参照値を直接比較するので、ソフト切替情報のビット列などから異常を検出するよりも確実に変化を検出できる。
【００２３】
〔構成例〕
図４は、車載システムの概略構成図の一例を示す。車載システム５００は、ＣＡＮ（Controller Area  Network）等の車載ネットワークに各種の電子制御装置が接続された構成となっている。電子制御装置は、ＥＣＵ（Electronic Control Unit）とも呼ばれ、図では電源ＥＣＵ１００、エンジンＥＣＵ２００及びＴ／Ｍ_ＥＣＵ３００が接続されている。エンジンＥＣＵ２００及びＴ／Ｍ_ＥＣＵ３００は、電源ＥＣＵ１００がアプリを選択するための車両情報を送信するノードであればよく、図示するＥＣＵの他にＥＣＵが存在してもよい。電源ＥＣＵ１００は、特許請求の範囲の電子制御装置に相当するが、他のＥＣＵに対しても以下の実施例にて説明する制御を適用可能である。
【００２４】
電源ＥＣＵ１００は、ＣＰＵ１１、ＲＡＭ１２、フラッシュメモリ１３、Ｉ／Ｏ１４、及び、ＣＡＮコントローラ１５を有している。また、Ｉ／Ｏ１４にはエンジンＳＷ１６、ストップランプスイッチ１７及びシフトポジションセンサ１８が接続されている。ＣＰＵ１１はＳＲＡＭ（Static  RAM）１９を有している。ＳＲＡＭ１９は例えばレジスタ又はキャッシュメモリである。ＳＲＡＭはフリップフロップを記憶素子とし、ＤＲＡＭ（Dynamic  RAM）と比較すると高速なメモリである。ＳＲＡＭ１９はＣＰＵ１１内にあることが一般的だが、バスを介してＣＰＵ１１と接続されていてもよい。ＳＲＡＭ１９は本来は揮発性メモリだが、電源ＥＣＵ１００にはＩＧ−ＯＦＦでもバッテリ４００から電力が供給されているので、不揮発メモリとして扱うことができる。
【００２５】
ＳＲＡＭ１９にはソフト切替情報が、フラッシュメモリ１３にはプログラム９がそれぞれ記憶されている。ソフト切替情報はＲＡＭ１２やフラッシュメモリ１３などの不揮発メモリに記憶してもよい。ＣＡＮコントローラ１５はＣＡＮバス２０に流れるＣＡＮフレームを受信したり、ＣＡＮバス２０にＣＡＮフレームを送信したりする通信装置である。ＣＡＮコントローラ１５は次述するエンジン情報及びＴ／Ｍ情報を受信する。
【００２６】
エンジンＳＷ１６は、例えば、エンジン始動のために乗員が押圧操作するプッシュ型のモーメンタリースイッチである。ただしエンジンＳＷ１６は、メカニカルキーを挿入可能になっており、乗員がメカニカルキーを回動操作した場合もエンジン始動することができる。ストップランプスイッチ１７は、運転者がブレーキペダルを踏み込んだ時にＯＮとなるスイッチである。シフトポジションセンサ１８は、シフトレバーの操作位置を検出するセンサである。
【００２７】
電源ＥＣＵ１００はスタータリレーのＯＮ／ＯＦＦを制御することでエンジン始動やシステム始動（ハイブリッド車（ＨＶ）や電気自動車（ＥＶ）の場合）を制御し、また、バッテリー４００の充電制御（アイドリング時、定速走行時、減速時毎に発電電圧を変更する）などを行う。また、エンジンＳＷ１６の操作等に伴ってＩＧ１リレー、ＩＧ２リレー、及び、ＡＣＣリレーを制御する。
【００２８】
例えば、ブレーキペダルが踏み込まれ、かつ、シフトポジションがＰ又はＮの状態でエンジンＳＷ１６がＯＮされると、電源ＥＣＵ１００はスタートリレーをＯＮにすることでエンジンを始動する。エンジンが始動した場合は、ＡＣＣリレー、ＩＧ１リレー及びＩＧ２リレーをＯＮにする。なお、ブレーキペダルが踏み込まれていない場合は、エンジンスイッチがＯＮになる度に、ＡＣＣリレーＯＮ  →  ＩＧ１リレーＯＮ  →  ＡＣＣリレーＯＦＦ・ＩＧ１リレーＯＦＦを繰り返す。
【００２９】
ＡＣＣリレーがＯＮになることでＡＣＣリレーに接続された補機（例えば、ＡＶ、ナビ系統など）が作動し、ＩＧ１リレーがＯＮになることでＩＧ１リレーに接続された補機（メータ、ワイパーなど）が作動し、ＩＧ２リレーがＯＮになることでＩＧ２リレーに接続された補機（イグニッション、イグナイタなど）が作動する。また、ＩＧ２リレーがＯＮ（エンジン動作中）であることをＩＧ−ＯＮ状態という場合がある。なお、全てのリレーがＯＦＦの状態をＩＧ−ＯＦＦ状態といい、この状態でも各ＥＣＵには、割り込みを受け付けて作動したり、ＳＲＡＭ１９のデータを保持するための最小限の電力がバッテリー４００から供給されている。
【００３０】
また、ＨＶ車やＥＶ車の場合、ＩＧ−ＯＮ状態に相当する状態をＲｅａｄｙ−ＯＮ状態といい、この場合、エンジンは作動中の場合と停止中の場合がある。また、ＩＧ−ＯＦＦ状態に相当する状態をＲｅａｄｙ−ＯＦＦ状態という。
【００３１】
エンジンＥＣＵ２００は、内燃機関としてのエンジンの燃料噴射制御、点火時期制御、スロットル開度制御等、各種の制御を行う。エンジンにはガソリンを燃料とするレシプロエンジン、軽油を燃料とするディーゼルエンジンなどがあり、さらに、気筒数や排気量の違いなどから様々な種類のエンジンがある。また、ＨＶ車ではエンジンとモータの少なくとも一方を動力とし、エンジンを用いずモータのみを動力とするＥＶ車も存在する。さらに、ＨＶ車には家庭用電源から充電可能なプラグインハイブリッド車（ＰＥＨＶ）というタイプがある。また、ＨＶ車又はＰＥＨＶ車には、エンジン駆動とモータ駆動の制御方式の違いによりシリーズ方式、パラレル方式又はシリーズ・パラレル方式の３方式がある。また、ＥＶ車には、モータの数や配置場所（車体上かホイール内か）などによる違いがある。これらの駆動方式の違いの大部分は、エンジンＥＣＵ２００だけで吸収可能だが、違いによっては、エンジンＥＣＵ２００以外の電子制御装置が違いに対応した処理を行う必要を生じさせる。エンジンＥＣＵ２００は、他の電子制御装置が駆動方式の違いに対応した処理を行うことができるように、駆動方式を特定するためのエンジン情報を周期的に車載ネットワークに送信している。
【００３２】
また、Ｔ／Ｍ_ＥＣＵ３００はトランスミッション装置を制御する。トランスミッション装置には、マニュアルトランスミッション、オートマチックトランスミッション、及び、ＣＶＴ（無段変速装置）などがある。これらの変速方式の違いの大部分は、Ｔ／Ｍ_ＥＣＵ３００だけで吸収可能だが、違いによってはＴ／Ｍ_ＥＣＵ３００以外の電子制御装置が違いに対応した処理を行う必要を生じさせる。Ｔ／Ｍ_ＥＣＵ３００は、他の電子制御装置が変速方式の違いに対応した処理を行うことができるように、変速方式を特定するためのＴ／Ｍ情報を周期的に車載ネットワークに送信している。
【００３３】
〔電源ＥＣＵの機能〕
図５は、電源ＥＣＵ１００の機能ブロック図の一例を示す。電源ＥＣＵ１００は、ソフト切替情報作成部２１、アプリ選択部２２、ソフト切替情報変化判定部２３、フェールセーフ部２４、及び、電源制御部２５を有している。これらは、ＣＰＵ１１がフラッシュメモリ１３に記憶された不図示のプログラム（アプリＡ〜Ｄ以外の）を実行することで実現される。
【００３４】
ソフト切替情報作成部２１は、エンジン情報とＴ／Ｍ情報からソフト切替情報を作成する。ソフト切替情報は、電源ＥＣＵ１００が複数のアプリＡ〜Ｄのうちどのアプリを実行するかを特定する情報である。
【００３５】
エンジン情報とソフト切替情報は走行中（例えば、ガソリン車：ＩＧ−ＯＮ状態、ＨＶ車・ＥＶ車：Ｒｅａｄｙ−ＯＮ状態であるが、ＡＣＣ―ＯＮ状態において装備が変化することは少ない）に変動することはないが、ＳＲＡＭ１９に記憶されたままでは不測の要因によりソフト切替情報に異常が生じるおそれがある。このため、ソフト切替情報作成部２１は、周期的（例えば、エンジン情報とＴ／Ｍ情報を受信する毎、１秒毎、１分毎など）にソフト切替情報を作成してＳＲＡＭ１９に記憶する。すなわち、ＳＲＡＭ１９に記憶されている参照値のソフト切替情報は周期的に更新される。なお、参照値のソフト切替情報と前回値のソフト切替情報は、それぞれ記憶領域１９１，１９２に記憶されるものとする。記憶領域１９１，１９２は、複数のレジスタの１つ又はキャッシュメモリの領域である。
【００３６】
＜アプリについて＞
フラッシュメモリ１３に記憶されているプログラム９は、例えばエンジンの駆動方式やトランスミッション装置の変速方式（以下、車両システムという）の違いに関係なく電源ＥＣＵ１００に搭載される共通の（汎用の）プログラムである。このプログラム９は、複数のアプリ、サブルーチン、モジュール又はタスクと呼ばれる機能（以下、単にアプリという）に分割されており、電源ＥＣＵ１００は、車両システムに応じて必要なアプリを実行する。電源ＥＣＵ１００が行う処理は主に車両の電源制御に関する処理である。
【００３７】
したがって、アプリＡ〜Ｄは、駆動方式や変速方式に固有の制御を反映したものである。例えば、ガソリン車やディーゼル車では、エンジンＳＷ１６のＯＮにより電源ＥＣＵ１００がすぐにスタートリレーをＯＮにしてエンジンを始動させる。また、エンジン始動後は、その状態が維持され走行中にエンジンが停止することはない。
【００３８】
これに対しＨＶ車では、エンジンのアイドリングを停止した状態でモータのみで始動する場合がある。また、ＨＶ車は車速が上がったり、運転者が加速要求するとエンジンを始動させ、エンジン駆動が不要になるとエンジンを停止させる場合がある。このため、ＨＶ車の電源ＥＣＵ１００は、上記のＲｅａｄｙ−ＯＮ状態を有し、エンジン始動が可能であることを、エンジンＥＣＵ２００に例えば「ＲＥＡＤＹ」信号を出力することで通知している。ＲＥＡＤＹ信号はエンジンが始動するまで保持される。
【００３９】
このように、ガソリン車とＨＶ車ではエンジン始動・停止の制御が異なっており、アプリＡ〜Ｄはガソリン車とＨＶ車とにそれぞれ固有の制御が反映されたものとなっている。
【００４０】
また、マニュアル車とオートマチック車とでは以下のような違いがある。例えば、オートマチック車の場合はシフトロック機構が装備されているので、Ｐ（パーキング）ポジションから他のポジションへの切り換えが禁止される場合がある。マニュアル車の場合、クラッチペダルを踏み込めばそのような禁止制御は行われない。このように、マニュアル車とオートマチック車とシフトロック及び必要な制御の有無が異なっており、アプリＡ〜Ｄはマニュアル車とオートマチック車とにそれぞれ固有の制御が反映されたものとなっている。
【００４１】
＜ソフト切替情報について＞
図６はソフト切替情報の作成を説明する図の一例である。車両システムに対応づけて、アプリの識別情報（アプリＡ〜Ｄ）が登録されている。ソフト切替情報作成部２１は、エンジン情報とＴ／Ｍ情報から車両システムを特定しこのようなテーブルを参照して、ソフト切替情報を作成する。また、図６ではソフト切替情報はアプリＡ〜Ｄそのものであるが、アプリＡ〜Ｄの先頭アドレス、ラベル名などが登録されていてもよい。
【００４２】
なお、ソフト切替情報は、エンジン情報とＴ／Ｍ情報以外の車両情報からも作成されてもよい。すなわち、車両情報は、アプリＡ〜Ｄの切り替えを必要とする装備に関するものであればよい。
【００４３】
＜ソフト切替情報の変化の検出＞
図５に戻り、アプリ選択部２２は、車両システムに特有の処理を行う際（車両システムに応じて異なる制御が必要な処理を実行する際）、アプリＡ〜Ｄから適切なアプリを選択するため、参照値のソフト機切替情報を読み出す。従来は、このアプリをそのまま電源制御部２５に通知していたが、本実施例ではソフト切替情報変化判定部２３が、アプリ選択部２２から参照値のソフト切替情報を取得して、ＳＲＡＭ１９の前回値のソフト切替情報と比較する。ソフト切替情報は変化しないはずなので参照値と前回値は一致するはずである。ソフト切替情報変化判定部２３は、比較結果（一致／不一致）をアプリ選択部２２に通知する。アプリ選択部２２は一致という比較結果を取得した場合に電源制御部２５にソフト切替情報を通知する。
【００４４】
これにより、電源制御部２５は車載システム５００に適合した制御を行うことができる。また、一致した場合、ソフト切替情報変化判定部２３は、前回値を参照値で更新する。
【００４５】
また、前回値と参照値が一致しなかった場合、ソフト切替情報変化判定部２３はフェールセーフ部２４にフェールセーフ処理を要求する。フェールセーフ部２４は、例えばシステムを停止する。システムの停止とは少なくともアプリＡ〜Ｄを一切、実行しないことをいう。アプリＡ〜Ｄ以外の不図示のプログラムについては実行可能であるが、全てのプログラムの実行を停止しシステム全体を停止してもよい。
【００４６】
また、前回値は正しいはずなので（前回値の前のソフト切替情報と一致したため）、システム停止するのでなく、アプリ選択部２２に前回値のソフト切替情報を通知してもよい。しかし、連続して前回値と参照値が一致しない場合や頻繁に不一致が発生する場合には、フェールセーフ部２４がシステムを停止する。こうすることで、一時的なノイズ等により参照値が変更された場合にシステム停止しないので、運転者が違和感を感じる機会を低減できる。
【００４７】
なお、図５では参照値も前回値もＳＲＡＭ１９に記憶されている。参照値はアプリ選択のため参照されるので、ソフト切替情報作成部２１がＣＰＵ１１のＳＲＡＭ１９に記憶しておくことで参照時にＣＰＵ１１に読み出す必要をなくすことができる。また、参照値は前回値と比較されるので、アプリ選択部２２が参照後にＣＰＵ１１のＳＲＡＭ１９に記憶しておくことで比較時にＣＰＵ１１に読み出す必要をなくすことができる。よって、参照値と前回値をＳＲＡＭ１９に記憶することで、ＲＡＭ１２に記憶するよりも比較処理を高速化できる。
【００４８】
なお、本実施例は、参照値と前回値のソフト切替情報をＲＡＭ１２に記憶しておくことを禁止する意図はなく、参照値、前回値の一方をＳＲＡＭ１９に他方をＲＡＭ１２などの他の記憶手段に記憶してもよい。また、参照値と前回値の一方又は両方をフラッシュメモリや記憶手段を備えた回路の空きメモリに記憶してもよい。
【００４９】
〔動作手順〕
図７は、電源ＥＣＵ１００の動作手順を示すフローチャート図の一例である。図７（ａ）はソフト切替情報の更新手順を、図７（ｂ）はアプリの実行手順をそれぞれ示す。図７（ａ）（ｂ）の処理手順は、電源ＥＣＵ１００にバッテリー４００が接続され、電子制御装置の起動中に繰り返し実行される。
【００５０】
ＣＡＮコントローラは自身が受信すべきＣＡＮフレームであるエンジン情報とＴ／Ｍ情報を受信する。ソフト切替情報作成部２１はエンジン情報とＴ／Ｍ情報を受信したことを契機に処理を行う（Ｓ１のＹｅｓ）。
【００５１】
ソフト切替情報作成部２１はエンジン情報とＴ／Ｍ情報からソフト切替情報を作成する（Ｓ２）。
【００５２】
そして、ＳＲＡＭ１９に参照値としてソフト切替情報を記憶することで、周期的にソフト切替情報を更新する（Ｓ３）。
【００５３】
次に、アプリ選択部２２は、参照値のソフト切替情報をＳＲＡＭ１９から読み出す（Ｓ１０）。アプリ選択部２２は参照値のソフト切替情報をソフト切替情報変化判定部２３に送出する。
【００５４】
ソフト切替情報変化判定部２３は車両が走行中か否かを判定する（Ｓ２０）。これは、車両の走行中は、車載システム５００が変更されることがないためである。車両が走行中とは、ＩＧ−ＯＮ状態（ＨＶ車の場合はＲｅａｄｙ−ＯＮ状態）であることを言う。なお、故障が発生した場合は、走行中でも車載システム５００が変更されることが生じうる。車両が走行中でない場合（Ｓ２０のＮｏ）、処理はステップＳ５０に進む。
【００５５】
車両が走行中の場合（Ｓ２０のＹｅｓ）、ソフト切替情報変化判定部２３は参照値が前回値に対し変化したか否かを判定する（Ｓ３０）。
【００５６】
変化していた場合（Ｓ３０のＹｅｓ）、走行中にソフト切替情報が変化するはずがないので、フェールセーフ部２４がシステムを停止するなどのフェールセーフ処理を行う（Ｓ４０）。
【００５７】
なお、前回値が不定の場合がある。これは、マイコンによっては復帰処理によりリセット解除後（リセットＯＮ→リセットＯＦＦ）にＳＲＡＭ１９の内容が不定となるものがあるためである（ＳＲＡＭの性質によりリセットによりゼロにならない）。この場合、前回値と参照値のアドレスに不定なデータが記憶されていても一致しない場合が多い。また、ＣＡＮバス２０を介した通信が始まることで、車載システム５００を反映したソフト切替情報が作成され、参照値が更新された段階でも参照値と前回値が異なってしまう。
【００５８】
このようにマイコンの復帰時には参照値と前回値が不一致になるが、復帰時にはフェールセーフ処理は不要なので、前回値に不定のソフト切替情報が記憶されており、参照値が正常値（不定でない）であれば、ソフト切替情報変化判定部２３は参照値と前回値が一致していると判定する（又は一致判定の対象外とする）。不定であることの検出については実施例２にて説明する。
【００５９】
参照値が前回値に対し変化していなかった場合（Ｓ３０のＮｏ）、ソフト切替情報に変化はないので、電源制御部２５が参照値のソフト切替情報に基づきアプリＡ〜Ｄのいずれかを選択して制御を行う（Ｓ５０）。
【００６０】
以上説明したように、本実施例によれば、車両走行中には装備が変わることはあり得ないことを利用して、ＳＲＡＭ１９の参照値のソフト切替情報が変化したことを直接、検出し、想定されていない不適合な装備とプログラムの組み合わせが発生することを低減できる。
【実施例２】
【００６１】
車両の大規模なメンテナンスや検査、又は、修理などでエンジンやトランスミッション装置を取り外して交換したり、部品交換、修復等が行われる場合がある。この場合、物理的に装備が変更されたので、電源ＥＣＵ１００が実行するアプリは変更後の装備に対応したものであるべきである。換言すると、物理的に装備が変更された場合は、変更前の装備に対応したアプリを実行すべきではない。
【００６２】
そこで、本実施例では、修理時にはバッテリー４００が外されることを利用して、装備の変更に対応したアプリの実行を可能とする電源ＥＣＵ１００について説明する。
【００６３】
具体的には、ＩＧ−ＯＦＦ状態（又はＲｅａｄｙ−ＯＦＦ状態）でもバッテリー４００が接続された状態ではＳＲＡＭ１９の内容が保持されているが、バッテリー４００が外されることでＳＲＡＭ１９の内容は消失する。また、修理後にバッテリー４００を装着すると、マイコンがリセットされＳＲＡＭ１９の内容が不定となる。
【００６４】
したがって、ＳＲＡＭ１９に記憶されたソフト切替情報が不定の場合は、修理等により装備が変更されている可能性がある（単にマイコンがリセットされた場合も不定になる）。よって、ソフト切替情報が不定の場合は、新たな車載システム５００からソフト生成情報を作成するまでアプリを実行しないことで、変更前の装備に対応したアプリを実行できる。
【００６５】
〔不定の検出〕
上記のようにマイコンによってはリセット解除後にＳＲＡＭ１９の内容が不定になるため、電源ＥＣＵ１００が復帰したため（再起動したため）にＳＲＡＭ１９に記憶される値が不定となる期間がある。
【００６６】
ソフト切替情報が不定であること、又は、正常値であることの判定は、特許文献１の手法を利用できる。すなわち、ソフト切替情報のビット列を前半部分と後半部分とに区切り（例えば、８bitを４bitと４bitに区切る）、以下のようにソフト切替情報を２つ記録しておく。例えば、ソフト切替情報が０ｘ５Aの場合、前半と後半を反転させて０ｘＡ５というソフト切替情報を作成して、０ｘ５Aと０ｘＡ５をどちらも前回値として記憶しておく。どちらかのソフト切替情報の前半部分と後半部分とを交換することで、２つのソフト切替情報が一致する。ソフト切替情報が不定であったり、正常値でない場合はソフト切替情報の前半部分と後半部分とを交換しても互いに一致しないので、不定であること又は正常値でないことを検証できる。
【００６７】
また、別の例として、ソフト切替情報のビット列を反転させて、元のソフト切替情報とビット列が反転されたソフト切替情報を記録しておいてもよい。ソフト切替情報が不定であったり、正常値でない場合は一方のソフト切替情報のビット列を反転させても互いに一致しないので、不定であること又は正常値でないことを検証できる。
【００６８】
〔動作手順〕
図８は、電源ＥＣＵ１００の動作手順を示すフローチャート図の一例である。図８において図７（ｂ）と同一の処理はその主要部のみを説明する場合がある。
【００６９】
まず、アプリ選択部２２は、参照値のソフト切替情報をＳＲＡＭ１９から読み出す（Ｓ１０）。アプリ選択部２２は参照値のソフト切替情報をソフト切替情報変化判定部２３に送出する。
【００７０】
ここで、ソフト切替情報変化判定部２３は、前回値が不定か否かを判定する（Ｓ１２）。前回値が不定でない場合（Ｓ１２のＮｏ）、処理はステップＳ２０に移行する。
【００７１】
前回値が不定の場合（Ｓ１２のＹｅｓ）、ソフト切替情報変化判定部２３はアプリ選択部２２に通知するので、アプリ選択部２２は電源制御部２５にソフト切替情報を指示しない。これにより、アプリ制御を禁止する（Ｓ１４）。
【００７２】
その後、アプリ選択部２２はソフト切替情報作成部２１がソフト切替情報を新たに作成するまで待機する（Ｓ１６）。ソフト切替情報は、ＩＧ−ＯＮにより各ＥＣＵが車両情報を送信することで作成されるので、ＩＧ−ＯＮにより各ＥＣＵが車両情報を送信するまでアプリは実行されない。
【００７３】
ソフト切替情報が新たに作成され参照値が更新された場合（Ｓ１６のＹｅｓ）、処理はＳ１０に戻り、この後は実施例１と同様に処理される。なお、前回値は不定のままなので、ソフト切替情報が新たに作成された場合、アプリ選択部２２が参照値を前回値にコピーしておくことが好ましい。これにより、ステップＳ３０で前回値と参照値が一致しないと判定されることを防止できる。
【００７４】
したがって、電源制御部２５は、装備が変更された後の正しいソフト切替情報に基づき、適切なアプリを選択して実行できる（Ｓ５０）。
【００７５】
したがって、本実施例によれば、実施例１の効果に加え、電源ＥＣＵ１００が復帰した際にアプリ制御を停止して、新たなソフト切替情報の作成まで待機することで、装備の変更があっても装備との組み合わせに適合したアプリを実行できる。また、ソフト切替情報が不定の場合に、ステップＳ３０で前回値と参照値が不一致であると判定され、フェールセーフ処理してしまうことを防止できる。
【符号の説明】
【００７６】
１１      ＣＰＵ
１２      ＲＡＭ
１３      フラッシュメモリ
１４      Ｉ／Ｏ
１５      ＣＡＮコントローラ
１６      エンジンＳＷ
１７      ストップランプスイッチ
１８      ＣＡＮバス
１９      ＳＲＡＭ
１００    電源ＥＣＵ
１９１，１９２  記憶領域
【図１】
2014094690.tif 000003
【図２】
2014094690.tif 000004
【図３】
2014094690.tif 000005
【図４】
2014094690.tif 000006
【図５】
2014094690.tif 000007
【図６】
2014094690.tif 000008
【図７】
2014094690.tif 000009
【図８】
2014094690.tif 000010