(57)【要約】【課題】不揮発性メモリに格納されるアプリケーションプログラムの書き換えに失敗したときに、通信プログラムを自動的に切り換えて再書き換えを行わせることができるようにする。【解決手段】アプリケーションプログラム及び通信プログラム（１）をフラッシュメモリ４のブロックＢに格納させる一方、書き換え判定プログラム及び通信プログラム（２）をフラッシュメモリ４のブロックＡに格納させ、アプリケーションプログラムの書き換え完了時に、判定データを前記ブロックＢに書き込ませる。再書き換え時に、前記判定データが書き込まれていない場合には、前回書き換えに失敗したものと判断し、通信プログラム（２）に切り換えて再書き換えを行わせる。【選択図】　図１
2004005152.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位でデータが電気的に消去される不揮発性メモリの書き換え装置であって、
外部ツールと通信を行うための複数の通信プログラムを別々のブロックに格納させる一方、プログラムの書き換え完了後に書き換えエラーを判定するための判定データを所定の格納領域に書き込み、プログラムの再書き換え開始前に前記判定データの正常・異常判定を行い、該判定結果に基づいて前記外部ツールとの通信に使用する通信プログラムを前記複数の通信プログラムの中から選択することを特徴とする不揮発性メモリの書き換え装置。
【請求項２】
前記複数の通信プログラムとして、書き換えられるアプリケーションプログラムと同じブロックに格納される第１通信プログラムと、該第１通信プログラムとは異なるブロックに格納される第２通信プログラムとを備え、
前記アプリケーションプログラムの再書き換え開始前に、前記判定データが正常であると判定されたときには、前記第１通信プログラムを使用して前記外部ツールとの通信を行わせ、前記判定データが異常であると判定されたときには、前記第２通信プログラムを使用して前記外部ツールとの通信を行わせることを特徴とする請求項１記載の不揮発性メモリの書き換え装置。
【請求項３】
前記所定の格納領域が前記アプリケーションプログラム及び第１通信プログラムが格納されるブロックと同じブロック内に設定され、
前記プログラムの再書き換え開始前に、前記判定データが前記所定の格納領域に書き込まれていないときに、異常と判定することを特徴とする請求項２記載の不揮発性メモリの書き換え装置。
【請求項４】
前記判定データと比較させるための比較用データを予め第２通信プログラムが格納されるブロックに格納し、前記アプリケーションプログラムの書き換え完了後に、前記アプリケーションプログラム内に格納されている判定データを所定の格納領域に書き込み、前記比較用データと判定データとの不一致を異常と判定することを特徴とする請求項２又は３記載の不揮発性メモリの書き換え装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブロック単位でデータが電気的に消去される不揮発性メモリであって、例えば車両のエンジンコントロールユニットなどに用いられる不揮発性メモリの書き換え装置に関する。
【０００２】
【従来の技術】
従来、ブロック単位でデータが電気的に消去される不揮発性メモリ（フラッシュメモリ）の書き換え装置としては、特開２００１−２２９０１４号公報に開示されるようなものがあった。
このものは、外部ツールと通信するための２つの通信プログラムを、フラッシュメモリの別々のブロックに格納する一方、これら２つの通信プログラムのいずれを用いるかを選択するためのスイッチを備える構成である。
【０００３】
【発明が解決しようとする課題】
ところで、上記従来装置では、第１通信プログラムが格納されるブロックの書き換えに失敗したときに、スイッチ操作によって第２通信プログラムを選択して、再書き換え時に外部ツールとの通信を行わせることが可能であるが、スイッチを設けることによって部品数が増大し、また、スイッチ操作による工数の増大や効率の低下が問題となっていた。
【０００４】
本発明は上記問題点に鑑みなされたものであり、書き換えエラーの発生を的確に判定して、通信プログラムの切り換えを自動的に行わせることができる不揮発性メモリの書き換え装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
そのため、請求項１記載の発明では、外部ツールと通信を行うための複数の通信プログラムを別々のブロックに格納させる一方、プログラムの書き換え完了後に書き換えエラーを判定するための判定データを所定の格納領域に書き込み、プログラムの再書き換え開始前に前記判定データの正常・異常判定を行い、該判定結果に基づいて外部ツールとの通信に使用する通信プログラムを選択する構成とした。
【０００６】
上記構成によると、プログラムの書き換えが完了した時点で、書き換えエラーを判定するためのデータを所定の格納領域に書き込むようにし、再書き換え開始前には、前記判定データが正常であるか異常であるかの判別を行って、再書き換えにおいて用いる通信プログラムを選択する。
従って、再書き換えを行うときに、前回の書き換えにおけるエラーの発生（書き込みの失敗，誤ったプログラムへの書き換え）が判定データに基づいて判断され、エラー発生時に書き換え処理が行われた通信プログラム以外の通信プログラムを自動的に選択させて、再書き換えを行わせることができる。
【０００７】
請求項２記載の発明では、複数の通信プログラムとして、書き換えられるアプリケーションプログラムと同じブロックに格納される第１通信プログラムと、該第１通信プログラムとは異なるブロックに格納される第２通信プログラムとを備え、前記アプリケーションプログラムの再書き換え開始前に、判定データが正常であると判定されたときには第１通信プログラムを使用し、判定データが異常であると判定されたときには第２通信プログラムを使用して外部ツールとの通信を行わせる構成とした。
【０００８】
上記構成によると、判定データからアプリケーションプログラムの書き換え失敗が判定されたときには、同じブロックに格納されている第１通信プログラムの書き換えも失敗しているから、書き換えが行われていない第２通信プログラムを使用して外部ツールとの通信を行わせることで、再書き換えを可能にする。
従って、アプリケーションプログラムの書き換えに失敗して、同時に、第１通信プログラムが使用不能になっても、第２通信プログラムに自動的に切り換えて、アプリケーションプログラムの再書き換えを行える。
【０００９】
請求項３記載の発明では、前記判定データの格納領域がアプリケーションプログラム及び第１通信プログラムが格納されるブロックと同じブロック内に設定され、判定データが前記所定の格納領域に書き込まれていないときに、異常と判定する構成とした。
上記構成によると、書き換えに伴って判定データも消去された後、書き換えが完了せずに判定データの書き換えが行われなかった場合に、再書き換え時に異常と判定されて、第２通信プログラムを用いて通信を行わせる。
【００１０】
従って、判定データに基づいて書き換え失敗が確実に判定されることになる。請求項４記載の発明では、判定データと比較させるための比較用データを予め第２通信プログラムが格納されるブロックに格納し、アプリケーションプログラムの書き換え完了後に、アプリケーションプログラム内に格納されている判定データを所定の格納領域に書き込み、比較用データと判定データとの不一致を異常と判定する構成とした。
【００１１】
上記構成によると、アプリケーションプログラムが格納されるブロックとは異なるブロックに比較用データが予め格納される一方、書き換え完了に伴ってアプリケーションプログラム内に格納されている判定データを書き込み、該書き込まれた判定データと前記比較用データとの比較によって、不揮発性メモリに予め登録されている所望のアプリケーションプログラムに書き換えられたか否かを判別する。
【００１２】
従って、不揮発性メモリ毎に、メモリと格納されるべきアプリケーションプログラムとの相関が設定されることになり、書き換えられたアプリケーションプログラムが不正なものであるか否かを確実に判定できる。
【００１３】
【発明の実施の形態】
以下に本発明の実施の形態を説明する。
図１は、実施の形態における不揮発性メモリの書き換え装置の全体構成を示すブロック図である。
この図１において、エンジンコントロールユニット（以下、ＥＣＵと略す。）１は、車両用エンジンにおける燃料供給量や点火時期を制御するためのものであり、マイクロコンピュータ２，ＲＡＭ３及びブロック単位でデータが電気的に消去されるフラッシュメモリ（不揮発性メモリ）４を含んで構成される。
【００１４】
前記マイクロコンピュータ２は、ＣＰＵ，内蔵ＲＡＭ，タイマ，Ａ／Ｄコンバータ，ＳＣＩ等を備えて構成され、ＲＡＭ３やフラッシュメモリ４に格納された各種のプログラムを実行する。
前記フラッシュメモリ４の記憶領域は、ブロックＡとブロックＢとを含んで構成される。
【００１５】
前記ブロックＡには、アプリケーションプログラムの書き換えエラーを判定するための書き換え判定プログラム、及び、書き換え時に外部ツールと通信を行うための通信プログラム（２）（第２通信プログラム）が格納されている。
前記書き換え判定プログラムは、電源投入時に後述する判定データが正常であるか否かを判定する機能を備えたプログラムである。
【００１６】
尚、前記書き換え判定プログラムには、前記判定データと比較される比較用データ（基準データ）が予め記憶されている。
前記比較用データは、例えば、当該ＥＣＵ１が対応する車種を識別する情報として設定される。
また、前記通信プログラム（２）は、起動時に通信システムを初期化する機能と、フラッシュメモリ４の書き換え要求時に外部ツールに格納されているプログラムをＲＡＭ３に転送させる機能とを備えたプログラムである。
【００１７】
一方、前記ブロックＢは、書き換えが行われるブロックであり、書き換え時に外部ツールと通信を行うための通信プログラム（１）（第１通信プログラム）、及び、エンジン制御用のアプリケーションプログラムが格納されると共に、判定データの格納領域が設定される。
前記通信プログラム（１）は、前記通信プログラム（２）と同様に、起動時に通信システムを初期化する機能と、フラッシュメモリ４の書き換え要求時に外部ツールに格納されているプログラムをＲＡＭ３に転送させる機能とを備えたプログラムである。
【００１８】
また、エンジン制御用のアプリケーションプログラムは、車両用エンジンに備えられた各種センサからの検出信号を入力して演算処理し、燃料噴射弁や点火プラグ（パワートランジスタ）などの制御信号を出力する機能を備えたプログラムである。
前記判定データの格納領域は、フラッシュメモリ４のベリファイ実行後に、書き換えエラーの判定に用いる判定データが格納される領域である。
【００１９】
外部ツールとしてのフラッシュ書き込みツール５には、消去＆書き込みプログラム及び新たなエンジン制御用のアプリケーションプログラムが格納されており、前記ＥＣＵ１と通信回線６を介して接続される。
上記構成におけるアプリケーションプログラムの書き換え処理を、図２〜図５のフローチャートに従って説明する。
【００２０】
前記フラッシュ書き込みツール５とＥＣＵ１とを通信回線６を介して接続し、ＥＣＵ１に電源電圧を供給すると、図２のフローチャートのステップＳ１００において、判定データ格納領域に格納されている判定データが正常であるか異常であるかの判定が、書き換え判定プログラムの機能によって行われる。
前記正常・異常の判定は、予め書き換え判定プログラムに記憶されている比較用データと、判定データ格納領域に格納されている判定データとが一致する場合を正常と判定し、両データが不一致であるとき及び判定データ格納領域にデータが格納されていない場合を異常と判断する。
【００２１】
判定データが正常であると判別されると、ステップＳ１１０へ進んで通信プログラム（１）の処理を行わせ、判定データが異常であると判別されると、ステップＳ１２０へ進んで通信プログラム（２）の処理を行わせる。
図３のフローチャートは、前記通信プログラム（１）の処理を示すものであり、ステップＳ２００では、ＥＣＵ１とフラッシュ書き込みツール５との間の通信を確立させ、次のステップＳ２１０では、フラッシュ書き込みツール５に格納されている消去＆書き込みプログラム及び新アプリケーションプログラムをＲＡＭ３へ転送させる。
【００２２】
図４のフローチャートは、前記通信プログラム（２）の処理を示すものであり、前記通信プログラム（１）の処理と同様に、まず、ステップＳ３００では、ＥＣＵ１とフラッシュ書き込みツール５との間の通信を確立させ、次のステップＳ３１０では、フラッシュ書き込みツール５に格納されている消去＆書き込みプログラム及び新アプリケーションプログラムをＲＡＭ３へ転送させる。
【００２３】
前記通信プログラム（１）又は通信プログラム（２）によって、ＲＡＭ３に消去＆書き込みプログラム及び新アプリケーションプログラムが転送されると、図２のフローチャートのステップＳ１３０へ進んで、消去＆書き込みプログラムの処理を行わせる。
図５のフローチャートは、消去＆書き込みプログラムの処理を示すものであり、ステップＳ４００では、フラッシュメモリ４のブロックＢを消去し、その後、新アプリケーションプログラムをブロックＢの記憶領域に書き込む。
【００２４】
尚、上記ブロックＢの消去によって、旧アプリケーションプログラムと共に、通信プログラム（１）が消去されるので、前記通信プログラム（１）の書き込みを同時に行わせる。
前記通信プログラム（１）の書き込みは、新アプリケーションプログラムと対にフラッシュ書き込みツール５側からＲＡＭ３に通信プログラム（１）を転送させて行わせるようにすれば良い。
【００２５】
ステップＳ４１０では、ベリファイを実行する。
前記ベリファイは、フラッシュメモリ４に実際に書き込まれたプログラムと、フラッシュ書き込みツール５から送信されたプログラムとが、一致するか否かを判定するものである。
ステップＳ４２０では、前記ベリファイ判定により、プログラム内容が一致しているか、ノイズ等の影響で不一致が発生しているかを判別する。
【００２６】
そして、プログラム内容の不一致が発生していると判定されたときには、ステップＳ４００へ戻って、消去及び書き込みの動作を再度行わせる。
プログラム内容の一致していて、プログラムの書き換えの完了が判定されると、図２のフローチャートのステップＳ１４０へ進み、判定データを前記判定データ格納領域に格納させる。
【００２７】
前記判定データは、予め新アプリケーションプログラム内に格納されており、例えば、新アプリケーションプログラムが対応する車種の情報を判定データとして、判定データ格納領域に格納させる。
上記ステップＳ１４０の判定データの格納を最後に、書き換え処理が終了するが、ステップＳ１４０の処理が終了する前に、電源が供給されなくなったり、通信に異常が発生するなどして、ステップＳ１３０の消去・書き込み処理が中断されると、ステップＳ１４０の処理に進まないので、判定データ格納領域には判定データの書き込みが行われない。
【００２８】
判定データ格納領域に判定データの書き込みが行われないと、再書き換え処理時に、比較用データと比較させるべき判定データがないため、判定データが異常であると判断される。
そして、判定データが異常であると判定されると、消去・書き込みが行われない通信プログラム（２）が選択され、該通信プログラム（２）を用いてＥＣＵ１とフラッシュ書き込みツール５との間の通信を確立させることになる。
【００２９】
従って、書き換えに失敗し使用不能な通信プログラム（１）に代えて通信プログラム（２）が自動選択され、該通信プログラム（２）を使用してアプリケーションプログラムの再書き換え処理を行わせることができ、効率良く再書き換え処理を行わせることができる。
また、書き換えを完了した場合であっても、不正な（例えば異なる車種向けの）アプリケーションプログラムに書き換えられたときには、この不正なアプリケーションプログラムに記憶された、異なる車種に対応する判定データが書き換え完了時に格納される。
【００３０】
このため、判定データと比較用データとが不一致であると判定されることで、当該ＥＣＵ１が対応すべき車種に対応するアプリケーションプログラムではないアプリケーションプログラムに書き換えられてしまったことが判別される。
この場合も、判定データの異常判定に基づいて、通信プログラム（２）に切り換えられるから、書き換えられた通信プログラム（１）の内容に関わらずに、通常にフラッシュ書き込みツール５とＥＣＵ１との間の通信を行わせて、正しいアプリケーションプログラムへの書き換えを行わせることができる。
【００３１】
尚、上記実施形態では、ＥＣＵ１に備えられるフラッシュメモリ４の書き換えについて示したが、ＥＣＵ１に限定されるものではないことは明らかである。
更に、上記実施形態から把握し得る請求項以外の技術思想について、以下にその効果と共に記載する。
（イ）請求項１〜４記載のいずれか１つに記載の不揮発性メモリの書き換え装置において、
前記不揮発性メモリの消去・書き込み実行後にベリファイを実行し、該ベリファイで正常判定されてから、前記判定データの書き込みを行わせることを特徴とする不揮発性メモリの書き換え装置。
【００３２】
上記構成によると、プログラムの書き込みが正しく行われたか否かをチェックするベリファイを実行し、ノイズ等の影響で書き込みエラーがあった場合には、再書き込みを行わせ、最終的に書き込みエラーがないと判断されてから、判定データの書き込みが行われる。
従って、一部に書き込みエラーがある状態で判定データの書き込みが行われることが回避され、判定データの有無から、書き換えの失敗を正しく判断して通信プログラムの選択を行わせることができる。
（ロ）請求項４記載の不揮発性メモリの書き換え装置において、
前記不揮発性メモリが、エンジンを制御するエンジンコントロールユニットに備えられた不揮発性メモリであって、
前記比較用データとして、当該エンジンコントロールユニットが対応する車種を示す情報を設定する一方、
書き換えられたアプリケーションプログラムが対応する車種を示すデータを、前記判定データとして書き込ませることを特徴とする不揮発性メモリの書き換え装置。
【００３３】
上記構成によると、新たなアプリケーションプログラムが対応する車種を示すデータが判定データとして書き換え完了時に書き込まれ、この判定データが示す車種情報と、予め記憶された比較用データが示す車種情報とが異なる場合には、異なる車種に対応するアプリケーションプログラムが書き込まれたことが判定される。
【００３４】
従って、車種別に適合させたアプリケーションプログラムが、異なる車種に対応するエンジンコントロールユニットに誤って書き込まれたことを確実に判定でき、この場合も、通信プログラムを切り換えて再書き換えを行わせることができる。
【図面の簡単な説明】
【図１】実施の形態におけるフラッシュメモリ（不揮発性メモリ）の書き換え装置の全体構成図。
【図２】フラッシュメモリの書き換え処理のメインルーチンを示すフローチャート。
【図３】通信プログラム（１）の処理を示すフローチャート。
【図４】通信プログラム（２）の処理を示すフローチャート。
【図５】消去＆書き込みプログラムの処理を示すフローチャート。
【符号の説明】
１…エンジンコントロールユニット（ＥＣＵ）、２…マイクロコンピュータ、３…ＲＡＭ、４…フラッシュメモリ（不揮発性メモリ）、５…フラッシュ書き込みツール、６…通信回線
【図１】
2004005152.tif 000003
【図２】
2004005152.tif 000004
【図３】
2004005152.tif 000005
【図４】
2004005152.tif 000006
【図５】
2004005152.tif 000007