(57)【特許請求の範囲】
【請求項１】
車両に搭載された、第１の不揮発性メモリを有する第１の制御ユニットおよび第２の不揮発性メモリを有する第２の制御ユニットを備え、該第１の不揮発性メモリと該第２の不揮発性メモリとには同じプログラムまたは同じデータが記憶されており、該第１および第２の不揮発性メモリの該プログラムまたはデータを、書き換え装置から書き換えるためのシステムであって、
前記書き換え装置と、前記第１および第２の制御ユニットとを接続する第１のバスと、
前記第１の制御ユニットと前記第２の制御ユニットとを接続する第２のバスと、を備え、
前記第１および第２の制御ユニットは、前記書き換え装置から送信された前記書き換えに関するメッセージを、前記第１のバスを介して受信するよう構成されており、
前記第２の制御ユニットは、前記受信したメッセージに対する該第２の制御ユニットの第２の応答を前記第２のバスを介して前記第１の制御ユニットに送信するよう構成され、
前記第１の制御ユニットは、該第１の制御ユニットの前記第１の応答と、前記第２のバスを介して受信した前記第２の制御ユニットの前記第２の応答とを、１つの応答メッセージとして前記書き換え装置に送信し、
前記第１の制御ユニットは、前記書き換え装置に対する前記書き換えのための認証が成立したならば、該書き換え装置から送信された書き換えモードへの移行要求を示すメッセージを前記第１のバスを介して受信した後、該書き換えモードへの移行要求を示すメッセージを前記第２のバスを介して前記第２の制御ユニットに送信し、該第２の制御ユニットは、該第２のバスを介して該メッセージを受信したことに応じて書き換えモードへの移行を開始し、該第１の制御ユニットは、該第２の制御ユニットによる該移行が完了したことに応じて書き換えモードへの移行を開始する、
書き換えシステム。
【請求項２】
前記第１の制御ユニットは、前記受信したメッセージに対する該第１の制御ユニットの前記第１の応答を、前記第２のバスを介して受信した前記第２の応答と共に、別個の応答メッセージとして前記書き換え装置に送信するよう構成されている、
請求項１に記載の書き換えシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両に搭載された複数の制御ユニットの不揮発性メモリに対して書き換え装置から書き換えるためのシステムに関する。
【背景技術】
【０００２】
現在、車両は、該車両に搭載された制御ユニットにより、該車両に搭載された様々なセンサによって検出された運転状態に基づいて様々に制御される。これらの制御には、空燃比、燃料噴射量、エミッションなどのエンジンに関する制御、トランスミッション、ＡＢＳなどの車体に関する制御が含まれる。
【０００３】
制御ユニットは、中央演算処理装置（ＣＰＵ）を備えるコンピュータであり、不揮発性メモリに記憶された制御プログラムおよびデータを利用して、エンジン各部を制御すべき制御信号を生成する。
【０００４】
上記の不揮発性メモリに対する書き換えシステムが知られている（下記の特許文献１）。このシステムによれば、書き換え装置を、車両に搭載された制御ユニットにシリアル通信を介して接続し、書き換え装置から、該制御ユニットの不揮発性メモリに格納された制御プログラムを書き換える。
【特許文献１】特開平９−９１００９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
車両を様々に制御するため、複数の制御ユニットが該車両に搭載されることがある。従来では、書き換え装置と制御ユニットは通信経路を介して１対１で接続され、書き換え装置によって一時点で書き換え対象となりうる制御ユニットは１つであった。
【０００６】
他方、不揮発性メモリに同じプログラムおよび（または）データを格納する複数の制御ユニットが車両に搭載されることがある。このような複数の制御ユニットが設けられる場合、従来の手法では、書き換え装置によって一時点で不揮発性メモリの書き換えることのできる制御ユニットは１つであるので、制御ユニットの数に比例して書き換えに必要な時間が増大する。また、書き換え装置によって書き換えるシステムの仕様によっては、１つの制御ユニットの不揮発性メモリを書き換えるたびに車両のイグニションのオフおよびオンが必要とされる場合がある。このような場合、書き換え前の制御プログラムおよびデータで動作する制御ユニットと、書き換え後の制御プログラムおよびデータで動作する制御ユニットとが車両に混在する状況が生じる。このような混在する状況で車両が動作すると、車両の制御が不適切に実現されるおそれがある。この状況を回避するためには、すべての制御ユニットについて書き換えが完了したかどうかを判断する手法が別途必要とされる。
【０００７】
したがって、車両に搭載された複数の制御ユニットの不揮発性メモリに対する書き換えを同時に達成することができるシステムが必要とされている。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、請求項１に係る発明は、車両に搭載された、第１の不揮発性メモリ（１９ａ）を有する第１の制御ユニット（１１ａ）および第２の不揮発性メモリ（１９ｂ）を有する第２の制御ユニット（１１ｂ）を備え、該第１の不揮発性メモリと該第２の不揮発性メモリとには同じプログラムまたは同じデータが記憶されており、該第１および第２の不揮発性メモリの該プログラムまたはデータを、書き換え装置（３１）から書き換えるためのシステムが提供される。該システムは、書き換え装置と、第１および第２の制御ユニットとを接続する第１のバス（２５ａ）と、第１の制御ユニットと第２の制御ユニットとを接続する第２のバス（２５ｂ）と、を備える。第１および第２の制御ユニットは、書き換え装置から送信された書き換えに関するメッセージを、該第１のバスを介して受信するよう構成される。第２の制御ユニットは、該受信したメッセージに対する該第２の制御ユニットの第２の応答を、該第２のバスを介して第１の制御ユニットに送信するよう構成され、第１の制御ユニットは、該第１の制御ユニットの該第１の応答と、第２のバスを介して受信した該第２の制御ユニットの該第２の応答とを、１つの応答メッセージとして書き換え装置に送信するよう構成されている。
【０００９】
この発明によれば、書き換え装置から送信された書き換えに関するメッセージは、第１および第２の制御ユニットの両方によって受信されるが、該メッセージに対する第１および第２の制御ユニットの応答について書き換え装置に返信するのは、第１の制御ユニットのみである。このような構成により、書き換え装置からは、２つの制御ユニットが存在しても、仮想的に１つの制御ユニットのように見える。したがって、書き換え装置は、第１および第２の制御ユニットのそれぞれに別個のメッセージを送信する必要がない。また、書き換え装置に対する第１および第２の制御ユニットの応答は、１つの応答メッセージとして書き換え装置に返信されるので、書き換え装置は、送信した１つのメッセージに対して１つの応答メッセージを管理しさえすればよい。こうして、書き換え装置からの１回の書き換え要求により、２つの制御ユニットに対して書き換えを同時実施させることができる。
【００１０】
請求項２に係わる発明は、請求項１に記載のシステムにおいて、第１の制御ユニットは、書き換え装置に対する書き換えのための認証が成立したならば、書き換え装置から送信された書き換えモードへの移行要求を示すメッセージを第１のバスを介して受信した後、該書き換えモードへの移行要求を示すメッセージを第２のバスを介して第２の制御ユニットに送信し、該第２の制御ユニットは、該第２のバスを介して該メッセージを受信したことに応じて書き換えモードへの移行を開始し、第１の制御ユニットは、該第２の制御ユニットによる該移行が完了したことに応じて、書き換えモードへの移行を開始する。
【００１１】
この発明によれば、第２の制御ユニットの書き換えモードへの移行は、第１の制御ユニットの制御下で実施され、第２の制御ユニットの移行が完了したことに応じて第１の制御ユニットの移行が開始されるので、書き換えモードへの移行について、第１および第２の制御ユニット間で同期をとることができる。
【００１２】
請求項３に係わる発明は、請求項１または２に記載のシステムにおいて、第１の制御ユニットは、上記受信したメッセージに対する該第１の制御ユニットの第１の応答を、該第２のバスを介して受信した該第２の応答と共に、別個の応答メッセージとして書き換え装置に送信するよう構成されている。
【００１３】
この発明によれば、書き換え装置に対する応答は、第１の制御ユニットのみが行うが、第１の制御ユニットは、自身の応答と第２の制御ユニットの応答とを別個のメッセージとして送信する。これにより、第１および第２の制御ユニットのそれぞれについての応答内容を、書き換え装置に送信することができる。
【発明を実施するための最良の形態】
【００１４】
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の一実施例に従う車両の書き換えシステムの全体的な構成を示す。書き換えシステムは、車両に搭載される複数の制御ユニット、この実施例では第１および第２の制御ユニット１１ａおよび１１ｂを備える。
【００１５】
第１および第２の制御ユニット１１ａおよび１１ｂは、演算処理装置（ＣＰＵ）１３ａおよび１３ｂと、ランダムアクセスメモリ（ＲＡＭ）を含むメモリ１５ａおよび１５ｂと、書き込みおよび消去が可能であって電源を切っても記憶内容が失われない不揮発性メモリ１９ａおよび１９ｂとをそれぞれ備えるコンピュータである。ランダムアクセスメモリ１５ａおよび１５ｂには、ＣＰＵ１３ａおよび１３ｂが演算のために必要なデータが一時的に記憶される。不揮発性メモリ１９ａおよび１９ｂは、たとえばＥＥＰＲＯＭであり、制御ユニット１１ａおよび１１ｂによって実現される車両制御のためのプログラムおよびデータを記憶する。制御ユニット１１ａおよび１１ｂは、車両に設けられた様々なセンサ（図示せず）からの信号を、所定の入力インターフェース（図示せず）を介して受け取り、不揮発性メモリ１９ａおよび１９ｂに記憶された制御プログラムおよびデータを用いて演算を行い、車両の各部を制御するための制御信号を生成し、生成した制御信号を、所定の出力インターフェース（図示せず）を介して該車両の各部に送信する。
【００１６】
第１および第２の制御ユニット１１ａおよび１１ｂは、マスタースレーブ関係にあり、以降、第１の制御ユニット１１ａはマスター制御ユニットと呼ばれ、第２の制御ユニット１１ｂはスレーブ制御ユニットと呼ばれる。スレーブ制御ユニット１１ｂは、マスター制御ユニット１１ａによって制御される。スレーブ制御ユニット１１ｂの不揮発性メモリ１９ｂには、マスター制御ユニット１１ａの不揮発性メモリ１９ａと、同じ制御プログラムおよび（または）同じデータが記憶されており、本願発明の書き換え対象は、両方の不揮発性メモリに記憶された該同じ制御プログラムまたは同じデータである。
【００１７】
マスターおよびスレーブ制御ユニット１１ａおよび１１ｂは、それぞれの入出力インターフェース２１ａおよび２１ｂを介して第１のバス２５ａに接続されている。また、マスター制御ユニット１１ａとスレーブ制御ユニット１１ｂとの間には、それぞれの入出力インターフェース２３ａおよび２３ｂを介して第２のバス２５ｂが接続されている。図では１つのスレーブ制御ユニットのみ示されているが、複数のスレーブ制御ユニットを設けてもよい。その場合には、これらのスレーブ制御ユニットも、第１のバス２５ａに接続されると共に、第２のバス２５ｂを介してマスター制御ユニット１１ａに接続される。
【００１８】
このような構成の制御ユニットを備える車両制御の一例として、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂを、ハイブリッド車両に搭載される電池の異なるセルを監視する制御（たとえば、電圧値の監視等）を行うよう構成することができる。マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの違いは、監視対象となるセルであり、同じ制御プログラムを不揮発性メモリに記憶している。それぞれの制御ユニットに設けられた外部端子（図示せず）を介して監視対象となるセルの識別子を受け取り、これによって、どの制御ユニットがどのセルを監視するかを切換えることができる。監視対象となるセルの数に応じて、スレーブ制御ユニットが複数設けられる。しかしながら、本願発明は、このような形態の制御に限定されるものではなく、不揮発性メモリに同じ制御プログラムおよび（または）データを有する複数の制御ユニットに適用可能である。
【００１９】
また、図には、２つの制御ユニットのみが示されているが、第１のバス２５ａには、点線のボックス１１ｃに示されるように、他の様々な制御ユニットを接続することができる。たとえば、エンジン（吸気量、燃料噴射量等）を制御するための制御ユニット、トランスミッションを制御するための制御ユニット等を接続することができる。
【００２０】
書き換え装置３１は、車両に搭載された制御ユニットの不揮発性メモリの書き換えを指示するための装置である。書き換え装置３１は、車両外部に設けられる形態のものでもよいし、車両上（オンボード上）に実装される形態のものでもよい。
【００２１】
書き換え装置３１は、演算処理装置（ＣＰＵ）３３およびメモリ３５を備えるコンピュータである。メモリ３５には、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリーメモリ（ＲＯＭ）を備えることができる。ＲＡＭには、ＣＰＵ３３の演算のために必要なデータが一時的に記憶される。ＲＯＭは、書き換え可能な不揮発性メモリ（ＥＥＰＲＯＭ等）でもよいし、書き換え不可能なＲＯＭ（ＰＲＯＭ等）でもよい。また、書き換え装置３１は、ハードディスクなどの記憶装置（図示せず）を備えることができる。
【００２２】
書き換え装置３１は、シリアルインターフェースを実現する入出力インターフェース３７を有しており、書き換えを行う際に、書き換え装置３１のシリアルインターフェース３７を、第１のバス２５ａに接続されたシリアルインターフェース（車両に搭載されており、図示せず）に接続することにより、書き換え装置３１と、第１のバス２５ａに接続された制御ユニット１１ａおよび１１ｂとの間で、メッセージを介してシリアル通信を行うことができる。
【００２３】
書き換え装置３１はディスプレイおよび入力装置（図示せず）を備えており、ユーザは、該入力装置を介して書き換え装置３１を操作することにより、制御ユニット１１ａおよび１１ｂの不揮発性メモリ１９ａおよび１９ｂに対する書き換えを指示することができる。入力装置は、たとえば、キーボード、入力ペン、マウス等を含むことができる。
【００２４】
図２は、本願発明の一実施例に従う、書き換え装置３１、マスター制御ユニット１１ａ、およびスレーブ制御ユニット１１ｂの間の通信の形態を示したものである。（ｉ）に示すように、書き換え装置３１から送信された１つのメッセージは、第１のバス２５ａを介して、マスター制御ユニット１１ａとスレーブ制御ユニット１１ｂの両方によって受信される。ここで、「メッセージ」は、書き換え装置３１、マスター制御ユニット１１ａ、およびスレーブ制御ユニット１１ｂの間で送受信されるデータを示す意図で用いられており、書き換え装置３１からの命令（要求）および通知を示すメッセージだけでなく、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂからの応答を示すメッセージを含むと共に、書き換え装置３１から送信される書き換えのためのプログラムコードのようなデータをも含む。
【００２５】
また、（ｉｉ）に示すように、マスター制御ユニット１１ａとスレーブ制御ユニット１１ｂは、互いに、第２のバス２５ｂを介して通信する。これにより、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの状態を監視したり、制御することができる。
【００２６】
さらに、（ｉｉｉ）に示すように、書き換え装置３１からのメッセージに対して応答メッセージを送信することは、マスター制御ユニット１１のみが行う。図に示されるように、スレーブ制御ユニット１１ｂは、書き換え装置３１に対して応答メッセージを直接送信することはしない。
【００２７】
このように、書き換え装置３１から見ると、マスター制御ユニット１１ａおよび１１ｂは、仮想的に１つの制御ユニットとしてみえる（これを、以下、仮想制御ユニットと呼ぶことがある）。書き換え装置３１は、２つの制御ユニットのそれぞれに対して別個のメッセージを送信する必要はなく、また、該メッセージに対する２つの制御ユニットのそれぞれからの別個の応答を管理する必要もない。書き換え装置３１は、１つの該仮想制御ユニットに対して１つのメッセージを送信し、それに対する該仮想制御ユニットからの応答メッセージを管理することにより、２つの制御ユニット１１ａおよび１１ｂの両方に対し、書き換え処理を同時に実施させることができる。
【００２８】
この実施例では、１つの該仮想制御ユニットに１つのアドレスを割り当て、書き換え装置３１は、このアドレス宛にメッセージを送信する。マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方は、該アドレス宛のメッセージを受信するよう構成されている。マスター制御ユニット１１ａからの応答メッセージは、該アドレスからの返信として書き換え装置３１に受け取られる。
【００２９】
ここで、書き換えにおけるメッセージの送受信の概要を述べれば（詳細は後述される）、書き換え装置３１から送信された書き換えに関する１つのメッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方によって受信される（ｉ）。マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂとの第２のバス２５ｂによる通信を介して該スレーブ制御ユニットの該メッセージに対する応答を受け取る（ｉｉ）。
【００３０】
マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの該応答を解析する。マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの該応答と、自身（マスター制御ユニット）の該メッセージに対する応答との両方が、該メッセージに対する肯定結果を示すならば、肯定結果を表す１つの応答メッセージを生成し、該応答メッセージを書き換え装置３１に送る（ｉｉｉ）。
【００３１】
他方、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの該応答と、自身（マスター制御ユニット）の該メッセージに対する応答のうち、少なくとも一方の応答が、該メッセージに対する否定結果を示すならば、否定結果を表す１つの応答メッセージを生成し、該応答メッセージを書き換え装置３１に送る（ｉｉｉ）。書き換え装置３１は、該装置３１が送信したメッセージに対する仮想制御ユニットの応答内容を、受信した１つの応答メッセージから判断することができる。
【００３２】
代替的に、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの応答を、マスター制御ユニット１１ａの応答と共に、別個の応答メッセージとして書き換え装置３１に送るようにしてもよい。書き換え装置３１は、受信した２つの応答メッセージの両方が肯定結果を示すならば、該装置３１が送信したメッセージに対する仮想制御ユニットの応答が肯定であると判断し、少なくともいずれか一方が否定結果を示すならば、該装置３１が送信したメッセージに対する仮想制御ユニットの応答が否定であると判断する。
【００３３】
マスターおよびスレーブ制御ユニット１１ａおよび１１ｂに搭載される不揮発性メモリ１９ａおよび１９ｂにおいて、書き換え対象となる同じ制御プログラムおよび（または）同じデータが記憶されるメモリ領域は、同じアドレスを有するのが好ましい。これにより、書き換え装置３１は、書き換え操作において、１つのアドレスだけで、２つの不揮発性メモリ１９ａおよび１９ｂを同時にアドレス指定することができる。
【００３４】
この実施例では、図３に示すように、マスター制御ユニット１１ａの不揮発性メモリ１９ａとスレーブ制御ユニット１１ｂの不揮発性メモリ１９ｂは、同じアドレス構成を持っており、該不揮発性メモリのメモリ領域の一部を非書き換え領域に設定すると共に、残りを書き換え領域に設定している。非書き換え領域は、書き換えが実施されないメモリ領域であり、たとえば、制御ユニットをブートするのに必要なプログラムおよびデータが記憶されることができる。代替的に、非書き換え領域を不揮発性メモリに設定する代わりに、リードオンリーメモリ（ＲＯＭ）を別個設け、ここに、書き換えが実施されないプログラムやデータを記憶してもよい。
【００３５】
書き換え領域には、書き換え対象となる制御プログラムおよび（または）データが記憶されている。不揮発性メモリ１９ａの書き換え領域と不揮発性メモリ１９ｂの書き換え領域は、書き換え対象となる同じ制御プログラムおよび（または）同じデータを同じアドレス領域に記憶している。
【００３６】
前述したように、書き換え装置３１から見ると、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂは、１つの仮想制御ユニットのように見える。さらに、この実施例では、不揮発性メモリ１９ａおよび１９ｂは同じアドレス構成を有しているので、書き換え装置３１から見ると、２つの不揮発性メモリ１９ａおよび１９ｂは、仮想的に１つの不揮発性メモリと考えることができる。これにより、書き換え装置３１は、書き換えるべきアドレス領域を１つ指定するだけで、２つの不揮発性メモリ１９ａおよび１９ｂの両方について、該アドレス領域に対する書き換えを同時に実施させることができる。
【００３７】
図に示されるすべてのアドレス値は単なる一例であり、これに限定されるものではなく、非書き換え領域および書き換え領域のそれぞれの大きさおよび位置付けは、任意に決定することができる。
【００３８】
次に、図４〜図９を参照して、本願発明の一実施例に従う、書き換え装置３１、マスター制御ユニット１１ａ、およびスレーブ制御ユニット１１ｂによる書き換え処理を詳細に説明する。なお、これらの図に示されるフローを実現するプログラムは、書き換え装置３１のメモリ（ＲＯＭ）３５、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの不揮発性メモリ１９ａおよび１９ｂ（非書き換え領域でも書き換え領域でもよい）に記憶されることができる。書き換え装置３１、マスターおよび制御ユニット１１ａおよび１１ｂは、それぞれ、ＣＰＵによって対応するプログラムを起動することにより、これらの図に示される書き換え処理を実行する。また、ここでは、書き換え対象がプログラムである場合を例として説明するが、書き換え対象は、前述したように、データであってもよい。
【００３９】
書き換え装置３１上で、ユーザが、入力装置を介して、たとえばディスプレイ上で書き換え対象の制御ユニットを選択することでこの処理を開始することができる。この実施例では、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方の不揮発性メモリ１９ａおよび１９ｂが書き換え対象となるが、前述したように、書き換え装置３１からは仮想的にこれら２つの制御ユニットは１つの仮想制御ユニットに見える。したがって、該１つの仮想制御ユニットに割り当てられた１つの識別子（名称、ＩＤ、アドレス等）を選択することで、該２つの不揮発性メモリ１９ａおよび１９ｂの同時書き換え処理を起動することができる。
【００４０】
図４において、書き換え装置３１は、不揮発性メモリに記憶されたプログラムのプログラムＩＤを読み出すための要求メッセージを送信する（Ｓ１１）。この要求メッセージは、第１のバス２５ａを介して、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、スレーブ制御ユニット１１ｂは、この受信に応じた処理は行わない。マスターおよびスレーブ制御ユニットの不揮発性メモリ１９ａおよび１９ｂの両方に同じプログラムが記憶されているので、プログラムＩＤの読み出し要求は、マスター制御ユニット１１ａによってのみ処理されればよいからである。
【００４１】
不揮発性メモリ１９ａの所定のメモリ領域には、該不揮発性メモリ１９ａに記憶されているプログラムのプログラムＩＤが予め記憶されている。マスター制御ユニット１１ａは、該要求メッセージを受信したならば（Ｓ１０１）、該所定のメモリ領域から読み出したプログラムＩＤを含む応答メッセージを、第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１０２）。
【００４２】
プログラムＩＤは、プログラムを識別する識別子であり、該プログラムのバージョンについての情報も有している。書き換え装置３１は、プログラムＩＤを含む応答メッセージを受信することにより（Ｓ１２）、何のプログラムのどのバージョンが不揮発性メモリ１９ａに記憶されているかを判断することができる。
【００４３】
書き換え装置３１は、不揮発性メモリに記憶されるべきプログラムＩＤの一覧（リスト）を、たとえばハードディスクやメモリ３５に予め有しており、これと、受信したプログラムＩＤとを比較することにより、書き換えの必要なプログラムが存在するかどうかを判断することができる。書き換えが必要なプログラムは、書き換え装置３１のディスプレイに表示されることができる。また、書き換えが必要なプログラムが存在しない場合には、その旨のメッセージをディスプレイに表示することができ、ユーザは、この表示に応じて、書き換え作業の中止処理を、入力装置を介して入力することができる。
【００４４】
このように、書き換え装置３１からのメッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、書き換え装置３１への返信を行うのは、マスター制御ユニット１１ａのみである。
【００４５】
図５において、書き換えを行う前に、書き換え装置３１が、車両のメーカーによって認められた正規の書き換え装置かどうかを認証するためのセキュリティチェック処理が行われる。
【００４６】
書き換え装置３１は、シード（ｓｅｅｄ）を要求するメッセージを送信する（Ｓ２１）。該要求メッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方により受信されるが、シードは、一方の制御ユニットで用意すればよいので、スレーブ制御ユニット１１ｂは、該メッセージの受信に応じた処理は行わない。
【００４７】
マスター制御ユニット１１ａは、該要求メッセージの受信に応じて（Ｓ１２１）、シードを生成し、または予め生成されているシードのうちから任意に選択し、該生成または選択したシードを含む応答メッセージを、第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１２２）。
【００４８】
シードが代入されるべき変数を用いてキーを計算するための関数（すなわち、キー＝ｆ（シード）であり、ｆは任意の関数）が、書き換え装置３１のメモリ（ＲＯＭ）３５に予め記憶されている。書き換え装置３１は、該シードを受信したならば（Ｓ２２）、該記憶された関数を読み出し、受信したシードを該関数に代入してキーを計算する（Ｓ２３）。
【００４９】
他方、書き換え装置３１に記憶された関数と同じ関数が、マスター制御ユニット１１ａの不揮発性メモリ（非書き換え領域でも書き換え領域でもよい）１９ａに記憶されている。マスター制御ユニット１１ａは、該関数を読み出し、書き換え装置３１に返信したシードを該関数に代入してキーを計算する（Ｓ１２３）。
【００５０】
書き換え装置３１は、ステップＳ２３で算出したキーを含むメッセージを送信する（Ｓ２４）。このメッセージは、第１のバス２５ａを介して、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、セキュリティチェック処理は一方の制御ユニットで行えばよいので、スレーブ制御ユニット１１ｂは、該メッセージの受信に応じた処理は行わない。マスター制御ユニット１１ａは、キーを受信したならば（Ｓ１２４）、該キーを、自身がステップＳ１２３で算出したキーと照合し、両者が一致するかどうかを判断する（Ｓ１２５）。マスター制御ユニット１１ａは、キーが一致したならば、書き換え装置３１が正規の書き換え装置であると判断し、該装置３１による書き換えを許可する（セキュリティの解除）。他方、マスター制御ユニット１１ａは、キーが不一致ならば、書き換え装置３１が正規の書き換え装置ではないと判断する。マスター制御ユニット１１ａは、該照合結果を示す応答メッセージを、第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１２６）。
【００５１】
書き換え装置３１は、応答メッセージを受信し（Ｓ２５）、照合結果がキーの一致を示すならば、セキュリティが解除されたと判断し（Ｓ２６）、図６に進む。照合結果がキーの一致を示さなければ、セキュリティが解除されないため、書き換え処理を中止する。この時、その旨を示すメッセージを書き換え装置３１のディスプレイに表示することができる。
【００５２】
このように、書き換え装置３１からのメッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、書き換え装置３１への返信を行うのは、マスター制御ユニット１１ａのみである。また、図５の例では、書き換え装置３１が正規かどうかを判断するセキュリティチェック処理であるので、書き換え装置３１からのメッセージに対する処理がマスター制御ユニット１１ａによってのみ実行される形態となっている。
【００５３】
図６において、書き換え装置３１は、制御ユニットを書き換えモードに移行させるための要求メッセージを送信する（Ｓ３１）。この要求メッセージは、第１のバス２５ａを介して、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、スレーブ制御ユニット１１ｂは、この時点では、該要求メッセージを受信するのみである。
【００５４】
マスター制御ユニット１１ａは、該要求メッセージの受信に応じて（Ｓ１３１）、肯定応答を示すメッセージを書き換え装置３１に返信すると共に（Ｓ１３２）、スレーブ制御ユニット１１ｂに、第２のバス２５ｂを介して、書き換えモードへの移行を要求するメッセージを送信する（Ｓ１３３）。書き換え装置３１は、たとえば所定時間内に肯定応答メッセージを受信しなければ、書き換え処理を中止することができる（Ｓ３２）。
【００５５】
スレーブ制御ユニット１１ｂは、該第２のバス２５ｂを介した要求メッセージを受信したならば（Ｓ２３１）、該スレーブ制御ユニットの書き換えモードへの移行処理を開始し（Ｓ２３２）、移行処理の結果を示す応答メッセージを、第２のバス２５ｂを介してマスター制御ユニット１１ａに返信する（Ｓ２３３）。マスター制御ユニット１１ａは、該応答メッセージを受信し（Ｓ１３４）、該応答メッセージの内容を解析する（Ｓ１３５）。該応答メッセージが、移行処理が完了（すなわち、正常に終了）したことを示す肯定結果を示すならば、マスター制御ユニット１１ａは、自身の書き換えモードへの移行処理を開始する（Ｓ１３６）。その結果、自身の移行処理が完了したことを示す肯定結果であれば、マスター制御ユニット１１ａは、仮想制御ユニットの書き換えモードへの移行が完了したとして、肯定結果を示す１つの応答メッセージを生成し、該応答メッセージを書き換え装置３１に送信する（Ｓ１３７）。
【００５６】
他方、ステップＳ１３５の結果、スレーブ制御ユニット１１ｂの移行処理が完了しなかったことを示す否定結果であれば、マスター制御ユニット１１ａは、自身の書き換えモードへの移行処理を開始することなく、仮想制御ユニットの書き換えモードへの移行が完了しなかったとして、否定結果を示す１つの応答メッセージを生成し、該応答メッセージを書き換え装置３１に送信する（Ｓ１３７）。
【００５７】
書き換え装置３１は、マスター制御ユニット１１ａからの応答メッセージを受信し（Ｓ３３）、該応答メッセージが肯定結果を示す場合には、図７に進む。図示していないが、書き換え装置３１は、該応答メッセージが否定結果を示す場合には、書き換え処理を中止することができ、その場合、その旨を書き換え装置３１のディスプレイに表示することができる。
【００５８】
このように、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの応答と、自身の応答とを、１つの応答メッセージとして書き換え装置３１に送るので、書き換え装置３１は、１つの移行要求メッセージに対して、１つの応答メッセージを管理しさえすればよい。
【００５９】
この実施例では、ステップＳ１３７における書き換え装置３１への応答メッセージは、仮想制御ユニットについて移行が完了したかどうかを示すように、肯定または否定結果を示す。しかしながら、代替的に、それぞれの制御ユニットについて移行が完了したかどうかを示すように、該応答メッセージを構成してもよい。たとえば、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの応答（肯定または否定）と、自身の応答（肯定または否定）とを連結して、１つの応答メッセージとすることができる。書き換え装置３１は、すべての制御ユニットの応答が肯定結果を示すならば、仮想制御ユニットの移行が完了したと判断し、いずれかの制御ユニットの応答が否定結果を示すならば、仮想制御ユニットの移行が完了しなかったと判断して書き換え処理を中止することができる。
【００６０】
さらに、図２を参照して述べた代替形態のように、マスター制御ユニット１１ａが、スレーブ制御ユニット１１ｂの応答を、自身の応答と共に、別個の応答メッセージとして書き換え装置３１に送信するようにしてもよい。書き換え装置３１は、それぞれの応答メッセージから、仮想制御ユニットに含まれる制御ユニットのそれぞれについて、移行が完了したかどうかを判断することができる。
【００６１】
不揮発性メモリに対する書き換えは、書き換えモードでのみ許される処理である。一方の制御ユニットのみ移行が完了し、他方の制御ユニットの移行は完了することができない、という状態が生じると、以降の２つの不揮発性メモリへの同時書き換えを実施することができない。すなわち、書き換えモードへの移行は、図４および図５に示されるような処理とは異なり、２つの制御ユニット間で同期を取る必要がある。そこで、上記のように、書き換えモードへの移行は、マスター制御ユニット１１ａの管理下で、マスター制御ユニット１１ａとスレーブ制御ユニット１１ｂとの間で同期を取るよう実現される。
【００６２】
不揮発性メモリの読み出しモードと書き換えモードの間の切換は、任意の手法で実現されることができる。たとえば、所定のモードレジスタに、読み出しモードまたは書き換えモードを示す値を設定することにより、実現されることができる。制御ユニットのＣＰＵは、該モードレジスタの値に応じて、不揮発性メモリを動作させる回路を、読み出し動作を行う構成と消去および書き込み動作を行う構成との間で切り換えるための信号（たとえば、回路に供給する電圧値を変更するための信号）を生成することができる。こうして、書き換えモードに切り換えられたならば、不揮発性メモリに対し、消去および書き込み動作を実施することができる。
【００６３】
図７に進み、書き換え装置３１は、不揮発性メモリの書き換え領域に記憶されたデータの消去を要求するメッセージを送信する（Ｓ４１）。
【００６４】
該要求メッセージは、第１のバス２５ａを介して、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信される（Ｓ１４１，Ｓ２４１）。この受信に応じて、マスター制御ユニット１１ａは、肯定応答を示すメッセージを第１のバス２５ａを介して書き換え装置３１に返信すると共に（Ｓ１４２）、不揮発性メモリ１９ａの書き換え領域に対する消去処理を開始し（Ｓ１４３）、スレーブ制御ユニット１１ｂも、不揮発性メモリ１９ｂの書き換え領域に対する消去処理を開始する（Ｓ２４２）。書き換え装置３１は、たとえば所定時間内に肯定応答メッセージを受信しなければ、書き換え処理を中止することができる（Ｓ４２）。
【００６５】
この実施例では、書き換え領域のすべてが消去される。代替的に、消去要求メッセージに、消去すべきアドレス領域を含め、該指定されたアドレス領域だけが消去されるようにしてもよい。
【００６６】
スレーブ制御ユニット１１ｂは、消去処理が終了したならば（Ｓ２４３）、消去処理の結果を示す応答メッセージを、第２のバス２５ｂを介してマスター制御ユニット１１ａに返信する（Ｓ２４４）。マスター制御ユニット１１ａは、該応答メッセージを受信すると共に（Ｓ１４４）、自身の不揮発性メモリ１９ａの消去処理を終了したならば（Ｓ１４５）、スレーブ制御ユニット１１ｂからの応答メッセージの内容を解析し、スレーブ制御ユニット１１ｂの消去処理が完了（すなわち、正常に終了）したかどうかを判断する。マスター制御ユニット１１ａは、マスター制御ユニット１１ａの消去処理とスレーブ制御ユニット１１ｂの消去処理の両方が完了したならば、肯定結果を示す１つの応答メッセージを生成し、該応答メッセージを第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１４６）。他方、マスター制御ユニット１１ａは、マスター制御ユニット１１ａの消去処理とスレーブ制御ユニット１１ｂの消去処理の少なくとも一方が完了しなかったならば、否定結果を示す１つの応答メッセージを生成し、該応答メッセージを第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１４６）。
【００６７】
消去処理には、ある程度の時間がかかるので、書き換え装置３１は、マスター制御ユニット１１ａからの応答メッセージの受信を待つ（Ｓ４３）。ステップＳ４１のメッセージ送信から所定時間（たとえば、１２０秒）内に該応答メッセージを受信したならば（Ｓ４４）、図８に進む。該所定時間が経過しても該応答メッセージを受信しなければ、書き換え処理を中止する。
【００６８】
図示していないが、書き換装置３１は、マスター制御ユニット１１ａからの応答メッセージが否定結果を示す場合には書き換え処理を中止することができ、この場合、書き換え装置３１のディスプレイに、消去処理が未完了である旨を示すメッセージを表示することができる。
【００６９】
こうして、書き換え装置３１からの消去要求メッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、該消去要求メッセージに対して応答するのは、マスター制御ユニット１１ａのみである。書き換え装置３１からの１つの消去要求メッセージで、２つの不揮発性メモリ１９ａおよび１９ｂの書き換え領域の消去を同時に実現することができる。
【００７０】
さらに、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの応答と、自身の応答とを、１つの応答メッセージとして書き換え装置３１に送るので、書き換え装置３１は、１つの消去要求メッセージに対して、１つの応答メッセージを管理しさえすればよい。
【００７１】
この実施例では、ステップＳ１４６における書き換え装置３１への応答メッセージは、仮想制御ユニットについて消去が完了したかどうかを示すように、肯定または否定結果を示す。しかしながら、図６を参照して述べた代替形態のように、それぞれの制御ユニットについて消去が完了したかどうかを示すように、該応答メッセージを構成してもよい。さらに、やはり図６を参照して述べた代替形態のように、マスター制御ユニット１１ａが、スレーブ制御ユニット１１ｂの応答を、自身の応答と共に、別個の応答メッセージとして書き換え装置３１に送信するようにしてもよい。
【００７２】
図８は、書き換え装置３１から送信されたプログラムコードを、マスターおよびスレーブ制御ユニットの不揮発性メモリ１９ａおよび１９ｂに同時に書き込む処理を示す。
【００７３】
プログラムコードは、書き換え装置３１のたとえばメモリ（ＲＡＭ）３５に、予めロードされている。ロードは、任意の適切な手法で実現することができる。たとえば、外部記憶媒体（たとえば、ＩＣカード）の読み取り機能を書き換え装置３１に設け、該外部記憶媒体からプログラムコードをロードすることができる。代替的に、ネットワークのような何らかの通信を介して、他のコンピュータから書き換え装置３１にロードしてもよい。また、前述したようにプログラムＩＤを制御ユニットから受信したことに応じて、書き換え装置３１が、書き換えの必要なプログラムを識別し、該識別したプログラムのプログラムコードを、たとえば外部記憶媒体や他のコンピュータから自動的にロードするようにしてもよい。代替的に、入力装置を介して、ユーザが、ロードすべきプログラムをディスプレイ上で選択するようにしてもよいし、または、該ロードされているプログラムのうち制御ユニットに実際に送信するプログラムをディスプレイ上で選択するようにしてもよい。
【００７４】
プログラムコードは、所定のブロック単位（たとえば、８バイトのブロック単位）で書き換え装置３１から送信される（Ｓ５１）。
【００７５】
書き換え装置３１から送信された１ブロックのプログラムコードを含むメッセージは、第１のバス２５ａを介して、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信される。該受信に応じて（Ｓ１５１，Ｓ２５１）、マスター制御ユニット１１ａは、肯定応答を示すメッセージを書き換え装置３１に返信し（Ｓ１５２）、受信したプログラムコードを、不揮発性メモリ１９ａの開始アドレス（これは、任意の手法で設定されることができ、たとえば消去したメモリ領域の開始アドレスとすることができる）から書き込む処理を開始し（Ｓ１５３）、スレーブ制御ユニット１１ｂも、該受信したプログラムコードを、不揮発性メモリ１９ｂの開始アドレスから書き込む処理を開始する（Ｓ２５２）。書き換え装置３１は、たとえば所定時間内に肯定応答メッセージを受信しなければ、書き換え処理を中止することができる（Ｓ５２）。
【００７６】
スレーブ制御ユニット１１ｂは、該ブロックの書き込み処理が終了したならば（Ｓ２５３）、該書き込みの結果を示す応答メッセージを、第２のバス２５ｂを介してマスター制御ユニット１１ａに返信する。マスター制御ユニット１１ａは、該応答メッセージを受信すると共に（Ｓ１５４）、不揮発性メモリ１９ａへの該ブロックの書き込み処理が終了したならば（Ｓ１５５）、スレーブ制御ユニット１１ｂからの応答メッセージの内容を解析し、スレーブ制御ユニット１１ｂの書き込み処理が完了（すなわち、正常に終了）したかどうかを判断する。マスター制御ユニット１１ａは、マスター制御ユニット１１ａの書き込み処理とスレーブ制御ユニット１１ｂの書き込み処理の両方が完了したならば、肯定結果を示す１つの応答メッセージを生成し、該応答メッセージを第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１５６）。他方、マスター制御ユニット１１ａは、マスター制御ユニット１１ａの書き込み処理とスレーブ制御ユニット１１ｂの書き込み処理の少なくとも一方が完了しなかったならば、否定結果を示す１つの応答メッセージを生成し、該応答メッセージを第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１５６）。
【００７７】
書き換装置３１は、マスター制御ユニット１１ａからの応答メッセージを受信する（Ｓ５３）。図示していないが、書き換え装置３１は、該応答メッセージが否定結果を示す場合には書き換え処理を中止することができ、この場合、書き換え装置３１のディスプレイに、書き込み処理が未完了である旨を示すメッセージを表示することができる。
【００７８】
該応答メッセージが肯定結果を示すならば、書き換え装置３１は、書き換え対象であるプログラムコードのすべてのブロックの書き込みが完了したかどうかを判断し（Ｓ５４）、まだ書き込まれていないブロックが残っていれば、ステップＳ５１に戻り、次のプログラムコードを送信する。マスターおよびスレーブ制御ユニット１１ａおよび１１ｂも、まだ書き込まれていないブロックがあれば（Ｓ１５７，Ｓ２５５）、ステップＳ１５１およびＳ２５１にそれぞれ戻る。書き込まれていないブロックがあるかどうかは、たとえば、書き込みが終了アドレス（これは、任意の手法で決定されることができ、たとえば、開始アドレスおよびプログラムコードのデータ量に基づいて算出されることができる）に達したかどうかによって判断することができる。マスターおよびスレーブ制御ユニット１１ａおよび１１ｂは、次のデータブロックを受信したならば、前のデータブロックが書き込まれたアドレス領域に続けて、該受信した次のデータブロックを書き込む。
【００７９】
書き換え装置３１は、すべてのブロックのプログラムコードの書き込みを完了したならば（Ｓ５４）、図９に進む。
【００８０】
こうして、書き換え装置３１からのプログラムコードを含むメッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、該メッセージに対して応答するのは、マスター制御ユニット１１ａのみである。書き換え装置３１からの１つのメッセージで、２つの不揮発性メモリ１９ａおよび１９ｂへのプログラムコードの書き込みを同時に実現することができる。
【００８１】
さらに、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの応答と、自身の応答とを、１つの応答メッセージとして書き換え装置３１に送るので、書き換え装置３１は、１つの書き込み要求メッセージに対して、１つの応答メッセージを管理しさえすればよい。
【００８２】
この実施例では、ステップＳ１５６における書き換え装置３１への応答メッセージは、仮想制御ユニットについて書き込みが完了したかどうかを示すように、肯定または否定結果を示す。しかしながら、図６を参照して述べた代替形態のように、マスターおよびスレーブ制御ユニットのそれぞれについて書き込みが完了したかどうかを示すように、該応答メッセージを構成してもよい。さらに、やはり図６を参照して述べた代替形態のように、マスター制御ユニット１１ａが、スレーブ制御ユニット１１ｂの応答を、自身の応答と共に、別個の応答メッセージとして書き換え装置３１に送信するようにしてもよい。
【００８３】
図９において、書き換え装置３１は、メモリチェックの実行を要求するメッセージを送信する（Ｓ６１）。該メッセージは、第１のバス２５ａを介して、マスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信される。該受信に応じて（Ｓ１６１）、マスター制御ユニット１１ａは、第１のバス２５ａを介して肯定応答を書き換え装置３１に返信し（Ｓ１６２）、不揮発性メモリ１９ａに対するメモリチェックの実行を開始する（Ｓ１６３）。スレーブ制御ユニット１１ｂも、該受信に応じて（Ｓ２６１）、不揮発性メモリ１９ｂに対するメモリチェックの実行を開始する（Ｓ２６２）。書き換え装置３１は、たとえば所定時間内に肯定応答メッセージを受信しなければ、書き換え処理を中止することができる（Ｓ６２）。
【００８４】
メモリチェックは、不揮発性メモリに書き込まれたプログラムコードが正しいかどうかを確認するために実行され、任意の適切な手法により実現されることができる。たとえば、書き換え装置３１からの送信の途中で何らかのエラーが含まれる可能性があり、このような誤りを検出するようメモリチェックを実現することができる。チェックサムおよびＣＲＣ（巡回冗長符号）のような周知のメモリチェック機能を利用することができる。
【００８５】
スレーブ制御ユニット１１ｂは、不揮発性メモリ１９ｂに対するメモリチェックを終了したならば（Ｓ２６３）、第２のバス２５ｂを介して、メモリチェックの結果を示す応答メッセージをマスター制御ユニット１１ａに送信する（Ｓ２６４）。マスター制御ユニット１１ａは、該応答メッセージを受信すると共に（Ｓ１６４）、自身の不揮発性メモリ１９ａに対するメモリチェックを終了したならば（Ｓ１６５）、スレーブ制御ユニット１１ｂからの応答メッセージの内容を解析し、スレーブ制御ユニット１１ｂのメモリチェックが完了（すなわち、正常に終了）したかどうかを判断する。マスター制御ユニット１１ａは、マスター制御ユニット１１ａのメモリチェックとスレーブ制御ユニット１１ｂのメモリチェックの両方が完了したならば、肯定結果を示す１つの応答メッセージを生成し、該応答メッセージを第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１６６）。他方、マスター制御ユニット１１ａは、マスター制御ユニット１１ａのメモリチェックとスレーブ制御ユニット１１ｂのメモリチェックの少なくとも一方が完了しなかったならば、否定結果を示す１つの応答メッセージを生成し、該応答メッセージを第１のバス２５ａを介して書き換え装置３１に返信する（Ｓ１６６）。
【００８６】
メモリチェックには、ある程度の時間がかかるので、書き換え装置３１は、応答メッセージの受信を待つ（Ｓ６３）。ステップＳ６１のメッセージ送信から所定時間（たとえば、１２０秒）内に応答メッセージを受信し、該応答メッセージが肯定結果を示すならば、書き換え処理は完了し、その旨のメッセージを書き換え装置３１のディスプレイに表示させることができる。他方、該所定時間が経過しても該応答メッセージを受信しなければ、書き換え処理を中止する（Ｓ６４）。この場合、メモリチェックについての応答が無かったことを示すメッセージを、書き換え装置３１のディスプレイに表示することができる。これに応じてメモリチェックのみを実行するようユーザが入力装置を介して指示できるように、書き換え装置３１を構成してもよい。
【００８７】
図示していないが、書き換装置３１は、ステップＳ１６６におけるマスター制御ユニット１１ａからの応答メッセージが否定結果を示す場合には書き換え処理を中止することができ、この場合、書き換え装置３１のディスプレイにメモリチェック処理が未完了である旨を示すメッセージを表示することができる。
【００８８】
こうして、書き換え装置３１からの要求メッセージは、第１のバス２５ａを介してマスターおよびスレーブ制御ユニット１１ａおよび１１ｂの両方に受信されるが、該メッセージに対して応答するのは、マスター制御ユニット１１ａのみである。書き換え装置３１からの１つのメッセージで、２つの不揮発性メモリ１９ａおよび１９ｂのメモリチェックを同時に実現することができる。
【００８９】
さらに、マスター制御ユニット１１ａは、スレーブ制御ユニット１１ｂの応答と、自身の応答とを、１つの応答メッセージとして書き換え装置３１に送るので、書き換え装置３１は、１つの要求メッセージに対して、１つの応答メッセージを管理しさえすればよい。
【００９０】
この実施例では、ステップＳ１６６における書き換え装置３１への応答メッセージは、仮想制御ユニットについてメモリチェックが完了したかどうかを示すように、肯定または否定結果を示す。しかしながら、図６を参照して述べた代替形態のように、マスターおよびスレーブ制御ユニットのそれぞれについてメモリチェックが完了したかどうかを示すように、該応答メッセージを構成してもよい。さらに、やはり図６を参照して述べた代替形態のように、マスター制御ユニット１１ａが、スレーブ制御ユニット１１ｂの応答を、自身の応答と共に、別個の応答メッセージとして書き換え装置３１に送信するようにしてもよい。
【００９１】
こうして書き換え処理を終了した後、図には示していないが、たとえば車両のイグニションスイッチをオフおよびオンしてマスターおよびスレーブ制御ユニット１１ａおよび１１ｂを再起動することができる。上記の書き換え処理において、書き換えられたプログラムのプログラムＩＤは更新されている（たとえば、プログラムコードの書き込みに際して、プログラムＩＤを所定のメモリ領域に書き込むことができる）。したがって、再び図４に示すような手順で不揮発性メモリのプログラムＩＤを読み出すことにより、不揮発性メモリのプログラムが書き換えられかどうかを判断することができるよう、書き換え装置３１を構成することができる。
【図面の簡単な説明】
【００９２】
【図１】この発明の一実施例における、書き換えシステムの全体を示すブロック図。
【図２】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの通信形態を示す図。
【図３】この発明の一実施例における、制御ユニットの不揮発性メモリの構成を示す図。
【図４】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの書き換え処理のフローチャート。
【図５】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの書き換え処理のフローチャート。
【図６】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの書き換え処理のフローチャート。
【図７】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの書き換え処理のフローチャート。
【図８】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの書き換え処理のフローチャート。
【図９】この発明の一実施例における、書き換え装置、マスターおよびスレーブ制御ユニットの書き換え処理のフローチャート。
【符号の説明】
【００９３】
１１ａ  マスター制御ユニット
１１ｂ  スレーブ制御ユニット
１９ａ  不揮発性メモリ
１９ｂ  不揮発性メモリ
２５ａ  第１のバス
２５ｂ  第２のバス
３１  書き換え装置
【図１】
0004753929.tif 000002
【図２】
0004753929.tif 000003
【図３】
0004753929.tif 000004
【図４】
0004753929.tif 000005
【図５】
0004753929.tif 000006
【図６】
0004753929.tif 000007
【図７】
0004753929.tif 000008
【図８】
0004753929.tif 000009
【図９】
0004753929.tif 000010