(57)【要約】【課題】複数の制御ユニットの制御用プログラムを組合せ更新するときに、その組合せ更新の正否を適切かつ容易に判定できるとともに、組合せ更新に関する記憶容量および更新時間を削減でき、組合せ更新の管理を簡素化することができる制御用プログラムの更新装置および更新方法を提供する。【解決手段】この制御用プログラムの更新装置1の書換装置10は、組合せ更新を実行するときに第1および第2の制御ユニットに組合せ更新情報INFCを送信する。第1および第2の制御ユニットの各々は、組合せ更新情報INFCを受信したとき、組合せ更新による更新回数CNTF,CNTCをカウントアップし、記憶する。第1および第2の制御ユニットの少なくとも一方は、この更新回数を他方の制御ユニットに送信する。そして、記憶された記憶更新回数と受信した受信更新回数を比較し、両更新回数が互いに一致していないときに、組合せ更新による制御用プログラムPRの更新異常と判定する。【選択図】図3
2011134038.tif 000002
【特許請求の範囲】
【請求項１】
更新用プログラムを送信する書換装置と、
制御用プログラムを記憶する記憶部、および前記書換装置から前記制御用プログラムに対応する前記更新用プログラムが送信されたときに、前記制御用プログラムを前記更新用プログラムに書き換えることによって更新する更新手段をそれぞれ有する第１および第２の制御ユニットと、を備え、
前記書換装置は、
前記第１および第２の制御ユニットに記憶された２つの前記制御用プログラムの一方の更新に伴って他方の更新を必要とする組合せ更新を実行するときに、前記第１および第２の制御ユニットに、前記組合せ更新であることを特定する組合せ更新情報を前記更新用プログラムとともに送信する組合せ更新情報送信手段を有し、
前記第１および第２の制御ユニットの各々は、
前記組合せ更新情報を受信したとき、前記制御用プログラムの更新が完了した後に、前記組合せ更新による更新回数をカウントアップするカウントアップ手段と、
当該カウントアップされた更新回数を記憶する更新回数記憶手段と、を有し、
前記第１および第２の制御ユニットの少なくとも一方は、前記カウントアップされた更新回数を他方の前記制御ユニットに送信する送信手段を有し、
当該他方の制御ユニットに記憶された記憶更新回数と当該他方の制御ユニットが受信した受信更新回数を比較する比較手段と、
当該比較手段による比較の結果、前記記憶更新回数と前記受信更新回数が互いに一致していないときに、前記第１および第２の制御ユニットのいずれかにおいて、前記組合せ更新による前記制御用プログラムの更新の異常が発生していると判定する異常判定手段と、をさらに備えることを特徴とする制御用プログラムの更新装置。
【請求項２】
制御用プログラムを記憶する記憶部、および前記書換装置から前記制御用プログラムに対応する前記更新用プログラムが送信されたときに、前記制御用プログラムを前記更新用プログラムに書き換えることによって更新する更新手段を有する第３の制御ユニットをさらに備え、
前記書換装置は、
前記第１ないし第３の制御ユニットの少なくとも２つを対象として前記組合せ更新を実行するときに、前記少なくとも２つの制御ユニットに、前記組合せ更新の対象となる相手方の前記制御ユニットを特定する組合せ対象情報を、前記組合せ更新情報および前記更新用プログラムとともに送信する組合せ対象情報送信手段をさらに有し、
前記少なくともの２つの制御ユニットの各々において、
前記カウントアップ手段は、前記組合せ対象情報に基づき、前記相手方の制御ユニットごとに更新回数をカウントアップし、
前記更新回数記憶手段は、前記カウントアップされた更新回数を前記相手方の制御ユニットごとに記憶し、
前記送信手段は、前記カウントアップされた更新回数を前記組合せ対象情報とともに、前記相手方の制御ユニットに送信し、
前記比較手段は、前記記憶更新回数と前記受信更新回数を前記相手方の制御ユニットごとに比較し、
前記異常判定手段は、前記記憶更新回数と前記受信更新回数が互いに一致していないときに、当該一致していない２つの制御ユニットのいずれかにおいて、前記組合せ更新による前記制御用プログラムの更新の異常が発生していると判定することを特徴とする、請求項１に記載の制御用プログラムの更新装置。
【請求項３】
前記制御用プログラムの更新の異常が発生していると判定されたとき、前記記憶更新回数と前記受信更新回数が互いに一致していない２つの前記制御ユニットの一方が異常情報を出力することを特徴とする、請求項１または２に記載の制御用プログラムの更新装置。
【請求項４】
前記記憶更新回数が前記受信更新回数よりも小さい方の前記制御ユニットが、前記異常情報を出力することを特徴とする、請求項３に記載の制御用プログラムの更新装置。
【請求項５】
更新用プログラムを送信する書換装置と、
制御用プログラムを記憶する記憶部をそれぞれ有し、前記書換装置から前記制御用プログラムに対応する前記更新用プログラムが送信されたときに、前記制御用プログラムを前記更新用プログラムに書き換えることによって更新する第１および第２の制御ユニットと、を備え、
前記書換装置は、
前記第１および第２の制御ユニットに記憶された２つの前記制御用プログラムの一方の更新に伴って他方の更新を必要とする組合せ更新を実行するときに、前記第１および第２の制御ユニットに、前記組合せ更新であることを特定する組合せ更新情報を前記更新用プログラムとともに送信し、
前記第１および第２の制御ユニットの各々は、
前記組合せ更新情報を受信したとき、前記制御用プログラムの更新が完了した後に、前記組合せ更新による更新回数をカウントアップし、
当該カウントアップされた更新回数を記憶し、
前記第１および第２の制御ユニットの少なくとも一方は、前記カウントアップされた更新回数を他方の前記制御ユニットに送信し、
当該他方の制御ユニットに記憶された記憶更新回数と当該他方の制御ユニットが受信した受信更新回数を比較し、
当該比較の結果、前記記憶更新回数と前記受信更新回数が互いに一致していないときに、前記第１および第２の制御ユニットのいずれかにおいて、前記組合せ更新による前記制御用プログラムの更新の異常が発生していると判定することを特徴とする制御用プログラムの更新方法。
【請求項６】
制御用プログラムを記憶する記憶部を有し、前記書換装置から前記制御用プログラムに対応する前記更新用プログラムが送信されたときに、前記制御用プログラムを前記更新用プログラムに書き換えることによって更新する第３の制御ユニットをさらに備え、
前記書換装置は、
前記第１ないし第３の制御ユニットの少なくとも２つを対象として前記組合せ更新を実行するときに、前記少なくとも２つの制御ユニットに、前記組合せ更新の対象となる相手方の前記制御ユニットを特定する組合せ対象情報を、前記組合せ更新情報および前記更新用プログラムとともに送信し、
前記少なくとも２つの制御ユニットの各々において、
前記組合せ更新情報を受信したとき、前記制御用プログラムの更新が完了した後に、前記組合せ対象情報に基づき、前記相手方の制御ユニットごとに更新回数をカウントアップし、
前記カウントアップされた更新回数を前記相手方の制御ユニットごとに記憶し、
当該カウントアップされた更新回数を前記組合せ対象情報とともに、前記相手方の制御ユニットに送信し、
前記記憶更新回数と前記受信更新回数を前記相手方の制御ユニットごとに比較し、
前記記憶更新回数と前記受信更新回数が互いに一致していないときに、当該一致していない２つの制御ユニットのいずれかにおいて、前記組合せ更新による前記制御用プログラムの更新の異常が発生していると判定することを特徴とする、請求項５に記載の制御用プログラムの更新方法。
【請求項７】
前記制御用プログラムの更新の異常が発生していると判定されたとき、前記記憶更新回数と前記受信更新回数が互いに一致していない２つの前記制御ユニットの一方が異常情報を出力することを特徴とする、請求項５または６に記載の制御用プログラムの更新方法。
【請求項８】
前記記憶更新回数が前記受信更新回数よりも小さい方の前記制御ユニットが、前記異常情報を出力することを特徴とする、請求項７に記載の制御用プログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の制御ユニットにそれぞれ記憶された制御用プログラムを、組合せ更新を伴いながら更新する更新装置および更新方法に関する。
【背景技術】
【０００２】
従来のこの種の更新装置として、例えば特許文献１に開示されたものが知られている。この更新装置は、３台のコンピュータを対象としている。各コンピュータは、自身のコンピュータのプログラムのバージョン情報を記憶する記憶部と、他のコンピュータとの間においてバージョン情報を送受信するバージョン情報送受信部などを有している。バージョン情報には、プログラムの名称や、プログラムの属性、バージョン番号、自動バージョンアップの禁止・許可などに関する情報が含まれている。
【０００３】
この更新装置では、１つのコンピュータが他のコンピュータからバージョン情報を受信した場合、以下の処理が行われる。まず、記憶したバージョン情報と受信したバージョン情報を比較し、自身のプログラムを更新する必要があるか否かを判定する。自身のプログラムを更新する必要があるときには、バージョン情報を送信したコンピュータからプログラムをダウンロードするとともに、ダウンロードしたプログラムに自身のプログラムを書き換え、更新する。そして、更新が完了したときに、記憶部に記憶されたバージョン情報を受信したバージョン情報に書き換える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２４９１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上のように、従来の更新装置では、自身のプログラムのバージョン情報と受信したバージョン情報との比較結果に基づいて、プログラムを更新するか否かを決定する。しかし、前述したように、バージョン情報は、プログラムの名称や属性、バージョン番号などの多くの情報を含むので、これを記憶する記憶部の記憶容量が増大するとともに、コンピュータの間でのバージョン情報の送受信に長い時間を要する。
【０００６】
また、３つのコンピュータのうち、１つのコンピュータのプログラムのみを更新する場合、それに伴って、その１つのコンピュータのバージョン情報が更新されるため、複数のコンピュータの間でバージョン情報が異なる。このような場合、バージョン情報の比較結果に基づくプログラムの更新を適切に行うためには、単独での更新か複数のコンピュータの間での更新かの情報も併せて管理する必要があり、それにより、バージョン情報などの管理が煩雑になる。
【０００７】
本発明は、このような課題を解決するためになされたものであり、複数の制御ユニットの制御用プログラムを組合せ更新するときに、その組合せ更新の正否を適切かつ容易に判定できるとともに、組合せ更新に関する記憶容量および更新時間を削減でき、組合せ更新の管理を簡素化することができる制御用プログラムの更新装置および更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、請求項１の発明に係る制御用プログラムの更新装置１，４０は、更新用プログラムＰＲＵを送信する書換装置１０，４１と、制御用プログラムＰＲを記憶する記憶部（実施形態における（以下、本項において同じ）フラッシュＲＯＭ２４，３４）、および書換装置１０，４１から制御用プログラムＰＲに対応する更新用プログラムＰＲＵが送信されたときに、制御用プログラムＰＲを更新用プログラムＰＲＵに書き換えることによって更新する更新手段（ＣＰＵ２３，３３、図２のステップ４，５）をそれぞれ有する第１および第２の制御ユニット（ＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０）と、を備え、書換装置１０，４１は、第１および第２の制御ユニットに記憶された２つの制御用プログラムＰＲの一方の更新に伴って他方の更新を必要とする組合せ更新を実行するときに、第１および第２の制御ユニットに、組合せ更新であることを特定する組合せ更新情報ＩＮＦＣを更新用プログラムＰＲＵとともに送信する組合せ更新情報送信手段（信号線８，７０）を有し、第１および第２の制御ユニットの各々は、組合せ更新情報ＩＮＦＣを受信したとき、制御用プログラムＰＲの更新が完了した後に、組合せ更新による更新回数ＣＮＴＦ，ＣＮＴＣをカウントアップするカウントアップ手段（ＣＰＵ２３，３３、図３のステップ１３）と、カウントアップされた更新回数ＣＮＴＦ，ＣＮＴＣを記憶する更新回数記憶手段（ＥＥＰＲＯＭ２５，３５）と、を有し、第１および第２の制御ユニットの少なくとも一方は、カウントアップされた更新回数ＣＮＴＦ，ＣＮＴＣを他方の制御ユニットに送信する送信手段（信号線９，７１）を有し、他方の制御ユニットに記憶された記憶更新回数（更新回数ＣＮＴＦまたは更新回数ＣＮＴＣ）と他方の制御ユニットが受信した受信更新回数（更新回数ＣＮＴＦまたは更新回数ＣＮＴＣ）を比較する比較手段（ＣＰＵ２３，３３、図３のステップ１５）と、比較手段による比較の結果、記憶更新回数と受信更新回数が互いに一致していないときに、第１および第２の制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムＰＲの更新の異常が発生していると判定する異常判定手段（ＣＰＵ２３，３３、図３のステップ１７）と、をさらに備えることを特徴とする。
【０００９】
この制御用プログラムの更新装置は、書換装置と第１および第２の制御ユニットを備えている。第１および第２の制御ユニットは、それぞれの記憶部に記憶された制御用プログラムに対応する更新用プログラムが書換装置から送信されたときに、制御用プログラムを更新用プログラムに書き換え、更新する。また、書換装置は、第１および第２の制御ユニットに記憶された２つの制御用プログラムの一方の更新に伴って他方の更新を必要とする組合せ更新を実行するときに、第１および第２の制御ユニットに、そのことを特定する組合せ更新情報を更新用プログラムとともに送信する。
【００１０】
第１および第２の制御ユニットの各々は、組合せ更新情報を受信したときに、以下の処理を実行する。まず、制御用プログラムの更新が完了した後に、組合せ更新による更新回数をカウントアップする。これにより、組合せ更新による更新回数が更新される。また、この更新回数を記憶する。さらに、第１および第２の制御ユニットの少なくとも一方は、この更新回数を他方の制御ユニットに送信する。
【００１１】
以上のように、本発明によれば、組合せ更新を行う場合、組合せ更新によって制御用プログラムを更新した回数だけを記憶するので、組合せ更新に関するデータの容量を小さくすることができる。それにより、組合せ更新に関するデータの記憶容量を削減することができる。また、組合せ更新に関するデータとして、更新回数を記憶し、管理するだけなので、バージョン情報を管理する従来の更新装置と比較して、組合せ更新に先立ち、バージョン情報を比較する必要がない分、更新時間を短縮することができる。以上のように、組合せ更新に関する記憶容量および更新時間を削減できる結果、組合せ更新の管理を簡素化することができる。
【００１２】
また、本発明によれば、他方の制御ユニットに記憶された記憶更新回数と他方の制御ユニットが受信した受信更新回数とを比較し、この比較結果に基づき、記憶更新回数と受信更新回数が互いに一致していないときに、第１および第２の制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムの更新の異常が発生していると判定する。前述したように、更新回数は、組合せ更新による制御用プログラムの更新が完了した後にカウントアップされる。このため、組合せ更新に伴う制御用プログラムの更新が正常に行われていれば、自身の制御ユニットに記憶した記憶更新回数と他方の制御ユニットから受信した、他方の制御ユニットの更新回数を表す受信更新回数は互いに一致するはずである。したがって、両更新回数が互いに一致していないときには、第１および第２の制御ユニットのいずれかで、制御用プログラムの更新が正常に行われていない可能性があると適切に判定することができる。また、両更新回数に基づいて、組合せ更新の異常判定を行うので、組合せ更新の正否を容易に判定することができる。
【００１３】
請求項２に係る発明は、請求項１に記載の制御用プログラムの更新装置４０において、制御用プログラムＰＲを記憶する記憶部（フラッシュＲＯＭ５４またはフラッシュＲＯＭ６４）、および書換装置４１から制御用プログラムＰＲに対応する更新用プログラムＰＲＵが送信されたときに、制御用プログラムＰＲを更新用プログラムＰＲＵに書き換えることによって更新する更新手段（ＣＰＵ５３またはＣＰＵ６３）を有する第３の制御ユニット（ＭＯＴＥＣＵ５０またはＶＡＴＥＣＵ６０）をさらに備え、書換装置４１は、第１ないし第３の制御ユニットの少なくとも２つを対象として組合せ更新を実行するときに、少なくとも２つの制御ユニットに、組合せ更新の対象となる相手方の制御ユニットを特定する組合せ対象情報ＩＮＦＯを、組合せ更新情報ＩＮＦＣおよび更新用プログラムＰＲＵとともに送信する組合せ対象情報送信手段（信号線７０）をさらに有し、少なくともの２つの制御ユニットの各々において、カウントアップ手段は、組合せ対象情報ＩＮＦＯに基づき、相手方の制御ユニットごとに更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３，ＣＮＴＶ１〜ＣＮＴＶ３をカウントアップし、更新回数記憶手段は、カウントアップされた更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３，ＣＮＴＶ１〜ＣＮＴＶ３を相手方の制御ユニットごとに記憶し、送信手段は、カウントアップされた更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３，ＣＮＴＶ１〜ＣＮＴＶ３を組合せ対象情報ＩＮＦＯとともに、相手方の制御ユニットに送信し、比較手段は、記憶更新回数（更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３またはＣＮＴＶ１〜ＣＮＴＶ３）と受信更新回数（更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３またはＣＮＴＶ１〜ＣＮＴＶ３）を相手方の制御ユニットごとに比較し、異常判定手段は、記憶更新回数と受信更新回数が互いに一致していないときに、一致していない２つの制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムの更新の異常が発生していると判定することを特徴とする。
【００１４】
この制御用プログラムの更新装置は、第３の制御ユニットをさらに備えており、書換装置は、第１ないし第３の制御ユニットの少なくとも２つを対象として組合せ更新を実行するときに、少なくとも２つの制御ユニットに、組合せ更新の対象となる相手方の制御ユニットを特定する組合せ対象情報を、組合せ更新情報および更新用プログラムとともに送信する。
【００１５】
これらの第１〜第３の制御ユニットの各々は、組合せ更新情報を受信したときに、以下の処理を実行する。まず、制御用プログラムの更新が完了した後に、組合せ対象情報に基づき、組合せ更新による更新回数を相手方の制御ユニットごとにカウントアップし、記憶する。また、第１〜第３の制御ユニットは、この更新回数を組合せ対象情報とともに、相手方の制御ユニットに送信する。
【００１６】
以上のように、本発明によれば、組合せ更新を行う場合、組合せ更新によって制御用プログラムを更新した回数だけを記憶するので、組合せ更新に関する記憶容量および更新時間を削減できる結果、組合せ更新の管理を簡素化することができる。
【００１７】
また、本発明によれば、組合せ更新の対象となる制御ユニットの間において記憶更新回数と受信更新回数が互いに一致していないときに、一致していない２つの制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムの更新の異常が発生していると判定する。前述したように、更新回数は、組合せ更新による制御用プログラムの更新が完了した後に、組合せ更新の対象となる相手方の制御ユニットごとにカウントアップされる。したがって、記憶更新回数と受信更新回数を比較するだけで、制御ユニットが３つ以上の場合においても、組合せ更新の正否を適切かつ容易に判定することができる。
【００１８】
請求項３に係る発明は、請求項１または２に記載の制御用プログラムの更新装置１，４０において、制御用プログラムＰＲの更新の異常が発生していると判定されたとき、記憶更新回数と受信更新回数が互いに一致していない２つの制御ユニットの一方が異常情報を出力することを特徴とする。
【００１９】
この構成によれば、組合せ更新による制御用プログラムの更新の異常が発生していると判定されたときに、記憶更新回数と受信更新回数が互いに一致していない２つの制御ユニットの一方から異常情報を出力する。このため、この異常情報を検出したときに、少なくとも１つの制御ユニットにおいて制御用プログラムの更新が正常に行われていないことを確認することができる。
【００２０】
請求項４に係る発明は、請求項３に記載の制御用プログラムの更新装置１，４０において、記憶更新回数が受信更新回数よりも小さい方の制御ユニットが、異常情報を出力することを特徴とする。
【００２１】
前述したように、更新回数は、制御用プログラムの更新後にカウントアップされる。このため、自身に記憶した記憶更新回数が、自身以外の他の制御ユニットから受信した受信更新回数よりも小さいときには、自身の制御ユニットにおいて、制御用プログラムの更新が適切に行われていない可能性がある。このような観点に基づき、本発明によれば、記憶更新回数が受信更新回数よりも小さい方の制御ユニットが、異常情報を出力するので、この異常情報の出力先に基づいて、どの制御ユニットにおいて制御用プログラムの更新が行われていないかを特定することができる。
【００２２】
請求項５の発明に係る制御用プログラムの更新方法は、更新用プログラムＰＲＵを送信する書換装置１０，４１と、制御用プログラムＰＲを記憶する記憶部（フラッシュＲＯＭ２４，３４）をそれぞれ有し、書換装置１０，４１から制御用プログラムＰＲに対応する更新用プログラムＰＲＵが送信されたときに、制御用プログラムＰＲを更新用プログラムＰＲＵに書き換えることによって更新する第１および第２の制御ユニット（ＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０）と、を備え、書換装置１０，４０は、第１および第２の制御ユニットに記憶された２つの制御用プログラムＰＲの一方の更新に伴って他方の更新を必要とする組合せ更新を実行するときに、第１および第２の制御ユニットに、組合せ更新であることを特定する組合せ更新情報ＩＮＦＣを更新用プログラムＰＲＵとともに送信し、第１および第２の制御ユニットの各々は、組合せ更新情報ＩＮＦＣを受信したとき、制御用プログラムＰＲの更新が完了した後に、組合せ更新による更新回数ＣＮＴＦ，ＣＮＴＣをカウントアップし、カウントアップされた更新回数ＣＮＴＦ，ＣＮＴＣを記憶し、第１および第２の制御ユニットの少なくとも一方は、カウントアップされた更新回数ＣＮＴＦ，ＣＮＴＣを他方の制御ユニットに送信し、他方の制御ユニットに記憶された記憶更新回数（更新回数ＣＮＴＦまたは更新回数ＣＮＴＣ）と他方の制御ユニットが受信した受信更新回数（更新回数ＣＮＴＦまたは更新回数ＣＮＴＣ）を比較し、比較の結果、記憶更新回数と受信更新回数が互いに一致していないときに、第１および第２の制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムＰＲの更新の異常が発生していると判定することを特徴とする。
【００２３】
この制御用プログラムの更新方法によれば、請求項１の更新装置と同様、第１および第２の制御ユニットの各々は、組合せ更新情報を受信したとき、制御用プログラムの更新が完了した後に、組合せ更新による更新回数をカウントアップし、この更新回数を記憶する。また、第１および第２の制御ユニットの少なくとも一方は、この更新回数を他方の制御ユニットに送信する。以上により、請求項１の場合と同様、組合せ更新に関するデータの容量を小さくでき、それにより、組合せ更新に関する記憶容量および更新時間を削減できる結果、組合せ更新の管理を簡素化することができる。
【００２４】
さらに、本発明によれば、他方の制御ユニットに記憶された記憶更新回数と他方の制御ユニットが受信した受信更新回数が互いに一致していないときに、第１および第２の制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムの更新の異常が発生していると判定する。したがって、請求項１の更新装置と同様、両更新回数の比較結果に基づいて、組合せ更新の正否を適切かつ容易に判定することができる。
【００２５】
請求項６に係る発明は、請求項５に記載の制御用プログラムの更新方法において、制御用プログラムＰＲを記憶する記憶部（フラッシュＲＯＭ５４またはフラッシュＲＯＭ６４）を有し、書換装置１０，４１から制御用プログラムＰＲに対応する更新用プログラムＰＲＵが送信されたときに、制御用プログラムＰＲを更新用プログラムＰＲＵに書き換えることによって更新する第３の制御ユニット（ＭＯＴＥＣＵ５０またはＶＡＴＥＣＵ６０）をさらに備え、書換装置１０，４１は、第１ないし第３の制御ユニットの少なくとも２つを対象として組合せ更新を実行するときに、少なくとも２つの制御ユニットに、組合せ更新の対象となる相手方の制御ユニットを特定する組合せ対象情報ＩＮＦＯを、組合せ更新情報ＩＮＦＣおよび更新用プログラムＰＲＵとともに送信し、少なくとも２つの制御ユニットの各々において、組合せ更新情報ＩＮＦＣを受信したとき、制御用プログラムＰＲの更新が完了した後に、組合せ対象情報ＩＮＦＯに基づき、相手方の制御ユニットごとに更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３，ＣＮＴＶ１〜ＣＮＴＶ３をカウントアップし、カウントアップされた更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３，ＣＮＴＶ１〜ＣＮＴＶ３を相手方の制御ユニットごとに記憶し、カウントアップされた更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３，ＣＮＴＶ１〜ＣＮＴＶ３を組合せ対象情報ＩＮＦＯとともに、相手方の制御ユニットに送信し、記憶更新回数（更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３またはＣＮＴＶ１〜ＣＮＴＶ３）と受信更新回数（更新回数ＣＮＴＦ１〜ＣＮＴＦ３，ＣＮＴＣ１〜ＣＮＴＣ３，ＣＮＴＭ１〜ＣＮＴＭ３またはＣＮＴＶ１〜ＣＮＴＶ３）を相手方の制御ユニットごとに比較し、記憶更新回数と受信更新回数が互いに一致していないときに、一致していない２つの制御ユニットのいずれかにおいて、組合せ更新による制御用プログラムの更新の異常が発生していると判定することを特徴とする。
【００２６】
この制御用プログラムの更新方法によれば、請求項２の更新装置と同様、第１〜第３の制御ユニットの各々は、組合せ更新情報を受信したとき、制御用プログラムの更新が完了した後に、組合せ対象情報に基づき、組合せ更新による更新回数を相手方の制御ユニットごとにカウントアップし、記憶する。また、第１〜第３の制御ユニットは、この更新回数を組合せ対象情報とともに、相手方の制御ユニットに送信する。以上により、請求項２の場合と同様、組合せ更新に関するデータの容量を小さくでき、それにより、組合せ更新に関する記憶容量および更新時間を削減できる結果、組合せ更新の管理を簡素化することができる。
【００２７】
さらに、本発明によれば、記憶更新回数と受信更新回数が互いに一致していないときに、一致していない２つの制御ユニットのいずれにおいて、組合せ更新による制御用プログラムの更新の異常が発生していると判定する。したがって、両更新回数を比較するだけで、請求項２の更新装置と同様、制御ユニットが３つ以上の場合においても、両更新回数の比較結果に基づいて、組合せ更新の正否を適切かつ容易に判定することができる。
【００２８】
請求項７に係る発明は、請求項５または６に記載の制御用プログラムの更新方法において、制御用プログラムＰＲの更新の異常が発生していると判定されたとき、記憶更新回数と受信更新回数が互いに一致していない２つの制御ユニットの一方が異常情報を出力することを特徴とする。
【００２９】
この構成によれば、請求項３の場合と同様、異常情報を検出したときに、少なくとも１つの制御ユニットにおいて制御用プログラムの更新が正常に行われていないことを確認することができる。
【００３０】
請求項８に係る発明は、請求項７に記載の制御用プログラムの更新方法において、記憶更新回数が受信更新回数よりも小さい方の制御ユニットが、異常情報を出力することを特徴とする。
【００３１】
この構成によれば、請求項４の場合と同様、異常情報の出力先に基づいて、どの制御ユニットにおいて制御用プログラムの更新が行われていないかを特定することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１実施形態による制御用プログラムの更新装置を、内燃機関を搭載した車両とともに概略的に示す図である。
【図２】燃料制御用プログラムの更新処理を示すフローチャートである。
【図３】燃料制御用プログラムの組合せ更新の異常判定処理を示すフローチャートである。
【図４】本発明の第２実施形態による制御用プログラムの更新装置を、内燃機関およびモータを搭載した車両とともに概略的に示す図である。
【図５】ＥＥＰＲＯＭの記憶領域を示す図である。
【図６】燃料制御用プログラムの組合せ更新の異常判定処理を示すフローチャートである。
【発明を実施するための形態】
【００３３】
以下、図面を参照しながら、本発明の好ましい実施形態について説明する。図１は、本発明の第１実施形態による制御用プログラムの更新装置１を、これを適用した車両Ｖとともに概略的に示している。車両Ｖは、その駆動源として、内燃機関（以下「エンジン」という）２を備えている。
【００３４】
エンジン２には、燃料噴射弁（以下「インジェクタ」という）３が取り付けられている。インジェクタ３の開弁時間および開弁時期は、後述する燃料噴射制御用のＥＣＵ（以下「ＦＩＥＣＵ」という）２０によって制御され、それにより、燃料噴射量および燃料噴射時期が制御される。
【００３５】
また、エンジン２は、無段変速機（以下「ＣＶＴ」という）４を介して駆動輪（図示せず）に接続されている。ＣＶＴ４は、後述する変速比制御用のＥＣＵ（以下「ＣＶＴＥＣＵ」という）３０によって制御され、それにより、変速比が制御される。
【００３６】
更新装置１は、燃料の噴射量および噴射時期を制御するための燃料制御用プログラムＰＲＦ、および変速比を制御するための変速制御用プログラムＰＲＣを更新するためのものであり、書換装置１０、ＦＩＥＣＵ２０、ＣＶＴＥＣＵ３０、書換装置１０とＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０を接続する信号線８、およびＦＩＥＣＵ２０とＣＶＴＥＣＵ３０接続する信号線９を備えている。
【００３７】
書換装置１０は、燃料制御用プログラムＰＲＦとして書き換えるべき燃料更新用プログラムＰＲＵＦ、および変速制御用プログラムＰＲＣとして書き換えるべき変速更新用プログラムＰＲＵＣを取得し、ＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０に送信するためのものである。なお、以下の説明では、燃料制御用プログラムＰＲＦおよび変速制御用プログラムＰＲＣを適宜、総称して「制御用プログラムＰＲ」といい、燃料更新用プログラムＰＲＵＦおよび変速更新用プログラムＰＲＵＣを適宜、総称して「更新用プログラムＰＲＵ」という。書換装置１０には、書換時、更新用プログラムＰＲＵを記録した記録媒体（図示せず）が装着される。書換装置１０は、この記録媒体から更新用プログラムＰＲＵをブロック単位で読み出し、信号線８を介してＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０に送信する。なお、この更新用プログラムＰＲＵの最初のブロックには、更新用プログラムＰＲＵが燃料更新用プログラムＰＲＵＦまたは変速更新用プログラムＰＲＵＣのいずれであるかを表す情報（以下「更新情報」という）と、更新用プログラムＰＲＵのブロック数を表す情報が、プログラム情報として記録されている。
【００３８】
この書換装置１０では、更新用プログラムＰＲＵの送信に先立ち、組合せ更新情報ＩＮＦＣをＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０に送信する。具体的には、燃料制御用プログラムＰＲＦおよび変速制御用プログラムＰＲＣの一方の更新に伴って他方の更新を必要とする組合せ更新を実行するときに、そのことを表す組合せ更新情報ＩＮＦＣが送信される。なお、組合せ更新が実行されるときには、更新用プログラムＰＲＵは、燃料更新用プログラムＰＲＵＦおよび変速更新用プログラムＰＲＵＣの順で送信される。
【００３９】
ＦＩＥＣＵ２０は、通信用インターフェース（Ｉ／Ｆ）２１、マイコン２２およびＥＥＰＲＯＭ２５などで構成されている。
【００４０】
通信用Ｉ／Ｆ２１は、書換装置１０とマイコン２２の後述するＣＰＵ２３との間でＣＡＮ通信を行うためのものであり、書換装置１０から送信された更新用プログラムＰＲＵを信号線８を介して受信し、ＣＰＵ２３に送信する。
【００４１】
マイコン２２は、ＣＰＵ２３およびフラッシュＲＯＭ２４などで構成されている。フラッシュＲＯＭ２４の記憶領域には、燃料制御用プログラムＰＲＦが記憶されている。この燃料制御用プログラムＰＲＦは、記憶領域に割り当てられたアドレスによって指定されるアドレス空間に、ブロック単位で記憶されている。
【００４２】
ＥＥＰＲＯＭ２５には、組合せ更新による燃料制御用プログラムＰＲＦの更新回数ＣＮＴＦが記憶されている。この更新回数ＣＮＴＦは、ＣＰＵ２３によって更新される。
【００４３】
ＣＰＵ２３は、燃料制御用プログラムＰＲＦを実行することによって、インジェクタ３の開弁時間および開弁時期を設定するとともに、その結果に基づいて、インジェクタ３を制御するための制御信号を生成し、インジェクタ３に出力する。また、ＣＰＵ２３は、書換装置１０から燃料更新用プログラムＰＲＵＦを受信したときに、燃料制御用プログラムＰＲＦの更新処理を実行するとともに、組合せ更新情報ＩＮＦＣを受信したときに、組合せ更新による燃料制御用プログラムＰＲＦの更新の異常判定を行う。
【００４４】
ＣＶＴＥＣＵ３０は、通信用インターフェース（Ｉ／Ｆ）３１、マイコン３２およびＥＥＰＲＯＭ３５などで構成されている。
【００４５】
通信用Ｉ／Ｆ３１は、書換装置１０とマイコン３２の後述するＣＰＵ３３との間でＣＡＮ通信を行うためのものであり、書換装置１０から送信された更新用プログラムＰＲＵを信号線８を介して受信し、ＣＰＵ３３に送信する。
【００４６】
マイコン３２は、ＣＰＵ３３およびフラッシュＲＯＭ３４などで構成されている。フラッシュＲＯＭ３４の記憶領域には、変速制御用プログラムＰＲＣが記憶されている。この変速制御用プログラムＰＲＣは、記憶領域に割り当てられたアドレスによって指定されるアドレス空間に、ブロック単位で記憶されている。
【００４７】
ＥＥＰＲＯＭ３５には、組合せ更新による変速制御用プログラムＰＲＣの更新回数ＣＮＴＣが記憶されている。この更新回数ＣＮＴＣは、ＣＰＵ３３によって更新される。
【００４８】
ＣＰＵ３３は、変速制御用プログラムＰＲＣを実行することによって、ＣＶＴ４の変速比を設定するとともに、その結果に基づいて、ＣＶＴ４を制御するための制御信号を生成し、ＣＶＴ４に出力する。また、ＣＰＵ３３は、書換装置１０から変速更新用プログラムＰＲＵＣを受信したときに、変速制御用プログラムＰＲＣの更新処理を実行するとともに、組合せ更新情報ＩＮＦＣを受信したときに、組合せ更新による変速制御用プログラムＰＲＣの更新の異常判定を行う。
【００４９】
図２は、上述した制御用プログラムＰＲの更新処理を示すフローチャートである。なお、制御用プログラムＰＲの更新処理の実行内容は、ＦＩＥＣＵ２０とＣＶＴＥＣＵ３０との間で互いに同じであるため、以下では、ＦＩＥＣＵ２０による燃料制御用プログラムＰＲＦの更新処理を例にとり、説明を行うものとする。
【００５０】
本処理では、まずステップ１（「Ｓ１」と図示。以下同じ）において、受信した更新用プログラムＰＲＵが燃料更新用プログラムＰＲＵＦであるか否かを判別する。この判別は、更新用プログラムＰＲＵに含まれるプログラム情報中の更新情報に基づいて行われ、具体的には、燃料更新用プログラムＰＲＵＦであることを表す更新情報を受信したときに、更新用プログラムＰＲＵが燃料更新用プログラムＰＲＵＦであると判別される。この判別結果がＮＯで、更新用プログラムＰＲＵが燃料更新用プログラムＰＲＵＦでないときには、燃料更新用プログラムＰＲＵＦを受信していないとして、燃料更新用プログラムＰＲＵＦの更新を行うことなく、そのまま本処理を終了する。
【００５１】
一方、ステップ１の判別結果がＹＥＳで、燃料更新用プログラムＰＲＵＦを受信したときには、フラッシュＲＯＭ２４に記憶された燃料制御用プログラムＰＲＦの内容を全部消去した（ステップ２）後、更新フラグＦ＿ＵＰＤＦを「０」にリセットする（ステップ３）。
【００５２】
次に、書換装置１０から燃料更新用プログラムＰＲＵＦをブロック単位で受信し（ステップ４）、受信した燃料更新用プログラムＰＲＵＦを、フラッシュＲＯＭ２４の対応するアドレス空間にブロック単位で書き込む（ステップ５）。これにより、燃料制御用プログラムＰＲＦが順次、更新される。
【００５３】
次いで、燃料制御用プログラムＰＲＦの更新が完了したか否かを判別する（ステップ６）。具体的には、更新された燃料制御用プログラムＰＲＦのブロック数が、燃料更新用プログラムＰＲＵＦのプログラム情報に含まれるブロック数と一致したときに、更新が完了したと判別される。このステップ６の判別結果がＮＯのときには、前記ステップ４に戻り、ステップ４以降の処理内容を繰り返し実行する。
【００５４】
一方、ステップ６の判別結果がＹＥＳで、燃料制御用プログラムＰＲＦの更新が完了したときには、そのことを表すために、更新フラグＦ＿ＵＰＤＦを「１」にセットし（ステップ７）、本処理を終了する。
【００５５】
変速制御用プログラムＰＲＣの更新は、変速更新用プログラムＰＲＵＣを受信したときに行われる。その場合、フラッシュＲＯＭ３４に記憶された変速制御用プログラムＰＲＣの内容を全部消去し、前述したＣＰＵ２３による燃料制御用プログラムＰＲＦの更新の場合と同様、ブロック単位で受信した変速更新用プログラムＰＲＵＣを、フラッシュＲＯＭ３４の対応するアドレス空間に書き込むことによって、行われる。また、ＣＰＵ３３は、更新した変速制御用プログラムＰＲＣのブロック数が、変速更新用プログラムＰＲＵＣの更新情報に含まれるブロック数に一致したときに、変速制御用プログラムＰＲＣの更新が完了したとして、そのことを表すために、更新フラグＦ＿ＵＰＤＣを「１」にセットする。
【００５６】
図３は、上述した制御用プログラムＰＲの組合せ更新の異常判定処理を示すフローチャートである。なお、この異常判定処理の実行内容は、ＦＩＥＣＵ２０とＣＶＴＥＣＵ３０とで互いに同じであるため、以下では、ＦＩＥＣＵ２０の異常判定処理を例にとり、説明を行うものとする。
【００５７】
本処理では、まずステップ１１において、組合せ更新情報ＩＮＦＣを受信したか否かを判別する。この判別結果がＮＯで、組合せ更新情報ＩＮＦＣを受信していないときには、異常判定を行うことなく、そのまま本処理を終了する。
【００５８】
一方、ステップ１１の判別結果がＹＥＳのときには、更新フラグＦ＿ＵＰＤＦが、前回と今回の間で「０」から「１」に変化したか否かを判別する（ステップ１２）。この判別結果がＹＥＳで、燃料制御用プログラムＰＲＦの更新が完了した直後のときには、更新回数ＣＮＴＦをカウントアップした（ステップ１３）後、ステップ１４に進む。この更新回数ＣＮＴＦのカウントアップは、ＥＥＰＲＯＭ２５に記憶した更新回数ＣＮＴＦを読み出し、この更新回数ＣＮＴＦに値１を加算することによって、行われる。また、ＥＥＰＲＯＭ２５に記憶された更新回数ＣＮＴＦを上述したようにしてカウントアップされた更新回数ＣＮＴＦに書き換え、更新する。
【００５９】
また、ステップ１２の判別結果がＮＯのときには、ステップ１３をスキップし、ステップ１４に進む。以上のように、ＥＥＰＲＯＭ２５に記憶された更新回数ＣＮＴＦは、組合せ更新による燃料制御用プログラムＰＲＦの更新が完了した直後にのみ更新されるので、この更新回数ＣＮＴＦは、組合せ更新によって燃料制御用プログラムＰＲＦが更新された回数を表す。
【００６０】
前記ステップ１２または１３に続くステップ１４では、ＥＥＰＲＯＭ２５に記憶された更新回数ＣＮＴＦを信号線９を介してＣＶＴＥＣＵ３０に送信する。
【００６１】
次に、更新回数ＣＮＴＦが、変速制御用プログラムＰＲＣの更新回数ＣＮＴＣよりも小さいか否かを判別する（ステップ１５）。この変速制御用プログラムＰＲＣの更新回数ＣＮＴＣは、組合せ更新によって変速制御用プログラムＰＲＣが更新された回数を表し、燃料制御用プログラムＰＲＦの更新回数ＣＮＴＦの場合と同様、変速制御用プログラムＰＲＣの更新が完了した直後に更新され、ＥＥＰＲＯＭ３５に記憶される。また、この更新回数ＣＮＴＣは、信号線９を介してＦＩＥＣＵ２０に送信される。
【００６２】
このステップ１５の判別結果がＮＯで、ＥＥＰＲＯＭ２５に記憶した更新回数ＣＮＴＦが受信した更新回数ＣＮＴＣ以上のときには、組合せ更新による燃料制御用プログラムＰＲＦの更新が正常に行われたとして、そのことを表すために、異常フラグＦ＿ＵＰＤＦＮＧを「０」にセットし（ステップ１６）、本処理を終了する。
【００６３】
一方、ステップ１５の判別結果がＹＥＳで、更新回数ＣＮＴＦ＜更新回数ＣＮＴＣのときには、燃料制御用プログラムＰＲＦの更新の異常が生じていると判定し、そのことを表すために、異常フラグＦ＿ＵＰＤＦＮＧを「１」にセットした（ステップ１７）後、警告灯７を点灯させ（ステップ１８）、本処理を終了する。
【００６４】
また、変速制御用プログラムＰＲＣの組合せ更新の異常判定処理も、燃料制御用プログラムＰＲＦの更新の異常判定処理の場合と同様、組合せ更新情報ＩＮＦＣの受信中にＥＥＰＲＯＭ３５に記憶した更新回数ＣＮＴＣが、同じ組合せ更新情報ＩＮＦＣの受信中にＦＩＥＣＵ２０から受信した更新回数ＣＮＴＦよりも小さいときに、変速制御用プログラムＰＲＣの更新の異常が生じていると判定し、そのことを表すために、異常フラグＦ＿ＵＰＤＣＮＧを「１」にセットする。
【００６５】
以上のように、第１実施形態によれば、組合せ更新を行う場合、ＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０ごとに更新回数ＣＮＴＦ、ＣＮＴＣを記憶するだけなので、組合せ更新に関するデータの容量を小さくすることができる。それにより、組合せ更新に関するデータの記憶容量を削減できるとともに、更新時間を短縮できる結果、組合せ更新の管理を簡素化することができる。
【００６６】
また、両更新回数ＣＮＴＦ、ＣＮＴＣは、制御用プログラムＰＲの更新が完了した直後にのみカウントアップされるため、組合せ更新に伴う制御用プログラムＰＲの更新が正常に行われていれば、両更新回数ＣＮＴＦ、ＣＮＴＣは互いに一致する。このため、ＦＩＥＣＵ２０に記憶された更新回数ＣＮＴＦとＣＶＴＥＣＵ３０に記憶された更新回数ＣＮＴＣとを比較し、この比較結果に基づき、両者が一致していないときに、ＦＩＥＣＵ２０とＣＶＴＥＣＵ３０のいずれかで、制御用プログラムＰＲの更新が正常に行われていないと適切に判定することができる。さらに、両更新回数ＣＮＴＦ、ＣＮＴＣに基づいて、組合せ更新の異常判定を行うので、その正否を容易に判定することができる。
【００６７】
さらには、更新回数ＣＮＴＦ、ＣＮＴＣの小さい方のＦＩＥＣＵ２０およびＣＶＴＥＣＵ３０が、異常フラグＦ＿ＵＰＤＦＮＧ、Ｆ＿ＵＰＤＣＮＧを「１」にセットするとともに、警告灯７を点灯させるので、その場合には、異常フラグＦ＿ＵＰＤＦＮＧ、Ｆ＿ＵＰＤＣＮＧのセット状態に基づいて、ＦＩＥＣＵ２０とＣＶＴＥＣＵ３０のどちらで、制御用プログラムＰＲの更新が行われていないかを特定することができる。
【００６８】
図４は、本発明の第２実施形態による制御用プログラムの更新装置４０を示している。この更新装置４０は、前述した燃料制御用プログラムＰＲＦおよび変速制御用プログラムＰＲＣに加え、モータ５を制御するためのモータ制御用プログラムＰＲＭ、およびバッテリ６を制御するためのバッテリ制御用プログラムＰＲＶを更新するためのものである。なお、以下の説明では、前述した第１実施形態と同様の構成については、同じ参照番号を付し、その詳細な説明は省略するものとする。この更新装置４０は、書換装置４１、ＦＩＥＣＵ２０、ＣＶＴＥＣＵ３０、ＭＯＴＥＣＵ５０、ＶＡＴＥＣＵ６０、書換装置４１とＥＣＵ２０、３０、５０、６０を接続する信号線７０、およびＥＣＵ２０、３０、５０、６０を相互に接続する信号線７１を備えている。
【００６９】
書換装置４１は、燃料制御用プログラムＰＲＦとして書き換えるべき燃料更新用プログラムＰＲＵＦ、変速制御用プログラムＰＲＣとして書き換えるべき変速更新用プログラムＰＲＵＣ、モータ制御用プログラムＰＲＭとして書き換えるべきモータ更新用プログラムＰＲＵＭ、およびバッテリ制御用プログラムＰＲＶとして書き換えるべきバッテリ更新用プログラムＰＲＵＶを取得し、ＥＣＵ２０、３０、５０、６０にそれぞれ送信するためのものである。なお、以下の説明では、燃料制御用プログラムＰＲＦ、変速制御用プログラムＰＲＣ、モータ制御用プログラムＰＲＭおよびバッテリ制御用プログラムＰＲＶを適宜、総称して「制御用プログラムＰＲ」といい、燃料更新用プログラムＰＲＵＦ、変速更新用プログラムＰＲＵＣ、モータ更新用プログラムＰＲＵＭおよびバッテリ更新用プログラムＰＲＵＶを適宜、総称して「更新用プログラムＰＲＵ」という。
【００７０】
書換装置４１には、書換時、更新用プログラムＰＲＵを記録した記録媒体（図示せず）が装着される。書換装置４１は、この記録媒体から更新用プログラムＰＲＵをブロック単位で読み出し、信号線７０を介してＥＣＵ２０、３０、５０、６０にそれぞれ送信する。なお、この更新用プログラムＰＲＵの最初のブロックには、更新用プログラムＰＲＵが、燃料更新用プログラムＰＲＵＦ、変速更新用プログラムＰＲＵＣ、モータ更新用プログラムＰＲＵＭ、およびバッテリ更新用プログラムＰＲＵＶのいずれであるかを表す更新情報と、更新用プログラムＰＲＵのブロック数を表す情報が、プログラム情報として記録されている。
【００７１】
この書換装置４１では、更新用プログラムＰＲＵの送信に先立ち、組合せ更新情報ＩＮＦＣおよび組合せ対象情報ＩＮＦＯをＥＣＵ２０、３０、５０、６０にそれぞれ送信する。具体的には、４つのＥＣＵ２０、３０、５０、６０の少なくとも２つを対象として、組合せ更新を実行するときに、組合せ更新情報ＩＮＦＣが送信され、このときには、この組合せ更新の対象となるＥＣＵ２０、３０、５０、６０を特定するための組合せ対象情報ＩＮＦＯも送信される。
【００７２】
図５に示すように、ＦＩＥＣＵ２０のＥＥＰＲＯＭ２５には、組合せ更新の対象となる相手ごとに、更新回数ＣＮＴＦ１〜ＣＮＴＦ３が、アドレスによって指定されたアドレス空間に記憶されている。例えば、更新回数ＣＮＴＦ１は、組合せ更新の対象となる相手方がＣＶＴＥＣＵ３０のときのＦＩＥＣＵ２０によって燃料制御用プログラムＰＲＦが更新された回数を表し、更新回数ＣＮＴＦ２は、組合せ更新の対象となる相手方がＭＯＴＥＣＵ５０のときのＦＩＥＣＵ２０によって燃料制御用プログラムＰＲＦが更新された回数を表し、更新回数ＣＮＴＦ３は、組合せ更新の対象となる相手方がＶＡＴＥＣＵ６０のときのＦＩＥＣＵ２０によって燃料制御用プログラムＰＲＦが更新された回数を表す。これらの更新回数ＣＮＴＦ１〜ＣＮＴＦ３は、ＣＰＵ２３によって更新される。具体的には、ＣＰＵ２３は、組合せ対象情報ＩＮＦＯに応じ、アドレスを特定し、そのアドレスによって指定されたアドレス空間に記憶された更新回数ＣＮＴＦ１〜ＣＮＴＦ３のいずれかを更新する。
【００７３】
同様にして、ＣＶＴＥＣＵ３０のＥＥＰＲＯＭ３５には、組合せ更新の対象となる相手ごとに、更新回数ＣＮＴＣ１〜ＣＮＴＣ３が、アドレスによって指定されたアドレス空間に記憶されている。例えば、更新回数ＣＮＴＣ１は、組合せ更新の対象となる相手方がＦＩＥＣＵ２０のときのＣＶＴＥＣＵ３０によって変速制御用プログラムＰＲＣが更新された回数を表し、更新回数ＣＮＴＦ２は、組合せ対象となる相手方がＭＯＴＥＣＵ５０のときのＣＶＴＥＣＵ３０によって変速制御用プログラムＰＲＣが更新された回数を表し、更新回数ＣＮＴＣ３は、組合せ更新の対象となる相手方がＶＡＴＥＣＵ６０のときのＣＶＴＥＣＵ３０によって変速制御用プログラムＰＲＣが更新された回数を表す。これらの更新回数ＣＮＴＣ１〜ＣＮＴＣ３は、ＣＰＵ２３の場合と同様、組合せ対象情報ＩＮＦＯに応じて、ＣＰＵ３３によって更新される。
【００７４】
ＭＯＴＥＣＵ５０は、通信用インターフェース（Ｉ／Ｆ）５１、マイコン５２およびＥＥＰＲＯＭ５５などで構成されている。
【００７５】
通信用Ｉ／Ｆ５１は、書換装置４１とマイコン５２の後述するＣＰＵ５３との間でＣＡＮ通信を行うためのものであり、書換装置４１から送信された更新用プログラムＰＲＵを信号線７０を介して受信し、ＣＰＵ５３に送信する。
【００７６】
マイコン５２は、ＣＰＵ５３およびフラッシュＲＯＭ５４などで構成されている。フラッシュＲＯＭ５４の記憶領域には、モータ制御用プログラムＰＲＭが記憶されている。このモータ制御用プログラムＰＲＭは、記憶領域に割り当てられたアドレスによって指定されるアドレス空間に、ブロック単位で記憶されている。
【００７７】
ＥＥＰＲＯＭ５５には、組合せ更新の対象となる相手ごとに、更新回数ＣＮＴＭ１〜ＣＮＴＭ３が、アドレスによって指定されたアドレス空間に記憶されている。例えば、更新回数ＣＮＴＭ１は、組合せ更新の対象となる相手方がＦＩＥＣＵ２０のときのＭＯＴＥＣＵ５０によってモータ制御用プログラムＰＲＭが更新された回数を表し、更新回数ＣＮＴＭ２は、組合せ更新の対象となる相手方がＣＶＴＥＣＵ３０のときのＭＯＴＥＣＵ５０によってモータ制御用プログラムＰＲＭが更新された回数を表し、更新回数ＣＮＴＭ３は、組合せ更新の対象となる相手方がＶＡＴＥＣＵ６０のときのＭＯＴＥＣＵ５０によってモータ制御用プログラムＰＲＭが更新された回数を表す。これらの更新回数ＣＮＴＭ１〜ＣＮＴＭ３は、ＣＰＵ２３、３３の場合と同様、組合せ対象情報ＩＮＦＯに応じて、ＣＰＵ５３によって更新される。
【００７８】
ＣＰＵ５３は、モータ制御用プログラムＰＲＭを実行することによって、モータ５を制御するための制御信号を生成し、モータ５を制御する。また、ＣＰＵ５３は、書換装置４１からモータ更新用プログラムＰＲＵＭを受信したときに、モータ制御用プログラムＰＲＭの更新処理を実行するとともに、組合せ更新情報ＩＮＦＣを受信したときに、組合せ更新によるモータ制御用プログラムＰＲＭの更新の異常判定を行う。
【００７９】
ＶＡＴＥＣＵ６０は、通信用インターフェース（Ｉ／Ｆ）６１、マイコン６２およびＥＥＰＲＯＭ６５などで構成されている。
【００８０】
通信用Ｉ／Ｆ６１は、書換装置４１とマイコン６２の後述するＣＰＵ６３との間でＣＡＮ通信を行うためのものであり、書換装置４１から送信された更新用プログラムＰＲＵを信号線７０を介して受信し、ＣＰＵ６３に送信する。
【００８１】
マイコン６２は、ＣＰＵ６３およびフラッシュＲＯＭ６４などで構成されている。フラッシュＲＯＭ６４の記憶領域には、バッテリ制御用プログラムＰＲＶが記憶されている。このバッテリ制御用プログラムＰＲＶは、記憶領域に割り当てられたアドレスによって指定されるアドレス空間に、ブロック単位で記憶されている。
【００８２】
ＥＥＰＲＯＭ６５には、組合せ更新の対象となる相手ごとに、更新回数ＣＮＴＶ１〜ＣＮＴＶ３が、アドレスによって指定されたアドレス空間に記憶されている。例えば、更新回数ＣＮＴＶ１は、組合せ更新の対象となる相手方がＦＩＥＣＵ２０のときのＶＡＴＥＣＵ６０によってバッテリ制御用プログラムＰＲＶが更新された回数を表し、更新回数ＣＮＴＶ２は、組合せ更新の対象となる相手方がＣＶＴＥＣＵ３０のときのＶＡＴＥＣＵ６０によってバッテリ制御用プログラムＰＲＶが更新された回数を表し、更新回数ＣＮＴＶ３は、組合せ更新の対象となる相手方がＭＯＴＥＣＵ５０のときのＶＡＴＥＣＵ６０によってバッテリ制御用プログラムＰＲＶが更新された回数を表す。これらの更新回数ＣＮＴＶ１〜ＣＮＴＶ３は、ＣＰＵ２３などの場合と同様、組合せ対象情報ＩＮＦＯに応じて、ＣＰＵ６３によって更新される。
【００８３】
ＣＰＵ６３は、バッテリ制御用プログラムＰＲＶを実行することによって、バッテリ６を制御する。また、ＣＰＵ６３は、書換装置４１からバッテリ更新用プログラムＰＲＵＶを受信したときに、バッテリ制御用プログラムＰＲＶの更新処理を実行するとともに、組合せ更新情報ＩＮＦＣを受信したときに、組合せ更新によるバッテリ制御用プログラムＰＲＶの更新の異常判定を行う。
【００８４】
なお、ＣＰＵ５３によるモータ制御用プログラムＰＲＭおよびＣＰＵ６３によるバッテリ制御用プログラムＰＲＶの更新処理の実行内容は、前述した第１実施形態のＣＰＵ２３による燃料制御用プログラムＰＲＦの更新処理の実行内容と同じであるため、その詳細な説明は省略するものとする。
【００８５】
図６は、前述した制御用プログラムＰＲの更新の異常判定処理を示すフローチャートである。なお、この異常判定処理の実行内容は、ＦＩＥＣＵ２０、ＣＶＴＥＣＵ３０、ＭＯＴＥＣＵ５０およびＶＡＴＥＣＵ６０の間で互いに同じであるため、以下では、ＦＩＥＣＵ２０の異常判定処理を例にとり、制御用プログラムＰＲの更新をすべてのＥＣＵ２０、３０、５０、６０で行う場合について説明を行うものとする。なお、以下の説明では、前述した第１実施形態と同様の実行内容については、同じステップ番号を付し、その詳細な説明は省略するものとする。
【００８６】
本処理では、まずステップ１１において、組合せ更新情報ＩＮＦＣを受信したときには、燃料制御用プログラムＰＲＦの更新の完了直後か否かを判別する（ステップ１２）。この判別結果がＹＥＳで、燃料制御用プログラムＰＲＦの更新の完了直後には、更新回数ＣＮＴＦ１〜ＣＮＴＦ３をカウントアップする（ステップ２１）。具体的には、組合せ対象情報ＩＮＦＯに対応するアドレスによって指定されたアドレス空間に記憶された更新回数ＣＮＴＦ１〜ＣＮＴＦ３を値１だけカウントアップする。また、この更新回数ＣＮＴＦ１〜ＣＮＴＦ３を組合せ対象情報ＩＮＦＯとともに、信号線７１を介してＣＶＴＥＣＵ３０、ＭＯＴＥＣＵ５０およびＶＡＴＥＣＵ６０に送信する（ステップ２２）。
【００８７】
一方、前記ステップ１２の判別結果がＮＯで、燃料制御用プログラムＰＲＦの更新の完了直後以外のときには、ステップ２２にそのまま進む。
【００８８】
ステップ２２に続くステップ２３では、記憶した更新回数ＣＮＴＦ１と受信した更新回数ＣＮＴＣ１とが、記憶した更新回数ＣＮＴＦ２と受信した更新回数ＣＮＴＭ１とが、記憶した更新回数ＣＮＴＦ３と受信した更新回数ＣＮＴＶ１とが、それぞれ互いに一致しているか否かを判別する（ステップ２３）。
【００８９】
この判別結果がＹＥＳで、ＣＮＴＦ１＝ＣＮＴＭ１、ＣＮＴＦ２＝ＣＮＴＭ１で、かつＣＮＴＦ３＝ＣＮＴＶ１のときには、組合せ更新による燃料制御用プログラムＰＲＦの更新が正常に行われたとして、そのことを表すために、異常フラグＦ＿ＵＰＤＦＮＧを「０」にセットし（ステップ１６）、本処理を終了する。
【００９０】
一方、ステップ２３の判別結果がＮＯのときには、記憶した更新回数ＣＮＴＦ１が受信した更新回数ＣＮＴＣ１よりも小さいか否かを判別する（ステップ２４）。この判別結果がＹＥＳで、ＣＮＴＦ１＜ＣＮＴＣ１のときには、燃料制御用プログラムＰＲＦの更新の異常が生じていると判定し、そのことを表すために、異常フラグＦ＿ＵＰＤＦＮＧを「１」にセットした（ステップ１７）後、警告灯７を点灯させ（ステップ１８）、本処理を終了する。
【００９１】
また、ステップ２４の判別結果がＮＯのときには、記憶した更新回数ＣＮＴＦ２が受信した更新回数ＣＮＴＭ１よりも小さいか否かを判別する（ステップ２５）。この判別結果がＹＥＳで、ＣＮＴＦ２＜ＣＮＴＭ１のときには、燃料制御用プログラムＰＲＦの更新の異常が生じていると判定し、前記ステップ１７以降を実行する。
【００９２】
一方、ステップ２５の判別結果がＮＯのときには、記憶した更新回数ＣＮＴＦ３が受信した更新回数ＣＮＴＶ１よりも小さいか否かを判別する（ステップ２６）。この判別結果がＹＥＳで、ＣＮＴＦ３＜ＣＮＴＶ１のときには、燃料制御用プログラムＰＲＦの更新の異常が生じていると判定し、前記ステップ１７以降を実行する。
【００９３】
また、ステップ２６の判別結果がＮＯのときには、記憶した更新回数ＣＮＴＦ１〜ＣＮＴＦ３と受信した更新回数ＣＮＴＣ１、ＣＮＴＭ１、ＣＮＴＶ１とが互いに一致していないものの、記憶した更新回数ＣＮＴＦ１〜ＣＮＴＦ３が受信した更新回数ＣＮＴＣ１、ＣＮＴＭ１、ＣＮＴＶ１以上であることから、制御用プログラムＰＲの更新が正常に行われていないのが他のＥＣＵ３０、５０、６０であり、燃料制御用プログラムＰＲＦの更新は正常に行われたと判定し、そのことを表すために、前記ステップ１６に進み、異常フラグＦ＿ＵＰＤＦＮＧを「０」にセットした後、本処理を終了する。
【００９４】
また、変速制御用プログラムＰＲＣ、モータ制御用プログラムＰＲＭおよびバッテリ制御用プログラムＰＲＶの組合せ更新の異常判定処理も、燃料制御用プログラムＰＲＦの場合と同様に行われる。すなわち、ＣＶＴＥＣＵ３０では、記憶した更新回数ＣＮＴＣ１〜ＣＮＴＣ３が受信した更新回数ＣＮＴＦ１、ＣＮＴＭ２、ＣＮＴＶ２とそれぞれ一致していないときには、記憶した更新回数ＣＮＴＣ１〜ＣＮＴＣ３と受信した更新回数ＣＮＴＦ１、ＣＮＴＭ２、ＣＮＴＶ２との大小関係に応じて、ＭＯＴＥＣＵ５０では、記憶した更新回数ＣＮＴＭ１〜ＣＮＴＭ３と受信した更新回数ＣＮＴＦ２、ＣＮＴＣ２、ＣＮＴＶ３との大小関係に応じて、ＶＡＴＥＣＵ６０では、記憶した更新回数ＣＮＴＶ１〜ＣＮＴＶ３と受信した更新回数ＣＮＴＦ３、ＣＮＴＣ３、ＣＮＴＭ３との大小関係に応じて、それぞれ異常判定が行われる。また、異常判定において比較される更新回数は、組合せ対象情報ＩＮＦＯに応じて変更される。
【００９５】
さらに、組合せ更新の対象が、４つのＥＣＵ２０、３０、５０、６０のうちの３つの場合においても、前述した第２実施形態と同様、組合せ対象情報ＩＮＦＯに基づいて、組合せ更新による更新回数を相手方のＥＣＵごとにカウントアップするとともに、記憶し、記憶した更新回数と他のＥＣＵから受信した更新回数とを比較することによって、制御用プログラムの更新の異常判定を行うことができる。
【００９６】
以上のように、第２実施形態によれば、組合せ更新情報ＩＮＦＣを受信したときには、組合せ対象情報ＩＮＦＯに基づき、組合せ更新による更新回数ＣＮＴＦ１〜ＣＮＴＦ３、ＣＮＴＣ１〜ＣＮＴＣ３、ＣＮＴＭ１〜ＣＮＴＭ３、ＣＮＴＶ１〜ＣＮＴＶ３を相手方のＥＣＵ２０、３０、５０、６０ごとにカウントアップし、記憶するとともに、組合せ対処情報ＩＮＦＯとともに相手方のＥＣＵ２０、３０、５０、６０に送信する。そして、記憶した更新回数ＣＮＴＦ１〜ＣＮＴＦ３、ＣＮＴＣ１〜ＣＮＴＣ３、ＣＮＴＭ１〜ＣＮＴＭ３またはＣＮＴＶ１〜ＣＮＴＶ３と受信した更新回数ＣＮＴＦ１〜ＣＮＴＦ３、ＣＮＴＣ１〜ＣＮＴＣ３、ＣＮＴＭ１〜ＣＮＴＭ３、ＣＮＴＶ１〜ＣＮＴＶ３のいずれかを比較するだけで、ＥＣＵ２０、３０、５０、６０が３つ以上の場合においても、組合せ更新の正否を適切かつ容易に判定することができる。
【００９７】
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、第１実施形態では、制御用プログラムＰＲの更新の異常判定を、ＦＩＥＣＵ２０とＣＶＴＥＣＵ３０のそれぞれで行っているが、これに限らず、いずれか一方のＥＣＵで行ってもよい。その場合、記憶した更新回数と受信した更新回数が一致していないときに、制御用プログラムの更新の異常が生じていると判定される。
【００９８】
また、実施形態では、更新回数を、カウントアップすることによって求めているが、これに限らず、例えば所定値からカウントダウンすることによって求めてもよい。
【００９９】
さらに、実施形態では、異常判定を、ＥＣＵ２０、３０、５０、６０でそれぞれ行っているが、これに限らず、更新回数に応じて、上記ＥＣＵ以外の他の制御ユニットで行ってもよい。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【符号の説明】
【０１００】
１  更新装置
８  信号線（組合せ更新情報送信手段）
９  信号線（送信手段）
１０  書換装置
２０  ＦＩＥＣＵ（第１および第２の制御ユニット）
２３  ＣＰＵ（更新手段、カウントアップ手段、比較手段および異常判定手段）
２４  フラッシュＲＯＭ（記憶部）
２５  ＥＥＰＲＯＭ（更新回数記憶手段）
３０  ＣＶＴＥＣＵ（第１および第２の制御ユニット）
３３  ＣＰＵ（更新手段、カウントアップ手段、比較手段および異常判定手段）
３４  フラッシュＲＯＭ（記憶部）
３５  ＥＥＰＲＯＭ（更新回数記憶手段）
４０  更新装置
４１  書換装置
５０  ＭＯＴＥＣＵ（第３の制御ユニット）
５３  ＣＰＵ（更新手段およびカウントアップ手段）
５４  フラッシュＲＯＭ（記憶部）
６０  ＶＡＴＥＣＵ（第３の制御ユニット）
６３  ＣＰＵ（更新手段およびカウントアップ手段）
６４  フラッシュＲＯＭ（記憶部）
７０  信号線（組合せ更新情報送信手段および組合せ対象情報送信手段）
７１  信号線（送信手段）
ＰＲ  制御用プログラム
ＰＲＵ  更新用プログラム
ＣＮＴＦ  更新回数（記憶更新回数または受信更新回数）
ＣＮＴＣ  更新回数（記憶更新回数または受信更新回数）
ＣＮＴＦ１〜ＣＮＴＦ３  更新回数（記憶更新回数または受信更新回数）
ＣＮＴＣ１〜ＣＮＴＣ３  更新回数（記憶更新回数または受信更新回数）
ＣＮＴＭ１〜ＣＮＴＭ３  更新回数（記憶更新回数または受信更新回数）
ＣＮＴＶ１〜ＣＮＴＶ３  更新回数（記憶更新回数または受信更新回数）
ＩＮＦＣ  組合せ更新情報
ＩＮＦＯ  組合せ対象情報
【図１】
2011134038.tif 000003
【図２】
2011134038.tif 000004
【図３】
2011134038.tif 000005
【図４】
2011134038.tif 000006
【図５】
2011134038.tif 000007
【図６】
2011134038.tif 000008