(57)【特許請求の範囲】
【請求項１】
車載制御装置（１０，１０Ａ，１０Ｂ）に搭載されるマイクロコンピュータ（１１，１１Ａ，１１Ｂ）であって、
書き換え可能且つ実行可能な状態でプログラムを記憶する第１メモリ領域（１２，１２Ａ，１２Ｂ）と、
書き換え可能且つ圧縮した状態でプログラムを記憶する第２メモリ領域（１３，１２４）と、を備え、
前記第１メモリ領域に記憶されている第１現行プログラムと、前記第２メモリ領域に記憶されている第２現行プログラムとが、同じ内容のプログラムとなるように構成されると共に、前記第１メモリ領域に新規プログラムを書き込んで前記第１現行プログラムを第３現行プログラムに更新するものであって、
前記第１メモリ領域への前記新規プログラムの書き込みにあたって、
前記第１メモリ領域への前記新規プログラムの書き込みが正常に完了しない場合には、前記第２現行プログラムを前記第１メモリ領域に転送すると共に、前記第１メモリ領域において書き換え可能かつ実行可能なように展開することを特徴とするマイクロコンピュータ。
【請求項２】
パワーオンリセット起動にあたって、
前記第１メモリ領域への前記新規プログラムの書き込みが正常に完了していなかった場合には、前記第２現行プログラムを前記第１メモリ領域に転送すると共に、前記第１メモリ領域において書き換え可能かつ実行可能なように展開することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記車載制御装置の外部から前記第１メモリ領域への書き換え要求コマンドを受け付けることが可能なように構成され、
パワーオンリセット起動にあたって、
前記第１メモリ領域への前記新規プログラムの書き込みが正常に完了し、前記新規プログラムが前記第１メモリ領域へ記憶された第３現行プログラムとなっている場合には、前記書き換え要求コマンドの受信後、前記第３現行プログラムを圧縮して前記第２メモリ領域に転送し、書き込むことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項４】
前記第１メモリ領域への前記新規プログラムの書き込みにあたって、
前記第１メモリ領域への前記新規プログラムの書き込みが完了し、前記新規プログラムが前記第１メモリ領域へ記憶された第３現行プログラムとなっていることを確認した後、前記第３現行プログラムを圧縮して前記第２メモリ領域に転送し、書き込むことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項５】
前記第２メモリ領域に記憶されている前記第３現行プログラムを読み出し、前記第１メモリ領域に記憶されている前記第３現行プログラムと比較して一致する場合には、
前記書き換え要求コマンド受信後の前記第２メモリ領域における書き込みを実施しないことを特徴とする請求項３に記載のマイクロコンピュータ。
【請求項６】
前記第３現行プログラムを圧縮して前記第２メモリ領域に転送し、書き込んだ後、前記第２メモリ領域に記憶されている前記第３現行プログラムを読み出し、前記第１メモリ領域に記憶されている前記第３現行プログラムと比較して一致しない場合には、
前記第１メモリ領域に記憶されている前記第３現行プログラムを前記第２メモリ領域への圧縮転送を再度実行することを特徴とする請求項３又は４に記載のマイクロコンピュータ。
【請求項７】
前記第１メモリ領域及び前記第２メモリ領域は、同一メモリ回路ブロック上に構成されていることを特徴とする請求項１から６のいずれか１項に記載のマイクロコンピュータ。
【請求項８】
前記車載制御装置の外部から前記第１メモリ領域への書き換え要求コマンドを受け付けることが可能なように構成され、
前記要求コマンドは、有線通信を介した送信及び無線通信を介した送信によって前記車載制御装置に送り込まれることを特徴とする請求項１から７のいずれか１項に記載のマイクロコンピュータ。
【請求項９】
前記第１メモリ領域内には、前記要求コマンドが無線通信を介した送信によって送り込まれるリモート書き換え中か否かを示すフラグ（１２５）が設けられ、
パワーオンリセット起動にあたって、
前記第１メモリ領域への前記新規プログラムの書き込みが正常に完了しておらず、且つ前記フラグがリモート書き換え中であることを示す場合には、前記第２現行プログラムを前記第１メモリ領域に転送すると共に、前記第１メモリ領域において書き換え可能かつ実行可能なように展開することを特徴とする請求項８に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載制御装置に搭載されるマイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータにおいては、実行用のプログラムデータが格納される領域と、バックアップ用のコピーデータを格納する領域とを形成する技術が知られている（下記特許文献１参照）。ところで、プログラムデータは更新されるものであるので、プログラムデータが記憶されているフラッシュＲＯＭを書き換える必要がある。このフラッシュＲＯＭの書き換えにあたっては、継続的な通信路異常等によって完全な更新が阻害され、フラッシュＲＯＭが不定状態となる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２０８９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したフラッシュＲＯＭの不定状態解消のため、例えば図１１に示されるような手法が考えられる。図１１では、旧プログラム（現在使用中の現行プログラム）がメモリ領域Ａに記憶され、制御実行している。メモリ領域Ａと同じ記憶容量のメモリ領域Ｂが設けられており、メモリ領域Ｂに新規プログラムが記憶され、制御実行を引き継いでいる。このような態様であれば、メモリ領域Ｂに記憶された新規プログラムが次の現行プログラムとして使用可能なように完全に記憶されているかを確認し、その確認が終わってから切り替えを行うことができる。しかしながら、本来必要であるメモリ容量の２倍の容量を使うことになり、全体として大容量のメモリを要するものである。
【０００５】
一方、図１２に示されるような手法も考えられる。図１２でも同様に、旧プログラムがメモリ領域Ａに記憶され、制御実行している。メモリ領域Ａに記憶されている旧プログラムは別メモリに退避され、メモリ領域Ａには新規プログラムが書き込まれる。新規プログラムの書き込みが正常に完了すれば、メモリ領域Ａに記憶された新規プログラムによる制御が実行される。新規プログラムの書き込みが正常に完了しなければ、別メモリに退避させた旧プログラムをメモリ領域Ａに書き戻して対応している。この場合も、本来必要であるメモリ容量の２倍の容量を使うことになり、全体として大容量のメモリを要するものである。また、プログラムデータが大容量の場合には、データ転送に多くの時間がかかるという懸念もある。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、車載制御装置に搭載されるマイクロコンピュータであって、プログラムを記憶するメモリの容量を極力大きくすることなく、データ更新の時間も短縮することができるマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係るマイクロコンピュータは、車載制御装置（１０，１０Ａ，１０Ｂ）に搭載されるマイクロコンピュータ（１１，１１Ａ，１１Ｂ）であって、書き換え可能且つ実行可能な状態でプログラムを記憶する第１メモリ領域（１２，１２Ａ，１２Ｂ）と、書き換え可能且つ圧縮した状態でプログラムを記憶する第２メモリ領域（１３，１２４）と、を備え、前記第１メモリ領域に記憶されている第１現行プログラムと、前記第２メモリ領域に記憶されている第２現行プログラムとが、同じ内容のプログラムとなるように構成されると共に、前記第１メモリ領域に新規プログラムを書き込んで前記第１現行プログラムを第３現行プログラムに更新するものであって、前記第１メモリ領域への前記新規プログラムの書き込みにあたって、前記第１メモリ領域への前記新規プログラムの書き込みが正常に完了しない場合には、前記第２現行プログラムを前記第１メモリ領域に転送すると共に、前記第１メモリ領域において書き換え可能かつ実行可能なように展開する。
【０００８】
本発明によれば、書き換え可能且つ実行可能な状態でプログラムを記憶する第１メモリ領域に記憶されている第１現行プログラムと、書き換え可能且つ圧縮した状態でプログラムを記憶する第２メモリ領域に記憶されている第２現行プログラムとが同一のものとなるように構成されているので、メモリの容量を大きくすることなくバックアップデータを保持することが出来る。また、第２メモリ領域に記憶されている第２現行プログラムは圧縮されているので、第１メモリ領域に転送する際に時間短縮を図ることができ、データ更新の時間を短縮することができる。このような状態で、第１メモリ領域に新規プログラムを書き込んで第１現行プログラムを第３現行プログラムに更新することができるので、書き換え中の電源断線などの物理障害が発生した場合でも、第２メモリ領域から第１メモリ領域に第２現行プログラムを転送することができ、第１メモリ領域が不定状態となることを避けることができる。
【発明の効果】
【０００９】
本発明によれば、車載制御装置に搭載されるマイクロコンピュータであって、プログラムを記憶するメモリの容量を極力大きくすることなく、データ更新の時間も短縮することができるマイクロコンピュータを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態であるマイクロコンピュータの構成を示すブロック図である。
【図２】図１の機能的な構成を示すブロック図である。
【図３】図１に示すマイクロコンピュータの動作を示すフローチャートである。
【図４】図１に示すマイクロコンピュータの動作を示すフローチャートである。
【図５】図１に示すマイクロコンピュータの変形例を示すブロック図である。
【図６】図１に示すマイクロコンピュータの動作を示すフローチャートである。
【図７】図１に示すマイクロコンピュータの動作を示すフローチャートである。
【図８】図１に示すマイクロコンピュータの変形例における動作を示すフローチャートである。
【図９】図１に示すマイクロコンピュータの変形例を示すブロック図である。
【図１０】図１に示すマイクロコンピュータの動作を示すフローチャートである。
【図１１】従来技術を説明するための参考図である。
【図１２】従来技術を説明するための参考図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１２】
図１を参照しながら本発明の実施形態であるマイクロコンピュータ１１について説明する。図１においては、車載制御装置であるＥＣＵ１０は、外部接続ライタ２０から送信される書き換え要求コマンド、センター５０から送信される書き換え要求コマンドをそれぞれ受信し、プログラムの書き換えを行うように構成されている。
【００１３】
外部接続ライタ２０は、ディーラー等で接続される機器であって、有線通信経路である車内ＬＡＮを介して書き換え要求コマンドを送信する。センター５０から送信される書き換え要求コマンドは、通信機４０及び通信用のＥＣＵ３０を介して書き換え要求コマンドを送信する。ＥＣＵ３０は、通信用の制御装置であって、通信機４０をコントロールするものである。いずれの場合も、書き換え要求コマンドはＥＣＵ１０に送信される。
【００１４】
ＥＣＵ１０は、マイクロコンピュータ１１を有する。マイクロコンピュータ１１は、メモリ領域Ａ１２（第１メモリ領域）と、メモリ領域Ｂ１３（第２メモリ領域）と、ＣＰＵ１４とを有している。
【００１５】
メモリ領域Ａ１２は、フラッシュＲＯＭであって、ブートプログラムが格納される領域１２１と、制御アプリプログラム（非圧縮）が格納される領域１２２と、を有している。領域１２２には、制御アプリプログラムの書き込みが正常に完了しているか否かを示す書き込み完了可否判定フラグ１２３を有している。
【００１６】
メモリ領域Ｂ１３は、フラッシュＲＯＭであって、制御アプリプログラム（圧縮）を格納する領域である。ＣＰＵ１４は、通常の制御動作に加えて、ブートプログラムに従ってメモリ領域Ａ１２及びメモリ領域Ｂ１３の書き換え動作を行うものである。
【００１７】
図２に示されるように、ＣＰＵ１４のブートプログラムに従った書き換え動作によって、メモリ領域Ａ１２及びメモリ領域Ｂ１３それぞれに機能ブロックが形成される。メモリ領域Ａ１２は、機能ブロックとして、フラッシュ書き換え機能１２ａと、圧縮（暗号）機能１２ｂと、解凍（復号）機能１２ｃと、を有する。メモリ領域Ｂ１３は、フラッシュ書き換え機能１３ａを有する。
【００１８】
上述したマイクロコンピュータ１１の動作について、図３を参照しながら説明する。図３は、マイクロコンピュータ１１の動作であって、メモリ領域Ａ１２の処理フローを示すフローチャートである。ステップＳ１０１では、パワーオンリセットを解除する。
【００１９】
ステップＳ１０１に続くステップＳ１０２では、メモリ領域Ａ１２に制御アプリプログラムが第１現行プログラムとして正常に書き込まれているか否かを判断する。具体的には、書き込み完了可否判定フラグ１２３を確認するとこでこの判断を行う。メモリ領域Ａ１２に制御アプリプログラムが第１現行プログラムとして正常に書き込まれていればステップＳ１０３の処理に進み、メモリ領域Ａ１２に制御アプリプログラムが第１現行プログラムとして正常に書き込まれていなければステップＳ１１１の処理に進む。
【００２０】
ステップＳ１０３では、メモリ領域Ａ１２に格納されている制御アプリプログラムを起動し、通常制御が実施される。ステップＳ１０３に続くステップＳ１０４では、ＥＣＵ１０の外部より送信された書き換え要求コマンドを受信したか判断する。ＥＣＵ１０の外部とは、外部接続ライタ２０又はセンター５０から送信されることを示す。ＥＣＵ１０の外部より送信された書き換え要求コマンドを受信していればステップＳ１０５の処理に進み、ＥＣＵ１０の外部より送信された書き換え要求コマンドを受信していなければ、ステップＳ１０３の処理に戻る。
【００２１】
ステップＳ１０５では、現在メモリ領域Ａ１２に格納されている第１現行プログラムを圧縮して暗号化し、メモリ領域Ｂ１３に転送し、メモリ領域Ｂ１３に暗号化且つ圧縮された第１現行プログラムを記憶する。従って、メモリ領域Ｂ１３に格納されるプログラムは第１現行プログラムと同一となり、この時点で、メモリ領域Ａ１２に格納されるプログラムとメモリ領域Ｂ１３に格納されるプログラムとが同一のものとなる。
【００２２】
ステップＳ１０５に続くステップＳ１０６では、メモリ領域Ａ１２に記憶されている第１現行プログラムを消去する。ステップＳ１０６に続くステップＳ１０７では、メモリ領域Ａ１２へ受信した新規プログラムを書き込む。新規プログラムは、メモリ領域Ａ１２に記憶された段階で、第３現行プログラムとなる。
【００２３】
ステップＳ１０７に続くステップＳ１０８では、メモリ領域Ａ１２をベリファイする。ステップＳ１０８に続くステップＳ１０９では、メモリ領域Ａ１２に新規プログラムが正常に書き込まれ、第３現行プログラムの書き込みが正常に完了しているか否かを示す書き込み完了可否判定フラグ１２３の状態を確認する。メモリ領域Ａ１２に新規プログラムが正常に書き込まれていれば、ステップＳ１１０の処理に進み、メモリ領域Ａ１２に新規プログラムが正常に書き込まれていなければステップＳ１１１の処理に進む。
【００２４】
ステップＳ１１０では、メモリ領域Ａ１２に格納されている第３現行プログラムを圧縮して暗号化し、メモリ領域Ｂ１３に転送し、メモリ領域Ｂ１３に暗号化且つ圧縮された第３現行プログラムを記憶する。従って、メモリ領域Ｂ１３に格納される第２現行プログラムは第３現行プログラムと同一となり、この時点で、メモリ領域Ａ１２に格納されるプログラムとメモリ領域Ｂ１３に格納されるプログラムとが同一のものとなる。
【００２５】
ステップＳ１１１では、メモリ領域Ｂ１３に記憶されている旧プログラムであって暗号化且つ圧縮されている第１現行プログラム若しくは第２現行プログラムを読み出す。ステップＳ１１２では、読み出した第１現行プログラム若しくは第２現行プログラムを復号化及び解凍し、メモリ領域Ａ１２に書き込む。
【００２６】
続いて、図４を参照しながら、メモリ領域Ｂ１３の処理フローを説明する。図４は、マイクロコンピュータ１１の動作であって、メモリ領域Ｂ１３の処理フローを示すフローチャートである。
【００２７】
ステップＳ２０１では、パワーオンリセットを解除する。ステップＳ２０１に続くステップＳ２０２では、メモリ領域Ｂ１３に記憶されている第１現行プログラム若しくは第２現行プログラムの読み出し要求があったか否かを判断する。読み出し要求があればステップＳ２０３の処理に進み、読み出し要求がなければステップＳ２０４の処理に進む。
【００２８】
ステップＳ２０３では、メモリ領域Ｂ１３からメモリ領域Ａ１２へ、旧プログラムである第１現行プログラム若しくは第２現行プログラムを送信する。
【００２９】
ステップＳ２０４では、メモリ領域Ｂ１３へ、圧縮された新規プログラムである第３現行プログラムの書き込み要求があったか否かを判断する。書き込み要求があればステップＳ２０５の処理に進み、書き込み要求がなければ処理を終了する。
【００３０】
ステップＳ２０５では、メモリ領域Ｂ１３に記憶されているデータを消去する。ステップＳ２０５に続くステップＳ２０６では、メモリ領域Ｂ１３へ圧縮された新規プログラムである第３現行プログラムを書き込む。ステップＳ２０６に続くステップＳ２０７では、メモリ領域Ｂ１３をベリファイする。
【００３１】
図１及び図２に示されたマイクロコンピュータ１１では、メモリ領域Ａ１２とメモリ領域Ｂ１３とを別の回路ブロックで構成する状態を示しているが、メモリ領域の形成態様はこれに限られるものではない。例えば、図５に示されるＥＣＵ１０Ａ及びマイクロコンピュータ１１Ａでは、同一の回路ブロックに、ブートプログラムが記憶される領域１２１と、制御アプリプログラム（非圧縮）が記憶される領域１２２と、制御アプリプログラム（圧縮）が記憶される領域１２４を有するメモリ領域１２Ａを形成している。このように、メモリ領域を同一の回路ブロック上に形成することで、転送速度の処理高速化を図ることができる。
【００３２】
続いて、図３のステップＳ１０５において説明したメモリ領域Ｂ１３への圧縮プログラム転送の付帯的な処理について、図６及び図７を参照しながら説明する。
【００３３】
図６に示されるフローチャートでは、ステップＳ３０１において、メモリ領域Ｂ１３に記憶されている圧縮プログラムを読み出す。ステップＳ３０２では、メモリ領域Ｂ１３から読み出して解凍したプログラムと、メモリ領域Ａ１２に記憶されているプログラムとが一致するか否かを判断する。一致すれば図３に示すステップＳ１０５の処理はスキップして処理を終了し、不一致であればステップＳ３０３の処理に進む。
【００３４】
ステップＳ３０３では、ステップＳ１０５と同様に、現在メモリ領域Ａ１２に格納されている第１現行プログラムを圧縮して暗号化し、メモリ領域Ｂ１３に転送し、メモリ領域Ｂ１３に暗号化且つ圧縮された第１現行プログラムを記憶する。
【００３５】
図７に示されるフローチャートでは、ステップＳ４０１において、メモリ領域Ｂ１３に記憶されている圧縮プログラムを読み出す。ステップＳ４０２では、メモリ領域Ｂ１３から読み出して解凍したプログラムと、メモリ領域Ａ１２に記憶されているプログラムとが一致するか否かを判断する。一致すれば図３に示すステップＳ１０５の処理はスキップして処理を終了し、不一致であればステップＳ４０３の処理に進む。
【００３６】
ステップＳ４０３では、ステップＳ１０５と同様に、現在メモリ領域Ａ１２に格納されている第１現行プログラムを圧縮して暗号化し、メモリ領域Ｂ１３に転送し、メモリ領域Ｂ１３に暗号化且つ圧縮された第１現行プログラムを記憶する。
【００３７】
図７に示されるフローチャートでは、ステップＳ４０３の処理後、ステップＳ４０２の処理に戻っている。このようにすることで、ステップＳ４０３の処理による第１現行プログラムの転送が確実に行われたか否かを判断することができる。
【００３８】
続いて、図８及び図９を参照しながら、図１に示したＥＣＵ１０及びマイクロコンピュータ１１の変形例である、ＥＣＵ１０Ｂ及びマイクロコンピュータ１１Ｂの構成及び動作について説明する。図９に示されるように、マイクロコンピュータ１１Ｂでは、メモリ領域Ａ１２Ｂに設けられた領域１２２Ｂに、リモート書き換え中フラグ１２５を設けている。
【００３９】
図８のステップＳ５０１では、パワーオンリセットを解除する。ステップＳ５０１に続くステップＳ５０２では、メモリ領域Ａ１２Ｂに制御アプリプログラムが第１現行プログラムとして正常に書き込まれているか否かを判断する。具体的には、書き込み完了可否判定フラグ１２３を確認するとこでこの判断を行う。メモリ領域Ａ１２Ｂに制御アプリプログラムが第１現行プログラムとして正常に書き込まれていればステップＳ５０３の処理に進み、メモリ領域Ａ１２Ｂに制御アプリプログラムが第１現行プログラムとして正常に書き込まれていなければステップＳ５１３の処理に進む。
【００４０】
ステップＳ５０３では、メモリ領域Ａ１２に格納されている制御アプリプログラムを起動し、通常制御が実施される。ステップＳ５０３に続くステップＳ５０４では、ＥＣＵ１０の外部より送信されたリモート書き換え要求コマンドを受信したか判断する。リモート書き換え要求コマンドとは、センター５０から送信されるコマンドである。リモート書き換え要求コマンドを受信していればステップＳ５０５の処理に進み、リモート書き換え要求コマンドを受信していなければ、ステップＳ５０３の処理に戻る。
【００４１】
ステップＳ５０５では、リモート書き換え中フラグ１２５をＯＮにする。ステップＳ５０５に続くステップＳ５０６では、現在メモリ領域Ａ１２Ｂに格納されている第１現行プログラムを圧縮して暗号化し、メモリ領域Ｂ１３に転送し、メモリ領域Ｂ１３に暗号化且つ圧縮された第１現行プログラムを記憶する。従って、メモリ領域Ｂ１３に格納されるプログラムは第１現行プログラムと同一となり、この時点で、メモリ領域Ａ１２Ｂに格納されるプログラムとメモリ領域Ｂ１３に格納されるプログラムとが同一のものとなる。
【００４２】
ステップＳ５０６に続くステップＳ５０７では、メモリ領域Ａ１２に記憶されている第１現行プログラムを消去する。ステップＳ５０７に続くステップＳ５０８では、メモリ領域Ａ１２Ｂへ受信した新規プログラムを書き込む。新規プログラムは、メモリ領域Ａ１２Ｂに記憶された段階で、第３現行プログラムとなる。
【００４３】
ステップＳ５０８に続くステップＳ５０９では、メモリ領域Ａ１２Ｂをベリファイする。ステップＳ５０９に続くステップＳ５１０では、メモリ領域Ａ１２Ｂに新規プログラムが正常に書き込まれ、第３現行プログラムが問題なく走るか確認する。メモリ領域Ａ１２Ｂに新規プログラムが正常に書き込まれていれば、ステップＳ５１１の処理に進み、メモリ領域Ａ１２Ｂに新規プログラムが正常に書き込まれていなければステップＳ５１６の処理に進む。
【００４４】
ステップＳ５１１では、リモート書き換え中フラグ１２５をＯＦＦにする。ステップＳ５１１に続くステップＳ５１２では、メモリ領域Ａ１２Ｂに格納されている第３現行プログラムを圧縮して暗号化し、メモリ領域Ｂ１３に転送し、メモリ領域Ｂ１３に暗号化且つ圧縮された第３現行プログラムを記憶する。従って、メモリ領域Ｂ１３に格納される第２現行プログラムは第３現行プログラムと同一となり、この時点で、メモリ領域Ａ１２Ｂに格納されるプログラムとメモリ領域Ｂ１３に格納されるプログラムとが同一のものとなる。
【００４５】
ステップＳ５１３では、リモート書き換え中フラグ１２５がＯＮになっているか否かを判断する。リモート書き換え中フラグ１２５がＯＮになっていればステップＳ５１６の処理に進み、リモート書き換え中フラグ１２５がＯＮになっていなければステップＳ５１４の処理に進む。
【００４６】
ステップＳ５１６では、メモリ領域Ｂ１３に記憶されている旧プログラムであって暗号化且つ圧縮されている第１現行プログラム若しくは第２現行プログラムを読み出す。ステップＳ５１６に続くステップＳ５１７では、読み出した第１現行プログラム若しくは第２現行プログラムを復号化及び解凍し、メモリ領域Ａ１２Ｂに書き込む。
【００４７】
ステップＳ５１７に続くステップＳ５１８では、リモート書き換え中フラグ１２５をＯＦＦにする。ステップＳ５１８に続くステップＳ５１９では、リモート書き換え要求コマンドを受信したか判断する。リモート書き換え要求コマンドを受信していればステップＳ５０５の処理に進み、リモート書き換え要求コマンドを受信していなければ、ステップＳ５１９の処理を繰り返す。
【００４８】
ステップＳ５１４では、ブートプログラムを起動し、書き換え要求の受信待機状態となる。ステップＳ５１４に続くステップＳ５１５では、外部接続ライタ２０からの書き換え要求コマンドを受信したか否かを判断する。外部接続ライタ２０からの書き換え要求コマンドを受信していればステップＳ５１６の処理に進み、外部接続ライタ２０からの書き換え要求コマンドを受信していなければステップＳ５１５の処理を繰り返す。
【００４９】
ステップＳ５１６では、外部接続ライタ２０からの書き換え要求コマンドに基づいたメモリ領域Ａ１２Ｂの書き換えを実行する。ステップＳ５１６の処理が終了すると、ステップＳ５０７の処理に進む。
【００５０】
図１，５，９に示すように、通信用のＥＣＵ３０及び通信機４０を有し、センター５０と通信可能なように構成された場合の、リモート書き換え要求コマンドの処理について図１０を参照しながら説明する。
【００５１】
ステップＳ６０１では、パワーオンリセットを解除する。ステップＳ６０２では、ＥＣＵ３０がセンター５０からリモート書き換え要求コマンドを受信したか否かを判断する。リモート書き換え要求コマンドを受信すればステップＳ６０３の処理に進み、リモート書き換え要求を受信しなければ処理を終了する。ステップＳ６０３では、リモート書き換え要求コマンドを車両ネットワークへ送信する。車両ネットワークに送信されたリモート書き換えコマンドはＥＣＵ１０，１０Ａ，１０Ｂが受信し、マイクロコンピュータ１１，１１Ａ，１１Ｂが上述した情報処理を実行する。
【符号の説明】
【００５２】
１０，１０Ａ，１０Ｂ：ＥＣＵ（車載制御装置）
１１，１１Ａ，１１Ｂ：マイクロコンピュータ
１２，１２Ａ，１２Ｂ：メモリ領域Ａ（第１メモリ領域）
１３：メモリ領域Ｂ（第２メモリ領域）
１２４：領域（第２メモリ領域）
【図１】
0006354566.tif 000002
【図２】
0006354566.tif 000003
【図３】
0006354566.tif 000004
【図４】
0006354566.tif 000005
【図５】
0006354566.tif 000006
【図６】
0006354566.tif 000007
【図７】
0006354566.tif 000008
【図８】
0006354566.tif 000009
【図９】
0006354566.tif 000010
【図１０】
0006354566.tif 000011
【図１１】
0006354566.tif 000012
【図１２】
0006354566.tif 000013