(57)【要約】  自動車の所有者や自動車を利用する運転者にとって不便さを感じさせずかつ安全に制御プログラムやでデータを確実に更新処理するプログラム書き込み装置を提供する。  車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データなどを含む更新プログラムデータを受信してメモリへ蓄積する中継装置と、を備え、前記車載制御装置と前記中継装置は車載ネットワークで接続されたプログラム書込み装置において、前記中継装置は、バッテリ電圧チェック回路を備え、前記車載制御装置へ前記更新プログラムと更新データを書込む前に前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上である場合は書込みを実行し、その他の場合には書込みを実行しない。
2015194406.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データなどを含む更新プログラムデータを受信してメモリへ蓄積する中継装置と、を備え、前記車載制御装置と前記中継装置は車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、バッテリ電圧チェック回路を備え、
前記車載制御装置へ前記更新プログラムと更新データを書込む前に前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、
バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上である場合は書込みを実行し、その他の場合には書込みを実行しないことを特徴とする車載プログラム書込み装置。
【請求項２】
請求項１に記載の車載プログラム書込み装置において、
前記中継装置は、バッテリ電圧異常表示器を備え、
前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が第１の基準電圧以下かつ第２の基準電圧以下である場合に前記バッテリ電圧異常表示器を点灯することを特徴とする車載プログラム書込み装置。
【請求項３】
請求項１に記載の車載プログラム書込み装置において、
前記中継装置は、バッテリ電圧正常表示器を備え、
前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が第１の基準電圧以上または第２の基準電圧以上である場合に前記バッテリ電圧正常表示器を点灯することを特徴とする車載プログラム書込み装置。
【請求項４】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データなどを含む更新プログラムデータを受信してメモリへ蓄積する中継装置と、を備え、前記車載制御装置は前記制御プログラムを実行する通常動作モードと前記制御プログラムを更新プログラムへ書き換えるリプロモードを有し、前記車載制御装置と前記中継装置は車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、バッテリ電圧チェック回路を備え、
予め決められた第１の時間帯以前に外部センタから送信された複数の車載制御装置の更新プログラムデータをイグニッションがオン状態の場合に受信する手段と、
外部センタから前記第１の時間帯に送信された書込み開始指令を受信した場合に、前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上であれば前記車載制御装置をウェイクアップ起動し前記リプロモードへ遷移させる手段と、
前記車載制御装置は、前記中継装置へリプロモード遷移を通知し、
前記中継装置は、前記車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された当該車載制御装置の更新プログラムデータの有無に基づき当該車載制御装置へ更新プログラムと更新データの書き込みを前記第１の時間帯に実行することを特徴とする車載プログラム書込み装置。
【請求項５】
請求項４に記載の車載プログラム書込み装置おいて、
外部センタから前記第１の時間帯の範囲内に送信された書込み開始指令を受信し、かつ、イグニッションがオフ状態の場合に、前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、
バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上であれば前記車載制御装置をウェイクアップ起動し、前記リプロモードへ遷移させる手段を有し、
前記車載制御装置は、前記中継装置へリプロモード遷移を通知し、
前記中継装置は、車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された当該車載制御装置の更新プログラムデータの有無に基づき当該車載制御装置へ更新プログラムと更新データの書き込みを前記第１の時間帯に実行することを特徴とする車載プログラム書込み装置。
【請求項６】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データと書込み開始指令を実行する第２の時間帯を含む更新プログラムデータを受信してメモリへ蓄積する中継装置と、を備え、前記車載制御装置は前記制御プログラムを実行する通常動作モードと前記制御プログラムを更新プログラムへ書き換えるリプロモードを有し、前記車載制御装置と前記中継装置は車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、バッテリ電圧チェック回路と、
前記第２の時間帯以前に外部センタから送信された複数の車載制御装置の更新プログラムデータをイグニッションがオン状態の場合に受信する手段を有し、車両に搭載された時計に基づいて前記第２の時間帯に前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上であれば前記車載制御装置をウェイクアップ起動し、前記リプロモードへ遷移させる手段とを有し、
前記車載制御装置は、前記中継装置へリプロモード遷移を通知し、
前記中継装置は、車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された当該車載制御装置の更新プログラムデータの有無に基づき当該車載制御装置へ更新プログラムと更新データの書き込みを前記第２の時間帯に実行することを特徴とする車載プログラム書込み装置。
【請求項７】
請求項６に記載の車載プログラム書込み装置おいて、
イグニッションがオフ状態の場合に車両に搭載された時計に基づいて前記第２の時間帯に前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、
バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上であれば前記車載制御装置をウェイクアップ起動し、前記リプロモードへ遷移させる手段を有し、
前記車載制御装置は、前記中継装置へリプロモード遷移を通知し、
前記中継装置は、車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された当該車載制御装置の更新プログラムデータの有無に基づき当該車載制御装置へ更新プログラムと更新データの書き込みを前記第２の時間帯に実行することを特徴とする車載プログラム書込み装置。
【請求項８】
請求項１乃至７のいずれかに記載の車載プログラム書込み装置において、
前記中継装置は、外部センタから複数の車載制御装置の更新プログラムデータの受信を完了すると車両内のメモリ蓄積完了表示器を点灯し、かつ、前記外部センタへメモリ蓄積完了通知を行うことを特徴とする車両に搭載されたバッテリ電圧チェック機能を有する車載プログラム書込み装置。
【請求項９】
請求項１乃至８のいずれかに記載の車載プログラム書込み装置において、
前記複数の車載制御装置は、更新プログラムと更新データの書込み完了後に中継装置へ書込み完了通知手段を有し、
前記中継装置は、全ての複数の車載制御装置からの書込み完了通知を受信した後に、車両内の書込み完了表示器を点灯し、かつ、外部センタへ更新完了通知を実行することを特徴とする車載プログラム書込み装置。
【請求項１０】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データを含む更新プログラムデータを受信しメモリへ蓄積する中継装置と、を備え、前記車載制御装置は前記制御プログラムを実行する通常動作モードと前記制御プログラムを更新プログラムへ書き換えるリプロモードを有し、前記車載制御装置と前記中継装置は車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、メモリ蓄積完了表示器と書込み開始指令ボタンと書込み完了表示器とバッテリ電圧チェック回路と、外部センタから送信された複数の車載制御装置の更新プログラムデータをイグニッションがオン状態の場合に受信する手段と、を有し、
受信完了した場合に前記メモリ蓄積完了表示器を点灯し、
前記メモリ蓄積完了表示器が点灯しかつ前記書込み開始指令ボタンがオンである場合に、前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上であれば前記車載制御装置へ更新プログラムと更新データの書き込みを開始し、
書込みを完了した後に前記書込み完了表示器を点灯し、
前記メモリ蓄積完了表示器が消灯またはバッテリ電圧が前記第１の基準電圧以下かつ第２の基準電圧以下であれば、前記書込み開始指令ボタンをオンにしても更新プログラムと更新データの書込みを実行しないことを特徴とする車載プログラム書込み装置。
【請求項１１】
請求項１０に記載の車載プログラム書込み装置において、
前記メモリ蓄積完了表示器が点灯しかつイグニッションがオン状態でかつ車両のシフトギア位置がパーキングでかつ前記書込み開始指令ボタンがオンである場合に、前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または負荷接続時に第２の基準電圧以上であれば前記車載制御装置へ更新プログラムと更新データの書き込みを開始し、書込みを完了した後に前記書込み完了表示器を点灯し、
前記メモリ蓄積完了表示器が消灯またはイグニッションがオフ状態または車両のシフトギアがパーキング以外の位置またはバッテリ電圧が前記第１の基準電圧以下かつ第２の基準電圧以下であれば、前記書込み開始指令ボタンをオンにしても更新プログラムと更新データの書込みを実行しないことを特徴とする車載プログラム書込み装置。
【請求項１２】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データと第２の時間帯を含む更新プログラムデータを受信しメモリへ蓄積する中継装置と、を備え、前記車載制御装置は前記制御プログラムを実行する通常動作モードと前記制御プログラムを更新プログラムへ書き換えるリプロモードを有し、前記車載制御装置と前記中継装置は車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、メモリ蓄積完了表示器と書込み開始指令ボタンと書込み完了表示器とバッテリ電圧チェック回路と、を有し、
前記中継装置は、外部センタから送信された複数の車載制御装置の更新プログラムデータをイグニッションがオンの場合に受信する手段と、
受信完了した場合に前記メモリ蓄積完了表示器を点灯する手段と、
前記メモリ蓄積完了表示器が点灯しかつ前記書込み開始指令ボタンのオンを検出したとき、前記検出時刻が前記第２の時間帯の範囲内であれば、前記電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上または負荷接続時に第２の基準電圧以上の場合に前記車載制御装置へ更新プログラムと更新データの書き込みを第２の時間帯に実行し、前記複数の車載制御装置への書込みが完了後に前記書込み完了表示器を点灯し、前記メモリ蓄積完了表示が消灯または前記検出時刻が前記第２の時間帯の範囲外またはバッテリ電圧が第１の基準電圧以下でかつ第２の基準電圧以下であれば書込みを実行しない手段と、を有することを特徴とする車載プログラム書込み装置。
【請求項１３】
請求項１２に記載の車載プログラム書込み装置において、
前記メモリ蓄積完了表示器が点灯しかつイグニッションがオン状態でかつ車両のシフトギア位置がパーキングでかつ前記書込み開始指令ボタンのオンを検出したとき、前記検出時刻が前記第２の時間帯の範囲内であれば、前記電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または負荷接続時に第２の基準電圧以上の場合に前記車載制御装置へ更新プログラムと更新データの書き込みを第２の時間帯に実行し、前記複数の車載制御装置への書込みが完了後に前記書込み完了表示器を点灯し、前記メモリ蓄積完了表示が消灯またはイグニッションがオフ状態または車両のシフトギアがパーキング以外の位置または前記書込み開始指令ボタンのオンを検出した時刻が前記第２の時間帯の範囲外またはバッテリ電圧が第１の基準電圧以下でかつ第２の基準電圧以下であれば、書込みを実行しない手段を有することを特徴とする車載プログラム書換え装置。
【請求項１４】
車両に搭載された機器の動作を地図データに基づき制御する車載制御装置と、外部センタから送信された前記車載制御装置の更新地図データを受信してメモリへ蓄積する中継装置と、を備え、前記車載制御装置と前記中継装置は車載ネットワークで接続された地図データ書込み装置において、
前記中継装置は、バッテリ電圧チェック回路を備え、
前記車載制御装置へ前記更新地図データを書込む前に前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、
バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上である場合に書込みを実行し、その他の場合には書込みを実行しないことを特徴とする地図データ書込み装置。
【請求項１５】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データなどを含む更新プログラムデータを受信してメモリへ蓄積する中継装置と、バッテリ電圧チェック装置と、を備え、前記車載制御装置と前記中継装置と前記バッテリ電圧チェック装置とは車載ネットワークで接続された車載プログラム書込み装置において、
前記バッテリ電圧チェック装置は、バッテリ電圧チェック回路を備え、
前記バッテリ電圧チェック回路は、無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上であるかを示すバッテリ状態信号を前記車載ネットワークへ送信し、
前記中継装置は、受信した前記バッテリ状態信号に基づき書込みを実行または書込みを実行しないことを特徴とする車載プログラム書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された電子機器を制御する組込み制御装置に係り、特に車載プログラムの書込み装置に関するものである。
【背景技術】
【０００２】
車両に搭載された車載制御装置の制御動作を記述した制御プログラムは、マイコン内のフラッシュメモリ等の不揮発性メモリに格納されている。また制御プログラム内で用いられる初期値などのデータも不揮発性メモリに格納されている。これらのプログラムやデータは、車両を市場に出荷した以降については変更しないのが通常ではあるが、バグが検出された場合や、より良いサービスを提供することを理由に、制御プログラムやデータの更新を行っている。【０００３】
自動車の制御プログラムやデータの更新処理は、車両を販売店へ持込み、そこで書換えが行われるが、近年では車両外部のインフラである携帯電話網などの無線通信で行う方式が考案されている。【０００４】
例えば、特許文献１では、車両外部の情報管理基地局装置は車両に搭載されている無線通信機を介して停止中の車両に対してアップデートリクエストを送信し、これを受信した車両はスリープ状態からウェイクアップして、車両に搭載された車載制御装置を起動し、情報管理基地局装置から送信されたアップデートプログラムを車載制御装置へ書込むことを行っている。【０００５】
また、特許文献２では、外部ツールと車両に搭載された書込み装置を通信ケーブルで接続し、外部ツールから送信された更新プログラムを書込み装置へ蓄積し、その後に通信ケーブルを外した状態で書込み装置から車載制御装置へ更新プログラムを書込む構成が記載されている。特許文献２では、書込み中は通信が不要となるので、他の車両へ通信ケーブルを接続することで更新プログラムを書込み装置へ蓄積することができる。結果として書込み時間は、外部との通信を介さずに実行できるので短縮できる点と車両の書込み処理と他の車両への通信ケーブルを介した更新プログラムの蓄積処理を並列に実行できる点で書込み時間の短縮化を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４３６１９０２号
【特許文献２】特許第４５９３０９５号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１では、アップデートプログラムを事前に蓄積しておく手段が無いため、情報管理基地局装置から車載制御装置への更新プログラム転送時間と車載制御装置への書込み時間の合計が更新プログラムの書込みに要する時間になるので、時間がかかるという問題が発生する。また、エンジンが起動していないのでオルタネータによるバッテリ充電ができない。従って、書込み途中で電力不足が発生すると、プログラムのアップデートが中断されるので車載制御装置は、動作不良となる問題が発生する。書込み時間がかかるケースでは特にバッテリの容量不足に陥る可能性が高いため深刻な問題である。
また、特許文献２では、イグニッションがオンの状態で書込みを実施する記載はあるがエンジンを起動した状態とは記載されてないので、特許文献１と同様に、書込み実行中にバッテリ容量不足による書込み中断が発生する可能性がある。【０００８】
前述したように、自動車に搭載された車載制御装置の制御プログラムやデータの更新処理は自動車を販売店に持込む必要があったところ、自動車を販売店に持ち込まなくても携帯電話網などの無線通信を活用して車載制御装置の制御プログラムやデータを更新する手段が提案されているが、自動車の所有者や自動車を利用する運転者にとって、いかに不便さを感じさせずかつ安全に、車載制御装置の制御プログラムやデータを更新するかが課題である。【０００９】
特に、販売店以外の自宅駐車場など車両の専門化である整備士がいない状況下で更新処理を実施する場合に、上述したように車載バッテリの容量不足による書き込み中断が発生する可能性があり、バッテリ容量が更新処理を実行するに十分であるか判断できるようにすることが課題である。【００１０】
本発明の目的は、自動車の所有者や自動車を利用する運転者にとって不便さを感じさせずかつ安全に制御プログラムやでデータを確実に更新処理するプログラム書き込み装置を提供することにある。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記車載制御装置の更新プログラムと更新データなどを含む更新プログラムデータを受信してメモリへ蓄積する中継装置と、を備え、前記車載制御装置と前記中継装置は車載ネットワークで接続されたプログラム書込み装置において、前記中継装置は、バッテリ電圧チェック回路を備え、前記車載制御装置へ前記更新プログラムと更新データを書込む前に前記バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行い、バッテリ電圧が無負荷時に第１の基準電圧以上、または、負荷接続時に第２の基準電圧以上である場合は書込みを実行し、その他の場合には書込みを実行しないことを特徴とするプログラム書込み装置。
【発明の効果】
【００１２】
本発明によれば、自動車の所有者や自動車を利用する運転者にとって不便さを感じさせずかつ安全に制御プログラムやでデータを確実に更新処理するプログラム書き込み装置を提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】電圧チェック機能を有する車載プログラム書込み装置の全体構成図。
【図２】車載制御装置の構成図。
【図３】中継装置の構成図。
【図４】中継装置マイコンの割込みテーブル４００の構成図。
【図５】車載制御装置マイコンの割込みテーブル５００の構成図。
【図６】外部センタの送信データ構成図。
【図７】中継装置の蓄積データ構成図。
【図８】中継装置のメモリ構成図。
【図８Ａ】車載制御装置のメモリ構成図。
【図９】外部センタの書込み開始指令による書込み処理概要図。
【図１０】書込みボタンによる書込み処理概要図。
【図１１】中継装置のメモリ蓄積処理図。
【図１２】外部センタへの書込み完了通知送信データ構成図。
【図１３】中継装置の書込み開始指令の蓄積データ構成図。
【図１４】書込み開始指令受信処理図。
【図１５】書込み開始処理図。
【図１６】車載制御装置のウェイクアップ受信処理図。
【図１７】車載制御装置番号ＲＥＣＥＣＵＩＤ［ｎ］で指示された車載制御装置のリプロモード受信処理図。
【図１８】車載制御装置番号ＲＥＣＥＣＵＩＤ［ｎ］で指示された車載制御装置へ更新プログラムを送信する中継装置の処理図。
【図１９】車載制御装置番号ＲＥＣＥＣＵＩＤ［ｎ］で指示された車載制御装置の書込み処理図。
【図２０】車載制御装置番号ＲＥＣＥＣＵＩＤ［ｎ］で指示された車載制御装置からの書込み完了結果を配列ＲＥＳＵＬＴＥＣＵ［ｎ］へ格納する中継装置の処理図。
【図２１】中継装置の書込み完了処理図。
【図２２】書込み開始指令ボタンによる書込み開始指令処理図。
【図２３】ボタンによる書込み開始処理図。
【図２４】電圧観測パルス２４２０と無負荷時のバッテリ電圧波形２４００の関係を示した図。
【図２５】電圧観測パルス２５２０と負荷接続時のバッテリ電圧波形２５００の関係を示した図。
【図２６】電圧チェック処理図。
【図２７】バッテリ電圧チェック装置の構成図。
【発明を実施するための形態】
【００１４】
運転者に不便を感じさせないためには、自動車を使用しない時間帯に、安全かつ短時間で更新プログラムと更新データを車載制御装置へ書込むことが必要である。本発明では、まず安全性と書込み時間短縮を実現するため、外部センタから無線で送信された車載制御装置の更新プログラムデータをイグニッションがオンの状態の場合に取得し、中継装置へ蓄積する手段を前提とする。これは１つには、無線で更新プログラムデータを受信するので、ビルの蔭や屋内駐車場など、電波が届かない場所に車両が停車していると受信できない場合が考えられるので、イグニッションがオン状態で走行中などに中継装置に更新プログラムデータを受信したほうがより確実かつ安全に受信できるからである。従って、エンジンが起動しておりオルタネータからバッテリ充電が行われている状態で受信しているので、安全である。２つには、外部センタから直接車載制御装置へ無線を介して書込むよりも、車両内の中継装置に更新プログラムデータを蓄積し、その後にある時間帯で中継装置から更新プログラムと更新データを車載制御装置へ書込むほうが書込み時間を短縮できるからである。
【００１５】
以上を前提にして、本発明は、運転者が自動車を使用しない時間帯に更新プログラムと更新データを車載制御装置へ安全に書込む手段を考案した。本発明手段を説明する前に、プログラム更新手順を考察する。まず車載制御装置のプログラム更新は、車両所有者の同意無しに実行することはできない。そのため、事前に電話やメールなどでプログラム更新の同意や自動車を使用しない第１の時間帯を確認しておく必要がある。ここで第１の時間帯とは、車両所有者が指定した都合の良い年、月、日における時間帯のことであり、この時間帯ならプログラム更新しても良いと合意した時間帯のことである。従って夜中の２時〜３時の時間帯に自宅駐車場でプログラム更新を希望するかも知れない。ただし、外部センタがその時間帯で他の車両へ更新プログラムと更新データを送信予定である場合には、車両所有者と調整して、他の時間帯へ変更することも有り得る。また、他の車両所有者は、時間帯など指定せずに、都合の良い時に自分でプログラム更新をしたいと希望するかも知れない。このように、時間帯を指定するケースでは、夜中の時間帯が想定されるので、車両には運転者が乗車しておらず、イグニッションはオフ状態で更新プログラムの書込みを実現する必要がる。本ケースを第１のケースとする。一方、時間帯を指定せずに運転者が都合の良い時に自分でプログラム更新を実行するケースを第２のケースと定義する。以下、本発明による第１のケースと第２のケースの実現手段を説明する。
【００１６】
最初に、エンジンを起動してオルタネータからバッテリ充電中にプログラムを更新することが困難であることを説明する。ここでバッテリ充電中とはエンジンが動作中でかつエンジンを制御している車載制御装置の制御プログラムが実行されている状態である。つまり実行中の制御プログラムはマイコンによって読み出され、読み出された命令列を実行している状態なので、制御プログラムの一部を更新プログラムへ書き換えると、動作不良となってしまう。このようにエンジンを制御する車載制御装置を動作中にプログラム更新することは困難である。以上述べたことを理由に、プログラム更新を実行する前にバッテリの容量を把握し、プログラム更新を完了できるだけのバッテリ容量があるかチェックすることを前提に第１のケースと第２のケースの実現手段を考案した。
【００１７】
以下に各請求項の概要について説明する。
【００１８】
請求項１は、中継装置が車載制御装置へ更新プログラムと更新データの書込みを実行する前に、中継装置が備えている電圧チェック回路により無負荷時と負荷接続時のバッテリ電圧チェックを行い、無負荷時には第１の基準電圧以上、または負荷接続時には第２の基準電圧以上である場合に書込みを実行し、その他の場合には書込みを実行しない手段である。車両に搭載されている鉛バッテリは、バッテリ容量が低下すると内部抵抗も増大し、電圧降下も大きくなる特性がある。従って、無負荷時に高い電圧を示すバッテリであっても容量が少ない場合がある。これを理由に、バッテリに負荷を接続した状態で第２の基準電圧以上であるか判定している。一方、無負荷状態でも非常に高い電圧を出力している場合には、内部抵抗が小さいことを意味するので、第１の基準電圧以上であれば、十分なバッテリ容量があると判断できる。従って、無負荷時に第１の基準電圧以上であることも判定条件に加えている。明らかに第１の基準電圧は、第２の基準電圧よりも大きい電圧である。
【００１９】
請求項２は、中継装置がバッテリ電圧異常表示器を備え、バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行った結果、バッテリ電圧が第１の基準電圧以下かつ第２の基準電圧以下の場合にバッテリ電圧異常表示器を点灯させる手段である。運転者へバッテリ異常を通知することが目的なので表示器は点滅でも良い。
【００２０】
請求項３は、中継装置がバッテリ電圧正常表示器を備え、バッテリ電圧チェック回路による無負荷時と負荷接続時のバッテリ電圧チェックを行った結果、バッテリ電圧が第１の基準電圧以上または第２の基準電圧以上の場合にバッテリ電圧正常表示器を点灯させる手段である。運転者へバッテリ正常を通知することが目的である。
【００２１】
次に第１のケースの実現手段を説明する。本ケースは、運転者が自動車に乗車していないので、外部センタからの指令に基づき、車両所有者の希望する時間帯（第１の時間帯と呼ぶ）にプログラム更新を実行することを基本とする。
【００２２】
請求項４の手段は、エンジン起動中のバッテリ充電中の状態で外部センタから第１の時間帯の以前に更新プログラムデータを中継装置へ蓄積した後に、中継装置は、外部センタから第１の時間帯の範囲内に送信された書込み開始指令を受信した場合に、まず無負荷時と負荷接続時のバッテリ電圧チェックを行い、その結果バッテリ電圧が第１の基準電圧以上または第２の基準電圧以上である場合に、車載制御装置をウェイクアップ起動し、リプロモード（プログラム書換えモード）へ遷移させ、車載制御装置からのリプロモード遷移通知とメモリへ蓄積された車載制御装置の更新プログラムデータの有無に基づいて車載制御装置へ更新プログラムと更新データの書き込みを第１の時間帯に実行する手段である。本発明手段により、車両所有者が不便に感じない時間帯で車載制御装置のプログラムとデータの更新を安全に完了することができる。
【００２３】
請求項５は、請求項４において外部センタから第１の時間帯の範囲内に送信された書込み開始指令を受信しかつイグニッションがオフの場合に、無負荷時と負荷接続時のバッテリ電圧チェックを行い、更新プログラムと更新データの書き込みを第１の時間帯に実行する手段である。
【００２４】
請求項６は、外部センタから第２の時間帯を含む更新プログラムデータ受信し、車載時計から現在時刻が第２の時間帯の範囲内であれば、書込み開始指令を実行する手段を提供している。すなわち本手段は、書込み開始指令の受信時刻を車両に搭載された時計を読み出して求め、既に受信した更新プログラムデータ内の第２の時間帯と比較することで第２の時間帯の範囲内であるか判断することができる。従って、範囲内であれば、無負荷時と負荷接続時のバッテリ電圧チェックを行い基準電圧以上である場合に、書込み開始を実行する。まず車載ネットワークに接続された車載制御装置へウェイクアップパターンを送信して車載制御装置をウェイクアップ起動し、次に車載制御装置へリプロモードへの遷移コマンドを送信して、車載制御装置がリプロモードへ遷移した通知を受けた後に更新プログラムと更新データの書込み処理を第２の時間帯に実行する手段である。以上のように、本手段は、車両所有者との約束である第２の時間帯（すなわち第１の時間帯と第２の時間帯を同一に設定しておく）に、バッテリ電圧を確認して安全、確実に書込みを実行する手段である。
【００２５】
請求項７は、請求項６においてイグニッションがオフの状態でかつ車載時計から得た現在時刻が第２の時間帯の範囲内である場合に電圧チェックを行い、基準電圧以上であれば第２の時間帯に書込みを実行する手段である。
【００２６】
請求項８は、車両内にメモリ蓄積完了表示器を設置し、外部センタから送信された更新プログラムデータを中継装置が蓄積完了した場合に点灯する手段である。車両への更新プログラムデータは数日前に送信することを想定した場合、本表示器が点灯することによって運転者は、プログラム更新の準備が整ったことを認識できるので安心感を与えることができる。
【００２７】
請求項９は、車両内に書込み完了表示器を設置し、蓄積した更新プログラムデータを車載制御装置へ全て書込み完了した後に、表示器の点灯と外部センタへ書込み完了通知を行う手段である。これにより、運転者は、例えば翌日の朝に、車両の書込み完了表示器が点灯していれば完了を確認できるので安心できる。また外部センタも完了を知ることができる。
【００２８】
次に、第２のケースの実現手段を説明する。本ケースは運転者が自動車に乗車しているケースである。
【００２９】
請求項１０は、運転者が更新プログラムデータを蓄積完了したことを確認できるメモリ蓄積完了表示器と運転者が書込み開始指令を指示するための書込み開始指令ボタンと書込みが終了したことを示す書込み完了表示器を設置し、運転者はメモリ蓄積完了表示器の点灯を確認し、運転者の都合良い時間に書込み開始指令ボタンをオンにすることで中継装置は無負荷時と負荷接続時のバッテリ電圧のチェックを行い、その結果バッテリ電圧が基準電圧以上であれば車載制御装置へ書込みを実行し、さらに書込み完了表示器が点灯することで書込み完了を知らせる手段である。このように、２つの表示器と１つのボタンがあれば、運転者は安心して確実に書込み作業を実行することができる。
【００３０】
請求項１１は、請求項１０においてイグニッションがオンの状態でかつ車両のシフトギア位置がパーキングでかつ書込み開始指令ボタンがオンになった場合に、電圧チェックを行い、基準電圧以上であれば書込みを実行する手段である。
【００３１】
請求項１２は、たとえ運転者が乗車していても必ずしも運転者が所有者というわけでは無いので、車両所有者と約束した第１の時間帯に書込みを実行するための手段である。車両所有者との約束の第１の時間帯に書き込みを実行するには、更新プログラムデータに第２の時間帯のデータ（第２の時間帯は第１の時間帯と同一に設定しておく）を設定して中継装置へ送信し、中継装置は書込み開始指令ボタンがオン状態になった時刻が第２の時間帯の範囲内であるか車両の時計を用いてチェックし、その結果範囲内でありかつメモリ蓄積完了表示器が点灯していれば、無負荷時と負荷接続時のバッテリ電圧チェックを行い、その結果バッテリ電圧が基準電圧以上である場合に、車載制御装置へ第２の時間帯に書込みを実行し、書込み完了後に書込み完了表示器を点灯して運転者へ知らせる手段である。
【００３２】
請求項１３は、請求項１２においてイグニッションがオン状態でかつ車両のシフトギア位置がパーキングで書込み開始指令ボタンがオンであることを第２の時間帯に検出すれば、バッテリ電圧チェックを行い、基準電圧以上であれば第２の時間帯に書込みを実行する手段である。
【００３３】
請求項１４は、車載制御装置の１つとしてナビゲーション装置を対象にした場合の手段である。更新プログラムデータの代わりに地図データをナビゲーション装置へ書込み前にバッテリ電圧チェックを行い、基準電圧以上の場合に書込みを実行する手段である。
【００３４】
以上のように本発明によれば、運転者が車両に乗車しているケースでも、乗車していないケースでも予め約束した時間帯に書込み開始を実行する手段や運転者の都合の良い時に書込み開始指令ボタンを押すことによって、無負荷時と負荷接続時のバッテリ電圧チェックを行い、その結果バッテリ電圧が基準電圧以上であることを確認することによって、安全に更新プログラムや更新地図データの書込み処理を実現できる。
【００３５】
請求項１５は、バッテリ電圧チェック回路は、必ずしも中継装置に内蔵する必要は無く、バッテリ電圧チェック回路を内蔵したバッテリ電圧チェック装置が車載ネットワークを介して中継装置とバッテリ電圧チェック装置が接続され、バッテリ電圧チェック装置が検出したバッテリ電圧チェック結果を車載ネットワークを介して中継装置へ通知する手段である。この結果、中継装置は車載ネットワークから受信したバッテリ電圧チェック結果に基づき、車載制御装置への書込み処理を安全に実行できる。
【００３６】
以下、各実施例の中で詳細に説明する。
【実施例１】
【００３７】
初めに本発明の一例を実現するハードウェア構成と、必要なソフトウェア構成、データ構成について説明し、その後、本発明の詳細な実施例について説明する。【００３８】
図１に示されるように、外部センタ１００は、更新プログラムデータを車両１１０へ無線で送信し、その書込み完了結果を車両から受信する機能をもつ。無線中継基地１０１は、外部センタ１００と車両１１０間の無線データを中継する。車両１１０には、更新プログラムデータの蓄積と車載制御装置への書込み機能を有する中継装置１２０、制御対象（エンジン）１３５を制御する車載制御装置１３０、制御対象（トランスミッション）１４５を制御する車載制御装置１４０、制御対象（モータ）１５５を制御する車載制御装置１５０、車両に搭載されたバッテリ電源１７２、車両に搭載された電子機器にバッテリ電源を供給するイグニッションスイッチＩＧＮ１７０、時計１８０、書込み開始指令ボタン１８２、メモリ蓄積完了表示器１８４、書込み完了表示器１８６、バッテリ電圧異常表示器１８８、バッテリ電圧正常表示器１９０がある。中継装置１２０は、外部センタ１００とデータ送受信を行う無線送受信機１２１とマイコン１２２で構成されている。さらに中継装置１２０は、車載ネットワーク１６０と接続し、時計１８０と信号線１８１を介して接続し、書き込み開始指令ボタン１８２と信号線１８３を介して接続し、メモリ蓄積完了表示器１８４と信号線１８５を介して接続し、書込み完了表示器１８６と信号線１８７を介して接続し、バッテリ電圧異常表示器１８８と信号線１８９を介して接続し、バッテリ電圧正常表示器１９０と信号線１９１を介して接続されている。ここで書込み開始指令ボタン１８２とメモリ蓄積完了表示器１８４と書込み完了表示器１８６とバッテリ電圧異常表示器１８８とバッテリ電圧正常表示器１９０は、説明を分かりやすくするために個別に用意したが、タッチパネル付きの表示器などで操作と表示を１つの装置で代替しても良い。無線送受信機１２１は、マイコン１２２と信号線１２８を介して接続されている。マイコン１２２は、演算器を含むＣＰＵ  １２３、マイコンの動作を制御するプログラムを格納する内部ＲＯＭ  １２４、更新プログラムデータを格納するための更新データＲＯＭ  １２５、ＲＡＭ１２６、車載ネットワークのプロトコル処理を行う車載ＬＡＮ通信部１２７、本発明の１つである電圧チェック回路１２９で構成されている。【００３９】
車載ネットワーク１６０は、中継装置１２０と車載制御装置１３０、１４０、１５０を接続する車載ネットワークである。バッテリ電源１７２は、電源線１７３を介して中継装置１２０や車載制御装置１３０、１４０、１５０など全ての車載電子機器へ電源を供給している。またイグニッション１７０は車載電子機器を起動するための信号であり、信号線１７１を介して中継装置１２０と車載制御装置１３０、１４０、１５０へ接続されている。イグニッション１７０をオン状態にすると、接続された電子機器は起動し、ＳＴＡＲＴ状態にするとエンジンがスタートする。車載制御装置１３０は車載ネットワーク１６０に接続され、制御対象であるエンジン１３５を信号線１３６を介して制御する。マイコン１３１は車載制御装置１３０の動作を制御し、車載ＬＡＮ通信部１３２は車載ネットワーク１６０と接続されている。ＲＯＭ１３３は、制御対象１３５を制御するためのプログラムとデータを格納するフラッシュメモリであり、ＲＡＭ１３４はＳＲＡＭである。【００４０】
車載制御装置１４０は車載ネットワーク１６０に接続され、制御対象であるトランスミッション１４５を信号線１４６を介して制御する。マイコン１４１は車載制御装置１４０の動作を制御し、車載ＬＡＮ通信部１４２は車載ネットワーク１６０と接続されている。ＲＯＭ１４３は、制御対象１４５を制御するためのプログラムとデータを格納するフラッシュメモリであり、ＲＡＭ１４４はＳＲＡＭである。車載制御装置１４０はトランスミッションのシフトギア位置信号１４７を中継装置１２０へ出力している。【００４１】
車載制御装置１５０は車載ネットワーク１６０に接続され、制御対象であるモータ１５５を信号線１５６を介して制御する。マイコン１５１は車載制御装置１５０の動作を制御し、車載ＬＡＮ通信部１５２は車載ネットワーク１６０と接続されている。ＲＯＭ１５３は、制御対象１５５を制御するためのプログラムとデータを格納するフラッシュメモリであり、ＲＡＭ１５４はＳＲＡＭである。【００４２】
次に車載制御装置１３０の起動に係わる回路について図２を用いて説明する。
本実施例では、車載制御装置は１３０、１４０、１５０の３つで構成しているが起動に係わる回路は同一であり、唯一シフトギア位置信号１４７だけが車載制御装置１４０から中継装置１２０へ出力されている信号である。従って本信号１４７を除いた回路動作を図２でまとめて説明する。車載制御装置１３０の入力には、バッテリ電源線１７３とイグニッション信号線１７１と車載ネットワーク１６０がある。リレー回路２１０がオン状態になるとバッテリ電源線１７３と電源線２２０が接続され、バッテリ電源がＤＣ−ＤＣコンバータ２３０へ供給される。ＤＣ−ＤＣコンバータ２３０はバッテリ電圧をマイコンの電圧へ降圧してマイコンの電源端子２４０へ供給する。これによりマイコン１３１はパワーオンリセットして起動できる。ここでリレー回路２１０をオン状態にする信号が３つあるので下記に説明する。【００４３】
１つ目はイグニッションＩＧＮ信号１７１であり、２つ目は車載ネットワークのドライバＩＣ  ＣＡＮ  ＢＤ  ２００のウェイクアップ検出信号ＷａｋｅＵｐ  ２５０であり、３つ目はマイコン１３１の自己保持信号ＰｏｗｅｒＫｅｅｐ  ２６０である。この３つの信号はＯＲ回路２７０を介して信号２８０へ出力され、リレー回路２１０のオン、オフ動作を制御している。ウェイクアップ検出信号ＷａｋｅＵｐ  ２５０は車載ネットワーク１６０を介してウェイクアップ信号を受信するとオン状態となる信号である。ウェイクアップ機能は、自動車で一般的に使用されている機能であり、ＣＡＮネットワークやＦｌｅｘＲａｙネットワークでもサポートされている。また信号線２９０は車載ネットワークのドライバＩＣ  ＣＡＮ  ＢＤ  ２００とマイコン１３１を接続する信号であり、中継装置１２０と通信データのやり取りを行う信号線である。
次に自己保持信号ＰｏｗｅｒＫｅｅｐ  ２６０を説明する。マイコン１３１がこの信号をオン状態に設定すると、イグニッション信号ＩＧＮ  １７１とウェイクアップ検出信号ＷａｋｅＵｐ  ２５０がオフ状態になっても回路構成からリレー回路２１０はオン状態を維持できることがわかる。従って、更新プログラムと更新データをフラッシュメモリＲＯＭ１３３へ書込み際には、本信号をオン状態に設定しておけば、マイコンの電源を維持できるので安全を確保できる。【００４４】
次に中継装置１２０の起動に係わる回路について図３を用いて説明する。
中継装置１２０の入力には、バッテリ電源線１７３、時計の信号線１８１、  書込み開始指令ボタンの信号線１８３、メモリ蓄積完了表示器の信号線１８５、書込み完了表示器の信号線１８７、バッテリ電圧異常表示器の信号線１８９、  バッテリ電圧正常表示器の信号線１９１、  イグニッション信号線１７１、シフトギア位置信号線１４７と車載ネットワーク１６０がある。また無縁送受信機１２１はマイコン１２２と信号線１２８を介して接続されている。リレー回路３１０がオン状態になるとバッテリ電源線１７３と電源線３７０が接続され、バッテリ電源がＤＣ−ＤＣコンバータ３２０へ供給される。ＤＣ−ＤＣコンバータ３２０はバッテリ電圧をマイコンの電圧へ降圧してマイコンの電源端子３７１へ供給する。これによりマイコン１２２はパワーオンリセットして起動できる。ここで車載制御装置と同様に、リレー回路３１０をオン状態にする信号が３つあるので説明する。【００４５】
１つ目はイグニッション信号１７１であり、２つ目は車載ネットワークのドライバＩＣ  ＣＡＮ  ＢＤ  ３００のウェイクアップ検出信号ＷａｋｅＵｐ  ３４０であり、３つ目はマイコン１２２の自己保持信号ＰｏｗｅｒＫｅｅｐ  ３５０である。この３つの信号はＯＲ回路３３０を介して信号３６０へ出力され、リレー回路３１０のオン、オフ動作を制御している。ウェイクアップ検出信号ＷａｋｅＵｐ  ３４０は車載ネットワーク１６０を介してウェイクアップ信号を受信するとオン状態となる信号である。ウェイクアップ機能は、自動車で一般的に使用されている機能である。また信号線３７２は車載ネットワークのドライバＩＣ  ＣＡＮ  ＢＤ  ３００とマイコン１２２を接続する信号であり、車載制御装置と通信データのやり取りを行う信号線である。
次に自己保持信号ＰｏｗｅｒＫｅｅｐ  ３５０を説明する。マイコン１２２がこの信号をオン状態にすると、イグニッション信号１７１やウェイクアップ検知信号ＷａｋｅＵｐ  ３４０がオフ状態になっても回路構成からリレー回路３１０はオン状態を維持できることがわかる。従って、更新プログラムデータをフラッシュメモリの更新データＲＯＭ１２５へ書込み際には、本信号をオン状態に設定しておけば、マイコン１２２の電源を維持できるので安全を確保できる。【００４６】
次に本発明の１つである電圧チェック回路１２９の詳細構成を説明する。
負荷３８１は、高耐圧の抵抗で構成された擬似負荷であり、一端は電源線３８３を介してグランドに接続されている。リレー回路３８０には、その１つの端子に負荷３８１が電源線３８２を介して接続され、またもう１つの端子にはバッテリ電源線１７３が接続されている。さらにもう１つの端子にはマイコン１２２と信号線３８４を介して接続されている。電圧検出回路３８５には、その１つ端子にマイコン１２２が出力した基準電圧のアナログ信号線３８６が接続され、もう１つの端子にはバッテリ電源線１７３が接続されている。さらにその出力端子はフリップフロップ回路３８８のＤ端子へ信号線３８７を介して接続されている。またフリップフロップ回路３８８のＴ端子には、マイコン１２２が出力した電圧観測パルス信号線３８９が接続されている。さらにその出力端子Ｑは、信号線３９０を介してマイコン１２２と接続されている。【００４７】
以上述べた電圧チェック回路１２９の動作を図２４と図２５を用いて詳しく説明する。【００４８】
図２４は電圧観測パルスと無負荷時のバッテリ電圧波形を示したものである。
ここで縦軸は電圧（Ｖ）、横軸は時刻ｔである。２４００は無負荷時のバッテリ電圧波形、２４１０はマイコン１２２が出力した第１の基準電圧、２４２０はマイコン１２２が出力した電圧観測パルスである。無負荷時のバッテリ電圧が第１の基準電圧以上であるか判定するために、マイコン１２２は、まず最初に信号線３８５へオフ信号を出力する。この結果バッテリ電圧１７３は負荷３８１と切り離されるので電圧検出回路の入力端子へは無負荷時のバッテリ電圧が入力されることになる。次にマイコン１２２はアナログ信号線３８６へ第１の基準電圧を出力し、その後電圧観測パルス信号線３８９をオンし、一定時間後にオフする。この動作により、フリップフロップ回路３８８は信号線３８９がオンの時間は、電圧検出回路３８５の出力信号３８７を入力し、オフになる立下りのタイミングで信号線３８７をラッチする動作を行う。結果として、ラッチ結果は信号線３９０を介してマイコン１２２ヘ入力することができる。電圧検出回路３８６は、バッテリ電圧１７３が第１の基準電圧３８６より高ければ信号線３８７へ１を出力し、低ければ信号線３８７へ０を出力するので、マイコン１２２は信号線３９０の値が１または０により第１の基準電圧以上または基準電圧以下であることが容易に判別できる。図２４では、このラッチタイミングが点線２４３０で示した時刻であり、バッテリ電圧２４００が第１の基準電圧２４１０よりも高いので、信号線３９０には１が出力される。【００４９】
次に図２５を用いて負荷接続時のバッテリ電圧波形を説明する。
ここで縦軸は電圧（Ｖ）、横軸は時刻ｔである。２５００は負荷接続時のバッテリ電圧波形、２５１０はマイコン１２２が出力した第２の基準電圧、２５２０はマイコン１２２が出力した電圧観測パルスである。負荷接続時のバッテリ電圧が第２の基準電圧以上であるか判定するために、マイコン１２２は、まず最初に信号線３８５へオン信号を出力する。この結果バッテリ電圧１７３は負荷３８１ときりはなれ接続されるので電圧検出回路の入力端子へは負荷接続時のバッテリ電圧が入力されることになる。バッテリには内部抵抗があるので、図２５のバッテリ電圧２５００に示したように０Ｖにはならない。次にマイコン１２２はアナログ信号線３８６へ第２の基準電圧を出力し、その後電圧観測パルス信号線３８９をオンし、一定時間後にオフする。この動作により、フリップフロップ回路３８８は信号線３８９がオンの時間は、電圧検出回路３８５の出力信号３８７を入力し、オフになる立下りのタイミングで信号線３８７をラッチする動作を行う。結果として、ラッチ結果は信号線３９０を介してマイコン１２２ヘ入力することができる。電圧検出回路３８６は、バッテリ電圧１７３が第２の基準電圧３８６より高ければ信号線３８７へ１を出力し、低ければ信号線３８７へ０を出力するので、マイコン１２２は信号線３９０の値が１または０により第２の基準電圧以上または基準電圧以下であることが容易に判別できる。図２５では、このラッチタイミングが点線２５３０で示した時刻であり、バッテリ電圧２５００が第２の基準電圧２５１０よりも高いので、信号線３９０には１が出力される。【００５０】
以上、電圧チェック回路の動作を詳細に説明した。【００５１】
次に本実施例の中継装置と車載制御装置のデータ構成やメモリの構成などについて図４〜図８Ａを用いて説明する。【００５２】
図４は、中継装置のマイコンの割り込みテーブル構成である。
割り込みテーブル４００は、マイコンの外部や内部で発生した割り込みを本テーブルに登録したアドレスへ分岐させるテーブルである。詳細は後述するが、中継装置では、無線送受信機から更新プログラムデータを受信した時に処理を行う無線送受信機受信割り込みプログラムのアドレス４１０と書込み開始指令ボタンが押されたかチェックするための５００ｍｓ周期割り込みプログラムのアドレス４２０が設定されている。また書込み開始指令受信処理プログラムは外部センタからの指令により起動するケース（請求項４、５）と１０００ｍｓ周期起動するケース（請求項６、７）がある。【００５３】
図５は、車載制御装置のマイコンの割り込みテーブル構成である。車載制御装置１３０、１４０、１５０の割り込みテーブルは、全て同一である。
割り込みテーブル５００は、マイコンの外部や内部で発生した割り込みを本テーブルに登録したアドレスへ分岐させるテーブルである。前述したように車載制御装置では、イグニッションＩＧＮがオンになった場合や、車載ネットワークからウェイクアップパターンを受信するとマイコンの電源がオンとする。５１０は電源オンの時に実行するプログラムのアドレスを登録してある。５２０は、中継装置から更新プログラムと更新データを受信した時に実行するプログラムのアドレスが登録してある。  
図６は、外部センタの送信データ構成である。外部センタ１００が無線で送信する複数の更新プログラムデータ構成６００と書込み開始指令構成６２０の通信フォーマットを説明する。【００５４】
更新プログラムデータの送信データ構成６００の先頭のヘッダは送信開始を指示する情報であり、ＶＩＮは車両を一意に特定する車両番号である。ＣＭＤはコマンドの種類である。ＣＭＤが”  ＳＮＤＰＲＯＧ”であれば受信データが更新プログラムデータを意味し、”  ＷＲＩＴＥ  “であれば受信データが書込み開始指令を意味する。ＳＴ２は本発明
の第２の時間帯のスタート時刻であり、ＥＴ２は第２の時間帯のエンド時刻を示している。Ｎは送信された更新プログラムデータの数を示している。ＳＩＺＥ［１］は最初に送信する更新プログラムデータのサイズであり、バイト単位で表現している。ＳＩＺＥ［Ｎ］は最後に送信する更新プログラムデータのサイズである。
次にＥＣＵ［１］は最初に送信する更新プログラムデータ情報であり、ＥＣＵ［Ｎ］は最後に送信する更新プログラムデータ情報である。更新プログラムデータ情報の数もＮと同じである。ＥＯＦは送信データの最後を示す情報である。【００５５】
次にＥＣＵ［Ｎ］の内部データ構成６１０を説明する。ＥＣＵ［Ｎ］は、他のＥＣＵ［１］などの内部データ構成と同一なのでＥＣＵ［Ｎ］でまとめて説明する。本実施例では、ＥＣＵ［Ｎ］の更新プログラムデータは更新プログラムと更新データと管理情報で構成されている。まずＥＣＵＩＤは車両内の車載制御装置を一意に特定する車載制御装置番号である。ＶＮＯは更新プログラムと更新データのバージョン番号、ＰＡＤＲは車載制御装置のＲＯＭの書込みアドレスである。更新プログラムと更新データをＲＯＭへ書込む時に必要となる先頭アドレスである。ＰＳＩＺＥは更新プログラムと更新データのサイズである。サイズの単位はバイトである。ＰＲＯＧＤＡＴＡは、更新プログラムと更新データ本体を示している。【００５６】
次に６２０の書込み開始指令コマンドの送信データ構成を説明する。ＶＩＮは一意に車両を特定するための車両番号、ＣＭＤは書込み開始指令コマンドである。【００５７】
以上、無線による通信データ構成を説明した。【００５８】
図７は、中継装置の蓄積したデータ構成である。無線通信データの更新プログラムデータと書込み開始指令と更新処理で使用するメモリ蓄積完了ビットと書込み完了ビットを更新データＲＯＭ１２５へ格納するデータ構成を説明する。まず、更新プログラムデータのメモリ蓄積データ構成７００を説明する。ＲＥＣＶＩＮは受信データＶＩＮを保持する変数、ＲＥＣＣＭＤは受信データＣＭＤを保持する変数であり、更新プログラムデータを受信した場合は”  ＳＮＤＰＲＯＧ  “である。ＲＥＣＳＴ２は受信データＳＴ２を保持する変数、ＲＥＣＥＴ２は受信データＥＴ２を保持する変数、ＲＥＣＮは受信データＮを保持する変数、ＲＥＣＳＩＺＥ［１］〜ＲＥＣＳＩＺＥ［ＲＥＣＮ］は受信データＳＩＺＥ［１］〜ＳＩＺＥ［Ｎ］を保持する配列であり、ＲＥＣＥＣＵＩＤ［１］〜ＲＥＣＥＣＵＩＤ［ＲＥＣＮ］は受信データＥＣＵＩＤ［１］〜ＥＣＵＩＤ［Ｎ］を保持する配列、ＲＥＣＥＣＵＶＮＯ［１］〜ＲＥＣＥＣＵＶＮＯ［ＲＥＣＮ］は受信データＥＣＵＶＮＯ［１］〜ＥＣＵＶＮＯ［Ｎ］を保持する配列である。ＲＥＣＥＣＵＰＡＤＲ［１］〜ＲＥＣＥＣＵＰＡＤＲ［ＲＥＣＮ］は受信データＥＣＵＰＡＤＲ［１］〜ＥＣＵＰＡＤＲ［Ｎ］を保持する配列であり、ＲＥＣＥＣＵＰＳＩＺＥ［１］〜ＲＥＣＥＣＵＰＳＩＺＥ［ＲＥＣＮ］は受信データＥＣＵＰＳＩＺＥ［１］〜ＥＣＵＰＳＩＺＥ［Ｎ］を保持する配列であり、ＲＥＣＥＣＵＰＲＯＧＤＡＴＡ［１］〜ＲＥＣＥＣＵＰＲＯＧＤＡＴＡ［ＲＥＮ］は受信データＥＣＵＰＲＯＧＤＡＴＡ［１］〜ＥＣＵＰＲＯＧＤＡＴＡ［Ｎ］を保持する配列である。【００５９】
メモリ蓄積完了ビット７１０は、メモリ蓄積処理で蓄積完了後にオンにセットされる変数である。【００６０】
書込み完了ビット７２０は、全ての更新プログラムと更新データを車載制御装置へ書込み完了した場合にセットされる変数である。【００６１】
７３０は、書込み開始指令の蓄積データ構成である。ＲＥＣＶＩＮとＲＥＣＣＭＤ  “ＷＲＩＴＥ”は、外部センタから書込み開始指令を受信した場合に、それぞれ受信データＶＩＮとＣＭＤ  “  ＷＲＩＴＥ  “を保持する変数である。【００６２】
以上述べた変数と配列は、図１の更新データＲＯＭ  １２５に格納される。従って、これらのデータはマイコン１２２の電源がオフになっても消えることは無く保持される。【００６３】
図８の中継装置のメモリ構成について説明する。内部ＲＯＭ  １２４には無線送受信機１２１から割り込み４１０経由で起動される無線送受信機からの受信処理プログラム８２１内にメモリ蓄積処理プログラムと割り込みまたは１０００ｍｓ周期で起動する書込み開始指令受信処理プログラムが格納されている。また書込み開始指令ボタンによる書込み開始指令処理プログラム８２２と無線送受信機への送信処理プログラム８２３も格納されている。また定数データ領域８３０には、当該車両を一意に特定できる車両Ｎｏや車両に搭載されている車載制御装置を一意に特定できるＥＣＵＩＤとＣＡＮＩＤ変換テーブルがある。本実施例では車載制御装置の更新プログラムを車載ネットワークＣＡＮへ特定の車載制御装置へ送信する場合、特定のＣＡＮＩＤを指定して送信している。すなわち車載制御装置は、特定のＣＡＮＩＤを指定された送信データだけを受信できる。【００６４】
このように、車載制御装置ごとに異なるＣＡＮＩＤを割り当てることで、中継装置と車載制御装置間で通信が可能となる。このため、車載制御装置を一意に特定するためのＥＣＵＩＤとＣＡＮＩＤの変換テーブルが定数データ領域８３０に格納されている。同様に中継装置にも専用のＣＡＮＩＤが割り当てられており、車載制御装置が中継装置へ送信データを送信する場合には、中継装置専用のＣＡＮＩＤを指定して送信すれば良い。また、当該車両に搭載されている車載制御装置台数Ｎｍａｘやウェイクアップ最大待ち時間、モード変更最大待ち時間も格納されている。ウェイクアップ最大待ち時間とは、イグニッションがオフ状態の場合に中継装置が車載制御装置を起動する際に、どのくらいの時間待てば全ての車載制御装置が立ち上がり、応答を車載ネットワークへ送信できるかを示す最大時間である。従って中継装置は、ウェイクアップパターンを車載ネットワークへ送信した後、ウェイクアップ最大待ち時間経過後に受信バッファを確認すれば必ず全ての車載制御装置からの応答を確認することができる。ウェイクアップは特定の車載制御装置だけを起動するのでなく、全ての車載制御装置を起動する。同様に、モード変更最大待ち時間も、中継装置が車載ネットワークへリプロモードなどのモード変更を送信した場合、どのくらいの時間待てば、指定した車載ネットワークへモード変更を完了したという意味の返信が返ってくるかを示す最大時間できる。モード変更の送信はＣＡＮＩＤを指定するので、特定の車載制御装置だけがモード変更される。次に更新データＲＯＭ  １２５は、外部センタから受信したデータを格納するためのフラッシュメモリである。図７の蓄積データ７００が格納される。ＲＡＭ  １２６は、内部ＲＯＭ  ８２０のプログラムが使用するワークエリアでありＩＧＮ状態や時計データ、シフトギア位置などのデータが読込まれ、ＳＲＡＭで構成されている。また電圧チェック結果やイグニッションの状態や時計のデータ、車載制御装置の書込み完了ビットＲＥＳＵＬＴＥＣＵ［１］〜ＲＥＳＵＬＴＥＣＵ［ＲＥＣ］がプログラム実行中に格納される。【００６５】
図８Ａは、車載制御装置のメモリ構成である。本実施例では、全ての車載制御装置のメモリ構成はシフトギア位置を除いて同一であるため、本図を用いて説明する。ＲＯＭ  １３３には更新プログラムと更新データを受信するウェイクアップ受信処理プログラム８Ａ０４とリプロモードコマンドを受信するリプロモード受信処理プログラム８Ａ０５と更新プログラムと更新データを８Ａ０３の領域へ書込む書込み処理プログラム８Ａ０６がＲＯＭ１３３のプログラム領域８Ａ０１に格納されている。定数データ領域８Ａ０２には、車載制御装置自身を一意に特定するための自ＥＣＵＩＤとＥＣＵＩＤと対を成すＣＡＮＩＤ変換データと、中継装置へ送信する際に使用する中継装置ＥＣＵＩＤとそのＣＡＮＩＤ変換データ、ウェイクアップ最大待ち時間、モード変更最大待ち時間が格納されている。８Ａ０４は、車載制御装置の動作モードを示す“車載制御装置のモード”変数である。動作モードには、制御動作を行う通常動作モードとプログラム更新処理を行う“リプロモード”の２種がある。電源オンやウェイクアップによる立上げ時に、“車載制御装置のモード”変数を参照して、その設定値に応じたモードへ遷移する。また“通常動作モード”中に “リプロモード”遷移要求があれば、遷移する。またその逆の遷移も可能である。ＲＡＭ  １３４には、イグニッションの状態などプログラム８Ａ０４、  ８Ａ０５、  ８Ａ０６が実行中に使用するワークエリアである。ただし、車載制御装置１４０だけがシフトギア位置を保持している。【００６６】
以上の構成を使用にして、本発明の請求項４〜７の処理概要を図９に示し、請求項１０〜１３の処理概要を図１０に示す。請求項１〜３、８〜９については上記請求項の説明の中で詳しく説明する。【００６７】
まず最初に、プログラム更新を発見した時点から更新処理を実施するまでの経緯を考察する。車載制御プログラムにバグや改良点が車両メーカで発見されると、更新プログラムと更新データを作成する。次に、車両の所有者に対して、販売店などを経由して不良の内容説明とその改善内容を文書で通知する。その後販売店は、対策を実施するために車両の所有者へ電話などでプログラム更新の承認を確認し、更新プログラムの書込みを実施している時間帯は車両を運転できないことを説明し、それを承知頂いた上で、車両のプログラム更新を行う都合の良い年月日の時間帯を聞いて、外部センタへその時間帯を連絡する。このように、車両の所有者に不便を感じさせないようにするには、車両の所有者に都合の良い日の時間帯にプログラム更新をすることが重要である。【００６８】
外部センタは、通知された時間帯に更新プログラムデータを所有者の車両へ書込むために、前記通知された時間帯以前に、前記所有者の車両の中継装置へ更新プログラムデータを送信し、蓄積しておく必要がある。以上の経緯が請求項４〜７に関するものであり、本発明の図９の処理フローで実現する。【００６９】
一方、更新プログラムデータが車載中継装置に蓄積されていれば、外部センタからの書込み開始指令を待つこと無く、運転者の都合の良いタイミングでプログラム更新を行いたいケースも考えられる。このケースが請求項１０〜１３に対応するもので図１０の処理フローで実現する。ただし、運転者が車両の所有者とは限らないので、所有者が時間帯を指定している場合は、時間帯の範囲外では書込みを抑止する必要がある。この抑止処理を実現する発明が請求項１２、１３のケースである。以下、詳細は省いた概要を図９と図１０で説明する。【００７０】
図９は外部センタの書込み開始指令による書込み処理概要である。【００７１】
外部センタと中継装置と車載制御装置の処理概要をそれぞれの時間軸９０１、  ９０２、  ９０３に沿って説明する。【００７２】
まず外部センタは、車両所有者と約束した予め決めらた時間帯より前の時刻に更新プログラムデータ９０４を中継装置へ送信する。中継装置は、イグニッションがオン状態であれば受信を行う。最初に中継装置の電源を確保するためにＰｏｗｅｒＫｅｅｐ信号をオン９０５し、更新データＲＯＭへ更新プログラムデータを蓄積する。次にメモリ蓄積完了ビットをオン９０６し、メモリ蓄積完了表示器を点灯９０７する。次に外部装置へメモリ蓄積完了通知９０８を行い、ＰｏｗｅｒＫｅｅｐ信号をオフ９０９を行う。以上の処理が完了した後に、請求項４、５では予め決められた第１の時間帯に外部装置は書込み開始指令９１０を中継装置へ送信する。また請求項６、７では現在時刻が既に受信した第２の時間帯であると判断した場合に、中継装置は、ＰｏｗｅｒＫｅｅｐ信号をオン９１１し、無負荷時と負荷接続時の電圧チェック処理２６００を行い、基準電圧以上であれば車載制御装置へウェイクアップパターンを送信９１２する。車載制御装置はウェイクアップパターンを受信すると電源がオンするのでプログラムを実行し、ＰｏｗｅｒＫｅｅｐ信号をオン９１４する。車載制御装置からウェイクアップ応答９１３を受信した後に、プログラム更新要求があった車載制御装置へリプロモード遷移要求９１５を送信し、車載制御装置からリプロモード応答９１６が返ってきたことを確認して、更新プログラムと更新データを分割して書き込み処理９１７〜９１８を繰り返し送信する。当該車載制御装置の更新プログラムと更新データを全て送信した後に書込み終了を送信９１９する。車載制御装置は書込み終了を受信すると、中継装置へ書込み完了応答９２０を送信した後にＰｏｗｅｒＫｅｅｐ信号をオフ９２１する。中継装置は、車載制御装置から書込み完了応答９２０が返ってきたら、当該車載制御装置の更新プログラムと更新データ処理は完了したので、車載制御装置の書込み完了ビットをオン９２２し、次に他の車載制御装置の更新プログラムデータがあれば、全ての更新プログラムと更新データを車載制御装置へ送信する処理９２３を繰り返す。その後、書込みが全ての車載制御装置で成功（ＯＫ）であれば書込み完了ビットをオン９２４し、書き込み完了表示器を点灯９２５し、メモリ蓄積完了ビットをオフ９２６し、メモリ蓄積完了表示器を消灯９２７して、書込み完了通知９２８を外部センタへ通知した後、ＰｏｗｅｒＫｅｅｐ信号をオフ９２９して終了する。本処理は、概要であり、車載制御装置に故障があった場合には書込み失敗するので書込み失敗を外部センタへ通知する必要があるが、以降の詳細処理フローにおいて説明する。【００７３】
次に、本発明の請求項１０〜１３の処理概要を図１０の書込みボタンによる書込み処理概要を用いて説明する。【００７４】
図１０は、外部センタと中継装置と車載制御装置の処理概要である。外部センタ、中継装置、車載制御装置それぞれの時間軸１００１、  １００２、  １００３に沿って説明する。【００７５】
まず外部センタは、車両所有者と約束した時間帯が予め決められていれば、時間帯より前の時刻に更新プログラムデータ１００４を中継装置へ送信する。中継装置は、イグニッションがオン状態であれば受信を行う。最初に中継装置の電源を確保するためにＰｏｗｅｒＫｅｅｐ信号をオン１００５し、更新データＲＯＭへ更新プログラムデータを蓄積する。次にメモリ蓄積完了ビットをオン１００６し、メモリ蓄積完了表示器を点灯１００７する。次に外部装置へメモリ蓄積完了通知１００８を行い、ＰｏｗｅｒＫｅｅｐ信号をオフ１００９を行う。以上の処理は、図９と同一であるが、以降の処理が異なる。まず運転者は、メモリ蓄積完了表示器が点灯していることを確認して、中継装置に接続されている書込み開始指令ボタンをオンする。もし、メモリ蓄積完了表示器が消灯状態で書込み開始指令ボタンを押しても、書込みは実行されない。次に中継装置は書込み開始指令ボタンが押されたことを確認した後、自身の電源を確保するために、ＰｏｗｅｒＫｅｅｐ信号をオン１０１１する。次に無負荷時と負荷接続時の電圧チェック処理２６００を行い、バッテリ電圧が基準電圧以上の場合に、プログラム更新要求があった車載制御装置へリプロモード遷移要求１０１２を送信する。車載制御装置は、リプロモードへ遷移した後に、中継装置へリプロモード応答１０１３を送信して、ＰｏｗｅｒＫｅｅｐ信号をオン１０１４する。中継装置は、車載制御装置からリプロモード応答１０１３が返ってきたことを確認して、更新プログラムと更新データを分割して書き込み処理１０１５〜１０１６を繰り返し送信する。当該車載制御装置の更新プログラムと更新データを全て送信した後に書込み終了通知を送信１０１７する。車載制御装置は、書込み終了通知１０１７を受信すると、リプロモードから通常動作モードへ変更した後に中継装置へ書込み完了応答１０１８を送信してＰｏｗｅｒＫｅｅｐ信号をオフ１０１９する。中継装置は、車載制御装置から書込み完了応答１０１８が返ってきたら、当該車載制御装置の更新プログラムと更新データ処理は完了したので、車載制御装置の書込み完了ビットをオン１０２０し、次に他の車載制御装置の更新プログラムデータがあれば、全ての更新プログラムと更新データを車載制御装置へ送信する処理１０２１を繰り返す。その後、書込みが全ての車載制御装置で成功（ＯＫ）であれば書込み完了ビットをオン１０２２し、書き込み完了表示器を点灯１０２３し、メモリ蓄積完了ビットをオフ１０２４し、メモリ蓄積完了表示器を消灯１０２５して、書込み完了通知１０２６を外部センタへ通知した後、ＰｏｗｅｒＫｅｅｐ信号をオフ１０２７して終了する。本処理は、概要であり、車載制御装置に故障があった場合には書込み失敗するので書込み失敗を外部センタへ通知する必要があるが、以降の詳細処理フローにおいて詳しく説明する。【００７６】
図１１は、中継装置のメモリ蓄積処理である。図９と図１０の共通の処理である。まず無線送受信機からの受信割り込み１１００がマイコンへ入力すると、本プログラムが起動する。最初に中継装置のＰｏｗｅｒＫｅｅｐ信号をオン１１０１し、次に受信データを更新データＲＯＭへ格納する処理１１０２を実行する。処理内容は図６のデータ６００を図７の蓄積データ７００へ変換して更新データＲＯＭヘ蓄積することである。詳細は、下記である。【００７７】
受信データ自車両ＮｏのＶＩＮを更新データＲＯＭの変数ＲＥＣＶＩＮへ書込み、
受信データコマンドのＣＭＤを更新データＲＯＭの変数ＲＥＣＣＭＤへ書込み、
受信データ第２の時間帯の開始時刻ＳＴ２を更新データＲＯＭの変数ＲＥＣＳＴ２へ書込み、
受信データ第２の時間帯の終了時刻ＥＴ２を更新データＲＯＭの変数ＲＥＣＥＴ２へ書込み、
受信データ更新プログラムデータの数Ｎを更新データＲＯＭの変数ＲＥＣＮへ書込み、
受信データ各受信データサイズＳＩＺＥ［１］〜ＳＩＺＥ［ＲＥＣＮ］を更新データＲＯＭの配列ＲＥＣＳＩＺＥ［１］〜ＲＥＣＳＩＺＥ［ＲＥＣＮ］へ書込み、
受信データ車載制御装置番号ＥＣＵＩＤ［１］〜ＥＣＵＩＤ［ＲＥＣＮ］を更新データＲＯＭの配列ＲＥＣＥＣＵＩＤ［１］〜ＲＥＣＥＣＵＩＤ［ＲＥＣＮ］へ書込み、
受信データの更新プログラムと更新データのバージョンＶＮＯ［１］〜ＶＮＯ［ＲＥＣＮ］を更新データＲＯＭの配列ＲＥＣＥＣＵＶＮＯ［１］〜ＲＥＣＥＣＵＶＮＯ［ＲＥＣＮ］へ書込み、
受信データの更新プログラムと更新データの書込み先頭アドレスＰＡＤＲ［１］〜ＰＡＤＲ［ＲＥＣＮ］を更新データＲＯＭの配列ＲＥＣＥＣＵＰＡＤＲ［１］〜ＲＥＣＥＣＵＰＡＤＲ［ＲＥＣＮ］へ書込み、
受信データの更新プログラムと更新データサイズＰＳＩＺＥ［１］〜ＰＳＩＺＥ［ＲＥＣＮ］を更新データＲＯＭの配列ＲＥＣＥＣＵＰＳＩＺＥ［１］〜ＲＥＣＥＣＵＰＳＩＺＥ［ＲＥＣＮ］へ書込み、
受信データの更新プログラムと更新データ本体ＰＲＯＧＤＡＴＡ［１］〜ＰＲＯＧＤＡＴＡ［ＲＥＣＮ］を更新データＲＯＭの配列ＲＥＣＥＣＵＰＲＯＧＤＡＴＡ［１］〜ＲＥＣＥＣＵＰＲＯＧＤＡＴＡ［ＲＥＣＮ］へ書込む。【００７８】
ここで、注意すべきことは、更新すべき車載制御装置番号はＲＥＣＥＣＵＩＤ［ｎ］、  ｎ＝１〜ＲＥＣＮに格納されること、車載制御装置のＲＯＭへ更新プログラムと更新データを書き込む先頭アドレスはＲＥＣＥＣＵＰＡＤＲ［ｎ］、  ｎ＝１〜ＲＥＣＮに格納
されることである。【００７９】
次に１１０３で受信したデータが自車両への送信データであるか判定するため、ＲＥＣＶＩＮと内部ＲＯＭ１２４の定数データ領域に格納されている車両Ｎｏが一致するかチェックする。もし一致しなければ、１１０９のＰｏｗｅｒＫｅｅｐ信号をオフして終了である。一致すれば当該車両への受信データなので、１１０４のＲＥＣＣＭＤが”  ＳＮＤＰＲＯＧ  “かチェックする。もし一致しなければ他のコマンドであるため、１４００の書込み開始指令処理を実行する。一致すれば受信データが更新プログラムデータであるため、１１０５の車両のイグニッションがオン状態であるかチェックする。もし一致しなければ次の外部センタからの送信まで待つため１１０９のＰｏｗｅｒＫｅｅｐ信号をオフして終了する。一致すれば１１０６のメモリ蓄積完了ビットをオンし、１１０７のメモリ蓄積完了表示器を点灯し、１１０８の外部センタへメモリ蓄積完了通知を行い、１１０９のＰｏｗｅｒＫｅｅｐ信号をオフして終了する。ここで外部センタへのメモリ蓄積完了通知は
、通知データを無線送受信機への送信処理プログラム８２３へ渡して実行される。【００８０】
以上で請求項４〜１３に係わるメモリ蓄積完了処理の詳細を説明した。
次に、予め決められた時間帯に外部センタから送信される書込み開始指令コマンドの送信データ構成を図６の６２０を用いて説明する。６２０の先頭のヘッダは送信開始を指示する情報であり、ＶＩＮは車両を一意に特定する車両番号である。ＣＭＤは書込み開始指令コマンドである。ＥＯＦは送信終了を指示する情報でる。ここでＣＭＤが”  ＳＮＤＰＲＯＧ”であれば受信データは更新プログラムデータを意味し、”  ＷＲＩＴＥ  “であれば受信データは書込み開始指令を意味する。ここでは書込み開始指令であるため、”ＷＲＩＴＥ”コマンドとなる。このように、”ＳＮＤＰＲＯＧ”コマンドと”ＷＲＩＴＥ”コマンドではＣＭＤ以降のデータが大きく異なる。【００８１】
次に図１２を用いて中継装置が書込み完了後に外部センタへ送信する書込み完了通知の送信データ構成を説明する。１２００のＣＥＮＴＥＲＩＤは外部センタを一意に特定するための外部センタの番号、ＣＭＤは書込み完了または未完了を意味するコマンド。”ＣＯＭＰＬＥＴＥ”であれば書込み完了であり、”ＩＮＣＯＭＰＬＥＴＥ”であれば書込み未完了の通知となる。ＶＩＮは車両を一意に特定するための車両番号である。【００８２】
図１３は中継装置の書込み開始指令の蓄積データ構成１３００である。図７の７３０と同一の構成が記載されている。ヘッダとＥＯＦを除いてＲＥＣＶＩＮとＲＥＣＣＭＤが更新データＲＯＭに保持される。図１３は請求項４、５の実現に必要であるが、請求項６、７では不要である。既に更新プログラムデータ受信時に第２の時間帯を受信済みだからである。【００８３】
次に外部センタから書込み開始指令を受信したケースの書込み処理を図１４〜図２１を用いて詳細に説明する。本ケースは請求項４〜７の実施例であるが請求項１〜３の発明の実施例も含んでいる。書込み開始指令は図１１の１４００の書込み開始指令受信処理への分岐または１０００ｍｓ周期起動で開始される。図１４に書込み開始指令受信処理の詳細を説明する。まず１４０１で中継装置の電源を確定するためＰｏｗｅｒＫｅｅｐ信号をオンに設定する。次に１４０２でＲＥＣＣＭＤが”ＷＲＩＴＥ”と一致するかチェックし、もし不一致ならば１４０７のＰｏｗｅｒＫｅｅｐ信号をオフにして終了する。もし一致すれば書き込み開始指令コマンドであるため、１４０３のメモリ蓄積完了ビットがオンかチェックする。もしオンでなければ１４０７のＰｏｗｅｒＫｅｅｐ信号をオフして終了する。もし一致すれば１４０４のイグニッションがオフかチェックする。もしオフでなければ１４０７のＰｏｗｅｒＫｅｅｐ信号をオフして終了する。もし一致すれば１４０５の時計の現在時刻を変数Ｔへセットし、１４０６の判定ＲＥＣＳＴ２  ＜  Ｔ  ＜  ＲＥＣＥＴ２を実行する。もしＮＯであれば、予め決められた時間帯では無いので、１４０７のＰｏｗｅｒＫｅｅｐ信号をオフにして終了する。もしＹＥＳであれば、無負荷時と負荷接続時の電圧チェック処理２６００を実行する。結果は変数ＲＥＳＵＬＴＶＯＬに格納されているので、１４０６Ａで変数ＲＥＳＵＬＴＶＯＬが”ＯＫ”であるかチェックし、もしＮＯならば１４０７のＰｏｗｅｒＫｅｅｐ信号をオフして終了する。もしＹＥＳならばバッテリ電圧が基準電圧以上であるので、１５００の書込み開始処理を実行する。最後に書込み開始処理が終了後に１４０７のＰｏｗｅｒＫｅｅｐ信号をオフにして終了する。このように、メモリ蓄積完了ビットがオンでかつイグニッションがオフでかつ無負荷時と負荷接続時の電圧チェック結果が基準電圧以上でかつ予め決められた時間帯の範囲内に書込み開始指令を受信した場合に書込みを開始し、その他の場合は書込みを実施しないことがわかる
。【００８４】
以上述べた処理フローは、請求項７の実施例であるが、請求項４の実施例としては１４０４、１４０５、１４０６を省略すれば良いだけである。請求項５の実施例は１４０５、１４０６を省略した処理フローであり、請求項６の実施例は１４０４を省略した処理フローである。【００８５】
次に１５００の書込み開始処理の詳細を図１５を用いて説明する。
中継装置は、最初に全ての車載制御装置を起動するため、１５０１の車載ネットワークのＣＡＮバスへウェイクアップパターンを送信する。次に１５０２の変数ＷＫＭＡＸＴＩＭＥへ定数ウェイクアップ最大待ち時間をセットし、１５０３の判定文ＷＫＭＡＸＴＩＭＥ  ＞  経過時間  の判定を行う。この判定文は、ウェイクアップパターンを受信した車載制御装置の電源がオンとなって立ち上がるまで一定時間待つためである。もし１５０３でＹＥＳであれば最大待ち時間以内であり、まだ立ち上がらずにいる車載制御装置が存在するかもしれないことを意味する。従って、ＮＯになるまで待ってから１５０４の処理を実行する。すなわち全ての車載制御装置が立ち上がっている状態で１５０４を実行している。図１５の処理の途中ではあるが、ウェイクアップパターンを受信した車載制御装置の動作を図１６の車載制御装置のウェイクアップ受信処理を用いて説明する。まずウェイクアップパターンを受信すると、前述したように、１６００の全ての車載制御装置の電源がオンとなる。次に１６０１のＰｏｗｅｒＫｅｅｐ信号をオンし、１６０２のＣＡＮバスからウェイクアップ受信確認をＷａｋｅＵｐ信号によって確認する。次に１６０３により中継装置専用のＣＡＮＩＤを送信バッファのＣＡＮＩＤフィールドへ設定し、”ＷＡＫＥＵＰ＿ＲＥＳＰＯＮＳＥ”を送信バッファのＣＭＤフィールドへ設定し、自分自身の車載制御装置ＥＣＵＩＤを送信バッファのＤＡＴＡフィールドへ設定する。次に１６０４で送信バッファの内容をＣＡＮバスへ送信し、終了する。このように、車載制御装置は、自身の立上げ完了を中継装置へＣＡＮバスを介して通知している。次に図１５の１５０４へ戻って説明を行う。すなわち全ての車載制御装置が立ち上がった後に車載制御装置をリプロモードにしなけらばならない。このため、まずＲＥＣＥＣＵＩＤ［１］の車載制御装置をリプロモードして書込みを行う処理を行う。最初に１５０４で変数ｎへ１をセットし、１５０５で送信バッファのＣＡＮＩＤフィールドへＲＥＣＥＣＵＩＤ［ｎ］専用ＣＡＮＩＤの設定と、送信バファのＣＭＤフィールドへリプロモードコマンドを意味する”ＲＥＰＲＯ＿ＭＯＤＥ”の設定と、送信バッファのＤＡＴＡフィールドへ中継装置専用のＥＣＵＩＤを設定し、送信バッファをＣＡＮバスへ送信する。次に１５０６では変数ＲＥＰＲＯＭＡＸＴＩＭＥへモード変更最大待ち時間を設定し、次の１５０７では車載制御装置番号ＲＥＣＥＣＵＩＤ［ｎ］からの応答を待つため、経過時間が最大時間を越えるまで待つ。超えた場合はＮＯとなるので、１５０８のＲＥＣＥＣＵ［ｎ］からの受信データを調べる処理を行う。ここで図１５の処理の説明の途中ではあるが、リプロモードを受信した車載制御装置番号ＲＥＣＥＣＵＩＤ［ｎ］の車載制御装置の動作を図１７のＲＥＣＥＣＵＩＤ［ｎ］のリプロモード受信処理を説明する。【００８６】
図１７は、ＲＥＣＥＣＵＩＤ［ｎ］のリプロモード受信処理である。１７０１でＰｏｗｅｒＫｅｅｐ信号をオンしている。既にウェイクアップ時にオンしているので何の効果も無いが、何度オンにしても影響は無い。次に１７０２では受信バッファのＣＡＮＩＤフィールドのデータを変数ＣＡＮＩＤへ設定し、受信バッファのＣＭＤフィールドのデータを変数ＣＭＡＮＤへ設定する。次に１７０３において変数ＣＭＡＮＤが”ＲＥＰＲＯ＿ＭＯＤＥ”か判定し、ＮＯならば終了し、ＹＥＳならば１７０４において受信バッファのＤＡＴＡフィールドのデータを変数ＤＡＴＡへ設定する。次に、１７０５において車載制御装置をリプロモードへ設定し、リプロモードに設定したことを中継装置へ通知するために１７０６において送信バッファのＣＡＮＩＤフィールドへ中継装置専用ＣＡＮＩＤを設定し、送信バッファのＣＭＤフィールドへリプロモード設定完了を意味する”ＲＥＰＲＯ＿ＲＥＳＰＯＮＳＥ”を設定し、送信バッファのＤＡＴＡフィールドへ車載制御装置自身のＥＣＵＩＤを設定する。次に１７０７で送信バッファをＣＡＮバスへ送信することで中継装置へリプロモード設定完了を通知している。【００８７】
以上で図１７の車載制御装置の説明を終了し、再び中継装置の図１５の１５０８の説明へ戻る。１５０８では、受信バッファのＣＡＮＩＤフィールドのデータを変数ＣＡＮＩＤへ設定し、受信バッファのＣＭＤフィールドのデータを変数ＣＭＤへ設定し、受信バッファのＤＡＴＡフィールドのデータを変数ＤＡＴＡへ設定している。次に１５０９において変数ＣＭＤが”ＲＥＰＲＯ＿ＲＥＳＰＯＮＳＥ”であるかチェックする。ここでＹＥＳであれば１８００においてＲＥＣＥＣＵＩＤ［ｎ］の車載制御装置へ更新プログラム送信処理を実行する。もしＮＯであればＲＥＣＥＣＵＩＤ［ｎ］の車載制御装置が異常であるため、１５１０の車載制御装置の書込み完了ビット配列ＲＥＳＵＬＴＥＣＵ［ｎ］へ”ＮＧ”を設定している。このような異常が１つでもあれば書込み開始指令は失敗したことになる。次に１５１１において変数ｎがＲＥＣＮと一致するかチェックし、不一致であれば１５１２においてｎをインクリメントして１５０の実行を繰り返す。
すなわち受信した全ての更新プログラムと更新データを該当する車載制御装置へ送信完了したかチェックし、１８００における送信処理が完了した場合に２１００の書込み完了処理を実行して終了する。【００８８】
次に１８００のＲＥＣＥＣＵＩＤ［ｎ］へ更新プログラム送信処理の詳細を図１８を用いて説明する。また２１００の書込み完了処理は、その後に説明する。【００８９】
図１８は、ＲＥＣＥＣＵＩＤ［ｎ］へ更新プログラム送信処理である。
中継装置がＲＥＣＥＣＵＩＤ［ｎ］の車載制御装置へ更新プログラムと更新データを４バイト単位で送信し、送信完了後に書込み完了結果を車載制御装置から受信してその結果を記憶する処理を行っている。
まず１８０１では変数ＣＭＭＡＮＤへコマンド”ＷＲＩＴＥ”を設定し、次の１８０２では変数ＥＣＵＩＤへＲＥＣＥＣＵＩＤ［ｎ］を設定し、変数ＳＮＤＰＡＤＲへＥＲＣＥＣＵＰＡＤＲ［ｎ］を設定し、変数ＰＳＩＺＥへＲＥＣＥＣＵＰＳＩＺＥ［ｎ］を設定し、変数ＰＲＯＧＤＡＴＡＡＤＲへＲＥＣＥＣＵＰＲＯＧＤＡＴＡ［ｎ］の先頭アドレスを設定し、変数ＳＮＤＰＤＡＴＡへＰＲＯＧＤＡＴＡＡＤＲから４バイトデータを設定し、変数ＳＮＤＳＩＺＥへ０を設定している。次に１８０３では変数ＣＡＮＩＤへ送信先の車載制御装置ＥＣＵＩＤ専用ＣＡＮＩＤを設定し、１８０４では送信バッファのＣＡＮＩＤフィールドへ変数ＣＡＮＩＤを設定し、送信バッファのＣＭＤフィールドへ変数ＣＭＭＡＮＤを設定し、送信バッファのＰＡＤＲフィールドへ変数ＳＮＤＰＡＤＲを設定し、送信バッファのＤＡＴＡフィールドへ変数ＳＮＤＰＤＡＴＡを設定している。次の１８０５では送信バッファの内容をＣＡＮバスへ送信している。以上の処理で更新プログラムと更新データの最初の書込みアドレスと更新プログラムと更新データの最初の４バイトデータを車載制御措置へ送信できた。次に１８０６では、更新プログラムと更新データの次の４バイトデータを送信するための準備を行っている。すなわち変数ＰＲＯＧＤＡＴＡＡＤＲを４インクリメントし、変数ＳＮＤＰＤＡＴＡへ変数ＰＲＯＧＤＡＴＡＡＤＲで示すアドレスから４バイトデータをセットし、変数ＳＮＤＰＡＤＲを４インクリメントし、変数ＳＮＤＳＩＺＥも４インクリメントしている。これにより、更新プログラムと更新データの次の４バイトデータと、書込みアドレスをそれぞれ設定できたことになる。次の１８０７では、更新プログラムと更新データを当該車載制御装置へ送信したかチェックするため、変数ＳＮＤＳＩＺＥと変数ＰＳＩＺＥが一致したかチェックしている。ＮＯであれば１８０４へ戻り送信処理を繰り返す。ＹＥＳであれば１８０８を実行し、変数ＣＭＭＡＮＤへ送信完了を意味する”ＥＮＤ”を設定し、送信バッファのＣＡＮＩＤフィールドへＥＣＵＩＤ専用のＣＡＮＩＤを設定し、送信バッファのＣＭＤフィールドへ変数ＣＭＭＡＮＤを設定し、送信バッファの内容をＣＡＮバスへ送信する。以上でＲＥＣＥＣＵＩＤ［ｎ］の車載制御装置へ更新プログラムと更新データを全て送信したことになるので、２０００のＲＥＣＥＣＵＩＤ［ｎ］の書込み完了処理を実行して終了する。図１８の処理は、図１５の１８００から実行されているので、図１５の１５１１からわかるように、全ての更新プログラムと更新データを送信している。【００９０】
以上中継装置から車載制御装置へ更新プログラムと更新データを送信する処理を説明したが、次に図１９を用いて、更新プログラムと更新データを受信する車載制御装置の書込み処理について説明する。またその後で２０００のＲＥＣＥＣＵＩＤ［ｎ］の書込み完了処理を説明する。【００９１】
図１９は、ＲＥＣＥＣＵＩＤ［ｎ］の書込み処理である。【００９２】
車載制御装置ＲＥＣＥＣＵＩＤ［ｎ］の書込み処理は、受信割り込みで起動される。
本プログラムは、図８Ａの車載制御装置の制御プログラム、データ格納エリア８Ａ０３領域へ更新プログラムと更新データを書込む処理を行うが、本領域はフラッシュメモリであるため、本来ならば最初に本領域に既に書込まれているプログラムとデータを消去してから書込む必要がある。しかし消去処理は本実施例では発明の本質とは無関係であることと簡単化のため、省略して説明する。１９０１では受信バッファのＣＡＮＩＤフィールドのデータを変数ＣＡＮＩＤへ設定し、受信バッファのＣＭＤフィールドのデータを変数ＣＭＡＮＤへ設定している。次に、１９０２では変数ＣＡＮＩＤと自車載制御装置のＣＡＮＩＤの一致チェックを行い、ＮＯならば他車載制御装置への送信データと判断し終了する。ＹＥＳなら１９０３において変数ＣＭＡＮＤが”ＷＲＩＴＥ”であるかチェックし、ＹＥＳなら書込みコマンドと判定し、１９０４において変数ＳＮＤＰＡＤＲへ受信バッファのＰＡＤＲフィールドのデータＳＮＤＰＡＤＲをセットし、変数ＳＮＤＰＤＡＴＡへ受信バッファのＤＡＴＡフィールドのデータＳＮＤＰＤＡＴＡをセットする。次の１９０５〜１９０７は、図８Ａの８Ａ０３の制御プログラム、データを書き換える処理である。まず１９０５において書込みアドレス設定レジスタＭＡＤＲへ変数ＳＮＤＰＡＤＲを設定し、１９０６にて書込みデータ設定レジスタＭＤＡＴＡへ変数ＳＮＤＰＤＡＴＡを設定し、１９０７においてコマンドレジスタＭＣＯＭヘ書込みコマンドＷＲＩＴＥを設定している。書込みの実行はＭＣＯＭレジスタへＷＲＩＴＥコマンドが設定された時点で開始されるので、更新プログラムと更新データの４バイトを保持する変数ＳＮＤＰＤＡＴＡが８Ａ０３の領域のアドレスＳＮＤＰＡＤＲへ書込まれたことになる。次に１９０８において書込みが成功したかチェックするため状態レジスタＲＯＭＳｔａｔｕｓにエラーＥＲＲＯＲを検出したかを判定している。ＹＥＳであれば４バイトの書込みは失敗したことを意味するので、１９０９で変数ＥＲＲＳｔａｔｕｓへ”ＮＧ”をセットして終了する。もしＮＯならば４バイトの書込みは成功したので終了する。以上述べた処理は４バイトの書込み処理であるが、本処理は図１８の１８０５において送信されたデータに基づいて行われた処理である。図１８では１８０７で更新プログラムと更新データの全てを送信する処理を繰り返すので、本処理も同様に受信する度に繰返すことになる。一方、１９０３においてＮＯである場合は、更新プログラムと更新データ全てを書込み完了した後に中継装置から送信されるコマンド”ＥＮＤ”であるかチェックし、当該制御装置の書込み完了を中継装置へ通知する処理である。まず１９１０において変数ＣＭＡＮＤが”ＥＮＤ”であるかチェックし、ＮＯならば終了とする。ＹＥＳならば１９１１にて変数ＣＡＮＩＤへ中継装置専用ＣＡＮＩＤをセットし、１９１２にて変数ＣＭＭＡＮＤへ”ＥＮＤ”の応答を意味する”ＲＥＳＰＯＮＳＥ”をセットし、１９１３では変数ＳＮＤＰＤＡＴＡへ変数ＥＲＲＳｔａｔｕｓをセットし、１９１４において送信バッファのＣＡＮＩＤフィールドへ変数ＣＡＮＩＤをセットし、送信バッファのＣＭＤフィールドへ変数ＣＭＭＡＮＤをセットし、送信バッファのＤＡＴＡフィールドへ変数ＳＮＤＰＤＡＴＡをセットし、次の１９１５において送信バッファの内容をＣＡＮバスへ送信している。以上で、４バイトの書込み処理とその結果を中継装置へ通知を終了したので、次の１９１６では車載制御装置の動作モードをリプロモードから通常動作モードへ変更し、１９１７でＰｏｗｅｒＫｅｅｐ信号をオフして終了している。【００９３】
次に図１８から実行される２０００のＲＥＣＥＣＵＩＤ［ｎ］の書込み完了処理について詳細に説明する。【００９４】
図２０は、ＲＥＣＥＣＵＩＤ［ｎ］の書込み完了処理である。２０１０では“ＣＡＮバスから受信有り？”をチェックしている。これは車載制御装置ＲＥＣＥＣＵＩＤ［ｎ］から”ＲＥＳＰＯＮＳＥ”応答の受信をチェックしている処理である。ＹＥＳであれば２０２０において変数ＲＥＳＣＡＮＩＤへ受信バッファのＣＡＮＩＤフィールドのデータＣＡＮＩＤを設定し、変数ＲＥＳＣＭＤへ受信バッファのＣＭＤフィールドのデータＣＭＭＡＮＤを設定し、変数ＲＥＳＵＬＴへ受信バッファのＤＡＴＡフィールドのデータＳＮＤＰＤＡＴＡを設定する。次に２０３０では変数ＣＡＮＩＤが中継装置専用ＣＡＮＩＤと一致するかチェックし、ＮＯであれば中継装置の受信データでは無いので終了する。もしＹＥＳであれば、次の２０４０において変数ＲＥＳＣＭＤがコマンド”ＲＥＳＰＯＮＳＥ”と一致するかチェックし、ＮＯならば終了する。もしＹＥＳならば変数ＲＥＳＵＬＴには書込み完了結果が格納されているので、次の２０５０でＲＥＣＥＣＵＩＤの書込み完了ビット配列ＲＥＳＵＬＴＥＣＵ［ｎ］へ変数ＲＥＳＵＬＴを格納して終了する。以上で、ＲＥＣＥＣＵＩＤ［ｎ］の更新プログラムと更新データ書込み完了結果がＲＥＳＵＬＴＥＣＵ［ｎ］に格納された。【００９５】
処理全体構成を振り返って見れば分かるように、書込み開始は図１４の処理から開始され、書込み開始条件が成立すると、図１５の書込み処理が実行され、ここで全ての更新プログラムと更新データをその車載制御装置へ書込む処理を呼び出す処理を繰返している。この繰返しの中に図１８のＲＥＣＥＣＵＩＤ［ｎ］へ更新プログラム送信処理が存在し、さらに図１８の処理の中で図２０のＲＥＣＥＣＵＩＤ［ｎ］の書込み完了処理が実行されている。従って、図２０のＲＥＣＥＣＵＩＤ［ｎ］の書込み完了処理は、更新プログラムと更新データに対応する車載制御装置の全てに対して実行されたことになる。【００９６】
次に図１５において、全ての更新プログラムと更新データを対応する車載制御装置へ書込み完了した後に、実行される２１００の書込み完了処理を図２１を用いて説明する。【００９７】
図２１は、書込み完了処理である。２１０１では変数ｎへ１をセットし、２１０２でＲＥＣＥＣＵＩＤ［ｎ］の車載制御装置の書込み完了ビットＲＥＳＵＬＴＥＣＵ［ｎ］が”ＯＫ”かチェックしている。ＮＯであれば書込み異常が発生したことを意味するので２１１２において図７に記載の書込み完了ビットをオフに設定し、２１１３で書込み完了表示器を消灯し、２１１４で外部センタへ書込み失敗を意味する書込み未完了通知を行い、最後に２１１５で中継装置のＰｏｗｅｒＫｅｅｐ信号をオフにして終了する。一方、２１０２においてＹＥＳであれば変数ｎがＲＥＣＮと一致したかチェックし、ＮＯならば変数ｎをインクリメントして２１０２を繰り返し実行する。ＹＥＳであれば、全ての書込み処理の結果が”ＯＫ”であることを意味するので、２１０５において書込み完了ビットをオンに設定し、２１０６において書込み完了表示器を点灯し、２１０７において外部センタへ正常に書込み完了が終了したことを意味する書込み完了通知を行い、２１０８において全ての処理が終了したのでメモリ蓄積完了ビットをオフに設定し、２１０９においてメモリ蓄積完了表示器を消灯し、２１１０で中継装置のＰｏｗｅｒＫｅｅｐ信号をオフにして終了する。【００９８】
次に車両に搭載された書込み開始指令ボタンにより書込み開始を実現するケースの実施例を詳細に説明する。本ケースは、請求項１０〜１３に関するものである。請求項１〜３の実施例も含んでいる。【００９９】
本実施例は、図１０の書込みボタンによる書込み処理概要の詳細な処理動作を説明する。ただし、既に図１１の中継装置のメモリ蓄積完了処理は、詳細に説明したので、図１０の１０１０以降の処理について説明する。【０１００】
図２２は、書込み開始指令ボタンによる書込み開始指令処理である。本処理プログラム２２００は５００ｍｓ毎に起動するプログラムである。本プログラムが起動すると、２２０１において書込み開始指令ボタンがオンであるかチェックし、ＮＯであれば終了する。もしＹＥＳならば２２０２のメモリ蓄積完了ビットがオンかチェックし、ＮＯであれば終了する。もしＹＥＳならば２２０３のイグニッションがオンかチェックし、ＮＯであれば終了する。もしＹＥＳならば２２０４のシフトギア位置がパーキング位置であるかチェックし、ＮＯであれば終了する。イグニッションがオンであれば車両が走行中である可能性があるため、シフトギア位置がパーキング位置であることで車両が停止していることを確認している。もしＹＥＳであれば時計から現在時刻を得て、２２０５において変数Ｔへ現在時刻をセットする。次に２２０６の判定文ＲＥＣＳＴ２  ＜  Ｔ  ＜  ＲＥＣＥＴ２により第２の時間帯に書込み開始指令ボタンが押されたかチェックしている。ＮＯであれば書込みを行わずに終了する。もしＹＥＳならば無負荷時と負荷接続時の電圧チェック処理２６００を行い、その結果２２０６Ａで変数ＲＥＳＵＬＴＶＯＬが”ＯＫ”であるかチェックし、ＹＥＳなら２３００のボタンによる書込み開始処理を実行して終了する。ＮＯなら何もせず終了する。ここで変数ＲＥＳＵＬＴＶＯＬは、電圧チェック処理にて、無負荷時と負荷接続時のバッテリ電圧が基準電圧以上であれば”ＯＫ”がセットされ、基準電圧以下ならば”ＮＧ”がセットされている。詳しくは図２６で説明する。【０１０１】
以上述べた処理は、請求項１３の実施例である。しかし請求項１０の実施例としては２２０３、２２０４、２２０５、２２０６を省略した処理フローである。請求項１１の実施例としては２２０５、２２０６を省略した処理フローであり、請求項１２の実施例としては２２０３、２２０４を省略した処理フローである。【０１０２】
図２６は、電圧チェック処理である。【０１０３】
最初に無負荷時のバッテリ電圧チェックを行い、次に負荷接続時のバッテリ電圧チェックを行っている。最初に２６０１でリレー回路制御信号３８４へオフを出力する。この結果バッテリ電源線１７３に負荷３８１は接続されず無負荷時の状態になる。次に２６０２で基準電圧Ｒｅｆ信号３８６へ第１の基準電圧を出力し、次に２６０３で電圧観測パルス信号３８９をオンする。２６０４にて経過時間が第１の規定時間以上かチェックし、ＮＯならば２６０３を繰返し実行する。ＹＥＳならば２６０５にて電圧観測パルス信号３８９をオフし、２６０６で変数ＲＥＳＵＬＴＶＯＬ＿１へフリップフロップ回路出力信号３９０をセットする。【０１０４】
以上で無負荷時のバッテリ電圧が第１の基準電圧以上であるか、その結果が変数ＲＥＳＵＬＴＶＯＬ＿１にセットされたことになる。
次に負荷接続時のバッテリ電圧チェックを行う。２６０７でリレー回路制御信号３８４をオンする。これによりバッテリ電源線１７３と負荷３８１は接続された。次に２６０８で基準電圧Ｒｅｆ信号３８６へ第２の基準電圧をセットし、２６０９で電圧観測パルス信号３８９をオンする。次の２６１０で経過時間が第２の規定時間以上かチェックし、ＮＯならば２６０９を繰返す。ＹＥＳならば、２６１１で電圧観測パルス信号３８９をオフし、２６１２で変数ＲＥＳＵＬＴＶＯＬ＿２へプリップフロップ回路出力信号３９０をセットする。【０１０５】
以上で負荷接続時のバッテリ電圧が第２の基準電圧以上であるか、その結果が変数ＲＥＳＵＬＴＶＯＬ＿２にセットされたことになる。
次に２６１３で変数ＲＥＳＵＬＶＯＬ＿１または変数ＲＥＳＵＬＶＯＬ＿２をＯＲしてその結果が１であるかチェックしている。ＮＯならば２６１５で変数ＲＥＳＵＬＴＶＯＬへ”ＮＧ”をセットし、２６１６でバッテリ電圧異常表示器１８８を点灯して終了する。もしＹＥＳならば２６１４で変数ＲＥＳＵＬＴＶＯＬへ”ＯＫ”をセットし、２６１７でバッテリ電圧正常表示器１９０を点灯して終了する。【０１０６】
以上で無負荷時と負荷接続時の電圧チェック処理の説明を終了する。【０１０７】
次に図２３のボタンによる書込み開始処理を詳細に説明する。
２３０１において変数ｎへ１をセットし、２３０２において送信バッファのＣＡＮＩＤフィールドへＲＥＣＥＣＵＩＤ［ｎ］専用のＣＡＮＩＤをセットし、送信バッファのＣＭＤフィールドへリプロモードコマンド”ＲＥＰＲＯ＿ＭＯＤＥ”をセット、送信バッファのＤＡＴＡフィールドへ中継装置のＥＣＵＩＤをセットし、送信バッファの内容をＣＡＮバスへ送信している。以上の処理は、イグニッションがオンであるため車載制御装置の電源はオンであるので、中継装置はウェイクアップパターンを送信せずに、リプロモード遷移要求コマンド”ＲＥＰＲＯ＿ＭＯＤＥ”を送信している。次に２３０３において変数ＲＥＰＲＯＭＡＸＴＩＭＥへモード変更最大待ち時間をセットし、２３０４にてＲＥＰＲＯＭＡＸＴＩＭＥ時間が経過するまで待つ処理を行っている。経過した場合はＮＯとなり、２３０５において変数ＣＡＮＩＤへ受信バッファのＣＡＮＩＤフィールドのデータＣＡＮＩＤをセットし、変数ＣＭＤへ受信バッファのＣＭＤフィールドのデータＣＭＤをセットし、変数ＤＡＴＡへ受信バッファのＤＡＴＡフィールドのデータＤＡＴＡをセットしている。次に、２３０６において変数ＣＭＤが”ＲＥＰＲＯ＿ＲＥＳＰＯＮＳＥ”と一致するかチェックし、ＮＯならば異常と判定して２３０７のＲＥＳＵＬＴＥＣＵ［ｎ］へ”ＮＧ”を設定する。もしＹＥＳならば１８００の“ＲＥＣＥＣＵＩＤ［ｎ］へ更新プログラム送信処理”を実行し、２３０８の変数ｎがＲＥＣＮと一致したかチェックする。ＮＯであれば、全ての更新プログラムと更新データを送信していないので、２３０９において変数ｎをインクリメントして２３０２を繰返し実行する。もし２３０８においてＹＥＳであれば２１００の書込み完了処理を実行して終了する。以上述べた処理２３０１〜２３１０は、図１５の１５０４〜１５１３と全く同一である。従って１８００の“ＲＥＣＥＣＵＩＤ［ｎ］へ更新プログラム送信処理”と２１００の書込み完了処理は、再度説明する必要は無いので省略する。【０１０８】
図２７はバッテリ電圧チェック回路を内蔵したバッテリ電圧チェック装置である。バッテリ電圧チェック回路は、必ずしも中継装置だけに具備する必要は無い。本構成は、バッテリ電圧チェック回路を内蔵したバッテリ電圧チェック装置を車載ネットワークへ接続し、更新プログラムと更新データを書込む前にバッテリ電圧チェック装置から電圧チェック結果の信号を車載ネットワークを介して取得することで書込み可否判断が可能となる。図２７の２７００はバッテリ電圧チェック装置であり、２７０１はマイコン、２７０２は車載LAN通信部、２７０３はROM、２７０４はRAMであり、173はバッテリ電源線、１２９はバッテリ電圧チェック回路である。バッテリ電圧チェック装置は、一定周期ごとにバッテリ172の電圧を電源線173からバッテリ電圧チェック回路１２９を用いて電圧を監視し、その結果を車載ネットワークを介して中継装置１２０へ通知する。【０１０９】
以上、請求項４〜７の実施例と、請求項１０〜１３の実施例の詳細を説明した。また請求項１〜３、８〜９の実施例も詳細説明の中で説明した。【０１１０】
請求項１４の実施例は、請求項１の実施例において更新プログラムデータの代わりに更新地図データとして扱えば実現できるので詳細な説明は省略する。【０１１１】
請求項１５の実施例は、請求項１の実施例において中継装置には内蔵したバッテリ電圧チェック回路が無く、バッテリ電圧チェック装置がバッテリ電圧チェック回路を内蔵し、車載ネットワークを介して中継装置へバッテリ電圧チェック結果の信号を通知している点が異なるだけなので詳細な説明は省略する。【０１１２】
以上、本発明の一実施例を説明したが、本発明によれば、車両に搭載された中継装置は、車両走行中などバッテリ充電状態のイグニッションがオン状態において外部のセンタから送信された更新プログラムデータを中継装置が受信できる。さらに中継装置は、走行に係わる車載制御装置とは無関係であり、運転者が不便を感じること無く更新プログラムデータを安全に蓄積できる。また更新プログラムとデータの書込み処理は、運転者が車両に乗車していないケースでは、車両が自宅または他の駐車場に駐車している場合でも、あるいは真夜中であってもイグニッションがオフ状態であっても、無負荷時と負荷接続時のバッテリ電圧チェックを行うことによって車両所有者の約束の時間帯に車載制御装置へ更新プログラムと更新データを安全に書込むことができる。また運転者が車両に乗車しているケースでは、運転者の都合の良い時間に、イグニッションをオン状態に設定し、車両のシフトギア位置をパーキングに設定した後に書込み開始指令ボタンを押すことによってまず無負荷時と負荷接続時のバッテリ電圧チェックを行い、その結果バッテリ電圧が基準電圧以上であれば、安全に書込みを実行し、さらに書込み時刻が第２の時間帯の範囲内かチェックすることで車両所有者との約束の時間帯に書込みを実行できる。【０１１３】
これにより更新プログラムと更新データを安全かつ運転者に不便を感じさせること無く、車載制御装置へ書込むことができる。
【符号の説明】
【０１１４】
１２０・・・中継装置
１３０，１４０，１５０・・・車載制御装置
１２９・・・電圧チェック回路
１６０・・・車載ネットワーク
２７００・・・バッテリ電圧チェック装置
【図１】
2015194406.tif 000003
【図２】
2015194406.tif 000004
【図３】
2015194406.tif 000005
【図４】
2015194406.tif 000006
【図５】
2015194406.tif 000007
【図６】
2015194406.tif 000008
【図７】
2015194406.tif 000009
【図８】
2015194406.tif 000010
【図８Ａ】
2015194406.tif 000011
【図９】
2015194406.tif 000012
【図１０】
2015194406.tif 000013
【図１１】
2015194406.tif 000014
【図１２】
2015194406.tif 000015
【図１３】
2015194406.tif 000016
【図１４】
2015194406.tif 000017
【図１５】
2015194406.tif 000018
【図１６】
2015194406.tif 000019
【図１７】
2015194406.tif 000020
【図１８】
2015194406.tif 000021
【図１９】
2015194406.tif 000022
【図２０】
2015194406.tif 000023
【図２１】
2015194406.tif 000024
【図２２】
2015194406.tif 000025
【図２３】
2015194406.tif 000026
【図２４】
2015194406.tif 000027
【図２５】
2015194406.tif 000028
【図２６】
2015194406.tif 000029
【図２７】
2015194406.tif 000030
【国際調査報告】
2015194406.tif 000031
2015194406.tif 000032