(57)【特許請求の範囲】
【請求項１】
車載通信システムを構成する電子制御装置のいずれかを対象装置として、該対象装置のメモリに格納されたプログラムを、前記車載通信システムに接続したプログラム書換装置を用いて、該プログラム書換装置に格納されたプログラムに書き換えるプログラム書換方法であって、
前記プログラム書換装置にて、前記プログラムの書き換えに用いるリプログデータを、予め設定されたデータ長の単位ブロックに分割し、各単位ブロックにシリアル番号を対応づける第１の手順と、
前記単位ブロックのうち、該単位ブロックが示す値が予め設定された特定値であるものを特定ブロック、該特定ブロックが予め設定された下限値以上連続する領域を連続領域として、該連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号及び該連続領域の末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域情報を、前記プログラム書換装置から前記対象装置に送信する第２の手順と、
前記単位ブロックのうち、前記連続領域を構成する特定ブロック以外のものを送信対象ブロックとして、該送信対象ブロックを、前記プログラム書換装置から前記対象装置に順番に送信する第３の手順と、
前記対象装置にて、前記プログラム書換装置から受信した前記送信対象ブロック及び前記領域情報に基づいて生成した前記特定ブロックにより前記リプログデータを復元して、前記メモリの書き換えを実行する第４の手順と、
を備えることを特徴とするプログラム書換方法。
【請求項２】
車載通信システムを構成する電子制御装置のいずれかを対象装置として、該対象装置のメモリに格納されたプログラムを、自装置に格納されたプログラムに書き換えるプログラム書換装置であって、
前記プログラムの書き換えに用いるリプログデータを、予め設定されたデータ長の単位ブロックに分割し、各単位ブロックにシリアル番号を対応づける分割手段と、
前記分割手段にて分割された前記単位ブロックのうち、該単位ブロックが示す値が予め設定された特定値であるものを特定ブロック、該特定ブロックが予め設定された下限値以上連続する領域を連続領域として、該連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号及び該連続領域の末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域情報を前記対象装置へ送信する領域情報送信手段と、
前記単位ブロックのうち、前記連続領域を構成する特定ブロック以外のものを送信対象ブロックとして、該送信対象ブロックを前記対象装置へ順番に送信するブロックデータ送信手段と、
を備えることを特徴とするプログラム書換装置。
【請求項３】
車載通信システムを構成し、格納されたプログラムの書き換えが可能なメモリを有する電子制御装置であって、
前記プログラムの書き換えに用いるリプログデータを、予め設定されたデータ長に分割し且つ各々にシリアル番号を対応づけたものを単位ブロック、該単位ブロックが示す値が予め設定された特定値であるものを特定ブロック、該特定ブロックが予め設定された下限値以上連続する領域を連続領域として、該連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号及び該連続領域の末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域情報を、前記車載通信システムに接続されたプログラム書換装置から受信する領域情報受信手段と、
前記単位ブロックのうち、前記連続領域を構成する特定ブロック以外のものを送信対象ブロックとして、該送信対象ブロックを、前記車載通信システムに接続された前記プログラム書換装置から受信するブロックデータ受信手段と、
前記領域情報に基づいて復元した前記連続領域、及び前記ブロックデータ受信手段により受信した前記送信対象ブロックによって前記リプログデータを復元して、前記メモリの書き換えを実行する書換実行手段と、
を備えることを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置のプログラムを書き換える際に用いるプログラム書換方法及びプログラム書換装置、そのプログラム書換方法が適用される電子制御装置に関する。
【背景技術】
【０００２】
従来、車両に生じた不具合を解消したり、車両をカスタマイズしたりする際に、車載通信システムを介して、該車載通信システムに接続された電子制御装置（ＥＣＵ）のプログラムを、車載通信システムに接続したリプログ装置を介して書き換えることが行われている。
【０００３】
なお、ＥＣＵでは、プログラムを格納する書換可能な不揮発性メモリとして、フラッシュメモリ等が用いられており、その記憶容量はメガバイトのオーダである。一方、車載通信システムとして一般的に用いられているＣＡＮ（Controller Area Network ）の伝送速度は、通常５００ｋｂｐｓ程度であり、また、一つの通信フレームで送信できるデータ量は８バイトである。
【０００４】
従って、リプログ作業には、リプログデータの伝送に多くの時間が費やされることになり、作業効率が悪いという問題がある。
これに対して、リプログデータを圧縮した圧縮データを転送することで、データの伝送に要する時間を短縮する手法が知られている（例えば、特許文献１，２参照。）。
【０００５】
この場合、圧縮データを受信したリプログ対象の装置では、受信した圧縮データを、解凍プログラムを用いて解凍し、その解凍されたリプログデータがフラッシュメモリ等に書き込まれることになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３４６０１号公報
【特許文献１】特開２００９−２２７２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上述の従来技術では、リプログデータの圧縮処理や解凍処理に時間を要してしまうため、作業効率を十分に向上させることができないという問題や、リプログデータを解凍する解凍プログラムを、リプログ対象装置に予め実装しておくか、リプログを実行する際に転送する必要があり、前者の場合、貴重なメモリの一部が、解凍プログラムに使われてしまうというと言う問題があり、後者の場合、作業効率を低下させてしまうという問題があった。
【０００８】
本発明は、上記問題点を解決するために、電子制御装置のプログラムを書き換える（リプログする）際に、既存の圧縮，解凍プログラムを用いることなく、リプログデータのデータ量を削減しリプログに要する作業時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための発明である請求項１に記載のプログラム書換方法では、まず、プログラム書換装置にて、前記プログラムの書き換えに用いるリプログデータを、予め設定されたデータ長の単位ブロックに分割し、各単位ブロックにシリアル番号を対応づける（第１の手順）。
【００１０】
次に、単位ブロックのうち、その単位ブロックが示す値が予め設定された特定値であるものを特定ブロック、その特定ブロックが予め設定された下限値以上連続する領域を連続領域として、連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号及び連続領域の末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域情報を、プログラム書換装置から対象装置に送信する（第２の手順）。
【００１１】
そして、単位ブロックのうち、連続領域を構成する特定ブロック以外のものを送信対象ブロックとして、この送信対象ブロックを、プログラム書換装置から対象装置に順番に送信する（第３の手順）。
【００１２】
最後に、対象装置にて、プログラム書換装置から受信した送信対象ブロック及び領域情報に基づいて生成した特定ブロックによりリプログデータを復元して、メモリの書き換えを実行する（第４の手順）。
【００１３】
これにより、既存の圧縮，解凍プログラムを用いることなく、プログラムの書き換え時にプログラム書換装置から対象装置に伝送するリプログデータのデータ量を削減することができ、その結果、データ伝送に要する時間が削減されるため、リプログの作業効率を向上させることができる。
【００１４】
特に、電子制御装置においてプログラムを格納するメモリが、所定サイズのセクタ単位でデータの書き換えが行われる場合、セクタの未使用部分にはゼロが書き込まれるため、効果的にデータ量を削減することができる。
【００１５】
次に、請求項２に記載のプログラム書換装置では、分割手段が、プログラムの書き換えに用いるリプログデータを、予め設定されたデータ長の単位ブロックに分割し、各単位ブロックにシリアル番号を対応づける。
【００１６】
そして、領域情報送信手段が、分割手段にて分割された単位ブロックのうち、単位ブロックが示す値が予め設定された特定値であるものを特定ブロック、特定ブロックが予め設定された下限値以上連続する領域を連続領域として、連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号及び連続領域の末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域情報を対象装置へ送信する。
【００１７】
更に、ブロックデータ送信手段が、単位ブロックのうち、連続領域を構成する特定ブロック以外のものを送信対象ブロックとして、送信対象ブロックを対象装置へ順番に送信する。
【００１８】
また、請求項３に記載の電子制御装置では、プログラムの書き換えに用いるリプログデータを、予め設定されたデータ長に分割し且つ各々にシリアル番号を対応づけたものを単位ブロック、該単位ブロックが示す値が予め設定された特定値であるものを特定ブロック、該特定ブロックが予め設定された下限値以上連続する領域を連続領域として、領域情報受信手段が、連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号及び連続領域の末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域情報を、前記車載通信システムに接続されたプログラム書換装置から受信する。
【００１９】
また、ブロックデータ受信手段が、単位ブロックのうち、連続領域を構成する特定ブロック以外のものを送信対象ブロックとして、該送信対象ブロックを、車載通信システムに接続されたプログラム書換装置から受信する。
【００２０】
そして、書換実行手段が、領域情報受信手段が受信した領域情報に基づいて復元した連続領域、及び前記ブロックデータ受信手段が受信した前記送信対象ブロックによって前記リプログデータを復元して、前記メモリの書き換えを実行する。
【００２１】
これら、請求項２に記載のプログラム書換装置及び請求項３に記載の電子制御装置によれば、請求項１に記載のプログラム書換方法を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】車載通信システム及びプログラム書換装置の構成を示すブロック図である。
【図２】ツール側リプログ処理の内容を示すフローチャートである。
【図３】ＥＣＵ側リプログ処理の内容を示すフローチャートである。
【図４】リプログデータ再生処理の詳細を示すフローチャートである。
【図５】各種通信フレームのデータ領域の構成を示す説明図である。
【図６】プログラム書換装置と書換処理の対象となるＥＣＵとの間で送受信される通信フレームを示したシーケンス図である。
【発明を実施するための形態】
【００２３】
以下に本発明の実施形態を図面と共に説明する。
［全体構成］
図１は、本発明が適用された車載通信システム１及び車載通信システム１に接続して使用するプログラム書換装置５の構成を示すブロック図である。
【００２４】
車載通信システム１は、図１に示すように、車両の各部に設置された複数の電子制御ユニット（ＥＣＵ）２と、ＥＣＵ２を相互に接続する通信線路である基幹バス３と、ＥＣＵ２を介した車両の状態の診断や、ＥＣＵ２のプログラムの書き換え（リプログ）等を実行する外部ツール（ここではプログラム書換装置５）を接続するためのコネクタ４とを備えている。
【００２５】
なお、車載通信システム１では、基幹バスではＣＡＮプロトコルによる通信を実行するように構成されている。但し、一つの通信フレームで送信可能な最大データ量はＮバイト（Ｎは正整数、本実施形態ではＮ＝８）に制限されているものとする。
【００２６】
［ＥＣＵ］
ＥＣＵ２は、基幹バス３を介した通信を実行する通信制御部２１と、通信制御部２１を介して各種情報を取得したり提供したりすると共に、取得した情報に基づいて当該ＥＣＵ２に割り当てられた機能を実現するための各種処理の他、自ＥＣＵ２が有するプログラムを書き換えるＥＣＵ側リプログ処理を少なくとも実行する処理実行部２２とを備えている。
【００２７】
なお、通信制御部２１は、ＣＡＮトランシーバやＣＡＮコントローラ等によって構成された周知のものである。また、処理実行部２２は、ＣＰＵ，メモリを少なくとも備えた周知のマイクロコンピュータからなる。但し、プログラムを格納するための不揮発性メモリとして、データの書換が可能なフラッシュメモリを備えていると共に、一時的なデータを記憶するためのＲＡＭは、フラッシュメモリより大きな記憶容量を有するものが用いられている。
【００２８】
また、フラッシュメモリは、データ（プログラム）を消去する際には、所定データサイズ（例えば４Ｋ〜６４Ｋバイト程度）からなるセクタ単位で処理されるように構成されている。
【００２９】
［プログラム書換装置］
プログラム書換装置５は、コネクタ４を介して車載通信システム１を構成するＥＣＵ２との通信を実行する通信制御部５１と、インターネット等の公共通信ネットワークを介した通信を実行するネットワーク通信部５２と、当該プログラム書換装置５のユーザが操作を入力したり、通信制御部５１やネットワーク通信部５２を介して取得した情報や、ユーザが行うべき操作手順等をユーザに提示したりするための入出力部５３と、入出力部５３から入力される指令に従って、個々のＥＣＵ２のプログラムを書き換えるルール側リプログ処理を少なくとも実行する処理実行部５４とを備えている。
【００３０】
通信制御部５１は、ＥＣＵ２の通信制御部２１と同様に構成されたものであり、ネットワーク通信部５２は、ＴＣＰ／ＩＰを実現するトランシーバやコントローラ等によって構成された周知のものである。また、処理実行部５４は、ＣＰＵ，メモリを少なくとも備えた周知のマイクロコンピュータからなる。
【００３１】
［ツール側リプログ処理］
図２は、プログラム書換装置５の処理実行部５４が実行するツール側リプログ処理の内容を示すフローチャートである。なお、本処理は、入出力部５３を介して、リプログ処理の実行を要求するリプログ指令が入力されると起動する。なお、リプログ指令には、リプログ処理の対象となるＥＣＵ２（以下「対象ＥＣＵ」という）やフラッシュメモリのセクタ（以下「対象セクタ」という）を指定する指定情報や、リプログデータのファイル名や取得先を示す取得情報が少なくとも含まれている。
【００３２】
本処理が起動すると、まず、リプログ指令に示された取得先情報に基づき、ネットワーク通信部５２を介してリプログデータを取得し（Ｓ１１０）、取得したリプログデータをＮバイト（一つの通信フレームで送信可能なデータ量）の単位ブロックに分割して、各単位ブロックにシリアル番号を対応づけ、更に、全ビットがゼロとなる単位ブロックをゼロブロック（本発明における特定ブロックの一例）として、そのゼロブロックに対応づけられたシリアル番号を抽出する（Ｓ１２０）。
【００３３】
次に、ゼロブロックがＭ（Ｍは正整数、例えばＭ＝５０）個以上連続する領域を連続領域として抽出し、抽出された連続領域の総数を表す領域数情報を生成すると共に、抽出された個々の連続領域について、その連続領域の先頭となる単位ブロックに対応づけられたシリアル番号である開始番号、末尾となる単位ブロックに対応づけられたシリアル番号である終了番号からなる領域サイズ情報を生成する（Ｓ１３０）。
【００３４】
通信制御部５１を介して、リプログモードへの移行を要求する通信フレーム（リプログ開始フレーム）を送信する（Ｓ１４０）。なお、リプログ開始フレームには、リプログ指令に示された指定情報、即ち対象ＥＣＵや対象セクタを指定する情報が少なくとも示されている。
【００３５】
続けて、通信制御部５１を介して、一つの連続領域の領域サイズ情報を示した通信フレーム（領域情報フレーム）を送信する（Ｓ１５０）。但し、領域情報フレームの送信後は、対象ＥＣＵから応答フレームを受信するまで待機し、応答フレームを受信すると送信に成功したものとして次のステップに進む。
【００３６】
ここで、図５（ａ）は、領域情報フレームのデータ領域（８バイトで構成）の構成を示す説明図である。図５（ａ）に示すように、領域情報フレームは、領域情報フレームの残り送信数（２バイト）、領域サイズ情報（開始番号（３バイト）、終了番号（３バイト））によって構成されている。なお、残り送信数に設定される値は、最初に送信される領域情報フレームであれば［残り送信数］←［領域数情報］−１であり、その後、領域情報フレームが送信される毎に１ずつ減少した値［残り送信数］←［前回の領域情報フレームにおける残り送信数］−１が設定される。
【００３７】
先のＳ１３０にて抽出された全ての連続領域について領域情報フレームの送信を終了したか否かを判断し、終了していなければ、Ｓ１５０に戻って領域情報フレームの送信を繰り返す。
【００３８】
一方、全ての連続領域について領域情報フレームの送信を終了していれば、連続領域を構成する単位ブロック（ゼロブロック）以外の単位ブロックを送信対象ブロックとして、送信対象ブロックの総数である必要送信回数を算出し（Ｓ１７０）、この必要送信回数を示した通信フレーム（回数情報フレーム）を送信する（Ｓ１８０）。但し、回数情報フレームの送信後は、対象ＥＣＵから応答フレームを受信するまで待機し、応答フレームを受信すると送信に成功したものとして次のステップに進む。
【００３９】
なお、必要送信回数は、具体的には、リプログデータを構成する単位ブロックの総数からＳ１２０で抽出された連続領域を構成するゼロブロックの総数を減じることで算出する。
【００４０】
ここで、図５（ｂ）は、回数情報フレームのデータ領域の構成を示す説明図である。図５（ｂ）に示すように、回数情報フレームでは、データ領域の３バイトを使って必要送信回数が設定される。
【００４１】
次に、一つの送信対象ブロックの値を示した通信フレーム（書込情報フレーム）を送信する（Ｓ１９０）。但し、書込情報フレームの送信後は、対象ＥＣＵから応答フレームを受信するまで待機し、応答フレームを受信すると送信に成功したものとして次のステップに進む。なお、通信フレームを送信する毎に、送信回数をカウントする送信カウンタをインクリメントする。
【００４２】
そして、送信カウンタの値が必要送信回数に達したか否かにより、全ての送信対象ブロックについて書込情報フレームの送信を終了したか否かを判断し（Ｓ２００）、必要送信回数に達していなければ、Ｓ１９０に戻って書込情報フレームの送信を繰り返す。
【００４３】
一方、送信カウンタの値が必要送信回数に達していれば、対象ＥＣＵからリプログの完了を示す通信フレーム（リプログ完了フレーム）を受信したか否かを判断し（Ｓ２１０）、受信していなければ同ステップを繰り返すことで待機し、リプログ完了フレームを受信すると、本処理を終了する。
【００４４】
［ＥＣＵ側リプログ処理］
図３は、ＥＣＵ２の処理実行部２２が実行するＥＣＵ側リプログ処理の内容を示すフローチャートである。なお、本処理は、ＩＧ（イグニション）スイッチがオンされる等して、ＥＣＵ２への電源供給が行われている状態で、自ＥＣＵ宛のモード移行フレームを受信すると起動する。
【００４５】
本処理が起動すると、回数情報フレームを受信したか否かを判断し（Ｓ３１０）、受信していなければ、領域情報フレームを受信したか否かを判断し（Ｓ３２０）、受信していなければ、Ｓ３１０に戻る。
【００４６】
領域情報フレームを受信した場合は、領域情報フレームに示された領域サイズ情報を記憶すると共に、応答データを送信して（Ｓ３３０）、Ｓ３１０に戻る。
一方、回数情報フレームを受信した場合は、回数情報フレームに示された必要送信回数を記憶すると共に、応答データを送信する（Ｓ３４０）。
【００４７】
その後、プログラム書換装置５から送信されてくる書込情報フレームに示された単位ブロックの値、及び先のＳ３３０，Ｓ３４０で記憶した必要送信回数や領域サイズ情報に基づいてリプログデータを再生するリプログデータ再生処理を実行する（Ｓ３５０）。
【００４８】
リプログデータ再生処理によってリプログデータが再生されると、先に受信したリプログ開始フレームに示された指定情報に従って、フラッシュメモリの対象セクタのデータを削除し（Ｓ３６０）、一時記憶領域に格納されている再生されたリプログデータを対象セクタに書き込む（Ｓ３７０）。
【００４９】
最後に、プログラム書換装置５に対してリプログ処理が完了したことを示すリプログ完了フレームを送信して（Ｓ３８０）、本処理を終了する。
［リプログデータ再生処理］
図４は、Ｓ３５０にて実行するリプログデータ再生処理の詳細を示すフローチャートである。
【００５０】
本処理では、まず、本処理で使用するパラメータを初期化する（Ｓ４１０）。具体的には、書込情報フレームの受信数を示すパラメータＮＤをゼロ、処理の対象となる単位ブロックのシリアル番号を示すパラメータＮＳを１に設定する。
【００５１】
そして、書込情報フレームを受信したか否かを判断し（Ｓ４２０）、受信していなければ同ステップを繰り返すことで待機する。
一方、書込情報フレームを受信すると、書込情報フレームに示された単位ブロック１個分のデータを、再生したリプログデータを一時的に記憶するための一時記憶領域に格納すると共に、応答データを送信する（Ｓ４３０）。
【００５２】
パラメータＮＤ，ＮＳをいずれもインクリメントし（Ｓ４４０）、パラメータＮＳが先のＳ３３０にて記憶した領域サイズ情報の開始番号と一致するか否かを判断する（Ｓ４５０）。パラメータＮＳが開始番号と一致すれば、値が全てゼロとなる単位ブロック１個分のデータを一時記憶領域に既に格納されているリプログデータの最後尾に追加するゼロブロック挿入処理を実行して（Ｓ４６０）、パラメータＮＳをインクリメントする（Ｓ４７０）。
【００５３】
その後、パラメータＮＳが先のＳ４５０で用いた開始番号と対になる終了番号以下であるか否かを判断し（Ｓ４８０）、終了番号以下であれば、Ｓ４６０に戻って、ゼロブロック挿入処理を繰り返す。
【００５４】
一方、パラメータＮＳが終了番号より大きいか、先のＳ４５０にてパラメータＮＳが開始番号と一致しなかった場合は、パラメータＮＤが先のＳ３４０で記憶された必要送信回数と一致するか否かを判断する（Ｓ４９０）。
【００５５】
パラメータＮＤが必要送信回数と一致しなければ、Ｓ４２０に戻って上述の処理を繰り返し、パラメータＮＤが必要送信回数と一致していれば、全ての書込情報フレームの受信を終了したものとして、本処理を終了する。
【００５６】
つまり、連続領域を構成する単位ブロックのデータは、プログラム書換装置５から送信されてこないため、領域サイズ情報に従って、送信が省略された箇所のデータを挿入することでリプログデータを再生するようにされている。
【００５７】
［動作］
図６は、リプログ処理を実行する際に、プログラム書換装置５と、リプログ処理の対象となったＥＣＵ２との間で送受信される通信フレームを示したシーケンス図である。
【００５８】
図６に示すように、プログラム書換装置５にて、リプログ指令操作が行われると、リプログデータが取得され、リプログの対象となるＥＣＵ２（対象ＥＣＵ）に対してリプログ開始フレームが送信される。
【００５９】
すると対象ＥＣＵでは、動作モードがリプログモードに移行し、ＥＣＵ側リプログ処理が起動される。
その後、プログラム書換装置５が、リプログデータ中のゼロブロックが所定個以上連続した連続領域に関する情報を示した領域情報フレームを、存在する連続領域の数だけ繰り返し送信する。
【００６０】
なお、領域情報フレームを受信した対象ＥＣＵは応答フレームを返送し、プログラム書換装置５は、応答フレームの受信を待って、次の領域情報フレームを送信する。
領域除法フレームの送信が終了すると、後に続く書込情報フレームの送信回数を示した回数情報フレームを送信し、その応答フレームが対象ＥＣＵから返送されると、書込情報フレームの送信を開始する。この領域情報フレームも、領域情報フレームや回数情報フレームと同様に、応答フレームの受信を待って、次の書込情報フレームを送信する。
【００６１】
回数情報フレームに示された必要送信回数分の書込情報フレームの受信を終了した対象ＥＣＵは、プログラム書換装置５から取得した領域サイズ情報、必要送信回数、書込データに基づいてリプログデータを再生し、フラッシュメモリの対象セクタのデータを、再生したリプログデータでの書き換えを終了すると、プログラム書換装置５に対してリプログ完了フレームを送信し、リプログモードから通常モードに移行することで、一連の処理を終了する。
【００６２】
［効果］
以上説明したように、プログラム書換装置５は、プログラムの書き換えに用いるリプログデータを、そのまま送信するのではなく、ゼロブロックがＭ個以上連続する連続領域を抽出し、抽出した連続領域に関する情報（領域サイズ情報）を対象ＥＣＵに送信した後、連続領域以外のリプログデータを単位ブロック毎に送信し、対象ＥＣＵでは、プログラム書換装置５から送信されてこない連続領域のデータについては、領域サイズ情報に基づいて復元することでリプログデータを再生し、その再生したリプログデータを用いてプログラムの書き換えを実行するようにされている。
【００６３】
これにより、既存の圧縮，解凍プログラムを用いることなく、プログラムの書き換え時にプログラム書換装置から対象装置に伝送するリプログデータのデータ量、ひいてはデータ伝送に要する時間を削減することができ、その結果、リプログの作業効率を向上させることができる。
【００６４】
特に、ＥＣＵ２では、プログラムを格納するメモリが、セクタ単位でデータの消去を行うフラッシュメモリが用いられており、セクタの未使用部分には大きな連続領域が形成され易いため、効果的にデータ量を削減することができる。
【００６５】
なお、本実施形態において、Ｓ１２０〜Ｓ１６０の処理を実行する処理実行部５４が分割手段及び領域情報送信手段の一例であり、Ｓ１７０〜Ｓ２００を実行する処理実行部５４がブロックデータ送信手段の一例であり、Ｓ３２０〜Ｓ３３０を実行する処理実行部２２が領域情報受信手段の一例であり、Ｓ３１０，Ｓ３４０〜Ｓ３７０を実行する処理実行部２２がブロックデータ受信手段及び書換実行手段の一例である。
【００６６】
［他の実施形態］
以上、本発明の一実施形態について説明したが本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において様々な態様にて実施することが可能である。
【００６７】
例えば、上記実施形態では、連続領域の復元／リプログデータの再生を、書込情報フレームの受信と並行して行っているが、これをフラッシュメモリへの書込時に行うようにしてもよい。
【００６８】
また、連続領域か否かを判断するゼロブロックの連続数Ｍは、連続領域のデータを全て書込情報フレームで送信するのに要する時間や、領域情報フレームの送信や領域サイズ情報等から連続領域を復元する処理に要する時間を考慮して、十分な処理時間の削減効果が得られるような値に設定すればよい。
【００６９】
また、上記実施形態では、ゼロブロックが連続する領域を連続領域としているが、全てのビットが１となる単位ブロックが連続する領域を連続領域としてもよい。
【符号の説明】
【００７０】
１…車載通信システム  ２…電子制御装置（ＥＣＵ）  ３…基幹バス  ４…コネクタ  ５…プログラム書換装置  ２１，５１…通信制御部  ２２，５４…処理実行部  ５２…ネットワーク通信部  ５３…入出力部
【図１】
0005522155.tif 000002
【図２】
0005522155.tif 000003
【図３】
0005522155.tif 000004
【図４】
0005522155.tif 000005
【図５】
0005522155.tif 000006
【図６】
0005522155.tif 000007