(57)【要約】【課題】書込みプログラムの転送時間を短縮する。【解決手段】電子制御装置（ＥＣＵ）１００は、ＲＡＭ１３０に書込みプログラムを展開して実行する前に、少なくとも書込みプログラムを展開するＲＡＭ１３０の領域を初期化する。一方、ＥＣＵ１００に対して書込みプログラムを分割しながら転送する書込み装置３００は、ＥＣＵ１００に転送する書込みプログラムのデータが初期値になっている場合、そのデータの転送をスキップする。そして、書込み装置３００からＥＣＵ１００に転送する書込みプログラムのデータ量を削減し、書込みプログラムの転送時間を短縮する。【選択図】図９
2018067176.tif 000002
【特許請求の範囲】
【請求項１】
通信によって取得した任意のプログラムを揮発性メモリに展開して実行する手段と、
前記プログラムを前記揮発性メモリに展開する前に、少なくとも前記プログラムを展開する前記揮発性メモリの領域を初期化する手段と、
を有することを特徴とする電子制御装置。
【請求項２】
前記揮発性メモリの領域を初期化する手段は、不揮発性メモリに予め格納されているプログラムによって実現される、
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記プログラムは、外部からの要求に応答して、不揮発性メモリの少なくとも一部のデータを書き換える、
ことを特徴とする請求項１又は請求項２に記載の電子制御装置。
【請求項４】
前記プログラムは、所定サイズごとに分割されたデータであって、その全体が初期値に設定されていない状態で順次取得され、
前記プログラムを揮発性メモリに展開して実行する手段は、前記分割データに含まれる前記揮発性メモリのアドレスに、前記データ本体を展開する、
ことを特徴とする請求項１〜請求項３のいずれか１つに記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車などに搭載される電子制御装置に関する。
【背景技術】
【０００２】
自動車などに搭載される電子制御装置は、電気的にデータの消去及び書き込みが可能な不揮発性メモリを有し、ここに制御プログラム及び制御データ（以下、「制御プログラム」と略記する）が格納される。制御プログラムに不具合があった場合、不具合を修正した制御プログラムを外部装置から電子制御装置に転送し、電子制御装置は、制御プログラムを不揮発性メモリに書き込む。不揮発性メモリに制御プログラムを書き込むプログラムは、不具合対応などで一時的に使用されるため、これを不揮発性メモリに格納しておくことは得策ではない。そこで、特開平１０−１１１８６３号公報（特許文献１）に記載されるように、外部装置から電子制御装置に書込みプログラムを転送し、電子制御装置が、この書込みプログラムを揮発性メモリに展開して実行することで、不揮発性メモリの使用量を削減する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１１１８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
外部装置から電子制御装置への書込みプログラムの転送は、書込みプログラムをデータの転送単位である「データセット」に分割し、これを順次転送することで行われる。書込みプログラムの転送時間を短縮するため、データセットのデータ本体がすべて初期値（例えば、０ｘＦＦ）に設定されている場合、そのデータセットは制御に何ら寄与しないため、その転送をスキップすることが考えられる。しかしながら、電子制御装置の揮発性メモリは、初期状態の値が不定であるため、データ本体のすべてが初期値に設定されているデータセットの転送をスキップすることができない。
【０００５】
そこで、本発明は、データ本体のすべてが初期値に設定されているデータセットの転送をスキップ可能とし、書込みプログラムの転送時間を短縮することができる、電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このため、電子制御装置は、通信によって取得した任意のプログラムを揮発性メモリに展開して実行する手段と、プログラムを揮発性メモリに展開する前に、少なくともプログラムを展開する揮発性メモリの領域を初期化する手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、書込みプログラムの転送時間を短縮することができる。
【図面の簡単な説明】
【０００８】
【図１】データ書込みシステムの一例を示す構成図である。
【図２】電子制御装置及び書込み装置の一例を示す構成図である。
【図３】通信バッファ領域の詳細を示す図である。
【図４】電子制御装置の不揮発性メモリにアプリケーションプログラムを書き込む手順の一例を示すフローチャートである。
【図５】プログラム書込み処理の概要を示す図である。
【図６】通信環境変更後の通信バッファ領域の詳細を示す図である。
【図７】書込み装置が実行するプログラム書込み処理の一例を示すフローチャートである。
【図８】電子制御装置が実行する書込みプログラム展開処理の一例を示すフローチャートである。
【図９】電子制御装置の揮発性メモリに書込みプログラムを展開して実行する手順の説明図である。
【図１０】従来技術の問題点の説明図である。
【図１１】従来技術の問題点を解決する方法の説明図である。
【図１２】書込み装置が実行するアプリケーション転送処理の一例を示すフローチャートである。
【図１３】電子制御装置が実行するプログラム書込み処理の一例を示すフローチャートである。
【図１４】電子制御装置が実行するプログラム書込み処理の一例を示すフローチャートである。
【図１５】電子制御装置が実行するプログラム書込み処理の一例を示すフローチャートである。
【図１６】電子制御装置が実行するデータコピー処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、電子制御装置（ＥＣＵ：Electronic Control Unit）の不揮発性メモリに制御プログラムを書き込む、データ書込みシステムの一例を示す。
【００１０】
ＥＣＵ１００は、ＣＡＮ（Controller Area Network），シリアル通信、ＦｌｅｘＲａｙ（登録商標）などのネットワークケーブル２００を介して、作業者が操作する書込み装置３００に着脱可能に接続される。
【００１１】
ＥＣＵ１００は、自動車に搭載された各種機器、例えば、燃料噴射弁，自動変速機，電動ブレーキシステム，ＡＢＳ（Antilock Brake System），可変バルブタイミング機構などを制御する電子機器である。具体的には、ＥＣＵ１００は、図２に示すように、マイクロコンピュータ１１０、不揮発性メモリの一例であるＲＯＭ（Read Only Memory）１２０、揮発性メモリの一例であるＲＡＭ（Random Access Memory）１３０及び通信回路１４０を備えている。ここで、ＲＯＭ１２０としては、電気的にデータを消去及び書込むことで、任意のデータに書き換え可能なフラッシュＲＯＭを使用することができる。
【００１２】
マイクロコンピュータ１１０は、ＣＰＵ（Central Processing Unit）及びキャッシュメモリなどを内蔵し、ＲＯＭ１２０及びＲＡＭ１３０に格納された各種プログラムを実行する。ＲＯＭ１２０には、少なくとも、書込み装置３００から送信された任意のプログラムをＲＡＭ１３０に展開するＲＡＭ展開プログラムと、ＲＡＭ１３０の所定領域を初期化するＲＡＭ初期化プログラムと、が格納されている。なお、ＲＡＭ初期化プログラムは、ＲＡＭ展開プログラムに組み込まれていてもよい。ＲＡＭ１３０には、ＲＯＭ１２０に任意のデータを書き込むときに使用する、第１のバッファ領域１３２及び第２のバッファ領域１３４が夫々確保されている。通信回路１４０には、書込み装置３００を含む他の装置と通信するときに使用する、通信バッファ領域１４２が確保されている。
【００１３】
書込み装置３００は、例えば、パーソナルコンピュータから構成され、ハードディスクドライブ，ＳＳＤ（Solid State Drive）などのストレージ３１０と、通信回路３２０と、マンマシンインタフェースとして機能するモニタ３３０及びキーボード３４０と、を内蔵する。ストレージ３１０には、ＥＣＵ１００に転送される書込みプログラム及びアプリケーションプログラムなどが格納されている。通信回路３２０には、ＥＣＵ１００と通信するときに使用する、通信バッファ領域３２２が確保されている。従って、書込み装置３００を操作する作業者は、モニタ３３０及びキーボード３４０を操作することで、ＥＣＵ１００に転送する書込みプログラム及びアプリケーションプログラムを対話的に指定することができる。
【００１４】
ここで、ＥＣＵ１００と書込み装置３００とが通信するときに使用する、ＥＣＵ１００の通信バッファ領域１４２及び書込み装置３００の通信バッファ領域３２２の詳細を説明する。
【００１５】
ＥＣＵ１００の通信バッファ領域１４２には、図３に示すように、例えば、ＣＡＮにおけるメールボックスなど、一定のサイズの通信バッファが複数存在する。ＥＣＵ１００は、各装置と通信するとき、通信バッファ領域１４２の通信バッファのうち、通信相手となる装置との通信用として予め割り当てられている通信バッファを使用する。なお、それぞれの通信バッファは、データの送信に使用する送信バッファＴＸ、データの受信に使用する受信バッファＲＸに分かれている。
【００１６】
一方、書込み装置３００の通信バッファ領域３２２には、一定サイズの通信バッファが複数存在する。通信バッファ領域３２２の通信バッファのサイズは、ＥＣＵ１００における通信バッファ領域１４２の通信バッファのサイズと同じである。
【００１７】
図３において、ＥＣＵ１００の通信バッファ領域１４２には、ＥＣＵ１００が書込み装置３００と通信するために使用する通信バッファ（以下、「書換え装置用通信バッファ」と略記する）として、２個の通信バッファ（送信バッファＴＸ１個、受信バッファＲＸ１個）が割り当てられている。また、通信バッファ領域１４２の他の通信バッファは、書込み装置３００以外の装置との通信用に割り当てられている。
【００１８】
従って、通信バッファのサイズが８バイトであり、かつ、ＥＣＵ１００が、１つのデータの受信ごとに書込み装置３００にその応答を返すように、ＥＣＵ１００と書込み装置３００との間で同期をとりながら通信を行う場合、１つのデータの受信に１個の受信バッファＲＸを使用するため、ＥＣＵ１００が６４バイトのデータを取得するまでに、１６回の通信が必要になる。即ち、書込み装置３００が６４バイトのデータを８バイトごとに分けて転送し、ＥＣＵ１００は８バイト受信することに書込み装置３００に応答を返すため、通信回数が１６回となる。
【００１９】
図４は、データ書込みシステムを使用して、ＥＣＵ１００のＲＯＭ１２０にアプリケーションプログラムを書き込む手順の一例を示す。
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、作業者が、書込み装置３００にＥＣＵ１００を接続する。ＥＣＵ１００は、書込み装置３００に接続されると電源が投入され、書込み装置３００と通信可能になり、書込み装置３００から転送されるデータの受信待ち状態となる。
【００２０】
ステップ２では、作業者が書込み装置３００と対話して、ＥＣＵ１００のＲＯＭ１２０に書き込むアプリケーションプログラム（例えば、エンジン制御プログラムなど）を指定する。書込み装置３００は、アプリケーションプログラムが指定されると、そのアプリケーションプログラムをＥＣＵ１００に転送する。ＥＣＵ１００は、書込み装置３００から転送されたアプリケーションプログラムを受信しながら、アプリケーションプログラムをＲＯＭ１２０に書き込む。以下、このステップ２の処理を、「プログラム書込み処理」と呼ぶ。
【００２１】
ステップ３では、作業者が、書込み装置３００からＥＣＵ１００を取り外す。ＥＣＵ１００は、書込み装置３００から取り外されると電源が遮断され、ＲＡＭ１３０に格納されている各種データが消失する。
【００２２】
図５は、プログラム書込み処理の概要を示す。
ステップ１１では、書込み装置３００が、作業者によって書込みプログラム及びアプリケーションプログラムが指定されると、ＥＣＵ１００に対し、書込みプログラム（例えば、書込みプログラム２）の転送を開始するメッセージを送信した後、書込みプログラムを転送する。
【００２３】
ここで、作業者が指定する書込みプログラムは、ストレージ３１０に構築された書込みプログラムデータベース３１２に格納されている。書込みプログラムは、ＥＣＵ１００に転送され、ＥＣＵ１００上で、通信環境（通信バッファの使用方法、通信速度、暗号化方式など）の変更などの初期化処理を実行すると共に、書込み装置３００からの要求に応じて、データの受信処理及びこれをＲＯＭ１２０の少なくとも一部に書き込む処理を実行する。
【００２４】
また、作業者が指定するアプリケーションプログラムは、ストレージ３１０に構築されたアプリケーションプログラムデータベース３１４に格納されている。各アプリケーションプログラムは、例えば、ＥＣＵ１００の制御対象となる自動車のエンジン制御用のプログラムである。
【００２５】
ステップ１２では、ＥＣＵ１００が、書込み装置３００から書込みプログラムの転送を開始するメッセージを受信すると、ＲＯＭ１２０に格納されているＲＡＭ初期化プログラムを起動し、少なくとも書込みプログラムを展開するＲＡＭ１３０の領域を初期化する。また、ＲＡＭ１３０の初期化が完了すると、ＥＣＵ１００が、ＲＯＭ１２０に格納されているＲＡＭ展開プログラムを起動する。ここで、ＲＡＭ展開プログラムは、ＥＣＵ１００が受信した書込みプログラムをＲＡＭ１３０に展開する処理を行う。従って、ＥＣＵ１００は、書込みプログラムを受信しながら、ＲＡＭ展開プログラムによって、受信した書込みプログラムをＲＡＭ１３０に展開する。
【００２６】
ステップ１３では、書込みプログラムの展開が完了すると、ＥＣＵ１００が、ＲＡＭ展開プログラムによって、ＲＡＭ１３０に展開した書込みプログラムを起動する。
ステップ１４では、ＥＣＵ１００が、書込みプログラムによって、ＥＣＵ１００と書込み装置３００との間の通信環境を、その書込みプログラムに応じた通信環境に変更し、書込み装置３００に対して、アプリケーションプログラムの送信を要求するメッセージを送信する。
【００２７】
ステップ１５では、書込み装置３００が、アプリケーションプログラムの送信を要求するメッセージを受信すると、ＥＣＵ１００に対して、作業者によって指定されたアプリケーションプログラム（例えば、アプリケーションプログラム１）の転送を開始する。
【００２８】
ステップ１６では、ＥＣＵ１００が、書込み装置３００からアプリケーションプログラムを受信しながら、書込みプログラムによって、受信したアプリケーションプログラムをＲＯＭ１２０に書き込む。
【００２９】
なお、アプリケーションプログラムの書込み完了後、ＥＣＵ１００は書込み装置３００から取り外され、電源がＯＦＦになる。次にＥＣＵ１００の電源が投入されたとき、ＥＣＵ１００の通信環境は、初期状態に戻る。また、プログラム書込み処理の途中で、何らかの異常（例えば、書込み装置３００との通信が遮断されたなど）が発生した場合には、ＥＣＵ１００が自らをリセットし、その通信環境が初期状態に戻る。
【００３０】
従って、書込みプログラムを適宜選択することで、プログラム書込み処理において、通信環境及びアプリケーションプログラムの書込み条件などに適合した、書込みプログラムを動作させることができる。このため、例えば、通信速度がより高速な書込みプログラムを動作させることで高速に通信を行い、プログラム書込み処理を高速化することができる。また、プログラム書込み処理を実行するときに、書込みプログラムがＥＣＵ１００に転送されるため、書込みプログラムをＲＯＭ１２０に格納する必要がなく、ＲＯＭ１２０の使用量を削減することができる。さらに、書込みプログラムを変更することで、プログラム書込み処理に新しい機能を追加することができる。
【００３１】
なお、ＥＣＵ１００に書込み装置３００に加えて他の装置が接続された状況でも、ＥＣＵ１００は、他の装置との通信を遮断し、書込み装置３００のみと通信するようにすれば、プログラム書込み処理を実行することができる。ＥＣＵ１００に書込み装置３００に加えて他の装置が接続された状況で、プログラム書込み処理を実行する例として、例えば、ＥＣＵ１００が自動車に組付けられた状態で、アプリケーションプログラムの書込みを実施することが挙げられる。この場合、通信路の競合を防ぐため、ＥＣＵ１００は、書込み装置３００と通信するときに使用する通信環境を、他の装置と共通する通信環境（例えば、通信速度が共通）にする必要がある。このため、作業者は、他の装置と共通の通信環境を確立する書込みプログラムを指定し、プログラム書込み処理を実施する。
【００３２】
次に、ＥＣＵ１００が、書込み装置３００から転送されるアプリケーションプログラムを受信するときに使用する、通信バッファ領域１４２の使用方法を説明する。
ＥＣＵ１００は、ＲＯＭ１２０にアプリケーションプログラムを書き込む場合、書込み装置３００以外の装置と通信しないため、書込み装置３００以外の装置と通信するために予め割り当てられている通信バッファ（以下、「他の装置用通信バッファ」と略記する）は使用されない。このため、書込みプログラムは、書込み装置用通信バッファに加えて、他の装置用通信バッファを、ＥＣＵ１００と書込み装置３００との間の通信に使用するように変更することができる。
【００３３】
図６は、変更後の通信バッファ領域１４２の詳細を示す。
ＥＣＵ１００は、書込み装置３００と通信するとき、書込み装置用通信バッファとして２個の通信バッファ、及び、他の装置用通信バッファのうち７個の通信バッファを使用する。この場合、ＥＣＵ１００が使用する９個の通信バッファは、送信バッファＴＸが１個、受信バッファＲＸが８個となる。一方、書込み装置３００における通信バッファ領域３２２の通信バッファは、送信バッファＴＸが８個、受信バッファＲＸが１個となる。
【００３４】
例えば、１つの通信バッファのサイズが８バイトであり、かつ、ＥＣＵ１００が、１つのデータの受信ごとに書込み装置３００にその応答を返すように、ＥＣＵ１００と書込み装置３００との間で同期をとりながら通信を行う場合、１つのデータの受信に８個の受信バッファＲＸが使用できるため、ＥＣＵ１００が６４バイトのデータを書込み装置３００から取得するまで、従来技術と比較して、９回の通信で済むことになる。即ち、書込み装置３００が、６４バイトのデータを１つのデータとして８バイトごとに分けて転送し、ＥＣＵ１００は、８バイトのデータを８個受信するごとに書込み装置３００に応答を返す。このため、通信回数が９回となる。
【００３５】
なお、書込みプログラムは、ＥＣＵ１００が書込み装置３００との通信に使用する通信バッファの数を、データの送受信のサイズ、データの送受信のサイズの整数倍、ＲＯＭ１２０への１回の書込みサイズ又はＲＯＭ１２０への１回の書込みサイズの整数倍などにしてもよい。
【００３６】
このように、書込み装置用通信バッファに加えて他の装置用通信バッファを使用して通信することができるため、同期をとるような通信では、通信回数が少なくなり、データの転送に要する時間が短縮し、データ転送の高速化を図ることができる。また、他の装置用通信バッファを使用するため、通信バッファのオーバライトを気にすることなく、書込み装置３００が連続してデータを転送することができる。
【００３７】
なお、通信バッファ領域１４２のうち、どの装置にも割り当てられていない未使用の通信バッファがあれば、書込みプログラムが、未使用の通信バッファを、ＥＣＵ１００と書込み装置３００との間の通信で使用するように変更することもできる。
【００３８】
図７は、作業者がＥＣＵ１００を書込み装置３００に接続して、書込みプログラム及びアプリケーションプログラムを指定したことを契機として、書込み装置３００が実行するプログラム書込み処理の一例を示す。
【００３９】
ステップ３１では、書込み装置３００が、書込みプログラムの転送を開始することを示す転送開始メッセージをＥＣＵ１００に送信する。ここで、転送開始メッセージは、例えば、ＥＣＵ１００と書込み装置３００との間で送受信されるパケットのヘッダに格納することができる。
【００４０】
ステップ３２では、書込み装置３００が、作業者によって指定された書込みプログラムを、ＥＣＵ１００が１回の通信で受信可能なサイズに順次分割し、例えば、パケットのデータ本体（ペイロード）に格納する。また、書込み装置３００は、書込みプログラムの書込み位置を示すアドレス（相対アドレス又は絶対アドレス）を、例えば、パケットのヘッダに格納する。なお、書込みプログラムの書込み位置を示すアドレスは、パケットのデータ本体に格納することもできる。
【００４１】
ステップ３３では、書込み装置３００が、ステップ３２で作成したパケットのデータ本体を参照し、そこに格納されているデータのすべてが初期値（例えば、０ｘＦＦ）になっているか否かを判定する。そして、書込み装置３００は、データのすべてが初期値になっていると判定すれば（Ｙｅｓ）、そのパケットの転送をスキップすべく、処理をステップ３５へと進める。一方、書込み装置３００は、データのすべてが初期値になっていない、要するに、そのデータは書込みプログラムの機能を実現する一部であると判定すれば（Ｎｏ）、処理をステップ３４へと進める。
【００４２】
ステップ３４では、書込み装置３００が、ステップ３２で作成したパケットをＥＣＵ１００に転送する。その後、書込み装置３００は、処理をステップ３５へと進める。
ステップ３５では、書込み装置３００が、ＥＣＵ１００からデータを要求するデータ要求メッセージを受信したか否かを判定する。ここで、データ要求メッセージであるか否かは、例えば、パケットのヘッダを参照することで判定することができる。そして、書込み装置３００は、データ要求メッセージを受信したと判定すれば（Ｙｅｓ）、処理をステップ３６へと進める。一方、書込み装置３００は、データ要求メッセージを受信していないと判定すれば（Ｎｏ）、データ要求メッセージを受信するまで待機する。
【００４３】
ステップ３６では、書込み装置３００が、作業者によって指定された書込みプログラムの転送を完了したか否かを判定する。そして、書込み装置３００は、書込みプログラムの転送が完了したと判定すれば（Ｙｅｓ）、処理をステップ３７へと進める。一方、書込み装置３００は、書込みプログラムの転送が完了していないと判定すれば（Ｎｏ）、処理をステップ３２へと戻す。
【００４４】
ステップ３７では、書込み装置３００が、書込みプログラムの転送が完了したことを示す転送完了メッセージをＥＣＵ１００に送信する。ここで、転送完了メッセージは、例えば、パケットのヘッダに格納することができる。
【００４５】
ステップ３８では、書込み装置３００が、ＥＣＵ１００から何らかのメッセージ（パケット）を受信したか否かを判定する。そして、書込み装置３００は、メッセージを受信したと判定すれば（Ｙｅｓ）、処理をステップ３９へと進める。一方、書込み装置３００は、メッセージを受信していないと判定すれば（Ｎｏ）、メッセージを受信するまで待機する。
【００４６】
ステップ３９では、書込み装置３００が、ＥＣＵ１００から受信したメッセージは、書込みプログラムが正常に転送されたことを示す転送正常メッセージであるか否かを判定する。ここで、転送正常メッセージであるか否かは、例えば、パケットのヘッダを参照することで判定することができる。そして、書込み装置３００は、転送正常メッセージであると判定すれば（Ｙｅｓ）、処理をステップ４０へと進める。一方、書込み装置３００は、転送正常メッセージでない、即ち、書込みプログラムが正常に転送されなかったことを示す転送異常メッセージであると判定すれば（Ｎｏ）、処理をステップ４１へと進める。
【００４７】
ステップ４０では、書込み装置３００が、作業者によって指定されたアプリケーションプログラムを分割しながらＥＣＵ１００に転送する、サブルーチン形式のアプリケーション転送処理を実行する。なお、アプリケーション転送処理は、サブルーチン形式に限らず、ステップ４０の位置に展開されてもよい。
【００４８】
ステップ４１では、書込みプログラムが正常に転送されなかったため、書込み装置３００が、書込みプログラムを先頭から再送するための設定、例えば、書込みプログラムの位置を示すポインタを先頭に戻すなどの設定を行う。その後、書込み装置３００は、処理をステップ３２へと戻す。
【００４９】
このようにすれば、書込み装置３００は、作業者によって書込みプログラム及びアプリケーションプログラムが指定されたことを契機として、書込みプログラムを、ＥＣＵ１００が１回の通信で受信可能なサイズに順次分割し、これをパケットのデータ本体に格納する。そして、書込み装置３００は、パケットのデータ本体のすべてが初期値に設定されていれば、そのパケットの転送をスキップすることで、書込み装置３００からＥＣＵ１００へと転送するパケットの転送量を削減し、書込みプログラムの転送時間を短縮することができる。また、書込み装置３００は、ＥＣＵ１００からのメッセージによって、書込みプログラムが正常に転送できたならば、アプリケーションプログラムを転送する処理を実行する一方、書込みプログラムが正常に転送できなかったならば、書込みプログラムを再送する。
【００５０】
図８は、ＥＣＵ１００が書込みプログラムの転送開始メッセージを受信したことを契機として、ＥＣＵ１００のマイクロコンピュータ１１０が実行する書込みプログラム展開処理の一例を示す。ここで、ＥＣＵ１００のマイクロコンピュータ１１０は、ＲＯＭ１２０に格納されているＲＡＭ展開プログラム及びＲＡＭ初期化プログラムに従って、書込みプログラム展開処理を実行する。
【００５１】
ステップ５１では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＲＡＭ１３０の記憶領域のうち、少なくとも、書込みプログラムを展開する領域を初期値で初期化する。なお、ＲＡＭ１３０を初期化するとき、第１のバッファ領域１３２及び第２のバッファ領域１３４も併せて初期化してもよい。
【００５２】
ステップ５２では、ＥＣＵ１００のマイクロコンピュータ１１０が、書込み装置３００からパケットを受信したか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、パケットを受信したと判定すれば（Ｙｅｓ）、処理をステップ５３へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、パケットを受信していないと判定すれば（Ｎｏ）、パケットを受信するまで待機する。
【００５３】
ステップ５３では、ＥＣＵ１００のマイクロコンピュータ１１０が、例えば、パケットのヘッダを参照することで、書込み装置３００からのパケットは書込みプログラムの転送完了メッセージであるか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、書込みプログラムの転送完了メッセージであると判定すれば（Ｙｅｓ）、処理をステップ５４へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、書込みプログラムの転送完了メッセージでない、即ち、書き込みプログラムのデータが転送されたと判定すれば（Ｎｏ）、処理をステップ５７へと進める。
【００５４】
ステップ５４では、ＥＣＵ１００のマイクロコンピュータ１１０が、例えば、パケットのヘッダに格納されているチェックサムを参照し、書込み装置３００から転送された書込みプログラムが正常に転送されたか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、書込みプログラムが正常に転送されたと判定すれば（Ｙｅｓ）、処理をステップ５５へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、書込みプログラムが正常に転送されなかったと判定すれば（Ｎｏ）、処理をステップ５９へと進める。
【００５５】
ステップ５５では、ＥＣＵ１００のマイクロコンピュータ１１０が、転送正常メッセージを書込み装置３００に送信する。ここで、転送正常メッセージは、例えば、ＥＣＵ１００から書込み装置３００へと送信されるパケットのヘッダに格納することができる。
ステップ５６では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＲＡＭ１３０に展開された書込みプログラムを起動する。
【００５６】
ステップ５７では、書込み装置３００から受信したパケットには書込みプログラムのデータが格納されているため、ＥＣＵ１００のマイクロコンピュータ１１０が、パケットのデータ本体をＲＡＭ１３０に展開する。このとき、ＥＣＵ１００のマイクロコンピュータ１１０は、書込み装置３００から転送された書込みプログラムは連続していない可能性があるため、パケットのヘッダに格納されたアドレスから展開する。
【００５７】
ステップ５８では、ＥＣＵ１００のマイクロコンピュータ１１０が、次のデータを要求するため、データ要求メッセージを書込み装置３００に送信する。ここで、データ要求メッセージは、例えば、ＥＣＵ１００から書込み装置３００へと送信されるパケットのヘッダに格納することができる。その後、ＥＣＵ１００のマイクロコンピュータ１１０は、処理をステップ５２へと戻す。
【００５８】
ステップ５９では、書込み装置３００から書込みプログラムが正常に転送されなかったため、ＥＣＵ１００のマイクロコンピュータ１１０が、転送異常メッセージを書込み装置３００に送信する。ここで、転送異常メッセージは、例えば、ＥＣＵ１００から書込み装置３００へと送信されるパケットのヘッダに格納することができる。その後、ＥＣＵ１００のマイクロコンピュータ１１０は、処理をステップ５１へと戻す。
【００５９】
このようにすれば、ＥＣＵ１００は、書込み装置３００から書込みプログラムの転送開始メッセージを受信したことを契機として、ＲＡＭ１３０の記憶領域のうち、少なくとも、書込みプログラムを展開する領域を初期化する。そして、ＥＣＵ１００は、ＲＡＭ１３０の初期化が完了すると、書込み装置３００から順次転送される書込みプログラムのデータをＲＡＭ１３０に展開して起動する。このとき、ＥＣＵ１００は、パケットのヘッダを参照し、そこに格納されているアドレスから書込みプログラムのデータを展開する。
【００６０】
即ち、ＥＣＵ１００は、図９に示すように、ＲＯＭ１２０に格納されているＲＡＭ展開プログラム及びＲＡＭ初期化プログラムによって、ＲＡＭ１３０を初期化した後、書込み装置３００から順次転送される書込みプログラムをＲＡＭ１３０に展開する。そして、ＥＣＵ１００は、書込みプログラムを起動し、書込み装置３００から順次転送される書込みデータをＲＯＭ１２０に書き込む。
【００６１】
従来技術では、図１０に示すように、ＥＣＵ１００におけるＲＡＭ１３０の初期値が不定である場合、データ本体の全体が初期値に設定されているパケットの転送がスキップされると、これに対応するＲＡＭ１３０の領域が不定のままとなり、書込みプログラムが予期せぬ動作をしてしまう可能性がある。しかし、本実施形態では、ＲＡＭ１３０に書込みプログラムを展開する前に、図１１に示すように、ＲＡＭ１３０の所定領域が初期化されるため、データ本体の全体が初期値に設定されているパケットの転送がスキップされても、これに対応するＲＡＭ１３０の領域が初期値となる。従って、データ本体のすべてが初期値に設定されているパケットの転送がスキップ可能となり、書込みプログラムの転送時間を短縮することができる。要するに、書込みプログラムは、所定サイズごとに分割されたデータであって、その全体が初期値に設定されていない状態で順次取得されるので、アプリケーションプログラムの書込みに寄与するデータのみが転送され、書込みプログラムの転送時間を短縮することができる。
【００６２】
図１２は、書込み装置３００が実行する、アプリケーション転送処理の一例を示す。
ステップ６１では、書込み装置３００が、ＥＣＵ１００から何らかのメッセージを受信したか否かを判定する。そして、書込み装置３００は、メッセージを受信したと判定すれば（Ｙｅｓ）、処理をステップ６２へと進める。一方、書込み装置３００は、メッセージを受信していないと判定すれば（Ｎｏ）、メッセージを受信するまで待機する（Ｎｏ）。
【００６３】
ステップ６２では、書込み装置３００が、例えば、パケットのヘッダを参照することで、ＥＣＵ１００から受信したメッセージは分割データの送信要求を示す送信要求メッセージであるか否かを判定する。そして、書込み装置３００は、送信要求メッセージでないと判定すれば（Ｙｅｓ）、処理をステップ６３へと進める。一方、書込み装置３００は、送信要求メッセージであると判定すれば（Ｎｏ）、処理をステップ６７へと進める。
【００６４】
ステップ６３では、書込み装置３００が、例えば、パケットのヘッダを参照することで、ＥＣＵ１００から受信したメッセージは分割データの再送要求を示す再送要求メッセージであるか否かを判定する。そして、書込み装置３００は、再送要求メッセージでないと判定すれば（Ｙｅｓ）、処理をステップ６４へと進める。一方、書込み装置３００は、再送要求メッセージであると判定すれば（Ｎｏ）、処理をステップ６９へと進める（Ｎｏ）。
【００６５】
ステップ６４では、書込み装置３００が、例えば、パケットのヘッダを参照することで、ＥＣＵ１００から受信したメッセージは分割データがＲＯＭ１２０に正常に書き込まれたことを示す書込み正常メッセージであるか否かを判定する。そして、書込み装置３００は、書込み正常メッセージであると判定すれば（Ｙｅｓ）、処理をステップ６５へと進める。一方、書込み装置３００は、分割データが正常に書き込まれなかったことを示す書込み異常メッセージであると判定すれば（Ｎｏ）、処理をステップ７０へと進める。
【００６６】
ステップ６５では、書込み装置３００が、作業者によって指定されたアプリケーションプログラムの転送が完了したか否かを判定する。そして、書込み装置３００は、アプリケーションプログラムの転送が完了したと判定すれば（Ｙｅｓ）、処理をステップ６６へと進める。一方、書込み装置３００は、アプリケーションプログラムの転送が完了していないと判定すれば（Ｎｏ）、処理をステップ６１へと戻す（Ｎｏ）。
【００６７】
ステップ６６では、アプリケーションプログラムの転送が完了したので、書込み装置３００が、アプリケーションプログラムの転送が完了したことを示す転送完了メッセージをＥＣＵ１００に送信する。
【００６８】
ステップ６７では、ＥＣＵ１００からのメッセージは分割データの送信要求メッセージであるため、書込み装置３００が、作業者によって指定されたアプリケーションプログラムを所定サイズに分割した分割データを作成する。具体的には、書込み装置３００は、アプリケーションプログラムを所定サイズに順次分割して、パケットのデータ本体に格納する。ここで、所定サイズとしては、ＥＣＵ１００へと転送された書込みプログラムによって変更される通信環境において使用する、複数の通信バッファ（受信バッファＲＸ）の合計サイズとすることができる。また、書込み装置３００は、アプリケーションプログラムの書込み位置を示すアドレス（相対アドレス又は絶対アドレス）を、例えば、パケットのヘッダに格納する。なお、アプリケーションプログラムの書込み位置を示すアドレスは、パケットのデータ本体に格納することもできる。
【００６９】
ステップ６８では、書込み装置３００が、ステップ６７で作成した分割データをＥＣＵ１００に転送する。このとき、書込み装置３００は、分割データを通信バッファ領域３２２の送信バッファＴＸのサイズごとに分けて格納する。例えば、分割データが６４バイト、１個あたり８バイトの送信バッファＴＸが通信バッファ領域３２２に８個ある場合、書込み装置３００は、分割データを、８バイトごとに８個のデータに分けて各送信バッファＴＸに格納する。なお、送信バッファＴＸに格納されたデータは、通信回路３２０によって、ＥＣＵ１００に転送される。その後、書込み装置３００は、処理をステップ６１へと戻す。
【００７０】
ステップ６９では、ＥＣＵ１００からのメッセージは分割データの再送要求メッセージであるため、書込み装置３００が、分割データをＥＣＵ１００に再送する。ここで、書込み装置３００は、ステップ６７で分割データを作成済であるため、新たに分割データを作成しなくとも、作成済の分割データを再送すればよい。その後、書込み装置３００は、処理をステップ６１へと戻す。
【００７１】
ステップ７０では、ＥＣＵ１００からのメッセージは書込み異常メッセージであるため、書込み装置３００が、アプリケーションプログラムを先頭から再送するための設定、例えば、アプリケーションプログラムのポインタを先頭に戻すなどの設定を行う。その後、書込み装置３００が、処理をステップ６１へと戻す。
【００７２】
このようにすれば、書込み装置３００は、ＥＣＵ１００からの分割データの送信要求メッセージに応答して、アプリケーションプログラムを所定サイズごとに順次分割した分割データをＥＣＵ１００に転送する。また、書込み装置３００は、ＥＣＵ１００からの分割データの再送要求メッセージに応答して、作成済の分割データを再送する。さらに、書込み装置３００は、ＥＣＵ１００からの書込み異常メッセージに応答して、アプリケーションプログラムを先頭から転送し直す。
【００７３】
図１３〜図１５は、書込みプログラムが起動されたことを契機として、ＥＣＵ１００のマイクロコンピュータ１１０が実行する、プログラム書込み処理の一例を示す。
【００７４】
ステップ７１では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＥＣＵ１００が書込み装置３００と通信するための通信環境を変更する。なお、ＥＣＵ１００が書込み装置３００以外の装置と通信可能である場合には、ＥＣＵ１００のマイクロコンピュータ１１０は、通信環境を変更しなくてもよい。
【００７５】
ステップ７２では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＲＡＭ１３０の第１のバッファ領域１３２を、書込み装置３００から受信した分割データをコピーするためのコピー用の領域に設定する。
【００７６】
ステップ７３では、ＥＣＵ１００のマイクロコンピュータ１１０が、書込み装置３００から受信した分割データをＲＯＭ１２０に書き込む、書込みサブプログラムを起動する。
ステップ７４では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＲＯＭ１２０に書き込むアプリケーションプログラムの分割データのうち、何番目の分割データを処理中であるかを示すカウンタ変数ｎに１を代入する。
【００７７】
ステップ７５では、ＥＣＵ１００のマイクロコンピュータ１１０が、初回の分割データを取得するために、分割データの送信要求メッセージを書込み装置３００に送信する。
ステップ７６では、ＥＣＵ１００のマイクロコンピュータ１１０が、書込み装置３００から受信した分割データがコピー用の領域にコピーされたことを示すコピー完了メッセージが、書込みサブプログラムから通知されたか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、コピー完了メッセージが通知されていると判定すれば（Ｙｅｓ）、処理をステップ７７へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、コピー完了メッセージが通知されていないと判定すれば（Ｎｏ）、コピー完了メッセージが通知されるまで待機する。
【００７８】
ステップ７７では、ＥＣＵ１００のマイクロコンピュータ１１０が、コピー用の領域に格納された初回の分割データを参照し、例えば、分割データに含まれているチェックサムを利用することで、その分割データが正常に受信できたか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、初回の分割データが正常に受信できたと判定すれば（Ｙｅｓ）、処理をステップ７８へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、初回の分割データが正常に受信できていないと判定すれば（Ｎｏ）、処理をステップ８４へと進める。
【００７９】
ステップ７８では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＲＡＭ１３０の第１のバッファ領域１３２を、書込み装置３００から受信した分割データを書き込むときに使用する書込み用の領域に設定すると共に、ＲＡＭ１３０の第２のバッファ領域１３４を、書込み装置３００から受信した分割データをコピーするためのコピー用の領域に設定する。
【００８０】
ステップ７９では、ＥＣＵ１００のマイクロコンピュータ１１０が、２番目の分割データを取得するために、分割データの送信要求メッセージを書込み装置３００に送信する。なお、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データの送信要求メッセージと共に、前回の分割データを正常に受信できたことを示すメッセージを書込み装置３００に送信してもよい。
【００８１】
ステップ８０では、ＥＣＵ１００のマイクロコンピュータ１１０が、書込み用の領域に格納されているｎ番目の分割データのデータ本体を、分割データのヘッダに格納されている書込みアドレスに応じて、ＲＯＭ１２０に書き込む。
【００８２】
ステップ８１では、ＥＣＵ１００のマイクロコンピュータ１１０が、例えば、書込み用の領域に格納されている分割データとＲＯＭ１２０に書き込んだ分割データとを比較することで、ｎ番目の分割データがＲＯＭ１２０に正常に書き込まれたか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データが正常に書き込まれたと判定すれば（Ｙｅｓ）、処理をステップ８２へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データが正常に書き込まれなかったと判定すれば（Ｎｏ）、処理をステップ８５へと進める。
【００８３】
ステップ８２では、ＥＣＵ１００のマイクロコンピュータ１１０が、書込み装置３００から受信した分割データがコピー用の領域にコピーされたことを示すコピー完了メッセージが、書込みサブプログラムから通知されたか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、コピー完了メッセージが通知されていると判定すれば（Ｙｅｓ）、処理をステップ８３へと進める。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、コピー完了メッセージが通知されていないと判定すれば（Ｎｏ）、コピー完了メッセージが通知されるまで待機する。
【００８４】
ステップ８３では、ＥＣＵ１００のマイクロコンピュータ１１０が、コピー用の領域に格納されたデータはアプリケーションプログラムの転送完了メッセージであるか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、転送完了メッセージであると判定すれば（Ｙｅｓ）、処理を終了する。一方、ＥＣＵ１００のマイクロコンピュータ１１０は、転送完了メッセージでないと判定すれば（Ｎｏ）、処理をステップ８８へと進める。
【００８５】
ステップ８４では、初回の分割データを正常に受信できなかったため、ＥＣＵ１００のマイクロコンピュータ１１０が、初回の分割データを再度取得するために、分割データの再送要求メッセージを書込み装置３００に送信する。なお、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データの再送要求メッセージと共に、分割データを正常に受信できなかったことを示すメッセージを書込み装置３００に送信するようにしてもよい。その後、ＥＣＵ１００のマイクロコンピュータ１００は、処理をステップ７６へと戻す。
【００８６】
ステップ８５では、ｎ番目の分割データがＲＯＭ１２０に正常に書き込まれなかったため、ＥＣＵ１００のマイクロコンピュータ１１０が、分割データを正常に書き込むことができなかったことを示す書込み異常メッセージを書込み装置３００に送信する。
【００８７】
ステップ８６では、ＥＣＵ１００のマイクロコンピュータ１１０が、分割データを書き込もうとしたＲＯＭ１２０の領域を消去する。
ステップ８７では、ＥＣＵ１００のマイクロコンピュータ１１０が、ＲＡＭ１３０の第１のバッファ領域１３２を、書込み装置３００から受信した分割データをコピーするためのコピー用の領域に設定する。その後、ＥＣＵ１００のマイクロコンピュータ１１０は、アプリケーションプログラムの書込みを最初から実行すべく、処理をステップ７４へと戻す。
【００８８】
ステップ８８では、アプリケーションプログラムの転送が完了していないので、ＥＣＵ１００のマイクロコンピュータ１１０が、例えば、チェックサムを利用して、コピー用の領域にコピーされたｎ＋１番目の分割データが正常に受信できたか否かを判定する。そして、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データが正常に受信できたと判定すれば（Ｙｅｓ）、処理をステップ８９へと進める。一方、分割データが正常に受信できなかったと判定すれば（Ｎｏ）、処理をステップ９２へと進める。なお、ｎ＋１番目の分割データが正常に受信できた否かは、その分割データを受信した直後に判定してもよい。
【００８９】
ステップ８９では、ＥＣＵ１００のマイクロコンピュータ１１０が、コピー用に設定されていたバッファ領域を書込み用の領域に設定すると共に、書込み用に設定されていたバッファ領域をコピー用の領域に設定する。
【００９０】
ステップ９０では、ＥＣＵ１００のマイクロコンピュータ１１０が、ｎ＋２番目の分割データを取得するために、分割データの送信要求メッセージを書込み装置３００に送信する。なお、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データの送信要求メッセージと共に、ｎ番目の分割データをＲＯＭ１２０に書き込んだ旨のメッセージ、及び、ｎ＋１番目の分割データを受信した旨のメッセージを書込み装置３００に送信するようにしてもよい。
【００９１】
ステップ９１では、ＥＣＵ１００のマイクロコンピュータ１１０が、カウンタ変数ｎに１を加算、要するに、カウンタ変数ｎをインクリメントする。その後、ＥＣＵ１００のマイクロコンピュータ１１０は、処理をステップ８０へと戻す。
【００９２】
ステップ９２では、ｎ＋１番目の分割データを正常に受信できなかったため、ＥＣＵ１００のマイクロコンピュータ１１０が、ｎ＋１番目の分割データを再度取得するために、ｎ＋１番目の分割データの再送要求メッセージを書込み装置３００に送信する。その後、ＥＣＵ１００のマイクロコンピュータ１１０は、処理をステップ８２へと戻す。なお、ＥＣＵ１００のマイクロコンピュータ１１０は、分割データの再送要求メッセージと共に、ｎ＋１番目の分割データを正常に受信できなかったことを示すメッセージを書込み装置３００に送信するようにしてもよい。
【００９３】
図１６は、ＥＣＵ１００が書込み装置３００から分割データを受信したことを契機として、書込みサブプログラムに従って、ＥＣＵ１００のマイクロコンピュータ１１０が実行するデータコピー処理の一例を示す。
【００９４】
ステップ１０１では、ＥＣＵ１００のマイクロコンピュータ１１０が、書込み装置３００から受信した分割データを、通信回路１４０における通信バッファ領域１４２の受信バッファＲＸからコピー用の領域にコピーする。
【００９５】
ステップ１０２では、ＥＣＵ１００のマイクロコンピュータ１１０が、分割データのコピー完了メッセージを書込みプログラムに通知する。なお、ＥＣＵ１００のマイクロコンピュータ１１０は、コピー用の領域を、通信バッファ領域１４２の受信バッファＲＸに相当する領域に設定し、このコピー用の領域を使用して分割データを受信するようにしてもよい。このようにすれば、通信バッファ領域１４２の受信バッファＲＸからコピー用の領域に分割データをコピーする処理が不要となる。
【００９６】
また、分割データの送信要求からコピー完了までの処理時間と、分割データをＲＯＭ１２０に書き込んで検証するまでの処理時間とで差がある場合、時間の長い方の処理が完了したときに、次の分割データの受信処理と、分割データをＲＯＭ１２０に書き込む処理とを開始するようにしてもよい。
【００９７】
このように、書込み装置３００から受信した分割データをＥＣＵ１００の受信バッファＲＸにコピーし、ＲＯＭ１２０に書き込みを行うためのバッファ領域を２つ用意する。そして、２つのバッファ領域のうち、一方のバッファ領域を、ＲＯＭ１２０に対する書き込む処理に使用している間、他方のバッファ領域を、ＥＣＵ１００が受信した分割データをコピーする処理に使用する。これにより、ＥＣＵ１００において、一方のバッファ領域を使用してＲＯＭ１２０に分割データを書き込む処理と、分割データの受信及び分割データを他方のバッファ領域にコピーする処理とを並列に行うことができる。このため、プログラム書込み処理に要する時間を短縮することができる。
【００９８】
また、これらの処理を実現するためには、ＥＣＵ１００で実行する処理を変更すればよいため、書込み装置３００を大幅に変更せずに、プログラム書込み処理に要する時間を短縮することができる。
【００９９】
なお、本実施形態は自動車に搭載したＥＣＵ１００を例にしたものであるが、ＥＣＵ１００に代えて、不揮発性メモリを搭載した他の電子制御装置にも適用することができる。また、１台の書込み装置３００に対して複数のＥＣＵ１００を接続し、１台の書込み装置３００が、各ＥＣＵ１００に対して時分割でデータを転送するようにしてもよい。
【０１００】
ここで、上述した実施形態から把握し得る技術的思想について、以下に記載する。
（１）電子制御装置は、通信によって取得した任意のプログラムを揮発性メモリに展開して実行する手段と、前記プログラムを前記揮発性メモリに展開する前に、少なくとも前記プログラムを展開する前記揮発性メモリの領域を初期化する手段と、を有する。
【０１０１】
（２）前記揮発性メモリの領域を初期化する手段は、不揮発性メモリに予め格納されているプログラムによって実現される。
（３）前記プログラムは、外部からの要求に応答して、不揮発性メモリの少なくとも一部のデータを書き換える。
【０１０２】
（４）前記プログラムは、所定サイズごとに分割されたデータであって、その全体が初期値に設定されていない状態で順次取得され、前記プログラムを揮発性メモリに展開して実行する手段は、前記分割データに含まれる前記揮発性メモリのアドレスに、前記データ本体を展開する。
【０１０３】
（５）前記プログラムは、前記電子制御装置に着脱自由に接続される書込み装置から通信によって取得される。
（６）前記電子制御装置は、前記書込み装置に接続されると電源がＯＮになり、前記書込み装置から取り外されると電源がＯＦＦになる。
【０１０４】
（７）前記書込み装置は、前記分割データのデータ本体の全体が初期値に設定されている場合、その転送をスキップする。
（８）前記電子制御装置及び前記書込み装置は、パケットを介して通信する。
【符号の説明】
【０１０５】
１００  ＥＣＵ（電子制御装置）
１２０  ＲＯＭ（不揮発性メモリ）
１３０  ＲＡＭ（揮発性メモリ）
【図１】
2018067176.tif 000003
【図２】
2018067176.tif 000004
【図３】
2018067176.tif 000005
【図４】
2018067176.tif 000006
【図５】
2018067176.tif 000007
【図６】
2018067176.tif 000008
【図７】
2018067176.tif 000009
【図８】
2018067176.tif 000010
【図９】
2018067176.tif 000011
【図１０】
2018067176.tif 000012
【図１１】
2018067176.tif 000013
【図１２】
2018067176.tif 000014
【図１３】
2018067176.tif 000015
【図１４】
2018067176.tif 000016
【図１５】
2018067176.tif 000017
【図１６】
2018067176.tif 000018