(57)【特許請求の範囲】
【請求項１】
マイコンに対する制御プログラムの書き換えが可能な車載電子制御装置であって、
複数の前記車載電子制御装置（１００）が、同一の通信バス（１２）を介して１つの書き込み装置（１１）に接続される接続ステップと、
前記通信バスに接続された全ての前記車載電子制御装置に対し、前記書き込み装置から１回だけ前記制御プログラムが送信され、前記制御プログラムがそれぞれの前記マイコン（１１０）の書き換え領域（ＡＤ１）に同時に書き込まれる送信ステップと、
を経ることにより、制御プログラムが書き換えられるものであり、
前記送信ステップにおける前記制御プログラムの書き込みは、前記書き換え領域に予め書き込まれていた書き換えプログラムによって行われ、
前記送信ステップが完了した時点においては、前記書き換えプログラムは前記制御プログラムによって上書きされた状態となっており、
それぞれの前記マイコンの前記書き換え領域には、互いに異なる個別の識別ＩＤが予め書き込まれており、
前記送信ステップにおいては、
前記書き換え領域の消去が完了したことを確認する第１確認処理と、
前記制御プログラムの書き込みが完了したことを確認する第２確認処理と、
前記制御プログラムが正常に書き込まれたか否かの判定が完了したことを確認する第３確認処理とが、前記識別ＩＤを用いてそれぞれの前記車載電子制御装置毎に実施され、
前記送信ステップが完了した時点においては、前記識別ＩＤは前記制御プログラムによって上書きされた状態となっていることを特徴とする車載電子制御装置。
【請求項２】
前記送信ステップが開始される前に、
それぞれの前記車載電子制御装置において、前記書き換えプログラムと前記識別ＩＤとが、前記書き換え領域からＲＡＭ（１３０）へと転送され記憶されており、
前記送信ステップにおいて異常が生じた場合には、前記ＲＡＭに記憶されていた前記書き換えプログラムと前記識別ＩＤとが、前記書き換え領域に書き戻されることを特徴とする、請求項１に記載の車載電子制御装置。
【請求項３】
それぞれの前記車載電子制御装置には前記マイコンが複数搭載されており、
前記識別ＩＤは、
前記通信バスに接続された前記車載電子制御装置の全ての前記マイコン、のそれぞれに対して互いに異なるよう個別に割り振られており、これにより前記制御プログラムの同時書き込みが実施されることを特徴とする、請求項２に記載の車載電子制御装置。
【請求項４】
前記書き換えプログラムと前記識別ＩＤとは、
前記送信ステップが開始される前に、前記書き込み装置からそれぞれの前記車載電子制御装置へと送信され、前記書き換え領域に書き込まれることなくＲＡＭに記憶されることを特徴とする、請求項１に記載の車載電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムの書き換えが可能な車載電子制御装置に関する。
【背景技術】
【０００２】
車両に搭載され、燃料噴射等の制御を行うための制御装置である車載電子制御装置（ＥＣＵ）は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えたマイコンを有している。マイコンのＲＯＭには、車載電子制御装置で実行される制御プログラムが記憶されている。
【０００３】
マイコンに対する制御プログラムの書き換え（新規の書き込みを含む）は、ＲＯＭが制御基板に搭載された状態、すなわちオンボード状態において行われることがある（下記特許文献１を参照）。特に、既存の制御プログラムを改修するにあたっては、マイコンのＲＯＭ自体を置き換えるよりも、上記のようにオンボード状態で制御プログラムの書き換えを行った方が望ましい。また、例えば車載電子制御装置の製造工程において、新規のＲＯＭに制御プログラムの書き込みが行われる場合にも、上記のようなオンボード状態での書き込みが行われることが多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８２５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
オンボード状態での制御プログラムの書き換えは、従来、書き込み装置と車載電子制御装置とを１対１で接続した状態で行われていた。このため、複数個の車載電子制御装置に対して制御プログラムの書き込みが行われる場合には、車載電子制御装置の個数に略比例した時間がかかってしまっていた。
【０００６】
制御プログラムの書き換えに要する時間を短縮するために、複数個の車載電子制御装置に対して制御プログラムの書き換えを同時に行うことも考えられる。しかしながら、この場合には車載電子制御装置と同数の書き込み装置を用意する必要があったので、設備のコストが増大してしまうという問題があった。
【０００７】
本発明はこのような課題に鑑みてなされたものであり、その目的は、設備のコストを増大させることなく、制御プログラムの書き換えを短時間で行うことのできる車載電子制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明に係る車載電子制御装置は、マイコンに対する制御プログラムの書き換えが可能な車載電子制御装置であって、複数の車載電子制御装置が、同一の通信バスを介して１つの書き込み装置に接続される接続ステップと、通信バスに接続された全ての車載電子制御装置に対し、書き込み装置から１回だけ制御プログラムが送信され、制御プログラムがそれぞれのマイコンの書き換え領域に同時に書き込まれる送信ステップと、を経ることにより制御プログラムが書き換えられる。送信ステップにおける制御プログラムの書き込みは、書き換え領域に予め書き込まれていた書き換えプログラムによって行われる。送信ステップが完了した時点においては、書き換えプログラムは制御プログラムによって上書きされた状態となっている。それぞれのマイコンの書き換え領域には、互いに異なる個別の識別ＩＤが予め書き込まれている。送信ステップにおいては、書き換え領域の消去が完了したことを確認する第１確認処理と、制御プログラムの書き込みが完了したことを確認する第２確認処理と、制御プログラムが正常に書き込まれたか否かの判定が完了したことを確認する第３確認処理とが、識別ＩＤを用いてそれぞれの車載電子制御装置毎に実施される。送信ステップが完了した時点においては、識別ＩＤは制御プログラムによって上書きされた状態となっている。
【０００９】
このような車載電子制御装置の制御プログラムが書き換えられる際には、先ず、他の車載電子制御装置と共に同一の通信バスに接続された状態とされる。続いて、１つの書き込み装置から送信される制御プログラムが複数の車載電子制御装置に同時に書き込まれる。
【００１０】
制御プログラムの送信は、書き込み装置から１回だけ行われる。従って、制御プログラムの書き換えが行われる期間のうち、書き込み装置から制御プログラムが送信される期間の長さは、車載電子制御装置の数に拘らず概ね一定となる。
【００１１】
このため、制御プログラムの書き換えが複数の車載電子制御装置に対し同時に行われる場合であっても、比較的短時間で書き換えを完了させることができる。また、同時書き換えが行われる車載電子制御装置の個数が増加しても、必要な書き込み装置の個数がそれに比例して増加するわけではない。従って設備のコストも抑制される。
【発明の効果】
【００１２】
本発明によれば、設備のコストを増大させることなく、制御プログラムの書き換えを短時間で行うことのできる車載電子制御装置が提供される。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る車載電子制御装置の構成を模式的に示す図である。
【図２】制御プログラムの書き換えが行われる際における、ＲＯＭの状態の変化を示す図である。
【図３】図１の車載電子制御装置が書き込み装置と接続された状態を示す図である。
【図４】書き込みの前工程において、書き込み装置と車載電子制御装置との間で行われる通信の手順を示す図である。
【図５】図１の車載電子制御装置が書き込み装置と接続された状態を示す図である。
【図６】書き込みの後工程において、書き込み装置と車載電子制御装置との間で行われる通信の手順を示す図である。
【図７】図１の車載電子制御装置に対して制御プログラムの書き込みが行われる際における、各処理に要する時間を示す図である。
【図８】従来の車載電子制御装置に対して制御プログラムの書き込みが行われる際における、各処理に要する時間を示す図である。
【図９】図１の車載電子制御装置側で行われる処理の流れを示すフローチャートである。
【図１０】図１の書き込み装置側で行われる処理の流れを示すフローチャートである。
【図１１】本発明の第２実施形態に係る車載電子制御装置の構成を模式的に示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１５】
本発明の第１実施形態に係る車載電子制御装置（以下、「電子制御装置１００」と表記する）の構成について、図１を参照しながら説明する。電子制御装置１００は、車両に搭載される制御装置であって、例えば内燃機関における燃料噴射を制御するための装置として構成されている。電子制御装置１００は、所謂ＥＣＵとも称されるものである。
【００１６】
電子制御装置１００は、その主たる構成要素としてマイコン１１０を備えている。マイコン１１０は、不図示のＣＰＵの他、外部通信部１２０と、ＲＡＭ１３０と、ＲＯＭ１４０とを備えている。
【００１７】
外部通信部１２０は、外部と通信が行われる際のインターフェースとなる部分である。電子制御装置１００は、外部通信部１２０を介して信号の送受信を行うことにより、他の通信機器（例えば後述の書き込み装置１１）との間において双方向の通信を行うことが可能となっている。
【００１８】
ＲＡＭ１３０は、マイコン１１０に備えられた揮発性メモリである。ＲＡＭ１３０は、ＣＰＵにより制御プログラムが実行される際における一時的な情報の格納場所として用いられる。また、後に説明するように、ＲＯＭ１４０に対する制御プログラムの書き換えが行われる際には、ＲＡＭ１３０は書き換えプログラム等の格納場所としても用いられる。
【００１９】
ＲＯＭ１４０は、マイコン１１０に備えられた不揮発性メモリである。ＲＯＭ１４０には、ＣＰＵにより実行される制御プログラム等が記憶されている。ＲＯＭ１４０はフラッシュメモリであり、記憶されている制御プログラム等をオンボードの状態で書き換えること（新規に書き込むことも含む）が可能となっている。
【００２０】
制御プログラムの書き換えは、図１に示される書き換えシステム１０により行われる。書き換えシステム１０は、書き込み装置１１と通信バス１２とにより構成されている。書き込み装置１１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信インターフェースを備えたコンピュータシステムとして構成されており、電子制御装置１００と双方向の通信を行いながら、マイコン１１０のＲＯＭ１４０に制御プログラムを書き込むための装置である。
【００２１】
通信バス１２は、書き込み装置１１と電子制御装置１００が通信を行う際における信号の伝達経路である。通信バス１２により、書き込み装置１１の通信インターフェース（不図示）と、電子制御装置１００の外部通信部１２０とが接続される。尚、図１においては、１つの書き込み装置１１に対して１つの電子制御装置１００が接続された状態が示されているが、後に説明するように、１つの書き込み装置１１に対して複数の電子制御装置１００を接続し、それら複数の電子制御装置１００に対して制御プログラムの書き換えを同時に行うことも可能となっている。
【００２２】
制御プログラムの書き換えについて説明する。図２には、制御プログラムの書き換えが行われる際におけるＲＯＭ１４０の状態の変化、具体的には、ＲＯＭ１４０に記憶されている情報の変化が示されている。
【００２３】
制御プログラムの書き換えは、前工程と後工程の２回に分けて行われる。図２（Ａ）は、前工程が行われる前の時点におけるＲＯＭ１４０の状態を示している。すなわち、制御プログラムの書き換えが行われる前の初期状態を示している。図２（Ｂ）は、前工程が完了した時点におけるＲＯＭ１４０の状態を示している。図２（Ｃ）は、後工程が完了した時点、すなわち、制御プログラムの書き換えが完了した時点におけるＲＯＭ１４０の状態を示している。
【００２４】
ＲＯＭ１４０は、書き換え領域ＡＤ１と、非書き換え領域ＡＤ２と、ファームウェア格納領域ＡＤ３とからなる３つの記憶領域を有している。書き換え領域ＡＤ１は、制御プログラムが格納される記憶領域である。
【００２５】
非書き換え領域ＡＤ２は、市場用書き換えプログラムが格納される記憶領域である。市場用書き換えプログラムとは、電子制御装置１００を搭載した車両が市場に出た後において制御プログラムの書き換えが行われる際に、外部との通信を行いながら書き換えを実行するためのプログラムである。電子制御装置１００を搭載した車両が市場に出た後においては、非書き換え領域ＡＤ２に記憶されている情報（市場用書き換えプログラム）は原則として更新されない。
【００２６】
ファームウェア格納領域ＡＤ３は、マイコン１１０の動作を制御するためのファームウェア（マイコン内蔵ファーム）が格納されている記憶領域である。ファームウェア格納領域ＡＤ３は、書き込み装置１１のような外部の情報機器からは認識することのできない記憶領域である。ファームウェアの更新が行われる場合を除いては、ファームウェア格納領域ＡＤ３に記憶されている情報（ファームウェア）が更新されることはない。
【００２７】
図２（Ａ）に示されるように、前工程が行われる前においては、ファームウェア格納領域ＡＤ３にファームウェアが格納されているのみであり、書き換え領域ＡＤ１及び非書き換え領域ＡＤ２には情報が格納されていない。
【００２８】
尚、図２（Ａ）に示される状態は、制御プログラムの書き込みがこれまでに一度も行われていないとき、つまり、電子制御装置１００の製造工程における状態である。電子制御装置１００を搭載した車両が市場に出た後、改修された制御プログラムへの書き換えが行われるような場合には、前工程が行われる前であっても、書き換え領域ＡＤ１には（旧版の）制御プログラムが格納されている。前工程が行われる前の初期状態がどのようなものであるかは、本発明を実施するにあたって何ら制約となるものではない。
【００２９】
図２（Ｂ）に示されるように、前工程では、非書き換え領域ＡＤ２に対して市場用書き換えプログラムが書き込まれる。更に、書き換え領域ＡＤ１に対して識別ＩＤと書き換えプログラムとが書き込まれる。
【００３０】
後に説明するように、後工程では、複数の電子制御装置１００（従って複数のＲＯＭ１４０）に対して、制御プログラムの書き換えが同時に行われる。識別ＩＤは、書き換え時の処理においてこれら複数の電子制御装置１００を特定するために、電子制御装置１００のそれぞれに対して個別に割り振られる数値である。つまり、異なる電子制御装置１００には異なる識別ＩＤが割り振られる。
【００３１】
識別ＩＤには、要求ＩＤと応答ＩＤからなる２つの数値が含まれる。つまり、１つの電子制御装置１００には、識別ＩＤとして要求ＩＤと応答ＩＤとが割り振られる。要求ＩＤは、書き込み装置１１が電子制御装置１００に向けて信号を送信する際に、当該信号を受信する電子制御装置１００を特定するための識別ＩＤである。応答ＩＤは、電子制御装置１００が書き込み装置１１に向けて信号を送信する際に、当該信号の送信元である電子制御装置１００を特定するための識別ＩＤである。
【００３２】
例えば、３つの電子制御装置１００に対して制御プログラムの書き換えが行われる場合には、要求ＩＤとして「０ｘ００１」、「０ｘ００２」、「０ｘ００３」がそれぞれの電子制御装置１００に割り振られる。また、応答ＩＤとして「０ｘ０１１」、「０ｘ０２２」、「０ｘ０３３」がそれぞれの電子制御装置１００に割り振られる。
【００３３】
書き換えプログラムは、後工程、すなわち書き換え領域ＡＤ１に対する制御プログラムの書き込みが行われる際に、書き込み装置１１との通信を行いながら書き換えを実行するためのプログラムである。つまり、先に説明した市場用書き換えプログラムと同様の機能を有するプログラムなのであるが、後工程専用である点において市場用書き換えプログラムとは異なっている。以下でも単に「書き換えプログラム」と表記することとする。
【００３４】
図２（Ｃ）に示されるように、後工程では、書き換え領域ＡＤ１に対して制御プログラムが書き込まれる。書き換え領域ＡＤ１に書き込まれていた識別ＩＤ及び書き換えプログラムは、制御プログラムによって上書きされている。このため、後工程が完了した時点においては、書き換え領域ＡＤ１には制御プログラムのみが格納されており、識別ＩＤ及び書き換えプログラムは格納されていない。また、後工程においては、非書き換え領域ＡＤ２の状態は変化しない。
【００３５】
図３及び図４を参照しながら、前工程の具体的な態様について説明する。図３には、前工程が行われる際における、書き込み装置１１と電子制御装置１００との接続態様が模式的に示されている。図３に示されるように、前工程、すなわち識別ＩＤ及び書き換えプログラムの書き込みは、書き込み装置１１と電子制御装置１００とが通信バス１２を介して１対１で接続された状態で行われる。このような状態において、書き込み装置１１と電子制御装置１００との間で行われる通信は図４に示される手順（シーケンス）で行われる。図４に示されるように、前工程では、書き込みとベリファイとが順に行われる。
【００３６】
ここでいう「書き込み」とは、書き換え領域ＡＤ１に識別ＩＤ及び書き換えプログラムを書き込む処理である。先ず、書き込み装置１１から電子制御装置１００に向けて、市場用書き換えプログラムが送信される（矢印ＡＲ１１）。電子制御装置１００では、非書き換え領域ＡＤ２に対する市場用書き換えプログラムの書き込みが行われる。
【００３７】
続いて、書き込み装置１１から電子制御装置１００に向けて、書き換えプログラムが送信される（矢印ＡＲ１２）。電子制御装置１００では、書き換え領域ＡＤ１に対する書き換えプログラムの書き込みが行われる。
【００３８】
続いて、書き込み装置１１から電子制御装置１００に向けて、識別ＩＤ（要求ＩＤ及び応答ＩＤ）が送信される（矢印ＡＲ１３）。電子制御装置１００では、書き換え領域ＡＤ１に対する識別ＩＤの書き込みが行われる。
【００３９】
前工程における「ベリファイ」とは、ＲＯＭ１４０に書き込まれた書き換えプログラム、市場用書き換えプログラム、及び識別ＩＤが、正常に書き込まれたか否かを電子制御装置１００側で判定する処理である。
【００４０】
書き込み装置１１から電子制御装置１００に向けて、ベリファイ要求コマンドが送信される（矢印ＡＲ１４）。ベリファイ要求コマンドは、電子制御装置１００に対してベリファイの開始を要求するためのコマンドである。ベリファイ要求コマンドが受信されると、電子制御装置１００ではベリファイの処理が開始される。
【００４１】
電子制御装置１００におけるベリファイの処理が完了すると、電子制御装置１００から書き込み装置１１に向けて、ベリファイ完了通知コマンドが送信される（矢印ＡＲ１５）。これにより、ベリファイが完了した旨が書き込み装置１１により認識される。
【００４２】
図５及び図６を参照しながら、後工程の具体的な態様について説明する。図５には、後工程が行われる際における、書き込み装置１１と電子制御装置１００との接続態様が模式的に示されている。図５に示されるように、後工程、すなわち制御プログラムの書き込みは、１つの書き込み装置１１に対し、複数個の電子制御装置１００が同一の通信バス１２を介して接続された状態で行われる。
【００４３】
図５に示される例では、Ｎ個の電子制御装置１００が同一の通信バス１２に接続されている。説明の便宜のため、以下の説明や図５等では、それぞれの電子制御装置１００に１〜Ｎの番号を対応させた上で、例えば１番目の電子制御装置１００のことを「電子制御装置１」のように表記することがある。同様に、２番目の電子制御装置１００のことを「電子制御装置２」と表記することがあり、Ｎ番目の電子制御装置１００のことを「電子制御装置Ｎ」と表記することがある。
【００４４】
また、例えば１番目の電子制御装置１００（電子制御装置１）については、符号１００を符号１０１に置き換えて、「電子制御装置１０１」のように表記することもある。同様に、２番目の電子制御装置１００（電子制御装置２）を電子制御装置１０２と表記することもある。
【００４５】
Ｎ個の電子制御装置１００を、通信バス１２を介して書き込み装置１１に接続し、図５の状態とする工程は、本発明の「接続ステップ」に該当するものである。図５の状態において、書き込み装置１１と電子制御装置１００との間では再び通信が行われる。
【００４６】
制御プログラムの書き換えのために、書き込み装置１１と電子制御装置１００との間で行われる通信は、図６に示される手順（シーケンス）で行われる。図６に示されるように、後工程では、消去、書き込み、及びベリファイが順に行われる。このような後工程は、本発明の「送信ステップ」に該当するものである。
【００４７】
ここでいう「消去」とは、前工程において書き換え領域ＡＤ１に書き込まれていた識別ＩＤ及び書き換えプログラムをＲＡＭ１３０に退避させた後、書き換え領域ＡＤ１に格納されている情報の全てを消去する処理である。このように、識別ＩＤ等が書き換え領域ＡＤ１には残されないので、制御プログラムの配置が識別ＩＤ等により制約されてしまうことが無い。
【００４８】
先ず、書き込み装置１１から電子制御装置１００に向けて、消去要求コマンドが送信される（矢印ＡＲ２１）。消去要求コマンドは、電子制御装置１００に対して消去の開始を要求するためのコマンドである。消去要求コマンドが受信されると、電子制御装置１００では消去の処理が開始される。
【００４９】
尚、消去要求コマンドは書き込み装置１１から１回だけ送信され、全ての電子制御装置１００により受信される。このため、全ての電子制御装置１００では、消去の処理がほぼ同時に開始される。
【００５０】
続いて、書き込み装置１１から電子制御装置１００に向けて、消去状態確認コマンドが送信される（矢印ＡＲ２２）。消去状態確認コマンドは、それぞれの電子制御装置１００において、消去の処理が完了したか否かを確認するためのコマンドである。電子制御装置１００における消去の処理が完了している場合には、電子制御装置１００からは消去完了通知コマンドが返信として書き込み装置１１に送信される（矢印ＡＲ２３）。一方、電子制御装置１００における消去の処理が完了していない場合には、電子制御装置１００からは消去中通知コマンドが返信として書き込み装置１１に送信される。
【００５１】
消去状態確認コマンドは、先ず１番目の電子制御装置１００（電子制御装置１）に対して送信される（矢印ＡＲ２２）。すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（要求ＩＤ）が付された消去状態確認コマンドが、書き込み装置１１から送信される。
【００５２】
その後、電子制御装置１から消去完了通知コマンドが送信されるまでの間、すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（応答ＩＤ）が付された消去完了通知コマンドが、電子制御装置１から送信されるまでの間は、電子制御装置１に対して消去状態確認コマンドが繰り返し送信される。
【００５３】
電子制御装置１から消去完了通知コマンドが送信されると（矢印ＡＲ２３）、続いて２番目の電子制御装置１００（電子制御装置２）に対して消去状態確認コマンドが送信される。以降も同様に、それぞれの電子制御装置１００に対する消去状態確認コマンドの送信が順に行われる。
【００５４】
Ｎ番目の電子制御装置１００（電子制御装置Ｎ）に消去完了通知コマンドが送信され（矢印ＡＲ２４）、これに対する消去完了通知コマンドが電子制御装置Ｎから送信されると（矢印ＡＲ２５）、消去に続く書き込みの処理が開始される。
【００５５】
書き込み装置１１からの消去状態確認コマンドの送信、及び、電子制御装置１００からの消去完了通知コマンドの送信は、書き換え領域ＡＤ１の消去が完了したことを確認するための処理（第１確認処理）である。
【００５６】
後工程における「書き込み」とは、書き換え領域ＡＤ１に制御プログラムを書き込む処理である。先ず、書き込み装置１１から電子制御装置１００に向けて、書き込み要求コマンドが送信され（矢印ＡＲ２６）、それに続いて制御プログラムが送信される。書き込み要求コマンドは、電子制御装置１００に対して書き込みの開始を要求するためのコマンドである。書き込み要求コマンド、及びそれに続く制御プログラムが受信されると、電子制御装置１００では書き込みの処理が開始される。
【００５７】
消去要求コマンドと同様に、書き込み要求コマンド及び制御プログラムは書き込み装置１１から１回だけ送信され、全ての電子制御装置１００により受信される。このため、全ての電子制御装置１００では、書き込みの処理がほぼ同時に開始される。尚、制御プログラムは比較的データ量が多いため、複数のブロックに分けられた状態で書き込み装置１１から電子制御装置１００へと送信される（矢印ＡＲ２７）。
【００５８】
制御プログラムの送信が完了すると、書き込み装置１１から電子制御装置１００に向けて、書き込み状態確認コマンドが送信される（矢印ＡＲ２８）。書き込み状態確認コマンドは、それぞれの電子制御装置１００において、書き込みの処理が完了したか否かを確認するためのコマンドである。電子制御装置１００における書き込みの処理が完了している場合には、電子制御装置１００からは書き込み完了通知コマンドが返信として書き込み装置１１に送信される（矢印ＡＲ２９）。一方、電子制御装置１００における書き込みの処理が完了していない場合には、電子制御装置１００からは書き込み中通知コマンドが返信として書き込み装置１１に送信される。
【００５９】
書き込み状態確認コマンドは、先ず１番目の電子制御装置１００（電子制御装置１）に対して送信される（矢印ＡＲ２８）。すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（要求ＩＤ）が付された書き込み状態確認コマンドが、書き込み装置１１から送信される。
【００６０】
その後、電子制御装置１から書き込み完了通知コマンドが送信されるまでの間、すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（応答ＩＤ）が付された書き込み完了通知コマンドが、電子制御装置１から送信されるまでの間は、電子制御装置１に対して書き込み状態確認コマンドが繰り返し送信される。
【００６１】
電子制御装置１から書き込み完了通知コマンドが送信されると（矢印ＡＲ２９）、続いて２番目の電子制御装置１００（電子制御装置２）に対して書き込み状態確認コマンドが送信される。以降も同様に、それぞれの電子制御装置１００に対する書き込み状態確認コマンドの送信が順に行われる。
【００６２】
Ｎ番目の電子制御装置１００（電子制御装置Ｎ）に書き込み完了通知コマンドが送信され（矢印ＡＲ３０）、これに対する書き込み完了通知コマンドが電子制御装置Ｎから送信されると（矢印ＡＲ３１）、書き込みに続くベリファイの処理が開始される。
【００６３】
書き込み装置１１からの書き込み状態確認コマンドの送信、及び、電子制御装置１００からの書き込み完了通知コマンドの送信は、書き換え領域ＡＤ１に対する制御プログラムの書き込みが完了したことを確認するための処理（第２確認処理）である。
【００６４】
後工程における「ベリファイ」とは、ＲＯＭ１４０に書き込まれた制御プログラムが、正常に書き込まれたか否かを電子制御装置１００側で判定する処理である。先ず、書き込み装置１１から電子制御装置１００に向けて、ベリファイ要求コマンドが送信される（矢印ＡＲ３２）。ベリファイ要求コマンドは、電子制御装置１００に対してベリファイの開始を要求するためのコマンドである。ベリファイ要求コマンドが受信されると、電子制御装置１００ではベリファイの処理が開始される。
【００６５】
消去要求コマンドや書き込み要求コマンドと同様に、ベリファイ要求コマンドは書き込み装置１１から１回だけ送信され、全ての電子制御装置１００により受信される。このため、全ての電子制御装置１００では、ベリファイの処理がほぼ同時に開始される。
【００６６】
続いて、書き込み装置１１から電子制御装置１００に向けて、ベリファイ状態確認コマンドが送信される（矢印ＡＲ３３）。ベリファイ状態確認コマンドは、それぞれの電子制御装置１００において、ベリファイの処理が完了したか否かを確認するためのコマンドである。電子制御装置１００におけるベリファイの処理が完了している場合には、電子制御装置１００からはベリファイ完了通知コマンドが返信として書き込み装置１１に送信される（矢印ＡＲ３４）。一方、電子制御装置１００におけるベリファイの処理が完了していない場合には、電子制御装置１００からはベリファイ中通知コマンドが返信として書き込み装置１１に送信される。
【００６７】
ベリファイ状態確認コマンドは、先ず１番目の電子制御装置１００（電子制御装置１）に対して送信される（矢印ＡＲ３３）。すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（要求ＩＤ）が付されたベリファイ状態確認コマンドが、書き込み装置１１から送信される。
【００６８】
その後、電子制御装置１からベリファイ完了通知コマンドが送信されるまでの間、すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（応答ＩＤ）が付されたベリファイ完了通知コマンドが、電子制御装置１から送信されるまでの間は、電子制御装置１に対してベリファイ状態確認コマンドが繰り返し送信される。
【００６９】
電子制御装置１からベリファイ完了通知コマンドが送信されると（矢印ＡＲ３４）、続いて２番目の電子制御装置１００（電子制御装置２）に対してベリファイ状態確認コマンドが送信される。以降も同様に、それぞれの電子制御装置１００に対するベリファイ状態確認コマンドの送信が順に行われる。
【００７０】
Ｎ番目の電子制御装置１００（電子制御装置Ｎ）にベリファイ完了通知コマンドが送信され（矢印ＡＲ３５）、これに対するベリファイ完了通知コマンドが電子制御装置Ｎから送信されると（矢印ＡＲ３６）、以上に説明した後工程が完了する。
【００７１】
書き込み装置１１からのベリファイ状態確認コマンドの送信、及び、電子制御装置１００からのベリファイ完了通知コマンドの送信は、ベリファイが完了したこと、すなわち制御プログラムが正常に書き込まれたか否かの判定が完了したことを確認するための処理（第３確認処理）である。
【００７２】
以上のように、電子制御装置１００に対する制御プログラムの書き換えが行われるにあたっては、制御プログラムの送信等、処理の一部が複数の電子制御装置１００において同時に行われる。図７には、同時に書き込みが行われる電子制御装置１００の個数を２とした上で、後工程の各処理に要する時間が示されている。
【００７３】
図７の例では、それぞれの電子制御装置１００において消去の処理が開始される時刻を時刻ｔ０とし、消去の処理が終了する時刻を時刻ｔ１０としている。また、それぞれの電子制御装置１００において書き込みの処理が開始される時刻を時刻ｔ１２とし、書き込みの処理が終了する時刻を時刻ｔ２０としている。更に、それぞれの電子制御装置１００においてベリファイの処理が開始される時刻を時刻ｔ２２とし、ベリファイの処理が終了する時刻を時刻ｔ３０としている。
【００７４】
また、図７において「状態確認」と記載されている期間は、書き込み装置１１から状態確認コマンド（消去状態確認コマンド等）が送信されてから、それに対応する完了通知コマンド（消去完了通知コマンド等）が電子制御装置１００から送信される時点までの期間である。例えば、消去が完了した直後において、電子制御装置１に向けて消去状態確認コマンドが送信された時刻ｔ１０から、これに対応する消去完了通知コマンドが電子制御装置１から送信された時刻ｔ１１までの期間等が、上記の状態確認に該当する。
【００７５】
上記の他、図７では、電子制御装置１から書き込み完了通知コマンドが送信された時刻を時刻ｔ２１としており、電子制御装置１からベリファイ完了通知コマンドが送信された時刻を時刻ｔ３１としている。
【００７６】
図７では、電子制御装置１から消去完了通知コマンドが送信されるのとほぼ同時（時刻ｔ１１）に、電子制御装置２に向けて消去状態確認コマンドが送信されている。これに対して電子制御装置２から消去完了通知コマンドが送信されると（時刻ｔ１２）、直ちに書き込みが開始されている。
【００７７】
また、電子制御装置１から書き込み完了通知コマンドが送信されるのとほぼ同時（時刻ｔ２１）に、電子制御装置２に向けて書き込み状態確認コマンドが送信されている。これに対して電子制御装置２から書き込み完了通知コマンドが送信されると（時刻ｔ２２）、直ちにベリファイが開始されている。
【００７８】
更に、電子制御装置１からベリファイ完了通知コマンドが送信されるのとほぼ同時（時刻ｔ３１）に、電子制御装置２に向けてベリファイ状態確認コマンドが送信されている。これに対して電子制御装置２からベリファイ完了通知コマンドが送信された時刻を、図７では時刻ｔ３２としている。
【００７９】
図７に示されるように、本実施形態においては、それぞれの電子制御装置１００における消去、書き込み、及びベリファイの処理が、いずれも同時に行われている。このため、制御プログラムの書き換え対象となる電子制御装置１００の個数が更に増加したとしても、後工程の全体の時間、すなわち、時刻ｔ０から時刻t３２までの総書き換え時間が、電子制御装置１００の個数に比例して増加することはない。
【００８０】
尚、状態確認に要する時間は電子制御装置１００の個数に応じて増加するのであるが、当該時間は書き込み等に要する時間に比べれば非常に短い。このため、電子制御装置１００の個数が増加しても総書き換え時間は殆ど増加しない。
【００８１】
図８には、本発明によらない従来の方法によって制御プログラムの書き換えが行われた場合における、各処理に要する時間が示されている。図８の例では、先ず電子制御装置１に対して消去、書き込み、ベリファイの処理が順に行われた後、電子制御装置２に対して消去、書き込み、ベリファイの処理が順に行われる。
【００８２】
具体的には、先ず電子制御装置１において、時刻ｔ１００から時刻ｔ１１０までの期間において消去が行われ、続いて時刻ｔ１１１までの期間において状態確認が行われる。その後、時刻ｔ１１１から時刻ｔ１２０までの期間において書き込みが行われ、時刻ｔ１２１までの期間において状態確認が行われる。更にその後、時刻ｔ１２１から時刻ｔ１３０までの期間においてベリファイが行われ、時刻ｔ１３１までの期間において状態確認が行われる。
【００８３】
時刻ｔ１３１において、電子制御装置１に対する上記の処理がすべて完了すると、ほぼ同時に電子制御装置２に対する処理が開始される。時刻ｔ１３１から時刻ｔ１４０までの期間において消去が行われ、続いて時刻ｔ１４１までの期間において状態確認が行われる。その後、時刻ｔ１４１から時刻ｔ１５０までの期間において書き込みが行われ、時刻ｔ１５１までの期間において状態確認が行われる。更にその後、時刻ｔ１５１から時刻ｔ１６０までの期間においてベリファイが行われ、時刻ｔ１６１までの期間において状態確認が行われる。
【００８４】
以上のようであるから、例えば電子制御装置１への書き込みが行われる期間（時刻ｔ１１１から時刻ｔ１２０までの期間）と、電子制御装置２への書き込みが行われる期間（時刻ｔ１４１から時刻ｔ１５０までの期間）とは、互いに重なっていない。消去やベリファイが行われる期間についても同様である。
【００８５】
その結果、図８の例における総書き換え時間、すなわち時刻ｔ１００から時刻ｔ１６１までに要する時間は、図７の例における総書き換え時間に比べると長くなっている。また、図８に示される方法においては、制御プログラムの書き換え対象となる電子制御装置１００の個数が増加すると、これにほぼ比例して総書き換え時間は増加してしまうことになる。
【００８６】
以上の説明で明らかなように、本実施形態に係る電子制御装置１００では、書き込み装置１１の個数を増加させることなく、制御プログラムの書き換えに要する時間を従来に比べて大幅に短縮することが可能となっている。
【００８７】
図６を参照しながら説明した後工程において、電子制御装置１００及び書き込み装置１１のそれぞれで行われる具体的な処理の流れについて、図９及び図１０を参照しながら説明する。
【００８８】
図９は、電子制御装置１００側で行われる処理の流れを示すフローチャートである。最初のステップＳ０１では、書き込み装置１１からの消去要求コマンドが受信されたか否かが判定される。消去要求コマンドが未だ受信されていない場合には、ステップＳ０１の処理が繰り返される。消去要求コマンドが受信されればステップＳ０２に移行する。
【００８９】
ステップＳ０２では、前工程において書き換え領域ＡＤ１に書き込まれていた識別ＩＤ及び書き換えプログラムを、ＲＡＭ１３０に転送し退避させる。ステップＳ０２に続くステップＳ０３では、書き換え領域ＡＤ１の消去が開始される。
【００９０】
ステップＳ０３に続くステップＳ０４では、書き込み装置１１からの消去状態確認コマンドが受信されたか否かが判定される。すなわち、当該電子制御装置１００のＲＡＭ１３０に記憶されている識別ＩＤ（要求ＩＤ）と同一の識別ＩＤが付された消去状態確認コマンドが受信されたか否かが判定される。消去状態確認コマンドが未だ受信されていない場合には、ステップＳ０４の処理が繰り返される。消去状態確認コマンドが受信されればステップＳ０５に移行する。
【００９１】
ステップＳ０５では、ステップＳ０３で開始された消去の処理が、現時点で完了しているか否かが判定される。消去が完了していなければステップＳ０６に移行する。ステップＳ０６では、書き込み装置１１に向けて消去中通知コマンドが送信される。その後、ステップＳ０４以降の処理が再度実行される。
【００９２】
ステップＳ０５において、消去が完了していた場合にはステップＳ０７に移行する。ステップＳ０７では、書き込み装置１１に向けて消去完了通知コマンドが送信される。その後、ステップＳ１１に移行する。
【００９３】
ステップＳ１１では、書き込み装置１１からの書き込み要求コマンドが受信されたか否かが判定される。書き込み要求コマンドが未だ受信されていない場合には、ステップＳ１１の処理が繰り返される。書き込み要求コマンドが受信されればステップＳ１２に移行する。ステップＳ１２では、書き込み装置１１からの制御プログラムの受信、及び書き換え領域ＡＤ１に対する制御プログラムの書き込みが開始される。かかる処理は、当該電子制御装置１００のＲＡＭ１３０に記憶されている書き換えプログラムにより実行される。
【００９４】
ステップＳ１２に続くステップＳ１３では、書き込み装置１１からの書き込み状態確認コマンドが受信されたか否かが判定される。すなわち、当該電子制御装置１００のＲＡＭ１３０に記憶されている識別ＩＤ（要求ＩＤ）と同一の識別ＩＤが付された書き込み状態確認コマンドが受信されたか否かが判定される。書き込み状態確認コマンドが未だ受信されていない場合には、ステップＳ１３の処理が繰り返される。書き込み状態確認コマンドが受信されればステップＳ１４に移行する。
【００９５】
ステップＳ１４では、ステップＳ１２で開始された書き込みの処理が、現時点で完了しているか否かが判定される。書き込みが完了していなければステップＳ１５に移行する。ステップＳ１５では、書き込み装置１１に向けて書き込み中通知コマンドが送信される。その後、ステップＳ１３以降の処理が再度実行される。
【００９６】
ステップＳ１４において、書き込みが完了していた場合にはステップＳ１６に移行する。ステップＳ１６では、書き込み装置１１に向けて書き込み完了通知コマンドが送信される。その後、ステップＳ２１に移行する。
【００９７】
ステップＳ２１では、書き込み装置１１からのベリファイ要求コマンドが受信されたか否かが判定される。ベリファイ要求コマンドが未だ受信されていない場合には、ステップＳ２１の処理が繰り返される。ベリファイ要求コマンドが受信されればステップＳ２２に移行する。ステップＳ２２ではベリファイの処理が開始される。
【００９８】
ステップＳ２２に続くステップＳ２３では、書き込み装置１１からのベリファイ状態確認コマンドが受信されたか否かが判定される。すなわち、当該電子制御装置１００のＲＡＭ１３０に記憶されている識別ＩＤ（要求ＩＤ）と同一の識別ＩＤが付されたベリファイ状態確認コマンドが受信されたか否かが判定される。ベリファイ状態確認コマンドが未だ受信されていない場合には、ステップＳ２３の処理が繰り返される。ベリファイ状態確認コマンドが受信されればステップＳ２４に移行する。
【００９９】
ステップＳ２４では、ステップＳ２２で開始されたベリファイの処理が、現時点で完了しているか否かが判定される。ベリファイが完了していなければステップＳ２５に移行する。ステップＳ２５では、書き込み装置１１に向けてベリファイ中通知コマンドが送信される。その後、ステップＳ２３以降の処理が再度実行される。
【０１００】
ステップＳ２４において、ベリファイが完了していた場合にはステップＳ２６に移行する。ステップＳ２６では、ベリファイの結果が異常を示すものであったか否かが判定される。ベリファイの結果が正常であれば、図９に示される一連の処理を終了する。ベリファイの結果が異常を示すものであった場合には、ステップＳ２７に移行する。
【０１０１】
ステップＳ２７に移行した場合には、書き換え領域ＡＤ１に対する制御プログラムの書き込みが正常に行われておらず、当該制御プログラムは正常に動作し得ないということである。このため、ステップＳ２７では、ＲＡＭ１３０に記憶（退避）されていた識別ＩＤと書き換えプログラムとが、ＲＯＭ１４０の書き換え領域ＡＤ１に書き戻される。その結果、ＲＯＭ１４０は、図２（Ｂ）の状態に戻される。
【０１０２】
尚、ステップＳ０３における消去や、ステップＳ１２における制御プログラムの書き込みが行われている途中の時点においても、何らかの異常が生じる可能性がある。このように異常が生じた場合には、割り込み処理によって強制的にステップＳ２７の処理が実行され、ＲＯＭ１４０が図２（Ｂ）の状態に戻される。
【０１０３】
図１０は、書き込み装置１１側で行われる処理の流れを示すフローチャートである。最初のステップＳ３１では、全ての電子制御装置１００に向けた消去要求コマンドの送信が行われる。これにより、全ての電子制御装置１００において消去の処理が同時に開始される。
【０１０４】
ステップＳ３１に続くステップＳ３２では、変数ｎの値が１とされる。変数ｎは、書き込み装置１１のメモリ内に確保された情報の格納場所である。変数ｎには、消去状態確認コマンド等の送信対象となる電子制御装置１００、に対応する番号が記憶される。例えば、変数ｎの値が１のときには、消去状態確認コマンドや書き込み状態確認コマンド等が電子制御装置１（電子制御装置１０１）に向けて送信される。すなわち、電子制御装置１に割り振られたものと同一の識別ＩＤ（要求ＩＤ）が付された消去状態確認コマンド等が送信される。
【０１０５】
ステップＳ３２に続くステップＳ３３では、電子制御装置１００に向けた消去状態確認コマンドの送信が行われる。この場合、変数ｎの値は１であるから、消去状態確認コマンドは電子制御装置１に向けて送信される。
【０１０６】
ステップＳ３３に続くステップＳ３４では、電子制御装置１００からの消去中通知コマンドが受信されたか否かが判定される。すなわち、変数ｎの値に対応する識別ＩＤ（応答ＩＤ）と同一の識別ＩＤが付された消去中通知コマンドが受信されたか否かが判定される。消去中通知コマンドが受信された場合には、ステップＳ３３以降の処理が繰り返される。消去中通知コマンドが受信されなければステップＳ３５に移行する。
【０１０７】
ステップＳ３５では、電子制御装置１００からの消去完了通知コマンドが受信されたか否かが判定される。すなわち、変数ｎの値に対応する識別ＩＤ（応答ＩＤ）と同一の識別ＩＤが付された消去完了通知コマンドが受信されたか否かが判定される。消去完了通知コマンドが未だ受信されていない場合には、ステップＳ３５の処理が繰り返される。消去完了通知コマンドが受信されればステップＳ３６に移行する。
【０１０８】
ステップＳ３６では、変数ｎの値が、電子制御装置１００の個数（Ｎ）に等しいか否かが判定される。変数ｎの値がＮよりも小さければ、ステップＳ３７に移行する。ステップＳ３７では、変数ｎの値に１が加算される。その後、ステップＳ３３以降の処理が再度実行される。
【０１０９】
つまり、電子制御装置１との間における状態確認（消去状態確認コマンドの送信等）が完了すると、続いて電子制御装置２との間における状態確認が行われる。このような処理が繰り返されることにより、全ての電子制御装置１００との間における状態確認が行われることとなる。
【０１１０】
ステップＳ３６において、変数ｎの値がＮに等しい場合には、全ての電子制御装置１００との間における状態確認が完了したということである。この場合、ステップＳ４１に移行する。
【０１１１】
ステップＳ４１では、全ての電子制御装置１００に向けた書き込み要求コマンドの送信、及び制御プログラムの送信が行われる。これにより、全ての電子制御装置１００において制御プログラムの書き込みが同時に開始される。
【０１１２】
ステップＳ４１に続くステップＳ４２では、変数ｎの値が再び１とされる。ステップＳ４２に続くステップＳ４３では、電子制御装置１００に向けた書き込み状態確認コマンドの送信が行われる。この場合、変数ｎの値は１であるから、書き込み状態確認コマンドは電子制御装置１に向けて送信される。
【０１１３】
ステップＳ４３に続くステップＳ４４では、電子制御装置１００からの書き込み中通知コマンドが受信されたか否かが判定される。すなわち、変数ｎの値に対応する識別ＩＤ（応答ＩＤ）と同一の識別ＩＤが付された書き込み中通知コマンドが受信されたか否かが判定される。書き込み中通知コマンドが受信された場合には、ステップＳ４３以降の処理が繰り返される。書き込み中通知コマンドが受信されなければステップＳ４５に移行する。
【０１１４】
ステップＳ４５では、電子制御装置１００からの書き込み完了通知コマンドが受信されたか否かが判定される。すなわち、変数ｎの値に対応する識別ＩＤ（応答ＩＤ）と同一の識別ＩＤが付された書き込み完了通知コマンドが受信されたか否かが判定される。書き込み完了通知コマンドが未だ受信されていない場合には、ステップＳ４５の処理が繰り返される。書き込み完了通知コマンドが受信されればステップＳ４６に移行する。
【０１１５】
ステップＳ４６では、変数ｎの値が、電子制御装置１００の個数（Ｎ）に等しいか否かが判定される。変数ｎの値がＮよりも小さければ、ステップＳ４７に移行する。ステップＳ４７では、変数ｎの値に１が加算される。その後、ステップＳ４３以降の処理が再度実行される。
【０１１６】
つまり、電子制御装置１との間における状態確認（書き込み状態確認コマンドの送信等）が完了すると、続いて電子制御装置２との間における状態確認が行われる。このような処理が繰り返されることにより、全ての電子制御装置１００との間における状態確認が行われることとなる。
【０１１７】
ステップＳ４６において、変数ｎの値がＮに等しい場合には、全ての電子制御装置１００との間における状態確認が完了したということである。この場合、ステップＳ５１に移行する。
【０１１８】
ステップＳ５１では、全ての電子制御装置１００に向けたベリファイ要求コマンドの送信が行われる。これにより、全ての電子制御装置１００においてベリファイの処理が同時に開始される。
【０１１９】
ステップＳ５１に続くステップＳ５２では、変数ｎの値が再び１とされる。ステップＳ５２に続くステップＳ５３では、電子制御装置１００に向けたベリファイ状態確認コマンドの送信が行われる。この場合、変数ｎの値は１であるから、ベリファイ状態確認コマンドは電子制御装置１に向けて送信される。
【０１２０】
ステップＳ５３に続くステップＳ５４では、電子制御装置１００からのベリファイ中通知コマンドが受信されたか否かが判定される。すなわち、変数ｎの値に対応する識別ＩＤ（応答ＩＤ）と同一の識別ＩＤが付されたベリファイ中通知コマンドが受信されたか否かが判定される。ベリファイ中通知コマンドが受信された場合には、ステップＳ５３以降の処理が繰り返される。ベリファイ中通知コマンドが受信されなければステップＳ５５に移行する。
【０１２１】
ステップＳ５５では、電子制御装置１００からのベリファイ完了通知コマンドが受信されたか否かが判定される。すなわち、変数ｎの値に対応する識別ＩＤ（応答ＩＤ）と同一の識別ＩＤが付されたベリファイ完了通知コマンドが受信されたか否かが判定される。ベリファイ完了通知コマンドが未だ受信されていない場合には、ステップＳ５５の処理が繰り返される。ベリファイ完了通知コマンドが受信されればステップＳ５６に移行する。
【０１２２】
ステップＳ５６では、変数ｎの値が、電子制御装置１００の個数（Ｎ）に等しいか否かが判定される。変数ｎの値がＮよりも小さければ、ステップＳ５７に移行する。ステップＳ５７では、変数ｎの値に１が加算される。その後、ステップＳ５３以降の処理が再度実行される。
【０１２３】
つまり、電子制御装置１との間における状態確認（ベリファイ状態確認コマンドの送信等）が完了すると、続いて電子制御装置２との間における状態確認が行われる。このような処理が繰り返されることにより、全ての電子制御装置１００との間における状態確認が行われることとなる。
【０１２４】
ステップＳ５６において、変数ｎの値がＮに等しい場合には、全ての電子制御装置１００との間における状態確認が完了したということである。このため、図１０に示される一連の処理を終了する。
【０１２５】
尚、本実施形態においては、書き換えプログラムと識別ＩＤとが、前工程において書き換え領域ＡＤ１に書き込まれ、その後ＲＡＭ１３０に転送される。このような態様に替えて、書き換えプログラムと識別ＩＤとが、書き換え領域ＡＤ１を経由することなく直接ＲＡＭ１３０に書き込まれるような態様であってもよい。この場合、書き換えプログラムと識別ＩＤとをＲＯＭ１４０に書き込むための時間が省略されるので、総書き込み時間をより短縮することができる。
【０１２６】
これまでに説明した第１実施形態では、１つの電子制御装置１００に１つのマイコン１１０（従って１つのＲＯＭ１４０）が搭載されている例について説明した。しかしながら、本発明は、１つの電子制御装置１００に複数のマイコン１１０（従って複数のＲＯＭ１４０）が搭載されている場合にも適用可能である。
【０１２７】
図１１には、本発明の第２実施形態に係る２つの電子制御装置１００（電子制御装置１０１、１０２）が、通信バス１２を介して書き込み装置１１に接続された状態が示されている。本実施形態における電子制御装置１００は、２つのマイコン１１０、２１０を備えている点において、第１実施形態に係る電子制御装置１００と異なっている。
【０１２８】
マイコン１１０と同様に、マイコン２１０も外部通信部２２０、ＲＡＭ２３０、及びＲＯＭ２４０を備えている。以下の説明では、電子制御装置１０１に備えられたマイコン１１０のＲＯＭ１４０のことを、「ＲＯＭ１４１」とも表記する。また、電子制御装置１０１に備えられたマイコン２１０のＲＯＭ２４０のことを、「ＲＯＭ２４１」とも表記する。
【０１２９】
同様に、電子制御装置１０２に備えられたマイコン１１０のＲＯＭ１４０のことを、「ＲＯＭ１４２」とも表記する。また、電子制御装置１０２に備えられたマイコン２１０のＲＯＭ２４０のことを、「ＲＯＭ２４２」とも表記する。
【０１３０】
ＲＯＭ１４１に書き込まれる制御プログラムと、ＲＯＭ１４２に書き込まれる制御プログラムとは互いに同一であるとする。また、ＲＯＭ２４１に書き込まれる制御プログラムと、ＲＯＭ２４２に書き込まれる制御プログラムとは互いに同一であるとする。
【０１３１】
このような場合には、第１実施形態において説明した方法と同様の方法により、ＲＯＭ１４１及びＲＯＭ１４２の両方に対する制御プログラムの書き込みが、同時に行われればよい。その後、ＲＯＭ２４１及びＲＯＭ２４２の両方に対する制御プログラムの書き込みが、やはり同時に行われればよい。
【０１３２】
この場合、通信バス１２に接続された全てのマイコン（電子制御装置１０１のマイコン１１０、２１０、及び電子制御装置１０２のマイコン１１０、２１０）のそれぞれに対して、互いに異なる個別の識別ＩＤ（要求ＩＤ、応答ＩＤ）が割り振られればよい。各マイコンに個別の識別ＩＤが割り振られれば、図１１のように接続された状態においても、同時書き込みを行うことにより総書き込み時間を短縮することができる。
【０１３３】
以上、具体例を参照しつつ本発明の実施の形態について説明した。なお、通信バス１２の通信線は、書き込み装置１１と電子制御装置１００との間の通信方式によって決定されるものである（ＣＡＮの場合：２線）。しかし、本発明はこれらの具体例に限定されるものではない。すなわち、これら具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、前述した各具体例が備える各要素およびその配置、材料、条件、形状、サイズなどは、例示したものに限定されるわけではなく適宜変更することができる。また、前述した各実施の形態が備える各要素は、技術的に可能な限りにおいて組み合わせることができ、これらを組み合わせたものも本発明の特徴を含む限り本発明の範囲に包含される。
【符号の説明】
【０１３４】
１０：書き換えシステム
１１：書き込み装置
１２：通信バス
１００，１０１，１０２：電子制御装置
１１０，２１０：マイコン
１２０，２２０：外部通信部
１４０，１４１，１４２，２４０，２４１，２４２：ＲＯＭ
１３０，２３０：ＲＡＭ
ＡＤ１：書き換え領域
【図１】
0006387894.tif 000002
【図２】
0006387894.tif 000003
【図３】
0006387894.tif 000004
【図４】
0006387894.tif 000005
【図５】
0006387894.tif 000006
【図６】
0006387894.tif 000007
【図７】
0006387894.tif 000008
【図８】
0006387894.tif 000009
【図９】
0006387894.tif 000010
【図１０】
0006387894.tif 000011
【図１１】
0006387894.tif 000012