(57)【要約】【課題】ハードウェア構成とソフトウェア構成が全く同じ複数の電子制御装置が接続された場合に、複数の電子制御装置で互いに異なる識別番号を設定する【解決手段】プログラム書換装置１５は、まず、ＥＣＵ１１，１２のうち、ＥＣＵ１１へ電源を供給する一方、ＥＣＵ１２への電源の供給を禁止するように電源回路１６を制御し、割付要求メッセージを送信する。その後、応答メッセージを受信すると、割付メッセージを送信する。次にプログラム書換装置１５は、ＥＣＵ１２へ電源を供給するように電源回路１６を制御し、割付要求メッセージを送信する。その後、応答メッセージを受信すると、割付メッセージを送信する。ＥＣＵ１１，１２は、割付要求メッセージを受信すると、応答メッセージを送信し、その後、割付メッセージを受信すると、割付メッセージで指示するＣＡＮＩＤを、自装置の送信用ＣＡＮＩＤに設定する。【選択図】図１
2015179375.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御対象を制御するための制御プログラムを記憶して記憶内容の書き換えが可能な不揮発性メモリ（３２）を備え、予め設定された書換条件が成立した場合に、前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換えるように構成された第１電子制御装置（１１）および第２電子制御装置（１２）と、
前記第１電子制御装置および前記第２電子制御装置と通信線（１７）を介してデータ通信可能に接続され、前記制御プログラムの内容を書き換えるための書換データを前記通信線を介して前記第１電子制御装置および前記第２電子制御装置へ送信するプログラム書換装置（１５）と、
前記第１電子制御装置および前記第２電子制御装置に電源を供給する電源供給部（１６）とを備え、
前記プログラム書換装置は、
前記第１電子制御装置および前記第２電子制御装置のうち、前記第１電子制御装置へ電源を供給する一方、前記第２電子制御装置への電源の供給を禁止するように前記電源供給部を制御する第１電源制御手段（Ｓ３１０，Ｓ３２０）と、
前記電源供給部により前記第１電子制御装置へ電源が供給されている場合に、応答要求メッセージを前記通信線を介して送信する第１要求送信手段（Ｓ３３０）と、
前記第１要求送信手段が前記応答要求メッセージを送信した後に、前記応答要求メッセージに対して応答する応答メッセージを前記通信線を介して受信すると、第１識別情報を送信する第１識別情報送信手段（Ｓ３５０）と、
前記第１識別情報送信手段が前記第１識別情報を送信した後に、前記第２電子制御装置への電源の供給の禁止を解除して、前記第２電子制御装置へ電源を供給するように前記電源供給部を制御する第２電源制御手段（Ｓ３２０，Ｓ３６０）と、
前記電源供給部により前記第２電子制御装置へ電源が供給されている場合に、前記応答要求メッセージを前記通信線を介して送信する第２要求送信手段（Ｓ３３０）と、
前記第２要求送信手段が前記応答要求メッセージを送信した後に、前記応答メッセージを前記通信線を介して受信すると、前記第１識別情報とは異なる第２識別情報を送信する第２識別情報送信手段（Ｓ３５０，Ｓ３６０）とを備え、
前記第１電子制御装置および前記第２電子制御装置は、
前記応答要求メッセージを前記通信線を介して受信すると、前記応答メッセージを前記通信線を介して送信する第１応答送信手段（Ｓ５４０）と、
前記第１応答送信手段が前記応答メッセージを送信した後に、前記第１識別情報または前記第２識別情報を受信すると、受信した前記第１識別情報または前記第２識別情報を、自装置の識別情報に設定する第１設定手段（Ｓ５６０）とを備える
ことを特徴とするプログラム書換システム（１）。
【請求項２】
記憶内容の書き換えが可能であり、所定の制御対象を制御するための制御プログラムを記憶する不揮発性メモリ（３２）と、
前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換えるための書換データを通信線を介して送信するプログラム書換装置から応答要求メッセージを前記通信線を介して受信すると、応答メッセージを前記通信線を介して送信する第２応答送信手段（Ｓ５４０）と、
前記第２応答送信手段が前記応答メッセージを送信した後に、前記プログラム書換装置から識別情報を受信すると、受信した前記識別情報を、自装置の識別情報に設定する第２設定手段（Ｓ５６０）と、
前記書換データを前記通信線を介して前記プログラム書換装置から受信する受信手段（３３）と、
前記受信手段により受信した前記書換データを前記不揮発性メモリに書き込むことにより、前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換える書換手段（
Ｓ５８０）とを備える
ことを特徴とする電子制御装置（１１，１２，１３，１４）。
【請求項３】
前記応答要求メッセージを受信する前に、前記制御プログラムの書き換えを要求する書換要求メッセージを前記プログラム書換装置から前記通信線を介して受信すると、前記書換手段による書き換えを開始する
ことを特徴とする請求項２に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の制御対象の制御に用いる制御プログラムを書き換え可能なプログラム書換システムおよび電子制御装置に関する。
【背景技術】
【０００２】
記憶内容の書き換えが可能な不揮発性メモリを備え、この不揮発性メモリに記憶された制御プログラムを書き換え可能に構成された電子制御装置が知られている。
複数の電子制御装置の制御プログラムの書き換える場合には、複数の電子制御装置とプログラム書換装置とをデータ通信可能に接続し、複数の電子制御装置で同時に制御プログラムの書き換えを実行させることが、制御プログラムの書き換えに要する時間を短縮するために有効である。しかし、複数の電子制御装置で同時に制御プログラムの書き換えを実行するには、複数の電子制御装置のそれぞれに対して、互いに異なる識別番号を設定する必要がある。
【０００３】
そして従来、複数の通信装置が通信線を介して接続されたシステムにおいて、スレーブ装置が、自装置で発生させた乱数を含むメッセージを送信し、このメッセージを受信したマスタ装置が、乱数と識別番号とを対応付けたメッセージをスレーブ装置へ送信することで、スレーブ装置に対して識別番号を設定する技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７３２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１に記載の技術では、ハードウェア構成とソフトウェア構成が全く同じ複数の電子制御装置を接続した場合に、複数の電子制御装置で互いに同じ乱数を発生させてしまうおそれがある。このため、複数の電子制御装置で互いに異なる識別番号を設定することができない事態の発生が懸念される。
【０００６】
本発明は、こうした問題に鑑みてなされたものであり、ハードウェア構成とソフトウェア構成が全く同じ複数の電子制御装置が接続された場合に、複数の電子制御装置で互いに異なる識別番号を設定する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた第１発明のプログラム書換システムは、第１電子制御装置および第２電子制御装置と、プログラム書換装置と、電源供給部とを備える。
第１電子制御装置および第２電子制御装置は、所定の制御対象を制御するための制御プログラムを記憶して記憶内容の書き換えが可能な不揮発性メモリを備え、予め設定された書換条件が成立した場合に、不揮発性メモリに記憶された制御プログラムの内容を書き換えるように構成される。
【０００８】
プログラム書換装置は、第１電子制御装置および第２電子制御装置と通信線を介してデータ通信可能に接続され、制御プログラムの内容を書き換えるための書換データを通信線を介して第１電子制御装置および第２電子制御装置へ送信する。
【０００９】
電源供給部は、第１電子制御装置および第２電子制御装置に電源を供給する。
そしてプログラム書換装置は、第１電源制御手段と、第１要求送信手段と、第１識別情報送信手段と、第２電源制御手段と、第２要求送信手段と、第２識別情報送信手段とを備える。
【００１０】
第１電源制御手段は、第１電子制御装置および第２電子制御装置のうち、第１電子制御装置へ電源を供給する一方、第２電子制御装置への電源の供給を禁止するように電源供給部を制御する。
【００１１】
第１要求送信手段は、電源供給部により第１電子制御装置へ電源が供給されている場合に、応答要求メッセージを通信線を介して送信する。
第１識別情報送信手段は、第１要求送信手段が応答要求メッセージを送信した後に、応答要求メッセージに対して応答する応答メッセージを通信線を介して受信すると、第１識別情報を送信する。
【００１２】
第２電源制御手段は、第１識別情報送信手段が第１識別情報を送信した後に、第２電子制御装置への電源の供給の禁止を解除して、第２電子制御装置へ電源を供給するように電源供給部を制御する。
【００１３】
第２要求送信手段は、電源供給部により第２電子制御装置へ電源が供給されている場合に、応答要求メッセージを通信線を介して送信する。
第２識別情報送信手段は、第２要求送信手段が応答要求メッセージを送信した後に、応答メッセージを通信線を介して受信すると、第１識別情報とは異なる第２識別情報を送信する。
【００１４】
また、第１電子制御装置および第２電子制御装置は、第１応答送信手段と、第１設定手段とを備える。
第１応答送信手段は、応答要求メッセージを通信線を介して受信すると、応答メッセージを通信線を介して送信する。
【００１５】
第１設定手段は、第１応答送信手段が応答メッセージを送信した後に、第１識別情報または第２識別情報を受信すると、受信した第１識別情報または第２識別情報を、自装置の識別情報に設定する。
【００１６】
このように構成されたプログラム書換システムでは、まず、第１電子制御装置へ電源が供給される一方、第２電子制御装置へ電源が供給されない。このため、プログラム書換装置と第１電子制御装置との間で、応答要求メッセージ、応答メッセージおよび第１識別情報の送受信を行うことで、第１電子制御装置に第１識別情報を設定することができる。
【００１７】
その後、第２電子制御装置へ電源が供給される。このため、プログラム書換装置と第２電子制御装置との間で、応答要求メッセージ、応答メッセージおよび第２識別情報の送受信を行うことで、第２電子制御装置に、第１識別情報とは異なる第２識別情報を設定することができる。
【００１８】
このように、本発明のプログラム書換システムでは、乱数を発生させることなく、第１電子制御装置および第２電子制御装置がそれぞれ第１識別情報および第２識別情報を設定することができる。このため、本発明のプログラム書換システムによれば、ハードウェア構成とソフトウェア構成が全く同じ複数の電子制御装置が接続された場合に、複数の電子制御装置で互いに異なる識別番号を設定することができる。
【００１９】
また、上記目的を達成するためになされた第２発明の電子制御装置は、不揮発性メモリと、第２応答送信手段と、第２設定手段と、受信手段と、書換手段とを備える。
不揮発性メモリは、記憶内容の書き換えが可能であり、所定の制御対象を制御するための制御プログラムを記憶する。
【００２０】
第２応答送信手段は、揮発性メモリに記憶された制御プログラムの内容を書き換えるための書換データを通信線を介して送信するプログラム書換装置から応答要求メッセージを通信線を介して受信すると、応答メッセージを通信線を介して送信する。
【００２１】
第２設定手段は、第２応答送信手段が応答メッセージを送信した後に、プログラム書換装置から識別情報を受信すると、受信した識別情報を、自装置の識別情報に設定する。
受信手段は、書換データを通信線を介してプログラム書換装置から受信する。
【００２２】
書換手段は、受信手段により受信した書換データを不揮発性メモリに書き込むことにより、不揮発性メモリに記憶された制御プログラムの内容を書き換える。
このように構成された電子制御装置は、第１発明のプログラム書換システムで使用される電子制御装置であり、第１発明と同様の効果を得ることができる。
【図面の簡単な説明】
【００２３】
【図１】通信システム１の構成を示すブロック図である。
【図２】プログラム送信処理を示すフローチャートである。
【図３】単体書換用送信処理を示すフローチャートである。
【図４】同構成書換用ＩＤ割付処理を示すフローチャートである。
【図５】複数書換用送信処理を示すフローチャートである。
【図６】書換処理を示すフローチャートである。
【図７】単体書換用送信処理の手順を示すシーケンス図である。
【図８】複数書換用送信処理の手順を示すシーケンス図である。
【図９】同構成書換用ＩＤ割付処理の手順を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下に本発明の実施形態を図面とともに説明する。
本実施形態の通信システム１は、図１に示すように、電子制御装置（Electronic Control Unit）１１，１２，１３，１４（以下、ＥＣＵ１１，１２，１３，１４という）と、プログラムの書き換えを行うためのプログラム書換装置１５と、電源回路１６とを備える。
【００２５】
ＥＣＵ１１，１２，１３，１４とプログラム書換装置１５は、通信線１７を介して互いにデータ通信可能に接続される。また通信線１７には、ＥＣＵ１１，１２，１３，１４をそれぞれ通信線１７に対して着脱可能とするためのコネクタ２１，２２，２３，２４が設けられている。さらに通信線１７には、プログラム書換装置１５を通信線１７に対して着脱可能とするためのコネクタ２５が設けられている。
【００２６】
ＥＣＵ１１，１２，１３，１４は、マイクロコンピュータ（以下、マイコンという）３１と、フラッシュＲＯＭ３２と、通信回路３３とを備える。
フラッシュＲＯＭ３２は、記憶内容を書き換え可能な不揮発性メモリであり、マイコン３１が実行する制御プログラムを記憶する。
【００２７】
通信回路３３はそれぞれ、例えばＣＡＮ（Controller  Area  Network）通信プロトコルに従い、他のＥＣＵとの間で通信線１７を介してデータの送受信を行う。また通信回路３３は、プログラム書換装置１５がコネクタ２５を介して通信線１７に接続された場合に
、プログラム書換装置１５との間でデータの送受信を行う。
【００２８】
マイコン３１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ及びこれらの構成を接続するバスラインなどから構成されている。そしてマイコン３１は、フラッシュＲＯＭ３２に記憶された制御プログラムに基づいて、各種処理を実行する。
【００２９】
プログラム書換装置１５は、マイコン４１と、操作部４２と、通信回路４３と、入出力回路４４とを備える。
マイコン４１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ及びこれらの構成を接続するバスラインなどから構成されている。そしてマイコン４１は、ＥＣＵ１１，１２，１３，１４に記憶されている制御プログラムを書き換えるための処理を行う。
【００３０】
操作部４２は、プログラム書換装置１５の使用者（通常は、制御プログラムを書き換える作業者）からの外部操作による指令を入力するためのものである。
そして操作部４２は、１台のＥＣＵの制御プログラムの書き換えを指示するために予め設定された単体書換操作が操作部４２に対して行われると、その旨を示す単体書換信号を出力する。
【００３１】
また操作部４２は、ハードウェア構成とソフトウェア構成が互いに異なる複数台のＥＣＵの制御プログラムの書き換えを指示するために予め設定された異構成書換操作が操作部４２に対して行われると、その旨を示す異構成書換信号を出力する。
【００３２】
また操作部４２は、ハードウェア構成とソフトウェア構成が互いに同じ複数台のＥＣＵの制御プログラムの書き換えを指示するために予め設定された同構成書換操作が操作部４２に対して行われると、その旨を示す同構成書換信号を出力する。なお、同構成書換操作では、制御プログラムの書き換えを行うＥＣＵの台数を指示する操作を行う必要がある。そして、同構成書換信号には、ＥＣＵの台数を示す書換台数情報が含まれる。
【００３３】
通信回路４３はそれぞれ、コネクタ２５を介して通信線１７に接続された場合に、ＥＣＵ１１，１２，１３，１４との間でデータの送受信を行う。
入出力回路４４は、ＥＣＵ１１，１２，１３，１４の外部とマイコン４１の間で信号の入出力を行わせるための回路である。
【００３４】
またプログラム書換装置１５は、ＥＣＵ１１，１２，１３，１４へ送信する新たな制御プログラム（以下、新制御プログラムともいう）が記憶された記憶媒体４５を着脱可能に接続するコネクタ（不図示）を備えている。そしてプログラム書換装置１５は、記憶媒体４５がコネクタを介して接続されている場合に、マイコン４１と記憶媒体４５との間でデータの入出力が可能に構成されている。
【００３５】
電源回路１６は、ＥＣＵ１１，１２，１３，１４へ電源を供給するための回路である。電源回路１６は、ＥＣＵ１１，１２，１３，１４のそれぞれへ電源を供給するための電源供給線５１，５２，５３，５４を備える。そして電源回路１６は、プログラム書換装置１５からの指令に基づき、電源供給線５１，５２，５３，５４のそれぞれについて、電源供給を行うか否かを決定する。以下、電源供給線５１，５２，５３，５４をそれぞれ第１，２，３，４電源供給線ともいう。
【００３６】
次に、プログラム書換装置１５が実行するプログラム送信処理の手順を説明する。プログラム送信処理は、プログラム書換装置１５の動作中に繰り返し実行される処理である。
このプログラム送信処理が実行されると、マイコン４１は、図２に示すように、まずＳ１０にて、操作部４２から単体書換信号が入力したか否かを判断する。ここで、単体書換
信号が入力した場合には（Ｓ１０：ＹＥＳ）、Ｓ２０にて、電源供給線５１，５２，５３，５４を介した電源供給を指示する全電源供給指令を入出力回路４４から電源回路１６へ出力する。そして電源回路１６は、全電源供給指令が入力すると、電源供給線５１，５２，５３，５４を介した電源供給を開始する。なお、操作部４２から単体書換信号が入力する状況下では、制御プログラムを書き換える作業者が、あらかじめ、ＥＣＵ１１，１２，１３，１４のうち１台のみを通信線１７に接続している。その後Ｓ３０にて、単体書換用送信処理（後述）を実行し、単体書換用送信処理が終了すると、プログラム送信処理を一旦終了する。
【００３７】
またＳ１０にて、単体書換信号が入力していない場合には（Ｓ１０：ＮＯ）、Ｓ４０にて、操作部４２から異構成書換信号が入力したか否かを判断する。ここで、異構成書換信号が入力した場合には（Ｓ４０：ＹＥＳ）、Ｓ５０にて、全電源供給指令を入出力回路４４から電源回路１６へ出力する。そして、電源回路１６は、全電源供給指令が入力すると、電源供給線５１，５２，５３，５４を介した電源供給を開始する。なお、操作部４２から異構成書換信号が入力する状況下では、制御プログラムを書き換える作業者が、あらかじめ、ＥＣＵ１１，１２，１３，１４のうち２台以上を通信線１７に接続している。
【００３８】
その後Ｓ６０にて、異構成書換要求メッセージを通信回路４３から送信する。そしてＳ７０にて、異構成書換用ＩＤ割付処理を実行する。
この異構成書換用ＩＤ割付処理は、この処理の実行開始から予め設定された割付実行時間が経過した後に終了する処理であり、乱数を含むＣＡＮＩＤ要求メッセージをＥＣＵ１１，１２，１３，１４から受信すると、ＣＡＮＩＤ通知メッセージを通信回路４３から送信する。ＣＡＮＩＤ通知メッセージには、受信したＣＡＮＩＤ要求メッセージから抽出した乱数と、プログラム書換装置１５が割り当てたＣＡＮＩＤが含まれる。なお、この異構成書換用ＩＤ割付処理は、特許文献１に記載されている処理と基本的に同じであるため、詳細な説明は省略する。そして、異構成書換用ＩＤ割付処理が終了すると、Ｓ１００に移行する。
【００３９】
またＳ４０にて、異構成書換信号が入力していない場合には（Ｓ４０：ＮＯ）、Ｓ８０にて、操作部４２から同構成書換信号が入力したか否かを判断する。ここで、同構成書換信号が入力した場合には（Ｓ８０：ＹＥＳ）、Ｓ９０にて、同構成書換用送信処理（後述）を実行し、同構成書換用送信処理が終了すると、Ｓ１００に移行する。一方、同構成書換信号が入力していない場合には（Ｓ８０：ＮＯ）、プログラム送信処理を一旦終了する。
【００４０】
そしてＳ１００に移行すると、複数書換用送信処理（後述）を実行し、複数書換用送信処理が終了すると、プログラム送信処理を一旦終了する。
次に、Ｓ３０で実行する単体書換用送信処理の手順を説明する。
【００４１】
この単体書換用送信処理が実行されると、マイコン４１は、図３に示すように、まずＳ２１０にて、新制御プログラムの書き換えを要求する書換要求メッセージを通信回路４３から送信する（図７の書換要求メッセージＤ０１を参照）。そしてＳ２２０にて、書換応答メッセージ（図７の書換応答メッセージＤ０２を参照）を受信したか否かを判断する。ここで、書換応答メッセージを受信していない場合には（Ｓ２２０：ＮＯ）、Ｓ２２０の処理を繰り返すことにより、書換応答メッセージを受信するまで待機する。そして、書換応答メッセージを受信すると（Ｓ２２０：ＹＥＳ）、Ｓ２３０にて、新制御プログラムから、未送信のデータを、予め設定された送信データ量分（フラッシュＲＯＭへの書き込み単位の倍数）抽出する。
【００４２】
そしてＳ２４０にて、Ｓ２３０で抽出したデータを書込データとして送信し（図７の書
込データＤ０３を参照）、Ｓ２５０にて、新制御プログラムの全データを送信したか否かを判断する。ここで、全データを送信していない場合には（Ｓ２５０：ＮＯ）、Ｓ２６０にて、書込完了メッセージ（図７の書込完了メッセージＤ０４を参照）を受信したか否かを判断する。
【００４３】
ここで、書込完了メッセージを受信していない場合には（Ｓ２６０：ＮＯ）、Ｓ２６０の処理を繰り返すことにより、書込完了メッセージを受信するまで待機する。そして、書込完了メッセージを受信すると（Ｓ２６０：ＹＥＳ）、Ｓ２３０に移行する。
【００４４】
またＳ２５０にて、新制御プログラムの全データを送信した場合には（Ｓ２５０：ＹＥＳ）、単体書換用送信処理を終了する。
次に、Ｓ９０で実行する同構成書換用ＩＤ割付処理の手順を説明する。
【００４５】
この同構成書換用ＩＤ割付処理が実行されると、マイコン４１は、図４に示すように、まずＳ３１０にて、装置指示値ｎを１に設定する。次にＳ３２０にて、第ｎ電源供給線を介した電源供給を指示する第ｎ電源供給指令を入出力回路４４から電源回路１６へ出力する。そして電源回路１６は、第ｎ電源供給指令が入力すると、第ｎ電源供給線を介した電源供給を開始する。
【００４６】
さらにＳ３３０にて、ＣＡＮ通信のアイデンティファイア（以下、ＣＡＮＩＤという）を割り付けるための応答を要求するＣＡＮＩＤ割付要求メッセージを通信回路４３から送信する。なお本実施形態において、ＣＡＮＩＤ割付要求メッセージを構成するＣＡＮフレームのアービトレーションフィールドには、ＣＡＮＩＤとして「０ｘ７Ｅ０」が設定されている。
【００４７】
そしてＳ３４０にて、ＣＡＮＩＤ割付要求メッセージに対する応答メッセージを通信回路４３で受信したか否かを判断する。なお本実施形態において、応答メッセージを構成するＣＡＮフレームのアービトレーションフィールドには、ＣＡＮＩＤとして「０ｘ７Ｅ８」が設定されている。
【００４８】
ここで、応答メッセージを受信していない場合には（Ｓ３４０：ＮＯ）、Ｓ３４０の処理を繰り返すことにより、応答メッセージを受信するまで待機する。そして、応答メッセージを受信すると（Ｓ３４０：ＹＥＳ）、Ｓ３５０にて、ＣＡＮＩＤを「０ｘ００ｎ」に割り付ける旨を指示するＣＡＮＩＤ割付メッセージを通信回路４３から送信する。なお本実施形態において、ＣＡＮＩＤ割付メッセージを構成するＣＡＮフレームのアービトレーションフィールドには、ＣＡＮＩＤとして「０ｘ７Ｅ０」が設定されている。
【００４９】
その後Ｓ３６０にて、装置指示値ｎをインクリメント（１加算）する。そしてＳ３７０にて、装置指示値ｎが書換台数を超えているか否かを判断する。この書換台数は、上記同構成書換信号に含まれている書換台数情報が示す値である。ここで、装置指示値ｎが書換台数以下である場合には（Ｓ３７０：ＮＯ）、Ｓ３２０に移行して、上述の処理を繰り返す。
【００５０】
一方、装置指示値ｎが書換台数を超えている場合には（Ｓ３７０：ＹＥＳ）、同構成書換用ＩＤ割付処理を終了する。
次に、Ｓ１００で実行する複数書換用送信処理の手順を説明する。
【００５１】
この複数書換用送信処理が実行されると、マイコン４１は、図５に示すように、まずＳ４１０にて、新制御プログラムの書き換えを要求する書換要求メッセージを通信回路４３から送信する（図８の書換要求メッセージＤ１１，Ｄ１２を参照）。そしてＳ４２０にて
、制御プログラムの書換対象となるＥＣＵの全てから書換応答メッセージ（図８の書換応答メッセージＤ１３，Ｄ１４を参照）を受信したか否かを判断する。ここで、書換対象となるＥＣＵの全てから書換応答メッセージを受信していない場合には（Ｓ４２０：ＮＯ）、Ｓ４２０の処理を繰り返すことにより、書換対象となるＥＣＵの全てから書換応答メッセージを受信するまで待機する。そして、書換対象となるＥＣＵの全てから書換応答メッセージを受信すると（Ｓ４２０：ＹＥＳ）、Ｓ４３０にて、新制御プログラムから、未送信のデータを、予め設定された送信データ量分（フラッシュＲＯＭへの書き込み単位の倍数）抽出する。
【００５２】
そしてＳ４４０にて、Ｓ４３０で抽出したデータを書込データとして送信し（図８の書込データＤ１５，Ｄ１６を参照）、Ｓ４５０にて、新制御プログラムの全データを送信したか否かを判断する。ここで、全データを送信していない場合には（Ｓ４５０：ＮＯ）、Ｓ４６０にて、書換対象となるＥＣＵの全てから書込完了メッセージ（図８の書込完了メッセージＤ１７，Ｄ１８を参照）を受信したか否かを判断する。
【００５３】
ここで、書換対象となるＥＣＵの全てから書込完了メッセージを受信していない場合には（Ｓ４６０：ＮＯ）、Ｓ４６０の処理を繰り返すことにより、書換対象となるＥＣＵの全てから書込完了メッセージを受信するまで待機する。そして、書換対象となるＥＣＵの全てから書込完了メッセージを受信すると（Ｓ４６０：ＹＥＳ）、Ｓ４３０に移行する。
【００５４】
またＳ４５０にて、新制御プログラムの全データを送信した場合には（Ｓ４５０：ＹＥＳ）、複数書換用送信処理を終了する。
次に、ＥＣＵ１１，１２，１３，１４が実行する書換処理の手順を説明する。書換処理は、ＥＣＵ１１〜１４の動作中に繰り返し実行される処理である。
【００５５】
この書換処理が実行されると、マイコン３１は、図６に示すように、まずＳ５１０にて、書換要求メッセージを受信したか否かを判断する。ここで、書換要求メッセージを受信した場合には（Ｓ５１０：ＹＥＳ）、単体書換であると判断し、Ｓ５２０にて、単体書換用データ書込処理を行う。単体書換用データ書込処理では、まず、Ｓ５１０で受信した書換要求メッセージに対する書換応答メッセージを通信回路３３から送信する（図７の書換応答メッセージＤ０２を参照）。その後、プログラム書換装置１５から順次送信される上記送信データ量分（Ｓ２３０を参照）の書込データを受信する毎に、受信した書込データをフラッシュＲＯＭ３２に書き込む。そして、上記送信データ量分の書込データの書き込みが完了する毎に書込完了メッセージを通信回路３３から送信する（図７の書込完了メッセージＤ０４を参照）。そして、新制御プログラムの全データの書き込みが完了すると、単体書換用データ書込処理を終了する。そして、単体書換用データ書込処理が終了すると、書換処理を一旦終了する。
【００５６】
またＳ５１０にて、書換要求メッセージを受信していない場合には（Ｓ５１０：ＮＯ）、Ｓ５３０にて、ＣＡＮＩＤ割付要求メッセージを受信したか否かを判断する。ここで、ＣＡＮＩＤ割付要求メッセージを受信した場合には（Ｓ５３０：ＹＥＳ）、Ｓ５４０にて、応答メッセージを通信回路３３から送信する。
【００５７】
さらにＳ５５０にて、ＣＡＮＩＤ割付メッセージを受信したか否かを判断する。ここで、ＣＡＮＩＤ割付メッセージを受信していない場合には（Ｓ５５０：ＮＯ）、Ｓ５５０の処理を繰り返すことにより、ＣＡＮＩＤ割付メッセージを受信するまで待機する。そして、ＣＡＮＩＤ割付メッセージを受信すると（Ｓ５５０：ＹＥＳ）、Ｓ５６０にて、ＣＡＮＩＤ割付メッセージが指示するＣＡＮＩＤを、自装置の送信用ＣＡＮＩＤに設定する。
【００５８】
そしてＳ５７０にて、これ以降に受信したＣＡＮＩＤ割付メッセージが指示するＣＡＮ
ＩＤへの再設定を禁止する。これにより、Ｓ５６０で設定された送信用ＣＡＮＩＤは、ＥＣＵの電源がオフされるまで保持される。
【００５９】
その後Ｓ５８０にて、複数書換用データ書込処理を行う。複数書換用データ書込処理では、まず、プログラム書換装置１５から書換要求メッセージを受信するまで待機し、書換要求メッセージを受信すると、書換応答メッセージを通信回路３３から送信する（図８の書換応答メッセージＤ１３，Ｄ１４を参照）。その後、プログラム書換装置１５から順次送信される上記送信データ量分の書込データを受信する毎に、受信した書込データをフラッシュＲＯＭ３２に書き込む。そして、上記送信データ量分の書込データの書き込みが完了する毎に書込完了メッセージを通信回路３３から送信する（図８の書込完了メッセージＤ１７，Ｄ１８を参照）。そして、新制御プログラムの全データの書き込みが完了すると、複数書換用データ書込処理を終了する。そして、複数書換用データ書込処理が終了すると、書換処理を一旦終了する。
【００６０】
またＳ５３０にて、ＣＡＮＩＤ割付要求メッセージを受信していない場合には（Ｓ５３０：ＮＯ）、Ｓ５９０にて、異構成書換要求メッセージを受信したか否かを判断する。ここで、異構成書換要求メッセージを受信していない場合には（Ｓ５９０：ＮＯ）、書換処理を一旦終了する。一方、異構成書換要求メッセージを受信した場合には（Ｓ５９０：ＹＥＳ）、Ｓ６００にて、ＩＤ設定処理を行う。このＩＤ設定処理では、まず、自装置で発生させた乱数を含むＣＡＮＩＤ要求メッセージをプログラム書換装置１５へ送信する。そして、プログラム書換装置１５から、ＣＡＮＩＤ通知メッセージを受信すると、ＣＡＮＩＤ通知メッセージから抽出した乱数と、自装置で発生させた乱数とが一致するか否かを判断し、一致する場合に、ＣＡＮＩＤ通知メッセージが指示するＣＡＮＩＤを、自装置の送信用ＣＡＮＩＤに設定する。なお、このＩＤ設定処理は、特許文献１に記載されている処理と基本的に同じであるため、詳細な説明は省略する。
【００６１】
そしてＳ６００の処理が終了すると、Ｓ６１０にて、Ｓ５８０と同様にして、複数書換用データ書込処理を行い、複数書換用データ書込処理が終了すると、書換処理を一旦終了する。
【００６２】
次に、ハードウェア構成とソフトウェア構成が互いに同じ複数台のＥＣＵの制御プログラムを書き換える場合の具体例を説明する。
図９に示すように、ＥＣＵ１１，１２，１３，１４とプログラム書換装置１５が通信線１７に接続されているとする。なお、ＥＣＵ１１，１２，１３，１４は、受信用ＣＡＮＩＤの初期値として「０ｘ７Ｅ０」が設定され、送信用ＣＡＮＩＤの初期値として「０ｘ７Ｅ８」が設定されている。
【００６３】
まず、プログラム書換装置１５の操作部４２に対して同構成書換操作が行われると、プログラム書換装置１５が第１電源供給指令を出力し、電源回路１６が、電源供給線５１（第１電源供給線）を介してＥＣＵ１１への電源供給を開始する。これにより、ＥＣＵ１１が起動する。
【００６４】
その後、プログラム書換装置１５が、ＣＡＮＩＤとして「０ｘ７Ｅ０」が設定されているＣＡＮＩＤ割付要求メッセージを送信する。これにより、ＥＣＵ１１が、このＣＡＮＩＤ割付要求メッセージを受信する（矢印Ｌ１１を参照）。
【００６５】
そして、ＣＡＮＩＤ割付要求メッセージを受信したＥＣＵ１１は、ＣＡＮＩＤとして「０ｘ７Ｅ８」が設定されている応答メッセージを送信する。これにより、プログラム書換装置１５が、この応答メッセージを受信する（矢印Ｌ１２を参照）。
【００６６】
さらに、応答メッセージを受信したプログラム書換装置１５は、ＣＡＮＩＤを「０ｘ００１」に割り付ける旨を指示するＣＡＮＩＤ割付メッセージを送信する。なお、ＣＡＮＩＤ割付メッセージには、ＣＡＮＩＤとして「０ｘ７Ｅ０」が設定されている。これにより、ＥＣＵ１１が、このＣＡＮＩＤ割付メッセージを受信する（矢印Ｌ１３を参照）。
【００６７】
そして、ＣＡＮＩＤ割付メッセージを受信したＥＣＵ１１は、ＣＡＮＩＤ割付メッセージに基づいて、送信用ＣＡＮＩＤを「０ｘ００１」に設定する（矢印Ｌ１４とＥＣＵ１１ａを参照）。
【００６８】
次に、プログラム書換装置１５が第２電源供給指令を出力し、電源回路１６が、電源供給線５２（第２電源供給線）を介してＥＣＵ１２への電源供給を開始する。これにより、ＥＣＵ１２が起動する。
【００６９】
その後、プログラム書換装置１５が、ＣＡＮＩＤとして「０ｘ７Ｅ０」が設定されているＣＡＮＩＤ割付要求メッセージを送信する。これにより、ＥＣＵ１２が、このＣＡＮＩＤ割付要求メッセージを受信する（矢印Ｌ２１を参照）。
【００７０】
そして、ＣＡＮＩＤ割付要求メッセージを受信したＥＣＵ１２は、ＣＡＮＩＤとして「０ｘ７Ｅ８」が設定されている応答メッセージを送信する。これにより、プログラム書換装置１５が、この応答メッセージを受信する（矢印Ｌ２２を参照）。
【００７１】
さらに、応答メッセージを受信したプログラム書換装置１５は、ＣＡＮＩＤを「０ｘ００２」に割り付ける旨を指示するＣＡＮＩＤ割付メッセージを送信する。なお、ＣＡＮＩＤ割付メッセージには、ＣＡＮＩＤとして「０ｘ７Ｅ０」が設定されている。これにより、ＥＣＵ１２が、このＣＡＮＩＤ割付メッセージを受信する（矢印Ｌ２３を参照）。
【００７２】
そして、ＣＡＮＩＤ割付メッセージを受信したＥＣＵ１２は、ＣＡＮＩＤ割付メッセージに基づいて、送信用ＣＡＮＩＤを「０ｘ００２」に設定する（矢印Ｌ２４とＥＣＵ１２ａを参照）。
【００７３】
次に、ＥＣＵ１３が、ＥＣＵ１１，１２と同様のメッセージ交換をプログラム書換装置１５との間で行い、送信用ＣＡＮＩＤを「０ｘ００３」に設定する（矢印Ｌ３４とＥＣＵ１３ａを参照）。
【００７４】
その後にＥＣＵ１４が、ＥＣＵ１１，１２と同様のメッセージ交換をプログラム書換装置１５との間で行い、送信用ＣＡＮＩＤを「０ｘ００４」に設定する（矢印Ｌ４４とＥＣＵ１４ａを参照）。
【００７５】
このように構成された通信システム１は、ＥＣＵ１１，１２と、プログラム書換装置１５と、電源回路１６とを備える。
ＥＣＵ１１，１２は、制御プログラムを記憶して記憶内容の書き換えが可能なフラッシュＲＯＭ３２を備え、書換要求メッセージを受信すると、フラッシュＲＯＭ３２に記憶された制御プログラムの内容を書き換えるように構成される。
【００７６】
プログラム書換装置１５は、ＥＣＵ１１，１２と通信線１７を介してデータ通信可能に接続され、制御プログラムの内容を書き換えるための書込データを通信線１７を介してＥＣＵ１１，１２へ送信する。
【００７７】
電源回路１６は、ＥＣＵ１１，１２に電源を供給する。
プログラム書換装置１５は、まず、ＥＣＵ１１，１２のうち、ＥＣＵ１１へ電源を供給
する一方、ＥＣＵ１２への電源の供給を禁止するように電源回路１６を制御する（Ｓ３１０，Ｓ３２０）。そしてプログラム書換装置１５は、電源回路１６によりＥＣＵ１１へ電源が供給されている場合に、ＣＡＮＩＤ割付要求メッセージを通信線１７を介して送信する（Ｓ３３０）。
【００７８】
プログラム書換装置１５は、ＣＡＮＩＤ割付要求メッセージを送信した後に、応答メッセージを通信線１７を介して受信すると、ＣＡＮＩＤを「０ｘ００１」に割り付ける旨を指示するＣＡＮＩＤ割付メッセージを送信する（Ｓ３１０，Ｓ３５０）。
【００７９】
次にプログラム書換装置１５は、ＣＡＮＩＤ割付メッセージを送信した後に、ＥＣＵ１２への電源の供給の禁止を解除して、ＥＣＵ１２へ電源を供給するように電源回路１６を制御する（Ｓ３２０，Ｓ３６０）。
【００８０】
そしてプログラム書換装置１５は、電源回路１６によりＥＣＵ１２へ電源が供給されている場合に、ＣＡＮＩＤ割付要求メッセージを通信線１７を介して送信する（Ｓ３３０）。
【００８１】
プログラム書換装置１５は、ＣＡＮＩＤ割付要求メッセージを送信した後に、応答メッセージを通信線１７を介して受信すると、ＣＡＮＩＤを「０ｘ００２」に割り付ける旨を指示するＣＡＮＩＤ割付メッセージを送信する（Ｓ３５０，Ｓ３６０）。
【００８２】
ＥＣＵ１１，１２は、ＣＡＮＩＤ割付要求メッセージを通信線１７を介して受信すると、応答メッセージを通信線１７を介して送信する（Ｓ５４０）。またＥＣＵ１１，１２は、応答メッセージを送信した後に、ＣＡＮＩＤ割付メッセージを受信すると、ＣＡＮＩＤ割付メッセージで指示するＣＡＮＩＤを、自装置の送信用ＣＡＮＩＤに設定する（Ｓ５６０）。
【００８３】
このように構成された通信システム１では、まず、ＥＣＵ１１へ電源が供給される一方、ＥＣＵ１２へ電源が供給されない。このため、プログラム書換装置１５とＥＣＵ１１との間で、ＣＡＮＩＤ割付要求メッセージ、応答メッセージおよびＣＡＮＩＤ割付メッセージの送受信を行うことで、「０ｘ００１」をＥＣＵ１１の送信用ＣＡＮＩＤとして設定することができる。
【００８４】
その後、ＥＣＵ１２へ電源が供給される。このため、プログラム書換装置１５とＥＣＵ１２との間で、ＣＡＮＩＤ割付要求メッセージ、応答メッセージおよびＣＡＮＩＤ割付メッセージの送受信を行うことで、「０ｘ００２」をＥＣＵ１２の送信用ＣＡＮＩＤとして設定することができる。
【００８５】
その後に、ＥＣＵ１１，１２では、通信回路３３が、書込データを通信線１７を介してプログラム書換装置１５から受信する。そしてＥＣＵ１１，１２は、通信回路３３により受信した書込データをフラッシュＲＯＭ３２に書き込むことにより、フラッシュＲＯＭ３２に記憶された制御プログラムの内容を書き換える（Ｓ５８０）。
【００８６】
このように、通信システム１では、乱数を発生させることなく、ＥＣＵ１１，１２がそれぞれ「０ｘ００１」および「０ｘ００２」の送信用ＣＡＮＩＤを設定することができる。このため、通信システム１によれば、ハードウェア構成とソフトウェア構成が全く同じ複数のＥＣＵが接続された場合に、複数のＥＣＵで互いに異なる送信用ＣＡＮＩＤを設定することができる。
【００８７】
またＥＣＵ１１，１２は、ＣＡＮＩＤ割付要求メッセージを受信する前に、書換要求メ
ッセージをプログラム書換装置１５から通信線１７を介して受信すると（Ｓ５１０：ＹＥＳ）、単体書換用データ書込処理を行う（Ｓ５２０）。これにより、ＥＣＵ１１，１２は、通信線１７にプログラム書換装置１５と自装置のみが接続されている場合であっても、自装置に記憶された制御プログラムの書き換えを行うことができる。
【００８８】
以上説明した実施形態において、通信システム１は本発明におけるプログラム書換システム、ＥＣＵ１１は本発明における第１電子制御装置、ＥＣＵ１２は本発明における第２電子制御装置、フラッシュＲＯＭ３２は本発明における不揮発性メモリ、電源回路１６は本発明における電源供給部である。
【００８９】
また、Ｓ３１０，Ｓ３２０の処理は本発明における第１電源制御手段、Ｓ３３０の処理は本発明における第１要求送信手段、Ｓ３５０の処理は本発明における第１識別情報送信手段、Ｓ３２０，Ｓ３６０の処理は本発明における第２電源制御手段、Ｓ３３０の処理は本発明における第２要求送信手段、Ｓ３５０，Ｓ３６０の処理は本発明における第２識別情報送信手段である。
【００９０】
また、Ｓ５４０の処理は本発明における第１応答送信手段および第２応答送信手段、Ｓ５６０の処理は本発明における第１設定手段および第２設定手段、通信回路３３は本発明における受信手段、Ｓ５８０の処理は本発明における書換手段である。
【００９１】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、４台のＥＣＵが通信線１７に接続されている場合において制御プログラムの書き換えを行うものを示したが、これに限定されるものではなく、複数（すなわち２台以上）のＥＣＵが通信線１７に接続されているようにしてもよい。
【符号の説明】
【００９２】
１…通信システム、１１，１２，１３，１４…ＥＣＵ、１５…プログラム書換装置、１６…電源回路、１７…通信線、３１，４１…マイコン、３２…フラッシュＲＯＭ、３３，４３…通信回路
【図１】
2015179375.tif 000003
【図２】
2015179375.tif 000004
【図３】
2015179375.tif 000005
【図４】
2015179375.tif 000006
【図５】
2015179375.tif 000007
【図６】
2015179375.tif 000008
【図７】
2015179375.tif 000009
【図８】
2015179375.tif 000010
【図９】
2015179375.tif 000011