(57)【要約】【課題】制御プログラムの書き換えに要する時間を短縮する【解決手段】エンジンＥＣＵ２では、記憶内容の書き換えが可能なフラッシュＲＯＭ１２が、エンジンを制御するための制御プログラムＰＧ１を記憶する。そして通信回路１３，１４，１５は、新制御プログラムＰＧ２を分割した第１，２，３分割プログラムを通信線４，５，６を介してプログラム書換装置３から受信する。そしてエンジンＥＣＵ２は、通信回路１３，１４，１５により受信した第１，２，３分割プログラムをフラッシュＲＯＭ１２に書き込むことにより、フラッシュＲＯＭ１２に記憶された制御プログラムＰＧ１の内容を書き換える。【選択図】図１
2015138322.tif 000002
【特許請求の範囲】
【請求項１】
記憶内容の書き換えが可能であり、所定の制御対象を制御するための制御プログラムを記憶する不揮発性メモリ（１２）と、
前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換えるための第１書換データを第１通信線（４）を介して外部から受信する第１受信手段（１３）と、
前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換えるためのデータであり第１書換データとは異なる第２書換データを、第１通信線とは異なる第２通信線（５）を介して外部から受信する第２受信手段（１４）と、
少なくとも、前記第１受信手段により受信した前記第１書換データと、前記第２受信手段により受信した前記第２書換データとを前記不揮発性メモリに書き込むことにより、前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換える書換手段（Ｓ４３０）とを備える
ことを特徴とする電子制御装置（２）。
【請求項２】
前記書換手段による前記制御プログラムの内容の書き換えが完了するまでに、前記第１受信手段が前記第１通信線を介して受信する前記第１書換データの全データ量を第１書換データ総量とし、
前記書換手段による前記制御プログラムの内容の書き換えが完了するまでに、前記第２受信手段が前記第２通信線を介して受信する前記第２書換データの全データ量を第２書換データ総量とし、
前記第１通信線を介したデータ通信の通信速度を第１通信速度とし、
前記第２通信線を介したデータ通信の通信速度を第２通信速度として、
前記第１書換データ総量の前記第２書換データ総量に対する比率は、前記第１通信速度の前記２通信速度に対する比率に等しい
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記第１受信手段により受信した前記第１書換データを、前記不揮発性メモリに書き込む前に一時的に記憶する第１受信バッファ（ＢＦ１）と、
前記第２受信手段により受信した前記第２書換データを、前記不揮発性メモリに書き込む前に一時的に記憶する第２受信バッファ（ＢＦ２）と、
前記第１受信バッファに記憶された前記第１書換データの前記不揮発性メモリへの書き込みが完了した後に、その旨を示す第１書込完了通知を前記第１通信線を介して送信する第１完了通知送信手段（Ｓ４５０）と、
前記第２受信バッファに記憶された前記第２書換データの前記不揮発性メモリへの書き込みが完了した後に、その旨を示す第２書込完了通知を前記第２通信線を介して送信する第２完了通知送信手段（Ｓ４５０）とを備える
ことを特徴とする請求項１または請求項２に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の制御対象の制御に用いる制御プログラムを書き換え可能な電子制御装置に関する。
【背景技術】
【０００２】
従来、記憶内容の書き換えが可能な不揮発性メモリに制御プログラムを記憶する電子制御装置において、制御プログラムの書き換えに要する時間を短縮するために、外部装置で圧縮された書換データを受信するものが知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１６３１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１に記載の技術では、圧縮によるデータ低減量が書換データの内容によっては少なくなり、制御プログラムの書き換えに要する時間を短縮する効果が小さくなる場合があるという問題があった。
【０００５】
本発明は、こうした問題に鑑みてなされたものであり、制御プログラムの書き換えに要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明の電子制御装置は、不揮発性メモリと、第１受信手段と、第２受信手段と、書換手段とを備える。
まず不揮発性メモリは、記憶内容の書き換えが可能であり、所定の制御対象を制御するための制御プログラムを記憶する。
【０００７】
そして第１受信手段は、不揮発性メモリに記憶された制御プログラムの内容を書き換えるための第１書換データを第１通信線を介して外部から受信する。また第２受信手段は、不揮発性メモリに記憶された制御プログラムの内容を書き換えるためのデータであり第１書換データとは異なる第２書換データを、第１通信線とは異なる第２通信線を介して外部から受信する。
【０００８】
そして書換手段は、少なくとも、第１受信手段により受信した第１書換データと、第２受信手段により受信した第２書換データとを不揮発性メモリに書き込むことにより、不揮発性メモリに記憶された制御プログラムの内容を書き換える。
【０００９】
このように構成された電子制御装置では、制御プログラムの内容を書き換えるための第１書換データと、制御プログラムの内容を書き換えるための第２書換データとを、互いに異なる通信線を介して同時に受信することができる。このため、本発明の電子制御装置は、１つの通信線を介して第１書換データと第２書換データを順次受信する場合よりも、制御プログラムの内容を書き換えるためのデータを受信するのに要する時間を短縮することができる。これにより、本発明の電子制御装置は、制御プログラムの書き換えに要する時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】ＥＣＵ１の構成を示すブロック図である。
【図２】分割処理を示すフローチャートである。
【図３】プログラム送信処理を示すフローチャートである。
【図４】受信処理を示すフローチャートである。
【図５】書換処理を示すフローチャートである。
【図６】プログラム書換動作を説明するためのブロック図である。
【図７】プログラム書換装置３とエンジンＥＣＵ２の動作を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下に本発明の実施形態を図面とともに説明する。
本実施形態の車載通信システム１は、図１に示すように、車両のエンジンを制御する電子制御装置（Electronic Control Unit）２（以下、エンジンＥＣＵ２という）と、プログラムの書き換えを行うためのプログラム書換装置３とを備える。
【００１２】
エンジンＥＣＵ２とプログラム書換装置３は、車両に搭載されている通信線４，５，６を介して互いにデータ通信可能に接続される。また通信線４，５，６には、プログラム書換装置３を通信線４，５，６に対して着脱可能とするためのコネクタ７が設けられている。
【００１３】
エンジンＥＣＵ２は、車両に搭載され、マイクロコンピュータ（以下、マイコンという）１１と、フラッシュＲＯＭ１２と、通信回路１３，１４，１５とを備える。
フラッシュＲＯＭ１２は、記憶内容を書き換え可能な不揮発性メモリであり、マイコン１１がエンジンを制御するために実行する制御プログラムＰＧ１を記憶する。
【００１４】
通信回路１３，１４，１５はそれぞれ、例えばＣＡＮ（Controller  Area  Network）通信プロトコルに従い、車両に搭載されている他のＥＣＵ（不図示）との間で通信線４，５，６を介してデータの送受信を行う。また通信回路１３，１４，１５はそれぞれ、コネクタ７を介してプログラム書換装置３に接続された場合に、プログラム書換装置３の通信回路２３，２４，２５との間でデータの送受信を行う。なお本実施形態では、通信線４，５，６を介した通信の通信速度はそれぞれ、５００ｋｂｐｓ，２５０ｋｂｐｓ，５００ｋｂｐｓである。
【００１５】
マイコン１１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ及びこれらの構成を接続するバスラインなどから構成されている。そしてマイコン１１は、フラッシュＲＯＭ１２に記憶された制御プログラムＰＧ１に基づいて、エンジンを制御するための処理を実行し、車両に取り付けられた電気負荷（インジェクタ等）を制御するための制御信号を出力する。
【００１６】
また、マイコン１１のＲＡＭには、受信バッファＢＦ１，ＢＦ２，ＢＦ３が設けられている。受信バッファＢＦ１，ＢＦ２，ＢＦ３はそれぞれ、通信回路１３，１４，１５が受信したデータを一時的に記憶するための記憶領域である。
【００１７】
プログラム書換装置３は、マイコン２１と、操作部２２と、通信回路２３，２４，２５を備える。
マイコン２１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ及びこれらの構成を接続するバスラインなどから構成されている。そしてマイコン２１は、エンジンＥＣＵ２の制御プログラムＰＧ１を書き換えるための処理を行う。
【００１８】
操作部２２は、プログラム書換装置３の使用者（通常は、エンジンＥＣＵ２の制御プログラムを書き換える作業者）からの外部操作による指令を入力するためのものである。操作部２２は、制御プログラムの書き換えを指示するために予め設定された書換開始操作が操作部２２に対して行われると、その旨を示す書換開始信号を出力する。
【００１９】
通信回路２３，２４，２５はそれぞれ、コネクタ７を介してエンジンＥＣＵ２に接続された場合に、エンジンＥＣＵ２の通信回路１３，１４，１５との間でデータの送受信を行う。
【００２０】
またプログラム書換装置３は、エンジンＥＣＵ２へ送信する新たな制御プログラムＰＧ２（以下、新制御プログラムＰＧ２ともいう）が記憶された記憶媒体２６を着脱可能に接続するコネクタ（不図示）を備えている。そしてプログラム書換装置３は、記憶媒体２６がコネクタを介して接続されている場合に、マイコン２１と記憶媒体２６との間でデータの入出力が可能に構成されている。
【００２１】
次に、プログラム書換装置３が実行する分割処理の手順を説明する。分割処理は、操作部２２からの上記書換開始信号がマイコン２１に入力すると開始される処理である。
この分割処理が実行されると、プログラム書換装置３のマイコン２１は、図２に示すように、まずＳ１０にて、新制御プログラムＰＧ２を分割する処理を行う。具体的には、新制御プログラムＰＧ２を構成するデータについて、通信回路２３，２４，２５が分担してエンジンＥＣＵ２へ送信する部分を、通信回路２３，２４，２５の通信速度に基づいて、通信速度が大きいほど送信データ量が多くなるように決定する。
【００２２】
本実施形態では、通信回路２３，２４，２５の通信速度はそれぞれ、５００ｋｂｐｓ，２５０ｋｂｐｓ，５００ｋｂｐｓである。すなわち、通信回路２３，２５の通信速度は通信回路２４の２倍である。このため、Ｓ１０では、新制御プログラムＰＧ２のサイズがＮバイト（Ｎは整数）であるとすると、新制御プログラムＰＧ２における｛（２×Ｎ）／５｝バイト分の領域が通信回路２３，２５のそれぞれに割り当てられ、（Ｎ／５）バイト分の領域が通信回路２４に割り当てられる（図６を参照）。以下、新制御プログラムＰＧ２のうち、通信回路２３，２４，２５に割り当てられた部分を、分割プログラムＤＰ１，ＤＰ２，ＤＰ３という（図６を参照）。
【００２３】
そしてＳ２０にて、通信回路２３，２４，２５のそれぞれに対して、新制御プログラムＰＧ２についてＳ１０で割り当てられた部分（すなわち、分割プログラムＤＰ１，ＤＰ２，ＤＰ３）の送信を指示するプログラム送信命令を出力し、分割処理を終了する。
【００２４】
次に、通信回路２３，２４，２５が新制御プログラムＰＧ２をエンジンＥＣＵ２へ送信する処理（以下、プログラム送信処理という）の手順を説明する。プログラム送信処理は、マイコン２１からの上記プログラム送信命令が通信回路２３，２４，２５に入力すると開始される処理である。
【００２５】
以下、通信回路２３，２４，２５を代表して、通信回路２３が実行するプログラム送信処理を説明する。
このプログラム送信処理が実行されると、通信回路２３は、図３に示すように、まずＳ１１０にて、新制御プログラムＰＧ２の書き込みを要求する書込要求をエンジンＥＣＵ２へ送信する。
【００２６】
その後Ｓ１２０にて、分割プログラムＤＰ１から、未送信のデータを、予め設定された送信データ量分（フラッシュＲＯＭ１２への書き込み単位（本実施形態では２５６バイト）の倍数）抽出する。
【００２７】
そしてＳ１３０にて、全体サイズと書込先アドレスと書込サイズが記述された書込データ送信通知をエンジンＥＣＵ２へ送信する。全体サイズは、分割プログラムＤＰ１の全体のデータ量を示す。書込先アドレスは、Ｓ１１０で抽出したデータをフラッシュＲＯＭ１２へ書き込むときの先頭アドレスを示す。書込サイズは、上記の送信データ量を示す。
【００２８】
さらにＳ１４０にて、Ｓ１２０で抽出したデータを書込データとして送信し、Ｓ１５０にて、分割プログラムＤＰ１の全データを送信したか否かを判断する。ここで、全データを送信していない場合には（Ｓ１５０：ＮＯ）、Ｓ１６０にて、通信回路１３から書込完了通知（後述）を受信したか否かを判断する。
【００２９】
ここで、書込完了通知を受信していない場合には（Ｓ１６０：ＮＯ）、Ｓ１６０の処理を繰り返すことにより、書込完了通知を受信するまで待機する。そして、書込完了通知を受信すると（Ｓ１６０：ＹＥＳ）、Ｓ１２０に移行する。
【００３０】
またＳ１５０にて、分割プログラムＤＰ１の全データを送信した場合には（Ｓ１５０：ＹＥＳ）、プログラム送信処理を終了する。
次に、エンジンＥＣＵ２が実行する受信処理の手順を説明する。受信処理は、通信回路２３，２４，２５の何れか１つから上記書込要求を受信すると開始される処理である。
【００３１】
この受信処理が実行されると、エンジンＥＣＵ２のマイコン１１は、図４に示すように、まずＳ２１０にて、通信回路２３，２４，２５の何れか１つから、データを受信したか否かを判断する。ここで、データを受信していない場合には（Ｓ２１０：ＮＯ）、Ｓ２１０の処理を繰り返すことにより、データを受信するまで待機する。そして、データを受信すると（Ｓ２１０：ＹＥＳ）、Ｓ２２０にて、受信したデータが書込データ送信通知であるか否かを判断する。
【００３２】
ここで、受信したデータが書込データ送信通知である場合には（Ｓ２２０：ＹＥＳ）、Ｓ２３０にて、書込データ送信通知の送信元に対応して予め設けられた受信量累積カウンタの値を設定する。具体的には、受信量累積カウンタの値を、書込データ送信通知に記述されている書込サイズ分増加させる。
【００３３】
またＳ２４０にて、書込データ送信通知の送信元に対応して予め設けられた受信完了判定値および格納完了判定値を設定し、Ｓ２１０に移行する。具体的には、受信完了判定値を、書込データ送信通知に記述されている全体サイズを示す値に設定する。また格納完了判定値を、書込データ送信通知に記述されている書込サイズを示す値に設定する。
【００３４】
またＳ２２０にて、受信したデータが書込データ送信通知でない場合には（Ｓ２２０：ＮＯ）、Ｓ２５０にて、受信したデータが書込データであるか否かを判断する。ここで、受信したデータが書込データでない場合には（Ｓ２５０：ＮＯ）、Ｓ２１０に移行して、上述の処理を繰り返す。
【００３５】
一方、受信したデータが書込データである場合には（Ｓ２５０：ＹＥＳ）、Ｓ２６０にて、受信した書込データを、書込データを受信した通信回路に対応した受信バッファに格納する。すなわち、通信回路１３，１４，１５で受信した書込データはそれぞれ、受信バッファＢＦ１，ＢＦ２，ＢＦ３に格納される。
【００３６】
そしてＳ２７０にて、書込データの送信元に対応して予め設けられた格納量累積カウンタの値を設定する。具体的には、格納量累積カウンタの値を、受信した書込データのデータ量分増加させる。
【００３７】
その後Ｓ２８０にて、格納量累積カウンタの値が上記の格納完了判定値以上であるか否かを判断する。すなわち、対応する受信バッファに、書込データ送信通知に記述されている書込サイズ分の書込データが格納されたか否かを判断する。
【００３８】
ここで、格納量累積カウンタの値が格納完了判定値未満である場合には（Ｓ２８０：ＮＯ）、Ｓ２１０に移行して、上述の処理を繰り返す。一方、格納量累積カウンタの値が格納完了判定値以上である場合には（Ｓ２８０：ＹＥＳ）、Ｓ２９０にて、マイコン１１のＲＡＭに設けられている書込待機バッファＢＦ４（図１を参照）に、受信バッファに格納されている書込データの書き込みを指示する書込指示情報を格納する。なお、書込指示情報には、受信バッファ特定情報および書込先アドレスが含まれる。受信バッファ特定情報は、書込データが格納された受信バッファ（すなわち、受信バッファＢＦ１，ＢＦ２，ＢＦ３の何れか１つ）を特定する情報である。また書込先アドレスは、書込指示情報に対応する書込データ送信通知から抽出される。
【００３９】
その後Ｓ３００にて、格納量累積カウンタをクリア（０に設定）する。
そしてＳ３１０にて、通信回路１３，１４，１５の全てにおいて、その受信量累積カウンタの値が受信完了判定値以上であるか否かを判断する。すなわち、通信回路１３，１４，１５がそれぞれ、分割プログラムＤＰ１，ＤＰ２，ＤＰ３を構成する全データを受信したか否かを判断する。
【００４０】
ここで、通信回路１３，１４，１５の少なくとも１つで、その受信量累積カウンタの値が受信完了判定値未満である場合には（Ｓ３１０：ＮＯ）、Ｓ２１０に移行して、上述の処理を繰り返す。一方、通信回路１３，１４，１５の全てにおいて、その受信量累積カウンタの値が受信完了判定値以上である場合には（Ｓ３１０：ＹＥＳ）、Ｓ３２０にて、通信回路１３，１４，１５の全てにおいて、その受信量累積カウンタをクリア（０に設定）し、受信処理を終了する。
【００４１】
次に、エンジンＥＣＵ２が実行する書換処理の手順を説明する。書換処理は、通信回路２３，２４，２５の何れか１つから上記書込要求を受信すると開始される処理である。
この書換処理が実行されると、エンジンＥＣＵ２のマイコン１１は、図５に示すように、まずＳ４１０にて、書込待機バッファＢＦ４に書込指示情報が格納されているか否かを判断する。ここで、書込指示情報が格納されていない場合には（Ｓ４１０：ＮＯ）、Ｓ４１０の処理を繰り返すことにより、書込指示情報が格納されるまで待機する。そして、書込指示情報が格納されると（Ｓ４１０：ＹＥＳ）、Ｓ４２０にて、まず、書込待機バッファＢＦ４に格納されている書込指示情報の中から最も早く書込待機バッファＢＦ４に格納されたものを抽出する。そしてＳ４２０では、抽出した書込指示情報に含まれている受信バッファ特定情報に基づいて、書込データを抽出する受信バッファを特定する。
【００４２】
そしてＳ４３０にて、まず、Ｓ４２０で特定された受信バッファから書込データを抽出する。さらにＳ４３０では、Ｓ４２０で抽出した書込指示情報に含まれている書込先アドレスを先頭アドレスとして、受信バッファから抽出した書込データをフラッシュＲＯＭ１２に書き込む。
【００４３】
そして、書き込みが終了すると、Ｓ４４０にて、Ｓ４２０で抽出した書込指示情報を書込待機バッファＢＦ４から消去する。さらにＳ４５０にて、Ｓ４２０で特定された受信バッファに対応する通信回路を介して書込完了通知を送信する。例えば、Ｓ４２０で特定された受信バッファが受信バッファＢＦ２である場合には、通信回路１４を介して書込完了通知をプログラム書換装置３へ送信する。
【００４４】
さらにＳ４６０にて、書込データ送信通知の送信元に対応して予め設けられた書込量累積カウンタの値を設定する。具体的には、書込量累積カウンタの値を、Ｓ４３０で書き込んだ書込データのデータ量分増加させる。
【００４５】
そしてＳ４７０にて、通信回路１３，１４，１５の全てにおいて、その書込量累積カウンタの値が受信完了判定値以上であるか否かを判断する。すなわち、通信回路１３，１４，１５がそれぞれ、分割プログラムＤＰ１，ＤＰ２，ＤＰ３を構成する全データをフラッシュＲＯＭ１２に書き込んだか否かを判断する。
【００４６】
ここで、通信回路１３，１４，１５の少なくとも１つで、その書込量累積カウンタの値が受信完了判定値未満である場合には（Ｓ４７０：ＮＯ）、Ｓ４１０に移行して、上述の処理を繰り返す。一方、通信回路１３，１４，１５の全てにおいて、その書込量累積カウンタの値が受信完了判定値以上である場合には（Ｓ４７０：ＹＥＳ）、Ｓ４８０にて、通信回路１３，１４，１５の全てにおいて、その書込量累積カウンタをクリア（０に設定）する。
【００４７】
そしてＳ４９０にて、データの検証を実行する。具体的には、新制御プログラムＰＧ２に予め付加されているチェックサムを用いて、記憶媒体２６に記憶されている新制御プログラムＰＧ２と、フラッシュＲＯＭ１２に書き込まれた新制御プログラムＰＧ２とが互いに一致しているか否かを確認する。
【００４８】
そしてＳ５００にて、Ｓ４９０での検証結果に基づいて、記憶媒体２６に記憶されている新制御プログラムＰＧ２と、フラッシュＲＯＭ１２に書き込まれた新制御プログラムＰＧ２とが互いに一致しているか否かを判断する。ここで、両データが一致している場合には（Ｓ５００：ＹＥＳ）、Ｓ５１０にて、新制御プログラムＰＧ２の書き込みが成功した旨を示す書込成功通知を、通信回路１３，１４，１５を介してエンジンＥＣＵ２へ送信し、書換処理を終了する。
【００４９】
一方、両データが一致していない場合には（Ｓ５００：ＮＯ）、Ｓ５２０にて、フラッシュＲＯＭ１２に書き込まれた新制御プログラムＰＧ２をフラッシュＲＯＭ１２から消去する。そしてＳ５３０にて、新制御プログラムＰＧ２の書き込みが失敗した旨を示す書込失敗通知を、通信回路１３，１４，１５を介してエンジンＥＣＵ２へ送信し、書換処理を終了する。
【００５０】
次に、このように構成された車載通信システム１の動作の具体例を説明する。
図７は、プログラム書換装置３とエンジンＥＣＵ２の動作を示すシーケンス図である。なお図７では、図示の簡略化のために、通信回路２４，２５の図示を省略している。
【００５１】
図７に示すように、まず、書換開始操作が上記使用者により行われると、通信回路２３，２４，２５はそれぞれ、書込要求をエンジンＥＣＵ２へ送信する（送信データＤ０１を参照）。その後、通信回路２３，２４，２５はそれぞれ、書込データ送信通知をエンジンＥＣＵ２へ送信する（送信データＤ０２を参照）。
【００５２】
さらに通信回路２３，２４，２５はそれぞれ、上記書込サイズ分の書込データを複数回に分けてエンジンＥＣＵ２へ送信する（送信データＤ０３と、図６の矢印ＡＬ１，ＡＬ２，ＡＬ３を参照）。
【００５３】
エンジンＥＣＵ２は、通信回路２３，２４，２５から書込データを受信する毎に、受信バッファＢＦ１，ＢＦ２，ＢＦ３に格納する（処理Ｐ０１を参照）。
なお図７では、受信バッファＢＦ１、受信バッファＢＦ２、受信バッファＢＦ３の順に、上記書込サイズ分の書込データの格納が完了したとする。すなわち、書込待機バッファＢＦ４には、まず、受信バッファＢＦ１に対応する書込指示情報が格納され、次に、受信バッファＢＦ２に対応する書込指示情報が格納され、最後に、受信バッファＢＦ３に対応する書込指示情報が格納される。
【００５４】
このため、受信バッファＢＦ１において上記書込サイズ分の書込データの格納が完了すると、エンジンＥＣＵ２は、書込待機バッファＢＦ４から、受信バッファＢＦ１に対応する書込指示情報を抽出する（処理Ｐ０２を参照）。このためエンジンＥＣＵ２は、書込データを受信バッファＢＦ１から抽出してフラッシュＲＯＭ１２に書き込む（処理Ｐ０３と、図６の矢印ＡＬ４を参照）。その後、上記書込サイズ分の書込データの書き込みが完了すると、エンジンＥＣＵ２は、通信回路１３を介して書込完了通知をプログラム書換装置３へ送信する（送信データＤ０４を参照）。
【００５５】
そして、プログラム書換装置３の通信回路２３は、書込完了通知を受信すると、書込データ送信通知をエンジンＥＣＵ２へ送信する（送信データＤ０５を参照）。さらに通信回路２３は、未送信の書込データのうち上記書込サイズ分を複数回に分けてエンジンＥＣＵ２へ送信する（送信データＤ０６を参照）。
【００５６】
エンジンＥＣＵ２は、通信回路２３から書込データを受信する毎に、受信バッファＢＦ１に格納する（処理Ｐ０４を参照）。
なおエンジンＥＣＵ２は、通信回路１３を介して書込完了通知（送信データＤ０４を参照）を送信した直後に、書込待機バッファＢＦ４から、受信バッファＢＦ２に対応する書込指示情報を抽出する（処理Ｐ０５を参照）。このためエンジンＥＣＵ２は、書込データを受信バッファＢＦ２から抽出してフラッシュＲＯＭ１２に書き込む（処理Ｐ０６と、図６の矢印ＡＬ５を参照）。
【００５７】
その後にエンジンＥＣＵ２は、受信バッファＢＦ３に対応する書込指示情報を抽出する（処理Ｐ０７を参照）。このためエンジンＥＣＵ２は、書込データを受信バッファＢＦ３から抽出してフラッシュＲＯＭ１２に書き込む（処理Ｐ０８と、図６の矢印ＡＬ６を参照）。
【００５８】
次にエンジンＥＣＵ２は、書込待機バッファＢＦ４から、受信バッファＢＦ１に対応する書込指示情報を抽出する（処理Ｐ０９を参照）。このためエンジンＥＣＵ２は、書込データを受信バッファＢＦ１から抽出してフラッシュＲＯＭ１２に書き込む（処理Ｐ１０を参照）。その後、上記書込サイズ分の書込データの書き込みが完了すると、エンジンＥＣＵ２は、通信回路１３を介して書込完了通知をプログラム書換装置３へ送信する（送信データＤ０７を参照）。これにより、プログラム書換装置３の通信回路２３は、書込データ送信通知と、未送信の書込データをエンジンＥＣＵ２へ送信する（送信データＤ０８，Ｄ０９を参照）。
【００５９】
このように、受信バッファＢＦ１，ＢＦ２，ＢＦ３のそれぞれについて分割プログラムＤＰ１，ＤＰ２，ＤＰ３のフラッシュＲＯＭ１２への書き込みが完了すると、書換処理が終了する。
【００６０】
このように構成されたエンジンＥＣＵ２では、まず、記憶内容の書き換えが可能なフラッシュＲＯＭ１２が、エンジンを制御するための制御プログラムＰＧ１を記憶する。
そして通信回路１３は、分割プログラムＤＰ１を通信線４を介してプログラム書換装置３から受信する。また通信回路１４は、分割プログラムＤＰ２を通信線５を介してプログラム書換装置３から受信する。また通信回路１５は、分割プログラムＤＰ３を通信線６を介してプログラム書換装置３から受信する。
【００６１】
そしてエンジンＥＣＵ２は、通信回路１３により受信した分割プログラムＤＰ１と、通信回路１４により受信した分割プログラムＤＰ２と、通信回路１５により受信した分割プログラムＤＰ３とをフラッシュＲＯＭ１２に書き込むことにより、フラッシュＲＯＭ１２に記憶された制御プログラムＰＧ１の内容を書き換える（Ｓ４３０）。
【００６２】
このように構成されたエンジンＥＣＵ２では、制御プログラムＰＧ１の内容を書き換えるための分割プログラムＤＰ１，ＤＰ２，ＤＰ３を、互いに異なる通信線４，５，６介して同時に受信することができる。このためエンジンＥＣＵ２は、１つの通信線を介し分割プログラムＤＰ１，ＤＰ２，ＤＰ３を順次受信する場合よりも、制御プログラムＰＧ１の内容を書き換えるためのデータを受信するのに要する時間を短縮することができる。これによりエンジンＥＣＵ２は、制御プログラムＰＧ１の書き換えに要する時間を短縮することができる。
【００６３】
また、分割プログラムＤＰ１のデータ量（以下、第１書換データ総量という）は｛（２×Ｎ）／５｝バイトであり、分割プログラムＤＰ２のデータ量（以下、第２書換データ総量という）は（Ｎ／５）バイトである。このため、第１書換データ総量の第２書換データ総量に対する比率（以下、データ総量比率という）は、２である。
【００６４】
そして、通信線４を介したデータ通信の通信速度（以下、第１通信速度という）は５００ｋｂｐｓであり、通信線５を介したデータ通信の通信速度（以下、第２通信速度という）は２５０ｋｂｐｓである。このため、第１通信速度の第２通信速度に対する比率（以下、通信速度比率という）は、２である。
【００６５】
したがって、データ総量比率は通信速度比率に等しい。このため、第１通信速度と第２通信速度とが異なるのにもかかわらず、分割プログラムＤＰ１を通信線４を介して受信するのに要する時間と、分割プログラムＤＰ２を通信線５を介して受信するのに要する時間とを等しくすることが可能となる。これにより、通信線４および通信線５の何れか一方に通信負荷が集中するのを抑制することができる。
【００６６】
なお、分割プログラムＤＰ３のデータ量（以下、第３書換データ総量という）は｛（２×Ｎ）／５｝バイトであり、通信線６を介したデータ通信の通信速度（以下、第３通信速度という）は５００ｋｂｐｓである。このため、第３書換データ総量および第３通信速度についても、第１，２書換データ総量および第１，２通信速度に対して上記の関係が成立する。
【００６７】
またエンジンＥＣＵ２は、受信バッファＢＦ１，ＢＦ２，ＢＦ３を備える。受信バッファＢＦ１，ＢＦ２，ＢＦ３はそれぞれ、通信回路１３，１４，１５により受信した書込データを、フラッシュＲＯＭ１２に書き込む前に一時的に記憶する。
【００６８】
そしてエンジンＥＣＵ２は、受信バッファＢＦ１に記憶された書込データのフラッシュＲＯＭ１２への書き込みが完了した後に、その旨を示す書込完了通知を通信線４を介して送信する（Ｓ４５０）。またエンジンＥＣＵ２は、受信バッファＢＦ２に記憶された書込データのフラッシュＲＯＭ１２への書き込みが完了した後に、その旨を示す書込完了通知を通信線５を介して送信する（Ｓ４５０）。またエンジンＥＣＵ２は、受信バッファＢＦ３に記憶された書込データのフラッシュＲＯＭ１２への書き込みが完了した後に、その旨を示す書込完了通知を通信線６を介して送信する（Ｓ４５０）。
【００６９】
これによりプログラム書換装置３は、通信線４，５，６を介して書込完了通知を受信することで、受信バッファＢＦ１，ＢＦ２，ＢＦ３に記憶された書込データのフラッシュＲＯＭ１２への書き込みが完了したことを認識することができる。
【００７０】
このためプログラム書換装置３は、受信バッファＢＦ１，ＢＦ２，ＢＦ３に記憶された書込データが、フラッシュＲＯＭ１２への書き込みの完了により不要になったことを書込完了通知により認識した後に、新たな書込データをエンジンＥＣＵ２へ送信するという手順を採用することができる。
【００７１】
これによりエンジンＥＣＵ２は、通信線４，５，６を介して書込データを受信するときにおける単位時間当たりの受信データ量を、書込データを書き込むときにおける単位時間当たりの書込データ量と同等に抑えることができる。
【００７２】
このためエンジンＥＣＵ２は、単位時間当たりの受信データ量が単位時間当たりの書込データ量より大きくなることに起因して受信バッファＢＦ１，ＢＦ２，ＢＦ３がオーバーフローしてしまうという事態の発生を抑制することができる。
【００７３】
以上説明した実施形態において、エンジンＥＣＵ２は本発明における電子制御装置、フラッシュＲＯＭ１２は本発明における不揮発性メモリ、通信回路１３は本発明における第１受信手段、通信回路１４は本発明における第２受信手段、Ｓ４３０の処理は本発明における書換手段である。
【００７４】
また、通信線４は本発明における第１通信線、通信線５は本発明における第２通信線、分割プログラムＤＰ１は本発明における第１書換データ、分割プログラムＤＰ２は本発明における第２書換データである。
【００７５】
また、受信バッファＢＦ１は本発明における第１受信バッファ、受信バッファＢＦ２は本発明における第２受信バッファ、Ｓ４５０の処理は本発明における第１完了通知送信手段および第２完了通知送信手段である。
【００７６】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、３つの通信線４，５，６で分担して新制御プログラムＰＧ２を送信するものを示したが、２つの通信線または４つ以上の通信線で分担して送信するようにしてもよい。
【符号の説明】
【００７７】
１…車載通信システム、２…エンジンＥＣＵ、４，５，６…通信線、１１…マイコン、１２…フラッシュＲＯＭ、１３，１４，１５…通信回路
【図１】
2015138322.tif 000003
【図２】
2015138322.tif 000004
【図３】
2015138322.tif 000005
【図４】
2015138322.tif 000006
【図５】
2015138322.tif 000007
【図６】
2015138322.tif 000008
【図７】
2015138322.tif 000009