(57)【要約】【課題】書き換え時間を短縮できる電子制御装置、及び電子制御装置に対するデータ書き換えシステムを提供すること。【解決手段】ＥＣＵ１００は、メインマイコン１０、第１サブマイコン２０、第２サブマイコン３０を備えている。メインマイコン１０、第１サブマイコン２０、第２サブマイコン３０の夫々は、メインＣＰＵ１１、第１ＣＰＵ２１、第２ＣＰＵ３１と、フラッシュメモリ１２，２２，３２とを備えている。メインＣＰＵ１１、第１ＣＰＵ２１、第２ＣＰＵ３１は、書き込みデータとして共通データを受信した場合、時間的に並行して、フラッシュメモリ１２，２２，３２における共通領域１２ａ，２２ａ，３２ａの夫々に共通データを書き込む。【選択図】図１
2016012220.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部（１０，１０ａ，１０ｂ，２０，２０ａ〜２０ｃ，３０，３０ａ〜３０ｃ）を備えた電子制御装置であって、
複数の前記処理部の夫々は、
電気的にデータの書き換えが可能な不揮発性メモリ（１２，２２，３２）と、
前記不揮発性メモリに対応して設けられており、前記電子制御装置の外部に設けられた外部装置（２００）から送信されてきた書き込みデータを受信して、自身に対応している前記不揮発性メモリに記憶されているデータを、受信した前記書き込みデータに書き換える書き換え手段（１１，２１，３１）と、を有しており、
複数の前記書き換え手段は、前記書き込みデータとして、複数の前記処理部に共通のデータである共通データを受信した場合、時間的に並行して、前記不揮発性メモリに記憶されているデータを受信した前記共通データに書き換えることを特徴とする電子制御装置。
【請求項２】
複数の前記処理部（１０，１０ａ，１０ｂ，２０，２０ａ，２０ｂ，３０，３０ａ，３０ｂ）に共通に接続された一つの通信バス（７０）を備えており、
複数の前記処理部は、前記通信バスを共用して、前記外部装置とのデータ通信を行うことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
複数の前記処理部は、同一の種類であることを特徴とする請求項２に記載の電子制御装置。
【請求項４】
複数の前記不揮発性メモリは、前記共通データを記憶しておく記憶領域のアドレスが同一であることを特徴とする請求項２又は３に記載の電子制御装置。
【請求項５】
複数の前記処理部は、メイン処理部（１０ａ，１０ｂ）とサブ処理部（２０ａ，２０ｂ，３０ａ，３０ｂ）とを含むものであり、
前記メイン処理部と前記サブ処理部とを接続するものであり、前記通信バスとは異なる通信線（８１，８２）を備えており、
前記メイン処理部及び前記サブ処理部は、前記通信バスを介して前記外部装置と直接通信が可能であり、且つ、前記通信線を介して互いにデータ通信が可能であることを特徴とする請求項２乃至４のいずれか一項に記載の電子制御装置。
【請求項６】
前記サブ処理部（２０ａ，３０ａ）は、
自身の前記書き換え手段による前記共通データの書き換えが成功したか否かを判定する第１判定手段（Ｓ６６）と、
前記第１判定手段による判定結果を前記メイン処理部に前記通信線を介して送信する第１送信手段（Ｓ６７ａ，Ｓ６８ａ）と、を有し、
前記メイン処理部（１０ａ）は、
自身の前記書き換え手段による前記共通データの書き換えが成功したか否かを判定すると共に、該判定結果と、前記サブ処理部からの前記判定結果とに基づいて、全ての前記不揮発性メモリに対する前記共通データの書き換えが成功したか否かを判定する第２判定手段（Ｓ６６ａ）と、
前記第２判定手段による判定結果を前記外部装置に前記通信バスを介して送信する第２送信手段（Ｓ６７，Ｓ６８）と、を有することを特徴とする請求項５に記載の電子制御装置。
【請求項７】
複数の前記処理部（１０ｂ，２０ｂ，３０ｂ）の夫々は、
前記通信バスによるデータ通信の可否を判定する通信判定手段（Ｓ７０，Ｓ８０）と、
前記通信判定手段にて通信否と判定された場合、前記外部装置から受信していた前記書き込みデータを、自身以外の前記処理部から前記通信線を介して受信するように切り替える切替手段（Ｓ７４，Ｓ７６，Ｓ８５）と、
を有することを特徴とする請求項５に記載の電子制御装置。
【請求項８】
第１処理部（１０ｃ）と、前記処理部として複数の第２処理部（２０ｃ，３０ｃ）と、を含むものであり、
前記外部装置との間でデータ通信を行うためのものであり、前記第２処理部には直接接続されておらず、前記第１処理部に接続された通信バス（７１）と、
前記第１処理部と前記第２処理部とを接続するものであり、前記通信バスとは異なる通信線（８１，８２）と、を備えており、
前記第１処理部は、前記通信バスを介して、前記外部装置とのデータ通信を行い、
前記第２処理部は、前記通信線、前記第１処理部、及び前記通信バスを介して、前記外部装置とのデータ通信を行うことを特徴とする請求項１に記載の電子制御装置。
【請求項９】
複数の前記処理部は、同一の種類であることを特徴とする請求項８に記載の電子制御装置。
【請求項１０】
複数の前記不揮発性メモリは、前記共通データのアドレスが同一であることを特徴とする請求項８又は９に記載の電子制御装置。
【請求項１１】
請求項１乃至１０の少なくとも一項に記載された前記電子制御装置と、
前記電子制御装置に対して、前記書き込みデータを送信する前記外部装置と、を備えた書き換えシステムであって、
前記外部装置は、複数の前記処理部の夫々に対して、前記共通データを送信する場合、前記書き込みデータが前記共通データであることを複数の前記処理部が認識可能な状態で送信することを特徴とする書き換えシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書き換え可能な不揮発性記憶部を有した処理部を複数備えた電子制御装置、及び電子制御装置に対するデータ書き換えシステムに関する。
【背景技術】
【０００２】
従来、電気的に書き換え可能な複数の不揮発性記憶部を有した処理部を複数備えた電子制御装置の一例として、特許文献１に開示された電子制御装置がある。
【０００３】
この電子制御装置は、不揮発性メモリを有する２つのマイコンを備えて構成されている。また、両マイコンは、１つの通信ラインを共用して外部とデータ通信を行い、メモリ書込装置から送信されて来る書き込みデータを受信して不揮発性メモリを書き換えるための書込処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１７１６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記電子制御装置では、メモリ書込装置によってデータを書き換える際に、選択スイッチでデータの書き換え対象のマイコンとして２つのマイコンの何れかが選択される。よって、電子制御装置は、一方のマイコンが不揮発性メモリを書き込みデータで書き換えている間、他のマイコンは不揮発性メモリを書き込みデータで書き換えることができない。このため、電子制御装置は、各マイコンに設けられた不揮発性メモリの書き換えを行う場合、一方のマイコンで不揮発性メモリの書き換えを行った後に、他方のマイコンで不揮発性メモリの書き換えを行う必要があり、書き換え時間が長いという問題がある。
【０００６】
本発明は、上記問題点に鑑みなされたものであり、書き換え時間を短縮できる電子制御装置、及び電子制御装置に対するデータ書き換えシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は、
複数の処理部（１０，１０ａ，１０ｂ，２０，２０ａ〜２０ｃ，３０，３０ａ〜３０ｃ）を備えた電子制御装置であって、
複数の処理部の夫々は、
電気的にデータの書き換えが可能な不揮発性メモリ（１２，２２，３２）と、
不揮発性メモリに対応して設けられており、電子制御装置の外部に設けられた外部装置（２００）から送信されてきた書き込みデータを受信して、自身に対応している不揮発性メモリに記憶されているデータを、受信した書き込みデータに書き換える書き換え手段（１１，２１，３１）と、を有しており、
複数の書き換え手段は、書き込みデータとして、複数の処理部に共通のデータである共通データを受信した場合、時間的に並行して、不揮発性メモリに記憶されているデータを受信した共通データに書き換えることを特徴とする。
【０００８】
このように、本発明は、不揮発性メモリに記憶されているデータを受信した共通データに書き換える場合、複数の書き換え手段が時間的に並行して書き換えを行う。このため、各書き換え手段は、不揮発性メモリに記憶されているデータを受信した共通データに書き換える際に、他の書き換え手段による共通データの書き換えが終了するのを待つ必要がない。よって、本発明は、書き換え時間を短縮できる。
【０００９】
また、本発明のさらなる特徴は、
請求項１乃至１０の少なくとも一項に記載された電子制御装置と、
電子制御装置に対して、書き込みデータを送信する外部装置と、を備えた書き換えシステムであって、
外部装置は、複数の処理部の夫々に対して、共通データを送信する場合、書き込みデータが共通データであることを複数の処理部が認識可能な状態で送信する。
【００１０】
このように、外部装置は、書き込みデータが共通データであることを複数の処理部が認識可能な状態で送信する。よって、電子制御装置は、書き込みデータが共通データであるか否かを判断することができる。そして、電子制御装置は、共通データを受信した場合、時間的に並行して、不揮発性メモリに記憶されているデータを受信した共通データに書き換えるので、書き換え時間を短縮できる。
【００１１】
なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１２】
【図１】実施形態における書き換えシステムの概略構成を示すブロック図である。
【図２】実施形態における各フラッシュメモリの領域を示すイメージ図である。
【図３】実施形態の書き換えシステムによる処理動作を示すフローチャートである。
【図４】実施形態の書き換え装置による全体的な処理を示すフローチャートである。
【図５】実施形態の書き換え装置による共通データの書き換え処理を示すフローチャートである。
【図６】実施形態の書き換え装置による個別データの書き換え処理を示すフローチャートである。
【図７】実施形態のマイコンによる全体的な処理を示すフローチャートである。
【図８】実施形態のマイコンによる書き換え処理を示すフローチャートである。
【図９】変形例１の書き換え装置による共通データの書き換え処理を示すフローチャートである。
【図１０】変形例１の書き換え装置による個別データの書き換え処理を示すフローチャートである。
【図１１】変形例１のマイコンによる書き換え処理を示すフローチャートである。
【図１２】変形例２における各フラッシュメモリの領域を示すイメージ図である。
【図１３】変形例３における書き換えシステムの概略構成を示すブロック図である。
【図１４】変形例３の書き換え装置による共通データの書き換え処理を示すフローチャートである。
【図１５】変形例３のメインマイコンによる全体的な処理を示すフローチャートである。
【図１６】変形例３のメインマイコンによる共通データ書き換え処理を示すフローチャートである。
【図１７】変形例３のサブマイコンによるデータ書き換え処理を示すフローチャートである。
【図１８】変形例４の書き換えシステムにおける通信バス異常の一例を示す図面である。
【図１９】変形例４の書き換えシステムにおける通信バス異常の他の例を示す図面である。
【図２０】変形例４のメインマイコンによる全体的な処理を示すフローチャートである。
【図２１】変形例４のメインマイコンによる中継判定処理を示すフローチャートである。
【図２２】変形例４のサブマイコンによる全体的な処理を示すフローチャートである。
【図２３】変形例４のサブマイコンによる中継判定処理を示すフローチャートである。
【図２４】変形例５における書き換えシステムの概略構成を示すブロック図である。
【図２５】変形例５の書き換え装置による全体的な処理を示すフローチャートである。
【図２６】変形例５の書き換え装置による書き換え処理を示すフローチャートである。
【図２７】変形例５のメインマイコンによる全体的な処理を示すフローチャートである。
【図２８】変形例５のメインマイコンによる中継処理を示すフローチャートである。
【図２９】変形例５のサブマイコンによる全体的な処理を示すフローチャートである。
【図３０】変形例５のサブマイコンによる書き換え処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下において、図面を参照しながら、発明を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成及び処理の一部のみを説明している場合は、構成及び処理の他の部分については先行して説明した他の形態を参照し適用することができる。
【００１４】
図１に示すように、本実施形態の書き換えシステムは、ＥＣＵ１００と書き換え装置２００とを備えて構成されている。本実施形態では、本発明の電子制御装置をＥＣＵ１００に適用した例を採用している。なお、ＥＣＵは、Electronic Control Unitの略称である。
【００１５】
この書き換えシステムは、例えばＥＣＵ１００の工場出荷時や、工場出荷後にディーラーなどで、書き換え装置２００によって、ＥＣＵ１００に記憶されているプログラムを書き換えるものである。なお、書き換えるプログラムは、ＥＣＵ１００が各種制御を実行するためのプログラムである制御プログラムなどである。また、制御プログラムは、製品ソフトと言い換えることもできる。また、プログラムの書き換えは、リプログラミングと言い換えることができ、更に、リプロと省略することができる。本実施形態では、ＥＣＵ１００に記憶されている制御プログラムを書き換える例を採用する。
【００１６】
書き換え装置２００は、特許請求の範囲における外部装置に相当する。この書き換え装置２００は、ＥＣＵ１００の外部に設けられており、ＥＣＵ１００に対して書き込みデータを送信する。書き換え装置２００は、ＥＣＵ１００と常時接続されているわけではなく、リプロ時にＥＣＵ１００に接続される。
【００１７】
書き換え装置２００は、通信バス７０を介して、ＥＣＵ１００のメインマイコン１０、第１サブマイコン２０、第２サブマイコン３０と通信が可能に構成されている。よって、書き換え装置２００は、通信バス７０を介して、書き込みデータをメインマイコン１０、第１サブマイコン２０、第２サブマイコン３０の夫々に送信する。なお、以下においては、メインマイコン１０、第１サブマイコン２０、第２サブマイコン３０の夫々を区別する必要がない場合、これらを纏めてマイコンと省略することもある。
【００１８】
書き込みデータは、ＥＣＵ１００に既に記憶されている制御プログラムにかわって、新たに書き込まれる制御プログラムである。つまり、書き換えシステムは、ＥＣＵ１００に記憶されている制御プログラムを、この書き込みデータに書き換えるものである。また、書き込みデータは、各マイコンに共通のデータである共通データと、マイコン毎で異なる個別データとを含むものである。
【００１９】
書き換え装置２００は、共通データを送信する場合、書き込みデータが共通データであることを各マイコンが認識可能な状態で送信する。例えば、書き換え装置２００は、書き込みデータとして共通データを送信する場合、共通データであることを示す識別子と共に送信する。なお、書き換え装置２００の処理動作に関しては、後程詳しく説明する。
【００２０】
ここで、ＥＣＵ１００の構成に関して説明する。ＥＣＵ１００は、メインマイコン１０、第１サブマイコン２０、第２サブマイコン３０と、各マイコンに接続されたバス通信トランシーバ４０〜６０と、バス通信トランシーバ４０〜６０の夫々に接続された通信バス７０とを備えて構成されている。また、ＥＣＵ１００は、メインマイコン１０と第１サブマイコン２０とを通信可能に接続している第１通信線８１と、メインマイコン１０と第２サブマイコン３０とを通信可能に接続している第２通信線８２とを備えている。しかしながら、ＥＣＵ１００は、第１通信線８１及び第２通信線８２を備えていなくてもよい。なお、ＥＣＵ１００の処理動作に関しては、後程詳しく説明する。
【００２１】
ＥＣＵ１００は、例えば、自動車に搭載されて、二つのモータを制御するモータ制御装置に適用できる。また、本実施形態では、一例として、三つのＣＰＵを備えたＥＣＵ１００を採用している。しかしながら、本発明はこれに限定されない。ＥＣＵ１００は、少なくとも二つのマイコンを備えていればよい。つまり、ＥＣＵ１００は、二つのＣＰＵと、各ＣＰＵに対応してに対して個別に設けられたフラッシュメモリとを備えていればよい。
【００２２】
また、ＥＣＵ１００は、共通のデータを用いる複数のマイコンが設けられた電子制御装置であれば適用できる。言い換えると、ＥＣＵ１００は、共通ロジックを有する複数のマイコンが設けられた電子制御装置であれば適用できる。更に、ＥＣＵ１００は、例えばＥＰＳ（電動パワーステアリング）用の電子制御装置などにも適用できる。
【００２３】
各マイコンは、通信バス７０に対して共通に接続されている。よって、ＥＣＵ１００は、各マイコンに共通に接続された一つの通信バス７０を備えている、と言うことができる。この通信バス７０を介したネットワークは、例えばＣＡＮの通信プロトコルに準拠したネットワークを採用できる。ＣＡＮは登録商標である。よって、通信バス７０は、ＣＡＮバスと言い換えることができる。また、書き換え装置２００は、ＥＣＵ１００に取り付けられた場合、通信バス７０に接続されて、ＥＣＵ１００と通信可能となる。つまり、各マイコンは、通信バス７０を共用して、書き換え装置２００とのデータ通信を行う。また、各マイコンは、自身以外のマイコンを経由することなく書き換え装置２００と直接通信できる。
【００２４】
各マイコン及び書き換え装置２００は、通信バス７０を介してデータを送信する場合、データの送信先を示す通信ＩＤをデータに付与して送信する。つまり、各マイコン及び書き換え装置２００は、通信バス７０を介して、通信ＩＤとデータとを含む通信フレームを送信する。
【００２５】
特に、書き換え装置２００は、複数のマイコンに対してデータを送信するものであり、且つ、データ毎の送信対象であるマイコンが異なることがある。そこで、本実施形態では、一例として、通信ＩＤ＝１，２，３，４を採用する。通信ＩＤ＝１は、メインマイコン１０、第１サブマイコン２０、第２サブマイコン３０の全てが送信先であることを示す。通信ＩＤ＝２は、メインマイコン１０が送信先であることを示す。通信ＩＤ＝３は、第１サブマイコン２０が送信先であることを示す。通信ＩＤ＝４は、第２サブマイコン３０が送信先であることを示す。このように、通信ＩＤは、送信先を示すものである。このため、通信ＩＤ＝１は、上記共通データであることを示す識別子として用いることもできる。なお、各マイコンと書き換え装置２００とで通信されるデータは、書き込みデータや各種コマンドなどを含む。
【００２６】
メインマイコン１０は、メインＣＰＵ１１、フラッシュメモリ１２、バス通信コントローラ１３、ＲＡＭ１４、シリアル通信コントローラ１５などを備えて構成されている。これらの構成要素は、メインマイコン１０内において、図示を省略するバスを介して、適宜接続されている。なお、ＣＰＵは、Central Processing Unitの略称である。ＲＡＭは、Random Access Memoryの略称である。
【００２７】
メインマイコン１０は、メインＣＰＵ１１がＲＡＭ１４やレジスタの一時記憶機能を利用しつつ、フラッシュメモリ１２に予め記憶された制御プログラムやバス通信コントローラ１３などを介して取得した信号などに応じて信号処理を行う。また、メインマイコン１０は、信号処理で得られた信号を、バス通信コントローラ１３などを介して出力する。メインマイコン１０は、このようにすることで各種機能を実行することができる。
【００２８】
なお、メインＣＰＵ１１は、バス通信コントローラ１３、バス通信トランシーバ４０及び通信バス７０を介して、書き換え装置２００や第１サブマイコン２０や第２サブマイコン３０と通信が可能である。更に、メインＣＰＵ１１は、シリアル通信コントローラ１５及び第１通信線８１を介して第１サブマイコン２０とシリアル通信が可能であり、シリアル通信コントローラ１５及び第２通信線８２を介して第２サブマイコン３０とシリアル通信が可能である。このシリアル通信としては、例えば、ＵＡＲＴなどを採用できる。また、第１通信線８１を介した通信、及び第２通信線８２を介した通信は、通信バス７０を介したバス通信に対して、ＣＰＵ間通信と称することができる。また、ＣＰＵ間通信は、シリアル通信に限定されない。本発明は、メインＣＰＵ１１が後程説明する第１ＣＰＵ２１や第２ＣＰＵ３１と通信できるものであればＣＰＵ間通信として採用できる。
【００２９】
また、メインマイコン１０は、ＥＣＵ１００に書き換え装置２００が接続されている場合、バス通信トランシーバ４０及び通信バス７０を介して、書き換え装置２００と通信可能な状態となる。このような状態の場合、メインマイコン１０は、自身のバス通信コントローラ１３、及びバス通信トランシーバ４０や通信バス７０を介して、書き換え装置２００から送信された通信フレームを受信することができる。
【００３０】
これによって、メインＣＰＵ１１は、フラッシュメモリ１２に記憶されている制御プログラムを、受信した通信フレームに含まれる書き込みデータに書き換えることができる。このメインＣＰＵ１１は、特許請求の範囲における書き換え手段に相当する。また、フラッシュメモリ１２は、メインＣＰＵ１１と共にメインマイコン１０に設けられているため、メインＣＰＵ１１に対応している不揮発性メモリと言うことができる。
【００３１】
第１サブマイコン２０は、第１ＣＰＵ２１、フラッシュメモリ２２、バス通信コントローラ２３、ＲＡＭ２４、シリアル通信コントローラ２５などを備えて構成されている。このように、第１サブマイコン２０は、メインマイコン１０と同様の構成を有している。また、第１ＣＰＵ２１は、メインマイコン１０と同様に、書き込みデータの受信、フラッシュメモリ２２の書き換えを行うことができる。この第１ＣＰＵ２１は、特許請求の範囲における書き換え手段に相当する。また、フラッシュメモリ２２は、第１ＣＰＵ２１と共に第１サブマイコン２０に設けられているため、第１ＣＰＵ２１に対応している不揮発性メモリと言うことができる。
【００３２】
なお、第１サブマイコン２０は、第１ＣＰＵ２１がメインＣＰＵ１１と同様に信号処理を行い、各種機能を実行する。しかしながら、第１サブマイコン２０は、メインマイコン１０と異なる機能を実行可能であってもよい。
【００３３】
また、第１ＣＰＵ２１は、バス通信コントローラ２３、バス通信トランシーバ５０及び通信バス７０を介して、書き換え装置２００やメインマイコン１０や第２サブマイコン３０と通信が可能である。更に、第１ＣＰＵ２１は、シリアル通信コントローラ２５及び第１通信線８１を介して、メインマイコン１０とシリアル通信が可能である。
【００３４】
第２サブマイコン３０は、第２ＣＰＵ３１、フラッシュメモリ３２、バス通信コントローラ３３、ＲＡＭ３４、シリアル通信コントローラ３５などを備えて構成されている。このように、第２サブマイコン３０は、メインマイコン１０と同様の構成を有している。また、第２ＣＰＵ３１は、メインマイコン１０と同様に、書込みデータの受信、フラッシュメモリ３２の書き換えを行うことができる。この第２ＣＰＵ３１は、特許請求の範囲における書き換え手段に相当する。また、フラッシュメモリ３２は、第２ＣＰＵ３１と共に第２サブマイコン３０に設けられているため、第２ＣＰＵ３１に対応している不揮発性メモリと言うことができる。
【００３５】
なお、第２サブマイコン３０は、第２ＣＰＵ３１がメインＣＰＵ１１と同様に信号処理を行い、各種機能を実行する。しかしながら、第２サブマイコン３０は、メインマイコン１０と異なる機能を実行可能であってもよい。
【００３６】
また、第２ＣＰＵ３１は、バス通信コントローラ３３、バス通信トランシーバ６０及び通信バス７０を介して、書き換え装置２００やメインマイコン１０や第１サブマイコン２０と通信が可能である。更に、第２ＣＰＵ３１は、シリアル通信コントローラ３５及び第２通信線８２を介して、メインマイコン１０とシリアル通信が可能である。なお、以下においては、メインＣＰＵ１１，第１ＣＰＵ２１，第２ＣＰＵ３１の夫々を区別する必要がない場合、これらを纏めてＣＰＵと省略することもある。
【００３７】
フラッシュメモリ１２，２２，３２は、特許請求の範囲における不揮発性メモリに相当する。各フラッシュメモリは、電気的にデータの書き換えが可能な記憶装置である。また、各フラッシュメモリには、各マイコンで用いられる制御プログラムが書き込まれている。フラッシュメモリ１２は、図２に示すように、共通領域１２ａと個別領域１２ｂとに領域が分けられている。同様に、フラッシュメモリ２２は、共通領域２２ａと個別領域２２ｂとに領域が分けられている。また、フラッシュメモリ３２は、共通領域３２ａと個別領域３２ｂとに領域が分けられている。
【００３８】
共通領域１２ａ，２２ａ，３２ａは、制御プログラムの一部であり、各マイコンで共通に用いられるデータが記憶されている記憶領域である。一方、個別領域１２ｂ，２２ｂ，３２ｂは、制御プログラムの一部であり、マイコン毎に異なるデータが記憶されている記憶領域である。よって、上記書き込みデータの共通データは、各共通領域１２ａ，２２ａ，３２ａに書き込まれる。一方、書き込みデータの個別データは、各個別領域１２ｂ，２２ｂ，３２ｂに書き込まれる。
【００３９】
例えば、各マイコンは、制御対象が同種の機器である場合、制御定数に関するデータは異なるが、制御ロジックに関するデータは共通で用いることができる。よって、共通領域１２ａ，２２ａ，３２ａには、制御プログラムの一部として制御ロジックに関するデータが記憶される。一方、個別領域１２ｂ，２２ｂ，３２ｂには、制御プログラムの一部として制御定数に関するデータが記憶される。具体的には、二つのモータジェネレータに対応したインバータの場合、モータ制御定数に関するデータを除き、制御ロジックに関するデータは共通に用いることができる。
【００４０】
また、以下においては、メインＣＰＵ１１で用いられる個別データをメインＣＰＵデータ、第１ＣＰＵ２１で用いられる個別データを第１ＣＰＵデータ、第２ＣＰＵ３１で用いられる個別データを第２ＣＰＵデータとも称する。
【００４１】
ここで、書き換えシステムの処理動作に関して説明する。まず、図３を用いて、書き換えシステムにおける、データの書き換え処理の全体的な流れを説明する。
【００４２】
ステップＳ１０では、共通領域の書き換えを行う。各ＣＰＵは、共通領域１２ａ，２２ａ，３２ａの夫々に記憶されているデータを消去し、共通領域１２ａ，２２ａ，３２ａの夫々に、共通データを書き込むことで、各共通領域１２ａ，２２ａ，３２ａの書き換えを行う。また、各ＣＰＵによる各共通領域１２ａ，２２ａ，３２ａの書き換えは、時間的に並行して行われる。
【００４３】
ステップＳ１１では、個別領域の書き換えを行う。書き換えシステムは、ステップＳ１１をマイコンの個数分ループする。つまり、個別領域の書き換えを行う際には、一つのマイコンにおける個別領域の消去と、その個別領域に対する個別データの書き込みを１ループとして、このループをマイコンの個数分行う。
【００４４】
具体的には、メインＣＰＵ１１は、個別領域１２ｂに記憶されているデータを消去し、この個別領域１２ｂに新たな個別データを書き込むことで、個別領域１２ｂの書き換えを行う。また、第１ＣＰＵ２１は、個別領域２２ｂに記憶されているデータを消去し、この個別領域２２ｂに新たな個別データを書き込むことで、個別領域２２ｂの書き換えを行う。そして、第２ＣＰＵ３１は、個別領域３２ｂに記憶されているデータを消去し、この個別領域３２ｂに新たな個別データを書き込むことで、個別領域３２ｂの書き換えを行う。これら各ＣＰＵによる各個別領域１２ｂ，２２ｂ，３２ｂの書き換えは、異なるタイミングで行われる。なお、ＥＣＵ１００は、複数のマイコンのうち、個別データを書き換える必要がないマイコンが含まれていてもよい。
【００４５】
このように、ＥＣＵ１００は、フラッシュメモリ１２，２２，３２に記憶されている制御プロフラムを消去して、受信した書き込みデータをフラッシュメモリ１２，２２，３２に書き込む。このようにして、ＥＣＵ１００は、フラッシュメモリ１２，２２，３２を受信した書き込みデータに書き換える。
【００４６】
ここで、書き換え装置２００及び各マイコンの処理動作に関して詳細に説明する。まず、図４〜図６を用いて、書き換え装置２００の処理動作に関して説明する。
【００４７】
書き換え装置２００は、図４に示すように、ステップＳ２０で共通データの書き換えを行い、ステップＳ２１で個別データの書き換えを行う。書き換え装置２００は、ステップＳ２０，Ｓ２１では、各マイコンに対して指示を送信し、各マイコンからの応答を受信する。
【００４８】
書き換え装置２００は、共通データの書き換えを行う場合、図５に示すフローチャートを実行する。ステップＳ３０では、全マイコンへ消去指示を行う。書き換え装置２００は、消去指示のコマンド及び通信ＩＤ＝１を含む通信フレームを通信バス７０に出力する。つまり、書き換え装置２００は、この通信フレームを、メインＣＰＵ１１，第１ＣＰＵ２１，第２ＣＰＵ３１の夫々に対して一斉に送信する。
【００４９】
なお、後程説明するが、各マイコンは、消去コマンドを受信すると、各フラッシュメモリ１２，２２，３２の消去を実施すると共に、その消去が成功したか否かを判定する。そして、各マイコンは、その判定結果として、消去が成功したことを示す肯定応答、又は消去が失敗したことを示す否定応答を書き換え装置２００に送信する。つまり、各マイコンは、コマンド実行が成功したか否かを書き換え装置２００に通知する。
【００５０】
ステップＳ３１では、全マイコンから肯定応答を受信したか否かを判定する。書き換え装置２００は、全マイコンから肯定応答を受信したと判定した場合はステップＳ３２へ進み、全マイコンから肯定応答を受信したと判定してない場合はＳ３０へ戻る。つまり、書き換え装置２００は、否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合はステップＳ３０に戻る。この所定時間は、タイムアウト時間と称することもできる。また、タイムアウト時間は、例えば規定時間にマージンを加えた時間である。
【００５１】
なお、書き換え装置２００は、ステップＳ３２に進むことなく、ステップＳ３０，Ｓ３１を所定回数繰り返した場合、図６の処理を終了する。以下においては、このように処理と判定を所定回数繰り返した場合に、そのフローチャートの処理を終了することをリトライ処理とも称する。
【００５２】
ステップＳ３２では、全マイコンに対して書き込み指示及び書き込みデータを送信する。書き換え装置２００は、書き込みデータとして共通データを送信する。具体的には、書き換え装置２００は、書き込み指示を示す情報、共通データ、及び通信ＩＤ＝１を含む通信フレームを通信バス７０に出力する。このように、共通データは全てのマイコンに共通であるため、書き換え装置２００は、全てのマイコンが送信先となる通信ＩＤ＝１を含む通信フレームを送信する。つまり、書き換え装置２００は、この通信フレームを、複数のＣＰＵに対して一斉に送信する。なお、書き換え装置２００は、書き込み指示を示す情報として書き込みデータ（ここでは共通データ）を用いてもよい。つまり、各マイコンは、自身宛ての書き込みデータを受信すると、書き込み指示とみなして、受信した書き込みデータを各フラッシュメモリ１２，２２，３２に書き込む。また、書き換え装置２００は、書き込みデータと通信ＩＤに加えて、書き込みデータが共通データであるか、個別データであるかを示すデータ種別を示す情報を含む通信フレームを送信してもよい。
【００５３】
なお、後程説明するが、各マイコンは、書き込みデータを受信すると、受信した書き込みデータを各フラッシュメモリ１２，２２，３２に書き込むと共に、その書き込みが成功したか否かを判定する。そして、各マイコンは、その判定結果として、書き込みが成功したことを示す肯定応答、又は書き込みが失敗したことを示す否定応答を書き換え装置２００に送信する。つまり、各マイコンは、コマンド実行が成功したか否かを書き換え装置２００に通知する。
【００５４】
ステップＳ３３では、全マイコンから肯定応答を受信したか否かを判定する。書き換え装置２００は、全マイコンから肯定応答を受信したと判定した場合は図６の処理を終了し、全マイコンから肯定応答を受信したと判定してない場合はＳ３２へ戻る。つまり、書き換え装置２００は、否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合はステップＳ３２に戻る。なお、書き換え装置２００は、ステップＳ３２，Ｓ３３でリトライ処理を実行する。
【００５５】
書き換え装置２００は、個別データの書き換えを行う場合、図６に示すフローチャートを実行する。書き換え装置２００は、書き換え対象のフラッシュメモリが設けられているマイコンの個数分、ステップＳ４０〜Ｓ４３を繰り返す。この書き換え対象のフラッシュメモリが設けられているマイコンは、書き換え対象のマイコンと言い換えることができる。本実施形態では、メインマイコン１０，第１サブマイコン２０，第２サブマイコン３０が書き換え対象のマイコンである。よって、書き換え装置２００は、ステップＳ４０〜Ｓ４３を三回繰り返す。つまり、書き換え装置２００は、メインマイコン１０，第１サブマイコン２０，第２サブマイコン３０に対して順番に個別データの書き換えを行う。
【００５６】
ステップＳ４０では、マイコンｎへ消去指示を行う。書き換え装置２００は、複数のマイコンのうちの一つに対して消去指示を行う。本実施形態では、ｎ＝１，２，３とし、ｎ＝１がメインマイコン１０、ｎ＝２が第１サブマイコン２０、ｎ＝３が第２サブマイコン３０とする。また、ここでは、書き換え装置２００がメインマイコン１０から消去指示を行う例を採用する。よって、まず、書き換え装置２００は、消去指示のコマンド及び通信ＩＤ＝２を含む通信フレームを通信バス７０に出力する。
【００５７】
ステップＳ４１では、マイコンｎから肯定応答を受信したか否かを判定する。書き換え装置２００は、メインマイコン１０から肯定応答を受信したと判定した場合はステップＳ４２へ進み、メインマイコン１０から肯定応答を受信したと判定してない場合はＳ４０へ戻る。つまり、書き換え装置２００は、否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合はステップＳ４０に戻る。なお、書き換え装置２００は、ステップＳ４０，Ｓ４１でリトライ処理を実行する。
【００５８】
ステップＳ４２では、マイコンｎへ書き込み指示及び書き込みデータを送信する。書き換え装置２００は、書き込みデータとして個別データであるメインＣＰＵデータを送信する。具体的には、書き換え装置２００は、書き込み指示を示す情報、メインＣＰＵデータ、及び通信ＩＤ＝２を含む通信フレームを通信バス７０に出力する。言い換えると、書き換え装置２００は、メインＣＰＵ１１に対して、メインＣＰＵデータを送信する。
【００５９】
ステップＳ４３では、マイコンｎから肯定応答を受信したか否かを判定する。書き換え装置２００は、メインマイコン１０から肯定応答を受信したと判定した場合は次のループへ進み、メインマイコン１０から肯定応答を受信したと判定してない場合はＳ４２へ戻る。つまり、書き換え装置２００は、否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合はステップＳ４２に戻る。なお、書き換え装置２００は、ステップＳ４２，Ｓ４３でリトライ処理を実行する。
【００６０】
そして、書き換え装置２００は、メインマイコン１０から肯定応答を受信すると、次のループとして、第１サブマイコン２０を対象としたステップＳ４０〜Ｓ４３を実行する。書き換え装置２００は、このループにおいては、通信ＩＤ＝３、個別データとして第１ＣＰＵデータを採用する。
【００６１】
更に、書き換え装置２００は、第１サブマイコン２０から肯定応答を受信すると、次のループとして、第２サブマイコン３０を対象としたステップＳ４０〜Ｓ４３を実行する。書き換え装置２００は、このループにおいては、通信ＩＤ＝４、個別データとして第２ＣＰＵデータを採用する。このように、個別データは各マイコンで異なるため、書き換え装置２００は、通信ＩＤを変えて個別データを送信する。なお、本実施形態では、メインマイコン１０、第１サブマイコン２０、第２サブマイコン３０の順番で個別データの書き換えを行う例を採用した。しかしながら、本発明はこれに限定されない。
【００６２】
次に、図７，図８を用いて、各マイコンの処理動作に関して説明する。各マイコンは、図７に示す全体的な処理を実行する。そして、各マイコンは、全体的な処理の一部として、図８に示す書き換え処理を実行する。詳述すると、図７，図８の処理は、複数のＣＰＵの夫々が実行する。
【００６３】
各マイコンは、図７に示すように、ステップＳ５０で書き換え装置２００からデータを受信すると、ステップＳ５１でデータ書き換えを行う。その後、各マイコンは、ステップＳ５２で書き換え装置２００からデータなしか否かを判定、データなしと判定すると図７の処理を終了し、データなしと判定しない場合はステップＳ５０に戻る。
【００６４】
ここで、図８のフローチャートを用いて、各マイコンによる書き換え処理に関して説明する。つまり、図８を用いて、ステップＳ５１の処理を説明する。ステップＳ６０では、消去指示を受信したか否かを判定する。各ＣＰＵは、消去指示のコマンドを受信したか否かを判定し、受信したと判定した場合はステップＳ６１に進み、受信したと判定してない場合はステップＳ６０での判定を繰り返す。
【００６５】
ステップＳ６１では、消去を実行する。各ＣＰＵは、消去指示のコマンドを含む通信フレームを受信すると、上記ステップＳ１０，Ｓ１１に示すように、共通領域１２ａ，２２ａ，３２ａの夫々に記憶されているデータを消去し、個別領域１２ｂ，２２ｂ，３２ｂの夫々に記憶されているデータを消去する。なお、各ＣＰＵは、通信フレームに含まれているデータ種別、又は通信ＩＤによって、共通データの書き換えなのか、個別データの書き換えなのかを判定できる。
【００６６】
具体的には、各ＣＰＵは、消去指示のコマンド及び通信ＩＤ＝１を含む通信フレームを受信した場合、共通データの書き換えを行うための消去指示と認識する。従って、各ＣＰＵは、各共通領域１２ａ，２２ａ，３２ａの消去指示とみなして、各共通領域１２ａ，２２ａ，３２ａに記憶されているデータを消去する。
【００６７】
また、メインＣＰＵ１１は、消去指示のコマンド及び通信ＩＤ＝２を含む通信フレームを受信した場合、個別データの書き換えを行うための消去指示と認識する。従って、メインＣＰＵ１１は、個別領域１２ｂの消去指示とみなして、個別領域１２ｂに記憶されているデータを消去する。
【００６８】
同様に、第１ＣＰＵ２１は、消去指示のコマンド及び通信ＩＤ＝３を含む通信フレームを受信した場合、個別領域２２ｂの消去指示とみなして、個別領域２２ｂに記憶されているデータを消去する。また、第２ＣＰＵ３１は、消去指示のコマンド及び通信ＩＤ＝４を含む通信フレームを受信した場合、個別領域３２ｂの消去指示とみなして、個別領域３２ｂに記憶されているデータを消去する。
【００６９】
ステップＳ６２では、消去に成功したか否かを判定する。各ＣＰＵは、消去成功と判定した場合はステップＳ６３へ進み、消去成功と判定しなかった場合はステップＳ６１に戻る。つまり、各ＣＰＵは、消去に失敗した場合、もしくは所定時間内に消去を終了できなかった場合はステップＳ６１に戻る。なお、各ＣＰＵは、ステップＳ６３へ進むことなくステップＳ６２でのＮＯ判定を所定回数繰り返した場合、ステップＳ６８に進む。
【００７０】
ステップＳ６３では、書き換え装置２００に対して肯定応答を行う。消去に成功したと判定したＣＰＵは、書き換え装置２００へ肯定応答を行う。このとき、ＣＰＵは、通信バス７０を介して、肯定応答を示すデータを含む通信フレームを書き換え装置２００に対して送信する。
【００７１】
ステップＳ６４では、書き込み指示を受信したか否かを判定する。各ＣＰＵは、書き込み指示を受信したと判定した場合はステップＳ６５に進み、書き込み指示を受信したと判定してない場合はステップＳ６４での判定を繰り返す。各マイコンは、書き込み指示を示す情報、又は書き込みデータを受信すると、書き込み指示を受信したと判定する。
【００７２】
ステップＳ６５では、書き込みを実行する。各ＣＰＵは、受信した通信フレームに、自身が設けられているマイコンが送信先であることを示す通信ＩＤが含まれていた場合、その通信フレームに含まれている書き込みデータを、自身に対応したフラッシュメモリに書き込む。詳述すると、各ＣＰＵは、ステップＳ６１でデータを消去した領域に、通信フレームに含まれている書き込みデータを書き込む。このようにして、各ＣＰＵは、フラッシュメモリを書き換える。
【００７３】
例えば、各ＣＰＵは、共通データ及び通信ＩＤ＝１を含む通信フレームを受信すると、共通データの書き換えを行うための書き込み指示と認識する。従って、各ＣＰＵは、共通データ及び通信ＩＤ＝１を含む通信フレームを受信すると、上記ステップＳ１１のように、共通領域１２ａ，２２ａ，３２ａの夫々に共通データを書き込む（書き換え手段）。
【００７４】
上記のように通信ＩＤ＝１は、全マイコンが送信先であることを示す。よって、全ＣＰＵは、共通データ及び通信ＩＤ＝１を含む通信フレームを受信すると、時間的に並行して、共通領域１２ａ，２２ａ，３２ａの夫々に共通データを書き込むことになる。つまり、全ＣＰＵは、共通データを受信した場合、時間的に並行して、各フラッシュメモリに記憶されているデータを受信した共通データに書き換える（書き換え手段）。
【００７５】
また、各ＣＰＵは、個別データ及び通信ＩＤ＝２などを含む通信フレームを受信すると、上記ステップＳ１２のように、個別領域１２ｂ，２２ｂ，３２ｂの夫々に個別データを書き込む（書き換え手段）。
【００７６】
具体的には、メインＣＰＵ１１は、メインＣＰＵデータ及び通信ＩＤ＝２を含む通信フレームを受信すると、個別データの書き換えを行うための書き込み指示と認識する。従って、メインＣＰＵ１１は、メインＣＰＵデータ及び通信ＩＤ＝２を含む通信フレームを受信すると、個別領域１２ｂにメインＣＰＵデータを書き込む。
【００７７】
同様に、第１ＣＰＵ２１は、第１ＣＰＵデータ及び通信ＩＤ＝３を含む通信フレームを受信すると、個別領域２２ｂに第１ＣＰＵデータを書き込む。また、第２ＣＰＵ３１は、第２ＣＰＵデータ及び通信ＩＤ＝４を含む通信フレームを受信すると、個別領域３２ｂに第２ＣＰＵデータを書き込む。このように、各ＣＰＵは、順番に個別領域１２ｂ，２２ｂ，３２ｂの夫々に個別データを書き込む。
【００７８】
ステップＳ６６では、書き込みに成功したか否かを判定する。各ＣＰＵは、書き込み成功と判定した場合はステップＳ６７へ進み、書き込み成功と判定しなかった場合はステップＳ６５に戻る。つまり、各ＣＰＵは、書き込みに失敗した場合、もしくは所定時間内に書き込みを終了できなかった場合、ステップＳ６５に戻る。なお、各ＣＰＵは、ステップＳ６７に進むことなくステップＳ６６でのＮＯ判定を所定回数繰り返した場合、ステップＳ６８に進む。
【００７９】
ステップＳ６７では、書き換え装置２００に対して肯定応答を行う。このとき、ＣＰＵは、通信バス７０を介して、肯定応答を示すデータを含む通信フレームを書き換え装置２００に対して送信する。
【００８０】
一方、ステップＳ６８では、書き換え装置２００に対して否定応答を行う。このとき、ＣＰＵは、通信バス７０を介して、否定応答を示すデータを含む通信フレームを書き換え装置２００に対して送信する。
【００８１】
このように、ＥＣＵ１００は、フラッシュメモリ１２，２２，３２に記憶されているデータを、受信した共通データに書き換える場合、複数のＣＰＵが時間的に並行して書き換えを行う。このため、各ＣＰＵは、フラッシュメモリ１２，２２，３２に記憶されているデータを、受信した共通データに書き換える際に、他のＣＰＵによる共通データの書き換えが終了するのを待つ必要がない。よって、ＥＣＵ１００は、書き換え時間を短縮できる。また、ＥＣＵ１００は、全マイコンの書き換え総時間を短縮できる、と言うことができる。なお、ＥＣＵ１００は、各共通領域１２ａ，２２ａ，３２ａが大きいほど効果が増大する。また、ＥＣＵ１００は、ＣＰＵの数が増えるほど効果が増大する。
【００８２】
また、ＥＣＵ１００は、各マイコンに共通に接続された一つの通信バス７０を介して書き換え装置２００と通信できる。このため、ＥＣＵ１００は、各マイコンにおける共通データを物理的に並列に通信でき、時間の短縮効果を向上できる。
【００８３】
また、書き換えシステムでは、書き換え装置２００が、複数のマイコンの夫々に対して共通データを送信する場合、書き込みデータが共通データであることを複数のマイコンが認識可能な状態で送信する。このため、書き換えシステムは、共通データを書き込むか、又は個別データを書き込むかを、各マイコンが容易に判断できる。
【００８４】
また、各ＣＰＵは、消去に成功しなかった場合や書込みに成功しなかった場合に肯定応答をしない。一方、書き換え装置２００は、肯定応答がないと、書き込みデータを送信しない。よって、書き換えシステムは、消去に成功しなかったマイコンに対して書き込みデータを送信することを抑制できる。
【００８５】
なお、ＥＣＵ１００のリプロは、ＥＣＵ１００を自動車から取り外し、基板レベルまで分解して、シリアル通信で行うことも考えられる。しかしながら、ＥＣＵ１００を自動車から取り外し、基板レベルまで分解することは困難である。よって、自動車に搭載された状態でのＥＣＵ１００のリプロは、ディーラーなどにおいて、通信バス７０を介して行うことが多い。上記のようにＥＣＵ１００は、書き換え時間を短縮できるため、ディーラーなどでのリプロ時間を短縮できる。
【００８６】
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上述した実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本発明の変形例１〜５に関して説明する。上述の実施形態及び変形例１〜５は、夫々単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本発明は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
【００８７】
（変形例１）
変形例１のＥＣＵは、同一の種類であるメインマイコン１０，第１サブマイコン２０，第２サブマイコン３０を備えている。つまり、変形例１のＥＣＵは、同一の種類であるマイコンが複数設けられている。同一の種類であるマイコンとは、フラッシュメモリのデータを消去するのに要する時間、及びフラッシュメモリに対してデータを書き込むのに要する時間が同じマイコンである。つまり、同一の種類であるマイコンとは、フラッシュメモリの書き換えに要する時間が同じマイコンである。なお、変形例１の書き換え装置２００は、上記実施形態によるものと処理動作が異なるが便宜的に同じ符号を採用する。
【００８８】
ここで、変形例１における書き換え装置２００及び各マイコンの処理動作に関して詳細に説明する。
【００８９】
まず、図１１を用いて、変形例１の各マイコンの書き換え処理に関して説明する。なお、変形例１の各マイコンの全体的な処理は、上記実施形態によるものと同様である。
【００９０】
変形例１のＥＣＵは、各マイコンの書き換えに要する時間が同じであるため、各マイコンによる書き換え時間を揃えることができる。このため、変形例１のＥＣＵは、書き換え装置２００に対する肯定応答及び否定応答の送信が不要となる。従って、変形例１の各マイコンは、図１１に示すように、ステップＳ６０〜Ｓ６２，Ｓ６４〜Ｓ６６を実行すればよい。つまり、変形例１の各マイコンは、図８のステップＳ６３，Ｓ６７，Ｓ６８を実行する必要がない。なお、変形例１の各マイコンは、ステップＳ６２，Ｓ６６でＮＯ判定の場合は図１１の処理を終了する。
【００９１】
一方、変形例１の書き換え装置２００は、共通データの書き換えを行う場合、図９に示すフローチャートを実行する。変形例１の書き換え装置２００は、図５のステップＳ３１，Ｓ３３を実行する必要がない。変形例１の書き換え装置２００は、ステップＳ３０，Ｓ３２に加えて、ステップＳ３４に示す規定時間ウェイトを実行する。各マイコンは、種類に応じた消去時間が必ず存在し、その時間を待たないと書込みが出来ない。そこで、変形例１の書き換え装置２００は、ステップＳ３０で消去指示を行った後に、ステップＳ３４で規定時間待って、ステップＳ３２の書き込み指示を行う。よって、ここでの規定時間とは、各マイコンの種類に応じた消去時間、又はその消去時間にマージンを加えた時間である。
【００９２】
また、変形例１の書き換え装置２００は、個別データの書き換えを行う場合、図１０に示すフローチャートを実行する。変形例１の書き換え装置２００は、図６のステップＳ４１，Ｓ４３を実行する必要がない。変形例１の書き換え装置２００は、ステップＳ４０，Ｓ４２に加えて、ステップＳ３４と同様に、ステップＳ４４の規定時間ウェイトを実行する。
【００９３】
よって、変形例１のＥＣＵは、ＥＣＵ１００よりも処理を低減しつつ、ＥＣＵ１００と同様の効果を奏することができる。
【００９４】
（変形例２）
変形例２のＥＣＵは、複数のフラッシュメモリにおける共通領域１２ａ，２２ａ，３２ａのアドレスが同一である。図１２に示すように、各フラッシュメモリは、例えばアドレス0x00000000から0x00010000の領域が共通領域１２ａ，２２ａ，３２ａとして割り当てられている。つまり、変形例２のＥＣＵは、各フラッシュメモリにおける共通領域１２ａ，２２ａ，３２ａのアドレスを固定しておく。
【００９５】
変形例２のＥＣＵは、ＥＣＵ１００と同様の効果を奏することができる。また、変形例２においては、書き換え装置２００が共通データを識別することが容易になる。つまり、書き換え装置２００は、マイコン毎にどのアドレスからどのアドレスまで共通データを書き込むのかを判断する必要がない。
【００９６】
（変形例３）
変形例３のＥＣＵ１００ａは、主に、書き換え装置２００への応答をメインマイコン１０ａが集約する点がＥＣＵ１００と異なる。ＥＣＵ１００ａは、これ以外の点に関してはＥＣＵ１００と同様である。なお、変形例３の書き換え装置２００は、上記実施形態によるものと処理動作が異なるが便宜的に同じ符号を採用する。
【００９７】
ＥＣＵ１００ａは、図１３に示すように、メインマイコン１０ａ、第１サブマイコン２０ａ、第２サブマイコン３０ａを備えて構成されている。メインマイコン１０ａは、特許請求の範囲におけるメイン処理部に相当し、第１サブマイコン２０ａと第２サブマイコン３０ａは、特許請求の範囲におけるサブ処理部に相当する。各マイコンの構成要素は、上記実施形態と同様である。よって、以下においては、便宜的に、各マイコンの構成要素を上記実施形態と同じ符号を用いて説明する。なお、図１３においては、バス通信トランシーバ４０〜６０を省略している。また、以下においては、第１サブマイコン２０ａと第２サブマイコン３０ａとを区別する必要がない場合、これらを纏めてサブマイコンとも記載する。
【００９８】
ここで、書き換え装置２００及び各マイコンの処理動作に関して詳細に説明する。まず、図１４を用いて、書き換え装置２００の共通データの書き換え処理に関して説明する。なお、全体的な処理及び個別データの書き換え処理に関しては、図４及び図６と同様である。
【００９９】
変形例３の書き換え装置２００は、図１４に示すように、ステップＳ３１ａ，Ｓ３３ａの判定が上記書き換え装置２００と異なる。
【０１００】
ステップＳ３１ａでは、メインマイコン１０ａから肯定応答を受信したか否かを判定する。書き換え装置２００は、メインマイコン１０ａから肯定応答を受信したと判定した場合はステップＳ３２へ進み、メインマイコン１０ａから肯定応答を受信したと判定してない場合はステップＳ３０に戻る。
【０１０１】
ステップＳ３３ａでは、メインマイコン１０ａから肯定応答を受信したか否かを判定する。書き換え装置２００は、メインマイコン１０ａから肯定応答を受信したと判定した場合は図１４の処理を終了し、肯定応答を受信したと判定してない場合はステップＳ３２へ戻る。
【０１０２】
次に、図１５〜図１７を用いて、各マイコンのコマンド処理に関して説明する。変形例３のＥＣＵ１００ａは、メインマイコン１０ａとサブマイコンとで処理内容が異なる。また、図１７のステップＳ６６は、特許請求の範囲における第１判定手段に相当する。ステップＳ６７，Ｓ６８は、特許請求の範囲における第１送信手段に相当する。ステップＳ６６ａは、特許請求の範囲における第２判定手段に相当する。ステップＳ６７，Ｓ６８は、特許請求の範囲における第２送信手段に相当する。
【０１０３】
まず、図１５、図１６を用いてメインマイコン１０ａの処理に関して説明する。メインマイコン１０ａは、全体的な処理として、図１５に示す処理を実行する。図１５に示すように、メインマイコン１０ａは、図７のステップＳ５１にかえて、ステップＳ５３〜Ｓ５６を実行する。
【０１０４】
ステップＳ５３では、書き換え装置２００から指定されたデータ種別毎に分岐する。メインＣＰＵ１１は、データ種別が共通データであると判定した場合はステップＳ５４へ進み、データ種別が個別データであると判定した場合はステップＳ５５へ進む。
【０１０５】
ステップＳ５４では、共通データの書き換え処理を実行する。一方、ステップＳ５６では、共通データの書き換え処理を実行する。
【０１０６】
メインマイコン１０ａは、共通データの書き換えを行う場合、図１６に示すフローチャートを実行する。なお、メインマイコン１０ａによる個別データの書き換え処理は、図８と同様である。
【０１０７】
図１６に示すように、メインマイコン１０ａは、図８のステップＳ６２，Ｓ６６にかえて、ステップＳ６２ａ，Ｓ６６ａを実行する。ステップＳ６２ａでは、自身の消去成功、且つ、全サブマイコンから肯定応答を受信したか否かを判定する。つまり、メインＣＰＵ１１は、全てのＣＰＵで消去が成功したか否かを判定する。そして、メインＣＰＵ１１は、自身が消去に成功、且つ、全サブマイコンから肯定応答を受信したと判定した場合はステップＳ６３へ進む。また、メインＣＰＵ１１は、自身が消去に成功したと判定してない場合、又は、全サブマイコンから肯定応答を受信したと判定してない場合はステップＳ６１へ戻る。
【０１０８】
ステップＳ６６ａでは、自身の書き込み成功、且つ、全サブマイコンから肯定応答を受信したか否かを判定する。つまり、メインＣＰＵ１１は、全てのＣＰＵで書き込みが成功したか否かを判定する。そして、メインＣＰＵ１１は、自身が消書き込みに成功、且つ、全サブマイコンから肯定応答を受信したと判定した場合はステップＳ６７へ進む。また、メインＣＰＵ１１は、自身が書き込み消去に成功したと判定してない場合、又は、全サブマイコンから肯定応答を受信したと判定してない場合はステップＳ６５へ戻る。
【０１０９】
次に、図１７を用いてサブマイコンの処理に関して説明する。なお、各サブマイコンの全体的な処理は、図７と同様である。各サブマイコンは、書き換え処理を行う場合、図１７に示すフローチャートを実行する。図１７に示すように、各サブマイコンは、図８のステップＳ６３，Ｓ６７，Ｓ６８にかえて、ステップＳ６３ａ，Ｓ６７ａ，Ｓ６８ａを実行する。
【０１１０】
ステップＳ６３ａでは、メインマイコン１０ａ又は書き換え装置２００に肯定応答を行う。第１ＣＰＵ２１は、共通領域２２ａの消去に成功したと判定した場合は第１通信線８１を介してメインマイコン１０ａに肯定応答を行い、個別領域２２ｂの消去に成功したと判定した場合は通信バス７０を介して書き換え装置２００に肯定応答を行う。第２ＣＰＵ３１は、共通領域３２ａの消去に成功したと判定した場合は第２通信線８２を介してメインマイコン１０ａに肯定応答を行い、個別領域３２ｂの消去に成功したと判定した場合は通信バス７０を介して書き換え装置２００に肯定応答を行う。
【０１１１】
ステップＳ６７ａは、メインマイコン１０ａ又は書き換え装置２００に肯定応答を行う。第１ＣＰＵ２１は、共通データの書き込みに成功したと判定した場合は第１通信線８１を介してメインマイコン１０ａに肯定応答を行い、個別データの書き込みに成功したと判定した場合は通信バス７０を介して書き換え装置２００に肯定応答を行う。第２ＣＰＵ３１は、共通データの書き込みに成功したと判定した場合は第２通信線８２を介してメインマイコン１０ａに肯定応答を行い、個別データの書き込みに成功したと判定した場合は通信バス７０を介して書き換え装置２００に肯定応答を行う。
【０１１２】
ステップＳ６８ａは、メインマイコン１０ａ又は書き換え装置２００に否定応答を行う。第１ＣＰＵ２１は、共通データの書き込みに成功したと判定してない場合は第１通信線８１を介してメインマイコン１０ａに否定応答を行い、個別データの書き込みに成功したと判定してない場合は通信バス７０を介して書き換え装置２００に否定応答を行う。第２ＣＰＵ３１は、共通データの書き込みに成功したと判定してない場合は第２通信線８２を介してメインマイコン１０ａに否定応答を行い、個別データの書き込みに成功したと判定してない場合は通信バス７０を介して書き換え装置２００に否定応答を行う。
【０１１３】
ＥＣＵ１００ａは、ＥＣＵ１００と同様の効果を奏することができる。また、ＥＣＵ１００ａは、書き換え装置２００に対して、通信バス７０を介して肯定応答又は否定応答を行うのがメインマイコン１０ａである。つまり、第１サブマイコン２０ａ及び第２サブマイコン３０ａは、書き換え装置２００に対して、通信バス７０を介して肯定応答又は否定応答を行わない。よって、ＥＣＵ１００ａは、ＥＣＵ１００よりも通信バス７０の負荷を低減できる。更に、書き換え装置２００は、各マイコンからの応答を待つ必要がない。なお、変形例３の書き換えシステムは、実施形態の書き換えシステムよりも通信バス７０の負荷を低減できる、と言うことができる。
【０１１４】
（変形例４）
変形例４のＥＣＵ１００ｂは、主に、各マイコンがデータを中継可能に構成されている点がＥＣＵ１００，００ａなどと異なる。ＥＣＵ１００ｂは、これ以外の点に関してはＥＣＵ１００，１００ａなどと同様である。
【０１１５】
ＥＣＵ１００ｂは、図１８，図１９に示すように、メインマイコン１０ｂ、第１サブマイコン２０ｂ、第２サブマイコン３０ｂを備えて構成されている。メインマイコン１０ｂは、特許請求の範囲におけるメイン処理部に相当し、第１サブマイコン２０ｂと第２サブマイコン３０ｂは、特許請求の範囲におけるサブ処理部に相当する。各マイコンの構成要素は、上記実施形態と同様である。よって、以下においては、便宜的に、各マイコンの構成要素を上記実施形態と同じ符号を用いて説明する。なお、図１８，図１９においては、バス通信トランシーバ４０〜６０を省略している。また、以下においては、第１サブマイコン２０ｂと第２サブマイコン３０ｂとを区別する必要がない場合、これらを纏めてサブマイコンとも記載する。
【０１１６】
ここで、各マイコンの処理動作に関して詳細に説明する。まず、図２０を用いて、メインマイコン１０ｂの全体的な処理に関して説明する。メインマイコン１０ｂは、図１５のフローチャートに加えて、ステップＳ５６を実行する。つまり、ステップＳ５６では、メインＣＰＵ１１は、中継判定を行う。また、メインＣＰＵ１１は、中継判定を行う場合、図２１に示すフローチャートを実行する。
【０１１７】
ステップＳ７０では、メインマイコン１０ｂは、通信バス診断を行う（通信判定手段）。つまり、メインＣＰＵ１１は、通信バス７０によるデータ通信の可否を判定する。メインＣＰＵ１１は、例えば、バスオフチェックなどによって、データ通信の可否を判定する。
【０１１８】
ステップＳ７１では、サブマイコンから診断結果を取得する。メインＣＰＵ１１は、第１通信線８１を介して第１サブマイコン２０ｂから診断結果を取得すると共に、第２通信線８２を介して第２サブマイコン３０ｂから診断結果を取得する。
【０１１９】
ステップＳ７２では、全マイコンが正常であるか否かを判定する。つまり、メインＣＰＵ１１は、全マイコンが通信バス７０によるデータ通信が可能な状態であると判定したか否かを判定する。なお、正常とは、通信バス７０によるデータ通信が可能な状態であり、通信可と称することもできる。一方、通信バス７０によるデータ通信が可能でない状態は異常又は通信否と称する。そして、メインＣＰＵ１１は、全マイコンが正常であると判定した場合は図２１の処理を終了し、全マイコンが正常であると判定しなかった場合はステップＳ７３へ進む。なお、異常との診断結果を出力したサブマイコンは、異常サブマイコンと言い換えることもできる。
【０１２０】
ステップＳ７３では、自身が正常であるか否かを判定する。そして、メインＣＰＵ１１は、自身が正常であると判定した場合、第１サブマイコン２０ｂ及び第２サブマイコン３０ｂの少なくとも一方が正常でないとみなしてステップＳ７４に進む。また、メインＣＰＵ１１は、自身が正常でないと判定した場合はステップＳ７５に進む。なお、メインＣＰＵ１１は、ステップＳ７１で取得した診断結果によって、第１サブマイコン２０ｂ及び第２サブマイコン３０ｂのどちらが異常であるかを把握することができる。
【０１２１】
ステップＳ７４では、異常サブマイコンが取得すべき通信ＩＤを自身が取得可設定し、以降の異常サブマイコン向け通信フレームを異常サブマイコンに中継する。つまり、メインＣＰＵ１１は、通信バス７０に送信された通信フレームのうち、異常サブマイコンが取得すべき通信ＩＤを含む通信フレームをメインマイコン１０ｂが取得できるように設定する。これによって、メインマイコン１０ｂは、自身が送信先であることを示す通信ＩＤを含む通信フレームに加えて、異常サブマイコンが送信先であることを示す通信ＩＤを含む通信フレームを受信することができる。
【０１２２】
言い換えると、メインＣＰＵ１１は、自身が送信先であることを示す通信ＩＤと共に通信フレームに含まれたデータと、異常サブマイコンが送信先であることを示す通信ＩＤと共に通信フレームに含まれたデータを取得できる。例えば、メインマイコン１０ｂは、通信ＩＤ＝１を含む通信フレーム、通信ＩＤ＝２を含む通信フレームに加えて、通信ＩＤ＝３を含む通信フレームを受信できる。なお、メインマイコン１０ｂは、異常サブマイコン宛のデータを取得した場合、異常サブマイコンからのバイパス要求に応じて、第１通信線８１又は第２通信線８２を介して異常サブマイコンに送信する。
【０１２３】
ステップＳ７５では、第１サブマイコン２０ｂにバイパス要求する。メインＣＰＵ１１は、自身が通信バス７０を介してデータを受信することができないので、そのデータを第１サブマイコン２０ｂにバイパスしてもらうように要求する。このとき、メインＣＰＵ１１は、第１通信線８１を介して、バイパス要求を示す信号を第１サブマイコン２０ｂに送信する。
【０１２４】
ステップＳ７６では、以降の通信先を書き換え装置２００から第１サブマイコン２０ｂに切り替える。言い換えると、メインＣＰＵ１１は、以降のデータ取得元を第１サブマイコン２０ｂに切り替える（切替手段）。このように、メインマイコン１０ｂは、ステップＳ７０で通信否と診断した場合、書き換え装置２００から受信していたデータを、第１サブマイコン２０ｂから第１通信線８１を介して受信するように切り替える。よって、メインマイコン１０ｂは、例えば、図１９に示すように、通信バス７０を介してデータを受信できない場合、二点鎖線で示すように書き込みデータやコマンドを第１サブマイコン２０ｂから受信することができる。
【０１２５】
なお、ここでは、第１サブマイコン２０ｂに切り替える例を採用しているが、本発明はこれに限定されない。メインマイコン１０ｂは、自身以外のマイコンに切り替えればよく、例えば第２サブマイコン３０ｂに切り替えてもよい。
【０１２６】
次に、図２２を用いて、サブンマイコンの全体的な処理に関して説明する。サブマイコンは、図７のフローチャートに加えて、ステップＳ５７を実行する。つまり、ステップＳ５７では、第１ＣＰＵ２１及び第２ＣＰＵ３１は、中継判定を行う。なお、本変形例においては、サブマイコンは、ステップＳ５０において、書き換え装置２００又はメインマイコン１０ｂからデータ受信することになる。
【０１２７】
また、第１ＣＰＵ２１及び第２ＣＰＵ３１は、中継判定を行う場合、図２３に示すフローチャートを実行する。以下においては、第１ＣＰＵ２１と第２ＣＰＵ３１とを区別する必要がない場合、これらを纏めてサブＣＰＵとも記載する。
【０１２８】
ステップＳ８０では、通信バス診断を行う（通信判定手段）。各サブＣＰＵは、ステップＳ７０と同様に、通信バス７０によるデータ通信の可否を判定する。
【０１２９】
ステップＳ８１では、ステップＳ８０での診断結果をメインマイコン１０ｂに通知する。このとき、第１ＣＰＵ２１は、メインマイコン１０ｂに対して、第１通信線８１を介して診断結果を送信する。一方、第２ＣＰＵ３１は、メインマイコン１０ｂに対して、第２通信線８２を介して診断結果を送信する。
【０１３０】
ステップＳ８２では、自身が正常であるか否かを判定する。そして、各サブＣＰＵは、自身が正常であると判定した場合はステップＳ８３へ進み、自身が正常でないと判定した場合はステップＳ８５に進む。
【０１３１】
ステップＳ８３では、バイパス要求の有無を判定する。サブＣＰＵは、自身が通信バス７０を介してデータ通信を行うことができると判定した場合、メインＣＰＵ１１からバイパス要求が有るか否かを判定する。そして、サブＣＰＵは、バイパス要求がないと判定した場合は図２３の処理を終了し、バイパス要求が有ると判定した場合はステップＳ８４へ進む。
【０１３２】
ステップＳ８４では、メインマイコン１０ｂが取得すべき通信ＩＤを取得可設定し、以降のメインマイコン１０ｂ向け通信フレームをメインマイコンに中継する。つまり、サブＣＰＵは、メインマイコン１０ｂが取得すべき通信ＩＤを含む通信フレームを取得可設定にする。本変形例では、第１サブマイコン２０ｂにバイパス要求をする例を採用している。よって、第１ＣＰＵ２１は、通信バス７０に送信された通信フレームのうち、メインマイコン１０ｂが取得すべき通信ＩＤを含む通信フレームを自身が取得できるように設定する。これによって、第１サブマイコン２０ｂは、自身が送信先であることを示す通信ＩＤを含む通信フレームに加えて、メインマイコン１０ｂが送信先であることを示す通信ＩＤを含む通信フレームを受信することができる。
【０１３３】
言い換えると、第１ＣＰＵ２１は、自身が送信先であることを示す通信ＩＤと共に通信フレームに含まれたデータと、メインマイコン１０ｂが送信先であることを示す通信ＩＤと共に通信フレームに含まれたデータを取得できる。例えば、第１サブマイコン２０ｂは、通信ＩＤ＝１を含む通信フレーム、通信ＩＤ＝３を含む通信フレームに加えて、通信ＩＤ＝２を含む通信フレームを受信できる。なお、第１サブマイコン２０ｂは、メインマイコン１０ｂ宛のデータを取得した場合、メインマイコン１０ｂからのバイパス要求に応じて、第１通信線８１を介してメインマイコン１０ｂに送信する。
【０１３４】
ステップＳ８５では、以降の通信先を書き換え装置２００からメインマイコン１０ｂに切り替える。言い換えると、サブＣＰＵは、以降のデータ取得元をメインマイコン１０ｂに切り替える（切替手段）。このように、サブマイコンは、ステップＳ８０で通信否と診断した場合、書き換え装置２００から受信していたデータを、メインマイコン１０ｂから受信するように切り替える。例えば、第１サブマイコン２０ｂは、第１通信線８１を介してメインマイコン１０ｂからデータを受信する。よって、第１サブマイコン２０ｂは、例えば、図１８に示すように、通信バス７０を介してデータを受信できない場合、二点鎖線で示すように書き込みデータやコマンドをメインマイコン１０ｂから受信することができる。なお、第２サブマイコン３０ｂが通信否と判定した場合は、同様に、メインマイコン１０ｂからデータを受信する。
【０１３５】
ＥＣＵ１００ｂは、ＥＣＵ１００と同様の効果を奏することができる。また、ＥＣＵ１００ｂは、通信バス７０の断線や、各バス通信トランシーバ４０〜６０の故障時などにおいても、各マイコンが書き換え処理を進めることが可能となる。
【０１３６】
（変形例５）
変形例５のＥＣＵ１００ｃは、主に、メインマイコン１０ｃだけが通信バス７１に接続されている点がＥＣＵ１００ａと異なる。
【０１３７】
ＥＣＵ１００ｃは、図２４に示すように、メインマイコン１０ｃ、第１サブマイコン２０ｃ、第２サブマイコン３０ｃを備えて構成されている。メインマイコン１０ｃは、特許請求の範囲における第１処理部に相当するものである。メインマイコン１０ｃは、メインＣＰＵ１１ｃなどを備えて構成されている。メインＣＰＵ１１ｃは、メインＣＰＵ１１と異なり、他のＣＰＵと時間的に並行して共通データの書き換えを行うことはない。
【０１３８】
また、第１サブマイコン２０ｃと第２サブマイコン３０ｃは、特許請求の範囲における第２処理部に相当する。この第１サブマイコン２０ｃ及び第２サブマイコン３０ｃは、第１サブマイコン２０及び第２サブマイコン３０と同様の構成を有している。よって、以下においては、便宜的に、第１サブマイコン２０ｃと第２サブマイコン３０ｃの構成要素を上記実施形態と同じ符号を用いて説明する。また、以下においては、第１サブマイコン２０ｃと第２サブマイコン３０ｃとを区別する必要がない場合、これらを纏めてサブマイコンとも記載する。
【０１３９】
一例として、ＥＣＵ１００ｃは、自動車に搭載され、メインマイコン１０ｃに加えて、第１モータジェネレータの制御を行う第１サブマイコン２０ｃと、第２モータジェネレータの制御を行う第２サブマイコン３０ｃとを備えた構成を採用できる。また、ＥＣＵ１００ｃは、第１サブマイコン２０ｃと第２サブマイコン３０ｃとが共通データを有している例を採用する。
【０１４０】
図２４に示すように、通信バス７１は、書き換え装置２００との間でデータ通信を行うためのものであり、第１サブマイコン２０ｃと第２サブマイコン３０ｃには直接接続されておらず、メインマイコン１０ｃだけに接続されている。このため、ＥＣＵ１００ｃは、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃに直接接続されたバス通信トランシーバが設けられていない。当然ながら、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃは、バス通信コントローラも設けられていない。また、ＥＣＵ１００ｃは、メインマイコン１０ｃ配下に、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃがシリアル通信で接続された構成をなしている、と言うことができる。また、メインマイコン１０ｃは、通信ＩＤ＝１や通信ＩＤ＝２を含む通信フレームに加えて、通信ＩＤ＝３や通信ＩＤ＝４を含む通信フレームも受信できるように設定されている。
【０１４１】
第１サブマイコン２０ｃは、第１通信線８１及びメインマイコン１０ｃを介して、通信バス７１と通信できる。同様に、第２サブマイコン３０ｃは、第２通信線８２及びメインマイコン１０ｃを介して、通信バス７１と通信できる。よって、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃは、メインマイコン１０ｃが中継することで、通信バス７１と通信できる。つまり、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃは、メインマイコン１０ｃを介して書き換え装置２００と通信できる。なお、変形例５の書き換え装置２００は、上記実施形態の書き換え装置２００と処理動作が異なるが便宜的に同じ符号を採用する。
【０１４２】
ここで、書き換え装置２００及び各マイコンの処理動作に関して詳細に説明する。まず、図２５，図２６を用いて、書き換え装置２００の処理動作に関して説明する。
【０１４３】
書き換え装置２００は、全体的な処理の流れとして、図２５のフローチャートに示す処理を実行する。ステップＳ２０ａでは、サブマイコンに対する共通データの書き換えを実行する。ステップＳ２１ａでは、サブマイコンに対する個別データの書き換えを実行する。そして、ステップＳ２２ａでは、メインマイコン１０ｃに対するデータの書き換えを実行する。なお、書き換え装置２００は、各マイコンに対して通信ＩＤを含む通信フレームを送信するため、任意の順番でステップＳ２０ａ〜Ｓ２２ａの夫々を実行すればよい。つまり、各マイコンは、通信ＩＤによって自身に対する通信フレームを把握できる。よって、書き換え装置２００は、任意の処理順序でステップＳ２０ａ〜Ｓ２２ａを実行できる。更に、書き換え装置２００は、ステップＳ２２ａを実行しないものであっても採用できる。
【０１４４】
書き換え装置２００は、ステップＳ２０ａ〜Ｓ２２ａの夫々の書き換え処理として、図２６のフローチャートに示す処理を実行する。ステップＳ３０ａでは、書き換え装置２００は、ステップＳ３０と同様に消去指示を行う。しかしながら、書き換え装置２００は、通信フレームをメインマイコン１０ｃに送信することになる。言い換えると、書き換え装置２００は、消去指示のコマンドを、メインＣＰＵ１１ｃに対して送信する。
【０１４５】
例えば、書き換え装置２００は、ステップＳ２０ａを実行する際には、通信ＩＤ＝１及び消去指示のコマンドを含む通信フレームを通信バス７１に出力する。また、書き換え装置２００は、ステップＳ２１ａを実行する際には、通信ＩＤ＝３又は４、及び消去指示のコマンドを含む通信フレームを通信バス７１に出力する。そして、書き換え装置２００は、ステップＳ２２ａを実行する際には、通信ＩＤ＝１又は２及び消去指示のコマンドを含む通信フレームを通信バス７１に出力する。
【０１４６】
ステップＳ３１ａでは、書き換え装置２００は、肯定応答を受信したか否かを判定する。つまり、書き換え装置２００は、消去指示のコマンド実行に成功したか否かを判定する。書き換え装置２００は、肯定応答を受信したと判定した場合、ＥＣＵ１００ｃが消去指示のコマンド実行に成功したとみなしてステップＳ３２ａに進む。また、書き換え装置２００は、肯定応答を受信したと判定してない場合、ステップＳ３０ａに戻る。つまり、書き換え装置２００は、否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合はステップＳ３０ａに戻る。また、書き換え装置２００は、ステップＳ３２ａに進むことなくステップＳ３１ａでのＮＯ判定を所定回数繰り返した場合に図２６の処理を終了する。
【０１４７】
ステップＳ３２ａでは、書き換え装置２００は、書き込み指示及び書き込みデータを送信する。書き換え装置２００は、ステップＳ３２と同様に消去指示を行う。しかしながら、書き換え装置２００は、通信フレームをメインマイコン１０ｃに送信することになる。言い換えると、書き換え装置２００は、消去指示のコマンドを、メインＣＰＵ１１ｃに対して送信する。
【０１４８】
例えば、書き換え装置２００は、ステップＳ２０ａを実行する際には、通信ＩＤ＝１及び共通データを含む通信フレームを通信バス７１に出力する。また、書き換え装置２００は、ステップＳ２１ａを実行する際には、通信ＩＤ＝３又は４及び個別データを含む通信フレームを通信バス７１に出力する。そして、書き換え装置２００は、ステップＳ２２ａを実行する際には、通信ＩＤ＝１又は２及び個別データを含む通信フレームを通信バス７１に出力する。
【０１４９】
ステップＳ３３ａでは、ステップＳ３１ａと同様に、肯定応答を受信したか否かを判定する。しかしながら、ステップＳ３３ａでは、書き換え装置２００は、書き込み指示のコマンド実行に成功したか否かを判定する。書き換え装置２００は、肯定応答を受信したと判定した場合、ＥＣＵ１００ｃが書き込み指示のコマンド実行に成功したとみなして図２６の処理を終了する。また、書き換え装置２００は、肯定応答を受信したと判定してない場合、ステップＳ３２ａに戻る。つまり、書き換え装置２００は、否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合はステップＳ３２ａに戻る。また、書き換え装置２００は、図２６の処理を終了することなくステップＳ３３ａでのＮＯ判定を所定回数繰り返した場合に図２６の処理を終了する。
【０１５０】
次に、図２７〜図３０を用いて、ＥＣＵ１００ｃの処理動作に関して説明する。まず、メインマイコン１０ｃは、全体的な処理の流れとして、図２７のフローチャートに示す処理を実行する。メインマイコン１０ｃは、図１５のフローチャートのステップＳ５３のかわりにステップＳ５３ａ、ステップＳ５５のかわりにステップＳ５５ａを実行する。なお、メインマイコン１０ｃの書き換え処理は、図８と同様である。
【０１５１】
ステップＳ５３ａでは、書き換え装置２００から指定されたマイコン別に分岐させる。つまり、メインＣＰＵ１１ｃは、書き換え装置２００から受信した書き込みデータがメインマイコン１０ｃに対するものであるか、どのサブマイコンに対するものであるかを判定する。そして、メインＣＰＵ１１ｃは、メインマイコン１０ｃに対する書き込みデータであると判定した場合はステップＳ５４へ進み、あるサブマイコンに対する書き込みデータであると判定した場合はステップＳ５５ａへ進む。なお、メインＣＰＵ１１ｃは、通信ＩＤによって、書き込みデータがどのマイコンに対するものであるかを判定できる。つまり、メインＣＰＵ１１ｃは、書き込みデータが共通データであるか個別データであるかに加えて、個別データがどのサブマイコンに対するものであるかを判定できる。
【０１５２】
ステップＳ５５ａでは、サブマイコンへのデータ中継処理を行う。ここで、図２８を用いて、データ中継処理に関して説明する。ステップＳ７０ａでは、共通データであるか否かを判定する。そして、メインＣＰＵ１１ｃは、共通データであると判定した場合はステップＳ７１ａへ進み、共通データではない、すなわち個別データであると判定した場合はステップＳ７４ａへ進む。
【０１５３】
ステップＳ７１ａでは、全サブマイコンに対して受信データを送信する。つまり、メインＣＰＵ１１ｃは、ＣＰＵ間通信によって、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃに対して共通データを送信する。これによって、ＥＣＵ１００ｃは、フラッシュメモリ２２，３２に記憶されているデータを、受信した共通データに書き換える場合、第１ＣＰＵ２１及び第２ＣＰＵ３１が時間的に並行して書き換えを行う。
【０１５４】
ステップＳ７２ａでは、全サブマイコンから肯定応答を受信したか否かを判定する。そして、メインＣＰＵ１１ｃは、全サブマイコンから肯定応答を受信したと判定した場合はステップＳ７３ａに進み、全サブマイコンから肯定応答を受信したと判定してない場合はステップＳ７６ａに進む。つまり、メインＣＰＵ１１ｃは、少なくとも一つのサブマイコンから否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合、ステップＳ７６ａに進む。なお、ステップＳ７３ａでは、メインＣＰＵ１１ｃは、ステップＳ６７と同様に、書き換え装置２００に対して肯定応答を行う。
【０１５５】
ステップＳ７４ａでは、サブマイコンｎに対して、受信データを送信する。つまり、メインＣＰＵ１１ｃは、個別データの送信先であるサブマイコンに対して、個別データを送信する。このとき、メインＣＰＵ１１ｃは、ＣＰＵ間通信によって、該当するサブマイコンに個別データを送信する。
【０１５６】
ステップＳ７５ａでは、ステップＳ７４ａで個別データを送信したサブマイコンから肯定応答を受信したか否かを判定する。そして、メインＣＰＵ１１ｃは、肯定応答を受信したと判定した場合はステップＳ７３ａに進み、肯定応答を受信したと判定してない場合はステップＳ７６ａに進む。つまり、メインＣＰＵ１１ｃは、該当するサブマイコンから否定応答を受信した場合、もしくは所定時間内に肯定応答を受信できなかった場合、ステップＳ７６ａに進む。なお、ステップＳ７６ａでは、メインＣＰＵ１１ｃは、ステップＳ６８と同様に、書き換え装置２００に対して否定応答を行う。
【０１５７】
また、サブマイコンは、全体的な処理の流れとして、図２９のフローチャートに示す処理を実行する。サブマイコンは、書き換え装置２００からデータを受信するのではなく、メインマイコン１０ｃからデータを受信する点が上記実施形態の各マイコンと異なる。よって、ステップＳ５０ａでは、ステップＳ５１と同様にデータを受信するが、メインマイコン１０ｃからデータを受信する。そして、ステップＳ５２ａでは、ステップＳ５２と同様にデータ受信なしか否かを判定するが、メインマイコン１０ｃからデータ受信なしか否かを判定する。
【０１５８】
サブマイコンは、書き換え処理を行う場合、図３０に示すフローチャートを実行する。図３０に示すように、サブマイコンは、図８のステップＳ６３，Ｓ６７，Ｓ６８にかえて、ステップＳ６３ｂ，Ｓ６７ｂ，Ｓ６８ｂを実行する。つまり、サブマイコンは、肯定応答又は否定応答の通知先がメインマイコン１０ｃである点が上記実施形態の各マイコンと異なる。
【０１５９】
このように、ＥＣＵ１００ｃは、メインマイコン１０ｃが、通信バス７１を介して書き換え装置２００とのデータ通信を行う。一方、サブマイコンは、第１通信線８１又は第２通信線８２、メインマイコン１０ｃ、及び通信バス７１を介して、書き換え装置２００とのデータ通信を行う。
【０１６０】
ＥＣＵ１００ｃは、ＥＣＵ１００と同様の効果を奏することができる。つまり、第１ＣＰＵ２１は、フラッシュメモリ２２に記憶されているデータを、受信した共通データに書き換える際に、第２ＣＰＵ３１による共通データの書き換えが終了するのを待つ必要がない。同様に、第２ＣＰＵ３１は、フラッシュメモリ３２に記憶されているデータを、受信した共通データに書き換える際に、第１ＣＰＵ２１による共通データの書き換えが終了するのを待つ必要がない。よって、ＥＣＵ１００は、書き換え時間を短縮できる。
【０１６１】
更に、ＥＣＵ１００ｃは、メインマイコン１０ｃのみが通信バス７１を介した通信を行う。このため、ＥＣＵ１００ｃは、第１サブマイコン２０ｃ及び第２サブマイコン３０ｃの夫々に対応したバス通信トランシーバを設ける必要がない。よって、ＥＣＵ１００ｃは、ＥＣＵ１００よりも構成を簡素化できる。また、ＥＣＵ１００ｃは、ＥＣＵ１００よりも安価にできる。
【０１６２】
なお、ＥＣＵ１００ｃは、上記のように、メインマイコン１０ｃ，第１サブマイコン２０ｃ，第２サブマイコン３０ｃが同一の種類であると好ましい。また、メインマイコン１０ｃ，第１サブマイコン２０ｃ，第２サブマイコン３０ｃの夫々に設けられているフラッシュメモリは、上記のように、共通領域のアドレスが同一であると好ましい。
【符号の説明】
【０１６３】
１００  ＥＵＣ、
１０  メインマイコン、１１  メインＣＰＵ、１２  フラッシュメモリ、１３  バス通信コントローラ、１４  ＲＡＭ、１５  シリアル通信コントローラ、２０  第１サブマイコン、２１  第１ＣＰＵ、２２  フラッシュメモリ、２３  バス通信コントローラ、２４  ＲＡＭ、２５  シリアル通信コントローラ、３０  第２サブマイコン、３１  第２ＣＰＵ、３２  フラッシュメモリ、３３  バス通信コントローラ、３４  ＲＡＭ、３５  シリアル通信コントローラ、４０〜６０  バス通信トランシーバ、７０  通信バス、８１  第１通信線、８２  第２通信線、２００  書き換え装置
【図１】
2016012220.tif 000003
【図２】
2016012220.tif 000004
【図３】
2016012220.tif 000005
【図４】
2016012220.tif 000006
【図５】
2016012220.tif 000007
【図６】
2016012220.tif 000008
【図７】
2016012220.tif 000009
【図８】
2016012220.tif 000010
【図９】
2016012220.tif 000011
【図１０】
2016012220.tif 000012
【図１１】
2016012220.tif 000013
【図１２】
2016012220.tif 000014
【図１３】
2016012220.tif 000015
【図１４】
2016012220.tif 000016
【図１５】
2016012220.tif 000017
【図１６】
2016012220.tif 000018
【図１７】
2016012220.tif 000019
【図１８】
2016012220.tif 000020
【図１９】
2016012220.tif 000021
【図２０】
2016012220.tif 000022
【図２１】
2016012220.tif 000023
【図２２】
2016012220.tif 000024
【図２３】
2016012220.tif 000025
【図２４】
2016012220.tif 000026
【図２５】
2016012220.tif 000027
【図２６】
2016012220.tif 000028
【図２７】
2016012220.tif 000029
【図２８】
2016012220.tif 000030
【図２９】
2016012220.tif 000031
【図３０】
2016012220.tif 000032