(57)【特許請求の範囲】
【請求項１】
第１制御ユニット及び第２制御ユニットに通信可能に接続される書込みユニットを用いて前記第１及び第２制御ユニットにデータを書き込むためのデータ書込み方法であって、
前記第２制御ユニットは、前記第１制御ユニットに通信可能に接続されており、
前記第２制御ユニットにおける書込みデータの種別を表す第２種別データを前記第１制御ユニットに記憶し、
当該第１制御ユニットは、前記第２制御ユニットにデータを書き込むに際し、前記記憶された第２種別データに基づいて、前記第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データを取得するとともに、前記書込みユニットに送信し、
前記書込みユニットは、前記送信された第２書込み用種別データに応じて、前記第２制御ユニットに書き込むべきデータである第２書込み用データを前記第２制御ユニットに送信し、
前記送信された第２書込み用データを前記第２制御ユニットに書き込み、
前記書込みユニットは、前記第２書込み用データに加え、当該第２書込み用データに応じた最新の前記第２種別データを前記第２制御ユニットに送信し、
前記第２制御ユニットは、前記送信された最新の第２種別データを前記第１制御ユニットに送信し、
前記第１制御ユニットは、前記第２書込み用種別データと前記送信された最新の第２種別データとの比較結果に基づいて、前記第２制御ユニットへのデータの書込みが適正に行われたか否かを判定することを特徴とするデータ書込み方法。
【請求項２】
前記第２制御ユニットへの前記第２書込み用データの書込みを、前記第２制御ユニットにデータが書き込まれていない当該第２制御ユニットの初期状態において行うことを特徴とする、請求項１に記載のデータ書込み方法。
【請求項３】
前記書込みユニットには、前記第２制御ユニットを介して第３制御ユニットが通信可能に接続されており、
前記第３制御ユニットに書き込むべきデータである第３書込み用データを、前記書込みユニットから前記第２制御ユニットを介して前記第３制御ユニットに送信し、
前記送信された第３書込み用データを、前記第３制御ユニットに書き込むことを特徴とする、請求項１又は２に記載のデータ書込み方法。
【請求項４】
前記第３制御ユニットにおける書込みデータの種別を表す第３種別データを前記第１制御ユニットに記憶し、
当該第１制御ユニットは、前記第３制御ユニットに前記第３書込み用データを書き込むに際し、前記記憶された第３種別データに基づいて、前記第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データを取得するとともに、前記書込みユニットに送信し、
前記書込みユニットは、前記送信された第３書込み用種別データに応じて、前記第３書込み用データを取得することを特徴とする、請求項３に記載のデータ書込み方法。
【請求項５】
データを書き込み可能な第１制御ユニットと、
当該第１制御ユニットに通信可能に接続され、データを書き込み可能な第２制御ユニットと、
前記第１及び第２制御ユニットに通信可能に接続される書込みユニットと、を備え、
前記第１制御ユニットは、
前記第２制御ユニットにおける書込みデータの種別を表す第２種別データを記憶する第２種別データ記憶手段と、
前記第２制御ユニットにデータを書き込むに際し、前記記憶された第２種別データに基づいて、前記第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データを取得するとともに、前記書込みユニットに送信する第２書込み用種別データ送信手段と、を有し、
前記書込みユニットは、前記送信された第２書込み用種別データに応じて、前記第２制御ユニットに書き込むべきデータである第２書込み用データを前記第２制御ユニットに送信する第２書込み用データ送信手段を有し、
前記第２制御ユニットは、前記送信された第２書込み用データを当該第２制御ユニットに書き込む第２書込み用データ書込み手段を有し、
前記書込みユニットは、前記第２書込み用データに加え、当該第２書込み用データに応じた最新の前記第２種別データを前記第２制御ユニットに送信する第２種別データ送信手段をさらに有し、
前記第２制御ユニットは、前記送信された最新の前記第２種別データを前記第１制御ユニットに送信する第２種別データ転送手段をさらに有し、
前記第１制御ユニットは、前記第２書込み用種別データと前記送信された最新の第２種別データとの比較結果に基づいて、前記第２制御ユニットへのデータの書込みが適正に行われたか否かを判定する判定手段をさらに有することを特徴とするデータ書込み装置。
【請求項６】
前記第２制御ユニットへの前記第２書込み用データの書込みを、前記第２制御ユニットにデータが書き込まれていない当該第２制御ユニットの初期状態において行うことを特徴とする、請求項５に記載のデータ書込み装置。
【請求項７】
前記書込みユニットには、前記第２制御ユニットを介して第３制御ユニットが通信可能に接続され、
前記第３制御ユニットに書き込むべきデータである第３書込み用データが、前記書込みユニットから前記第２制御ユニットを介して前記第３制御ユニットに送信され、
前記第３制御ユニットは、前記送信された第３書込み用データを書き込む第３書込み用データ書込み手段を有することを特徴とする、請求項５又は６に記載のデータ書込み装置。
【請求項８】
前記第１制御ユニットは、
前記第３制御ユニットにおける書込みデータの種別を表す第３種別データを記憶する第３種別データ記憶手段と、
前記第３制御ユニットに前記第３書込み用データを書き込むに際し、前記記憶された第３種別データに基づいて、前記第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データを取得するとともに、前記書込みユニットに送信する第３書込み用種別データ送信手段と、をさらに有し、
前記書込みユニットは、前記送信された第３書込み用種別データに応じて、前記第３書込み用データを取得する第３書込み用データ取得手段を有することを特徴とする、請求項７に記載のデータ書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御ユニットにデータを書き込むためのデータ書込み方法及びデータ書込み装置に関する。
【背景技術】
【０００２】
従来、この種のデータ書込み装置として、例えば特許文献１に開示されたものが知られている。このデータ書込み装置は、車両用の制御装置の制御プログラムの書換えを行う際、識別コード取得プログラムを制御装置に送信する。制御装置は、送信され、入力された識別コード取得プログラムに従い、自身のマイクロコンピュータを識別するための識別コードを生成し、取得する。
【０００３】
この場合、識別コードの生成は、制御装置のＣＰＵに用意されているマイクロコンピュータの種別を表すポートなどを用いて行われる。また、取得した識別コードは、データ書込み装置に入力され、データ書込み装置は、入力された識別コードに基づいて、制御装置に書換え用のプログラムを送信する。制御装置では、制御プログラムが、送信された書換え用のプログラムに書き換えられる。以上により、この従来のデータ書込み装置では、識別コード取得プログラムを制御装置に記憶させずに、そのマイクロコンピュータの種別に応じてプログラムの書換えを適切に行うようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述したように、従来のデータ書込み装置では、制御装置に用意されているポートなどに応じて識別コードを取得するとともに、取得された識別コードに基づいてプログラムが書き換えられる。このため、例えば車両の製造時で制御装置へのデータの書込み動作が一度も行われていないことにより、あるいは、制御装置に書き込まれていたデータが何らかの理由で消失したことなどにより、制御装置にデータが書き込まれていない制御装置の初期状態である場合には、マイクロコンピュータの種別に応じてプログラムを適切に書き換えることができないおそれがある。
【０００６】
また、近年、制御装置として、車両用のエンジンを制御するためのエンジン用の制御ユニットや、変速機の変速比を制御するための変速機用の制御ユニットなどの複数の制御ユニットを備えたものが知られている。このように複数の制御ユニットを備える制御装置では特に、プログラムの書換えにあたって人為的なミスが発生しやすく、上述した不具合、すなわちマイクロコンピュータの種別に応じてプログラムを適切に書き換えられないという不具合が、より顕著になってしまう。
【０００７】
本発明は、以上のような課題を解決するためになされたものであり、複数の制御ユニットの一部が初期状態にある場合でも、当該一部の制御ユニットにおける書込みデータの種別に応じてデータを適切に書き込むことができるデータ書込み方法及びデータ書込み装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、請求項１に係る発明は、第１制御ユニット（実施形態における（以下、本項において同じ）ＦＩＥＣＵ２１）及び第２制御ユニット（ＣＶＴＥＣＵ３１、ＭＯＴＥＣＵ６１）に通信可能に接続される書込みユニット２、５２を用いて第１及び第２制御ユニットにデータを書き込むためのデータ書込み方法であって、第２制御ユニットは、第１制御ユニットに通信可能に接続されており、第２制御ユニットにおける書込みデータの種別を表す第２種別データ（ＣＶＴＥＣＵ種別データＤＣＣ、ＭＯＴＥＣＵ種別データＤＣＭ）を第１制御ユニットに記憶し、第１制御ユニットは、第２制御ユニットにデータを書き込むに際し、記憶された第２種別データに基づいて、第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データ（変速書込み用種別データＷＤＣＣ、モータ書込み用種別データＷＤＣＭ）を取得する（図２のステップ９、図７のステップ６３）とともに、書込みユニット２、５２に送信し（図２のステップ１０、図７のステップ６４）、書込みユニット２、５２は、送信された第２書込み用種別データに応じて、第２制御ユニットに書き込むべきデータである第２書込み用データ（変速書込み用プログラムＰＲＵＣ、モータ書込み用プログラムＰＲＵＭ）を第２制御ユニットに送信し（図３のステップ２７、２９、図８のステップ７２、７４）、送信された第２書込み用データを第２制御ユニットに書き込み（図４のステップ４１、図９のステップ９１）、書込みユニットは、第２書込み用データに加え、第２書込み用データに応じた最新の第２種別データを第２制御ユニットに送信し（図３のステップ２８、３０、図８のステップ７３、７５）、第２制御ユニットは、送信された最新の第２種別データを第１制御ユニットに送信し（図４のステップ４２、４３、図９のステップ９２、９３）、第１制御ユニットは、第２書込み用種別データと送信された最新の第２種別データとの比較結果に基づいて、第２制御ユニットへのデータの書込みが適正に行われたか否かを判定する（図５のステップ５１、図１２のステップ１２１）ことを特徴とする。
【０００９】
この構成によれば、書込みユニットを用いて、第１及び第２制御ユニットへのデータの書込みが行われる。具体的には、第２制御ユニットにおける書込みデータの種別を表す第２種別データが、第１制御ユニットに記憶されており、第１制御ユニットは、第２制御ユニットにデータを書き込むに際し、記憶された第２種別データに基づいて、第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データを取得する。
【００１０】
このように、第２書込み用種別データは、第２制御ユニットにおける書込みデータの種別（例えばバージョン番号や、仕向け先など）を表す第２種別データに基づいて取得されるため、第２制御ユニットに書き込むべきデータの種別を良好に指示する。また、本発明によれば、この第２書込み用種別データが、第１制御ユニットに記憶された第２種別データに基づいて第１制御ユニットにより取得され、書込みユニットに送信されるとともに、送信された第２書込み用種別データに応じて、第２制御ユニットに書き込むべきデータである第２書込み用データが取得され、第２制御ユニットに書き込まれる。
【００１１】
したがって、装置の製造時で第２制御ユニットへのデータの書込み動作が一度も行われていないことにより、あるいは、第２制御ユニットに書き込まれていたデータが何らかの理由で消失したことなどにより、第２制御ユニットにデータが書き込まれていない第２制御ユニットの初期状態である場合でも、第２制御ユニットへのデータの書込みを、第２制御ユニットにおける書込みデータの種別に応じて適切に行うことができる。
【００１２】
また、第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データが、オペレータではなく、第１制御ユニットによって取得されるとともに、それに応じてデータの書込みが行われるので、データの書込みにおける人為的なミスを防止することができる。さらに、第２制御ユニットにおいて、第２種別データを記憶する必要がないので、その記憶容量を低減することができる。
さらに、前述した構成によれば、第２書込み用データに応じた最新の第２種別データが、書込みユニットによって、第２制御ユニットに送信されるとともに、送信された最新の第２種別データが、第２制御ユニットによって、第１制御ユニットに送信（転送）される。また、第１制御ユニットにより、第２書込み用種別データと送信された最新の第２種別データとの比較結果に基づいて、第２制御ユニットへのデータの書込みが適正に行われたか否かが判定される。
前述したように第２書込み用種別データは、第２制御ユニットに書き込むべきデータの種別を表すので、第２制御ユニットへのデータの書込みが適正に行われた場合には、第２書込み用種別データと、第２制御ユニットに書き込まれた第２書込み用データに応じた最新の第２種別データとは、互いに一致する。したがって、上述した判定により、第２制御ユニットへのデータの書込みが適正に行われたか否かを適切に判定でき、それにより、その書込みミスによる第２制御ユニットの不具合を防止することができる。
【００１３】
請求項２に係る発明は、請求項１に記載のデータ書込み方法において、第２制御ユニットへの第２書込み用データの書込みを、第２制御ユニットにデータが書き込まれていない第２制御ユニットの初期状態において行うことを特徴とする。
【００１４】
この構成によれば、第２制御ユニットにデータが書き込まれていない第２制御ユニットの初期状態において、請求項１に係る発明の説明で述べた第２制御ユニットへの第２書込み用データの書込みが行われる。したがって、請求項１に係る発明による効果を有効に得ることができる。
【００１５】
請求項３に係る発明は、請求項１又は２に記載のデータ書込み方法において、書込みユニット５２には、第２制御ユニットを介して第３制御ユニット（ＢＡＴＥＣＵ７１）が通信可能に接続されており、第３制御ユニットに書き込むべきデータである第３書込み用データ（バッテリ書込み用プログラムＰＲＵＢ）を、書込みユニット５２から第２制御ユニットを介して第３制御ユニットに送信し（図８のステップ７９、図１０のステップ１０１）、送信された第３書込み用データを、第３制御ユニットに書き込む（図１１のステップ１１１）ことを特徴とする。
【００１６】
この構成によれば、第３制御ユニットが、第２制御ユニットを介して書込みユニットに接続されている。また、第３制御ユニットに書き込むべきデータである第３書き込み用データが、書込みユニットから第２制御ユニットを介して第３制御ユニットに送信されるとともに、送信された第３書込み用データが、第３制御ユニットに書き込まれる。このように、書込みユニットに既に接続されている第２制御ユニットを介して、第３制御ユニットへの第３書込み用データの送信を行うことができるので、第３制御ユニットを書込みユニットに接続するための回路を新たに構成する必要がない。したがって、その分、装置の小型化及び製造コストの削減を図ることができる。
【００１７】
請求項４に係る発明は、請求項３に記載のデータ書込み方法において、第３制御ユニットにおける書込みデータの種別を表す第３種別データ（ＢＡＴＥＣＵ種別データＤＣＢ）を第１制御ユニットに記憶し、第１制御ユニットは、第３制御ユニットに第３書込み用データを書き込むに際し、記憶された第３種別データに基づいて、第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データ（バッテリ書込み用種別データＷＤＣＢ）を取得する（図７のステップ６７）とともに、書込みユニット５２に送信し（ステップ６８）、書込みユニット５２は、送信された第３書込み用種別データに応じて、第３書込み用データを取得する（図８のステップ７７）ことを特徴とする。
【００１８】
この構成によれば、第３制御ユニットにおける書込みデータの種別を表す第３種別データが、第１制御ユニットに記憶されており、第１制御ユニットは、第３制御ユニットに第３書込み用データを書き込むに際し、記憶された第３種別データに基づいて、第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データを取得する。
【００１９】
このように、第３書込み用種別データは、第３制御ユニットにおける書込みデータの種別（例えばバージョン番号や、仕向け先など）を表す第３種別データに基づいて取得されるため、第３制御ユニットに書き込むべきデータの種別を良好に指示する。また、本発明によれば、この第３書込み用種別データが、第１制御ユニットに記憶された第３種別データに基づいて第１制御ユニットにより取得され、書込みユニットに送信されるとともに、送信された第３書込み用種別データに応じて、第３制御ユニットに書き込むべきデータである第３書込み用データが取得される。したがって、第２及び第３制御ユニットにデータが書き込まれていない第２及び第３制御ユニットの初期状態である場合でも、第３制御ユニットへのデータの書込みを、第３制御ユニットにおける書込みデータの種別に応じて適切に行うことができる。
【００２０】
また、第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データが、オペレータではなく、第１制御ユニットによって取得されるとともに、それに応じてデータの書込みが行われるので、データの書込みにおける人為的なミスを防止することができる。さらに、第３制御ユニットにおいて、第３種別データを記憶する必要がないので、その記憶容量を低減することができる。
【００２４】
前記目的を達成するために、請求項５に係る発明によるデータ書込み装置１、５１は、データを書き込み可能な第１制御ユニット（実施形態における（以下、本項において同じ）ＦＩＥＣＵ２１）と、第１制御ユニットに通信可能に接続され、データを書き込み可能な第２制御ユニット（ＣＶＴＥＣＵ３１、ＭＯＴＥＣＵ６１）と、第１及び第２制御ユニットに通信可能に接続される書込みユニット２、５２と、を備え、第１制御ユニットは、第２制御ユニットにおける書込みデータの種別を表す第２種別データ（ＣＶＴＥＣＵ種別データＤＣＣ、ＭＯＴＥＣＵ種別データＤＣＭ）を記憶する第２種別データ記憶手段（ＥＥＰＲＯＭ２４）と、第２制御ユニットにデータを書き込むに際し、記憶された第２種別データに基づいて、第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データ（変速書込み用種別データＷＤＣＣ、モータ書込み用種別データＷＤＣＭ）を取得するとともに、書込みユニット２、５２に送信する第２書込み用種別データ送信手段（ＣＰＵ２３ａ、図２のステップ９、１０、図７のステップ６３、６４）と、を有し、書込みユニット２、５２は、送信された第２書込み用種別データに応じて、第２制御ユニットに書き込むべきデータである第２書込み用データ（変速書込み用プログラムＰＲＵＣ、モータ書込み用プログラムＰＲＵＭ）を第２制御ユニットに送信する第２書込み用データ送信手段（図３のステップ２７、２９、図８のステップ７２、７４）を有し、第２制御ユニットは、送信された第２書込み用データを第２制御ユニットに書き込む第２書込み用データ書込み手段（ＣＰＵ３３ａ、ＣＰＵ６３ａ、図４のステップ４１、図９のステップ９１）を有し、書込みユニット２、５２は、第２書込み用データに加え、第２書込み用データに応じた最新の第２種別データを第２制御ユニットに送信する第２種別データ送信手段（図３のステップ２８、３０、図８のステップ７３、７５）をさらに有し、第２制御ユニットは、送信された最新の第２種別データを第１制御ユニットに送信する第２種別データ転送手段（ＣＰＵ３３ａ、ＣＰＵ６３ａ、図４のステップ４２、４３、図９のステップ９２、９３）をさらに有し、第１制御ユニットは、第２書込み用種別データと送信された最新の第２種別データとの比較結果に基づいて、第２制御ユニットへのデータの書込みが適正に行われたか否かを判定する判定手段（ＣＰＵ２３ａ、図５のステップ５１、図１２のステップ１２１）をさらに有することを特徴とする。
【００２５】
以上の構成の請求項５に係る発明は、請求項１に係るデータ書込み方法に関する発明をデータ書込み装置に関する発明に書き換えたものであるので、請求項１に係る発明による作用・効果を同様に得ることができる。具体的には、第２制御ユニットにおける書込みデータの種別を表す第２種別データが、第１制御ユニットの第２種別データ記憶手段によって記憶されている。また、第２制御ユニットにデータを書き込むに際し、第１制御ユニットの第２書込み用種別データ送信手段によって、記憶された第２種別データに基づき、第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データが取得されるとともに、書込みユニットに送信される。
【００２６】
このように、第２書込み用種別データは、第２制御ユニットにおける書込みデータの種別（例えばバージョン番号や、仕向け先など）を表す第２種別データに基づいて取得されるため、第２制御ユニットに書き込むべきデータの種別を良好に指示する。また、本発明によれば、この第２書込み用種別データが、第１制御ユニットに記憶された第２種別データに基づいて第１制御ユニットにより取得され、書込みユニットに送信されるとともに、送信された第２書込み用種別データに応じ、書込みユニットの第２書込み用データ送信手段によって、第２制御ユニットに書き込むべきデータである第２書込み用データが取得され、第２制御ユニットに送信される。さらに、送信された第２書込み用データが、第２書込み用データ書込み手段によって第２制御ユニットに書き込まれる。
【００２７】
したがって、請求項１に係る発明と同様、装置の製造時で第２制御ユニットへのデータの書込み動作が一度も行われていないことにより、あるいは、第２制御ユニットに書き込まれていたデータが何らかの理由で消失したことなどにより、第２制御ユニットにデータが書き込まれていない第２制御ユニットの初期状態である場合でも、第２制御ユニットへのデータの書込みを、第２制御ユニットにおける書込みデータの種別に応じて適切に行うことができる。また、第２制御ユニットに書き込むべきデータの種別を表す第２書込み用種別データが、オペレータではなく、第１制御ユニットによって取得されるとともに、それに応じてデータの書込みが行われるので、データの書込みにおける人為的なミスを防止することができる。さらに、第２制御ユニットにおいて、第２種別データを記憶する必要がないので、その記憶容量を低減することができる。
また、第２書込み用データに応じた最新の第２種別データが、第２書込みユニットの第２種別データ送信手段によって、第２制御ユニットに送信されるとともに、送信された最新の第２種別データが、第２制御ユニットの第２種別データ転送手段によって、第１制御ユニットに送信（転送）される。さらに、第１制御ユニットの判定手段により、第２書込み用種別データと送信された最新の第２種別データとの比較結果に基づいて、第２制御ユニットへのデータの書込みが適正に行われたか否かが判定される。したがって、第２制御ユニットへのデータの書込みが適正に行われたか否かを適切に判定でき、それにより、その書込みミスによる第２制御ユニットの不具合を防止することができる。
【００２８】
請求項６に係る発明は、請求項５に記載のデータ書込み装置１、５１において、第２制御ユニットへの第２書込み用データの書込みを、第２制御ユニットにデータが書き込まれていない第２制御ユニットの初期状態において行うことを特徴とする。
【００２９】
この構成によれば、第２制御ユニットにデータが書き込まれていない第２制御ユニットの初期状態において、請求項５に係る発明の説明で述べた第２制御ユニットへの第２書込み用データの書込みが行われる。したがって、請求項５に係る発明による効果を有効に得ることができる。
【００３０】
請求項７に係る発明は、請求項５又は６に記載のデータ書込み装置５１において、書込みユニット５２には、第２制御ユニットを介して第３制御ユニット（ＢＡＴＥＣＵ７１）が通信可能に接続され、第３制御ユニットに書き込むべきデータである第３書込み用データ（バッテリ書込み用プログラムＰＲＵＢ）が、書込みユニット５２から第２制御ユニットを介して第３制御ユニットに送信され（図８のステップ７９、図１０のステップ１０１）、第３制御ユニットは、送信された第３書込み用データを書き込む第３書込み用データ書込み手段（ＣＰＵ７３ａ、図１１のステップ１１１）を有することを特徴とする。
【００３１】
以上の構成の請求項７に係る発明は、請求項３に係るデータ書込み方法に関する発明をデータ書込み装置に関する発明に書き換えたものであるので、請求項３に係る発明による作用・効果を同様に得ることができる。具体的には、第３制御ユニットが、第２制御ユニットを介して書込みユニットに接続される。また、第３制御ユニットに書き込むべきデータである第３書込み用データが、書込みユニットから第２制御ユニットを介して第３制御ユニットに送信されるとともに、第３制御ユニットの第３書込み用データ書込み手段によって、送信された第３書込み用データが第３制御ユニットに書き込まれる。
【００３２】
このように、書込みユニットに既に接続されている第２制御ユニットを介して、第３制御ユニットへの第３書込み用データの送信を行うことができるので、第３制御ユニットを書込みユニットに接続するための回路を新たに構成する必要がない。したがって、その分、装置の小型化及び製造コストの削減を図ることができる。
【００３３】
請求項８に係る発明は、請求項７に記載のデータ書込み装置５１において、第１制御ユニットは、第３制御ユニットにおける書込みデータの種別を表す第３種別データ（ＢＡＴＥＣＵ種別データＤＣＢ）を記憶する第３種別データ記憶手段（ＥＥＰＲＯＭ２４）と、第３制御ユニットに第３書込み用データを書き込むに際し、記憶された第３種別データに基づいて、第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データ（バッテリ書込み用種別データＷＤＣＢ）を取得するとともに、書込みユニット５２に送信する第３書込み用種別データ送信手段（ＣＰＵ２３ａ、図７のステップ６７、６８）と、をさらに有し、書込みユニット５２は、送信された第３書込み用種別データに応じて、第３書込み用データを取得する第３書込み用データ取得手段（図８のステップ７７）を有することを特徴とする。
【００３４】
以上の構成の請求項８に係る発明は、請求項４に係るデータ書込み方法に関する発明をデータ書込み装置に関する発明に書き換えたものであるので、請求項４に係る発明による作用・効果を同様に得ることができる。具体的には、第３制御ユニットにおける書込みデータの種別を表す第３種別データが、第１制御ユニットの第３種別データ記憶手段によって記憶されている。また、第３制御ユニットに第３書込み用データを書き込むに際し、第１制御ユニットの第３書込み用種別データ送信手段によって、記憶された第３種別データに基づき、第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データが取得されるとともに、書込みユニットに送信される。
【００３５】
このように、第３書込み用種別データは、第３制御ユニットにおける書込みデータの種別（例えばバージョン番号や、仕向け先など）を表す第３種別データに基づいて取得されるため、第３制御ユニットに書き込むべきデータの種別を良好に指示する。また、本発明によれば、この第３書込み用種別データが、第１制御ユニットに記憶された第３種別データに基づいて第１制御ユニットにより取得され、書込みユニットに送信されるとともに、送信された第３書込み用種別データに応じて、第３制御ユニットに書き込むべきデータである第３書込み用データが取得される。したがって、第２及び第３制御ユニットにデータが書き込まれていない第２及び第３制御ユニットの初期状態である場合でも、第３制御ユニットへのデータの書込みを、第３制御ユニットにおける書込みデータの種別に応じて適切に行うことができる。
【００３６】
また、第３制御ユニットに書き込むべきデータの種別を表す第３書込み用種別データが、オペレータではなく、第１制御ユニットによって取得されるとともに、それに応じてデータの書込みが行われるので、データの書込みにおける人為的なミスを防止することができる。さらに、第３制御ユニットにおいて、第３種別データを記憶する必要がないので、その記憶容量を低減することができる。
【図面の簡単な説明】
【００４０】
【図１】本発明の第１実施形態によるデータ書込み装置を、これを適用したエンジンなどとともに示すブロック図である。
【図２】図１のＦＩＥＣＵにより実行される第１書込み処理を示すフローチャートである。
【図３】図１の書込みユニットにより実行される送信処理を示すフローチャートである。
【図４】図１のＣＶＴＥＣＵにより実行される第２書込み処理を示すフローチャートである。
【図５】図１のＦＩＥＣＵにより実行される書込み判定処理を示すフローチャートである。
【図６】本発明の第２実施形態によるデータ書込み装置を、これを適用したエンジンなどとともに示すブロック図である。
【図７】図６のＦＩＥＣＵによって実行される第１書込み処理を示すフローチャートである。
【図８】図６の書込みユニットによって実行される送信処理を示すフローチャートである。
【図９】図６のＭＯＴＥＣＵによって実行される第２書込み処理を示すフローチャートである。
【図１０】図６のＭＯＴＥＣＵによって実行される転送処理を示すフローチャートである。
【図１１】図６のＢＡＴＥＣＵによって実行される第３書込み処理を示すフローチャートである。
【図１２】図６のＦＩＥＣＵによって実行される書込み判定処理を示すフローチャートである。
【発明を実施するための形態】
【００４１】
以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図１に示すエンジン３は、車両（図示せず）に動力源として搭載されたガソリンエンジンであり、エンジン３には、燃料噴射弁（以下「インジェクタ」という）４が取り付けられている。インジェクタ４の開弁時間及び開弁時期は、後述する燃料噴射制御用のＥＣＵ（以下「ＦＩＥＣＵ」という）２１によって制御され、それにより、燃料噴射量及び燃料噴射時期がそれぞれ制御される。
【００４２】
また、エンジン３は、無段変速機（以下「ＣＶＴ」という）５を介して、車両の駆動輪（図示せず）に連結されている。ＣＶＴ５は、後述する変速比制御用のＥＣＵ（以下「ＣＶＴＥＣＵ」という）３１によって制御され、それにより変速比が制御される。
【００４３】
本発明の第１実施形態によるデータ書込み装置１は、燃料制御用プログラムＰＲＦ及び変速制御用プログラムＰＲＣの書込みを行うためのものであり、書込みユニット２、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１を備えている。なお、本明細書における「書込み」には、新規にデータを書き込むことに加え、データを書き換えて更新することが含まれる。また、上記の燃料制御用プログラムＰＲＦは燃料の噴射量及び噴射時期を、変速制御用プログラムＰＲＣは変速比を、それぞれ制御するためのものであり、以下、両者ＰＲＦ、ＰＲＣを適宜、総称して「制御用プログラム」という。
【００４４】
書込みユニット２は、制御用プログラムの書込み時に、燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣを、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１にそれぞれ送信するためのものである。燃料書込み用プログラムＰＲＵＦは上記の燃料制御用プログラムＰＲＦとして、変速書込み用プログラムＰＲＵＣは変速制御用プログラムＰＲＣとして、それぞれ書き込まれるものである。
【００４５】
また、書込みユニット２は、記録媒体（図示せず）を有しており、この記録媒体には、燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣとして、バージョン番号や、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１の製造年月日、車両の車種、車両の仕向け先などに応じて種別された多数のプログラムが記録されている。
【００４６】
また、上記の記録媒体には、多数のＦＩＥＣＵ書込み用種別データＤＣＵＦ及びＣＶＴＥＣＵ書込み用種別データＤＣＵＣが、燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣにそれぞれ対応させて記憶されている。これらのＦＩＥＣＵ書込み用種別データＤＣＵＦ及びＣＶＴＥＣＵ書込み用種別データＤＣＵＣはそれぞれ、後述するＦＩＥＣＵ種別データＤＣＦ及びＣＶＴＥＣＵ種別データＤＣＣとして、ＦＩＥＣＵ２１の後述するＥＥＰＲＯＭ２４に書き込まれ、更新されるものである。
【００４７】
さらに、書込みユニット２は、車両に搭載されておらず、車両の製造時やメンテナンス時において、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１に燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣなどをそれぞれ書き込むときに、コネクタ（図示せず）や信号線１１を介して、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１に通信可能に接続される。燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣは、その書込みに際し、信号線１１を介して、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１にそれぞれ送信される。その詳細については後述する。
【００４８】
ＦＩＥＣＵ２１は、通信用インターフェース（Ｉ／Ｆ）２２、マイコン２３及びＥＥＰＲＯＭ２４を有している。通信用Ｉ／Ｆ２２は、書込みユニット２とマイコン２３の後述するＣＰＵ２３ａとの間でＣＡＮ通信を行うためのものであり、書込みユニット２から送信された燃料書込み用プログラムＰＲＵＦを信号線１１を介して受信し、ＣＰＵ２３ａに送信する。
【００４９】
マイコン２３は、ＣＰＵ２３ａ及びフラッシュＲＯＭ２３ｂなどで構成されている。フラッシュＲＯＭ２３ｂは、燃料制御用プログラムＰＲＦを記憶するための記憶領域を有している。ＣＰＵ２３ａは、書込みユニット２から燃料書込み用プログラムＰＲＵＦを受信したときに、燃料書込み用プログラムＰＲＵＦを燃料制御用プログラムＰＲＦとしてフラッシュＲＯＭ２３ｂの記憶領域に書き込む。その詳細については後述する。また、ＣＰＵ２３ａは、燃料制御用プログラムＰＲＦを実行することによって、インジェクタ４の開弁時間及び開弁時期を設定するとともに、その結果に基づいて、インジェクタ４を制御するための制御信号を生成し、インジェクタ４に出力する。
【００５０】
前記ＥＥＰＲＯＭ２４には、ＦＩＥＣＵ種別データＤＣＦ及びＣＶＴＥＣＵ種別データＤＣＣが記憶されている。このＦＩＥＣＵ種別データＤＣＦは、上記のフラッシュＲＯＭ２３ｂにおける書込みデータ（プログラムを含む）の種別を表すものであり、ＦＩＥＣＵ２１の識別番号や、ＦＩＥＣＵ２１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ２３ｂに書き込まれている燃料制御用プログラムＰＲＦのバージョン番号などを表す複数のデータで構成されている。
【００５１】
また、ＣＶＴＥＣＵ種別データＤＣＣは、後述するＣＶＴＥＣＵ３１のフラッシュＲＯＭ３３ｂにおける書込みデータ（プログラムを含む）の種別を表すものであり、ＣＶＴＥＣＵ３１を表す識別番号や、ＣＶＴＥＣＵ３１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ３３ｂに書き込まれている変速制御用プログラムＰＲＣのバージョン番号などを表す複数のデータで構成されている。
【００５２】
これらのＦＩＥＣＵ種別データＤＣＦ及びＣＶＴＥＣＵ種別データＤＣＣは、車両の製造時には、オペレータによってＥＥＰＲＯＭ２４に書き込まれ、その後、燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣが書き込まれるのに伴って、ＣＰＵ２３ａにより更新される。その詳細については後述する。
【００５３】
なお、車両の製造時などで、燃料制御用プログラムＰＲＦがフラッシュＲＯＭ２３ｂに書き込まれていないときには、燃料制御用プログラムＰＲＦのバージョン番号として「０」を表すデータが、ＥＥＰＲＯＭ２４に書き込まれ、記憶される。同様に、車両の製造時などで、変速制御用プログラムＰＲＣがフラッシュＲＯＭ３３ｂに書き込まれていないときには、変速制御用プログラムＰＲＣのバージョン番号として「０」を表すデータが、ＥＥＰＲＯＭ２４に書き込まれ、記憶される。
【００５４】
また、ＣＶＴＥＣＵ３１は、通信用インターフェース（Ｉ／Ｆ）３２及びマイコン３３を有している。通信用Ｉ／Ｆ３２は、書込みユニット２とマイコン３３の後述するＣＰＵ３３ａとの間でＣＡＮ通信を行うためのものであり、書込みユニット２から送信された変速書込み用プログラムＰＲＵＣを信号線１１を介して受信し、ＣＰＵ３３ａに送信する。
【００５５】
マイコン３３は、ＣＰＵ３３ａ及びフラッシュＲＯＭ３３ｂなどで構成されている。フラッシュＲＯＭ３３ｂは、変速制御用プログラムＰＲＣを記憶するための記憶領域を有している。ＣＰＵ３３ａは、書込みユニット２から前述した変速書込み用プログラムＰＲＵＣを受信したときに、変速書込み用プログラムＰＲＵＣを変速制御用プログラムＰＲＣとしてフラッシュＲＯＭ３３ｂの記憶領域に書き込む。その詳細については後述する。また、ＣＰＵ３３ａは、変速制御用プログラムＰＲＣを実行することによって、ＣＶＴ５の変速比を設定するとともに、その結果に基づいて、ＣＶＴ５を制御するための制御信号を生成し、ＣＶＴ５に出力する。
【００５６】
また、ＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１は、信号線１２を介して互いに通信可能に接続されており、ＣＶＴＥＣＵ３１からＦＩＥＣＵ２１に、この信号線１２を介して、ＣＶＴＥＣＵ種別データＤＣＣの送信が行われる。その詳細については後述する。
【００５７】
さらに、ＦＩＥＣＵ２１には、警告灯６が接続されている。ＦＩＥＣＵ２１は、後述する書込み判定処理において、変速書込み用プログラムＰＲＵＣの書込みが適正に行われていないと判定されたときに、そのことを表すために警告灯６を点灯させる。
【００５８】
次に、図２を参照しながら、ＦＩＥＣＵ２１のＣＰＵ２３ａによって実行される第１書込み処理について説明する。本処理は、燃料書込み用プログラムＰＲＵＦの書込みなどを行うためのものであり、所定時間ごとに繰り返し実行される。まず、ステップ１（「Ｓ１」と図示。以下同じ）では、書込みユニット２から燃料書込み用種別データＷＤＣＦの送信が要求されているか否かを判別する。
【００５９】
この燃料書込み用種別データＷＤＣＦは、ＦＩＥＣＵ２１のフラッシュＲＯＭ２３ｂに書き込むべきデータの種別を表すものであり、この種別には、前述したＦＩＥＣＵ種別データＤＣＦに対応して、ＦＩＥＣＵ２１を表す識別番号や、ＦＩＥＣＵ２１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ２３ｂに書き込むべき燃料制御用プログラムＰＲＦのバージョン番号などが含まれる。上記ステップ１の送信要求は、ＦＩＥＣＵ２１への書込みユニット２の接続時に、オペレータの操作によってなされる。
【００６０】
上記ステップ１の答がＹＥＳのときには、ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４からＦＩＥＣＵ種別データＤＣＦを読み出す（ステップ２）。次いで、読み出したＦＩＥＣＵ種別データＤＣＦに基づいて、燃料書込み用種別データＷＤＣＦを設定する（ステップ３）。これにより、燃料書込み用種別データＷＤＣＦのうちのバージョン番号を表すデータは、例えば、ＦＩＥＣＵ種別データＤＣＦで表されるバージョン番号よりも１つ新しいバージョン番号を表すように設定される。なお、車両の製造時などで、フラッシュＲＯＭ２３ｂに燃料制御用プログラムＰＲＦが書き込まれていないＦＩＥＣＵ２１の初期状態であるときには、燃料書込み用種別データＷＤＣＦのうちのバージョン番号を表すデータは、初期のバージョン番号を表すように設定される。
【００６１】
上記ステップ３に続くステップ４では、設定した燃料書込み用種別データＷＤＣＦを書込みユニット２に送信する。このステップ４の実行により、書込みユニット２は、燃料書込み用種別データＷＤＣＦを受信すると、燃料書込み用プログラムＰＲＵＦ及びＦＩＥＣＵ書込み用種別データＤＣＵＦをＦＩＥＣＵ２１に送信する。その詳細については後述する。
【００６２】
そして、書込みユニット２から燃料書込み用プログラムＰＲＵＦ及びＦＩＥＣＵ書込み用種別データＤＣＵＦを受信すると、上記ステップ４に続くステップ５において、受信した燃料書込み用プログラムＰＲＵＦを、燃料制御用プログラムＰＲＦとしてフラッシュＲＯＭ２３ｂに書き込む。次いで、受信されたＦＩＥＣＵ書込み用種別データＤＣＵＦを、最新のＦＩＥＣＵ種別データＤＣＦとしてＥＥＰＲＯＭ２４に書き込み（ステップ６）、それによりＦＩＥＣＵ種別データＤＣＦを更新し、本処理を終了する。
【００６３】
一方、前記ステップ１の答がＮＯのときには、書込みユニット２から変速書込み用種別データＷＤＣＣの送信が要求されているか否かを判別する（ステップ７）。この変速書込み用種別データＷＤＣＣは、ＣＶＴＥＣＵ３１のフラッシュＲＯＭ３３ｂに書き込むべきデータの種別を表すものであり、この種別には、ＣＶＴＥＣＵ３１を表す識別番号や、ＣＶＴＥＣＵ３１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ３３ｂに書き込むべき変速制御用プログラムＰＲＣのバージョン番号が含まれる。上記ステップ７の送信要求は、ＣＶＴＥＣＵ３１への書込みユニット２の接続時に、オペレータの操作によってなされる。
【００６４】
上記ステップ７の答がＮＯのときには、そのまま本処理を終了する一方、ＹＥＳのときには、ＥＥＰＲＯＭ２４からＣＶＴＥＣＵ種別データＤＣＣを読み出す（ステップ８）。次いで、読み出したＣＶＴＥＣＵ種別データＤＣＣに基づいて、変速書込み用種別データＷＤＣＣを設定する（ステップ９）とともに、設定した変速書込み用種別データＷＤＣＣを書込みユニット２に送信し（ステップ１０）、本処理を終了する。
【００６５】
上記ステップ９の実行により、変速書込み用種別データＷＤＣＣのうちのバージョン番号を表すデータは、例えば、ＣＶＴＥＣＵ種別データＤＣＣで表されるバージョン番号よりも１つ新しいバージョン番号を表すように設定される。なお、車両の製造時などで、フラッシュＲＯＭ３３ｂに変速制御用プログラムＰＲＣが書き込まれていないＣＶＴＥＣＵ３１の初期状態であるときには、変速書込み用種別データＷＤＣＣのうちのバージョン番号を表すデータは、初期のバージョン番号を表すように設定される。
【００６６】
次に、図３を参照しながら、書込みユニット２によって実行される送信処理について説明する。本処理は、燃料書込み用プログラムＰＲＵＦ及び変速書込み用プログラムＰＲＵＣをＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１にそれぞれ送信するためのものであり、所定時間ごとに繰り返し実行される。
【００６７】
まず、ステップ２１では、前述した燃料書込み用種別データＷＤＣＦをＦＩＥＣＵ２１から受信したか否かを判別する。この答がＹＥＳのときには、前述した記録媒体に記録された多数のプログラムから、受信した燃料書込み用種別データＷＤＣＦに応じた燃料書込み用プログラムＰＲＵＦを読み出す（ステップ２２）。次いで、記録媒体に記録された多数のデータから、読み出された燃料書込み用プログラムＰＲＵＦに応じたＦＩＥＣＵ書込み用種別データＤＣＵＦを読み出す（ステップ２３）。
【００６８】
次に、ステップ２４及び２５において、上記ステップ２２及び２３でそれぞれ読み出された燃料書込み用プログラムＰＲＵＦ及びＦＩＥＣＵ書込み用種別データＤＣＵＦをＦＩＥＣＵ２１に送信し、本処理を終了する。
【００６９】
一方、上記ステップ２１の答がＮＯのときには、前述した変速書込み用種別データＷＤＣＣをＦＩＥＣＵ２１から受信したか否かを判別する（ステップ２６）。この答がＮＯのときには、そのまま本処理を終了する一方、ＹＥＳのときには、前述した記録媒体に記録された多数のプログラムから、受信した変速書込み用種別データＷＤＣＣに応じた変速書込み用プログラムＰＲＵＣを読み出す（ステップ２７）。次いで、記録媒体に記録された多数のデータから、読み出された変速書込み用プログラムＰＲＵＣに応じたＣＶＴＥＣＵ書込み用種別データＤＣＵＣを読み出す（ステップ２８）。
【００７０】
次に、ステップ２９及び３０において、上記ステップ２７及び２８においてそれぞれ読み出された変速書込み用プログラムＰＲＵＣ及びＣＶＴＥＣＵ書込み用種別データＤＣＵＣをＣＶＴＥＣＵ３１に送信し、本処理を終了する。
【００７１】
次に、図４を参照しながら、ＣＶＴＥＣＵ３１のＣＰＵ３３ａによって実行される第２書込み処理について説明する。本処理は、図３の上記ステップ２９および３０によりそれぞれ送信された変速書込み用プログラムＰＲＵＣ及びＣＶＴＥＣＵ書込み用種別データＤＣＵＣを受信するのに伴って実行される。まず、ステップ４１では、受信した変速書込み用プログラムＰＲＵＣを、変速制御用プログラムＰＲＣとしてフラッシュＲＯＭ３３ｂに書き込む。
【００７２】
次いで、受信したＣＶＴＥＣＵ書込み用種別データＤＣＵＣを、ＣＶＴＥＣＵ種別データＤＣＣとして設定する（ステップ４２）とともに、設定されたＣＶＴＥＣＵ種別データＤＣＣをＦＩＥＣＵ２１に送信し（ステップ４３）、本処理を終了する。このステップ４３の実行によりＣＶＴＥＣＵ種別データＤＣＣがＦＩＥＣＵ２１に送信されると、ＦＩＥＣＵ２１のＣＰＵ２３ａによって、受信されたＣＶＴＥＣＵ種別データＤＣＣが、ＥＥＰＲＯＭ２４に書き込まれる。これにより、更新された最新のＣＶＴＥＣＵ種別データＤＣＣが、ＥＥＰＲＯＭ２４に記憶される。
【００７３】
次に、図５を参照しながら、ＦＩＥＣＵ２１のＣＰＵ２３ａによって実行される前述した書込み判定処理について説明する。本処理は、図４のステップ４３により送信されたＣＶＴＥＣＵ種別データＤＣＣを受信するのに伴って実行される。
【００７４】
図５のステップ５１では、受信したＣＶＴＥＣＵ種別データＤＣＣと、図２の前記ステップ９で設定された変速書込み用種別データＷＤＣＣとの比較結果に基づいて、ＣＶＴＥＣＵ３１において、変速書込み用プログラムＰＲＵＣの書込みが適正に行われたか否かを判定し、本処理を終了する。具体的には、ＣＶＴＥＣＵ種別データＤＣＣで表される各種のデータ（バージョン番号、仕向け先など）と、変速書込み用種別データＷＤＣＣで表される各種のデータ（バージョン番号、仕向け先など）とがすべて一致しているときには、変速書込み用プログラムＰＲＵＣの書込みが適正に行われたと判定され、一致していないときには、適正に行われていないと判定される。
【００７５】
また、第１実施形態における各種の要素と、本発明における各種の要素との対応関係は、次のとおりである。すなわち、第１実施形態におけるＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１が、本発明における第１及び第２制御ユニットにそれぞれ相当するとともに、第１実施形態におけるＣＰＵ２３ａが、本発明における第２書込み用種別データ送信手段及び判定手段に相当する。また、第１実施形態におけるＥＥＰＲＯＭ２４が、本発明における第２種別データ記憶手段に相当するとともに、第１実施形態におけるＣＰＵ３３ａが、本発明における第２書込み用データ書込み手段及び第２種別データ転送手段に相当する。
【００７６】
以上のように、第１実施形態によれば、ＣＶＴＥＣＵ３１における書込みデータの種別を表すＣＶＴＥＣＵ種別データＤＣＣが、ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４に記憶されており、ＦＩＥＣＵ２１は、ＣＶＴＥＣＵ３１に変速書込み用プログラムＰＲＵＣを書き込むに際し、記憶されたＣＶＴＥＣＵ種別データＤＣＣに基づいて、ＣＶＴＥＣＵ３１に書き込むべきデータの種別を表す変速書込み用種別データＷＤＣＣを設定する（図２のステップ９）。
【００７７】
このように、変速書込み用種別データＷＤＣＣは、ＣＶＴＥＣＵ３１における書込みデータの種別（バージョン番号や、仕向け先など）を表すＣＶＴＥＣＵ種別データＤＣＣに基づいて取得されるため、ＣＶＴＥＣＵ３１に書き込むべきデータの種別を良好に指示する。また、この変速書込み用種別データＷＤＣＣが、ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４に記憶されたＣＶＴＥＣＵ種別データＤＣＣに基づいてＦＩＥＣＵ２１により設定され、書込みユニット２に送信される（図２のステップ１０）とともに、送信された変速書込み用種別データＷＤＣＣに応じて、ＣＶＴＥＣＵ３１に書き込むべきデータである変速書込み用プログラムＰＲＵＣが読み出され（図３のステップ２７）、ＣＶＴＥＣＵ３１に書き込まれる（図４のステップ４１）。
【００７８】
また、第１実施形態では、車両の出荷後はもちろん、車両の製造時でＣＶＴＥＣＵ３１へのデータの書込み動作が一度も行われていないことにより、あるいは、ＣＶＴＥＣＵ３１に書き込まれていたデータが何らかの理由で消失したことなどにより、ＣＶＴＥＣＵ３１に変速制御用プログラムＰＲＣなどのデータが書き込まれていないＣＶＴＥＣＵ３１の初期状態においても、上述したＣＶＴＥＣＵ３１への変速書込み用プログラムＰＲＵＣの書込みが行われる。以上により、この初期状態においても、ＣＶＴＥＣＵ３１への変速書込み用プログラムＰＲＵＣの書込みを、ＣＶＴＥＣＵ３１における書込みデータの種別に応じて適切に行うことができる。
【００７９】
さらに、前述したように、変速書込み用種別データＷＤＣＣが、ＣＶＴＥＣＵ種別データＤＣＣで表される、そのときの変速制御用プログラムＰＵＣのバージョン番号よりも１つ新しいバージョン番号を表すように設定される。したがって、変速制御用プログラムＰＵＣが古いバージョンの変速書込み用プログラムＰＲＵＣに誤って書き換えられたり、同じバージョンの変速書込み用プログラムＰＲＵＣに無駄に書き換えられたりするのを、防止することができる。
【００８０】
また、ＣＶＴＥＣＵ３１に書き込むべきデータの種別を表す変速書込み用種別データＷＤＣＣが、オペレータではなく、ＦＩＥＣＵ２１によって設定されるとともに、それに応じて変速書込み用プログラムＰＲＵＣの書込みが行われるので、その書込みにおける人為的なミスを防止することができる。さらに、ＣＶＴＥＣＵ３１において、ＣＶＴＥＣＵ種別データＤＣＣを記憶する必要がないので、その記憶容量を低減することができる。
【００８１】
さらに、書き込まれた変速書込み用プログラムＰＲＵＣに応じたＣＶＴＥＣＵ書込み用種別データＤＣＵＣが、書込みユニット２によりＣＶＴＥＣＵ３１に送信される（図３のステップ２８、３０）とともに、最新のＣＶＴＥＣＵ種別データＤＣＣとして設定される（図４のステップ４２）。また、設定された最新のＣＶＴＥＣＵ種別データＤＣＣが、ＣＶＴＥＣＵ３１からＦＩＥＣＵ２１に送信（転送）される（ステップ４３）。さらに、ＦＩＥＣＵ２１により、変速書込み用種別データＷＤＣＣと送信された最新のＣＶＴＥＣＵ種別データＤＣＣとの比較結果に基づいて、ＣＶＴＥＣＵ３１への変速書込み用プログラムＰＲＵＣの書込みが適正に行われたか否かが判定される（図５のステップ５１）。
【００８２】
前述したように変速書込み用種別データＷＤＣＣは、ＣＶＴＥＣＵ３１に書き込むべきデータの種別を表すので、ＣＶＴＥＣＵ３１へのデータの書込みが適正に行われた場合には、変速書込み用種別データＷＤＣＣと、ＣＶＴＥＣＵ３１に書き込まれた変速書込み用プログラムＰＲＵＣに応じた最新のＣＶＴＥＣＵ種別データＤＣＣとは、互いに一致する。したがって、上述した判定により、ＣＶＴＥＣＵ３１への変速書込み用プログラムＰＲＵＣの書込みが適正に行われたか否かを適切に判定でき、それにより、その書込みミスによるＣＶＴＥＣＵ３１の不具合を防止することができる。
【００８３】
次に、図６を参照しながら、本発明の第２実施形態によるデータ書込み装置５１について説明する。このデータ書込み装置５１は、第１実施形態と比較して、動力源としてエンジン３及びモータ（回転電機）７を備えるハイブリッド式の車両（図示せず）に適用されたものであることと、ＣＶＴＥＣＵ３１に代えて、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１を備えることが、主に異なっている。図６において、第１実施形態と同じ構成要素については、同じ符号を付している。以下、第１実施形態と異なる点を中心に説明する。
【００８４】
データ書込み装置５１は、前述した燃料制御用プログラムＰＲＦに加え、モータ７を制御するためのモータ制御用プログラムＰＲＭ、及びバッテリ８を制御するためのバッテリ制御用プログラムＰＲＢの書込みを行うためのものであり、書込みユニット５２、ＦＩＥＣＵ２１、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１を備えている。バッテリ８は、モータ７に電力を供給するためのものである。ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１は、モータ７及びバッテリ８の協調制御を行うために、信号線５３を介して互いに通信可能に接続されている。
【００８５】
書込みユニット５２は、上記の各種の制御用プログラムの書込み時に、前述した燃料書込み用プログラムＰＲＵＦに加え、モータ書込み用プログラムＰＲＵＭ及びバッテリ書込み用プログラムＰＲＵＢを、ＦＩＥＣＵ２１、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１にそれぞれ送信するためのものである。モータ書込み用プログラムＰＲＵＭはモータ制御用プログラムＰＲＭとして、バッテリ書込み用プログラムＰＲＵＢはバッテリ制御用プログラムＰＲＢとして、それぞれ書き込まれるものである。
【００８６】
また、書込みユニット５２は、記録媒体（図示せず）を有しており、この記録媒体には、燃料書込み用プログラムＰＲＵＦ、モータ書込み用プログラムＰＲＵＭ及びバッテリ書込み用プログラムＰＲＵＢとして、バージョン番号や、ＦＩＥＣＵ２１、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１の製造年月日、車両の車種、車両の仕向け先などに応じて種別された多数のプログラムが記録されている。
【００８７】
また、記録媒体には、前述したＦＩＥＣＵ書込み用種別データＤＣＵＦに加え、多数のＭＯＴＥＣＵ書込み用種別データＤＣＵＭ及びＢＡＴＥＣＵ書込み用種別データＤＣＵＢが、燃料書込み用プログラムＰＲＵＦ、モータ書込み用プログラムＰＲＵＭ及びバッテリ書込み用プログラムＰＲＵＢにそれぞれ対応させて記憶されている。これらのＭＯＴＥＣＵ書込み用種別データＤＣＵＭ及びＢＡＴＥＣＵ書込み用種別データＤＣＵＢはそれぞれ、後述するＭＯＴＥＣＵ種別データＤＣＭ及びＢＡＴＥＣＵ種別データＤＣＢとして、ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４に書き込まれ、更新されるものである。
【００８８】
さらに、書込みユニット５２は、車両に搭載されておらず、車両の製造時やメンテナンス時において、ＦＩＥＣＵ２１、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１に燃料書込み用プログラムＰＲＵＦ、モータ書込み用プログラムＰＲＵＭ及びバッテリ書込み用プログラムＰＲＵＢなどをそれぞれ書き込むときに、コネクタ（図示せず）や信号線５４を介して、ＦＩＥＣＵ２１及びＭＯＴＥＣＵ６１に接続される。燃料書込み用プログラムＰＲＵＦ及びモータ書込み用プログラムＰＲＵＭは、その書込みに際し、信号線５４を介してＦＩＥＣＵ２１及びＭＯＴＥＣＵ６１にそれぞれ送信され、バッテリ書込み用プログラムＰＲＵＢは、信号線５４、ＭＯＴＥＣＵ６１及び前述した信号線５３を介して、ＢＡＴＥＣＵ７１に送信される。その詳細については後述する。
【００８９】
また、ＭＯＴＥＣＵ６１は、通信用インターフェース（Ｉ／Ｆ）６２及びマイコン６３を有している。通信用Ｉ／Ｆ６２は、書込みユニット５２とマイコン６３の後述するＣＰＵ６３ａとの間でＣＡＮ通信を行うためのものであり、書込みユニット５２から送信されたモータ書込み用プログラムＰＲＵＭを信号線５４を介して受信し、ＣＰＵ６３ａに送信する。
【００９０】
マイコン６３は、ＣＰＵ６３ａ及びフラッシュＲＯＭ６３ｂなどで構成されている。フラッシュＲＯＭ６３ｂは、モータ制御用プログラムＰＲＭを記憶するための記憶領域を有している。ＣＰＵ６３ａは、書込みユニット５２から前述したモータ書込み用プログラムＰＲＵＭを受信したときに、モータ書込み用プログラムＰＲＵＭをモータ制御用プログラムＰＲＭとしてフラッシュＲＯＭ６３ｂの記憶領域に書き込む。その詳細については後述する。また、ＣＰＵ６３ａは、モータ制御用プログラムＰＲＭを実行することによって、モータ７を制御するための制御信号を生成し、モータ７に出力する。
【００９１】
また、ＢＡＴＥＣＵ７１は、ＭＯＴＥＣＵ６１と同様、通信用インターフェース（Ｉ／Ｆ）７２及びマイコン７３を有している。通信用Ｉ／Ｆ７２は、ＭＯＴＥＣＵ６１のＣＰＵ６３ａとマイコン７３の後述するＣＰＵ７３ａとの間でＣＡＮ通信を行うためのものであり、書込みユニット５２から送信されたモータ書込み用プログラムＰＲＵＭを信号線５４及び５３を介して受信し、ＣＰＵ７３ａに送信する。
【００９２】
マイコン７３は、ＣＰＵ７３ａ及びフラッシュＲＯＭ７３ｂなどで構成されている。フラッシュＲＯＭ７３ｂは、バッテリ制御用プログラムＰＲＢを記憶するための記憶領域を有している。ＣＰＵ７３ａは、書込みユニット５２から前述したバッテリ書込み用プログラムＰＲＵＢを受信したときに、バッテリ書込み用プログラムＰＲＵＢをバッテリ制御用プログラムＰＲＢとしてフラッシュＲＯＭ７３ｂの記憶領域に書き込む。その詳細については後述する。また、ＣＰＵ７３ａは、バッテリ制御用プログラムＰＲＢを実行することによって、バッテリ８とモータ７の間の電力の授受を制御するための制御信号を生成し、バッテリ８及びモータ７に接続された電気回路に出力する。
【００９３】
ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４には、前述したＦＩＥＣＵ種別データＤＣＦに加え、ＭＯＴＥＣＵ種別データＤＣＭ及びＢＡＴＥＣＵ種別データＤＣＢが記憶されている。このＭＯＴＥＣＵ種別データＤＣＭは、ＭＯＴＥＣＵ６１のフラッシュＲＯＭ６３ｂにおける書込みデータ（プログラムを含む）の種別を表すものであり、ＭＯＴＥＣＵ６１の識別番号や、ＭＯＴＥＣＵ６１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ６３ｂに書き込まれているモータ制御用プログラムＰＲＭのバージョン番号などを表す複数のデータで構成されている。
【００９４】
また、ＢＡＴＥＣＵ種別データＤＣＢは、ＢＡＴＥＣＵ７１のフラッシュＲＯＭ７３ｂにおける書込みデータ（プログラムを含む）の種別を表すものであり、ＢＡＴＥＣＵ７１を表す識別番号や、ＢＡＴＥＣＵ７１の製造年月日、車両の車種、車両の仕向け先、ＢＡＴＥＣＵ７１のフラッシュＲＯＭ７３ｂに書き込まれているバッテリ制御用プログラムＰＲＢのバージョン番号などを表す複数のデータで構成されている。
【００９５】
これらのＭＯＴＥＣＵ種別データＤＣＭ及びＢＡＴＥＣＵ種別データＤＣＢの書込みについては、前述したＦＩＥＣＵ種別データＤＣＦと同様にして行われる。
【００９６】
また、ＦＩＥＣＵ２１及びＭＯＴＥＣＵ６１は、信号線５５を介して互いに通信可能に接続されており、ＭＯＴＥＣＵ６１からＦＩＥＣＵ２１に、この信号線５５を介して、ＭＯＴＥＣＵ種別データＤＣＭ及びＢＡＴＥＣＵ種別データＤＣＢが送信される。その詳細については後述する。
【００９７】
次に、図７を参照しながら、ＦＩＥＣＵ２１のＣＰＵ２３ａによって実行される第１書込み処理について説明する。本処理は、燃料書込み用プログラムＰＲＵＦの書込みなどを行うためのものであり、所定時間ごとに繰り返し実行される。図７において、第１実施形態における第１書込み処理（図２）と同じ実行内容の部分については、同じステップ番号を付している。同図から明らかなように、ステップ６１以降の処理が異なっているので、以下、ステップ６１以降の処理について、同図を参照しながら説明する。
【００９８】
前記ステップ１の答がＮＯのときには、ステップ６１において、書込みユニット５２からモータ書込み用種別データＷＤＣＭの送信が要求されているか否かを判別する。このモータ書込み用種別データＷＤＣＭは、ＭＯＴＥＣＵ６１のフラッシュＲＯＭ６３ｂに書き込むべきデータの種別を表すものであり、この種別には、前述したＭＯＴＥＣＵ種別データＤＣＭに対応して、ＭＯＴＥＣＵ６１を表す識別番号や、ＭＯＴＥＣＵ６１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ６３ｂに書き込むべきモータ制御用プログラムＰＲＭのバージョン番号などが含まれる。上記ステップ６１の送信要求は、ＭＯＴＥＣＵ６１への書込みユニット５２の接続時に、オペレータの操作によってなされる。
【００９９】
上記ステップ６１の答がＹＥＳのときには、ＥＥＰＲＯＭ２４からＭＯＴＥＣＵ種別データＤＣＭを読み出す（ステップ６２）。次いで、読み出したＭＯＴＥＣＵ種別データＤＣＭに基づいて、モータ書込み用種別データＷＤＣＭを設定する（ステップ６３）とともに、設定したモータ書込み用種別データＷＤＣＭを書込みユニット５２に送信し（ステップ６４）、本処理を終了する。
【０１００】
上記ステップ６３の実行により、モータ書込み用種別データＷＤＣＭのうちのバージョン番号を表すデータは、例えば、ＭＯＴＥＣＵ種別データＤＣＭで表されるバージョン番号よりも１つ新しいバージョン番号を表すように設定される。なお、車両の製造時などで、フラッシュＲＯＭ６３ｂにモータ制御用プログラムＰＲＭが書き込まれていないＭＯＴＥＣＵ６１の初期状態であるときには、モータ書込み用種別データＷＤＣＭのうちのバージョン番号を表すデータは、初期のバージョン番号を表すように設定される。
【０１０１】
一方、前記ステップ６１の答がＮＯのときには、続くステップ６５〜６８において、ステップ６１〜６４と同様にして、バッテリ書込み用種別データＷＤＣＢの設定及び送信を実行する。具体的には、ステップ６５において、書込みユニット５２からバッテリ書込み用種別データＷＤＣＢの送信が要求されているか否かを判別する。このバッテリ書込み用種別データＷＤＣＢは、ＢＡＴＥＣＵ７１のフラッシュＲＯＭ７３ｂに書き込むべきデータの種別を表すものであり、この種別には、前述したＢＡＴＥＣＵ種別データＤＣＢに対応して、ＢＡＴＥＣＵ７１を表す識別番号や、ＢＡＴＥＣＵ７１の製造年月日、車両の車種、車両の仕向け先、フラッシュＲＯＭ７３ｂに書き込むべきバッテリ制御用プログラムＰＲＢのバージョン番号などが含まれる。上記ステップ６５の送信要求は、ＢＡＴＥＣＵ７１への書込みユニット５２の接続時に、オペレータの操作によってなされる。
【０１０２】
上記ステップ６５の答がＮＯのときには、そのまま本処理を終了する一方、ＹＥＳのときには、ＥＥＰＲＯＭ２４からＢＡＴＥＣＵ種別データＤＣＢを読み出す（ステップ６６）。次いで、読み出したＢＡＴＥＣＵ種別データＤＣＢに基づいて、バッテリ書込み用種別データＷＤＣＢを設定する（ステップ６７）とともに、設定したバッテリ書込み用種別データＷＤＣＢを書込みユニット５２に送信し（ステップ６８）、本処理を終了する。
【０１０３】
上記ステップ６７の実行により、バッテリ書込み用種別データＷＤＣＢのうちのバージョン番号を表すデータは、モータ書込み用種別データＷＤＣＭのそれと同様に設定される。
【０１０４】
次に、図８を参照しながら、書込みユニット５２によって実行される送信処理について説明する。本処理は、燃料書込み用プログラムＰＲＵＦ、モータ書込み用プログラムＰＲＵＭ及びバッテリ書込み用プログラムＰＲＵＢをＦＩＥＣＵ２１、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１にそれぞれ送信するためのものであり、所定時間ごとに繰り返し実行される。また、図８において、第１実施形態における送信処理（図３）と同じ実行内容の部分については、同じステップ番号を付している。図８から明らかなように、ステップ７１以降の処理が異なっているので、以下、ステップ７１以降の処理について、同図を参照しながら説明する。
【０１０５】
前記ステップ２１の答がＮＯのときには、ステップ７１において、前述したモータ書込み用種別データＷＤＣＭをＭＯＴＥＣＵ６１から受信したか否かを判別する。この答がＹＥＳのときには、前述した記録媒体に記録された多数のプログラムから、受信したモータ書込み用種別データＷＤＣＭに応じたモータ書込み用プログラムＰＲＵＭを読み出す（ステップ７２）。次いで、記録媒体に記録された多数のデータから、読み出されたモータ書込み用プログラムＰＲＵＭに応じたＭＯＴＥＣＵ書込み用種別データＤＣＵＭを読み出す（ステップ７３）。
【０１０６】
次に、ステップ７４及び７５において、上記ステップ７２及び７３においてそれぞれ読み出されたモータ書込み用プログラムＰＲＵＭ及びＭＯＴＥＣＵ書込み用種別データＤＣＵＭをＭＯＴＥＣＵ６１に送信し、本処理を終了する。
【０１０７】
一方、上記ステップ７１の答がＮＯのときには、ステップ７６〜８０において、ステップ７１〜７５と同様にして、バッテリ書込み用プログラムＰＲＵＢの送信を実行する。具体的には、ステップ７６において、前述したバッテリ書込み用種別データＷＤＣＢをＢＡＴＥＣＵ７１から受信したか否かを判別する。
【０１０８】
このステップ７６の答がＮＯのときには、そのまま本処理を終了する一方、ＹＥＳのときには、記録媒体に記録された多数のプログラムから、受信したバッテリ書込み用種別データＷＤＣＢに応じたバッテリ書込み用プログラムＰＲＵＢを読み出す（ステップ７７）。次いで、記録媒体に記録された多数のデータから、読み出されたバッテリ書込み用プログラムＰＲＵＢに応じたＢＡＴＥＣＵ書込み用種別データＤＣＵＢを読み出す（ステップ７８）。
【０１０９】
次に、ステップ７９及び８０において、上記ステップ７７及び７８においてそれぞれ読み出されたバッテリ書込み用プログラムＰＲＵＢ及びＢＡＴＥＣＵ書込み用種別データＤＣＵＢをＭＯＴＥＣＵ６１に送信し、本処理を終了する。
【０１１０】
次に、図９を参照しながら、ＭＯＴＥＣＵ６１のＣＰＵ６３ａによって実行される第２書込み処理について説明する。本処理は、図８の上記ステップ７４及び７５によりそれぞれ送信されたモータ書込み用プログラムＰＲＵＭ及びＭＯＴＥＣＵ書込み用種別データＤＣＵＭを受信するのに伴って実行される。まず、ステップ９１では、受信したモータ書込み用プログラムＰＲＵＭを、モータ制御用プログラムＰＲＭとしてフラッシュＲＯＭ６３ｂに書き込む。
【０１１１】
次いで、受信したＭＯＴＥＣＵ書込み用種別データＤＣＵＭを、ＭＯＴＥＣＵ種別データＤＣＭとして設定する（ステップ９２）とともに、設定されたＭＯＴＥＣＵ種別データＤＣＭをＦＩＥＣＵ２１に送信し（ステップ９３）、本処理を終了する。このステップ９３の実行によりＭＯＴＥＣＵ種別データＤＣＭがＦＩＥＣＵ２１に送信されると、ＦＩＥＣＵ２１のＣＰＵ２３ａによって、受信されたＭＯＴＥＣＵ種別データＤＣＭが、ＥＥＰＲＯＭ２４に書き込まれる。これにより、更新された最新のＭＯＴＥＣＵ種別データＤＣＭが、ＥＥＰＲＯＭ２４に記憶される。
【０１１２】
また、ＭＯＴＥＣＵ６１のＣＰＵ６３ａは、図８の前記ステップ７９及び８０によりそれぞれ送信されたバッテリ書込み用プログラムＰＲＵＢ及びＢＡＴＥＣＵ書込み用種別データＤＣＵＢを受信するのに伴って、図１０に示す転送処理を実行する。図１０のステップ１０１及び１０２ではそれぞれ、受信したバッテリ書込み用プログラムＰＲＵＢ及びＢＡＴＥＣＵ書込み用種別データＤＣＵＢをＢＡＴＥＣＵ７１に送信（転送）し、本処理を終了する。
【０１１３】
次に、図１１を参照しながら、ＢＡＴＥＣＵ７１のＣＰＵ７３ａによって実行される第３書込み処理について説明する。本処理は、図１０の前記ステップ１０１及び１０２により転送されたバッテリ書込み用プログラムＰＲＵＢ及びＢＡＴＥＣＵ書込み用種別データＤＣＵＢを受信するのに伴って実行される。まず、ステップ１１１では、受信したバッテリ書込み用プログラムＰＲＵＢを、バッテリ制御用プログラムＰＲＢとしてフラッシュＲＯＭ７３ｂに書き込む。
【０１１４】
次いで、受信したＢＡＴＥＣＵ書込み用種別データＤＣＵＢを、ＢＡＴＥＣＵ種別データＤＣＢとして設定する（ステップ１１２）とともに、設定されたＢＡＴＥＣＵ種別データＤＣＢをＦＩＥＣＵ２１に送信し（ステップ１１３）、本処理を終了する。
【０１１５】
この場合、ＦＩＥＣＵ２１へのＢＡＴＥＣＵ種別データＤＣＢの送信は、信号線５３、ＭＯＴＥＣＵ６１及び信号線５５を介して行われる。また、ＢＡＴＥＣＵ種別データＤＣＢがＦＩＥＣＵ２１に送信されると、ＦＩＥＣＵ２１のＣＰＵ２３ａによって、受信されたＢＡＴＥＣＵ種別データＤＣＢが、ＥＥＰＲＯＭ２４に書き込まれる。これにより、更新された最新のＢＡＴＥＣＵ種別データＤＣＢが、ＥＥＰＲＯＭ２４に記憶される。
【０１１６】
次に、図１２を参照しながら、ＦＩＥＣＵ２１のＣＰＵ２３ａによって実行される書込み判定処理について説明する。本処理は、図９のステップ９３及び図１１のステップ１１３によりそれぞれ送信されたＭＯＴＥＣＵ種別データＤＣＭ及びＢＡＴＥＣＵ種別データＤＣＢを受信するのに伴って実行される。
【０１１７】
図１２のステップ１２１では、受信したＭＯＴＥＣＵ種別データＤＣＭと、図７の前記ステップ６３で設定されたモータ書込み用種別データＷＤＣＭとの比較結果に基づいて、ＭＯＴＥＣＵ６１においてモータ書込み用プログラムＰＲＵＭの書込みが適正に行われたか否かを判定し、本処理を終了する。具体的には、ＭＯＴＥＣＵ種別データＤＣＭで表される各種のデータ（バージョン番号、仕向け先など）と、モータ書込み用種別データＷＤＣＭで表される各種のデータ（バージョン番号、仕向け先など）とがすべて一致しているときには、モータ書込み用プログラムＰＲＵＭの書込みが適正に行われたと判定され、一致していないときには、適正に行われていないと判定される。
【０１１８】
上記ステップ１２１に続くステップ１２２では、受信したＢＡＴＥＣＵ種別データＤＣＢと、図７の前記ステップ６７で設定されたバッテリ書込み用種別データＷＤＣＢとの比較結果に基づいて、ＢＡＴＥＣＵ７１においてバッテリ書込み用プログラムＰＲＵＢの書込みが適正に行われたか否かを判定し、本処理を終了する。具体的には、ＢＡＴＥＣＵ種別データＤＣＢで表される各種のデータ（バージョン番号、仕向け先など）と、バッテリ書込み用種別データＷＤＣＢで表される各種のデータ（バージョン番号、仕向け先など）とがすべて一致しているときには、バッテリ書込み用プログラムＰＲＵＢの書込みが適正に行われたと判定され、一致していないときには、適正に行われていないと判定される。
【０１１９】
また、第２実施形態における各種の要素と、本発明における各種の要素との対応関係は、次のとおりである。すなわち、第２実施形態におけるＦＩＥＣＵ２１、ＭＯＴＥＣＵ６１及びＢＡＴＥＣＵ７１が、本発明における第１、第２及び第３制御ユニットにそれぞれ相当するとともに、第２実施形態におけるＣＰＵ２３ａが、本発明における第２書込み用種別データ送信手段、第３書込み用種別データ送信手段及び判定手段に相当する。
【０１２０】
また、第２実施形態におけるＥＥＰＲＯＭ２４が、本発明における第２種別データ記憶手段及び第３種別データ記憶手段に相当し、第２実施形態におけるＣＰＵ６３ａが、本発明における第２書込み用データ書込み手段及び第２種別データ転送手段に相当するとともに、第２実施形態におけるＣＰＵ７３ａが、本発明における第３書込み用データ書込み手段に相当する。
【０１２１】
以上のように、第２実施形態によれば、ＢＡＴＥＣＵ７１が、ＭＯＴＥＣＵ６１を介して書込みユニット５２に接続される。また、ＢＡＴＥＣＵ７１に書き込むべきデータであるバッテリ書込み用プログラムＰＲＵＢが、書込みユニット５２からＭＯＴＥＣＵ６１を介してＢＡＴＥＣＵ７１に送信される（図８のステップ７９、図１０のステップ１０１）とともに、ＢＡＴＥＣＵ７１に書き込まれる（図１１のステップ１１１）。
【０１２２】
このように、書込みユニット５２に既に接続されているＭＯＴＥＣＵ６１を介して、ＢＡＴＥＣＵ７１へのバッテリ書込み用プログラムＰＲＵＢの送信を行うことができるので、ＢＡＴＥＣＵ７１を書込みユニット５２に接続するための回路を新たに構成する必要がない。したがって、その分、データ書込み装置５１の小型化及び製造コストの削減を図ることができる。
【０１２３】
また、ＢＡＴＥＣＵ７１における書込みデータの種別を表すＢＡＴＥＣＵ種別データＤＣＢが、ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４に記憶されており、ＦＩＥＣＵ２１は、ＢＡＴＥＣＵ７１にバッテリ書込み用プログラムＰＲＵＢを書き込むに際し、記憶されたＢＡＴＥＣＵ種別データＤＣＢに基づいて、ＢＡＴＥＣＵ７１に書き込むべきデータの種別を表すバッテリ書込み用種別データＷＤＣＢを設定する（図７のステップ６７）。
【０１２４】
このように、バッテリ書込み用種別データＷＤＣＢは、ＢＡＴＥＣＵ７１における書込みデータの種別（バージョン番号や、仕向け先など）を表すＢＡＴＥＣＵ種別データＤＣＢに基づいて取得されるため、ＢＡＴＥＣＵ７１に書き込むべきデータの種別を良好に指示する。また、このバッテリ書込み用種別データＷＤＣＢが、ＦＩＥＣＵ２１のＥＥＰＲＯＭ２４に記憶されたＢＡＴＥＣＵ種別データＤＣＢに基づいてＦＩＥＣＵ２１により設定され、書込みユニット２に送信される（図７のステップ６８）とともに、送信されたバッテリ書込み用種別データＷＤＣＢに応じて、ＢＡＴＥＣＵ７１に書き込むべきデータであるバッテリ書込み用プログラムＰＲＵＢが読み出され（図８のステップ７７）、ＢＡＴＥＣＵ７１に書き込まれる（図１１のステップ１１１）。
【０１２５】
また、第２実施形態では、車両の出荷後はもちろん、車両の製造時でＢＡＴＥＣＵ７１へのデータの書込み動作が一度も行われていないことにより、あるいは、ＢＡＴＥＣＵ７１に書き込まれていたデータが何らかの理由で消失したことなどにより、ＢＡＴＥＣＵ７１にバッテリ制御用プログラムＰＲＢなどのデータが書き込まれていないＢＡＴＥＣＵ７１の初期状態においても、上述したＢＡＴＥＣＵ７１へのバッテリ書込み用プログラムＰＲＵＢの書込みが行われる。以上により、この初期状態においても、ＢＡＴＥＣＵ７１へのバッテリ書込み用プログラムＰＲＵＢの書込みを、ＢＡＴＥＣＵ７１における書込みデータの種別に応じて適切に行うことができる。
【０１２６】
さらに、前述したように、バッテリ書込み用種別データＷＤＣＢが、ＢＡＴＥＣＵ種別データＤＣＢで表される、そのときのバッテリ制御用プログラムＰＵＢのバージョン番号よりも１つ新しいバージョン番号を表すように設定される。したがって、バッテリ制御用プログラムＰＵＢが古いバージョンのバッテリ書込み用プログラムＰＲＵＢに誤って書き換えられたり、同じバージョンのバッテリ書込み用プログラムＰＲＵＢに無駄に書き換えられたりするのを、防止することができる。
【０１２７】
また、ＢＡＴＥＣＵ７１に書き込むべきデータの種別を表すバッテリ書込み用種別データＷＤＣＢが、オペレータではなく、ＦＩＥＣＵ２１によって設定されるとともに、それに応じてバッテリ書込み用プログラムＰＲＵＢの書込みが行われるので、その書込みにおける人為的なミスを防止することができる。さらに、ＢＡＴＥＣＵ７１において、ＢＡＴＥＣＵ種別データＤＣＢを記憶する必要がないので、その記憶容量を低減することができる。
【０１２８】
さらに、書き込まれたバッテリ書込み用プログラムＰＲＵＢに応じたＢＡＴＥＣＵ書込み用種別データＤＣＵＢが、書込みユニット５２によりＢＡＴＥＣＵ７１に送信される（図８のステップ７８、８０）とともに、最新のＢＡＴＥＣＵ種別データＤＣＢとして設定される（図１１のステップ１１２）。また、設定された最新のＢＡＴＥＣＵ種別データＤＣＢが、ＢＡＴＥＣＵ７１からＦＩＥＣＵ２１に送信（転送）される（ステップ１１３）。さらに、ＦＩＥＣＵ２１により、バッテリ書込み用種別データＷＤＣＢと送信された最新のＢＡＴＥＣＵ種別データＤＣＢとの比較結果に基づいて、ＢＡＴＥＣＵ７１へのバッテリ書込み用プログラムＰＲＵＢの書込みが適正に行われたか否かが判定される（図１２のステップ１２２）。
【０１２９】
前述したようにバッテリ書込み用種別データＷＤＣＢは、ＢＡＴＥＣＵ７１に書き込むべきデータの種別を表すので、ＢＡＴＥＣＵ７１へのデータの書込みが適正に行われた場合には、バッテリ書込み用種別データＷＤＣＢと、ＢＡＴＥＣＵ７１に書き込まれたバッテリ書込み用プログラムＰＲＵＢに応じた最新のＢＡＴＥＣＵ種別データＤＣＢとは、互いに一致する。したがって、上述した判定により、ＢＡＴＥＣＵ７１へのバッテリ書込み用プログラムＰＲＵＢの書込みが適正に行われたか否かを適切に判定でき、それにより、その書込みミスによるＢＡＴＥＣＵ７１の不具合を防止することができる。
【０１３０】
また、第１実施形態で述べたＣＶＴＥＣＵ３１に関する効果は、前述した図７〜図１２に示す処理の実行内容から明らかなように、ＭＯＴＥＣＵ６１についても同様に得ることができる。
【０１３１】
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、第１実施形態では、ＣＶＴＥＣＵ３１への変速書込み用プログラムＰＲＵＣの書込みが適正に行われたか否かの判定（以下「書込み判定」という）を、ＦＩＥＣＵ２１により判定しているが、ＣＶＴＥＣＵ３１により行ってもよい。
【０１３２】
この場合、ＣＶＴＥＣＵ３１からＦＩＥＣＵ２１に最新のＣＶＴＥＣＵ種別データＤＣＣを送信せずに、ＦＩＥＣＵ２１からＣＶＴＥＣＵ３１に変速書込み用種別データＷＤＣＣを送信するとともに、最新のＣＶＴＥＣＵ種別データＤＣＣと変速書込み用種別データＷＤＣＣとの比較結果に基づいて、上記の書込み判定が行われる。あるいは、上述したＣＶＴＥＣＵ３１による書込み判定と、第１実施形態で述べたＦＩＥＣＵ２１による書込み判定の双方を行ってもよい。以上のことは、第２実施形態におけるモータ書込み用プログラムＰＲＵＭ及びバッテリ書込み用プログラムＰＲＵＢの書込み判定についても同様に当てはまる。
【０１３３】
また、第１及び第２実施形態ではそれぞれ、第２書込み用データとして変速書込み用プログラムＰＲＵＣ及びモータ書込み用プログラムＰＲＵＭを、第２実施形態では、第３書込み用データとしてバッテリ書込み用プログラムＰＲＵＢを、それぞれ用いているが、他の適当な書込みデータでもよい。さらに、第１実施形態では、書込みユニット２とＦＩＥＣＵ２１及びＣＶＴＥＣＵ３１との間を、通信線１１を介して、ＦＩＥＣＵ２１とＣＶＴＥＣＵ３１の間を、通信線１２を介して、すなわち有線により接続しているが、無線により接続してもよい。このことは、第２実施形態における書込みユニット５２とＦＩＥＣＵ２１及びＭＯＴＥＣＵ６１との間の接続、ＦＩＥＣＵ２１とＭＯＴＥＣＵ６１の間の接続、及び、ＭＯＴＥＣＵ６１とＢＡＴＥＣＵ７１の間の接続についても同様に当てはまる。
【０１３４】
また、第１及び第２実施形態では、本発明の記憶手段として、ＥＥＰＲＯＭ２４を用いているが、データを記憶可能な他の適当な記憶媒体、例えばフラッシュＲＯＭを用いてもよい。さらに、第１及び第２実施形態では、本発明の第１制御ユニットとしてＦＩＥＣＵ２１を、第２制御ユニットとしてＣＶＴＥＣＵ３１及びＭＯＴＥＣＵ６１を、第３制御ユニットとしてＢＡＴＥＣＵ７１を、それぞれ用いているが、他の適当な制御ユニットを用いてもよい。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【符号の説明】
【０１３５】
１  データ書込み装置
２  書込みユニット
２１  ＦＩＥＣＵ（第１制御ユニット）
２３ａ  ＣＰＵ（第２書込み用種別データ送信手段、第３書込み用種別データ送信手            段、判定手段）
２４  ＥＥＰＲＯＭ（第２種別データ記憶手段、第３種別データ記憶手段）
３１  ＣＶＴＥＣＵ（第２制御ユニット）
３３ａ  ＣＰＵ（第２書込み用データ書込み手段、第２種別データ転送手段）
５１  データ書込み装置
５２  書込みユニット
６１  ＭＯＴＥＣＵ（第２制御ユニット）
６３ａ  ＣＰＵ（第２書込み用データ書込み手段、第２種別データ転送手段）
７１  ＢＡＴＥＣＵ（第３制御ユニット）
７３ａ  ＣＰＵ（第３書込み用データ書込み手段）
ＰＲＵＣ  変速書込み用プログラム（第２書込み用データ）
ＤＣＣ  ＣＶＴＥＣＵ種別データ（第２種別データ）
ＷＤＣＣ  変速書込み用種別データ（第２書込み用種別データ）
ＰＲＵＭ  モータ書込み用プログラム（第２書込み用データ）
ＤＣＭ  ＭＯＴＥＣＵ種別データ（第２種別データ）
ＷＤＣＭ  モータ書込み用種別データ（第２書込み用種別データ）
ＰＲＵＢ  バッテリ書込み用プログラム（第３書込み用データ）
ＤＣＢ  ＢＡＴＥＣＵ種別データ（第３種別データ）
ＷＤＣＢ  バッテリ書込み用種別データ（第３書込み用種別データ）
【図１】
0005625036.tif 000002
【図２】
0005625036.tif 000003
【図３】
0005625036.tif 000004
【図４】
0005625036.tif 000005
【図５】
0005625036.tif 000006
【図６】
0005625036.tif 000007
【図７】
0005625036.tif 000008
【図８】
0005625036.tif 000009
【図９】
0005625036.tif 000010
【図１０】
0005625036.tif 000011
【図１１】
0005625036.tif 000012
【図１２】
0005625036.tif 000013