(57)【要約】【課題】市場での制御プログラムの書き換え時にのみ、バックアップＲＡＭ内の制御変数を自動的に初期化することができる車載制御装置を提供する。【解決手段】制御プログラムにしたがって車載装置を制御するＣＰＵ６と、制御プログラムを格納する不揮発性ＲＯＭ７と、制御変数を格納するバックアップＲＡＭ９と、バックアップＲＡＭ９に給電を行うバックアップ電源回路４と、制御プログラムを書き換えるブートプログラム８と、実行アドレスを切り換えるアドレス切り換え回路１０と、メモリ書き換え装置１５とを備え、メモリ書き換え装置１５は、書き換え信号Ａと、ブートプログラム８を起動させるコマンドを含むコマンド信号群Ｃと、ダイアグコードを消去させる消去コマンド信号Ｅとを出力し、制御プログラムは、書き換え終了後の起動時に、消去コマンド信号Ｅに応答してバックアップＲＡＭ９内の制御変数を初期化するものである。【選択図】図７
2007257473.tif 000002
【特許請求の範囲】
【請求項１】
種々の制御変数を用いた制御プログラムにしたがって車載装置を制御するためのＣＰＵと、
前記制御プログラムを格納する書き換え可能な不揮発性メモリと、
前記制御変数を格納するバックアップＲＡＭと、
前記バックアップＲＡＭに給電を行うバックアップ電源回路と、
前記ＣＰＵを動作させて前記制御プログラムを書き換えるためのブートプログラムと、
前記制御プログラムの書き換え時に、前記ＣＰＵの実行アドレスを前記ブートプログラムに切り換えるためのアドレス切り換え回路と、
メモリ書き換え装置とを備え、
前記メモリ書き換え装置は、前記アドレス切り換え回路を動作させるための書き換え信号と、前記ブートプログラムを起動させるためのコマンドを含むコマンド信号群と、前記制御プログラムの書き換え終了後にダイアグコードを消去させるための消去コマンド信号とを出力し、
前記制御プログラムは、書き換え終了後の起動時に、前記消去コマンド信号に応答して前記バックアップＲＡＭ内の制御変数を初期化することを特徴とする車載制御装置。
【請求項２】
種々の制御変数を用いた制御プログラムにしたがって車載装置を制御するためのＣＰＵと、
前記制御プログラムを格納する書き換え可能な不揮発性メモリと、
前記制御変数を格納するバックアップＲＡＭと、
前記バックアップＲＡＭに給電を行うバックアップ電源回路と、
前記ＣＰＵを動作させて前記制御プログラムを書き換えるためのブートプログラムと、
前記制御プログラムの書き換え時に、前記ＣＰＵの実行アドレスを前記ブートプログラムに切り換えるためのアドレス切り換え回路と、
メモリ書き換え装置とを備え、
前記メモリ書き換え装置は、前記アドレス切り換え回路を動作させるための書き換え信号と、前記ブートプログラムを起動させるためのコマンドを含むコマンド信号群と、前記制御プログラムの書き換え終了後にダイアグコードを消去させるための消去コマンド信号とを出力し、
前記制御プログラムは、前記不揮発性メモリ内の判定値と前記バックアップＲＡＭ内の所定値とを比較して、前記判定値と前記所定値との不一致を判定したときに前記バックアップＲＡＭ内の制御変数を初期化するとともに、書き換え終了後の起動時に、前記消去コマンド信号に応答して前記所定値を異常値に設定し、次回起動時に、前記異常値と前記判定値との不一致状態に応答して前記バックアップＲＡＭ内の制御変数を初期化することを特徴とする車載制御装置。
【請求項３】
前記バックアップＲＡＭに記憶された制御変数を格納する電気的に消去および書き換え可能なＥＥＰＲＯＭをさらに備え、
前記制御プログラムは、前記バックアップＲＡＭ内の制御変数を初期化した後、前記ＥＥＰＲＯＭ内の制御変数のうちの所定の制御変数を、前記バックアップＲＡＭに格納することを特徴とする請求項１または請求項２に記載の車載制御装置。
【請求項４】
前記メモリ書き換え装置は、前記バックアップＲＡＭ内の制御変数を初期化するための初期化コマンド信号を、前記消去コマンド信号として出力することを特徴とする請求項１から請求項３までの何れか１項に記載の車載制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばエンジンおよびトランスミッションを含む車載パワートレイン等を制御するためのＥＣＵ（電子制御装置）からなる車載制御装置に関する。
【背景技術】
【０００２】
一般的な車載制御装置は、ＣＰＵと、不揮発性メモリと、バックアップＲＡＭと、バックアップ電源回路と、ブートプログラムと、アドレス切り換え回路と、メモリ書き換え装置と、バックアップ電源オフ判定回路を備えている。
ＣＰＵは、種々の制御変数を用いた制御プログラムにしたがって車載装置を制御する。不揮発性メモリは、書き換え可能であり、制御プログラムを格納する。バックアップＲＡＭは制御変数を格納する。バックアップ電源回路は、バッテリに接続されてバックアップＲＡＭに給電を行う。ブートプログラムは、ＣＰＵを動作させて制御プログラムを書き換える。
アドレス切り換え回路は、制御プログラムの書き換え時にブートプログラムをＣＰＵの実行アドレスに配置させる。メモリ書き換え装置は、アドレス切り換え回路を動作させるための書き換え信号とブートプログラムを起動させるためのコマンド信号とを出力する。バックアップ電源オフ判定回路は、通常時にバックアップ電源回路のオン判定状態を保持しており、一度でもバックアップ電源回路がオフ状態になると、オフ判定状態に固定される。
【０００３】
制御プログラムは、バックアップＲＡＭに格納されている制御変数の整合性を確認するために、起動時に不揮発性メモリ内の判定値とバックアップＲＡＭ内の所定値とを比較する。
ここで、バックアップＲＡＭ内の所定値と、不揮発性メモリ内の判定値との不一致を判定した場合、制御プログラムは、バッテリが遮断されていると判断して、バックアップＲＡＭ内の制御定数を初期化する。
【０００４】
また、ブートプログラムを用いて不揮発性メモリ内の制御プログラムを書き換えた場合、制御プログラムは、書き換え終了後の起動時に、上記と同様に不揮発性メモリ内の判定値とバックアップＲＡＭ内の所定値とを比較する。
しかし、書き換え前の制御プログラムと書き換え終了後の制御プログラムとで、バックアップＲＡＭ内の制御変数の分解能等が変更された場合には、ＣＰＵは、バックアップＲＡＭ内の制御変数（前回値）を用いて変更後の制御プログラムを実行することになるので、例えばエンジンを誤制御するおそれがある。
【０００５】
したがって、不揮発性メモリ内の制御プログラムを変更した場合には、変更後の制御プログラムと、バックアップＲＡＭ内の制御変数（前回値）との不適合による不具合を回避するために、バックアップＲＡＭ内の制御変数を、新しい制御プログラムに対応した値に初期化する必要がある。
【０００６】
そこで、不揮発性メモリ内の制御プログラムを書き換える際に、制御装置からバッテリを一時的に切り離してバックアップ電源回路への給電を遮断し、制御プログラムの書き換え終了後起動時に、バックアップ電源オフ判定回路の情報に基づいて、バックアップＲＡＭ内の制御変数を初期化する方法が提案されている。
しかしながら、制御プログラムの書き換え毎にバッテリを切り離すと、バックアップ電源回路を共用している他の各種機器に記憶された情報もクリアされる。
そのため、各種機器内のバックアップＲＡＭを再度初期設定する必要があり、書き換え工程数が増大してコストアップを招くおそれがある。
また、バックアップ電源回路の遮断忘れによりバックアップＲＡＭの初期化漏れが生じるおそれや、切り離しおよび接続工程数の増大によりコストアップを招くおそれがある。
【０００７】
そのため、従来の車載制御装置は、不揮発性メモリ内の制御プログラムを書き換える際に、ブートプログラムによってセットされる初期化フラグをバックアップＲＡＭ上に設け、制御プログラムは、書き換え終了後の起動時に、初期化フラグのセット状態に応答してバックアップＲＡＭ内の制御変数を初期化している（例えば、特許文献１参照）。
【０００８】
【特許文献１】特開平９−２８８５７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の車載制御装置では、ブートプログラムによってセットされる初期化フラグのセット状態に応答してバックアップＲＡＭ内の制御変数を初期化しているが、通常、ブートプログラムは、開発ステージと量産ステージとで変更されないので、開発ステージでの制御プログラムの書き換え時にもバックアップＲＡＭ内の制御変数が初期化される。
そのため、制御プログラムの書き換え毎にアイドル状態の学習等を実施する必要が生じ、開発の効率化を妨げるという問題点があった。
【００１０】
この発明は、上記のような問題点を解決することを課題とするものであって、その目的は、開発ステージにおける制御プログラムの書き換え時には、バックアップＲＡＭ内の制御変数を初期化せず、市場での制御プログラムの書き換え時には、バックアップＲＡＭ内の制御変数を自動的に初期化することができる車載制御装置を提供することである。
【課題を解決するための手段】
【００１１】
この発明に係る車載制御装置は、種々の制御変数を用いた制御プログラムにしたがって車載装置を制御するためのＣＰＵと、制御プログラムを格納する書き換え可能な不揮発性メモリと、制御変数を格納するバックアップＲＡＭと、バックアップＲＡＭに給電を行うバックアップ電源回路と、ＣＰＵを動作させて制御プログラムを書き換えるためのブートプログラムと、制御プログラムの書き換え時に、ＣＰＵの実行アドレスをブートプログラムに切り換えるためのアドレス切り換え回路と、メモリ書き換え装置とを備え、メモリ書き換え装置は、アドレス切り換え回路を動作させるための書き換え信号と、ブートプログラムを起動させるためのコマンドを含むコマンド信号群と、制御プログラムの書き換え終了後にダイアグコードを消去させるための消去コマンド信号とを出力し、制御プログラムは、書き換え終了後の起動時に、消去コマンド信号に応答してバックアップＲＡＭ内の制御変数を初期化するものである。
【発明の効果】
【００１２】
この発明の車載制御装置によれば、メモリ書き換え装置が、ダイアグコードを消去させるための消去コマンド信号を出力し、制御プログラムが、書き換え終了後の起動時に、消去コマンド信号に応答してバックアップＲＡＭ内の制御変数を初期化する。
そのため、開発ステージにおける制御プログラムの書き換え時には、バックアップＲＡＭ内の制御変数を初期化せず、市場での制御プログラムの書き換え時には、バックアップＲＡＭ内の制御変数を自動的に初期化することができるので、開発の効率化を図ることができる。
【発明を実施するための最良の形態】
【００１３】
以下、この発明の各実施の形態について図に基づいて説明するが、各図において同一、または相当する部材、部位については、同一符号を付して説明する。
【００１４】
実施の形態１．
図１は、例えばエンジン制御装置等の一般的な車載制御装置を示すブロック図である。
図１において、ＥＣＵ（電子制御装置：Ｅｌｅｃｔｒｉｃａｌ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）からなる制御装置１は、マイクロコンピュータ（以下、「マイコン」と略称する）２と、マイコン２内の動作状態をリセット（初期化）するためのリセット制御回路３と、マイコン２に対する給電をバックアップするバックアップ電源回路４と、マイコン２内の入出力インタフェース（Ｉ／Ｏ）５と外部制御対象（後述する）とを接続する外部入出力インタフェース（図示せず）とを備えている。
【００１５】
マイコン２は、種々の制御変数（後述する）を用いた制御プログラム（後述する）にしたがって、例えばエンジンおよびパワートレイン等の車載装置を制御するためのＣＰＵ６と、ＣＰＵ６を動作させるための制御プログラムを格納する書き換え可能な不揮発性ＲＯＭ（不揮発性メモリ）７と、ＣＰＵ６を動作させて不揮発性ＲＯＭ７内の制御プログラムを書き換えるためのブートプログラム８と、制御プログラムに関連した制御変数を格納するバックアップＲＡＭ９とを備えている。
【００１６】
不揮発性ＲＯＭ７は、例えばフラッシュＲＯＭ等の消去可能なプログラマブルＲＯＭから構成されている。
なお、ブートプログラム８は、不揮発性ＲＯＭ７とは別のＲＯＭに格納されている。
また、不揮発性ＲＯＭ７およびバックアップＲＡＭ９には、バックアップＲＡＭ９内の格納データが正常であるか否かを判定するための判定値および所定値が、それぞれ記憶されている。
【００１７】
また、マイコン２は、ＣＰＵ６と不揮発性ＲＯＭ７およびブートプログラム８との間に介在されたアドレス切り換え回路１０を備えており、アドレス切り換え回路１０は、制御プログラムの書き換え時に、ＣＰＵ６のメモリマップ（後述する）内の実行アドレスを不揮発性ＲＯＭ７内の制御プログラムからブートプログラム８に切り換える。
【００１８】
さらに、マイコン２は、入出力インタフェース５と、バックアップ電源オフ判定回路１１とを備えている。マイコン２内のＣＰＵ６は、入出力インタフェース５および外部入出力インタフェースを介して外部制御対象（後述する）と接続されている。
また、バックアップ電源オフ判定回路１１は、通常時にバックアップ電源回路４のオン判定状態を保持しており、一度でもバックアップ電源回路４がオフ状態になると、オフ判定状態に固定される。
【００１９】
マイコン２内の不揮発性ＲＯＭ７およびブートプログラム８は、アドレス切り換え回路１０を介してＣＰＵ６に接続され、バックアップＲＡＭ９、入出力インタフェース５およびバックアップ電源オフ判定回路１１は、ＣＰＵ６に直接接続されている。
また、バックアップＲＡＭ９およびバックアップ電源オフ判定回路１１は、バックアップ電源回路４に接続されている。
【００２０】
また、マイコン２内の入出力インタフェース５は、制御装置１内の外部入出力インタフェースを介して、外部制御対象となるエンジン１２に接続され、バックアップ電源回路４は、車載のバッテリ１３および他の各種制御機器１４（車載電話、時計およびＦＭラジオ等の制御機器）に接続されている。バックアップＲＡＭ９は、バッテリ１３から、バックアップ電源回路４を介して給電されている。
【００２１】
必要に応じて制御装置１に接続されるメモリ書き換え装置１５は、不揮発性ＲＯＭ７内の制御プログラムの書き換え（更新）時に、双方向の通信線Ｌを介して制御装置１に接続され、アドレス切り換え回路１０を動作させるとともに制御プログラムを新規仕様に更新するための書き換え信号Ａ、ブートプログラム８を起動させるためのコマンドを含むコマンド信号群Ｃ、ダイアグコード（後述する）を消去させるための消去コマンド信号Ｅ、および種々のデータ信号（図示せず）等を出力する。
【００２２】
オンオフ信号からなる書き換え信号Ａは、リセット制御回路３およびアドレス切り換え回路１０を動作させ、リセット制御回路３から出力されるリセット信号ＲによりＣＰＵ６の動作状態（実行アドレス）をリセットするとともに、ブートプログラム８をＣＰＵ６のリセット後の実行アドレスに配置させる。
【００２３】
種々のコマンドを含むコマンド信号群Ｃおよびデータ信号は、通信線Ｌから入出力インタフェース（図示せず）を介してＣＰＵ６に入力され、制御プログラムを書き換えるためのブートプログラム８を動作させて、不揮発性ＲＯＭ７内の制御プログラムの初期化（クリア）、データのチェックおよび書き換え処理等を実行する。
【００２４】
ここで、ダイアグコードは、ＥＣＵ間通信を行うシステムにおける、制御プログラムの書き換え時に生じた通信異常の記録である。また、ダイアグコードを消去させるための消去コマンド信号Ｅは、制御プログラムの書き換え終了後で、かつ書き換え信号Ａがオンからオフに切り換えられて書き換え終了後の制御プログラムが起動された後に、車両に搭載されている全てのＥＣＵに対して出力される。
【００２５】
図２は、ＣＰＵ６のメモリマップの領域関係を示す説明図であり、図２（ａ）は通常（書き換え信号Ａがオフ）時の状態、図２（ｂ）は書き換え（書き換え信号Ａがオン）時の状態をそれぞれ示す。通常時（図２（ａ））および書き換え時（図２（ｂ））の各メモリ領域の切り換えは、アドレス切り換え回路１０により行われ、リセット後の実行アドレスは、メモリマップの最下端となる。
【００２６】
すなわち、制御プログラムを書き換えるためのブートプログラム８は、通常時（図２（ａ））においては、ＣＰＵ６のメモリマップから外れた実行アドレスの領域外（破線参照）に位置しているが、書き換え時（図２（ｂ））においては、ＣＰＵ６が処理を開始するときの実行アドレス位置に切り換えられる。
【００２７】
図３〜図５は、ブートプログラム８の処理ルーチンを示すフローチャートである。図３は、コマンド信号群Ｃに応じて実行される初期化処理ルーチン、図４は、コマンド信号群Ｃに応答して実行されるシリアル割り込み（ＳＣＩ）処理ルーチン、図５は、コマンド信号群Ｃおよびデータ信号による書き込み処理ルーチンを示している。
また、図６は、不揮発性ＲＯＭ７内の制御プログラムの処理ルーチンを示すフローチャートである。
【００２８】
次に、図２〜図６を参照しながら、図１に示した一般的な車載制御装置の動作について説明する。
制御装置１内のＣＰＵ６は、通常時においては、図２（ａ）のように、実行アドレスに位置する制御プログラム（不揮発性ＲＯＭ７上に書き込まれた）を実行し、エンジン１２等を制御する。
また、ＣＰＵ６は、書き換え時においては、図２（ｂ）のように、実行アドレスに位置するブートプログラム８を実行する。
【００２９】
一般に、例えばエンジン等の車載装置を制御する車載制御装置においては、要求仕様に応じて不揮発性ＲＯＭ７内の制御プログラムが書き換えられる。
このとき、不揮発性ＲＯＭ７を消去しても書き換え処理用のプログラムが消去されないように、不揮発性ＲＯＭ７とは別のＲＯＭに格納されたブートプログラム８によって実行される。
【００３０】
マイコン２内のアドレス切り換え回路１０は、ＣＰＵ６が実行するプログラムを切り換えるためのもので、メモリ書き換え装置１５から出力される書き換え信号Ａがオフのとき（通常時）には、不揮発性ＲＯＭ７内の制御プログラムを選択し（図７（ａ）参照）、書き換え信号Ａがオンのとき（書き換え時）には、ブートプログラム８を選択する（図７（ｂ）参照）。
【００３１】
すなわち、ＣＰＵ６が実行するプログラムは、書き換え信号Ａのオフからオンへの変化に応答して、不揮発性ＲＯＭ７内の制御プログラムからブートプログラム８に切り換わり、書き換え信号Ａのオンからオフへの変化に応答して、ブートプログラム８から制御プログラムに切り換わる。
また、書き換え信号Ａのオンオフ変化により、リセット制御回路３からリセット信号Ｒが出力される。これに応答して、リセット信号Ｒによってリセットされた後の実行アドレスから、制御プログラムまたはブートプログラム８が実行される。
【００３２】
制御プログラムの書き換え時において、メモリ書き換え装置１５からコマンド信号群Ｃが出力されると、制御装置１内のＣＰＵ６は、ブートプログラム８を起動させて、図３のフローチャートに示した処理ルーチンを開始する。
すなわち、シリアルの通信線Ｌを介したＳＣＩ処理を許可するとともに、ＣＰＵ６内部の任意のレジスタ（図示せず）内に設けられた書き込み中フラグＦＷをクリアして各種の初期化を実行し（ステップＳ２１）、ＳＣＩ処理ルーチンの割り込み待ちの状態とする。
【００３３】
続いて、コマンド信号群Ｃに応答して、ＣＰＵ６は、シリアル割り込み（ＳＣＩ）処理ルーチンを起動させて、図４のフローチャートに示した処理ルーチンを開始する。
まず、書き込み中フラグＦＷがセット状態であるか否かを判定する（ステップＳ３１）。
ステップＳ３１において、書き込み中フラグＦＷがセット状態である（すなわち、Ｙｅｓ）と判定された場合には、制御プログラムの書き込み処理を実行して（ステップＳ３２）、ＳＣＩ処理ルーチンにリターンする。
【００３４】
なお、初期状態においては、図３内のステップＳ２１によって、書き込み中フラグＦＷがクリアされているので、ステップＳ３１において、書き込み中フラグＦＷがセット状態ではない（すなわち、Ｎｏ）と判定される。
【００３５】
次に、コマンド信号群Ｃが初期化コマンドを含むか否かを判定する（ステップＳ３３）。
ステップＳ３３において、初期化コマンドを含む（すなわち、Ｙｅｓ）と判定された場合には、不揮発性ＲＯＭ７内の制御プログラムを消去して初期化し（ステップＳ３４）、ＳＣＩ処理ルーチンにリターンする。
【００３６】
一方、ステップＳ３３において、初期化コマンドを含まない（すなわち、Ｎｏ）と判定された場合には、コマンド信号群Ｃがチェックサムコマンドを含むか否かを判定する（ステップＳ３５）。
ステップＳ３５において、チェックサムコマンドを含む（すなわち、Ｙｅｓ）と判定された場合には、不揮発性ＲＯＭ７の全領域を加算して合計値を求め、その値をメモリ書き換え装置１５に送信して（ステップＳ３６）、ＳＣＩ処理ルーチンにリターンする。
このとき、もし不揮発性ＲＯＭ７の合計値が異常であれば、制御プログラムの正確な書き換えが実行されなかったものとして、メモリ書き換え装置１５により、データ信号に基づく再度の書き換え処理が適宜実行される。
【００３７】
一方、ステップＳ３５において、チェックサムコマンドを含まない（すなわち、Ｎｏ）と判定された場合には、コマンド信号群Ｃが書き込みコマンドを含むか否かを判定する（ステップＳ３７）。
ステップＳ３７において、書き込みコマンドを含む（すなわち、Ｙｅｓ）と判定された場合には、書き込み中フラグＦＷをセット状態にするとともに、不揮発性ＲＯＭ７内のデータ数を計数するカウンタＣＮＴ１をクリアして（ステップＳ３８）、ＳＣＩ処理ルーチンにリターンする。
【００３８】
一方、ステップＳ３７において、書き込みコマンドを含まない（すなわち、Ｎｏ）と判定された場合には、コマンド信号群Ｃが判定不可能な状態であるので、エラー状態を示す信号をメモリ書き換え装置１５に送信し（ステップＳ３９）、ＳＣＩ処理ルーチンにリターンする。
このとき、メモリ書き換え装置１５は、このエラー状態を示す信号に応答して、例えばコマンド信号群Ｃを制御装置１に再度出力する。
【００３９】
ここで、図４内の書き込み処理ステップＳ３２では、図５のフローチャートに示した処理ルーチンが実行される。
まず、不揮発性ＲＯＭ７の先頭アドレスにカウンタＣＮＴ１のアドレスを加算して、加算後のアドレスに受信データ（データ信号）の値を書き込み（ステップＳ４１）、カウンタＣＮＴ１の値を「１」だけインクリメント（ＣＮＴ１＝ＣＮＴ１＋１）する（ステップＳ４２）。
【００４０】
なお、初期状態においては、図４内のステップＳ３８によって、カウンタＣＮＴ１がクリアされているので、ステップＳ４２に示したカウンタＣＮＴ１のインクリメントは、所定データ数Ｎに達するまで繰り返される。
【００４１】
続いて、カウンタＣＮＴ１が所定データ数Ｎ以上に達したか否かを判定することにより、受信データを不揮発性ＲＯＭ７の全領域に書き込み済みか否かを判定する（ステップＳ４３）。
ステップＳ４３において、カウンタＣＮＴ１が所定データ数Ｎ以上に達していない（ＣＮＴ１＜Ｎ）（すなわち、Ｎｏ）と判定された場合には、直ちに図５の書き込み処理ルーチンを終了する。
【００４２】
一方、ステップＳ４３において、カウンタＣＮＴ１が所定データ数Ｎ以上に達した（ＣＮＴ１≧Ｎ）（すなわち、Ｙｅｓ）と判定された場合には、不揮発性ＲＯＭ７の全領域を加算してチェックサム用の合計値を求め、その値をメモリ書き換え装置１５に送信し（ステップＳ４４）、書き込み中フラグＦＷをクリアして（ステップＳ４５）、図５の書き込み処理ルーチンを終了する。
【００４３】
こうして、ブートプログラム８を実行することにより、不揮発性ＲＯＭ７内の制御プログラムが新規仕様に更新される。
次に、メモリ書き換え装置１５から出力される書き換え信号Ａのオンからオフへの変化に応答して、制御装置１内のＣＰＵ６は、更新後の制御プログラムを起動させて、図６のフローチャートに示した処理ルーチンを開始する。
また、このときダイアグコードを消去させるための消去コマンド信号Ｅがメモリ書き換え装置１５から制御装置１に出力される。
【００４４】
まず、バックアップ電源オフ判定回路１１の判定状態を参照し、バックアップ電源回路４がオフされたか否かを判定する（ステップＳ５１）。
ステップＳ５１において、バックアップ電源がオフされていない（バックアップ状態）（すなわち、Ｎｏ）と判定された場合には、不揮発性ＲＯＭ７内の判定値とバックアップＲＡＭ９内の所定値とを比較し、両者が不一致であるか否かによって、バックアップＲＡＭ９内の格納データ（制御変数）が異常であるか否かを判定する（ステップＳ５２）。
【００４５】
ステップＳ５２において、不揮発性ＲＯＭ７内の判定値とバックアップＲＡＭ９内の所定値とが一致しており、バックアップＲＡＭ９内の格納データが正常である（すなわち、Ｎｏ）と判定された場合には、バックアップＲＡＭ９以外のＲＡＭ等の初期化処理を行い（ステップＳ５３）、例えばエンジンおよびパワートレイン等の車載装置を制御する通常処理を実行する（ステップＳ５４）。
【００４６】
一方、ステップＳ５１において、バックアップ電源がオフされた（すなわち、Ｙｅｓ）と判定された場合、およびステップＳ５２において、不揮発性ＲＯＭ７内の判定値とバックアップＲＡＭ９内の所定値とが不一致であり、バックアップＲＡＭ９内の格納データが異常である（すなわち、Ｙｅｓ）と判定された場合には、バックアップＲＡＭ９内の制御変数を、新しい制御プログラムに対応した所定の値に初期化する（ステップＳ５５）。
なお、バックアップＲＡＭ９内の所定値は、ステップＳ５５での初期化によって、同時に不揮発性ＲＯＭ７内の判定値と一致するように変更される。
続いて、バックアップ電源オフ判定回路１１をバックアップ状態に設定（初期化）して（ステップＳ５６）、ステップＳ５３に移行する。
【００４７】
ここで、制御プログラムの書き換え終了後に、制御装置１とバッテリ１３との接続を手動操作で遮断しておくことにより、バックアップＲＡＭ９内の制御変数を初期化することができる。
また、バックアップＲＡＭ９内の格納データが異常であると判定された場合にも、同様に、バックアップＲＡＭ９内の制御変数を初期化することができる。
【００４８】
次に、メモリ書き換え装置１５からコマンドを受信したか否かを判定する（ステップＳ５７）。
ステップＳ５７において、メモリ書き換え装置１５からコマンドを受信した（すなわち、Ｙｅｓ）と判定された場合には、そのコマンドがダイアグコードを消去させるための消去コマンド信号Ｅであるか否かを判定する（ステップＳ５８）。
ステップＳ５８において、コマンドが消去コマンド信号Ｅである（すなわち、Ｙｅｓ）と判定された場合には、ダイアグコードを消去して（ステップＳ５９）、ステップＳ５４に移行して再び通常処理を実行する。
【００４９】
一方、ステップＳ５７において、メモリ書き換え装置１５からコマンドを受信していない（すなわち、Ｎｏ）と判定された場合、およびステップＳ５８において、コマンドが消去コマンド信号Ｅでない（すなわち、Ｎｏ）と判定された場合には、直ちにステップＳ５４に移行して再び通常処理を実行する。
【００５０】
これにより、ＥＣＵ間通信を行うシステムにおいて、通信を行う相手側のＥＣＵ内の制御プログラムが書き換え中であって、ＥＣＵからの通信に対して応答できない場合に、通信異常と判定されて記録されたダイアグコードを消去することができる。
【００５１】
なお、消去コマンド信号Ｅは、市場で制御プログラムを書き換えるために用いられるメモリ書き換え装置１５、および市場に流通するダイアグテスター等に書き換え手順として組み込まれており、開発ステージで制御プログラムを書き換えるために用いられる書き換え専用ツール等には組み込まれていない。
また、消去コマンド信号Ｅは、ＥＣＵ間通信を行うシステムにおいて、ダイアグコードを消去するためのコマンド信号であるが、ＥＣＵ間通信の有無に関わらず、制御プログラムの書き換えを実行したＥＣＵを含め、車両に搭載されている全てのＥＣＵに対して出力される。
【００５２】
次に、本発明の実施の形態１に係る車載制御装置の特徴部について説明する。
この発明の実施の形態１に係る車載制御装置の構成を示すブロック図は、前述の図１に示した一般的な車載制御装置を示すブロック図と同様なので、説明を省略する。
なお、上記の一般的な車載制御装置とは、不揮発性ＲＯＭ７内の制御プログラムの処理ルーチンが異なっている。
【００５３】
以下、図７のフローチャートを参照しながら、この発明の実施の形態１に係る車載制御装置の動作について説明する。
図７は、前述の制御プログラムの処理ルーチン（図６）に対応しており、ステップＳ６０が追加されたことを除けば、他のステップＳ５１〜Ｓ５９については、図６と同様である。
また、図示しない構成ならびに他の処理ルーチンおよび動作は、図２〜図５に示した通りであり、前述と同様の動作については、詳述を省略する。
【００５４】
まず、前述のように、書き換え信号Ａがオフからオンに切り換わると、ＣＰＵ６の動作を決定するメモリマップ内の実行アドレスは、図２（ｂ）のように書き換え時の状態に切り換わり、ＣＰＵ６は、ブートプログラム８を起動させて、図３〜図５のフローチャートに示した処理ルーチンを実行し、不揮発性ＲＯＭ７内の制御プログラムが新規仕様に更新される。
【００５５】
次に、制御プログラムの更新が終了して、メモリ書き換え装置１５から出力される書き換え信号Ａがオンからオフに変化すると、ＣＰＵ６のメモリマップ内の実行アドレスは、図２（ａ）のように通常時の状態に切り換わり、ＣＰＵ６は、更新後の制御プログラムを起動させて、図７のフローチャートに示した処理ルーチンを開始する。
【００５６】
すなわち、前述のように、ステップＳ５１でバックアップ電源がオフされていないと判定され、ステップＳ５２でバックアップＲＡＭ９内の格納データが異常でないと判定された場合には、バックアップＲＡＭ９以外のＲＡＭ等の初期化処理を行い（ステップＳ５３）、通常処理を実行する（ステップＳ５４）。
【００５７】
また、ステップＳ５１でバックアップ電源がオフされたと判定された場合、およびステップＳ５２でバックアップＲＡＭ９内の格納データが異常であると判定された場合には、バックアップＲＡＭ９内の制御変数を、新しい制御プログラムに対応した所定の値に初期化し（ステップＳ５５）、バックアップ電源オフ判定回路１１を初期化して（ステップＳ５６）、ステップＳ５３に移行する。
【００５８】
続いて、メモリ書き換え装置１５からコマンドを受信したか否かを判定し（ステップＳ５７）、メモリ書き換え装置１５からコマンドを受信した（すなわち、Ｙｅｓ）と判定された場合には、そのコマンドが消去コマンド信号Ｅであるか否かを判定する（ステップＳ５８）。
【００５９】
ステップＳ５８において、コマンドが消去コマンド信号Ｅである（すなわち、Ｙｅｓ）と判定された場合には、ダイアグコードを消去する（ステップＳ５９）。また、バックアップＲＡＭ９内の制御変数を、新しい制御プログラムに対応した所定の値に初期化し（ステップＳ６０）、ステップＳ５４に移行して再び通常処理を実行する。
【００６０】
一方、ステップＳ５７において、メモリ書き換え装置１５からコマンドを受信していない（すなわち、Ｎｏ）と判定された場合、およびステップＳ５８において、消去コマンド信号Ｅでない（すなわち、Ｎｏ）と判定された場合には、直ちにステップＳ５４に移行して再び通常処理を実行する。
【００６１】
これにより、書き換え前の制御プログラムと書き換え終了後の制御プログラムとで、バックアップＲＡＭ９内の制御変数の分解能等が変更された場合であっても、ＣＰＵ６は、制御変数の前回値を用いることなく、新しい制御プログラムに対応した所定の値に初期化された制御変数を用いて制御プログラムを実行する。
そのため、バックアップＲＡＭ９内の制御変数の不適合による不具合を確実に回避することができる。
また、バックアップ電源回路４の遮断忘れによるバックアップＲＡＭ９の初期化漏れや、切り離しおよび接続工程数の増大によるコストアップを回避することができる。
【００６２】
この発明の実施の形態１に係る車載制御装置によれば、メモリ書き換え装置１５が、ダイアグコードを消去させるための消去コマンド信号Ｅを出力し、制御プログラムが、書き換え終了後の起動時に、消去コマンド信号Ｅに応答してバックアップＲＡＭ９内の制御変数を、新しい制御プログラムに対応した所定の値に初期化する。
また、前述のように、消去コマンド信号Ｅは、市場で制御プログラムを書き換えるために用いられるメモリ書き換え装置１５、および市場に流通するダイアグテスター等には、書き換え手順として組み込まれているものの、開発ステージで制御プログラムを書き換えるために用いられる書き換え専用ツール等には組み込まれていない。
そのため、開発ステージにおける制御プログラムの書き換え時には、バックアップＲＡＭ９内の制御変数を初期化せず、市場での制御プログラムの書き換え時には、バックアップＲＡＭ９内の制御変数を自動的に初期化することができるので、開発の効率化を図ることができる。
【００６３】
実施の形態２．
上記実施の形態１では、制御プログラムは、消去コマンド信号Ｅに応答してバックアップＲＡＭ９内の制御変数を初期化するとしたが、これに限定されず、制御プログラムは、消去コマンド信号Ｅに応答して、バックアップＲＡＭ９内の格納データの異常を判定するステップＳ５２において異常判定されるように、バックアップＲＡＭ９に記憶された所定値を、不揮発性ＲＯＭ７に記憶された判定値と異なる異常値に設定してもよい。
【００６４】
以下に、バックアップＲＡＭ９に記憶された所定値を、不揮発性ＲＯＭ７に記憶された判定値と異なる異常値に設定する処理について説明する。
この発明の実施の形態２に係る車載制御装置の構成は、前述の実施の形態１と同様なので、説明を省略する。
【００６５】
以下、図８のフローチャートを参照しながら、この発明の実施の形態２に係る車載制御装置の動作について説明する。
図８は、前述の制御プログラムの処理ルーチン（図７）に対応しており、ステップＳ６０がステップＳ６１に変更されたことを除けば、他のステップＳ５１〜Ｓ５９については、図７と同様である。
また、図示しない構成ならびに他の処理ルーチンおよび動作は、図２〜図６に示した通りであり、前述と同様の動作については、詳述を省略する。
【００６６】
まず、制御プログラムの更新が終了して、メモリ書き換え装置１５から出力される書き換え信号Ａがオンからオフに変化すると、ＣＰＵ６のメモリマップ内の実行アドレスは、図２（ａ）のように通常時の状態に切り換わり、ＣＰＵ６は、更新後の制御プログラムを起動させて、図８のフローチャートに示した処理ルーチンを開始する。
【００６７】
すなわち、前述のように、ステップＳ５１でバックアップ電源がオフされていないと判定され、ステップＳ５２でバックアップＲＡＭ９内の格納データが異常でないと判定された場合には、バックアップＲＡＭ９以外のＲＡＭ等の初期化処理を行い（ステップＳ５３）、通常処理を実行する（ステップＳ５４）。
【００６８】
また、ステップＳ５１でバックアップ電源がオフされたと判定された場合、およびステップＳ５２でバックアップＲＡＭ９内の格納データが異常であると判定された場合には、バックアップＲＡＭ９内の制御変数を、新しい制御プログラムに対応した所定の値に初期化し（ステップＳ５５）、バックアップ電源オフ判定回路１１を初期化して（ステップＳ５６）、ステップＳ５３に移行する。
【００６９】
続いて、メモリ書き換え装置１５からコマンドを受信したか否かを判定し（ステップＳ５７）、メモリ書き換え装置１５からコマンドを受信した（すなわち、Ｙｅｓ）と判定された場合には、そのコマンドが消去コマンド信号Ｅであるか否かを判定する（ステップＳ５８）。
【００７０】
ステップＳ５８において、コマンドが消去コマンド信号Ｅである（すなわち、Ｙｅｓ）と判定された場合には、ダイアグコードを消去する（ステップＳ５９）。また、バックアップＲＡＭ９内の格納データの異常を判定するステップＳ５２において使用されるバックアップＲＡＭ９に記憶された所定値を、不揮発性ＲＯＭ７に記憶された判定値と異なる異常値に設定する（ステップＳ６１）。
【００７１】
ただし、ステップＳ６１でバックアップＲＡＭ９の所定値が異常値に設定されて以降は、ステップＳ５４〜ステップＳ６１の処理が周期的に繰り返されるのみであり、ステップＳ５２でのバックアップＲＡＭ９内の格納データの異常判定も、ステップＳ５５でのバックアップＲＡＭ９内の制御変数の初期化も実行されない。
一方、市場で制御プログラムを書き換えるために用いられるメモリ書き換え装置１５は、消去コマンド信号Ｅを車両に搭載されている全てのＥＣＵに対して出力すると、書き換え手順を全て終了し、車載制御装置から切り離される。
【００７２】
続いて、メモリ書き換え装置１５を切り離した後に、車載制御装置を起動すると、ＣＰＵ６は、制御プログラムを起動させて、図８のフローチャートに示した処理ルーチンを再び開始する。
【００７３】
このとき、ステップＳ５２において、不揮発性ＲＯＭ７内の判定値とバックアップＲＡＭ９内の所定値とが不一致であり、バックアップＲＡＭ９内の格納データが異常である（すなわち、Ｙｅｓ）と判定され、ステップＳ５５で、バックアップＲＡＭ９内の制御変数が、新しい制御プログラムに対応した所定の値に初期化される。
【００７４】
これにより、容易な構成および作業手続で、バックアップＲＡＭ９内の制御変数の不適合による不具合を確実に回避することができる。
【００７５】
この発明の実施の形態２に係る車載制御装置によれば、メモリ書き換え装置１５が、ダイアグコードを消去させるための消去コマンド信号Ｅを出力し、制御プログラムが、書き換え終了後の起動時に、消去コマンド信号Ｅに応答してバックアップＲＡＭ９に記憶された所定値を異常値に設定し、次回起動時に、異常値と判定値との不一致状態に応答してバックアップＲＡＭ９内の制御変数を新しい制御プログラムに対応した所定の値に初期化する。
そのため、上記実施の形態１と同様の効果を奏することができる。
【００７６】
なお、上記実施の形態２では、制御プログラムが、消去コマンド信号Ｅに応答してバックアップＲＡＭ９に記憶された所定値を異常値に設定するとしたが、これに限定されない。制御プログラムは、消去コマンド信号Ｅに応答して、バックアップＲＡＭ９に記憶された所定値と異なる判定値を制御プログラムに設定してもよい。
この場合も、上記実施の形態２と同様の効果を奏することができる。
【００７７】
実施の形態３．
図９は、この発明の実施の形態３に係る車載制御装置を示すブロック図である。
図９において、制御装置１Ａは、ＣＰＵ６に接続され、電気的に消去および書き換え可能なＥＥＰＲＯＭ１６をさらに備えている。
その他の構成については、前述の実施の形態１と同様であり、その説明は省略する。
【００７８】
ＥＥＰＲＯＭ１６は、バックアップＲＡＭ９への給電が遮断した際のデータ保護のために設けられ、バックアップＲＡＭ９に記憶された制御変数と同じデータを格納している。
ここで、バックアップＲＡＭ９への給電が遮断した場合には、ＥＥＰＲＯＭ１６に格納された制御変数をバックアップＲＡＭ９内の所定の制御変数に格納する。
【００７９】
以下、図１０のフローチャートを参照しながら、この発明の実施の形態３に係る車載制御装置の動作について説明する。
図１０は、前述の制御プログラムの処理ルーチン（図８）に対応しており、ステップＳ６２が追加されたことを除けば、他のステップＳ５１〜Ｓ６１については、図８と同様である。
また、図示しない構成ならびに他の処理ルーチンおよび動作は、図２〜図６に示した通りであり、前述と同様の動作については、詳述を省略する。
【００８０】
まず、制御プログラムの更新が終了して、メモリ書き換え装置１５から出力される書き換え信号Ａがオンからオフに変化すると、ＣＰＵ６のメモリマップ内の実行アドレスは、図２（ａ）のように通常時の状態に切り換わり、ＣＰＵ６は、更新後の制御プログラムを起動させて、図１０のフローチャートに示した処理ルーチンを開始する。
【００８１】
すなわち、前述のように、ステップＳ５８において、コマンドが消去コマンド信号Ｅである（すなわち、Ｙｅｓ）と判定された場合には、ダイアグコードを消去する（ステップＳ５９）。また、バックアップＲＡＭ９内の格納データの異常を判定するステップＳ５２において使用されるバックアップＲＡＭ９に記憶された所定値を、不揮発性ＲＯＭ７に記憶された判定値と異なる異常値に設定する（ステップＳ６１）。
【００８２】
一方、市場で制御プログラムを書き換えるために用いられるメモリ書き換え装置１５は、消去コマンド信号Ｅを車両に搭載されている全てのＥＣＵに対して出力すると、書き換え手順を全て終了し、車載制御装置から切り離される。
【００８３】
続いて、メモリ書き換え装置１５を切り離した後に、車載制御装置を起動すると、ＣＰＵ６は、制御プログラムを起動させて、図１０のフローチャートに示した処理ルーチンを再び開始する。
【００８４】
このとき、ステップＳ５２において、不揮発性ＲＯＭ７内の判定値とバックアップＲＡＭ９内の所定値とが不一致であり、バックアップＲＡＭ９内の格納データが異常である（すなわち、Ｙｅｓ）と判定され、ステップＳ５５で、バックアップＲＡＭ９内の制御変数が、新しい制御プログラムに対応した所定の値に初期化される。
次に、ＥＥＰＲＯＭ１６に格納された制御定数のうち所定の制御変数を、バックアップＲＡＭ９内の所定の制御変数に格納する（ステップＳ６２）。
ここで、所定の制御変数とは、初期化せずに保持して再利用する必要がある制御変数を示す。
【００８５】
この発明の実施の形態３に係る車載制御装置によれば、制御プログラムは、バックアップＲＡＭ９内の制御変数を初期化した後、ＥＥＰＲＯＭ１６内の制御変数のうち所定の制御変数を、バックアップＲＡＭ９に格納する。
そのため、制御プログラムの書き換えに伴って、必要最小限の制御変数のみを初期化することができ、市場で制御プログラムを書き換えた場合であっても、初期化せずに保持して再利用したい制御変数をＥＥＰＲＯＭ１６からバックアップＲＡＭ９に格納することができるので、制御プログラム書き換え後の制御性を向上させることができる。
【００８６】
実施の形態４．
上記実施の形態１では、制御プログラムは、消去コマンド信号Ｅに応答してバックアップＲＡＭ９内の制御変数を初期化するとした。また、上記実施の形態２および３では、制御プログラムは、消去コマンド信号Ｅに応答して、バックアップＲＡＭ９内の格納データの異常を判定するステップＳ５２において異常判定されるように、バックアップＲＡＭ９に記憶された所定値を、不揮発性ＲＯＭ７に記憶された判定値と異なる異常値に設定するとした。
しかしながら、これに限定されず、制御プログラムは、メモリ書き換え装置１５から出力され、バックアップＲＡＭ９内の制御変数を初期化するための初期化コマンド信号に応答して、バックアップＲＡＭ９内の制御変数を初期化してもよい。
【００８７】
以下に、初期化コマンド信号に応答して、バックアップＲＡＭ９内の制御変数を初期化する処理について説明する。
この発明の実施の形態４に係る車載制御装置の構成は、前述の実施の形態３と同様なので、説明を省略する。
なお、初期化コマンド信号（図示せず）は、市場で制御プログラムを書き換えるために用いられるメモリ書き換え装置１５、および市場に流通するダイアグテスター等に書き換え手順として組み込まれるものとする。
【００８８】
以下、図１１のフローチャートを参照しながら、この発明の実施の形態４に係る車載制御装置の動作について説明する。
図１１は、前述の制御プログラムの処理ルーチン（図１０）に対応しており、ステップＳ６３が追加されたことを除けば、他のステップＳ５１〜Ｓ６２については、図１０と同様である。
また、図示しない構成ならびに他の処理ルーチンおよび動作は、図２〜図６に示した通りであり、前述と同様の動作については、詳述を省略する。
【００８９】
まず、制御プログラムの更新が終了して、メモリ書き換え装置１５から出力される書き換え信号Ａがオンからオフに変化すると、ＣＰＵ６のメモリマップ内の実行アドレスは、図２（ａ）のように通常時の状態に切り換わり、ＣＰＵ６は、更新後の制御プログラムを起動させて、図１１のフローチャートに示した処理ルーチンを開始する。
【００９０】
すなわち、メモリ書き換え装置１５からコマンドを受信したか否かを判定し（ステップＳ５７）、メモリ書き換え装置１５からコマンドを受信した（すなわち、Ｙｅｓ）と判定された場合には、そのコマンドが消去コマンド信号Ｅであるか否かを判定する（ステップＳ５８）。
【００９１】
ステップＳ５８において、コマンドが消去コマンド信号Ｅである（すなわち、Ｙｅｓ）と判定された場合には、ダイアグコードを消去して（ステップＳ５９）、メモリ書き換え装置１５から受信したコマンドが初期化コマンド信号であるか否かを判定する（ステップＳ６３）。
一方、ステップＳ５８において、コマンドが消去コマンド信号Ｅでない（すなわち、Ｎｏ）と判定された場合には、直ちにステップＳ６３に移行する。
【００９２】
ステップＳ６３において、コマンドが初期化コマンド信号である（すなわち、Ｙｅｓ）と判定された場合には、バックアップＲＡＭ９内の格納データの異常を判定するステップＳ５２において使用されるバックアップＲＡＭ９に記憶された所定値を、不揮発性ＲＯＭ７に記憶された判定値と異なる異常値に設定して（ステップＳ６１）、ステップＳ５４に移行して再び通常処理を実行する。
【００９３】
一方、ステップＳ５７において、メモリ書き換え装置１５からコマンドを受信していない（すなわち、Ｎｏ）と判定された場合、およびステップＳ６３において、初期化コマンド信号でない（すなわち、Ｎｏ）と判定された場合には、直ちにステップＳ５４に移行して再び通常処理を実行する。
【００９４】
この発明の実施の形態４に係る車載制御装置によれば、消去コマンド信号Ｅに応答してバックアップＲＡＭ９内の制御変数を初期化する代わりに、バックアップＲＡＭ９内の制御変数を初期化するための初期化コマンド信号を、市場で制御プログラムを書き換えるために用いられるメモリ書き換え装置１５、および市場に流通するダイアグテスター等に書き換え手順として組み込むことにより、上記実施の形態１〜３と同様の効果を奏することができる。
【図面の簡単な説明】
【００９５】
【図１】一般的な車載制御装置を示すブロック図である。
【図２】一般的な車載制御装置内のＣＰＵのメモリマップを示す説明図である。
【図３】一般的なブートプログラムの初期化制御ルーチンを示すフローチャートである。
【図４】一般的なブートプログラムのシリアル割り込み処理ルーチンを示すフローチャートである。
【図５】一般的な制御プログラム変更時の書き込み処理ルーチンを示すフローチャートである。
【図６】一般的な制御プログラムの処理動作を示すフローチャートである。
【図７】この発明の実施の形態１に係る車載制御装置の動作を示すフローチャートである。
【図８】この発明の実施の形態２に係る車載制御装置の動作を示すフローチャートである。
【図９】この発明の実施の形態３に係る車載制御装置を示すブロック図である。
【図１０】この発明の実施の形態３に係る車載制御装置の動作を示すフローチャートである。
【図１１】この発明の実施の形態４に係る車載制御装置の動作を示すフローチャートである。
【符号の説明】
【００９６】
１、１Ａ  制御装置、４  バックアップ電源回路、６  ＣＰＵ、７  不揮発性ＲＯＭ（不揮発性メモリ）、８  ブートプログラム、９  バックアップＲＡＭ、１０  アドレス切り換え回路、１５  メモリ書き換え装置、１６  ＥＥＰＲＯＭ、Ａ  書き換え信号、Ｃ  コマンド信号群、Ｅ  消去コマンド信号。
【図１】
2007257473.tif 000003
【図２】
2007257473.tif 000004
【図３】
2007257473.tif 000005
【図４】
2007257473.tif 000006
【図５】
2007257473.tif 000007
【図６】
2007257473.tif 000008
【図７】
2007257473.tif 000009
【図８】
2007257473.tif 000010
【図９】
2007257473.tif 000011
【図１０】
2007257473.tif 000012
【図１１】
2007257473.tif 000013