(57)【特許請求の範囲】
【請求項１】
車両制御装置の不揮発性メモリに格納された情報を、書き換え装置から転送された新たな情報に書き換える書き換えシステムであって、該書き換え装置は、該車両制御装置からの応答が所定の判定時間内にあるかどうかに従って、該車両制御装置との通信のオフラインを判定するオフライン判定手段を備えており、
前記オフライン判定手段は、
前記不揮発性メモリに対して消去も書き込みも実行されていないときは、前記所定の判定時間に第１の所定時間を設定し、該書き換え装置から該車両制御装置に対して或る要求信号を送信した時から、該第１の所定時間内に、該車両制御装置から応答が無いとき、前記通信をオフラインと判定し、
該書き換え装置が、前記不揮発性メモリに対して消去または書き込みを開始することを示す信号を該車両制御装置から受取ったことに応じて、該消去または書き込みの処理状況を要求する消去結果要求信号または書き込み結果要求信号の該車両制御装置への送信を開始し、該消去または書き込みが実行されている間に該消去結果要求信号または書き込み結果要求信号の送信を繰り返している時については、前記所定の判定時間に、前記第１の所定時間よりも長い第２の所定時間を設定し、最初の該消去結果要求信号または書き込み結果要求信号を送信した時から、該第２の所定時間内に、該消去または書き込みが完了していれば完了を示す信号で返信され、実行中であれば実行中を示す信号で返信される該車両制御装置からの応答が無いとき、前記通信をオフラインと判定する、
書き換えシステム。
【請求項２】
前記書き換え装置は、前記不揮発性メモリに格納された情報の消去または前記不揮発性メモリへの情報の書き込みに先だって、消去または書き込みに必要な時間を前記車両制御装置から取得する手段を備え、前記不揮発性メモリに格納された情報の消去を実行するとき、前記第２の所定時間として、前記取得した消去必要時間を設定し、前記不揮発性メモリへの情報の書き込みを実行するとき、前記第２の所定時間として、前記取得した書き込み必要時間を設定するようにした請求項１に記載の書き換えシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、車載制御装置のメモリに保存されたプログラムを、外部の書き換え装置から転送される別のプログラムに書き換えるシステムに関する。
【０００２】
【従来の技術】
現在、車両は、搭載された複数の車両制御装置（以下、「ＥＣＵ」ともいう）により、空燃比、燃料噴射量、エミッションなどのエンジンに関する制御、パワーウィンドウ、エアバッグ、ＡＢＳなどの車体に関する制御など、様々に制御されている。ＥＣＵは、車両に搭載された様々なセンサによって感知された車両の現在の状態および走行状況に基づいて、車両を様々に制御する。
【０００３】
ＥＣＵは、中央演算処理装置（ＣＰＵ）、実行するプログラムおよびデータを格納するＲＯＭ（読み取り専用メモリ）、実行時の作業領域を提供し演算結果などを記憶するＲＡＭ（ランダムアクセスメモリ）、各種センサからの信号を受け取り、およびエンジン各部に制御信号を送る入出力インターフェースを備えている。
【０００４】
上記ＲＯＭに、フラッシュメモリ、ＥＥＰＲＯＭのような消去および書き込み可能な不揮発性メモリを使用し、必要に応じてＲＯＭに格納された情報を書き換えるシステムが知られている。このシステムは、典型的には、書き換え装置、ＥＣＵおよびそれらを接続するシリアル通信路から構成される。書き換えは、ＥＣＵに搭載された不揮発性メモリに格納された情報を消去し、書き換え装置からシリアル通信を介して転送された情報を該不揮発性メモリに書き込むことによって達成される。特開昭６３−２２３９０１号公報には、外部の書き換え装置からの要求により、ＥＣＵを車両に搭載したままで、ＳＣＩ端子（シリアル・コミュニケーション・インターフェース）を介して、ＥＣＵのＥＥＰＲＯＭに格納されたプログラムを変更する方法が記載されている。
【０００５】
一般に、フラッシュメモリおよびＥＥＰＲＯＭのような不揮発性メモリの消去および書き込みは、処理に時間がかかる。一方、書き換え装置は、ＥＣＵからの応答が所定時間以上無いと判断すると、通信が断絶されていると判断してオフライン判定を行う。したがって、ＥＣＵによって不揮発性メモリの消去および書き込みが開始された後に、書き換え装置がその消去および書き込みの結果を確認するには、図６および図７に示されるように、通常以下のように実施される。ここで、図６は、書き換え装置で実行される消去および書き込み動作を示すフローチャートであり、図７は、ＥＣＵで実行される消去および書き込み動作を示すフローチャートである。
【０００６】
書き換え装置からの消去または書き込み要求に応じて（ステップ５０１または５２１）、ＥＣＵは、メモリの消去または書き込み開始信号を書き換え装置に送信し（ステップ５５２または５６２）、消去または書き込みを実行する（ステップ５５３または５６３）。書き換え装置は、消去または書き込み実行開始信号に応答して、消去または書き込みの結果をＥＣＵに要求する（ステップ５０５または５２５）。ＥＣＵは、消去または書き込み実行中ならば、消去または書き込み実行中信号を書き換え装置に返信し（ステップ５５６または５６６）、消去または書き込みが完了していれば、消去または書き込み完了信号を返信する（ステップ５５７または５６７）。
【０００７】
書き換え装置は、ステップ５０９または５２９において、車両制御装置からの応答が消去または書き込み実行中信号ならば、再度ステップ５０５または５２５から処理を繰り返し、応答が消去または書き込み完了信号ならば、次のステップ５１０または５３０に進む。このように、ＥＣＵにおいて消去または書き込みが開始された後は、結果要求信号を送信してＥＣＵからの応答を受け取ることにより、書き換え装置は、消去または書き込みが実行中または完了したかを判断することができる。消去または書き込み実行中でも、車両制御装置からの応答があれば、誤ったオフライン判定が行われることはない。
【０００８】
一方、不揮発性メモリのＥＣＵへの搭載の形態は、図８に示されるように、一般には２つに大別される。図８の（ａ）は、不揮発性メモリであるフラッシュメモリ１６がＣＰＵ１４とは別個に設けられて、ＣＰＵとは異なるチップ上に搭載される形態を示す。フラッシュメモリ１６は、ＣＰＵ１４が搭載されたマイクロコンピュータのチップと外部バス５を介して接続される。ＥＣＵ１０が、書き換え装置１１からフラッシュメモリ１６に対する消去または書き込み要求を受信すると、外部バス５を介した入出力を制御する入出力制御部（図示せず）によって、フラッシュメモリ１６の消去および書き込みが実行される。このように、フラッシュメモリの消去および書き込み制御はＣＰＵとは独立して行われるので、消去および書き込みのためにＣＰＵがビジー状態となることはない。
【０００９】
一方、図８の（ｂ）は、フラッシュメモリメモリ１６がＣＰＵ１４と同じチップ上に存在して１チップのマイクロコンピュータを構成する形態である。フラッシュメモリ１６はＣＰＵ１４と内部バス７を介して接続され、消去および書き込みは、ＣＰＵが機能として持つインターフェース手段によって実行される。したがって、ＣＰＵ１４がフラッシュメモリ１６の消去および書き込みを開始すると、ＣＰＵはビジー状態となり、ＥＣＵ１０は書き換え装置１１との通信ができなくなることがある。
【００１０】
【発明が解決しようとする課題】
近年、ＥＣＵの構成に伴うコストを削減させるため、上記の図８の（ｂ）のような、不揮発性メモリを内蔵したマイクロコンピュータの形態を適用することが多くなっきている。前述したように、この形態は、ＣＰＵが不揮発性メモリの消去または書き込みを実行している間、ＣＰＵはビジー状態となるので、ＥＣＵは、書き換え装置からの消去または書き込み結果要求信号に対して応答することができない場合が多くなる。その結果、たとえ通信ラインが正常であっても、書き換え装置は、ＥＣＵからの応答が所定時間内に無いために通信がオフライン状態にあると判定し、誤ったオフライン判定を行うこととなる。
【００１１】
したがって、この発明は、上記の問題点を解決するものであり、その目的は、ＥＣＵが不揮発性メモリにおける情報の消去または書き込みを実行していることに基づく誤ったオフライン判定を回避することのできる書き換えシステムを提供することである。
【００１２】
【課題を解決するための手段】
上記の課題を解決するため、請求項１の発明は、車両制御装置のメモリに格納された情報を、書き換え装置から転送された新たな情報に書き換える書き換えシステムであって、該書き換え装置は、前記車両制御装置からの応答時間が第１の所定時間以上であるとき、通信をオフラインと判定するオフライン判定手段と、前記メモリに対して消去または書き込みが実行されているときは、前記車両制御装置からの応答時間が前記第１の所定時間を超えても第２の所定時間に達するまで前記オフライン判定を禁止するオフライン判定禁止手段とを備えるという構成をとる。
【００１３】
請求項１の発明によると、車両制御装置がメモリの消去または書き込みを実行しているとき、誤って通信ラインをオフラインと判定することを回避することができる。
【００１４】
請求項２の発明は、請求項１の書き換えシステムにおいて、書き換え装置は、前記メモリに格納された情報の消去または前記メモリへの情報の書き込みに先だって、消去または書き込みに必要な時間を前記車両制御装置から取得する手段を備え、前記メモリに格納された情報の消去を実行するとき、前記第２の所定時間として前記取得した消去必要時間を設定し、前記メモリへの情報の書き込みを実行するとき、前記第２の所定時間として前記取得した書き込み必要時間を設定するという構成をとる。
【００１５】
請求項２の発明によると、消去または書き込みを実行しているときは、車両制御装置から取得した適切な消去または書き込み必要時間に基づいてオフライン判定を行うので、オフライン判定の精度が向上する。
【００１６】
【発明の実施の形態】
次に図面を参照してこの発明の実施の形態を、車両制御装置（ＥＣＵ）の不揮発性メモリに格納されたプログラムを書き換えるシステムに関して説明する。しかし、この発明は、プログラムを書き換えるシステムに限定されるものではなく、広くメモリに格納された情報を書き換えるシステムに適用することができる。
【００１７】
図１は、この発明に従う書き換えシステムの全体的な機能ブロック図を示す。書き換えシステムは、ＥＣＵ１０およびその外部に設けられた書き換え装置１１を備える。書き換え装置１１は、ＥＣＵ１０が搭載される車両のメーカーによって認可された正規の書き換え装置である。書き換え装置１１をシリアル通信バスを介してＥＣＵ１０に接続し、書き換え装置１１を操作することにより、ＥＣＵ１０のＲＯＭ１６に対する不正な書き換えを防止するセキュリティを解除して、ＲＯＭ１６に格納されたプログラムおよびデータのような情報を書き換えることができる。
【００１８】
ＥＣＵ１０は、マイクロコンピュータおよびこれに付随する回路素子で構成され、中央演算処理装置１４（以下「ＣＰＵ」という）、不揮発性メモリであって、実行するプログラムおよびデータを格納するＲＯＭ１６および１７、実行時の作業領域を提供し演算結果などを記憶するＲＡＭ１５（ランダムアクセスメモリ）、各種センサ１９から信号を受け取り、車両の各部に制御信号を送る入出力インターフェース１８を備える。
【００１９】
各種センサ１９からの信号には、エンジン回転数、エンジン水温、吸気温、バッテリ電圧、イグニションスイッチなどが含まれる。こうして、ＣＰＵ１４は、入出力インターフェース１８から入力された信号に基づいて、ＲＯＭ１６および１７から制御プログラムおよびデータを呼び出して演算を行い、その結果を入出力インターフェース１８を介して車両の各部に出力し、車両の様々な機能を制御する。
【００２０】
また、ＥＣＵ１０はインターフェース１２を備える。インターフェース１２は、書き換え装置１１との通信プロトコルを持ち、ＥＣＵ１０および書き換え装置１１の間のシリアル通信を可能にする。
【００２１】
変更可能ＲＯＭ１６は、格納された情報を消去して新たな情報を書き込むことができる不揮発性メモリであり、たとえばフラッシュメモリ、ＥＥＰＲＯＭによって実現することができる。変更不可能ＲＯＭ１７は、格納された情報を変更することができない不揮発性メモリである。変更不可能ＲＯＭ１７は、上記のフラッシュメモリ、ＥＥＰＲＯＭのような消去および書き込み可能なＲＯＭのメモリ領域のうち、ある領域を変更不可能領域と設定することによって実現することができ、または製造時にデータが決められ、その後に消去および書き込みができないマスクＲＯＭや、１度だけデータを書き込むことができるＰＲＯＭなどによっても実現することができる。
【００２２】
これらのＲＯＭ１６および１７は、別個のメモリとして実現してもよく、または１つのメモリのメモリ領域を２つの領域に分割して一方を変更可能領域として使用し、他方を変更不可能領域として使用することもできる。後者の場合、たとえばＥＥＰＲＯＭのある特定の領域を変更不可能領域としてプログラムなどを格納した後、それ以外の空き領域に対してスタートおよびエンドアドレスを指定することにより、変更可能領域を新たに設定することができる。
【００２３】
変更可能ＲＯＭ１６にはプログラムＰ１が格納されており、このプログラムＰ１が、書き換え装置１１による書き換えの対象となる。変更不可能ＲＯＭ１７には、認証部３３、初期化部３４、消去実行部３５、書込実行部３６を実現するプログラムが格納される。認証部３３は、書き換え装置１１が正規の書き換え装置かどうか判断し、正規の書き換え装置と判断したならば、セキュリティを解除する。初期化部３４は、消去および書き込みを開始するのに必要な初期処理を行う。消去実行部３５は、書き換えの対象となるプログラムＰ１を消去する。書込実行部３６は、書き換え装置１１から新たなプログラムＰ２を受信して、それをＲＯＭ１６に書き込む。
【００２４】
また、ＥＣＵ１０は、消去必要時間算出部３７および書込必要時間算出部３８を備える。消去必要時間算出部３７は、プログラムＰ１の消去に要する時間を算出する。ブロック単位またはバイト単位のような単位消去時間は、ＲＯＭの種類に依存して異なり、またＲＯＭの仕様で予め決まっている。消去必要時間算出部３７は、プログラムＰ１が含まれるメモリ領域の大きさと、ＲＯＭ１６に固有の単位消去時間に基づいて、プログラムＰ１を消去するのに必要な時間ＤＴを算出することができる。
【００２５】
書込必要時間算出部３８は、新たなプログラムＰ２の書き込みに要する時間を算出する。消去の場合と同様に、単位書き込み時間は、ＲＯＭの種類に依存して異なり、またＲＯＭの仕様で予め決まっている。書込必要時間算出部３８は、プログラムＰ２の大きさと、単位書き込み時間に基づいて、プログラムＰ２を書き込むのに必要な時間ＷＴを算出することができる。書き込み必要時間は、プログラムＰ２全体について算出することもできるし、書き換え装置１１から受信するプログラムコードの単位に算出することもできる。
【００２６】
書き換え装置１１は、セキュリティ解除要求部２０、書き換え初期化部２１、消去要求部２３および消去結果要求部２５を備え、これらはプログラムとして書き換え装置１１のメモリに格納される。セキュリティ解除要求部２０は、ＥＣＵ１０の変更可能ＲＯＭ１６への書き換えが許可されるよう、ＥＣＵ１０に対してセキュリティの解除を要求する。書き換え初期化部２１は、消去および書き込み動作を開始するのに必要な処理を実行する。消去要求部２３は、変更可能ＲＯＭ１６における書き換え対象のプログラムＰ１の消去をＥＣＵ１０に要求する。消去結果要求部２５は、消去の結果をＥＣＵ１０に要求し、消去の実行中または完了を判断する。
【００２７】
書き換え装置１１は、消去必要時間取得部２２を備えて、ＥＣＵ１０で消去が実行されるのに先立って、変更可能ＲＯＭ１６に格納されたプログラムＰ１を消去するのに必要な時間ＤＴをＥＣＵ１０から取得するのが好ましい。たとえば、消去要求部２３がプログラムＰ１の消去をＥＣＵ１０に要求する前、または要求するとき、消去必要時間取得部２２は、ＥＣＵ１０の消去必要時間算出部３７が算出した消去必要時間ＤＴをＥＣＵ１０から取得することができる。
【００２８】
代替の形態として、消去必要時間算出部３７を書き換え装置１１に設け、消去必要時間ＤＴを、書き換え装置１１において算出することもできる。書き換え装置１１が、既存のプログラムＰ１およびＲＯＭ１６の単位消去時間を予め保持することにより、またはＥＣＵ１０に要求して取得することにより、書き換え装置１１は消去必要時間ＤＴを算出することができる。
【００２９】
また、書き換え装置１１は、書込要求部２７、書込結果要求部２９およびデータ列組立部３０を備え、これらはメモリにプログラムとして格納される。データ列組立部３０は、ＥＣＵ１０に送信する新たなプログラムＰ２のプログラムコードを、シリアル通信に適したデータ列に変換する。データ列組立部３０は、転送されるプログラムをある長さのプログラムコード（たとえば、８ビット）に分割し、該プログラムコードにアドレスフィールドを付加してシリアルデータ列を組み立てる。アドレスフィールドには、該プログラムコードが格納されるＲＯＭの先頭アドレスが含まれ、該プログラムコードが格納されるべき場所をＥＣＵ１０に通知する。
【００３０】
書込要求部２７は、新たなプログラムＰ２の変更可能ＲＯＭ１６への書き込みをＥＣＵ１０に要求し、データ列組立部３０によって組み立てられた新たなプログラムＰ２のデータ列をＥＣＵ１０に順番に送信する。書込結果要求部２９は、書き込みの結果をＥＣＵ１０に要求し、書き込みの実行中または完了を判断する。
【００３１】
書き換え装置１１は、書込必要時間取得部２６を備えて、ＥＣＵ１０で書き込みが実行されるのに先立って、変更可能ＲＯＭ１６に新たなプログラムＰ２を書き込むのに必要な時間ＷＴを取得するのが好ましい。たとえば、書込要求部２７がプログラムＰ２の書き込みをＥＣＵ１０に要求する前、または要求するとき、書込必要時間取得部２６は、ＥＣＵ１０の書込必要時間算出部３８が算出した書き込み必要時間ＷＴをＥＣＵ１０から取得することができる。この実施例では、書込必要時間取得部２６は、１度に送信されるプログラムコードが書き込まれるのに必要な時間を書き込み必要時間ＷＴとして取得する。しかし、新たなプログラムＰ２全体を書き込むのに必要な時間を取得することもできる。
【００３２】
代替の形態として、書込必要時間算出部３８を書き換え装置１１に設け、書き込み必要時間ＷＴを、書き換え装置１１において算出することもできる。単位書き込み時間を予め保持することにより、またはＥＣＵ１０に要求することにより、書き換え装置１１は、新たなプログラムＰ２の大きさに基づいて書き込み必要時間ＷＴを算出することができる。
【００３３】
また、書き換え装置１１はオフライン判定部３１を備え、ＥＣＵ１０からの応答時間に基づいて、通信がオフライン状態かどうか判定する。オフライン判定部３１は、消去要求部２３に対するＥＣＵ１０の応答時間と、予め設定された第１の判定時間ＤＴ１を比較し、該応答時間が第１の判定時間ＤＴ１を超えたならば、オフラインと判定する。
【００３４】
一方、オフライン判定部３１は、消去が実行されているときは、ＥＣＵ１０からの応答時間が第１の判定時間ＤＴ１を超えても、予め設定された第２の判定時間ＤＴ２に達するまでオフライン判定を禁止する。こうすることにより、消去実行中に基づく誤ったオフライン判定を回避することができる。具体的には、消去結果要求部２５に対する応答時間と第２の判定時間ＤＴ２とを比較し、該応答時間が第２の判定時間ＤＴ２を超えたならば、オフラインと判定する。判定時間ＤＴ２は、消去実行部３５によって消去が実行されているときに、オフラインを判定するのに使用する基準時間であり、ＤＴ１＜ＤＴ２となるよう設定される。
【００３５】
同様に、オフライン判定部３１は、書込要求部２７に対する応答時間と、予め設定された第１の判定時間ＷＴ１を比較し、該応答時間が第１の判定時間ＷＴ１を超えたならば、オフラインと判定する。判定時間ＷＴ１は、上記の判定時間ＤＴ１と同じ値をとることができ、または異なる値であってもよい。
【００３６】
一方、オフライン判定部３１は、書き込みが実行されているときは、ＥＣＵ１０からの応答時間が第１の判定時間ＷＴ１を超えても、予め設定された第２の判定時間ＷＴ２に達するまでオフライン判定を禁止する。こうすることにより、書き込み実行中に基づく誤ったオフライン判定を回避することができる。具体的には、書込結果要求部２９に対する応答時間と、予め設定された第２の判定時間ＷＴ２を比較し、該応答時間が第２の判定時間ＷＴ２を超えたならば、オフラインと判定する。判定時間ＷＴ２は、書込実行部３６によって書き込みが実行されているときに、オフラインを判定するのに使用する基準時間であり、ＷＴ１＜ＷＴ２となるよう設定される。
【００３７】
消去必要時間取得部２２によって消去必要時間ＤＴが取得されるならば、第２の判定時間ＤＴ２として、該消去必要時間ＤＴを設定するのが好ましい。同様に、書込必要時間取得部２６によって書き込み必要時間ＷＴが取得されるならば、第２の判定時間ＷＴ２として、該書き込み必要時間ＷＴを設定するのが好ましい。こうすることにより、消去または書き込み実行中、ＲＯＭの仕様に適合した消去必要時間および書き込み必要時間に基づいてオフラインが判定されるので、オフラインの判定時間を最小にすることができ、より正確なオフライン判定を行うことができる。しかし、判定時間ＤＴ１およびＷＴ１と同様に、判定時間ＤＴ２およびＷＴ２を、消去または書き込みに先立って算出することなく、固定値として予め設定することもできる。
【００３８】
図１に示される書き換えシステムの書き換え動作の概要を、図２を参照しながら説明する。書き換え装置１１をＥＣＵ１０に接続した後、たとえば書き換え装置１１の何らかの操作ボタンを押すことにより、書き換え動作が開始する。または、ＥＣＵ１０を操作して、書き換え動作を開始するようにしてもよい。
【００３９】
ステップ４１において、書き換え装置１１のセキュリティ解除要求部２０は、ＥＣＵ１０にセキュリティ解除要求信号を送信する。それに応答して、ＥＣＵ１０の認証部３３は、正規の書き換え装置が接続されていることを確認する認証処理を開始する。認証処理を任意の方法で達成することができる。たとえば、書き換え装置１１およびＥＣＵ１０のそれぞれがセキュリティ関数を持っており、自身のセキュリティ関数を使用して、任意に設定された同じ数に対する関数値をそれぞれ計算し、互いに計算した関数値を照合する。正規の書き換え装置ならば同じセキュリティ関数を持っているので、関数値も一致するはずである。関数値が一致したならば、ＥＣＵ１０は、書き換え装置１１に書き換え許可信号を送信する。こうして、セキュリティが解除される。
【００４０】
書き換えが許可されたならば、書き換え装置１１の書き換え初期化部２１は、書き換え開始信号をＥＣＵ１０に送り、ＥＣＵ１０の初期化部３４は、準備ができたならば開始許可信号を書き換え装置に送信する（ステップ４２）。書き換え初期化部２１は、書き換え動作モード移行要求信号をＥＣＵ１０に送り、初期化部３４は動作モード移行処理を行う（ステップ４３）。書き換え初期化部２１は動作モードの移行が完了したかどうかをＥＣＵ１０に問い合わせ、初期化部３４は、動作モードの移行が完了したならば、移行完了信号を書き換え装置１１に送信する（ステップ４４）。
【００４１】
書き換え装置１１の消去必要時間取得部２２は、プログラムＰ１の消去に必要な時間を要求し、ＥＣＵ１０の消去必要時間算出部３７は、消去必要時間ＤＴを算出して書き換え装置１１に送信する（ステップ４５）。消去必要時間取得部２２は、消去必要時間ＤＴを第２の判定時間ＤＴ２に設定する。書き換え装置１１の消去要求部２３は、プログラムＰ１の消去をＥＣＵ１０に要求し、ＥＣＵ１０の消去実行部３５は応答して、消去実行開始信号を返す（ステップ４６）。書き換え装置１１のオフライン判定部３１は、消去実行開始信号の応答時間が第１の判定時間ＤＴ１を超えたならば、通信のオフライン判定を行う。
【００４２】
ステップ４７において、書き換え装置１１の消去結果要求部２５は、消去結果をＥＣＵ１０に要求する。この結果要求は、消去結果要求部２５がＥＣＵ１０から消去完了信号を受け取るまで繰り返し送信される。または、消去要求を送信して所定時間経過した後、所定時間間隔ごとに送信するようにしてもよい。消去結果要求に対するＥＣＵ１０の応答時間が、第２の判定時間ＤＴ２を超えたならば、書き換え装置は通信のオフライン判定を行う。ＥＣＵ１０の消去実行部３５は、ＲＯＭ１６のプログラムＰ１の消去を完了したならば、消去完了信号を書き換え装置１１に送信する。
【００４３】
書き換え装置１１においては、データ列組立部３０によって、新たなプログラムＰ２は、ＥＣＵ１０に送信するためのシリアルデータ列として準備されている。このプログラムＰ２のデータ列組立は、通常、書き換え装置１１によってセキュリティ解除要求または書き換え開始信号をＥＣＵ１０に送信する前に行われる。しかし、ステップ４７または４８の直前に行うようにしてもよい。
【００４４】
書き換え装置１１の書込必要時間取得部２６は、新たなプログラムＰ２を書き込むのに必要な時間をＥＣＵ１０に要求する。これに応答して、ＥＣＵ１０の書込必要時間算出部３８は、書き込み必要時間ＷＴを算出して書き換え装置１１に送信する（ステップ４８）。書込必要時間取得部２６は、書き込み必要時間ＷＴを第２の判定時間ＷＴ２に設定する。
【００４５】
ステップ４９において、書き換え装置１１の書込要求部２７は、書き込み要求信号と共に、新たなプログラムＰ２のプログラムコードを含むデータ列をＥＣＵ１０に送信する。ＥＣＵ１０の書込実行部３６は、これに応答して、書き込み実行開始信号を書き換え装置１１に送信し、書き換え装置１１から受信したデータ列のアドレスフィールドを調べて、変更可能ＲＯＭ１６の、該アドレスフィールドに示されるアドレス値に対応する場所に、該プログラムコードを書き込む。アドレス値を調べるとき、消去実行部３５によって消去されたアドレスに対応するかどうか判断するチェック機構を設けてもよい。オフライン判定部３１は、ＥＣＵ１０の実行開始信号の応答時間が第１の判定時間ＷＴ１を超えたならば、通信のオフライン判定を行う。
【００４６】
書き換え装置１１の書込結果要求部２９は、書き込み結果をＥＣＵ１０に要求する（ステップ５０）。この結果要求は、書込結果要求部２９が書き込み完了信号をＥＣＵ１０から受信するまで繰り返し送信される。または、書き込み要求を送信してある時間経過した後、所定時間間隔ごとに送信するようにしてもよい。オフライン判定部３１は、書き込み結果要求に対するＥＣＵ１０の応答時間が第２の判定時間ＷＴ２を超えたならば、通信のオフライン判定を行う。書込実行部３６は、書き込みが完了したならば書き込み完了信号を書き換え装置１１に送信する。
【００４７】
書込要求部２７は、書き込み完了信号が書き込みの正常終了を示すものならば、次のデータ列をＥＣＵ１０に送信する。このステップ４９および５０は、ＲＯＭ１６に、プログラムＰ２のすべてのプログラムコードの書き込みが完了するまで繰り返される。すべての書き込みが完了したならば、書込要求部２７は、書き換え動作モードを解除する要求をＥＣＵ１０に送信する（ステップ５１）。それに応答して、書込実行部３６は書き換え動作モードを解除する。
【００４８】
図３、図４および図５は、消去および書き込み動作を示すフローチャートである。図３に示される動作は、書き換え装置１１の消去必要時間取得部２２、消去要求部２３、消去結果要求部２５およびオフライン判定部３１により実現され、図４に示される動作は、書込必要時間取得部２６、書込要求部２７、書込結果要求部２９およびオフライン判定部３１により実現される。
【００４９】
ステップ６０において、書き換え装置は消去必要時間要求信号をＥＣＵに送信する。ＥＣＵから消去必要時間ＤＴを受信したならば（ステップ６１）、判定時間ＤＴ２に消去必要時間ＤＴを設定してメモリに格納し（ステップ６４）、消去要求信号をＥＣＵに送信する（ステップ６５）。
【００５０】
ステップ６１および６６においてＥＣＵから応答が無ければ、予め決められた第１の判定時間ＤＴ１（たとえば、３０ミリ秒）が経過したかどうか判断する（ステップ６２および６７）。第１の判定時間ＤＴ１が経過していなければ、ステップ６１および６６にそれぞれ戻り、ＥＣＵからの応答を待つ。第１の判定時間ＤＴ１が経過してもＥＣＵから応答がなければ、書き換え装置およびＥＣＵ間の通信が断絶していると判断して、オフライン判定を行う（ステップ６３および６８）。
【００５１】
ステップ６６においてＥＣＵからの応答があれば、消去結果要求信号をＥＣＵに送信する（ステップ７０）。ＥＣＵから消去結果要求信号に対する応答があれば（ステップ７１）、その応答内容が消去完了を示すものかどうか調べ（ステップ７２）、消去完了を示すものならばステップ７６に進む。消去実行中であって、応答内容が消去完了を示すものでないならば、ステップ７０に戻り、再度消去結果要求信号をＥＣＵに送信する。このとき、たとえばある時間経過した後にステップ７０に戻るようにしてもよい。
【００５２】
ステップ７１においてＥＣＵからの応答がなければ、判定時間ＤＴ１が経過したかどうか判断する（ステップ７３）。判定時間ＤＴ１が経過していなければ、ステップ７１に戻り、ＥＣＵからの応答を待つ。判定時間ＤＴ１が経過しても応答がなければ、最初の消去結果要求信号を送信したときから第２の判定時間ＤＴ２（たとえば、４００ミリ秒）が経過したかどうか判断する（ステップ７４）。第２の判定時間ＤＴ２が経過しても応答がなければ、オフライン判定を行う（ステップ７５）。
【００５３】
このように、消去中の場合は、より長い判定時間に基づいてオフライン判定を行うので、消去中における誤ったオフライン判定を回避することができる。また、判定時間が、ＲＯＭ仕様に基づいた消去必要時間に適合されるので、より正確なオフライン判定を行うことができる。
【００５４】
ステップ７６において、消去が正常に終了したならば、図４のステップ８０に進み、正常終了でなかったならば、このルーチンを抜ける。図４に示されるステップ８０以降のステップは、書き換え装置における書き込みに関する処理を示す。オフライン判定は、消去の場合と同様に行われる。
【００５５】
ステップ８０において、書き込み必要時間要求信号をＥＣＵに送信し、ＥＣＵから書き込み必要時間ＷＴを取得する。書き込み必要時間ＷＴを、判定時間ＷＴ２に設定してメモリに格納する（ステップ８４）。ステップ８５に進み、新たなプログラムＰ２のプログラムコードを含むデータ列をＥＣＵに送信する。
【００５６】
ステップ８１およびステップ８６において、予め決められた判定時間ＷＴ１（たとえば、３０ミリ秒）を経過してもＥＣＵからの応答が無ければ、オフラインと判定する（ステップ８３および８８）。
【００５７】
ステップ８６においてＥＣＵから応答があれば、書き込み結果要求信号をＥＣＵに送信する（ステップ９０）。ＥＣＵから書き込み結果要求信号に対する応答があれば、その応答の内容が書き込み完了を示すものかどうか調べ（ステップ９２）、書き込み完了を示すものならばステップ９６に進む。書き込み実行中であって、応答内容が書き込み完了を示すものでないならば、ステップ９０に戻り、再度書き込み結果要求信号をＥＣＵに送信する。このとき、たとえばある時間経過した後にステップ９０に戻るようにしてもよい。
【００５８】
ステップ９１においてＥＣＵからの応答がなければ、書き込み結果要求信号の送信から第１の判定時間ＷＴ１が経過したかどうか判断する（ステップ９３）。第１の判定時間ＷＴ１が経過していなければ、ステップ９１に戻り、ＥＣＵからの応答を待つ。判定時間ＷＴ１が経過してもＥＣＵからの応答がなければ、最初の書き込み結果要求信号を送信したときから第２の判定時間ＷＴ２（たとえば、４０ミリ秒）が経過したかどうか判断する（ステップ９４）。第２の判定時間ＷＴ２が経過しても応答がなければ、オフライン判定を行う（ステップ９５）。
【００５９】
このように、書き込み中の場合は、より長い判定時間に基づいてオフライン判定を行うので、書き込み中における誤ったオフライン判定を回避することができる。また、判定時間が、ＲＯＭ仕様に基づいた書き込み必要時間に適合されるので、より正確なオフライン判定を行うことができる。
【００６０】
ステップ９６において、書き込みが正常に終了したと判断されたならば、次のデータ列をＥＣＵに送信するためステップ８０に戻る。こうして、ステップ９７において、新たなプログラムＰ２のすべてのプログラムコードがＥＣＵに送信されたならば、この処理を抜ける。
【００６１】
図５は、ＥＣＵにおける消去および書き込み動作のフローチャートを示す。ステップ１０１において、消去必要時間要求信号を受信したならば、消去必要時間ＤＴを算出して、書き換え装置に送信する（ステップ１０２）。ステップ１０３において、消去要求信号を受信したならば、書き換え装置に消去実行開始信号を返信し、（ステップ１０４）、消去を実行する（ステップ１０５）。消去の実行中または消去が終了した後に、書き換え装置から消去結果要求信号を受信したならば（ステップ１０６）、消去結果信号を書き換え装置に返信する（ステップ１０７）。消去結果信号は、たとえば消去が完了していれば値「１」が設定されて消去完了を示し、消去が完了していなければ値「０」が設定されて消去実行中を示すというように、消去処理の状況を示す。
【００６２】
同様にして、書き換え装置から書き込み必要時間要求信号を受信したならば（ステップ１１１）、書き込み必要時間ＷＴを算出して、書き換え装置に送信する（ステップ１１２）。ステップ１１３において、書き換え装置から新たなプログラムのデータ列を受信したならば、書き込み実行開始信号を書き換え装置に返信し（ステップ１１４）、受信したデータ列に含まれるプログラムコードを変更可能ＲＯＭに書き込む（ステップ１１５）。書き込み中または書き込みを終了した後に、書き換え装置から書き込み結果要求信号を受信したならば（ステップ１１６）、書き込み結果を書き換え装置に返信する（ステップ１１７）。書き込み結果信号は、たとえば書き込みが完了していれば値「１」が設定されて書き込み完了を示し、書き込みが完了していなければ値「０」が設定されて書き込み実行中を示すというように、書き込み処理の状況を示す。書き換え装置からＥＣＵへのプログラム転送はデータ列ごとに行われるので、ステップ１１３からステップ１１７を、新たなプログラムのすべてのデータ列を受信するまで繰り返す（ステップ１１８）。
【００６３】
【発明の効果】
請求項１の発明によると、車両制御装置がメモリの消去または書き込みを実行しているとき、誤って通信ラインをオフラインと判定することを回避することができる。
【００６４】
請求項２の発明によると、消去または書き込みを実行しているときは、車両制御装置から取得した適切な消去または書き込み必要時間に基づいてオフライン判定を行うので、オフライン判定の精度が向上する。
【図面の簡単な説明】
【図１】この発明の一実施例における、書き換えシステムの全体を示すブロック図。
【図２】この発明の一実施例における、書き換えシステムの動作手順を示す図。
【図３】この発明の一実施例における、書き換え装置における消去および書き込み動作を示すフローチャート。
【図４】この発明の一実施例における、書き換え装置における消去および書き込み動作を示すフローチャート。
【図５】この発明の一実施例における、車両制御装置における消去および書き込み動作を示すフローチャート。
【図６】従来の、書き換え装置における消去および書き込み動作を示すフローチャート。
【図７】従来の、車両制御装置における消去および書き込み動作を示すフローチャート。
【図８】車両制御装置におけるＣＰＵおよびメモリの形態を示す図。
【符号の説明】
１０  ＥＣＵ                    １１  書き換え装置
１２  インターフェース          １４  ＣＰＵ
１６  変更可能ＲＯＭ            １７  変更不可能ＲＯＭ
【図１】
0003835969.tif 000002
【図２】
0003835969.tif 000003
【図３】
0003835969.tif 000004
【図４】
0003835969.tif 000005
【図５】
0003835969.tif 000006
【図６】
0003835969.tif 000007
【図７】
0003835969.tif 000008
【図８】
0003835969.tif 000009