(57)【要約】【課題】  車両コンピュータシステムのプログラムをオンボード状態で書き換えるシステムにおいて、信頼性の高いプログラム書き換えを確実に実現する。【解決手段】  車両に搭載された車両コンピュータシステムと車両外のセンタとからなり、車両コンピュータシステムがメモリ内のプログラムを上記センタから送信されてきたプログラムに書き換えるように構成されたプログラム書き換えシステムにおいて、車両コンピュータシステムは、プログラムの書き換えを実施する前に、車両の状態をプログラムの書き換えに適した状態に設定するための処理（Ｓ６１５〜Ｓ６３０）を行う。例えば、プログラム書き換えに関係のない機器の作動を禁止する。そして、車両コンピュータシステムは、その設定処理の完了後にプログラムの書き換えを実施する。このため、人による作業に頼ることなく、信頼性の高いプログラム書き換えを実現できる。【選択図】  図１２
2006082649.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載されたコンピュータシステム（以下、車両コンピュータシステムという）と、その車両コンピュータシステムへ書き換え対象のプログラムを送信する車両外のプログラム供給手段とからなり、前記車両コンピュータシステムが、メモリ内のプログラムを前記プログラム供給手段から送信されてきたプログラムに書き換えるように構成されたプログラム書き換えシステムにおいて、
前記車両コンピュータシステムがプログラムの書き換えを実施する前に、前記車両の状態をプログラムの書き換えに適した状態に設定するための設定処理を行う状態設定手段を備え、
前記車両コンピュータシステムは、前記状態設定手段による設定処理の完了後に、プログラムの書き換えを実施するように構成されていること、
を特徴とするプログラム書き換えシステム。
【請求項２】
請求項１に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、前記設定処理として、特定の機器が作動するのを禁止すること、
を特徴とするプログラム書き換えシステム。
【請求項３】
請求項２に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、前記設定処理として、前記特定の機器への電力供給を遮断すること、
を特徴とするプログラム書き換えシステム。
【請求項４】
請求項１に記載のプログラム書き換えシステムにおいて、
前記車両コンピュータシステムは複数のコンピュータを備えており、
前記状態設定手段は、前記設定処理として、プログラムの書き換えに関連するコンピュータには電力を供給し、プログラムの書き換えに関連しない少なくとも１つ以上のコンピュータへの電力供給は遮断すること、
を特徴とするプログラム書き換えシステム。
【請求項５】
請求項１に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、前記設定処理として、前記車両の電源スイッチの操作を無効にすること、
を特徴とするプログラム書き換えシステム。
【請求項６】
請求項１に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、前記設定処理として、特定の機器を作動させるための操作を無効にすること、
を特徴とするプログラム書き換えシステム。
【請求項７】
請求項６に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、エンジン始動用のスタータモータを作動させる操作と、ワイヤレスによりドアロックモータを作動させる操作と、パワーウィンドウを作動させる操作と、ライトを点灯させる操作と、ワイパーを作動させる操作と、ウィンドウウォッシャモータを作動させる操作とのうちの、少なくとも１つを無効にすること、
を特徴とするプログラム書き換えシステム。
【請求項８】
請求項１ないし請求項７の何れか１項に記載のプログラム書き換えシステムにおいて、
前記車両コンピュータシステムは、前記プログラム供給手段と通信線を介して通信可能に接続されるように構成されていること、
を特徴とするプログラム書き換えシステム。
【請求項９】
請求項１ないし請求項７の何れか１項に記載のプログラム書き換えシステムにおいて、
前記車両コンピュータシステムは、前記プログラム供給手段と無線で通信するように構成されていること、
を特徴とするプログラム書き換えシステム。
【請求項１０】
請求項９に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、前記車両の状態を、その車両のドアロック機能が正常に作動する範囲内で設定すること、
を特徴とするプログラム書き換えシステム。
【請求項１１】
請求項９に記載のプログラム書き換えシステムにおいて、
前記状態設定手段は、前記車両の状態を、その車両への不正行為を検知して警報するセキュリティ機能が正常に作動する範囲内で設定すること、
を特徴とするプログラム書き換えシステム。
【請求項１２】
請求項１ないし請求項１１の何れか１項に記載のプログラム書き換えシステムにおいて、
前記状態設定手段の設定処理によって作動しなくなる機能を、使用者又は作業者に通知する非作動機能通知手段を備えていること、
を特徴とするプログラム書き換えシステム。
【請求項１３】
請求項１ないし請求項１２の何れか１項に記載のプログラム書き換えシステムにおいて、
前記状態設定手段が前記設定処理を完了させることができない場合に、そのことを使用者又は作業者に通知する設定不成功通知手段を備えていること、
を特徴とするプログラム書き換えシステム。
【請求項１４】
請求項１ないし請求項１３の何れか１項に記載のプログラム書き換えシステムにおいて、
前記状態設定手段が前記設定処理を開始する前に、前記車両の状態がプログラムの書き換えに不適切な状態であるか否かを判定する状態判定手段を備えると共に、
前記車両コンピュータシステムは、前記状態判定手段により前記車両の状態がプログラムの書き換えに不適切な状態であると判定されたならば、プログラムの書き換えを中止するように構成されていること、
を特徴とするプログラム書き換えシステム。
【請求項１５】
請求項１４に記載のプログラム書き換えシステムにおいて、
前記状態判定手段は、
前記車両に搭載されたバッテリの電圧と、そのバッテリの劣化状態と、プログラム書き換え対象のコンピュータ又は該コンピュータが搭載されたユニットに供給されている電源電圧と、前記車両の外気温度と、前記車両の室内温度と、前記車両のエンジンが停止してからの経過時間と、前記車両のイグニッションキーシリンダにおけるキーの操作位置と、前記車両の現在位置と、前記車両が存在する場所での有事情報とのうちの、少なくとも１つに基づいて、前記車両の状態がプログラムの書き換えに不適切な状態であるか否かを判定すること、
を特徴とするプログラム書き換えシステム。
【請求項１６】
車両に搭載されたコンピュータシステム（以下、車両コンピュータシステムという）と、その車両コンピュータシステムへ書き換え対象のプログラムを送信する車両外のプログラム供給手段とからなり、前記車両コンピュータシステムが、メモリ内のプログラムを前記プログラム供給手段から送信されてきたプログラムに書き換えるように構成されたプログラム書き換えシステムにおいて、
前記車両コンピュータシステムがプログラムの書き換えを実施する前に、前記車両の外気温度と、前記車両の室内温度と、前記車両のエンジンが停止してからの経過時間と、前記車両の現在位置と、前記車両が存在する場所での有事情報とのうちの、少なくとも１つに基づいて、前記車両の状態がプログラムの書き換えに不適切な状態であるか否かを判定する状態判定手段を備えると共に、
前記車両コンピュータシステムは、前記状態判定手段により前記車両の状態がプログラムの書き換えに不適切な状態であると判定されたならば、プログラムの書き換えを中止するように構成されていること、
を特徴とするプログラム書き換えシステム。
【請求項１７】
請求項１４ないし請求項１６の何れか１項に記載のプログラム書き換えシステムにおいて、
前記状態判定手段により前記車両の状態がプログラムの書き換えに不適切な状態であると判定された場合に、そのことを使用者又は作業者に通知する不適状態通知手段を備えていること、
を特徴とするプログラム書き換えシステム。
【請求項１８】
請求項１ないし請求項１７の何れか１項に記載のプログラム書き換えシステムにおいて、
前記車両コンピュータシステムは複数のコンピュータを備えており、
更に、当該プログラム書き換えシステムには、プログラム書き換え対象のコンピュータが前記複数のコンピュータのうちの何れであるかを他のコンピュータに通知する書換対象通知手段が備えられていること、
を特徴とするプログラム書き換えシステム。
【請求項１９】
請求項１ないし請求項１８の何れか１項に記載のプログラム書き換えシステムにおいて、
前記車両コンピュータシステムがプログラムの書き換えを正常に完了した場合に、そのことを使用者又は作業者に通知する正常完了通知手段を備えていること、
を特徴とするプログラム書き換えシステム。
【請求項２０】
請求項１ないし請求項１９の何れか１項に記載のプログラム書き換えシステムにおいて、
前記車両コンピュータシステムがプログラムの書き換えを正常に完了しなかった場合に、そのことを使用者又は作業者に通知する書換不成功通知手段を備えていること、
を特徴とするプログラム書き換えシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載されたコンピュータシステムのプログラムを書き換える技術に関するものである。
【背景技術】
【０００２】
従来より、車両においては、その車両に搭載されたコンピュータシステム（以下、車両コンピュータシステムという）のプログラムを、そのプログラムが格納されたメモリが電子装置に実装されたままのオンボード状態で書き換えることが実施されている（例えば、特許文献１，２，３参照）。
【０００３】
そして、このようなオンボード状態でのプログラム書き換えを確実に行うためには、一定範囲の温度環境や電圧環境などの条件を満たす必要がある。
つまり、プログラム書き換えが保証される温度や電圧の条件が満たされていない状態でプログラムの書き換えを行った場合、プログラム書き換えを正常に行うことができない可能性がある。そして、プログラムの書き換えに失敗した場合には、コンピュータが機能しなくなり、車載ユニットを新たな製品に交換する必要が生じてしまう。また、プログラム書き換えが保証される温度や電圧の条件が満たされていない状態でプログラムの書き換えを行った場合、一時的にプログラム書き換えが正常に完了できたかのように振舞っても、時間が経過するとコンピュータが正常に機能しなくなる可能性もある。
【０００４】
このため、従来より、工場やディーラなどでプログラム書き換えを実施する際には、作業者が、温度や電圧の条件を満たすべく、例えば以下のような設定作業を行うようになっている。
【０００５】
即ち、車両動作から一定時間以上経過させる、ボンネットを開けておく、バッテリ電圧をチェックする、消費電流の大きい機器へ電力を供給する経路のヒューズを抜く、予め決められた操作以外の操作はしない、といった作業である。
【０００６】
ここで、こうした設定作業は、時間がかかるばかりではなく、その作業内容も複雑となっている。しかも、上記の設定作業は、プログラム書き換えの対象となるコンピュータの種類によっても異なり、作業を益々複雑にする要因となっている。更に、同様の機能を有するコンピュータであったとしても、ヒューズの取り付け位置、取外し対象となるヒューズの数及び種類、車両を放置させる時間、バッテリ電圧といった内容は、車種やグレード毎に異なるため、上記の設定作業を一層複雑化させている。
【０００７】
このため、信頼性の高いプログラム書き換えを実現するために、上記の設定作業を全て確実に実施するには、十分に経験のある作業者のスキルと、確認のための十分な作業時間が必要であった。
【０００８】
また、車両コンピュータシステムのプログラムを書き換える書き換えシステムの形態としては、車両コンピュータシステムに書き換え対象のプログラムを供給するプログラム供給装置が、車両コンピュータシステムとコネクタにより通信線で接続される有線通信タイプのもの（例えば、特許文献１参照）と、そのプログラム供給装置と車両コンピュータシステムとが無線通信で接続される無線通信タイプのもの（例えば、特許文献２，３参照）とがある。
【０００９】
そして、有線通信タイプの書き換えシステムでは、前述したように、工場やディーラなどにおいて、作業者が、確実なプログラム書き換えを保証するための複雑な設定作業を行うこととなるが、無線通信タイプの書き換えシステムでは、ディーラや工場といった特定の場所以外でプログラム書き換えが実施されるケースが想定され、その場合には、経験のある作業者は不在となる。このため、無線通信タイプの書き換えシステムにおいて、車両コンピュータシステムのプログラム書き換えを実施する場合、プログラム書き換えの保証に必要な条件を整えることは一層困難になる。
【００１０】
また、例えば特許文献２には、プログラムの書き換え前又は書き換え中に、バッテリ電圧が所定値以下になったことや、キースイッチがオンされたことや、スタータスイッチがオンされたことを判定した場合に、プログラムの書き換えを中止することが記載されている。
【特許文献１】特開２００１−１２３８７４号公報
【特許文献２】特開２００４−２８０００号公報
【特許文献３】特開２０００−２０７２１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記特許文献２には、車両の状態をプログラムの書き換えに適した状態へと積極的に設定しようとする思想はなく、車両コンピュータシステムのプログラムを確実に書き換えるためには、やはり、作業者に複雑な設定作業を強いることとなる。また、無線通信タイプの書き換えシステムの場合には、プログラム書き換えの保証に必要な車両状態に設定することが困難になる。
【００１２】
本発明は、こうした問題に鑑みなされたものであり、信頼性の高いプログラム書き換えを確実に実現可能なプログラム書き換えシステムの提供を目的としている。
【課題を解決するための手段】
【００１３】
上記目的を達成するためになされた請求項１に記載のプログラム書き換えシステムは、車両コンピュータシステム（車両に搭載されたコンピュータシステム）と、その車両コンピュータシステムへ書き換え対象のプログラムを送信する車両外のプログラム供給手段とからなる。そして、車両コンピュータシステムは、メモリ内のプログラム（即ち、実行対象のプログラム）をプログラム供給手段から送信されてきたプログラムに書き換えるように構成されている。
【００１４】
そして特に、このプログラム書き換えシステムでは、車両コンピュータシステムがプログラムの書き換えを実施する前に、状態設定手段が、車両の状態をプログラムの書き換えに適した状態に設定するための設定処理を行い、車両コンピュータシステムは、その状態設定手段による設定処理の完了後に、プログラムの書き換えを実施する。
【００１５】
このようなプログラム書き換えシステムによれば、車両の状態が、状態設定手段により、プログラムの書き換えに適した状態に自動的に設定され、その設定が完了した後で、プログラムの書き換えが実施されることとなるため、人による作業に頼ることなく、信頼性の高いプログラム書き換えを確実に実現することができるようになる。このため、プログラム書き換えの失敗によるコンピュータの機能不良及びユニット交換を回避することができ、延いては、コスト増加及び廃棄物増加を防止することができる。
【００１６】
そして、当該プログラム書き換えシステムが、請求項８に記載のように、車両コンピュータシステムがプログラム供給手段と通信線を介して通信可能に接続される有線通信タイプの書き換えシステムであるならば、工場やディーラーでの作業効率を向上させることができるため、作業時間の短縮、及びそれによる作業工数及び工賃の削減を達成することができる。
【００１７】
また、当該プログラム書き換えシステムが、請求項９に記載のように、車両コンピュータシステムがプログラム供給手段と無線で通信する無線通信タイプの書き換えシステムであるならば、工場やディーラの作業者がいない環境でも、車両コンピュータシステムの信頼性の高いプログラム書き換えを実現することができる。そして、このため、車両の使用者は、プログラム書き換えのためにディーラ等へ車両を入庫させる必要がなく、煩わしさから開放されることとなる。また、プログラムを書き換えるための作業工賃を無くすことができ、車両の維持費を低減させることができる。
【００１８】
ところで、状態設定手段は、例えば請求項２に記載のように、設定処理として、特定の機器が作動するのを禁止するように構成することができる。
そして、この構成によれば、プログラム書き換えの実施中に、特定の機器が作動してバッテリ電圧が変動し、延いてはプログラム書き換え対象のコンピュータに供給される電源電圧が変動してしまうことを防止することができ、車両の状態をプログラムの書き換えに適した状態に設定することができる。
【００１９】
尚、この場合、状態設定手段は、具体的には、請求項３に記載のように、設定処理として、上記特定の機器への電力供給を遮断するように構成することができる。また、作動を禁止する特定の機器としては、消費電流が比較的大きい機器とするのが好ましい。
【００２０】
また、車両コンピュータシステムが複数のコンピュータを備えているのであれば、状態設定手段は、例えば請求項４に記載のように、設定処理として、プログラムの書き換えに関連するコンピュータには電力を供給し、プログラムの書き換えに関連しない少なくとも１つ以上のコンピュータへの電力供給は遮断するように構成することができる。
【００２１】
そして、この構成によれば、プログラム書き換えの実施中に、プログラムの書き換えに関連しないコンピュータ及びそのコンピュータによって制御される機器が作動することが防止され、その結果、プログラムの書き換え中に、バッテリ電圧が変動してプログラム書き換え対象のコンピュータに供給される電源電圧が変動してしまうことを防止することができ、車両の状態をプログラムの書き換えに適した状態に設定することができる。
【００２２】
尚、プログラムの書き換えに関連しない全てのコンピュータへの電力供給を遮断するように構成するのが最も好ましいが、そうでない場合には、プログラムの書き換えに関連しないコンピュータのうち、消費電流が大きい機器を制御するコンピュータへの電力供給を優先的に遮断するように構成すれば、効果的である。
【００２３】
また、状態設定手段は、例えば請求項５に記載のように、設定処理として、車両の電源スイッチの操作を無効にするように構成することができる。尚、車両の電源スイッチとは、いわゆるイグニッションスイッチのことである。
【００２４】
そして、この構成によれば、プログラムの書き換え中に、車両の電源スイッチが操作されても、その操作によって本来ならば通電される機器へは電力が供給されなくなるため、バッテリ電圧が変動してプログラム書き換え対象のコンピュータに供給される電源電圧が変動してしまうことを防止することができ、車両の状態をプログラムの書き換えに適した状態に設定することができる。
【００２５】
また、状態設定手段は、例えば請求項６に記載のように、設定処理として、特定の機器を作動させるための操作を無効にするように構成することができる。
そして、この構成によれば、プログラムの書き換え中に、特定の機器を作動させる操作が行われても、その操作によって本来ならば通電される機器へは電力が供給されなくなるため、バッテリ電圧が変動してプログラム書き換え対象のコンピュータに供給される電源電圧が変動してしまうことを防止することができ、車両の状態をプログラムの書き換えに適した状態に設定することができる。
【００２６】
例えば、請求項６のプログラム書き換えシステムにおいて、状態設定手段は、請求項７に記載のように、エンジン始動用のスタータモータを作動させる操作と、ワイヤレスによりドアロックモータを作動させる操作と、パワーウィンドウを作動させる操作と、ライトを点灯させる操作と、ワイパーを作動させる操作と、ウィンドウウォッシャモータを作動させる操作とのうちの、少なくとも１つを無効にするように構成することができる。何れの操作によっても、消費電流の比較的大きい機器が作動することとなるからである。
【００２７】
ところで、請求項１〜７のプログラム書き換えシステムが、車両コンピュータシステムとプログラム供給手段とで無線通信を行う無線通信タイプの書き換えシステムであるならば、請求項１０に記載のように、状態設定手段は、車両の状態を、その車両のドアロック機能が正常に作動する範囲内で設定するように構成するのが好ましい。
【００２８】
つまり、無線通信タイプの書き換えシステムでは、プログラムの書き換えが実施される最中に、車両から使用者が離れることが考えられ、その場合に、状態設定手段によって車両のドアロック機能が作動しないように設定されてしまうと、車両のドアロックが出来ずに車両のセキュリティ性（防犯性）が低くなってしまうからである。そして、請求項１０のように構成すれば、車両コンピュータシステムのプログラム書き換えを、車両の使用者が不在の状況でも、セキュリティ性を低下させることなく実施することができるようになる。
【００２９】
また同様に、請求項１〜７のプログラム書き換えシステムが、車両コンピュータシステムとプログラム供給手段とで無線通信を行う無線通信タイプの書き換えシステムであるならば、請求項１１に記載のように、状態設定手段は、車両の状態を、その車両への不正行為を検知して警報するセキュリティ機能が正常に作動する範囲内で設定するように構成するのが好ましい。
【００３０】
そして、この構成によっても、請求項１０のプログラム書き換えシステムと同様の効果を得ることができる。車両コンピュータシステムのプログラム書き換えを、車両のセキュリティ機能を有効にさせた状態で実施することができるからである。尚、セキュリティ機能としては、一般に、侵入センサによって車両への人の侵入を検知した場合や、傾斜センサによって車両の傾きを検知した場合などに、車両に搭載されたホーンを鳴らしたり、車両の使用者の携帯電話へ通知する、といった警報動作を行う機能が知られている。
【００３１】
次に、請求項１２に記載のプログラム書き換えシステムでは、請求項１〜１１のプログラム書き換えシステムにおいて、非作動機能通知手段を備えており、その非作動機能通知手段は、状態設定手段の設定処理によって作動しなくなる機能を、使用者又は作業者に通知する。尚、使用者とは、車両の使用者であり、作業者とは、プログラムの書き換え作業を行う作業者である。
【００３２】
このプログラム書き換えシステムによれば、使用者又は作業者は、状態設定手段の設定処理によって作動しなくなる機能を、非作動機能通知手段の通知によって知ることができ、故障が発生したと勘違いしてしまうことが防止される。
【００３３】
尚、非作動機能通知手段は、状態設定手段の設定処理によって作動しなくなる機能を、プログラム書き換えが開始される前に全て通知するように構成しても良いし、また、状態設定手段の設定処理によって作動しなくなる機能を作動させる操作が行われた時に、その機能が作動しないことを通知するように構成することもできる。
【００３４】
次に、請求項１３に記載のプログラム書き換えシステムでは、請求項１〜１２のプログラム書き換えシステムにおいて、設定不成功通知手段を備えており、その設定不成功通知手段は、状態設定手段が設定処理を完了させることができない場合に、そのことを使用者又は作業者に通知する。
【００３５】
このプログラム書き換えシステムによれば、使用者又は作業者は、状態設定手段が設定処理を完了させることができないことを、設定不成功通知手段の通知によって知ることができるため、利便性が向上する。尚、設定不成功通知手段は、状態設定手段が完了させることができない設定処理の内容も、あわせて通知するように構成すれば、利便性を一層向上させることができる。
【００３６】
次に、請求項１４に記載のプログラム書き換えシステムでは、請求項１〜１３のプログラム書き換えシステムにおいて、状態判定手段を備えており、その状態判定手段は、状態設定手段が前記設定処理を開始する前に、車両の状態がプログラムの書き換えに不適切な状態であるか否かを判定する。そして、このプログラム書き換えシステムにおいて、車両コンピュータシステムは、その状態判定手段によって車両の状態がプログラムの書き換えに不適切な状態であると判定されたならば、プログラムの書き換えを中止するように構成されている。
【００３７】
このような請求項１４のプログラム書き換えシステムによれば、車両の状態がプログラムの書き換えに不適切な状態であるか否かが、状態判定手段によって自動的に判定されるため、信頼性の高いプログラム書き換えを一層確実に実現することができるようになる。
【００３８】
尚、請求項１４のプログラム書き換えシステムにおいて、状態判定手段は、例えば請求項１５に記載のように、車両に搭載されたバッテリ（車載バッテリ）の電圧と、そのバッテリの劣化状態と、プログラム書き換え対象のコンピュータ又は該コンピュータが搭載されたユニットに供給されている電源電圧と、車両の外気温度と、車両の室内温度と、車両のエンジンが停止してからの経過時間と、車両のイグニッションキーシリンダにおけるキーの操作位置と、車両の現在位置と、車両が存在する場所での有事情報とのうちの、少なくとも１つに基づいて、車両の状態がプログラムの書き換えに不適切な状態であるか否かを判定するように構成することができる。
【００３９】
つまり、車載バッテリの電圧が規定範囲内でなければ、プログラムの書き換えに不適切な状態であると判定することができ、また、バッテリが劣化していれば、書き換え対象のコンピュータに供給される電源電圧が安定しない可能性があるため、プログラムの書き換えに不適切な状態であると判定することができる。そして、プログラム書き換え対象のコンピュータ又は該コンピュータが搭載されたユニットに供給されている電源電圧が規定範囲内でない場合にも、プログラムの書き換えに不適切な状態であると判定することができる。また、車両の外気温度が規定範囲内でない場合や、車両の室内温度が規定範囲内でない場合や、車両のエンジンが停止してからの経過時間が一定時間に達していない場合には、プログラム書き換え対象のコンピュータの周囲温度がプログラム書き換えに適さない温度である可能性があるため、プログラムの書き換えに不適切な状態であると判定することができる。また、車両のイグニッションキーシリンダにおけるキーの操作位置が、プログラムの書き換えを実施する際に設定されるべき位置とは異なる位置に操作されると、プログラムの書き換えには関係のない余分な機器に電力が供給されてバッテリ電圧が変動する可能性があるため、プログラムの書き換えに不適切な状態であると判定することができる。例えば、キーの操作位置がＯＦＦ（オフ）位置にある状態でプログラムの書き換えを行う構成の場合に、そのキーの操作位置がＡＣＣ（アクセサリ）位置やＩＧ（イグニッション）位置やＳＴ（スタート）位置に操作されれば、プログラムの書き換えに不適切な状態であると判定することができる。また、車両の現在位置が、テレビ塔直下などの強電界が発生する場所であったり、高速道路上や、渋滞道路上や、事故現場付近である場合には、プログラムの書き換えに不適切な状態であると判定することができる。また、車両が存在する場所での有事情報により、地震の発生中又は発生直後であることや、大規模災害が発生した直後であることなどを検知した場合には、プログラムの書き換えに不適切な状態であると判定することができる。
【００４０】
一方、請求項１６に記載のプログラム書き換えシステムも、車両コンピュータシステム（車両に搭載されたコンピュータシステム）と、その車両コンピュータシステムへ書き換え対象のプログラムを送信する車両外のプログラム供給手段とからなり、車両コンピュータシステムは、メモリ内のプログラム（即ち、実行対象のプログラム）をプログラム供給手段から送信されてきたプログラムに書き換えるように構成されている。
【００４１】
そして、このプログラム書き換えシステムでは、状態判定手段を備えており、その状態判定手段は、車両コンピュータシステムがプログラムの書き換えを実施する前に、車両の外気温度と、車両の室内温度と、車両のエンジンが停止してからの経過時間と、車両の現在位置と、車両が存在する場所での有事情報とのうちの、少なくとも１つに基づいて、車両の状態がプログラムの書き換えに不適切な状態であるか否かを判定する。更に、車両コンピュータシステムは、その状態判定手段により車両の状態がプログラムの書き換えに不適切な状態であると判定されたならば、プログラムの書き換えを中止するように構成されている。
【００４２】
このような請求項１６のプログラム書き換えシステムによれば、車両の状態がプログラムの書き換えに不適切な状態であるか否かが、車両の外気温度と、車両の室内温度と、車両のエンジンが停止してからの経過時間と、車両の現在位置と、車両が存在する場所での有事情報とのうちの、少なくとも１つに基づき自動的に判定されるため、人による作業に頼ることなく、信頼性の高いプログラム書き換えを実現することができるようになる。
【００４３】
次に、請求項１７に記載のプログラム書き換えシステムでは、請求項１４〜１６のプログラム書き換えシステムにおいて、不適状態通知手段を備えており、その不適状態通知手段は、状態判定手段によって車両の状態がプログラムの書き換えに不適切な状態であると判定された場合に、そのことを使用者又は作業者に通知する。
【００４４】
このプログラム書き換えシステムによれば、使用者又は作業者は、車両の状態がプログラムの書き換えに不適切な状態であることを、不適状態通知手段の通知によって知ることができるため、利便性が向上する。尚、不適状態通知手段は、状態判定手段の判定内容（つまり、プログラムの書き換えに不適切であると判定された車両状態の内容）も、あわせて通知するように構成すれば、利便性を一層向上させることができる。
【００４５】
次に、請求項１８に記載のプログラム書き換えシステムでは、請求項１〜１７のプログラム書き換えシステムにおいて、車両コンピュータシステムが複数のコンピュータを備えている。そして更に、このプログラム書き換えシステムでは、書換対象通知手段を備えており、その書換対象通知手段は、プログラム書き換え対象のコンピュータが複数のコンピュータのうちの何れであるかを、他のコンピュータ（即ち、プログラム書き換え対象のコンピュータ以外のコンピュータ）に通知する。
【００４６】
このようなプログラム書き換えシステムによれば、プログラム書き換え対象でない他のコンピュータは、書換対象通知手段の通知によって、プログラム書き換え対象のコンピュータが何れであるかを知ることができる。このため、例えば、各コンピュータが互いの動きを監視する構成の場合に、上記他のコンピュータは、プログラム書き換え対象のコンピュータがプログラムの書き換え中に正常動作しない事を、異常と判定しないようにする内部設定を行うことができ、誤った異常判定がなされてしまうのを回避することができるようになる。
【００４７】
次に、請求項１９に記載のプログラム書き換えシステムでは、請求項１〜１８のプログラム書き換えシステムにおいて、正常完了通知手段を備えており、その正常完了通知手段は、車両コンピュータシステムがプログラムの書き換えを正常に完了した場合に、そのことを使用者又は作業者に通知する。
【００４８】
このプログラム書き換えシステムによれば、使用者又は作業者は、車両コンピュータシステムにおけるプログラム書き換えが正常に完了したことを、正常完了通知手段の通知によって知ることができるため、利便性が向上する。
【００４９】
次に、請求項２０に記載のプログラム書き換えシステムでは、請求項１〜１９のプログラム書き換えシステムにおいて、書換不成功通知手段を備えており、その書換不成功通知手段は、車両コンピュータシステムがプログラムの書き換えを正常に完了しなかった場合に、そのことを使用者又は作業者に通知する。
【００５０】
このプログラム書き換えシステムによれば、使用者又は作業者は、車両コンピュータシステムにおけるプログラム書き換えが正常に完了しなかったことを、書換不成功通知手段の通知によって知ることができるため、利便性が向上する。尚、書換不成功通知手段は、プログラム書き換えが正常に完了しなかった理由も、あわせて通知するように構成すれば、利便性を一層向上させることができる。
【発明を実施するための最良の形態】
【００５１】
以下に、本発明が適用された実施形態のプログラム書き換えシステムについて、図面を用い説明する。尚、本実施形態のプログラム書き換えシステムは、車両コンピュータシステムのプログラムをオンボード状態で書き換えるものである。
【００５２】
まず図１は、実施形態のプログラム書き換えシステムを表す構成図である。
図１に示すように、本実施形態のプログラム書き換えシステムは、車両に搭載された車両コンピュータシステム１と、その車両コンピュータシステム１に書き換え対象のプログラムを送信する情報センタ（以下単に、センタという）３とからなる。
【００５３】
車両コンピュータシステム１は、通信網５を介してセンタ３と無線通信を行うための通信端末７、複数の電子制御ユニット（以下、ＥＣＵという）１１〜２６，…、それらＥＣＵによって制御されるアクチュエータやディスプレイ３１などの各種機器、及び車両の各種情報をＥＣＵに入力させるセンサやスイッチ等から構成されている。
【００５４】
ここで、ＥＣＵとしては、エンジンを制御するエンジンＥＣＵ１１、車両の挙動を安定させるための制御を行う車両挙動ＥＣＵ１２、エアバッグを制御するエアバッグＥＣＵ１３、車両の走行速度や先行車両との車間距離を一定に保つ制御を行うクルーズＥＣＵ１４、ナビゲーション機能の制御を行うナビゲーションＥＣＵ１５、車両のメータを制御するメータＥＣＵ１６、車両のイグニッションキーシリンダにおけるＯＦＦ（オフ）位置以外の各キーポジションに対応した車両内の各電源ラインに車載バッテリからの電力を供給する制御を行うキー電源管理ＥＣＵ１７、ヘッドライトやターンランプなどを制御するライトシステム管理ＥＣＵ１８、キー電源管理ＥＣＵ１７が電力供給を制御する電源ライン以外の各電源ラインに車載バッテリからの電力を供給する制御を行う電源管理ＥＣＵ１９、エアコン装置を制御するエアコンＥＣＵ２０、車両のドアやラゲッジルーム（トランク）などの各開閉部の施解錠制御を行うドアシステム管理ＥＣＵ２１、車両への不正行為を検知して警報するセキュリティ機能の制御を行うセキュリティＥＣＵ２２、ディスプレイ３１を制御するディスプレイＥＣＵ２３、発音装置（図示省略）から各種案内用の音声を発生させる制御を行う音声案内ＥＣＵ２４、通信端末７やナビゲーションＥＣＵ１５やディスプレイＥＣＵ２３などと連携してブラウザ機能の制御を行うブラウザＥＣＵ２５、及びＡＶ系機器（図示省略）を制御するオーディオＥＣＵ２６などがある。
【００５５】
そして、エンジンＥＣＵ１１と、車両挙動ＥＣＵ１２と、エアバッグＥＣＵ１３と、クルーズＥＣＵ１４と、ナビゲーションＥＣＵ１５と、メータＥＣＵ１６と、キー電源管理ＥＣＵ１７は、第１の通信線３３で通信可能に接続されている。
【００５６】
また、ナビゲーションＥＣＵ１５と、メータＥＣＵ１６と、キー電源管理ＥＣＵ１７と、ライトシステム管理ＥＣＵ１８と、電源管理ＥＣＵ１９と、エアコンＥＣＵ２０と、ドアシステム管理ＥＣＵ２１と、セキュリティＥＣＵ２２は、第２の通信線３５で通信可能に接続されている。
【００５７】
また、ナビゲーションＥＣＵ１５と、ディスプレイＥＣＵ２３と、音声案内ＥＣＵ２４と、ブラウザＥＣＵ２５と、オーディオＥＣＵ２６は、第３の通信線３７で通信可能に接続されている。
【００５８】
更に、異なる通信線に接続されたＥＣＵ同士も、ナビゲーションＥＣＵ１５がゲートウェイとなって互いに通信できるようになっている。
尚、一般的なことなので図示は省略しているが、各ＥＣＵ１１〜２６，…には、１つ又は複数のマイコン（マイクロコンピュータ）とメモリが少なくとも備えられている。そして、各ＥＣＵ１１〜２６，…では、メモリに格納されているプログラムをマイコンが実行することにより、そのＥＣＵの動作が実現される。
【００５９】
一方、センタ３には、車両コンピュータシステム１と通信網５を介して無線通信を行うための通信部４１と、その通信部４１に書き換え対象のプログラムを送信させたり、その通信部４１から車両コンピュータシステム１が送信したデータを取得する制御部４２とが備えられている。
【００６０】
また、通信網５は、車両コンピュータシステム１とセンタ３と車両の使用者（以下、ユーザという）とを連携させる情報通信網であり、例えば、電話網やインターネットである。
【００６１】
次に、上記ＥＣＵのうちの主なものについて、図２〜図６を用い説明する。
まず図２に示すように、ドアシステム管理ＥＣＵ２１には、運転席ドアの開閉状態を検出する運転席カーテシスイッチ（ＳＷ）４３と、助手席ドアの開閉状態を検出する助手席カーテシスイッチ４４と、右後席ドアの開閉状態を検出する右後席カーテシスイッチ４５と、左後席ドアの開閉状態を検出する左後席カーテシスイッチ４６と、ラゲッジルームの開閉部（以下、ラゲッジドアという）の開閉状態を検出するラゲッジカーテシスイッチ４７と、ユーザに携帯される電子キーとしての携帯機と無線通信を行うための通信機４８と、運転席ドアを施錠（ロック）及び解錠（アンロック）させる運転席ドアロックモータ５０と、助手席ドアを施錠及び解錠させる助手席ドアロックモータ５１と、右後席ドアを施錠及び解錠させる右後席ドアロックモータ５２と、左後席ドアを施錠及び解錠させる左後席ドアロックモータ５３と、ラゲッジドアを施錠及び解錠させるラゲッジロックモータ５４とが接続されている。
【００６２】
また、各ロックモータ５０〜５４には、施錠及び解錠させる対象の施解錠状態（施錠状態か解錠状態か）を検出するロックポジションスイッチが設けられており、その各ロックポジションスイッチの信号も、ドアシステム管理ＥＣＵ２１に入力される。
【００６３】
そして、ドアシステム管理ＥＣＵ２１は、上記各カーテシスイッチ４３〜４７からの信号により、車両のラゲッジドアを含む各ドアの開閉状態を検出すると共に、上記各ロックポジションスイッチからの信号により、各ドアの施解錠状態を検出する。
【００６４】
また、ドアシステム管理ＥＣＵ２１は、ユーザが上記携帯機に設けられたロック用ボタン又はアンロック用ボタンを操作した際に、その携帯機から送信されるワイヤレス操作信号を通信機４８により受信する。
【００６５】
そして更に、ドアシステム管理ＥＣＵ２１は、上記受信したワイヤレス操作信号や、他のＥＣＵから通信線３５を介して送られてくる指令に従って、各ロックモータ５０〜５４を正転又は逆転駆動することにより、車両の各ドアを施錠又は解錠させる。
【００６６】
また、ドアシステム管理ＥＣＵ２１は、例えば、運転席ドアに設けられているキーシリンダにメカニカルなキーが差し込まれて捻り操作されたり、運転席ドアの車室内側に設けられている施解錠用ノブが操作されて、運転席ドアが手動で施錠又は解錠されると、そのことを、運転席ドアロックモータ５０に設けられたロックポジションスイッチからの信号により検知して、他のドアのロックモータ５１〜５４を駆動することにより、運転席ドア以外のドアを運転席ドアと同じ施解錠状態にする。
【００６７】
次に図３に示すように、セキュリティＥＣＵ２２には、車両への不正行為を検知するためのセキュリティセンサとして、車室内に人が侵入したことを赤外線や超音波などで検知する侵入センサ６０と、車両の傾きを検知する傾斜センサ６１と、車両の振動を検知する振動センサ６２とが接続されている。更に、セキュリティＥＣＵ２２には、車両への不正行為を車外に音で警報するためのホーンやブザーからなる音響警報機器６４と、車両への不正行為を車外に表示して警報するためのセキュリティインジケータ６５とが接続されている。
【００６８】
そして、セキュリティＥＣＵ２２は、例えば、ドアシステム管理ＥＣＵ２１から上記のワイヤレス操作に従い全ドアを施錠したことが通知されると、セキュリティセット状態となり、そのセキュリティセット状態にて、侵入センサ６０により人の侵入が検知されたり、傾斜センサ６１により車両が所定角度以上傾いたことが検知されたり、振動センサ６２により車両に所定レベル以上の振動が発生したことが検知されると、音響警報機器６４を駆動して警報音を発生させると共に、セキュリティインジケータ６５に不正行為があったことを示すメッセージなどの表示内容を表示させる。また、セキュリティＥＣＵ２２は、ナビゲーションＥＣＵ１５に依頼して、通信端末７からセンタ３へ、車両に不正行為が行われたことを無線で通知する。すると、センタ３からユーザが所有する携帯電話やパーソナルコンピュータなどの連絡用機器へ、車両に不正行為が行われたことが電子メールや電話音声などで通知される。
【００６９】
次に図４に示すように、エアコンＥＣＵ２０には、車外の温度である外気温度を検出する外気温センサ６７と、車室内の温度である内気温度を検出する内気温センサ６８とが接続されている。
【００７０】
そして、エアコンＥＣＵ２０は、各センサ６７，６８からの信号により外気温度と内気温度を検出し、その検出結果に基づいて、図示しない熱交換用のコンプレッサや送風用のブロアモータなどからなるエアコン装置を制御する。
【００７１】
次に図５に示すように、キー電源管理ＥＣＵ１７には、車両のイグニッションキーシリンダに挿入されたキーがＯＦＦ（オフ）位置とＡＣＣ（アクセサリ）位置とＩＧ（イグニッション）位置とＳＴ（スタート）位置との何れのキーポジションに操作されているかを検出するキーポジションスイッチ７０と、ＯＦＦ位置以外の各キーポジションに対応した車両内の各電源ライン、即ち、ＡＣＣ系システムの電源ライン７１、ＩＧ１系システムの電源ライン７２、ＩＧ２系システムの電源ライン７３、及びスタータ系システムの電源ライン７４の各々と車載バッテリ７５のプラス端子との接続／非接続を切り換えるスイッチング装置（例えば電磁式リレーや半導体リレー）７６，７７，７８，７９とが接続されている。
【００７２】
そして、キー電源管理ＥＣＵ１７は、イグニッションキーシリンダにおけるキーの操作位置（以下単に、キー操作位置という）をキーポジションスイッチ７０からの信号によって検出すると共に、その検出結果や、他のＥＣＵから通信線３３，３５を介して送られてくる指令に従って、上記各スイッチング装置７６〜７９をオン／オフさせることにより、上記各電源ライン７１〜７４をバッテリ７５のプラス端子に接続させたり、そのプラス端子から切り離す。
【００７３】
尚、各電源ライン７１〜７４は、バッテリ７５のプラス端子に接続されると、そのバッテリ７５から電力が供給されることとなる。また、ＩＧ１系システムの電源ライン７２とＩＧ２系システムの電源ライン７３は、両方共に、キーがＩＧ位置に操作されるとバッテリ７５からの電力が供給される電源ラインであるが、ＩＧ１系システムの電源ライン７２の方は、キーが更にＳＴ位置に操作された場合（即ち、スタータモータが作動する場合）にはバッテリ７５との接続が遮断されるものであり、ＩＧ２系システムの電源ライン７３の方は、キーがＳＴ位置に操作されてもバッテリ７５との接続が継続されるものであるため、別系統になっている。一方、図５において、符号として８０〜８３が付されたものは、各電源ライン７１〜７４毎に設けられたヒューズであり、符号として８４が付されたものは、各電源ライン７１〜７４に共通のヒューズである。
【００７４】
次に図６に示すように、電源管理ＥＣＵ１９には、バッテリ７５に流れる電流を検出する電流センサ８６と、バッテリ７５の温度を検出する温度センサ８７と、キー電源管理ＥＣＵ１７が電力供給を制御する電源ライン７１〜７４以外の各電源ラインＬ１〜Ｌｎの各々とバッテリ７５のプラス端子との接続／非接続を切り換えるスイッチング装置（例えば電磁式リレーや半導体リレー）ＳＲ１〜ＳＲｎとが接続されている。
【００７５】
そして、電源管理ＥＣＵ１９は、ヒューズ８８を介して入力されるバッテリ７５の電圧（バッテリ電圧）の値を検出すると共に、各センサ８６，８７からの信号によりバッテリ７５に流れる電流とバッテリ７５の温度とを検出し、更に、それらの検出結果を予め定められた計算式やデータマップにあてはめることにより、バッテリ７５の劣化状態を判定する。尚、バッテリ７５の劣化状態は、バッテリ７５内の電解液濃度によって判定するようにしても良い。
【００７６】
そして更に、電源管理ＥＣＵ１９は、キー電源管理ＥＣＵ１７から通信線３５を介して送られて来るキー操作位置の情報や、他のＥＣＵから通信線３５を介して送られてくる指令に従って、上記各スイッチング装置ＳＲ１〜ＳＲｎをオン／オフさせることにより、上記各電源ラインＬ１〜Ｌｎをバッテリ７５のプラス端子に接続させたり、そのプラス端子から切り離す。
【００７７】
尚、各電源ラインＬ１〜Ｌｎも、前述した電源ライン７１〜７４と同様に、バッテリ７５のプラス端子に接続されると、そのバッテリ７５から電力が供給されることとなる。また、図６において、符号として８９が付されたものは、各電源ラインＬ１〜Ｌｎに共通のヒューズである。
【００７８】
次に、本実施形態のプログラム書き換えシステムにおいて、車両コンピュータシステムを構成する何れかのＥＣＵに搭載されたマイコンのプログラムを書き換える際に、プログラム書き換え統括機能を有する装置で実施される書き換え制御動作の内容について、図７〜図１５を用い説明する。
【００７９】
尚、プログラム書き換え統括機能を有する装置としては、通信線３３〜３７を介して各ＥＣＵのマイコンと連携できる機能と、各ＥＣＵと連携してプログラム書き換えに必要な車両状態の判定を行う機能と、各ＥＣＵと連携してプログラム書き換えに必要な車両状態の設定及び指示通知を行う機能と、プログラム書き換えの一連の流れについて、ＨＭＩ（ヒューマン・マシン・インターフェース）に指示を行う機能とを備えていれば良く、本実施形態では、情報収集がし易いことから、ナビゲーションＥＣＵ１５（詳しくは、それに内蔵されたマイコン）が、プログラム書き換え統括機能を有する装置となっている。
【００８０】
まず図７は、ナビゲーションＥＣＵ１５で実施される書き換え制御動作の流れ全体を表すフローチャートである。
図７に示すように、ナビゲーションＥＣＵ１５は、書き換え制御動作として、プログラム書き換えの開始判定処理（Ｓ１１０）と、センタ３からプログラムをダウンロードするダウンロード処理（Ｓ１２０）と、プログラム書き換えモードへの移行処理（Ｓ１３０）と、車両の状態がプログラムの書き換えに適しているかいないかを確認する車両状態の確認処理（Ｓ１４０）と、車両の状態をプログラムの書き換えに適した状態に設定する車両状態の設定処理（Ｓ１５０）と、プログラム書き換え対象のマイコン（以下、ターゲットマイコンともいう）にプログラムを書き換えさせるプログラム書き換え処理（Ｓ１６０）と、プログラムの書き換えが正常に完了したか否かを確認するプログラム書き換え完了の確認処理（Ｓ１７０）と、プログラムの書き換えが正常完了したことをユーザやセンタ３へ通知するプログラム書き換え完了の通知処理（Ｓ１８０）とを実施する。尚、プログラム書き換えの開始判定処理（Ｓ１１０）とプログラムのダウンロード処理（Ｓ１２０）は、順番が入れ替わっても良い。
【００８１】
次に図８は、プログラム書き換えの開始判定処理の内容を表すフローチャートである。
図８に示すように、ナビゲーションＥＣＵ１５は、まずＳ２１０にて、通信端末７を介してセンタ３と通信することにより、センタ３（詳しくは、その制御部４２）に書き換え対象プログラム（つまり、更新すべき新バージョンのプログラム）があるか否かを判断する。例えば、センタ３からプログラム書き換え要求通知があった場合に、このＳ２１０にて、書き換え対象プログラムがあると判断する。また、ユーザがナビゲーション装置等の操作ボタンを操作して、プログラム更新が必要か否かを問い合わせる入力を行ったことを検知すると、センタ３へ書き換え対象プログラムがあるか否かを問い合わせ、その返事に基づいて、書き換え対象プログラムがあるか否かを判断するようにしても良い。また、ユーザの操作によらず、定期的にセンタ３へ書き換え対象プログラムがあるか否かを問い合わせるようにしても良い。
【００８２】
そして、センタ３に書き換え対象プログラムがないと判断した場合には（Ｓ２１０：ＮＯ）、そのまま処理を終了するが、書き換え対象プログラムがあると判断した場合には（Ｓ２１０：ＹＥＳ）、次のＳ２２０にて、そのプログラムの内容（例えば、どのＥＣＵのどのマイコンで実行されるプログラムであるかや、そのバージョン情報など）をセンタ３に問い合わせる。
【００８３】
次に、Ｓ２３０にて、上記Ｓ２２０の問い合わせでセンタ３から得た情報に基づいて、プログラムをダウンロードする必要があるか否か（換言すれば、プログラムの書き換えを本当に実施する必要があるか否か）を判断する。
【００８４】
そして、プログラムをダウンロードする必要がなければ（Ｓ２３０：ＮＯ）、そのまま処理を終了するが、プログラムをダウンロードする必要があれば（Ｓ２３０：ＹＥＳ）、Ｓ２４０に進んで、プログラムダウンロードモードに移行する。
【００８５】
ナビゲーションＥＣＵ１５がプログラムダウンロードモードに移行すると、図９に示すダウンロード処理を開始する。
そして、図９に示すように、まずＳ３１０にて、ユーザへプログラムのダウンロードを実施することを通知する。
【００８６】
尚、このＳ３１０及び後述する各処理において、ユーザへの通知は、ディスプレイＥＣＵ２３に指令して、ディスプレイ３１に通知内容のメッセージやアイコンを表示させたり、音声案内ＥＣＵ２４に指令して、発音装置から通知内容の音声を発生させたり、センタ３へ指令して、そのセンタ３からユーザが所有する携帯電話やパーソナルコンピュータなどの予め登録された連絡用機器へ、電子メールや電話音声などを送らせたりすることにより実施される。
【００８７】
そして、次にＳ３２０にて、ダウンロードに関連する機器の機能制限を実施する。
即ち、プログラムのダウンロードに関わる無線通信能力及びコンピュータの処理負荷を確保する為に、例えば、オーディオＥＣＵ２６やディスプレイＥＣＵ２３へ指令して、ＡＶ系機器の操作を全般にわたり禁止する（つまり、ＡＶ系機器の操作が行われても、その操作に対応する機能が行われないようにする）。また、このような機能制限と共に、ユーザへ、ＡＶ系機器の操作に関する制限内容を通知する。
【００８８】
尚、ダウンロードの実施中は、上記Ｓ３２０でユーザに通知した制限内容の操作が行われた際に、「使用できません」などのウォーニングメッセージをディスプレイ３１に表示させるようにしても良い。また、上記Ｓ３２０やダウンロードの実施中に、ダウンロードが完了する予定時刻をユーザに通知するようにしても良い。
【００８９】
そして、次にＳ３３０にて、プログラムのダウンロードに関わるコンピュータの動作継続を確保するために、キー電源管理ＥＣＵ１７及び電源管理ＥＣＵ１９へ指令を与えて、ユーザの電源キー操作とは関係なく、プログラムのダウンロードに関わる機器（例えば、当該ナビゲーションＥＣＵ１５及び通信端末７や、ユーザへの通知を行うためのディスプレイＥＣＵ２３やディスプレイ３１）への電力供給が継続されるようにする。
【００９０】
次に、Ｓ３４０にて、センタ３から書き換え対象のプログラムをダウンロードする。
そして、次のＳ３５０にて、ダウンロードしたデータに対してパリティチェックなどの検査を実施することにより、ダウンロードが正常に完了したか否かを判定し、ダウンロードが正常完了したならば（Ｓ３５０：ＹＥＳ）、次のＳ３６０にて、ダウンロードが完了したことをユーザに通知すると共に、上記Ｓ３２０で実施していた機能制限を解除するために、他のＥＣＵへダウンロード完了通知を送信する。つまり、他のＥＣＵは、ダウンロード完了通知を受信すると、上記Ｓ３２０でナビゲーションＥＣＵ１５が出した指令に基づき実施していた機能の禁止を解除する。
【００９１】
そして、その後、Ｓ３７０に進んで、プログラム書き換えモードへの移行処理へ移行する。すると、ナビゲーションＥＣＵ１５は、図１０に示すプログラム書き換えモードへの移行処理を開始することとなる。
【００９２】
また、上記Ｓ３５０にて、ダウンロードが正常完了しなかったと判定した場合には（Ｓ３５０：ＮＯ）、Ｓ３８０に移行して、カウンタＮをインクリメント（＋１）し、続くＳ３９０にて、カウンタＮの値が規定値Ｎ１に達したか否かを判定する。尚、カウンタＮの初期値は０である。
【００９３】
そして、カウンタＮの値が規定値Ｎ１に達していなければ（Ｓ３９０：ＮＯ）、Ｓ３４０に戻って、再度プログラムのダウンロードを実施する。また、上記Ｓ３９０にて、カウンタＮの値が規定値Ｎ１に達したと判定した場合には（Ｓ３９０：ＹＥＳ）、そのまま処理を終了する。尚、このように処理を終了する場合にも、上記Ｓ３２０で実施していた機能制限を解除するために、他のＥＣＵへダウンロード完了通知を送信する。
【００９４】
一方更に、ナビゲーションＥＣＵ１５は、プログラムダウンロードモードに移行すると、図９の処理と並行して、キー電源管理ＥＣＵ１７及び電源管理ＥＣＵ１９へ指令を与えることにより、ドアシステム管理ＥＣＵ２１とセキュリティＥＣＵ２２、及びそれらＥＣＵ２１，２２に関連する電気負荷への電力供給が継続されるようにすると共に、ドアシステム管理ＥＣＵ２１とセキュリティＥＣＵ２２に指令を与えて、ドアシステム管理ＥＣＵ２１による各ロックモータ５０〜５４の制御状態を保持させると共に、セキュリティＥＣＵ２２におけるセキュリティセット／アンセット状態を保持させる。
【００９５】
このため、プログラムのダウンロード中は、それ以前にユーザが設定していたドアの施解錠状態とセキュリティセット／アンセット状態とが確保されることとなり、プログラムのダウンロード中に、ユーザの意志に反してドアの施錠やセキュリティセット状態が解除され防犯性が低下してしまうことはない。
【００９６】
尚、Ｓ３４０でのプログラムダウンロードは、そのダウンロードに関わるコンピュータや無線通信能力に一定以上の負荷が無いことを確認してから開始するようにしても良い。
また、例えばＳ３２０とＳ３３０との間で、ユーザがダウンロードの開始を許可したか否かを、ユーザによるボタン操作や音声入力などで判断し、ユーザの許可が得られなければ、上記Ｓ３２０での機能制限を解除すると共に、ダウンロードを中止するようにしても良い。
【００９７】
また、プログラムのダウンロードを実施するＥＣＵや、ダウンロードしたプログラムを保存するＥＣＵは、ナビゲーションＥＣＵ１５（つまり、プログラム書き換え統括機能を有する装置）とは別のＥＣＵであっても良い。
【００９８】
次に、図１０に示すように、ナビゲーションＥＣＵ１５がプログラム書き換えモードへの移行処理を開始すると、まずＳ４１０にて、ユーザへ、プログラム書き換えを開始した場合の、車両における機能や操作が制限される点及びその制限の内容と、プログラム書き換え完了までに必要な時間や終了予定時刻を通知する。尚、このＳ４２０でユーザに通知される制限の内容は、後述する図１２におけるＳ６２０及びＳ６３０の処理によって制限される機能や操作の内容である。
【００９９】
そして、続くＳ４２０にて、ユーザからのキャンセル指示が一定時間内にあったか否かを判定し、キャンセル指示がなければ（Ｓ４２０：ＮＯ）、Ｓ４３０に進んで、車両状態の確認処理へ移行する。すると、ナビゲーションＥＣＵ１５は、図１１に示す車両状態の確認処理を開始することとなる。
【０１００】
また、ユーザからのキャンセル指示があったならば（Ｓ４２０：ＹＥＳ）、Ｓ４４０に移行して、プログラム書き換えを中止し、そのまま処理を終了する。このため、ダウンロードしたプログラムをターゲットマイコンが搭載されたＥＣＵへ転送する処理を開始するまでの間に、ユーザによるキャンセル操作が受け付けられることとなる。
【０１０１】
尚、ユーザがキャンセル指示を行うためのキャンセル操作としては、操作ボタンやディスプレイ画面上でのタッチ操作といった車両内機器に対する操作や音声入力でも良いし、また、ユーザが自分の所有する携帯電話やパーソナルコンピュータなどの連絡用機器により、Ｗｅｂ操作したり電子メールや電話などでセンタ３へ連絡すると、そのセンタ３を経由して本車両コンピュータシステムへキャンセル指示が通知される、といったものでも良い。一方、上記Ｓ４２０の判定を削除して、そのまま車両状態の確認処理へ移行するようにしても良い。
【０１０２】
次に、図１１に示すように、ナビゲーションＥＣＵ１５が車両状態の確認処理を開始すると、まずＳ５１０にて、エンジンが停止してからの経過時間を計測する機能を有したＥＣＵ（本実施形態ではエンジンＥＣＵ１１）から、その計測されている経過時間を車両内有線通信により取得して、その経過時間が一定時間Ｔ１以上であるか否かを判定する。
【０１０３】
そして、エンジン停止からの経過時間が一定時間Ｔ１以上であれば（Ｓ５１０：ＹＥＳ）、そのままＳ５１５へ進むが、エンジン停止からの経過時間が一定時間Ｔ１以上でなければ（Ｓ５１０：ＮＯ）、その経過時間が一定時間Ｔ１に達するまで待ってからＳ５１５へ進む。
【０１０４】
尚、上記一定時間Ｔ１は、メモリ内の実行対象プログラムがセンタ３から今回ダウンロードされたプログラムに書き換えられる予定のマイコン（ターゲットマイコン）について必要と考えられる冷却時間に設定される。また、エンジン停止からの経過時間が一定時間Ｔ１に達するまで待つ場合、その残り時間や待機していることを、ユーザへ通知するようにしても良い。
【０１０５】
次に、Ｓ５１５では、キー電源管理ＥＣＵ１７へ指令を与えて、ユーザの電源キー操作とは関係なくエアコンＥＣＵ２０と少なくとも外気温センサ６７及び内気温センサ６８にバッテリ７５からの電力が供給されるようにする。そして、車両内有線通信により、そのエアコンＥＣＵ２０に指令を与えて、外気温度と内気温度を測定させるとと共に、その測定結果をエアコンＥＣＵ２０から取得する。そして更に、このＳ５１５では、外気温度が最小規定値Ｍ１ｍｉｎから最大規定値Ｍ１ｍａｘまでの規定範囲内であるか否かを判定し、その規定範囲内であれば（Ｓ５１５：ＹＥＳ）、次のＳ５２０にて、内気温度が最小規定値Ｍ２ｍｉｎから最大規定値Ｍ２ｍａｘまでの規定範囲内であるか否かを判定する。そして、内気温度が規定範囲内であると判定したならば（Ｓ５２０：ＹＥＳ）、Ｓ５２５に進む。尚、外気温度と内気温度の測定は、例えば図１０の処理を開始した直後のタイミングで実施しておいても良い。
【０１０６】
Ｓ５２５では、電源管理ＥＣＵ１９との車両内有線通信により、その電源管理ＥＣＵ１９から現在のバッテリ電圧とバッテリ７５の劣化状態の情報を取得する。そして更に、このＳ５２５では、バッテリ電圧がプログラム書き換えを実施するのに支障が無いと考えられる規定値Ｖ１以上であるか否かを判定し、規定値Ｖ１以上であれば（Ｓ５２５：ＹＥＳ）、次のＳ５３０にて、バッテリ７５の劣化は無いか否か（つまり、バッテリ７５の劣化状態がプログラム書き換えを実施するのに支障が無い程度か否か）を判定する。そして、バッテリ７５の劣化は無いと判定したならば（Ｓ５３０：ＹＥＳ）、Ｓ５３５に進む。
【０１０７】
Ｓ５３５では、キー電源管理ＥＣＵ１７又は電源管理ＥＣＵ１９に指令を与えて、ターゲットマイコンが搭載されたＥＣＵ（以下、ターゲットＥＣＵともいう）にバッテリ７５からの電力が供給されるようにする。そして、ターゲットＥＣＵに指令を与えて、そのターゲットＥＣＵに実際に供給されている電源電圧を測定させると共に、その測定結果を送信させる。そして更に、このＳ５３５では、そのターゲットＥＣＵに実際に供給されている電源電圧がプログラム書き換えを実施するのに支障が無いと考えられる規定値Ｖ２以上であるか否かを判定し、規定値Ｖ２以上であれば（Ｓ５３５：ＹＥＳ）、Ｓ５４０に進む。尚、ターゲットＥＣＵに供給されている電源電圧の代わりに、ターゲットマイコンに供給されている電源電圧の情報をターゲットＥＣＵから取得して、その電源電圧が規定値範囲内であるか否かを判定するようにしても良い。
【０１０８】
Ｓ５４０では、ＧＰＳ衛星からのＧＰＳ信号を受信して車両の現在位置を検出し、地図情報やセンタ３又は他の情報センタから無線で提供される道路情報などを参照して、その検出した現在位置がプログラム書き換えを実施するのに支障が無い場所か否かを判定する。そして、例えば、車両の現在位置が、テレビ塔直下などの強電界が発生する場所であったり、高速道路上や、渋滞道路上や、事故現場付近でなければ、プログラムの書き換えに支障がない場所と判定して（Ｓ５４０：ＹＥＳ）、Ｓ５４５に進む。
【０１０９】
Ｓ５４５では、センタ３又は他の情報センタと通信して、車両が存在している場所での有事情報があるか否かを判定し、有事情報があれば、更に、その情報に基づいて、何らかの災害警告等（例えば、地震の発生中又は発生直後であることや、大規模災害が発生したことの警告）が発せられているか否かを判定する。そして、災害警告等がなければ（Ｓ５４５：ＹＥＳ）、プログラム書き換えを実施するのに支障は無いと判断してＳ５５０に進む。
【０１１０】
Ｓ５５０では、図１０のＳ４２０と同様に、ユーザからのキャンセル指示が一定時間内にあったか否かを判定し、キャンセル指示がなければ（Ｓ５５０：ＮＯ）、次のＳ５６０にて、車両状態条件がＯＫである（つまり、プログラム書き換えを実施するのに必要な条件が成立した）と判断し、そのことをユーザへ通知する。そして、その後、Ｓ５６５に進んで、車両状態の設定処理へ移行する。すると、ナビゲーションＥＣＵ１５は、図１２に示す車両状態の設定処理を開始することとなる。
【０１１１】
一方、上記Ｓ５１５とＳ５２０との何れかで「ＮＯ」と判定した場合、即ち、外気温度が規定範囲内ではないと判定するか（Ｓ５１５：ＮＯ）、或いは、内気温度が規定範囲内ではないと判定した場合には（Ｓ５２０：ＮＯ）、Ｓ５７０に移行して、一定時間Ｔ２だけ待ち、続くＳ５７５にて、カウンタＮをインクリメントする。そして、次のＳ５８０にて、カウンタＮの値が規定値Ｎ２に達したか否かを判定し、カウンタＮの値が規定値Ｎ２に達していなければ（Ｓ５８０：ＮＯ）、Ｓ５１５に戻り、また、カウンタＮの値が規定値Ｎ２に達したならば（Ｓ５８０：ＹＥＳ）、Ｓ５８５へ移行する。尚、カウンタＮの初期値は０である。
【０１１２】
つまり、Ｓ５１５とＳ５２０で判定する温度条件が成立しない場合には、一定時間Ｔ２が経過してから、再度、その温度条件が成立しているか否かを判定するようにしており、また、その判定回数がＮ２回に達したら、もはや温度条件が成立する見込みはなく、車両の状態がプログラムの書き換えに不適切な状態であると判断して、Ｓ５８５へ移行するようにしている。
【０１１３】
また、上記Ｓ５２５〜Ｓ５４５の何れかで「ＮＯ」と判定した場合、即ち、バッテリ電圧が規定値Ｖ１以上ではないと判定するか（Ｓ５２５：ＮＯ）、バッテリ７５の劣化があると判定するか（Ｓ５３０：ＮＯ）、ターゲットＥＣＵに供給されている電源電圧が規定値Ｖ２以上ではないと判定するか（Ｓ５３５：ＮＯ）、車両の現在位置がプログラムの書き換えに支障のある場所であると判定するか（Ｓ５４０：ＮＯ）、災害警告等が発せられている（有事が発生している）と判定した場合（Ｓ５４５：ＮＯ）にも、車両の状態がプログラムの書き換えに不適切な状態であると判断して、Ｓ５８５へ移行する。
【０１１４】
Ｓ５８５では、プログラム書き換えを実施するのに必要な車両状態条件が成立しなかったことをユーザに通知し、続くＳ５９０にて、プログラム書き換えを中止する。そして、そのまま処理を終了する。
【０１１５】
また、上記Ｓ５５０にて、ユーザからのキャンセル指示があったと判定した場合にも（Ｓ５５０：ＹＥＳ）、Ｓ５９０に移行して、プログラム書き換えを中止し、そのまま処理を終了する。
【０１１６】
尚、Ｓ５８５では、成立しなかった条件の内容もユーザへ通知するようにしても良い。また、ホーンやブザーやハザード点滅、ライト点灯／点滅などによって車両状態条件の不成立を通知するようにしても良い。また、Ｓ５５０からＳ５６０へ進む前に、念のため、全条件の確認処理（Ｓ５１０〜５４５）を再度実施するようにしてもよい。
【０１１７】
次に、図１２に示すように、ナビゲーションＥＣＵ１５が車両状態の設定処理を開始すると、まずＳ６０５にて、キー電源管理ＥＣＵ１７及び電源管理ＥＣＵ１９へ指令を与えて、車両コンピュータシステムにおける全てのＥＣＵに電力が供給されるようにし、更に、当該ナビゲーションＥＣＵ１５を除く全てのＥＣＵへ、その各ＥＣＵが現在記憶している故障診断情報であるダイアグコードを送信させる。そして、その各ＥＣＵからのダイアグコードと、自ＥＣＵ１５が現在記憶しているダイアグコードとを、プログラム書き換えを実施する直前のダイアグコードとしてメモリに記憶しておく。
【０１１８】
そして、次のＳ６１０にて、他の全ＥＣＵへ、プログラム書き換えを開始する前の準備通知として、下記の通知を行う。
即ち、他の全ＥＣＵへ、プログラムの書き換えを開始することと、ターゲットマイコンがどのＥＣＵのどのマイコンであるのかを示すターゲット識別情報と、後述するＳ６２０及びＳ６３０の処理によって作動が禁止されることとなる機能、ＥＣＵ及び電気負荷を表す禁止内容情報とを通知する。
【０１１９】
すると、以後、ナビゲーションＥＣＵ１５を含む全てのＥＣＵのマイコンは、それが異常を監視している項目（故障検出項目）のうち、ターゲットマイコンの動作に関わる項目と、上記禁止内容情報の表す機能、ＥＣＵ及び電気負荷に関連する項目とに異常があっても、それを異常として判断しないようになる。つまり、Ｓ６１０での準備通知は、プログラム書き換えを実施することによって正常作動しなくなる項目については、異常と判定しないようにするための指令である。
【０１２０】
次に、ナビゲーションＥＣＵ１５は、Ｓ６１５にて、キー電源管理ＥＣＵ１７及び電源管理ＥＣＵ１９へ指令を与えて、プログラムの書き換えに関連する機器（具体的には、当該ナビゲーションＥＣＵ１５及びターゲットＥＣＵと、ユーザへの通知を行うためのＥＣＵ及びそれの関連機器）への電力供給が継続されるようにする。
【０１２１】
そして、次のＳ６１７にて、自車両の車種及びグレードに応じた作動禁止対象機器を決定する。
ここで、作動禁止対象機器とは、プログラムの書き換えには関連しない（換言すれば、影響が無い）機器であって、プログラム書き換えの実施中に作動を禁止すべき機器である。そして、プログラムの書き換えに関連しないＥＣＵを除くと、主に、作動することで一時的又は定常的に消費電流が大きくなる電気負荷が、作動禁止対象機器として決定される。そして更に、この作動禁止対象機器としては、後述するＳ６２０で電力供給を遮断することにより、その作動を禁止する第１種機器と、後述するＳ６３０でその機器を制御するＥＣＵに、その機器を作動させないようにすることにより、その作動を禁止する第２種機器とがある。
【０１２２】
また、このような作動禁止対象機器は、車種及びグレード毎に異なる。なぜなら、車種及びグレードによって、搭載されている機器やその数が異なるからである。尚、車のグレードも広義では車の種類であるため、以下では、車種及びグレードを、単に車種という。
【０１２３】
そこで、Ｓ６１７では、例えば以下の手順で、自車両の車種を特定すると共に、その特定した車種に応じた作動禁止対象機器を決定する。
まず、車両コンピュータシステム１のＥＣＵのうち、本プログラム書き換えシステムが適用された全ての車両に搭載される特定のＥＣＵ（例えばエンジンＥＣＵ１１又はナビゲーションＥＣＵ１５）のデータ用不揮発性メモリには、自車両の車種を表す車種識別情報と、車種毎の作動禁止対象機器を記録した情報マップとが予め記憶されている。このため、Ｓ６１７では、上記データ用不揮発性メモリから車種識別情報を読み出して、自車両の車種を特定し、上記データ用不揮発性メモリ内の情報マップから上記特定した車種に該当する作動禁止対象機器を検索するのである。
【０１２４】
尚、上記データ用不揮発性メモリがナビゲーションＥＣＵ１５以外のＥＣＵ内に存在する場合には、そのＥＣＵに上記の車種特定と検索の処理を行わせて、その検索結果を受け取るように構成すれば良い。また例えば、上記情報マップがセンタ３に存在し、センタ３へ車種識別情報を送信すると、センタ３が、その車種識別情報によって車種を特定すると共に、その特定した車種に該当する作動禁止対象機器を上記情報マップから検索して、その検索結果を本車両コンピュータシステム１へ送信して来るようにしても良い。
【０１２５】
そして、次のＳ６２０にて、キー電源管理ＥＣＵ１７及び電源管理ＥＣＵ１９へ指令を与えて、上記Ｓ６１７で決定した作動禁止対象機器のうちの第１種機器への電力供給を遮断させる。
【０１２６】
このＳ６２０の処理により、例えば、ターゲットマイコンがエンジンＥＣＵ１１のマイコンであるとすると、車両挙動ＥＣＵ１２やエアバッグＥＣＵ１３など、上記Ｓ６１５で電力供給を継続するＥＣＵ以外のＥＣＵへは、電力の供給が遮断される。また、電気負荷のうち、特に消費電流が大きくて作動時にバッテリ電圧の変動を招きやすいエンジン冷却用電動ファンやＡＢＳアクチュエータなどへの電力供給が遮断される。
【０１２７】
但し、このＳ６２０において、ドアシステム管理ＥＣＵ２１とセキュリティＥＣＵ２２へは電力が継続して供給されるようにして、ドアシステム管理ＥＣＵ２１によるドアロックの機能と、セキュリティＥＣＵ２２によるセキュリティ機能は、プログラム書き換えの実施中においても正常に作動するようにしている。このため、その後に開始されるプログラム書き換えの実施中においても、それ以前にユーザが設定していたドアの施解錠状態とセキュリティセット／アンセット状態とが維持されることとなり、プログラム書き換えの実施中に、ユーザの意志に反してドアの施錠やセキュリティセット状態が解除され防犯性が低下してしまうことはない。
【０１２８】
次に、ナビゲーションＥＣＵ１５は、Ｓ６３０にて、上記Ｓ６１７で決定した作動禁止対象機器のうちの第２種機器の作動を禁止させる指令を、その機器を制御するＥＣＵに与える。この指令により、例えば、エンジン始動用のスタータモータを作動させる操作や、ワイヤレスにより各ドアのロックモータ５０〜５４を作動させる操作（つまり、上記携帯機のロック用ボタン又はアンロック用ボタンの操作）や、パワーウィンドウを作動させる操作や、ライトや室内照明を点灯させる操作や、ワイパーを作動させる操作や、ウィンドウウォッシャモータを作動させる操作などが無効になる。更に、このＳ６３０では、キー電源管理ＥＣＵ１７に指令を与えることにより、イグニッションキーシリンダにおけるキーの操作（車両の電源スイッチの操作に相当）を無効にさせる。つまり、イグニッションキーシリンダにおけるキーが操作されて、そのキー操作位置が変化しても、その操作によって本来ならば通電される自車両内の機器へは電力が供給されないようにする。
【０１２９】
次に、Ｓ６４０にて、上記Ｓ６１５〜Ｓ６３０による状態設定が完了したか否かを判定する。ここでは、上記Ｓ６１５〜Ｓ６３０で指令を与えた全てのＥＣＵから、その指令に従い動作することを示す了解応答があったならば、状態設定が完了したと判定する。
【０１３０】
そして、状態設定が完了したと判定したならば（Ｓ６４０：ＹＥＳ）、Ｓ６５０に進んで、ユーザへ、状態設定が完了したことと、図１０のＳ４１０と同様に、上記Ｓ６２０及びＳ６３０の処理によって制限される機能や操作の内容（特に、どういう操作が無効になるか）とを通知する。その後、Ｓ６６０に進んで、プログラム書き換え処理へ移行する。すると、ナビゲーションＥＣＵ１５は、図１３に示すプログラム書き換え処理を開始することとなる。
【０１３１】
また、上記Ｓ６４０にて、状態設定が完了しなかったと判定した場合には（Ｓ６４０：ＮＯ）、Ｓ６７０に移行して、状態設定に成功しなかったこと（設定不成功）をユーザに通知し、その後、Ｓ６８０にてプログラム書き換えを中止して、そのまま処理を終了する。
【０１３２】
尚、Ｓ６５０でユーザへの通知を行った後、図１０のＳ４２０や図１１のＳ５５０と同様の判定を行って、ユーザからのキャンセル指示があったならば、プログラム書き換えを中止するようにしても良い。
【０１３３】
次に、図１３に示すように、ナビゲーションＥＣＵ１５がプログラム書き換え処理を開始すると、まずＳ７１０にて、ターゲットＥＣＵに指令を与えて、プログラムを書き換える対象のメモリ（即ち、ターゲットマイコンのメモリ）に記憶されているデータのうち、プログラムの書き換え後も継続して保持すべき学習値やカスタマイズ設定値や車両走行距離値などの特定種別データを、他の記憶媒体に退避させる。尚、他の記憶媒体（即ち、上記特定種別データの退避先）としては、ターゲットＥＣＵに備えられている他のメモリに限らず、ターゲットＥＣＵと通信線で接続されている他のＥＣＵに備えられているメモリでも良く、また、センタ３に存在するメモリでも良い。
【０１３４】
そして、次にＳ７２０にて、ターゲットＥＣＵへプログラムの書き換え処理を開始させる指令を与えると共に、そのターゲットＥＣＵへ、センタ３からダウンロードした書き換え対象プログラムを転送する。すると、ターゲットＥＣＵでは、マイコンが、その書き換え対象プログラムを順次受信して、メモリ内のプログラムを、その受信したプログラムに書き換えることとなる。
【０１３５】
そして、ターゲットＥＣＵにてプログラムの書き換え処理が終了したことを、そのターゲットＥＣＵからの通知によって検知すると、Ｓ７３０に進んで、プログラム書き換え完了の確認処理へ移行する。すると、ナビゲーションＥＣＵ１５は、図１４に示すプログラム書き換え完了の確認処理を開始することとなる。
【０１３６】
そして、図１４に示すように、ナビゲーションＥＣＵ１５がプログラム書き換え完了の確認処理を開始すると、まずＳ８１０にて、ターゲットＥＣＵから、書き換えたプログラムのバージョン情報を取得し、そのバージョン情報が、センタ３からダウンロードしたプログラムのバージョン情報と一致しているか否かを確認する。
【０１３７】
次に、Ｓ８２０にて、ターゲットＥＣＵに、図１３のＳ７１０で退避させた特定種別データを、プログラムを書き換えたメモリ（即ち、ターゲットマイコンのメモリ）に再記憶させる。
【０１３８】
そして、次のＳ８３０にて、他の各ＥＣＵに、図１２のＳ６１０〜Ｓ６３０で出した指令の処理を解除する通知を出す。この解除通知により、図１２の処理が実施される前の車両状態に戻ることとなる。
【０１３９】
次に、Ｓ８４０にて、図１２のＳ６０５と同様の手順により、他の各ＥＣＵから、それら各ＥＣＵが現在記憶しているダイアグコードを取得する。そして、続くＳ８５０にて、その取得した各ＥＣＵのダイアグコード（即ち、プログラム書き換え実施後のダイアグコード）と、上記図１２のＳ６０５で記憶しておいた各ＥＣＵのダイアグコード（即ち、プログラム書き換え実施前のダイアグコード）とが一致しているか否かを判定し、両者が一致していれば、そのままＳ８７０に進むが、両者が一致していなければ、Ｓ８６０にて、不一致であった内容を記憶した後、Ｓ８７０に進む。尚、Ｓ８４０及びＳ８５０の処理は、図１２のＳ６１０で各ＥＣＵに出した指令（準備通知）が正常に機能したか否かを確認するためのものである。
【０１４０】
そして、Ｓ８７０では、プログラム書き換えが正常に完了したか否かを判定する。具体的には、ターゲットＥＣＵに指令を与えて、書き換えた後のプログラムを送信させ、そのプログラムと、センタ３からダウンロードしたプログラムとが一致しているか否かを判定し、その両プログラムが一致しており、且つ、上記Ｓ８１０でバージョン情報の一致が確認できていれば、プログラム書き換えが正常に完了したと判断して、Ｓ８８０へ進み、プログラム書き換え完了の通知処理へ移行する。すると、ナビゲーションＥＣＵ１５は、図１５に示すプログラム書き換え完了の通知処理を開始することとなる。
【０１４１】
また、上記Ｓ８７０でプログラム書き換えが正常に完了しなかったと判定した場合には（Ｓ８７０：ＮＯ）、Ｓ８９０に移行して、ユーザへ、プログラム書き換えが正常に完了しなかったこと（プログラム書き換えの不成功）を通知し、その後、処理を終了する。
【０１４２】
尚、Ｓ８７０でプログラム書き換えが正常に完了しなかったと判定した場合、所定回数を限度に、図１１の処理から再度実施するようにしても良い。また、プログラム書き換えが正常に完了したと判定した時点で、バッテリ電圧をチェックして、バッテリ７５が弱っていると判定した場合には、スタータモータを駆動してエンジンを始動させ、アイドリングによるバッテリ７５の充電を図ると共に、そのことをユーザに通知するようにしても良い。
【０１４３】
次に、図１５に示すように、ナビゲーションＥＣＵ１５がプログラム書き換え完了の通知処理を開始すると、まずＳ９１０にて、プログラム書き換えが正常に完了したことをユーザに通知する。尚、このとき、図１２のＳ６５０で通知していた制限内容が解除されたことも通知するようにしても良い。また、プログラム書き換えが正常完了したことは、ホーンやブザーやハザード点滅、ライト点灯／点滅など、ユーザが車両の近くで確認できる手段によって通知するようにしても良い。
【０１４４】
そして、続くＳ９２０にて、ユーザが次に乗車した際に、プログラム書き換えが正常に完了したことが、ディスプレイ３１に表示されたり、発音装置から音声で出力されるように、関連するＥＣＵへ指令を与えておく。
【０１４５】
最後に、Ｓ９３０にて、今回プログラム書き換えが行われたマイコンがどのマイコンであるかと、そのマイコンについてのプログラム書き換え回数とを記憶すると共に、その記憶した内容をセンタ３にも通知し、その後、処理を終了する。
【０１４６】
尚、本実施形態では、センタ３がプログラム供給手段に相当し、図１２のＳ６１５〜Ｓ６３０の処理が状態設定手段に相当し、図１０のＳ４１０と図１２のＳ６５０の処理が非作動機能通知手段に相当し、図１２のＳ６７０の処理が設定不成功通知手段に相当し、図１１のＳ５１０〜Ｓ５４５及びＳ５７０〜Ｓ５８０の処理が状態判定手段に相当し、図１１のＳ５８５の処理が不適状態通知手段に相当し、図１２のＳ６１０の処理が書換対象通知手段に相当し、図１５のＳ９１０の処理が正常完了通知手段に相当し、図１４のＳ８９０の処理が書換不成功通知手段に相当している。
【０１４７】
以上のような本実施形態のプログラム書き換えシステムによれば、車両コンピュータシステム１は、プログラムの書き換えを実施する前に、図１２のＳ６１５〜Ｓ６３０の処理により、車両の状態をプログラムの書き換えを実施するのに適した状態へと自動的に設定し、その設定の完了後に、プログラムの書き換えを実施するようになっている。そして、その設定により、プログラム書き換えの実施中において、もしプログラム書き換えに関係のない操作が行われても、その操作によって本来ならば通電される機器へは電力が供給されなくなるため、バッテリ電圧（延いては、ターゲットＥＣＵ又はターゲットマイコン）に供給される電源電圧が変動してしまうことを防止することができる。
【０１４８】
このため、人によるヒューズ抜きや確認の作業に頼ることなく、信頼性の高いプログラム書き換えを実現することができ、延いては、プログラム書き換えの失敗によるコンピュータの機能不良及びＥＣＵ交換を回避することができ、コスト増加や廃棄物増加を防止することができる。
【０１４９】
特に、本実施形態のプログラム書き換えシステムは、車両コンピュータシステム１がプログラム供給先のセンタ３と無線で通信する無線通信タイプの書き換えシステムであるため、工場やディーラなどの作業者がいない環境でも、車両コンピュータシステム１の信頼性の高いプログラム書き換えを実現可能なことが要求されるが、その要求を満たすことができる。
【０１５０】
また、本実施形態のプログラム書き換えシステムでは、前述したように、ドアシステム管理ＥＣＵ２１によるドアロックの機能と、セキュリティＥＣＵ２２によるセキュリティ機能については、プログラム書き換えの実施中においても正常に作動するようにしているため、防犯性が低下してしまうことはない。
【０１５１】
また、本実施形態のプログラム書き換えシステムでは、図１０のＳ４１０と図１２のＳ６５０の処理により、ユーザへ、図１２のＳ６２０及びＳ６３０の処理によって制限される機能や操作の内容を通知するようにしているため、ユーザが、機能不良故障が発生したと勘違いしてしまうことを防止することができる。
【０１５２】
また、図１２のＳ６１５〜Ｓ６３０による状態設定が正常に完了しなかった場合（Ｓ６４０：ＮＯ）、そのことが図１２のＳ６７０の処理によってユーザへ通知されるため、ユーザにとって利便性が良い。
【０１５３】
そして更に、本実施形態のプログラム書き換えシステムでは、図１１のＳ５１０〜Ｓ５４５及びＳ５７０〜Ｓ５８０の処理により、車両の状態がプログラムの書き換えを実施するのに不適切な状態であるか否かが自動的に判定され、不適切な状態であると判定されると、プログラム書き換えを中止するようになっているため、信頼性の高いプログラム書き換えを、人による確認作業に頼ることなく一層確実に実現することができる。尚、図１１の確認処理では、例えば、キー操作位置が変化したか否かも判定して、キー操作位置が変化したと判定した場合にも、Ｓ５８５へ移行するようにしても良い。
【０１５４】
また、本実施形態のプログラム書き換えシステムでは、図１１のＳ５１０〜Ｓ５４５及びＳ５７０〜Ｓ５８０の処理によって車両の状態がプログラムの書き換えに不適切な状態であると判定された場合に、そのことが図１１のＳ５８５の処理によってユーザへ通知されるため、ユーザにとって利便性が良い。
【０１５５】
更に、本実施形態のプログラム書き換えシステムでは、プログラム書き換えが正常に完了した場合には、そのことが図１５のＳ９１０の処理によってユーザへ通知され、逆に、プログラム書き換えが正常に完了なかった場合にも、そのことが図１４のＳ８９０の処理によってユーザへ通知されるため、ユーザは、プログラム書き換えの成功／不成功をも確実に知ることができ利便性が良い。
【０１５６】
また、本実施形態のプログラム書き換えシステムでは、図１２のＳ６１０の処理により、プログラム書き換えの実施中に正常作動しなくなる項目について、車両コンピュータシステム１における各マイコンが異常と誤判定してしまうことを防止することができ、延いては、プログラム書き換えの実施によって誤ったダイアグコードが蓄積されてしまうことを回避することができる。
【０１５７】
尚、上記実施形態のプログラム書き換えシステムでは、車両に搭載されたＥＣＵのうちのナビゲーションＥＣＵ１５が、プログラム書き換え統括機能を有する装置となっていたが、センタ３がプログラム書き換え統括機能を有する装置として機能するように構成しても良い。つまり、センタ３も、通信端末７及びナビゲーションＥＣＵ１５と通信線３３〜３７を介して車両の各ＥＣＵと通信可能であるため、各ＥＣＵから情報を収集して前述した各種判定を行うと共に、各ＥＣＵへ前述した各種指令を出すようにすれば良い。
【０１５８】
一方、上記実施形態のプログラム書き換えシステムは、図１６に例示するように、車両コンピュータシステム１とプログラム供給手段に相当するスキャンツール（プログラム書き換え用の外部装置）９１とが通信線を介して通信可能に接続される有線通信タイプのプログラム書き換えシステムに変形することもできる。尚、図１６において、図１と同じ構成要素については、その図１と同一の符号を付しているため説明は省略する。
【０１５９】
即ち、図１６に示す変形例プログラム書き換えシステムは、前述した実施形態のプログラム書き換えシステムと比較すると、下記の点が異なっている。
まず、図７におけるＳ１１０〜Ｓ１３０の処理（図８〜図１０の処理）が実施されず、その代わりに、プログラム書き換えを実施する際には、工場やディーラーといった特定の作業場にて、作業者が、スキャンツール９１を車両内の通信線（この例では、通信線３３）にコネクタ（図示省略）を介して接続する。
【０１６０】
また、作業者は、この接続作業を実施する前又は後に、スキャンツール９１から車両コンピュータシステム１へ書き換え対象のプログラムを送信可能な状態にする。例えば、書き換え対象のプログラムが記憶された記憶媒体をスキャンツール９１にセットしたり、或いは、パソコン等の情報端末９２をスキャンツール９１に接続して、その情報端末９２からスキャンツール９１を経由して車両コンピュータシステム１へ書き換え対象のプログラムを転送できるようにする。
【０１６１】
そして、作業者が、スキャンツール９１に対して特定の操作を行うと、そのスキャンツール９１は、車両コンピュータシステム１へ、プログラム書き換えモードへの移行指令を送信することとなる。
【０１６２】
すると、車両コンピュータシステム１における何れかのＥＣＵ（この変形例では、ナビゲーションＥＣＵ１５）が上記移行指令を受信して、図７のＳ１４０以降の処理（図１１〜図１５の処理）を実施することとなる。
【０１６３】
但し、この変形例では、上記Ｓ５６０、Ｓ５８５、Ｓ６５０、Ｓ６７０、Ｓ８９０、及びＳ９１０などで実施していたユーザへの通知に代えて、それと同じ内容を作業者に通知する処理を行う。そして、作業者への通知は、ディスプレイＥＣＵ２３に指令して、ディスプレイ３１に通知内容のメッセージやアイコンを表示させたり、音声案内ＥＣＵ２４に指令して、発音装置から通知内容の音声を発生させたり、スキャンツール９１に指令して、そのスキャンツール９１の表示装置や、そのスキャンツール９１に接続された情報端末９２の表示装置に通知内容のメッセージやアイコンを表示させたりすることによって実施される。
【０１６４】
また、この変形例では、図１３におけるＳ７２０でプログラム書き換えが実施されるときに、スキャンツール９１からターゲットＥＣＵへ書き換え対象のプログラムが転送されるが、その書き換え対象のプログラムは、例えば上記実施形態と同様に、図１１の処理が実施される前に、スキャンツール９１から特定のＥＣＵ（例えばナビゲーションＥＣＵ１５）にダウンロードされて保存され、その後、図１３におけるＳ７２０でプログラム書き換えが実施されるときに、その特定のＥＣＵからターゲットＥＣＵへ転送されるようにしても良い。
【０１６５】
また、この変形例において、プログラム書き換えが行われたマイコンがどのマイコンであるかと、そのマイコンについてのプログラム書き換え回数とを、何らかの情報管理センタに通知する必要があるのならば、その内容を、図１５におけるＳ９３０で、スキャンツール９１へ送信すると、スキャンツール９１から情報端末９２及びその情報端末９２に接続された通信網５を介して、その内容が上記情報管理センタへ届くようにすれば良い。
【０１６６】
以上のような変形例のプログラム書き換えシステムによっても、人手に頼ることなく信頼性の高いプログラム書き換えを実現することができ、特に、工場やディーラーなどでプログラム書き換えを実施する際の作業者による作業工数及び工賃を大幅に削減することができる。
【０１６７】
尚、この変形例のプログラム書き換えシステムにおいても、車両に搭載されたＥＣＵではなく、車両外のスキャンツール９１又は情報端末９２がプログラム書き換え統括機能を有する装置として機能するように構成しても良い。つまり、スキャンツール９１或いは情報端末９２も、通信線３３〜３７及びナビゲーションＥＣＵ１５を介して車両の各ＥＣＵと通信可能であるため、各ＥＣＵから情報を収集して前述した各種判定を行うと共に、各ＥＣＵへ前述した各種指令を出すようにすれば良い。
【０１６８】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１６９】
例えば、前述した図７の書き換え制御動作を実現するためのプログラムや判定基準値は、車両コンピュータシステム１に予め備えられていても良いし、車両外部（センタ３やスキャンツール９１）から車両コンピュータシステム１にダウンロードされるようにしても良い。
【図面の簡単な説明】
【０１７０】
【図１】実施形態のプログラム書き換えシステムを表す構成図である。
【図２】ドアシステム管理ＥＣＵを説明する説明図である。
【図３】セキュリティＥＣＵを説明する説明図である。
【図４】エアコンＥＣＵを説明する説明図である。
【図５】キー電源管理ＥＣＵを説明する説明図である。
【図６】電源管理ＥＣＵを説明する説明図である。
【図７】ナビゲーションＥＣＵ（プログラム書き換え統括機能を有する装置）で実施される書き換え制御動作の流れ全体を表すフローチャートである。
【図８】プログラム書き換えの開始判定処理の内容を表すフローチャートである。
【図９】プログラムのダウンロード処理の内容を表すフローチャートである。
【図１０】プログラム書き換えモードへの移行処理の内容を表すフローチャートである。
【図１１】車両状態の確認処理の内容を表すフローチャートである。
【図１２】車両状態の設定処理の内容を表すフローチャートである。
【図１３】プログラム書き換え処理の内容を表すフローチャートである。
【図１４】プログラム書き換え完了の確認処理の内容を表すフローチャートである。
【図１５】プログラム書き換え完了の通知処理の内容を表すフローチャートである。
【図１６】変形例のプログラム書き換えシステムを表す構成図である。
【符号の説明】
【０１７１】
１…車両コンピュータシステム、３…センタ、５…通信網、７…通信端末、１１…エンジンＥＣＵ、１２…車両挙動ＥＣＵ、１３…エアバッグＥＣＵ、１４…クルーズＥＣＵ、１５…ナビゲーションＥＣＵ、１６…メータＥＣＵ、１７…キー電源管理ＥＣＵ、１８…ライトシステム管理ＥＣＵ、１９…電源管理ＥＣＵ、２０…エアコンＥＣＵ、２１…ドアシステム管理ＥＣＵ、２２…セキュリティＥＣＵ、２３…ディスプレイＥＣＵ、２４…音声案内ＥＣＵ、２５…ブラウザＥＣＵ、２６…オーディオＥＣＵ、３１…ディスプレイ、３３〜３７…通信線、４１…通信部、４２…制御部、４３…運転席カーテシスイッチ、４４…助手席カーテシスイッチ、４５…右後席カーテシスイッチ、４６…左後席カーテシスイッチ、４７…ラゲッジカーテシスイッチ、４８…通信機、５０…運転席ドアロックモータ、５１…助手席ドアロックモータ、５２…右後席ドアロックモータ、５３…左後席ドアロックモータ、５４…ラゲッジロックモータ、６０…侵入センサ、６１…傾斜センサ、６２…振動センサ、６４…音響警報機器、６５…セキュリティインジケータ、６７…外気温センサ、６８…内気温センサ、７０…キーポジションスイッチ、７１〜７４，Ｌ１〜Ｌｎ…電源ライン、７５…バッテリ、７６〜７９，ＳＲ１〜ＳＲｎ…スイッチング装置、８６…電流センサ、８７…温度センサ、９１…スキャンツール、９２…情報端末
【図１】
2006082649.tif 000003
【図２】
2006082649.tif 000004
【図３】
2006082649.tif 000005
【図４】
2006082649.tif 000006
【図５】
2006082649.tif 000007
【図６】
2006082649.tif 000008
【図７】
2006082649.tif 000009
【図８】
2006082649.tif 000010
【図９】
2006082649.tif 000011
【図１０】
2006082649.tif 000012
【図１１】
2006082649.tif 000013
【図１２】
2006082649.tif 000014
【図１３】
2006082649.tif 000015
【図１４】
2006082649.tif 000016
【図１５】
2006082649.tif 000017
【図１６】
2006082649.tif 000018