(57)【要約】【課題】電気的にデータの消去及び書き込みが可能な不揮発性メモリに格納される制御定数が、制御プログラムに適合しないバージョンのものに書き換えられてしまった場合でも、ブート書き換えを行う必要なく、適合する制御定数に再書き換えできるようにする。【解決手段】自動車用電子制御装置が、起動時に、不揮発性メモリに格納されている制御プログラムと制御定数とのバージョンを比較し、適合するバージョンの場合には制御プログラムを実行し、バージョンが適合しない場合にはメモリ書き換えプログラムを実行するようにした。【選択図】図３
2009026183.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータの消去及び書き込みが可能な不揮発性メモリであって、メモリ書き換えプログラムと制御プログラムと該制御プログラムに用いる制御定数とがそれぞれの領域に格納される不揮発性メモリを備えた自動車用電子制御装置であって、
起動時に前記制御プログラムと前記制御定数との適合を判断し、適合する場合には前記制御プログラムを実行し、適合しない場合には前記メモリ書き換えプログラムを実行することを特徴とする自動車用電子制御装置。
【請求項２】
前記制御プログラム及び制御定数がそれぞれに識別情報を持ち、これらの識別情報を照合することで、前記制御プログラムと前記制御定数との適合を判断することを特徴とする請求項１記載の自動車用電子制御装置。
【請求項３】
前記制御プログラム及び制御定数における識別情報が、バージョン情報であることを特徴とする請求項２記載の自動車用電子制御装置。
【請求項４】
前記制御プログラムと前記制御定数とが適合しない場合に前記メモリ書き換えプログラムを実行すると共に、前記制御プログラム及び／又は前記制御定数の書き込みが正常に完了していない場合にも前記メモリ書き換えプログラムを実行することを特徴とする請求項１〜３のいずれか１つに記載の自動車用電子制御装置。
【請求項５】
前記メモリ書き換えプログラムによって、前記自動車用電子制御装置に接続される外部の書き換えツールとの間で通信を行い、前記制御プログラム及び／又は制御定数を書き換えることを特徴とする請求項１〜４のいずれか１つに記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的にデータの消去及び書き込みが可能であって、メモリ書き換えプログラムと制御プログラムと該制御プログラムに用いる制御定数とがそれぞれの領域に格納される不揮発性メモリを備えた自動車用電子制御装置に関する。
【背景技術】
【０００２】
特許文献１には、電気的にデータの消去及び書き込みが可能な不揮発性メモリであるフラッシュメモリを備えた自動車用電子制御装置が開示されている。
前記フラッシュメモリは、メモリセルのブロック単位で消去・書き込みが行われるようになっており、メモリ書き込みプログラム領域、制御プログラム領域、制御定数領域に分けられている。
【特許文献１】特開２０００−２５７５０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、前述のように、フラッシュメモリの領域が、メモリ書き込みプログラム領域、制御プログラム領域、制御定数領域に分けられ、領域毎に別々に消去・書き込みが可能であると、例えば、制御プログラムとはバージョンが異なる制御定数に書き換えられてしまう可能性がある。
制御プログラムと制御定数とのバージョンが異なると、制御プログラムが読みに行くアドレスと実際に制御定数が記憶されているアドレスとにずれが生じるなどして、制御プログラムを正常に実行することができなくなるため、フラッシュメモリの書き換え要求を判断してメモリ書き込みプログラムを実行させることもできなくなってしまう。
【０００４】
従って、バージョンが適合しない書き換えが行われてしまうと、ブートピンを備えない自動車用電子制御装置では、正しいバージョンへの再書き換えが不可能になり、電子制御装置全体を交換せざるを得なくなるという問題があった。
前記ブートピンとは、該ブートピンに入力される信号の組み合わせにより、接続されるホストプロセッサから全てのメモリ空間へのデータ・プログラムの転送を可能にするためのものであり、このブートピンを備えていれば、バージョンが適合しない書き換えが行われてしまっても、正しいバージョンへの再書き換えが可能である。
【０００５】
しかし、例えば自動車用電子制御装置を防水仕様とする場合などには、前記ブートピンが省略されることがあり、この場合、バージョンが適合しない書き換えが行われてしまうと再書き換えが不能になってしまうものである。
本発明は上記問題点に鑑みなされたものであり、適合しない制御プログラムと制御定数との組み合わせに書き換えられてしまった場合でも、ブート書き換えを行う必要なく、適合する制御プログラム或いは制御定数への再書き換えを行える自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
そのため請求項１記載の発明は、自動車用電子制御装置が、起動時に、不揮発性メモリに格納されている制御プログラムと制御定数との適合を判断し、適合する場合には前記制御プログラムを実行し、適合しない場合には同じく不揮発性メモリに格納されているメモリ書き換えプログラムを実行するようにした。
上記発明によると、例えば、制御定数の書き換え後に自動車用電子制御装置を起動させると、書き換えた制御定数が制御プログラムと適合するかが判断され、適合していて正常な制御が行える場合には制御プログラムを実行させるが、適合しない場合には、メモリ書き換えプログラムを実行させることで、制御定数の再書き換えを可能にする。
【０００７】
従って、誤ってバージョンの異なる制御プログラムと制御定数との組み合わせに書き換えられることがあっても、ブート書き換えを行うことなく、正しいバージョンの組み合わせへの再書き換えを行うことができるから、制御異常を防止でき、また、電子制御装置全体の交換を不要にできる。
請求項２記載の発明では、制御プログラム及び制御定数がそれぞれに備える識別情報を照合することで、制御プログラムと制御定数との適合を判断するようにした。
【０００８】
上記発明によると、制御プログラムに付与された識別情報と、制御定数に付与された識別情報とを照合することで、バージョンの一致などの適合を判断する。
従って、バージョンの一致などの適合を、的確かつ容易に判断できる。
請求項３記載の発明では、前記制御プログラム及び制御定数における識別情報を、バージョン情報とするようにした。
【０００９】
上記発明によると、制御定数や制御プログラムのバージョン情報が、不揮発性メモリに格納される制御プログラム及び制御定数に備えられ、それぞれバージョンを比較することで、適合・不適合が判断される。
従って、バージョンが異なることで、不適合となる制御定数と制御プログラムとの組み合わせが格納されたときに、正しいバージョンへの再書き換えを可能にして、制御異常となることを防止できる。
【００１０】
請求項４記載の発明では、前記制御プログラムと前記制御定数とが適合しない場合に前記メモリ書き換えプログラムを実行すると共に、前記制御プログラム及び／又は前記制御定数の書き込みが正常に完了していない場合にも前記メモリ書き換えプログラムを実行するようにした。
上記発明によると、制御プログラム及び／又は制御定数の書き込みが正常に行われずに、制御異常となる可能性があるときにも、起動時に制御プログラムではなくメモリ書き換えプログラムを実行させる。
【００１１】
従って、書き込みが正常に行われずに再書き込みを行わせる必要があるときに、書き込み異常で制御プログラムが正常に動作しなくても、メモリ書き換えプログラムを実行させて、再書き込みを行わせることができる。
請求項５記載の発明では、前記メモリ書き換えプログラムによって、前記自動車用電子制御装置に接続される外部の書き換えツールとの間で通信を行い、前記制御プログラム及び／又は制御定数を書き換えるようにした。
【００１２】
上記発明によると、制御プログラムと前記制御定数とが適合しないと判断されて、メモリ書き換えプログラムを実行させると、前記自動車用電子制御装置に接続される外部の書き換えツールとの間で通信が行われ、前記ツールから書き換えデータを読み込んで、不揮発性メモリに格納される制御プログラム及び／又は制御定数を書き換える。
従って、制御プログラムと制御定数とが適合しないために制御プログラムが正規に動作しない場合であっても、外部ツールとの通信を可能として、外部ツールを用いた書き換えが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の一実施形態を図面に基づいて詳細に説明する。
図１は、実施の形態における自動車用電子制御装置（ＥＣＵ）１の構成を示す。
自動車用電子制御装置１は、自動車に搭載される制御対象（エンジン，自動変速機など）を制御するものであり、電気的にデータの消去及び書き込みが可能な不揮発性メモリであるフラッシュメモリ２、ＲＡＭ３、及び、マイクロコンピュータ４を含んで構成される。
【００１４】
前記マイクロコンピュータ４は、ＣＰＵ，内蔵ＲＡＭ，タイマ，Ａ／Ｄコンバータ，ＳＣＩ等を備えて構成され、ＲＡＭ３やフラッシュメモリ２に格納された各種のプログラムを実行する。
前記フラッシュメモリ２は、記憶領域が３つのブロックＡ，Ｂ，Ｃに分割され、書き換え時には、前記ブロック単位で記憶データの消去及び書き込みが実行される。
【００１５】
前記フラッシュメモリ２のブロックＡにはフラッシュ書き換えプログラム（メモリ書き換えプログラム）が、ブロックＢには制御定数（適合定数）が、ブロックＣには制御プログラム（アプリケーションプログラム）がそれぞれに格納される。
尚、前記制御定数，制御プログラムは、そのバージョンを示す識別情報ＩＤと共にブロックＢ，Ｃにそれぞれ格納される。
【００１６】
前記ブロックＡのフラッシュ書き換えプログラムは、前記ブロックＢ，Ｃに格納される制御定数，制御プログラムの消去・書き込みを制御するためのプログラムであり、ブロックＢの制御プログラムは、ブロックＣに格納されている制御定数及び各種入力信号を用いた演算処理によって、自動車に搭載される制御対象（エンジン，自動変速機など）の制御装置（燃料噴射弁，ソレノイド等）に操作信号を出力する。
【００１７】
上記各種入力信号としては、各種の操作装置７からの操作信号や車両の運転状態を検出する検出装置８からの検出信号などが含まれる。
前記自動車用電子制御装置１がエンジンを制御する装置である場合、前記操作装置７には、エンジンのイグニッションスイッチが含まれ、前記検出装置８には、エンジンの回転センサや負荷センサなどが含まれる。
【００１８】
前記フラッシュメモリ２に対して制御定数及び制御プログラムを記憶させた後、前記制御定数及び／又は制御プログラムが更新（バージョンアップ）された場合に、前記フラッシュ書き換えプログラムによって制御定数及び／又は制御プログラムを書き換えることで、自動車用電子制御装置１のバージョンを更新させることができるようになっている。
前記書き換えを行う際には、図１に示すように、書き換え用の外部ツールであるフラッシュ書き込みツール５を、前記自動車用電子制御装置１に対して通信回線６を介して接続する。
【００１９】
フラッシュ書き込みツール５と前記自動車用電子制御装置１とが接続された状態で、前記自動車用電子制御装置１側で前記フラッシュ書き換えプログラムが実行されると、前記自動車用電子制御装置１と前記フラッシュ書き込みツール５との間で通信が行われ、前記フラッシュ書き込みツール５に備えられたフラッシュメモリ５ａに保存されている新たなバージョンの制御定数及び／又は制御プログラムが前記自動車用電子制御装置１に読み込まれ、前記ブロックＢ，Ｃに格納される制御定数及び／又は制御プログラムが新たなバージョンのものに書き換えられる。
【００２０】
尚、前記フラッシュ書き込みツール５を用いた制御定数・制御プログラムの書き換え時においても、新たに書き込まれた制御定数・制御プログラムのバージョンを示す識別情報ＩＤがブロックＢ，Ｃに記憶されるようにしてある。
換言すれば、バージョンを示す識別情報ＩＤが予め制御定数・制御プログラムに付与されており、この識別情報ＩＤが付与された制御定数・制御プログラムが、前記フラッシュメモリ２に記憶されるようになっている。
【００２１】
ここで、前記フラッシュ書き込みツール５による制御定数・制御プログラムの書き換え処理の様子を、図２のフローチャートに従って説明する。
フラッシュ書き込みツール５を自動車用電子制御装置１に接続した状態で、自動車用電子制御装置１がフラッシュ書き込みツール５からの書き込み要求を判断すると、前記フラッシュ書き換えプログラムが実行され、自動車用電子制御装置１がフラッシュ書き換えモードに移行する（ステップＳ１０１）。
【００２２】
そして、フラッシュ書き換えモードでは、フラッシュ書き込みツール５と自動車用電子制御装置１との間での通信によって書き換え処理が行われ、まず、書き換えを行う領域を判断する（ステップＳ１０２）。
そして、制御定数のみを書き換える場合には、ブロックＢを消去してから、フラッシュ書き込みツール５から送信される新たなバージョンの制御定数を、そのバージョンを示す識別情報ＩＤと共にブロックＢに書き込む（ステップＳ１０３）。
【００２３】
一方、制御定数と共に制御プログラムを書き換える場合には、ブロックＢを消去してから、フラッシュ書き込みツール５から送信される新たなバージョンの制御定数を、そのバージョンを示す識別情報ＩＤと共にブロックＢに書き込み、更に、ブロックＣを消去してから、フラッシュ書き込みツール５から送信される新たなバージョンの制御プログラムを、そのバージョンを示す識別情報ＩＤと共にブロックＣに書き込む（ステップＳ１０４）。
【００２４】
尚、各ブロックにおける消去・書き込みの順番は、上記のブロックＢ→ブロックＣの順に限定されるものでないことは明らかであり、ブロックＣ→ブロックＢの順で消去・書き込みを行わせることができる。
各ブロックのフラッシュメモリ内の配置も、上記の順に限るものではない。
また、制御プログラムのみを書き換える場合には、ブロックＣを消去してから、フラッシュ書き込みツール５から送信される新たなバージョンの制御プログラムを、そのバージョンを示す識別情報ＩＤと共にブロックＣに書き込む（ステップＳ１０５）。
【００２５】
上記のように、制御定数と制御プログラムとの双方が同時にバージョンアップされ、制御定数と共に制御プログラムを同時に書き換える場合には、制御定数のバージョンと制御プログラムのバージョンとが書き換え後も一致することになるが、例えば、制御定数のみ又は制御プログラムのみを書き換える場合には、フラッシュ書き込みツール５側にバージョン情報の確認機能がないと、書き換えない制御プログラムのバージョンと、書き換えられる制御定数のバージョンとが一致しなくなる可能性がある。
【００２６】
ここで、制御プログラムのバージョンと制御定数のバージョンとが異なることで、例えば、実際に制御定数が書き込まれているアドレスと、制御プログラムが読みに行くアドレスとがずれると、制御ルーチンが無限ループになったり、０での割り算が発生したり、通信設定の初期値やレジスタの設定値が変わったりすることで、制御の異常動作や、リセット・通信の不能が生じ、引いては、再書き換えを行うことが不可能になってしまう。
【００２７】
そこで、本実施形態では、フラッシュメモリ２に格納されている制御プログラムと制御定数とのバージョンが、誤った書き換えによって不一致になっても、フラッシュメモリ２の再書き換えが行えるようにしてあり、再書き換えを可能にするための処理を、図３のフローチャートに従って説明する。
まず、前記自動車用電子制御装置１が起動（パワーオンリセット）されると（ステップＳ２０１）、フラッシュメモリ２に対する制御プログラム及び／又は制御定数の書き込みが正常に行われていて、かつ、制御プログラムのバージョンを示す識別情報ＩＤと、制御定数のバージョンを示す識別情報ＩＤとが一致していて、制御プログラムと制御定数とが適合しているかを判別する（ステップＳ２０２）。
【００２８】
書き換えが正常に完了した場合に、書換えの正常完了を示す識別情報をブロックＢ，Ｃ毎に記憶させるようにしておき、前記正常完了識別情報を判別することで、書き込みが正常に行われたか否かの判断を行う。
また、制御プログラムのバージョンを示す識別情報ＩＤと、制御定数のバージョンを示す識別情報ＩＤとが一致しているか否かは、ブロックＢ，Ｃ毎に記憶されるバージョンを示す識別情報ＩＤを読み出して照合することで判断される。
【００２９】
尚、書き込みが正常に完了したときに、バージョンを示す識別情報ＩＤを記憶させるようにして、バージョンを示す識別情報ＩＤが何ら記憶されていないときに、書き込みが正常に行われなかったことを判定させることができる。
書き込みが正常に完了していて、しかも、制御プログラムのバージョンと制御定数のバージョンとが一致している場合には、正常に制御プログラムを実行させることができるので、通常に制御プログラム（アプリケーションプログラム）を実行させる（ステップＳ２０３）。
【００３０】
一方、書き込みが正常に完了していない場合には、たとえバージョンが一致していても、正常な制御動作を行わせることができないので、再度の書き込み動作によって書き込みを正常に完了させるべく、フラッシュ書き換えプログラム（メモリ書き換えプログラム）を実行させる（ステップＳ２０４）。
また、制御プログラムのバージョンと制御定数のバージョンとが一致していない場合には、たとえ制御プログラム及び／又は制御定数の書き換えが正常に完了していても、正常な制御動作を行わせることができないので、この場合も、フラッシュ書き換えプログラム（メモリ書き換えプログラム）を実行させる（ステップＳ２０４）。
【００３１】
フラッシュ書き換えプログラム（メモリ書き換えプログラム）が実行されると、フラッシュ書き換え制御でフラッシュ書き込みツール５との間での通信が行われ、前記図２のフローチャートに示すような書き込み処理によって、正しいバージョンの制御プログラム及び／又は制御定数への再書き換えが可能となる。
例えば、制御プログラムのバージョンに対して、制御定数のバージョンが古い場合には、制御プログラムのバージョンに対応するバージョンの制御定数に書き換えることで、制御プログラムを正常に動作させることができるようになる。
【００３２】
上記実施形態によれば、フラッシュ書き込みツール５側からの書き換え要求を判断することなく、バージョンの不一致に基づいてフラッシュ書き換えプログラム（メモリ書き換えプログラム）が実行されるから、たとえバージョンの不一致によって前記制御プログラムが正常に動作しない状況であっても、フラッシュ書き換えプログラムを動作させて再書き換えを可能にできる。
【００３３】
従って、バージョンが一致しない制御定数に書き換えてしまっても、制御異常・書き換え不能になって、自動車用電子制御装置１の交換が必要になることがない。
また、バージョンの不一致によって制御異常になっても、ブートピンへの信号入力によって書き換えを可能にする必要がないので、ブートピンを設ける必要がなく、ブートピンを削除した例えば防水仕様の自動車用電子制御装置１においても、バージョンの不一致による装置交換が不要となる。
【００３４】
尚、例えば、制御プログラムのバージョンに対して、適合可能な制御定数のバージョンが複数存在する場合には、前記複数の適合バージョンのうちの１つであれば、当然にこれを適合と見なして、再書き換えを行わせる必要はない。
また、制御定数と制御プログラムのバージョンの不一致によって、前記フラッシュ書き換えプログラムを実行させた場合に、フラッシュメモリ２に書き込むべきバージョンの情報を、フラッシュ書き込みツール５側に送信し、これを表示させることができる。
【図面の簡単な説明】
【００３５】
【図１】実施形態における自動車用電子制御装置のシステム図。
【図２】実施形態における書き換え処理を示すフローチャート。
【図３】実施形態におけるバージョン判断によるフラッシュ書き換えプログラムの実行処理を示すフローチャート。
【符号の説明】
【００３６】
１…自動車用電子制御装置、２…フラッシュメモリ、３…ＲＡＭ、４…マイコン、５…フラッシュ書き込みツール、７…操作装置、８…検出装置
【図１】
2009026183.tif 000003
【図２】
2009026183.tif 000004
【図３】
2009026183.tif 000005