(57)【要約】【課題】  書き換えプログラムのダウンロードおよび実行において、その外部から遷移先アドレスの指定のための特別なコマンドを受信することなく、様々な遷移先のアドレスに対応できるようにする。【解決手段】  外部ツール１０が、受信したデータを、書き換え可能なＲＡＭ２３の、受信したアドレス指定に基づいたアドレスに記憶させ、その受信したデータをＲＡＭ２３に記憶させ終えると、ＲＡＭ２３の遷移先記憶用アドレスに記憶された遷移先アドレスデータ５００に基づくアドレスから、当該ＲＡＭ２３に記憶された命令を実行する車両制御装置に対し、書き換えプログラム４００、および、その書き換えプログラムデータを記憶させる先のＲＡＭ２３中のアドレス指定を送信し、その書き換えプログラム４００の先頭命令に該当するデータのアドレスを示す遷移先アドレスデータ、および、遷移先記憶用アドレスを指定するアドレス指定を送信する。【選択図】 図３
2006113656.tif 000002
【特許請求の範囲】
【請求項１】
受信したデータを、書き換え可能な記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、前記受信したデータを前記記憶媒体に記憶させ終えると、前記記憶媒体の遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する車両制御装置に対し、書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の前記記憶媒体中のアドレス指定を送信する第１の手順と、
前記車両制御装置に対し、前記書き換えプログラムデータの先頭命令に該当するデータの前記記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、前記遷移先記憶用アドレスを指定するアドレス指定を送信する第２の手順と、を備えた書き換えプログラム送信方法。
【請求項２】
書き換え可能な記憶媒体の遷移先記憶用アドレスに初期値を記憶させ、受信したデータを、前記記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、前記初期値を記憶させた後に前記遷移先記憶用アドレスに記憶されたデータが前記初期値と異なっていることに基づいて、前記遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する車両制御装置に対し、書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の前記記憶媒体中のアドレス指定を送信する第１の手順と、
前記第１の手順によって書き換えプログラムデータのすべてが送信された後に、前記車両制御装置に対し、前記書き換えプログラムデータの先頭命令に該当するデータの前記記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、前記遷移先記憶用アドレスを指定するアドレス指定を送信する第２の手順と、を備えた書き換えプログラム送信方法。
【請求項３】
前記遷移先アドレスデータは、前記車両制御装置の前記記憶媒体の全アドレスの一部分のうちから１つを選択する、前記アドレス指定よりもデータ量の少ない短縮ＩＤであることを特徴とする請求項１または２に記載の書き換えプログラム送信方法。
【請求項４】
受信したデータを、書き換え可能な記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、前記受信したデータを前記記憶媒体に記憶させ終えると、前記記憶媒体の遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する車両制御装置に対し、データおよびアドレス指定を送信する送信回路と、
書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の前記記憶媒体中のアドレス指定を、前記送信回路に送信させる書き換えプログラム等送信制御手段と、
前記書き換えプログラムデータの先頭命令に該当するデータの前記記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、前記遷移先記憶用アドレスを指定するアドレス指定を、前記送信回路に送信させる遷移先アドレスデータ等送信制御手段と、を備えた書き換えプログラム送信装置。
【請求項５】
書き換え可能な記憶媒体の遷移先記憶用アドレスに初期値を記憶させ、受信したデータを、前記記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、前記初期値を記憶させた後に前記遷移先記憶用アドレスに記憶されたデータが前記初期値と異なっていることに基づいて、前記遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する車両制御装置に対し、データおよびアドレス指定を送信する送信回路と、
書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の前記記憶媒体中のアドレス指定を、前記送信回路に送信させる書き換えプログラム等送信制御手段と、
前記書き換えプログラム等送信制御手段が前記書き換えプログラムデータのすべてを前記送信回路に送信させた後、前記書き換えプログラムデータの先頭命令に該当するデータの前記記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、前記遷移先記憶用アドレスを指定するアドレス指定を、前記送信回路に送信させる遷移先アドレスデータ等送信制御手段と、を備えた書き換えプログラム送信装置。
【請求項６】
前記遷移先アドレスデータは、前記車両制御装置の前記記憶媒体の全アドレスの一部分のうちから１つを選択する、前記アドレス指定よりもデータ量の少ない短縮ＩＤであることを特徴とする請求項４または５に記載の書き換えプログラム送信装置。
【請求項７】
受信したデータを、書き換え可能な記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、前記受信したデータを前記記憶媒体に記憶させ終えると、前記記憶媒体の遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する車両制御装置に対し、データおよびアドレス指定を送信する送信回路に、書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の前記記憶媒体中のアドレス指定を送信させる書き換えプログラム等送信制御手段、および
前記書き換えプログラムデータの先頭命令に該当するデータの前記記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、前記遷移先記憶用アドレスを指定するアドレス指定を、前記送信回路に送信させる遷移先アドレスデータ等送信制御手段として、コンピュータを機能させるプログラム送信プログラム。
【請求項８】
書き換え可能な記憶媒体と、
受信回路と、
前記受信回路が受信したデータを、前記記憶媒体の、前記受信回路が受信したアドレス指定に基づいたアドレスに記憶させる記憶制御手段と、
前記記憶制御手段が前記書き換えプログラムデータおよび前記遷移先アドレスデータを前記記憶媒体に記憶させ終えると、前記記憶媒体の、前記記憶制御手段が前記データを記憶させた遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する遷移手段と、を備えた車両制御装置。
【請求項９】
前記遷移先アドレスデータは、前記記憶媒体の全アドレスの一部分のうちから１つを選択する、前記アドレス指定よりもデータ量の少ない短縮ＩＤであることを特徴とする請求項８に記載の車両制御装置。
【請求項１０】
前記遷移先記憶用アドレスに初期値を記憶させる初期化手段と、
前記初期化手段が前記初期値を記憶させた後に、前記遷移先記憶用アドレスに記憶されたデータが前記初期値と異なっていることを判定する判定手段と、を備え、
前記遷移手段は、前記判定手段の判定に基づいて、前記遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行することを特徴とする請求項８または９に記載の車両制御装置。
【請求項１１】
車両制御装置が有する受信回路が受信したデータを、前記車両制御装置が有する書き換え可能な記憶媒体の、前記受信回路が受信したアドレス指定に基づいたアドレスに記憶させる記憶制御手段、および
前記記憶制御手段が前記データを前記記憶媒体に記憶させ終えると、前記記憶媒体の、前記記憶制御手段が前記データを記憶させた遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行する遷移手段として、前記車両制御装置が有するコンピュータを機能させる書き換えプログラム受信・起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換えプログラムを外部からダウンロードし、そのダウンロードした書き換えプログラムの先頭アドレスに実行を遷移させることで、自身が実行するアプリケーションプログラムを新しいアプリケーションプログラムに書き換える車両制御装置、および車両制御装置のその作動のための、書き換えプログラム送信方法、書き換えプログラム送信装置、書き換えプログラム送信プログラム、および書き換えプログラム受信・起動プログラムに関する。
【背景技術】
【０００２】
従来、車両制御の分野において、車両制御装置が、書き換えプログラムを外部からダウンロードし、そのダウンロードした書き換えプログラムを実行することで、自身が実行するアプリケーションプログラムを新しいアプリケーションプログラムに書き換えるという技術が用いられている。車両制御装置が書き換えるアプリケーションプログラムとしては、例えばエンジン点火制御アプリケーションプログラム、オートマチックトランスミッション制御プログラム等がある。
【０００３】
このような書き換えプログラムをダウンロードして実行する方法としては、書き換えプログラムを、車両制御装置中のＲＡＭのあらかじめ決められた領域にダウンロードし、ダウンロードが終了した後、その領域の先頭アドレスに実行を遷移させる方法が多く用いられている。このような方法を実現するプログラムを、以降書き換えプログラム受信・起動プログラムと記す。
【０００４】
このような方法で、従来から用いられているものの具体例を、図７および図８を用いて説明する。図７は、車両制御装置の有する記憶媒体５０の構成、パーソナルコンピュータ等の外部ツール６０と記憶媒体５０との間のデータの流れ、および車両制御装置の処理の遷移を概念的に示す図である。また、図８は、この例における書き換えプログラム受信・起動プログラムに相当するブートプログラム５３のフローチャートである。
【０００５】
この例においては、まず、車両制御装置が、その起動と同時に、記憶媒体５０のフラッシュＲＯＭ５１に記憶されているブートプログラム５３の実行を開始し、その実行によって、車両制御装置にケーブル等で接続された外部ツール６０から書き換えプログラム５５を受信し、この受信した書き換えプログラム５５を、記憶媒体５０の有するＲＡＭ５２のあらかじめ決められた領域に記憶させる（矢印６１参照）。
【０００６】
より具体的には、車両制御装置は、図８に示すように、ブートプログラム５３の実行において、まず外部ツール６０との通信のための初期化を行い（ステップ５３１）、外部ツール６０からの書き換え要求信号を検出することで（ステップ５３２）、外部ツール６０からの受信データを待つようになり（ステップ５３３）、最初にアドレスデータおよびプログラムサイズデータを含むアドレスコマンドを外部ツール６０から受信すると（ステップ５３４）、そのアドレスコマンド中のアドレスデータを書き込みアドレスとしてＲＡＭ５２に記憶させ（ステップ５３５）、以後連続的に外部ツール６０から送信されるデータコマンドを受信する度に（ステップ５３６）、そのデータコマンド中のデータ、すなわち書き換えプログラム５５の一部としてのプログラムデータを、上記の書き込みアドレスを先頭として順にＲＡＭ５２に記憶させていく（ステップ５３７）。
【０００７】
書き換えプログラム５５をすべてＲＡＭ５２に記憶させると、車両制御装置は、書き換えプログラム５５の実行を開始するため、命令実行位置を、ＲＡＭ５２の、書き換えプログラム５５が記憶された所定の領域の先頭アドレスに、遷移させる（矢印６２参照）。
【０００８】
より具体的には、車両制御装置は、図８に示すように、受信したプログラムデータの総量が、最初に受信したプログラムサイズデータの示す量に達したとき（ステップ５３８）、書き換えプログラム５５のダウンロードを終了し、あらかじめ決められた遷移先のアドレス、すなわちＲＡＭ５２中における書き換えプログラム５５の先頭アドレスに、実行をジャンプさせることで、ブートプログラム５３の実行を終了し（ステップ５３９）、書き換えプログラム５５の実行を開始する。
【０００９】
書き換えプログラム５５の実行によって、車両制御装置は、外部ツール６０からアプリケーションプログラム５４を受信し、受信したアプリケーションプログラム５４をフラッシュＲＯＭ５１の所定の領域に記憶させる（矢印６３参照）。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、車両制御用装置は、車種や仕向けによって、実行するアプリケーションプログラムのサイズ、記憶媒体の構成が異なる場合が多いので、書き換えプログラムが記憶される領域も一定しない。したがって、上記のような、書き換えプログラムのダウンロード後決まったアドレスにのみ遷移するようになっている書き換えプログラム受信・起動プログラムを、そのまま各車種や仕向けに用いることはできない。
【００１１】
例えば、書き換えプログラム受信・起動プログラムを、外部ツールから遷移先のアドレスを指定するコマンドを受信し、この受信した遷移先のアドレスに遷移するように作成しておけば、単一書き換えプログラム受信・起動プログラムで、車種や仕向け毎に変わる様々な遷移先のアドレスに対応する事が可能である。実際、外部ツールから遷移先のアドレスを指定するコマンドを送信する技術は従来からある。
【００１２】
しかし、このような技術は、遷移先のアドレスを指定するコマンドを送信できない外部ツールに適用することができないので、外部ツールの選択の幅が狭くなってしまう。
【００１３】
本発明は上記点に鑑み、車両制御装置が、書き換えプログラムを外部からダウンロードし、そのダウンロードした書き換えプログラムの先頭アドレスに実行を遷移させることで、自身が実行するアプリケーションプログラムを新しいアプリケーションプログラムに書き換える技術において、その外部から遷移先アドレスの指定のための特別なコマンドを受信することなく、様々な遷移先のアドレスに対応できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するための本発明の特徴は、受信したデータを、書き換え可能な記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、その受信したデータを当該記憶媒体に記憶させ終えると、当該記憶媒体の遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該記憶媒体に記憶された命令を実行する車両制御装置に対し、書き換えプログラムデータ（すなわち書き換えプログラムを構成するデータ）、および、その書き換えプログラムデータを記憶させる先の当該記憶媒体中のアドレス指定を送信する第１の手順と、その車両制御装置に対し、送信する書き換えプログラムデータの先頭命令に該当するデータの当該記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、当該遷移先記憶用アドレスを指定するアドレス指定を送信する第２の手順と、を備えた書き換えプログラム送信方法として実現可能である。
【００１５】
第１の手順の実行によって、上記車両制御装置の受信回路に対し、書き換えプログラムデータと、その書き換えプログラムデータを記憶させる先の上記憶媒体中のアドレス指定を送信すると、この車両制御装置は、当該記憶媒体中の当該アドレス指定に基づいたアドレスに、当該書き換えプログラムデータを記憶させる。また、別途第２の手順によって、この車両制御装置に対し、当該書き換えプログラムデータの先頭命令に該当するデータの当該記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、上記の遷移先記憶用アドレスを指定するアドレス指定を送信すると、この車両制御装置は、当該遷移先アドレスデータを、当該所定の遷移先記憶用アドレスに記憶し、上記書き換えプログラムデータを当該記憶媒体に記憶させ終えると、この所定の遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該記憶媒体に記憶された命令の実行を行う。
【００１６】
したがって、この車両制御装置が書き換え実行プログラムのダウンロード終了後に実行を遷移させる先のプログラムは、当該書き換え実行プログラムであることになる。このような書き換えプログラム送信方法をこの車両制御装置に対して実行することで、車両制御装置は、外部から遷移先アドレスの指定のための特別なコマンドを受信することなく、様々な書き換えプログラムの遷移先アドレスに対応した作動を行うことができるようになる。
【００１７】
なお、第１の手順と第２の手順とはどのような順序になっていてもよい。第１の手順の実行中に第２の手順を実行してもよい。
【００１８】
また、車両制御装置が、書き換え可能な記憶媒体の遷移先記憶用アドレスに初期値を記憶させ、受信したデータを、当該記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、当該初期値を記憶させた後に当該遷移先記憶用アドレスに記憶されたデータが当該初期値と異なっていることに基づいて、遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、前記記憶媒体に記憶された命令を実行するようになっている場合は、その車両制御装置に対し、書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の当該記憶媒体中のアドレス指定を送信し、書き換えプログラムデータがすべて送信された後に、この車両制御装置に対し、送信した書き換えプログラムデータの先頭命令に該当するデータの当該記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、当該遷移先記憶用アドレスを指定するアドレス指定を送信するようになっていてもよい。
【００１９】
このようになっていれば、当該遷移先記憶用アドレスは、書き換えプログラムデータがすべて送信された後に初期値から変化するので、車両側制御装置は、書き換えプログラムの受信をすべて終えてから、当該遷移先記憶用データに記憶された書き換えプログラムの先頭の実行を行う。
【００２０】
また更に、このような方法において、遷移先アドレスデータは、当該車両制御装置の当該記憶媒体の全アドレスの一部分のうちから１つを選択する、当該アドレス指定よりもデータ量の少ない短縮ＩＤであるようになっていてもよい。このようになっていることで、遷移先アドレスデータの送信のためのデータ送信量が低減される。
【００２１】
また、上記のようなプログラム送信方法を実現するための装置としても、本発明の特徴を捉えることができる。すなわち、上記車両制御装置にデータおよびアドレス指定を送信する送信回路を有するプログラム送信装置が、書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の当該記憶媒体中のアドレス指定を、その送信回路に送信させ、また別途、当該書き換えプログラムデータの先頭命令に該当するデータの当該記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、当該遷移先記憶用アドレスを指定するアドレス指定を、その送信回路に送信させるようになっていてもよい。
【００２２】
また同様に、書き換え可能な記憶媒体の遷移先記憶用アドレスに初期値を記憶させ、受信したデータを、当該記憶媒体の、受信したアドレス指定に基づいたアドレスに記憶させ、当該初期値を記憶させた後に当該遷移先記憶用アドレスに記憶されたデータが当該初期値と異なっていることに基づいて、当該遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、当該記憶媒体に記憶された命令を実行する車両制御装置に対し、データおよびアドレス指定を送信する送信回路と、書き換えプログラムデータ、および、その書き換えプログラムデータを記憶させる先の当該記憶媒体中のアドレス指定を、当該送信回路に送信させる書き換えプログラム等送信制御手段と、書き換えプログラム等送信制御手段が当該書き換えプログラムデータのすべてを当該送信回路に送信させた後、当該書き換えプログラムデータの先頭命令に該当するデータの当該記憶媒体中におけるアドレスを示す遷移先アドレスデータ、および、当該遷移先記憶用アドレスを指定するアドレス指定を、当該送信回路に送信させる遷移先アドレスデータ等送信制御手段と、を備えた書き換えプログラム送信装置としても、本発明を捉えることができる。
【００２３】
また同様に、遷移先アドレスデータは、当該車両制御装置の当該記憶媒体の全アドレスの一部分のうちから１つを選択する、当該アドレス指定よりもデータ量の少ない短縮ＩＤであるようになっていてもよい。
【００２４】
また、上記のような書き換えプログラム送信装置を実現するための書き換えプログラム送信プログラムとしても、本発明を捉えることができる。
【００２５】
また、本発明の特徴は、書き換え可能な記憶媒体と、受信回路とを備え、当該受信回路が受信したデータを、当該記憶媒体中の、当該受信回路が受信したアドレス指定に基づいたアドレスに記憶させ、このデータを当該記憶媒体に記憶させ終えた後に、当該記憶媒体の、記憶制御手段がデータを記憶させた遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該記憶媒体に記憶された命令を実行する車両制御装置としても捉えることができる。
【００２６】
このような車両制御装置の受信回路に対し、書き換えプログラムデータと、その書き換えプログラムデータを記憶させる先の上記憶媒体中のアドレス指定を送信すると、当該記憶媒体中の当該アドレス指定に基づいたアドレスに、プログラムデータが記憶される。また、別途この車両制御装置の受信回路に対し、遷移先アドレスデータおよび、その遷移先アドレスデータを記憶させる先の上記記憶媒体中の、上記所定の遷移先記憶用アドレスを指定するアドレス指定を送信すると、この車両制御装置は、当該遷移先アドレスデータを、当該所定の遷移先記憶用アドレスに記憶し、上記書き換えプログラムデータを当該記憶媒体に記憶させ終えると、この所定の遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該記憶媒体に記憶された命令の実行を行う。
【００２７】
このとき、当該遷移先アドレスデータが、上記書き換えプログラムデータのうち、最初に実行される命令に該当するデータの、当該記憶媒体中におけるアドレスを示していれば、この車両制御装置が書き換え実行プログラムのダウンロード終了後に実行を遷移させる先のプログラムは、当該書き換え実行プログラムであることになる。
【００２８】
このようなデータの送信をこの車両制御装置に対して行うことで、車両制御装置は、外部から遷移先アドレスの指定のための特別なコマンドを受信することなく、書き換えプログラムの様々な遷移先のアドレスに対応した作動を行うことができるようになる。
【００２９】
また、遷移先アドレスデータが、当該記憶媒体の全アドレスの一部分のうちから１つを選択する、アドレス指定よりもデータ量の少ない短縮ＩＤであり、車両制御装置が、この短縮ＩＤに基づくアドレスから、当該記憶媒体に記憶された命令を実行するようになっていれば、車両制御装置に送信されるデータ量が低減される。
【００３０】
また、車両制御装置が、書き換えプログラムデータを当該記憶媒体に記憶させ終えたときに、当該記憶媒体の所定の遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該記憶媒体に記憶された命令を実行する作動のための具体的な構成としては、車両制御装置が、遷移先記憶用アドレスに初期値を記憶させ、当該初期値を記憶させた後に、この遷移先記憶用アドレスに記憶されたデータが初期値と異なっていることを判定することに基づいて、遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該憶媒体に記憶された命令を実行するようになっていてもよい。
【００３１】
このような構成の車両制御装置の受信回路に対し、書き換えプログラムデータのすべてと、その書き換えプログラムデータを記憶させる先の上記憶媒体中のアドレス指定を送信し、その送信が完了した後に、この車両制御装置の受信回路に対し、上記遷移先アドレスデータおよび上記アドレス指定を送信すると、当該遷移先記憶用アドレスデータ中のデータが初期値から変化するのは、書き換えプログラムデータのすべての送信が終了した後となる。したがって、上記構成の車両制御装置は、書き換えプログラムデータを当該記憶媒体に記憶させ終えたときに、当該記憶媒体の所定の遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、当該記憶媒体に記憶された命令を実行するようになる。
【００３２】
また、上記のような車両制御装置を実現するためのプログラム受信・起動プログラムとしても、本発明を捉えることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の一実施形態について説明する。図１に、本実施形態に係るエンジンＥＣＵ１のハードウェア構成を示す。エンジンＥＣＵ１は、マイコン２、通信回路３、および入出力回路４を有している。
【００３４】
マイコン２は、ＣＰＵ２１、書き換え可能な不揮発性記憶媒体であるフラッシュＲＯＭ２２、および書き換え可能な揮発性記憶媒体であるＲＡＭ２３を有しており、ＣＰＵ２１がフラッシュＲＯＭ２２またはＲＡＭ２３に記憶されたプログラムを実行し、通信回路３、入出力回路４との信号の授受を行い、フラッシュＲＯＭ２２、ＲＡＭ２３に対してデータの読み出し、書き込みを行うことで、エンジン制御等の各種作動を実現する。マイコン２の作動の詳細については後述する。
【００３５】
通信回路３は、有線ケーブルを介して外部ツール１０に接続されることで、この外部ツール１０から受けたデータに対して所定の加工を施してマイコン２のＣＰＵ２１に出力し、マイコン２のＣＰＵ２１から受けたデータに所定の加工を施して外部ツール１０に出力する。通信回路３がデータの加工に用いる規格としては、例えばＲＳ−２３２Ｃ、ＵＳＢ、ＩＥＥＥ１３９４等がある。
【００３６】
入出力回路４は、エンジン点火プラグ、燃料噴射装置、温度センサ、クランク角センサ等、車両内のアクチュエータやセンサと信号を授受するための回路であり、センサから受けたセンサ信号を、マイコン２のＣＰＵ２１に出力し、マイコン２のＣＰＵ２１から受けた制御信号を、アクチュエータに出力する。
【００３７】
図２に、外部ツール１０のハードウェア構成を示す。外部ツール１０は、通常のパーソナルコンピュータであってもよいし、エンジンＥＣＵ１にデータを送信するための専用の装置であってもよい。この外部ツール１０は、通信回路１１、入力装置１２、ＲＡＭ１３、ＲＯＭ１４、ＨＤＤ１５、およびＣＰＵ１６を有している。
【００３８】
通信回路１１は、有線ケーブルを介してエンジンＥＣＵ１の通信回路３に接続されることで、この通信回路３から受けたデータに対して所定の加工を施してＣＰＵ１６に出力し、ＣＰＵ１６から受けたデータに所定の加工を施して通信回路３に出力する。通信回路１１がデータの加工に用いる規格は、通信回路３が用いるものと同じである。
【００３９】
入力装置１２は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をＣＰＵ１６に出力する。
【００４０】
ＲＡＭ１３は読み出し、書き込み可能な揮発性メモリであり、ＲＯＭ１４は読み出し専用の不揮発性メモリであり、ＨＤＤ１５は読み出し、書き込み可能な不揮発性メモリである。ＲＯＭ１４、ＨＤＤ１５には、ＣＰＵ１６が読み出して実行するプログラム等があらかじめ記憶されている。またＨＤＤ１５には、後述する入力ファイルが記憶されている。ＲＡＭ１３は、ＣＰＵ１６がＲＯＭ１４、ＨＤＤ１５に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域として用いられる。
【００４１】
ＣＰＵ１６は、ＲＯＭ１４、ＨＤＤ１５に記憶されているプログラムを実行し、そのプログラムの実行時に、ＲＡＭ１３、ＨＤＤ１５に対してデータの書き込み、読み出しの制御を行い、通信回路１１を用いてエンジンＥＣＵ１とデータの授受を行う。
【００４２】
以上のようなハードウェア構成のエンジンＥＣＵ１、外部ツール１０の、本実施形態における作動の概要を、図３を用いて説明する。図３は、エンジンＥＣＵ１の有するフラッシュＲＯＭ２２、ＲＡＭ２３内の領域のデータ構成、外部ツール１０とフラッシュＲＯＭ２２、ＲＡＭ２３との間のデータの流れ、およびエンジンＥＣＵ１が有するＣＰＵ２１の処理の遷移を概念的に示す図である。
【００４３】
本実施形態においては、まず、ＣＰＵ２１が、エンジンＥＣＵ１の起動と同時に、フラッシュＲＯＭ２２に記憶されているブートプログラム２００の実行を開始する。そして、これと同時に、外部ツール１０は、書き換えプログラム４００を構成するデータ、および書き換えプログラム４００のＲＡＭ２３における格納先アドレスを指定するアドレスコマンドを、エンジンＥＣＵ１に送信する。エンジンＥＣＵ１のＣＰＵ２１は、通信回路３を介して書き換えプログラム４００のデータを受信し、この書き換えプログラム４００を、ＲＡＭ２３中の、通信回路３を介して受信したアドレスコマンドに基づいた領域に記憶させる（矢印３１参照）。
【００４４】
また、外部ツール１０は、書き換えプログラム４００の全データを送信し終えると、あらかじめ定められた遷移先記憶用アドレスを指定するアドレスコマンドをエンジンＥＣＵ１に送信し、さらに、書き換えプログラム４００のＲＡＭ２３中の先頭アドレスを示すデータを、遷移先アドレスデータ５００としてエンジンＥＣＵ１に送信する。
【００４５】
これらアドレスコマンドおよび遷移先アドレスデータ５００を、通信回路３を介して受信したＣＰＵ２１は、その遷移先アドレスデータ５００をＲＡＭ２３の遷移先記憶用アドレスに記憶させる（矢印３２参照）。
【００４６】
書き換えプログラム４００をすべて受信してＲＡＭ２３に記憶させた後、ＣＰＵ２１は、遷移先記憶用アドレスに記憶されているアドレス、すなわち書き換えプログラム４００の先頭アドレスに、命令実行位置をジャンプさせる（矢印３３参照）。なお、この遷移先記憶用アドレスは、ブートプログラム２００の作成時においてあらかじめ定められるようになっている。
【００４７】
このジャンプによる書き換えプログラム４００の実行によって、ＣＰＵ２１は、外部ツール１０から送信されるアプリケーションプログラム３００を受信し、受信したアプリケーションプログラム３００をフラッシュＲＯＭ２２の所定の領域に記憶させる（矢印３４参照）。
【００４８】
以上のような作動を実現させるためにエンジンＥＣＵ１のＣＰＵ２１が実行するブートプログラム２００、および外部ツール１０のＣＰＵ１６が実行する書き換えプログラム送信プログラム６００を、それぞれ図４および図５にフローチャートとして示す。以下、これらのフローチャートに基づいて、上記のエンジンＥＣＵ１および外部ツール１０の作動を詳細に説明する。
【００４９】
まず、作業者は、エンジンＥＣＵ１の通信回路３と外部ツール１０の通信回路１１とをケーブルで接続し、入力装置１２に対して所定の操作を行うことで、外部ツール１０のＣＰＵ１６に、書き換えプログラム送信プログラム６００の実行を開始させる。そしてそれと同時に、エンジンＥＣＵ１を起動する。
【００５０】
ＣＰＵ１６は、書き換えプログラム送信プログラム６００の実行を開始すると、まずステップ６１０で、ＨＤＤ１５から入力ファイルを読み込む。入力ファイルは、図６に示すように、書き換えプログラム４００用の部分７１と、それに続く遷移先アドレスデータ５００用の部分７２の２部構成となっており、各部は、送信用データ、およびそれらデータがエンジンＥＣＵ１のＲＡＭ２３中のどの領域に記憶されるかを記載する記憶先アドレスデータを有している。このような構成の入力ファイルとしては、例えばモトローラ（登録商標）Ｓフォーマットファイルを用いることができる。なお、遷移先アドレスデータ５００用の部分７２に記載される送信用データは、上述の遷移先アドレスデータであり、このデータの示すアドレスは、書き換えプログラム４００の先頭アドレス、すなわち、その書き換えプログラム４００の実行において最初に実行される命令の、ＲＡＭ２３に記憶されるアドレスと同じである。また、記憶先アドレスデータは、遷移先記憶用アドレスを示すデータである。
【００５１】
ＣＰＵ１６は、このような入力ファイルを読み込むと、続いてステップ６２０で、通信回路１１に、エンジンＥＣＵ１に対する書き換え要求のデータを出力することで、通信回路１１に当該データを送信させる。
【００５２】
起動後のエンジンＥＣＵ１のＣＰＵ２１では、ブートプログラム２００の実行開始後、ステップ２０１で、通信回路３を使用可能とするための通信初期化処理を行い、続いてステップ２０２で、通信回路３を介して、上述の書き換え要求のデータを受信したか否かを判定する。受信しない場合は、現在フラッシュＲＯＭ２２に記憶されているアプリケーションプログラムに実行を遷移させ、この後、エンジン制御等のための処理を実行する。
【００５３】
ステップ２０２で書き換え要求のデータを受信したと判定すると、続いてステップ２０３で、エンジンＥＣＵ１の製造時にあらかじめ定められたＲＡＭ２３中の遷移先記憶用アドレスの領域に、初期値として１６進数値ＦＦＦＦＦＦＦＦを記憶させる。
【００５４】
そして続いてステップ２０４で、外部ツール１０からデータを受信するまで、データを受信したか否かの判定を繰り返す。
【００５５】
外部ツール１０のＣＰＵ１６では、ステップ６２０で書き換え要求を送信した後、ステップ６３０で書き換えプログラム４００の先頭アドレスを、所定のアドレスコマンドの形式で送信する。
【００５６】
エンジンＥＣＵ１では、通信回路３がこのアドレスコマンドを受信すると、ＣＰＵ２１はステップ２０４でデータを受信したと判定し、続いてステップ２０５で受信データがアドレスコマンドであると判定する。そして更に、ステップ２０６で、その受信データを書き込みアドレス変数として、ＲＡＭ２３の所定の作業領域に記憶させ、続いてステップ２０４で次のデータを待つ。
【００５７】
外部ツール１０のＣＰＵ１６では、ステップ６３０でアドレスコマンドを送信した後、ステップ６４０、６５０で、プログラムデータの送信が完了するまで、すなわち入力ファイル中の書き換えプログラム４００の部分の送信データをすべて送信し終えるまで、書き換えプログラム４００を細分化したデータを、順次通信回路１１を用いて、上記アドレスコマンドと区別できる所定のデータコマンドの形式でエンジンＥＣＵ１に送信する。
【００５８】
エンジンＥＣＵ１のＣＰＵ２１は、その細分化されたデータを、通信回路３を介して受信する度に、ステップ２０４、２０５、２０７、２０８、２０９を一回実行する。すなわち、ステップ２０４でデータを受信したと判定し、続いてステップ２０５で受信データはアドレスコマンドでないと判定し、続いてステップ２０７で受信データはデータコマンドであると判定する。そして更に、ステップ２０８で、受信したデータを、現在の書き込みアドレス変数の示すＲＡＭ２３中の位置に記憶させ、書き込みアドレス変数を、現在の値から受信データ長に相当するアドレス分だけ増加させた値に変更する。例えば、受信データが２バイトなら、書き込みアドレス変数の値を２だけ増加させる。
【００５９】
さらに続いてステップ２０９で、現在の遷移先記憶用アドレスに記憶されている値が、初期値すなわち１６進数値ＦＦＦＦＦＦＦＦのままであるか否かを判定し、初期値のままであれば、続いてステップ２０４に戻り、同じでなければステップ２１０を実行する。
【００６０】
このように、遷移先記憶用アドレスに記憶されている値が初期値のままである限り、ステップ２０４、２０５、２０７、２０８、および２０９が繰り返し実行されることで、外部ツール１０から送信される書き換えプログラム４００の全体が、ＲＡＭ２３に記憶される（図３の矢印３１参照）。
【００６１】
また、外部ツール１０のＣＰＵ１６では、書き換えプログラム４００の全体を送信し終えると、ステップ６５０で送信完了であると判定し、続いてステップ６６０で、アドレスコマンドを、通信回路１１を用いてエンジンＥＣＵ１に送信する。このアドレスコマンドが示すアドレスは、ステップ６１０で読み込んだ入力ファイルの遷移先アドレスデータ５００用の部分７２に記載される記憶先アドレスデータ、すなわち、所定の遷移先記憶用アドレスである。
【００６２】
エンジンＥＣＵ１のＣＰＵ２１は、通信回路３を介してこのアドレスコマンドを受信すると、ステップ２０４でデータを受信したと判定し、続いてステップ２０５で受信データがアドレスコマンドであると判定する。そして更に、ステップ２０６で、その受信データ、すなわち遷移先記憶用アドレスを書き込みアドレス変数として、ＲＡＭ２３の所定の作業領域に記憶させ、続いてステップ２０４で次のデータを待つ。
【００６３】
また、外部ツール１０のＣＰＵ１６では、続いてステップ６７０で、アドレスの情報を含むデータコマンドを通信回路１１を用いてエンジンＥＣＵ１に送信する。このデータコマンドが含むが示すアドレスの情報は、ステップ６１０で読み込んだ入力ファイルの遷移先アドレスデータ５００用の部分７２に記載される送信用データ、すなわち、遷移先アドレスデータである。ステップ６７０の後、書き換えプログラム送信プログラム６００の実行は終了する。
【００６４】
エンジンＥＣＵ１のＣＰＵ２１は、通信回路３を介してこのデータコマンドを受信すると、ステップ２０４でデータを受信したと判定し、続いてステップ２０５で受信データがアドレスコマンドでないと判定し、続いてステップ２０７で受信データがデータコマンドであると判定する。そして更に、ステップ２０８で、受信した遷移先アドレスデータを、現在の書き込みアドレス変数の示すＲＡＭ２３中の位置、すなわち所定の遷移先記憶用アドレスに記憶させる。この時点で、遷移先記憶用アドレス中の値が、初期値から遷移先アドレスデータの値に変化する（図３の矢印３２参照）。
【００６５】
したがって、続いてステップ２０９では、遷移先記憶用アドレスの領域の値が初期値と異なっていると判定し、続いてステップ２１０で、遷移先記憶用アドレスに記憶されたアドレスにジャンプする。このジャンプにより、ＣＰＵ２１の実行は、書き換えプログラム４００の先頭位置に遷移し、ブートプログラム２００の実行は終了する（図３の矢印３３参照）。
【００６６】
その後、書き換えプログラム４００の実行により、ＣＰＵ２１は、外部ツール１０が送信するアプリケーションプログラム３００を受信し、フラッシュＲＯＭ２２の所定の領域に記憶させる（図３の矢印３４参照）。
【００６７】
以上の通り、ＲＡＭ２３と、通信回路３とを備えたエンジンＥＣＵ１は、ＣＰＵ２１がブートプログラム２００を実行することで、ＲＡＭ２３の遷移先記憶用アドレスに初期値を記憶させ（ステップ２０３参照）、受信したデータを、ＲＡＭ２３の、受信したアドレス指定に基づいたアドレスに記憶させ（ステップ２０８参照）、当該初期値を記憶させた後に当該遷移先記憶用アドレスに記憶されたデータが当該初期値と異なっていることに基づいて（ステップ２０９参照）、遷移先記憶用アドレスに記憶されたデータに基づくアドレスから、ＲＡＭ２３に記憶された書き換えプログラム４００の命令を実行する（ステップ２１０参照）。
【００６８】
また、エンジンＥＣＵ１にデータおよびアドレス指定を送信する通信回路１１を備えた外部ツール１０は、ＣＰＵ１６が書き換えプログラム送信プログラム６００を実行することで、書き換えプログラム４００のデータ、および、その書き換えプログラムデータを記憶させる先のＲＡＭ２３のアドレス指定を、通信回路１１に送信させ（ステップ６３０、６４０参照）、書き換えプログラム４００のデータのすべての送信が完了すると（ステップ６５０参照）、エンジンＥＣＵ１に対し、書き換えプログラム４００の先頭命令に該当するデータのＲＡＭ２３におけるアドレス、すなわち書き換えプログラム４００の先頭アドレス、を示す遷移先アドレスデータ、および、所定の遷移先記憶用アドレスを指定するアドレス指定を、通信回路１１に送信させる（ステップ６６０、６７０参照）
作業者は、このようなエンジンＥＣＵ１に対してこのような外部ツール１０を用いることで、エンジンＥＣＵ１の通信回路３に対し、書き換えプログラムデータと、その書き換えプログラムデータを記憶させる先の上記憶媒体中のアドレス指定を送信する手順を実行する（第１の手順に相当する）と、このエンジンＥＣＵ１は、ＲＡＭ２３の当該アドレス指定に基づいたアドレスに、当該書き換えプログラムデータを記憶させる。また、書き換えプログラム４００のデータのすべての送信が完了した後、このエンジンＥＣＵ１に対し、当該書き換えプログラムデータの先頭アドレスを示す遷移先アドレスデータ、および、上記の遷移先記憶用アドレスを指定するアドレス指定を送信する（第２の手順に相当する）と、エンジンＥＣＵ１は、当該遷移先アドレスデータを、当該所定の遷移先記憶用アドレスに記憶し、上記書き換えプログラムデータをＲＡＭ２３に記憶させ終えると、この所定の遷移先記憶用アドレスに記憶された遷移先アドレスデータに基づくアドレスから、書き換えプログラム４００の実行を行う。
【００６９】
したがって、このエンジンＥＣＵ１が書き換えプログラム４００のダウンロード終了後に実行を遷移させる先のプログラムは、当該書き換え実行プログラム４００であることになる。このような書き換えプログラム送信方法をエンジンＥＣＵ１に対して実行することで、エンジンＥＣＵ１は、外部から遷移先アドレスの指定のための特別なコマンドを受信することなく、様々な書き換えプログラムの遷移先アドレスに対応した作動を行うことができるようになる。
【００７０】
なお、上記の実施形態において、エンジンＥＣＵ１が車両制御装置に相当する。ただし、車両制御装置としては、エンジンＥＣＵ１に限らず、ブレーキ制御ＥＣＵ、オートマチックトランスミッション制御ＥＣＵ等、車両に搭載された機器の制御装置ならどのようなものであっても構わない。
【００７１】
また、外部ツール１０が書き換えプログラム送信装置に相当する。また、エンジンＥＣＵ１の通信回路３が受信回路に相当し、外部ツール１０の通信回路１１が送信回路に相当する。また、エンジンＥＣＵ１のＲＡＭ２３が書き換え可能な記憶媒体に相当する。
【００７２】
また、ブートプログラム２００が、書き換えプログラム受信・起動プログラムに相当する。ただし、書き換えプログラム受信・起動プログラムは、必ずしもエンジンＥＣＵ１の起動と同時に開始されるブートプログラムである必要はなく、例えば外部ツール１０からの信号によって起動するプログラムであってもよい。
【００７３】
また、エンジンＥＣＵ１のＣＰＵ２１が、ブートプログラム２００のステップ２０８を実行することで、記憶制御手段として機能し、ステップ２１０を実行することで、遷移手段として機能する。
【００７４】
また、エンジンＥＣＵ１のＣＰＵ２１が、ブートプログラム２００のステップ２０３を実行することで、初期化手段として機能し、ステップ２０９を実行することで、判定手段として機能する。
【００７５】
また、外部ツール１０のＣＰＵ１６が、書き換えプログラム送信プログラム６００のステップ６２０〜６５０を実行することで、書き換えプログラム等送信制御手段として機能する。
【００７６】
また、外部ツール１０のＣＰＵ１６が、書き換えプログラム送信プログラム６００のステップ６６０および６７０を実行することで、遷移先アドレスデータ等送信制御手段として機能する。
【００７７】
また、上記の実施形態において、遷移先アドレスデータは、車両制御装置の記憶媒体の全アドレスの一部分のうちから１つを選択する、アドレス指定よりもデータ量の少ない短縮ＩＤであってもよい。この場合、エンジンＥＣＵ１は、フラッシュＲＯＭ２２中に、短縮ＩＤとアドレスとの対応表を有することで、受信した短縮ＩＤに相当する遷移先のアドレスを特定するようになっていてもよい。また、外部ツール１０においては、読み込む入力ファイルの記憶先アドレスデータに、最初から短縮ファイルが含まれていてもよい。あるいは、外部ツール１０は、ＨＤＤ１５中に短縮ＩＤとアドレスとの対応表を有しており、入力ファイルの記憶先アドレスデータ中の実アドレスから、短縮アドレスを特定し、その短縮アドレスを遷移先アドレスデータとして送信するようになっていてもよい。このようになっていることで、遷移先アドレスデータの送信のためのデータ送信量が低減される。
【００７８】
また、上記の実施形態では、エンジンＥＣＵ１は、ブートプログラム２００の実行において、遷移先記憶用アドレスの値が初期値から変化したことに基づいて、書き換えプログラム４００の受信が完了したと判定し、書き換えプログラム４００の実行に遷移するようになっているが、書き換えプログラム４００の受信の完了は、必ずしもこのような方法で判定せずともよい。例えば、従来技術のように、外部ツール１０から、書き換えプログラム４００についてのアドレスコマンドと共に、書き換えプログラム４００のサイズの情報を受信し、受信データがこのサイズに達したときに、書き換えプログラム４００の受信が完了したと判定し、書き換えプログラム４００の先頭位置に実行を遷移してもよい。また、このようになっている場合、遷移先アドレスデータの外部ツール１０における送信タイミングは、必ずしも書き換えプログラム４００の送信完了後である必要はなく、書き換えプログラム４００の送信前であってもよいし、書き換えプログラム４００の送信途中であってもよい。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施形態におけるエンジンＥＣＵ１のハードウェア構成を示す図である。
【図２】外部ツール１０のハードウェア構成を示す図である。
【図３】エンジンＥＣＵ１のフラッシュＲＯＭ２２、ＲＡＭ２３と外部ツール１０との間のデータの流れ、およびエンジンＥＣＵ１の処理の遷移を、概念的に示す図である。
【図４】ブートプログラム２００のフローチャートである。
【図５】書き換えプログラム送信プログラム６００のフローチャートである
【図６】書き換えプログラム送信プログラム６００の実行に置いてＣＰＵ１６が読み込む入力ファイルのデータ構造を示す図である。
【図７】従来技術における、車両制御装置の有する記憶媒体５０の構成、外部ツール６０と記憶媒体５０との間のデータの流れ、および車両制御装置の処理の遷移を、概念的に示す図である。
【図８】従来技術におけるブートプログラム５３のフローチャートである。
【符号の説明】
【００８０】
１…エンジンＥＣＵ、２…マイコン、３…通信回路、４…入出力回路、
１０…外部ツール、１１…通信回路、１２…入力装置、１３…ＲＡＭ、１４…ＲＯＭ、
１５…ＨＤＤ、１６…ＣＰＵ、２１…ＣＰＵ、２２…フラッシュＲＯＭ、
２３…ＲＡＭ、３１〜３４…矢印、５０…記憶媒体、５１…フラッシュＲＯＭ、
５２…ＲＡＭ、５３…ブートプログラム、５４…アプリケーションプログラム、
５５…書き換えプログラム、６０…外部ツール、６１〜３…矢印、
２００…ブートプログラム、３００…アプリケーションプログラム、
４００…書き換えプログラム、５００…遷移先アドレスデータ、
６００…書き換えプログラム送信プログラム。
【図１】
2006113656.tif 000003
【図２】
2006113656.tif 000004
【図３】
2006113656.tif 000005
【図４】
2006113656.tif 000006
【図５】
2006113656.tif 000007
【図６】
2006113656.tif 000008
【図７】
2006113656.tif 000009
【図８】
2006113656.tif 000010