(57)【特許請求の範囲】
【請求項１】
車両制御装置と、前記車両制御装置により保持されたプログラムを管理する管理装置とが、互いに通信可能に構成されたプログラム管理システムであって、
前記車両制御装置は、
前記管理装置から検査方法を指定したデータの要求を受けると、該要求により指定された検査方法に基づいて、当該車両制御装置が保持するプログラムに関するデータを抽出し、該抽出したデータを前記管理装置に対して送信する通信制御手段を備え、
前記管理装置は、
予め設定された複数の検査方法の中から少なくとも１つの検査方法を選択する検査方法選択手段と、
前記検査方法選択手段により選択された検査方法に基づくデータを前記車両制御装置に対して要求する要求手段と、
前記要求手段の要求に応じて前記車両制御装置から送信されたデータを受信し、該受信したデータの値が予め設定された許容範囲内であれば、前記車両制御装置に格納されたプログラムに異常はないと判定し、該受信したデータの値が前記許容範囲外であれば、前記車両制御装置に格納されたプログラムに異常があると判定するデータ範囲判定手段と、
を備えたことを特徴とするプログラム管理システム。
【請求項２】
車両制御装置と、前記車両制御装置により保持されたプログラムを管理する管理装置とが、互いに通信可能に構成されたプログラム管理システムであって、
前記車両制御装置は、
予め設定された複数の検査方法の中から少なくとも１つの検査方法を選択する検査方法選択手段と、
前記検査方法選択手段により選択された検査方法に基づいて、当該車両制御装置が保持するプログラムに関するデータを抽出し、該抽出したデータを、当該データを抽出する際に選択した検査方法を表す識別情報と共に、前記管理装置に対して送信する通信制御手段と、
を備え、
前記管理装置は、
前記車両制御装置の通信制御手段により送信されたデータを受信し、該受信したデータが、予め識別情報に対応して設定された許容範囲内であれば、前記車両制御装置に格納されたプログラムに異常はないと判定し、該受信したデータが前記許容範囲外であれば、前記車両制御装置に格納されたプログラムに異常があると判定するデータ範囲判定手段と、
を備えたことを特徴とするプログラム管理システム。
【請求項３】
前記検査方法選択手段は、前記検査方法として、前記車両制御装置が保持するプログラムデータの少なくとも一部分である検査領域を選択する検査領域選択手段を備え、
前記通信制御手段は、前記車両制御装置が保持するプログラムデータのうち、前記検査領域選択手段により選択された検査領域のデータを抽出し、前記管理装置に対して送信すること
を特徴とする請求項１または請求項２に記載のプログラム管理システム。
【請求項４】
前記検査領域選択手段は、前記検査領域の検査終了アドレスのみを選択し、
前記通信制御手段は、前記車両制御装置が保持するプログラムデータのうち、予め設定された検査開始アドレスから前記検査領域選択手段により選択された検査終了アドレスまでのデータを抽出し、前記管理装置に対して送信すること
を特徴とする請求項３に記載のプログラム管理システム。
【請求項５】
前記検査領域選択手段は、予め重要なデータとして設定されたデータの中から検査領域を設定することを特徴とする請求項３または請求項４に記載のプログラム管理システム。
【請求項６】
前記検査領域選択手段は、前記車両制御装置が検査対象のプログラムとして保持するプログラムデータの全てを選択可能であることを特徴とする請求項３〜請求項５の何れかに記載のプログラム管理システム。
【請求項７】
前記検査方法選択手段は、前記検査方法として、前記車両制御装置が保持する複数の演算方式から少なくとも１つの演算方式を選択する演算方式選択手段を備え、
前記通信制御手段は、前記演算方式選択手段により選択された演算方式に基づいて、前記車両制御装置が保持するプログラムに関するデータを用いた演算を実行し、該演算結果のデータを前記管理装置に対して送信すること
を特徴とする請求項１〜請求項６の何れかに記載のプログラム管理システム。
【請求項８】
前記管理装置は、前記車両制御装置から送信されてくるデータの数値範囲を推測する推測手段を備えたことを特徴とする請求項１〜請求項７の何れかに記載のプログラム管理システム。
【請求項９】
前記データ範囲判定手段は、受信したデータが予め設定された管理装置内に記憶された参照データと一致すれば、前記車両制御装置に格納されたプログラムに異常はないと判定し、該受信したデータが前記参照データと一致しなければ、前記車両制御装置に格納されたプログラムに異常があると判定し、
前記演算方式選択手段は、前記演算方式としてチェックサム方式を選択可能であること
を特徴とする請求項８に記載のプログラム管理システム。
【請求項１０】
前記管理装置は、前記データ範囲判定手段により前記車両制御装置に格納されたプログラムに異常があると判定されると、前記車両を始動不可に設定するよう前記車両制御装置に対して指示する第１指示手段を備え、
前記車両制御装置は、前記管理装置から前記車両を始動不可に設定するよう指示を受けると、前記車両の始動を禁止する禁止手段を備えたこと
を特徴とする請求項１〜請求項９の何れかに記載のプログラム管理システム。
【請求項１１】
前記禁止手段が前記車両の始動を禁止すると、前記車両の始動が禁止された旨を予め設定された連絡先に通知する第１通知手段を備えたことを特徴とする請求項１０に記載のプログラム管理システム。
【請求項１２】
前記管理装置は、前記データ範囲判定手段により前記車両制御装置に格納されたプログラムに異常があると判定されると、正規のプログラムを前記車両制御装置に対して送信するプログラム送信手段を備え、
前記車両制御装置は、前記管理装置から正規のプログラムを受信すると、当該車両制御装置が保持していたプログラムを、受信した正規のプログラムに書き換える書換手段を備えたこと
を特徴とする請求項１０または請求項１１に記載のプログラム管理システム。
【請求項１３】
前記車両制御装置は、前記書換手段によるプログラムの書き換え後に、前記書き換え後のプログラムの妥当性を問い合わせる問い合わせ手段を備え、
前記管理装置は、前記車両制御装置からプログラムの妥当性の問い合わせを受けると、この問い合わせに対応して車両制御装置により送信されたデータを受信し、該受信したデータの値が予め設定された許容範囲内であれば、前記車両制御装置に格納されたプログラムに異常はないと判定し、該受信したデータの値が前記許容範囲外であれば、前記車両制御装置に格納されたプログラムに異常があると判定する書換判定手段を備えたこと
を特徴とする請求項１２に記載のプログラム管理システム。
【請求項１４】
前記管理装置は、前記書換判定手段によりプログラムに異常はないと判定されると、前記車両を始動可に設定するよう前記車両制御装置に対して指示する第２指示手段を備え、
前記車両制御装置は、前記管理装置から前記車両を始動可に設定するよう指示を受けると、前記禁止手段により設定された前記車両の始動を禁止する設定を解除する解除手段を備えたこと
を特徴とする請求項１３に記載のプログラム管理システム。
【請求項１５】
前記書換判定手段は、前記車両制御装置に格納されたプログラムに異常があると判定すると、再度、前記プログラム送信手段を作動させることを特徴とする請求項１３または請求項１４に記載のプログラム管理システム。
【請求項１６】
前記書換判定手段によりプログラムに異常があると判定した回数を監視する監視手段と、
前記監視手段により監視している回数が、予め設定された所定回数以上になった場合に、予め設定された連絡先にプログラムが正常に書き換えられない旨を通知する第２通知手段と、
を備えたことを特徴とする請求項１５に記載のプログラム管理システム。
【請求項１７】
前記検査方法選択手段または前記検査方法選択手段を、前記車両制御装置の起動時、起動中の所定時間毎、シャットダウン時、の少なくとも何れかで起動させる起動制御手段を備えたことを特徴とする請求項１〜請求項１６の何れかに記載のプログラム管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置と車両とが定期的に通信し、管理装置が車両に搭載されたプログラムを管理するプログラム管理システムに関する。
【背景技術】
【０００２】
上記プログラム管理システムにおいて、車両（車両制御装置）に搭載されたプログラムの異常（誤作動等）を検出可能なものが知られている。即ち、車両に搭載されたＣＰＵは、管理装置から制御パラメータの要求を受けると、要求された制御パラメータを管理装置に送信する。そして、管理装置は、この制御パラメータの内容が、管理装置に記憶された内容（履歴）に基づく期待値内に収まっているか否かを判定することにより、車両に搭載されたプログラムの異常（誤作動等）を検出する（例えば、特許文献１参照）。
【特許文献１】特許第３３２５８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記プログラム管理システムにおいて、制御パラメータの送信機能を維持した状態の異常が発生した場合には、管理装置側では適切な制御パラメータとして受信してしまうので、上記システムにおいてはプログラムの異常を検出することができない場合がある。具体的には、例えば、悪意のある者により、車両のＣＰＵにより参照されるプログラムが、制御パラメータの要求を受けると制御パラメータを送信する機能を有する不正な制御プログラムに書き換えられた場合等には、プログラムは「制御パラメータの送信機能を維持した状態の異常」となり、管理装置でこの異常を検出することができない。
【０００４】
そこで、このような問題点を鑑み、センタと、センタに対して通信可能な車両制御装置と、を有するプログラム管理システムにおいて、車両制御装置に搭載された制御プログラムの異常を確実に検出できるようにすることを本発明の目的とする。
【課題を解決するための手段】
【０００５】
かかる目的を達成するために成された請求項１に記載のプログラム管理システムにおいて、車両制御装置は、通信制御手段が、管理装置から検査方法を指定したデータの要求を受けると、この要求により指定された検査方法に基づいて、車両制御装置が保持するプログラムに関するデータを抽出し、この抽出したデータを管理装置に対して送信する。また、管理装置は、検査方法選択手段が予め設定された複数の検査方法の中から少なくとも１つの検査方法を選択し、要求手段が選択された検査方法に基づくデータを車両制御装置に対して要求する。そして、管理装置のデータ範囲判定手段が、要求手段の要求に応じて車両制御装置から送信されたデータを受信し、受信したデータの値が予め設定された許容範囲内であるか否かを判定することにより、車両制御装置に格納されたプログラムの異常の有無を判定する。
【０００６】
従って、このようなプログラム管理システムによれば、管理装置にて指定した検査方法に対応したデータを車両制御装置に送信させるので、車両制御装置に搭載された制御プログラムに異常がなければ、車両制御装置は指定された検査方法に基づくデータを送信できるのに対して、車両制御装置に搭載された制御プログラムに異常があれば、車両制御装置は指定された検査方法に基づくデータを送信できない。
【０００７】
よって管理装置は、車両制御装置から受信したデータに基づいて、車両制御装置に搭載された制御プログラムの異常を確実に検出することができる。
なお、検査方法選択手段は、例えば、この手段による処理を開始するタイミングに基づいて選択する検査方法を決定してもよいし、前回選択した検査方法に基づいて選択する検査方法を決定するようにしてもよい。
【０００８】
また、「当該車両制御装置が保持するプログラムに関するデータ」とは、プログラムデータそのもののうち、少なくとも一部分のデータであってもよいし、このプログラムによって使用されるパラメータであってもよい。また、プログラムデータを断片的に抽出し、抽出したデータを基に演算を行った演算結果であってもよい。
【０００９】
また、管理装置の要求手段は、検査プログラムを車両制御装置に送信し、この検査プログラムを車両制御装置に実行させることにより車両制御装置からデータを受信するようにしてもよいし、予め複数の検査方法を車両制御装置に格納しておき、要求手段は車両制御装置に実行させる検査方法のみを指定してもよい。
【００１０】
また、請求項２に記載のプログラム管理システムにおいては、車両制御装置に検査方法選択手段を備え、通信制御手段は検査方法を表す識別情報と共に選択した検査方法に関するデータを送信する。また、管理装置では、識別情報とデータとの対応関係に妥当性があるか否かを判定する。
【００１１】
従って、このようなプログラム管理システムにおいて、車両制御装置は自ら指定した検査方法に対応したデータを識別情報と共に車両制御装置に送信するので、車両制御装置は、車両制御装置に搭載された制御プログラムに異常がなければ、送信するデータとこのデータに対応する識別情報を送信できるのに対して、車両制御装置に搭載された制御プログラムに異常があれば、車両制御装置は送信するデータに識別情報を対応させることができない。
【００１２】
よって管理装置は、請求項１のプログラム管理システムと同様に、車両制御装置から受信したデータに基づいて、車両制御装置に搭載された制御プログラムの異常を確実に検出することができる。
【００１３】
ところで、請求項１または請求項２に記載のプログラム管理システムにおいては、請求項３に記載のように、検査方法選択手段は、検査方法として、車両制御装置が保持するプログラムデータの少なくとも一部分である検査領域を選択する検査領域選択手段を備え、通信制御手段は、車両制御装置が保持するプログラムデータのうち、検査領域選択手段により選択された検査領域のデータを抽出し、管理装置に対して送信するようにしてもよい。
【００１４】
このようなプログラム管理システムによれば、検査方法選択手段により検査毎に異なる検査領域を選択することができるので、検査毎に何れの検査領域が選択されるかを予想し難くすることができる。よって、プログラムが不正に書き換えられたことによるプログラムの異常であっても、この異常を確実に検出することができる。
【００１５】
さらに、請求項３に記載のプログラム管理システムにおいては、請求項４に記載のように、検査領域選択手段は、検査領域の検査終了アドレスのみを選択し、通信制御手段は、車両制御装置が保持するプログラムデータのうち、予め設定された検査開始アドレスから検査領域選択手段により選択された検査終了アドレスまでのデータを抽出し、管理装置に対して送信するようにしてもよい。
【００１６】
このようなプログラム管理システムによれば、検査開始アドレスおよび検査終了アドレスを選択する場合と比較して、管理装置または車両制御装置における処理を簡素化することができる。つまり、この構成によりプログラムのロジックを簡素化することができるので、このプログラムを起動する際の処理負荷を軽減することができる。
【００１７】
また、請求項３または請求項４に記載のプログラム管理システムにおいて、検査領域選択手段は、請求項５に記載のように、予め重要なデータとして設定されたデータの中から検査領域を設定するようにしてもよい。
【００１８】
このようなプログラム管理システムによれば、車両制御装置にとって重要なデータを管理装置にて重点的にチェックすることができるので、重要なデータに異常が発生して車両制御装置の基本的な機能が損なわれてしまうことを防止することができる。
【００１９】
加えて、請求項３〜請求項５の何れかに記載のプログラム管理システムにおいて、検査領域選択手段は、請求項６に記載のように、車両制御装置が検査対象のプログラムとして保持するプログラムデータの全てを選択可能であってもよい。
【００２０】
このようなプログラム管理システムによれば、例えば、プログラムの書き換えを実行したとき等、全てのプログラムをチェックすることが好ましい場合には、検査対象のプログラムとして保持するプログラムデータの全てを選択することができる。よって、プログラムデータの検査を確実に実施することができる。
【００２１】
また、請求項１〜請求項６の何れかに記載のプログラム管理システムにおいては、請求項７に記載のように、検査方法選択手段は、検査方法として、車両制御装置が保持する複数の演算方式から少なくとも１つの演算方式を選択する演算方式選択手段を備え、通信制御手段は、演算方式選択手段により選択された演算方式に基づいて、車両制御装置が保持するプログラムに関するデータを用いた演算を実行し、この演算結果のデータを管理装置に対して送信するようにしてもよい。
【００２２】
このようなプログラム管理システムによれば、演算に使用するデータが同じであったとしても、演算方式が異なるため、管理装置に対して演算方式により異なるデータを送信することができる。
【００２３】
なお、請求項３〜請求項６の何れかに記載の発明と本発明とを組み合わせれば、検査毎に異なる検査領域を選択することができる。
さらに、請求項１〜請求項７の何れかに記載のプログラム管理システムにおいて、管理装置は、請求項８に記載のように、車両制御装置から送信されてくるデータの数値範囲を推測する推測手段を備えていてもよい。
【００２４】
このようなプログラム管理システムによれば、制御パラメータ等の時間と共に値が変化するデータを車両制御装置から取得する場合においても、適切にプログラムの異常を判定することができる。
【００２５】
ところで、請求項１〜請求項６の何れかに記載のプログラムにおいて、データ範囲判定手段は、受信したデータが予め設定された管理装置内に記憶された参照データと一致すれば、車両制御装置に格納されたプログラムに異常はないと判定し、この受信したデータが参照データと一致しなければ、車両制御装置に格納されたプログラムに異常があると判定するよう構成されていてもよい。ここで、請求項８に記載のプログラム管理システムにおいて、データ範囲判定手段がこのように構成されている場合には、演算方式選択手段は、請求項９に記載のように、演算方式としてチェックサム方式を選択可能であってもよい。
【００２６】
このようなプログラム管理システムにおいて、チェックサム方式が選択された場合には、このチェックサム方式はプログラムのロジックが簡素であるため、演算速度を向上させることができる。よって、通信の際の応答性を向上させることができる。
【００２７】
また、請求項１〜請求項９の何れかに記載のプログラム管理システムにおいては、請求項１０に記載のように、管理装置は、データ範囲判定手段により車両制御装置に格納されたプログラムに異常があると判定されると、車両を始動不可に設定するよう車両制御装置に対して指示する第１指示手段を備え、車両制御装置は、管理装置から車両を始動不可に設定するよう指示を受けると、車両の始動を禁止する禁止手段を備えていてもよい。
【００２８】
このようなプログラム管理システムによれば、プログラムに異常がある場合には、車両の始動を禁止することができる。よって、プログラムに異常がある状態で車両が運転されることを防止することができる。
【００２９】
加えて、請求項１０に記載のプログラム管理システムにおいては、請求項１１に記載のように、禁止手段が車両の始動を禁止すると、車両の始動が禁止された旨を予め設定された連絡先に通知する第１通知手段を備えていてもよい。
【００３０】
このようなプログラム管理システムによれば、車両の始動が禁止された旨を予め設定された連絡先に通知することができるので、通知を受けた者は、プログラムに異常が発生したことを認識することができる。
【００３１】
さらに、請求項１０または請求項１１に記載のプログラム管理システムにおいては、請求項１２に記載のように、管理装置は、データ範囲判定手段により車両制御装置に格納されたプログラムに異常があると判定されると、正規のプログラムを車両制御装置に対して送信するプログラム送信手段を備え、車両制御装置は、管理装置から正規のプログラムを受信すると、車両制御装置が保持していたプログラムを受信した正規のプログラムに書き換える書換手段を備えていてもよい。
【００３２】
このようなプログラム管理システムによれば、プログラムの異常を検出したときには、正規のプログラムに書き換えることができる。
よって、作業者により車両制御装置のプログラムを書き換える必要がなくなるので、プログラムの書換作業を簡素化することができる。また、車両の自動車販売店や整備工場に持ち込む必要がなくなるので、車両制御装置のユーザにとって煩わしい作業を省くことができ、ユーザの利便性を向上させることができる。
【００３３】
なお、本発明は、請求項１４に記載の発明を考慮しなければ、請求項１〜請求項１０の何れかに記載の発明の従属項にすることができる。
また、請求項１２に記載のプログラム管理システムにおいては、請求項１３に記載のように、車両制御装置は、書換手段によるプログラムの書き換え後に、書き換え後のプログラムの妥当性を問い合わせる問い合わせ手段を備えており、管理装置は、車両制御装置からプログラムの妥当性の問い合わせを受けると、この問い合わせに対応して車両制御装置により送信されたデータを受信し、受信したデータの値が予め設定された許容範囲内であれば、車両制御装置に格納されたプログラムに異常はないと判定し、受信したデータの値が許容範囲外であれば、車両制御装置に格納されたプログラムに異常があると判定する書換判定手段を備えていてもよい。
【００３４】
このようなプログラム管理システムによれば、車両制御装置のプログラムを書き換えた場合に、書き換え後のプログラムに異常があるか否かを確認することができる。
なお、問い合わせ手段は、書換手段によるプログラムの書き換え後に、書き換え後のプログラムデータの少なくとも一部分を管理装置に送信することにより書き換え後のプログラムの妥当性を問い合わせるようにしてもよいし、問い合わせ手段は、問い合わせの要求のみを送信し、別途設けられた確認送信手段が、書換手段によるプログラムの書き換え後に、書き換え後のプログラムデータの少なくとも一部分を管理装置に送信するようにしてもよい。
【００３５】
さらに、請求項１３に記載のプログラム管理システムにおいては、請求項１４に記載のように、管理装置は、書換判定手段によりプログラムに異常がないと判定されると、車両を始動可に設定するよう車両制御装置に対して指示する第２指示手段を備え、車両制御装置は、管理装置から車両を始動可に設定するよう指示を受けると、禁止手段により設定された車両の始動を禁止する設定を解除する解除手段を備えていてもよい。
【００３６】
このようなプログラム管理システムによれば、プログラムが異常な状態から正常な状態に書き換えられた場合には、車両の始動を許可することができる。
また、請求項１３または請求項１４に記載のプログラム管理システムにおいて、書換判定手段は、請求項１５に記載のように、車両制御装置に格納されたプログラムに異常があると判定すると、再度プログラム送信手段を作動させてもよい。
【００３７】
このようなプログラム管理システムによれば、書き換え後のプログラムに異常がある場合に、再度プログラムの書き換えを実行することができるので、プログラム書換の確実性を向上させることができる。
【００３８】
さらに、請求項１５に記載のプログラム管理システムにおいては、請求項１６に記載のように、書換判定手段によりプログラムに異常があると判定した回数を監視する監視手段と、監視手段により監視している回数が、予め設定された所定回数以上になった場合に、予め設定された連絡先にプログラムが正常に書き換えられない旨を通知する第２通知手段と、を備えていてもよい。
【００３９】
このようなプログラム管理システムによれば、プログラムの書き換えができない場合には、所定の連絡先に通知することができる。よって、プログラムの異常を早期にユーザ等の者に通知することができる。
【００４０】
なお、本発明の連絡先としては、車両制御装置のユーザや、管理装置の操作者、或いは、車両制御装置の販売店（車両の販売店や整備工場）等が挙げられる。
また、本発明の第２通知手段は、監視手段により監視している回数が、予め設定された所定回数以上になった場合に、プログラム送信手段の作動を停止するよう設定してもよい。
【００４１】
ところで、車両制御装置に搭載されたプログラムにいつ異常が発生するかについては予測することが難しい。そこで、請求項１７に記載のように、検査方法選択手段または検査方法選択手段を、前記車両制御装置の起動時、起動中の所定時間毎、シャットダウン時、の少なくとも何れかで起動させる起動制御手段を備えていてもよい。
【００４２】
このようなプログラム管理システムによれば、車両制御装置の起動時、起動中の所定時間毎、シャットダウン時、の少なくとも何れかでプログラムに異常があるか否かの検査をすることができるので、プログラムに異常が発生したとしても比較的早期にその異常を検出することができる。
【発明を実施するための最良の形態】
【００４３】
以下に本発明にかかる実施の形態を図面と共に説明する。
［実施例１］
図１は、実施例１のプログラム管理システム１の概要を示すブロック図である。
【００４４】
このプログラム管理システム１は、管理センタ１０（管理装置）にて車両３０に搭載された制御プログラムを管理するシステムであって、管理センタ１０と複数の車両３０とが、インターネット網５および無線通信用の通信施設７を介して無線通信可能に構成されている。
【００４５】
管理センタ１０は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えた周知のマイクロコンピュータとして構成されたプログラム管理制御部１１と、プログラム管理制御部１１が外部とデータ通信を行うための通信インターフェイス（Ｉ／Ｆ）１３とを備えている。
【００４６】
プログラム管理制御部１１のＣＰＵは、ＲＯＭに格納された管理プログラムに基づいて、複数の車両３０と順次通信を行うことにより、車両３０に搭載された制御プログラムのアップデートを実行したり、制御プログラムの異常を検出する処理（後述する管理処理）を実行したりする。なお、制御プログラムの異常は、例えば、ノイズにより制御プログラムの特定ビットが反転してしまうことや、悪意のある者によりプログラムが改ざんされてしまうこと等により発生する可能性がある。
【００４７】
車両３０は、エンジン３５や、エンジンスタータ３７、その他の装置３９を制御する車両制御部３１と、車両制御部３１が外部とデータ通信を行うための通信インターフェイス３３とを備えている。
【００４８】
車両制御部３１は、ＣＰＵ３１ａ、ＲＯＭ３１ｂ、ＲＡＭ３１ｃ、および書き換え可能メモリ３１ｄを備えた周知のマイクロコンピュータとして構成されており、ＣＰＵ３１ａは、ＲＯＭ３１ｂおよび書き換え可能メモリ３１ｄに格納されたプログラムに基づいて、車両３０の制御を実行する。また、ＣＰＵ３１ａは、予めＲＯＭ３１ｂに格納された管理プログラムに基づいて、後述する車両処理を実行する。
【００４９】
なお、管理プログラムが書き換え可能メモリ３１ｄではなく、ＲＯＭ３１ｂに格納されているのは、書き換え可能メモリ３１ｄの内容を書き換えた際に、書き換えエラーにより管理プログラムが起動しなくなることを防止するためである。
【００５０】
ただし、管理プログラムはＲＯＭ３１ｂではなく、書き換え可能メモリ３１ｄに格納されていてもよい。さらに、管理プログラムは、書き換え可能メモリ３１ｄ内であっても、通常の書き換え処理では書き換えることができない領域に格納されていれば、書き換えエラーにより管理プログラムが起動しなくなることを防止することができる。
【００５１】
次に、このようなプログラム管理システム１において、車両３０の書き換え可能メモリ３１ｄに格納された制御プログラムの異常を検出する処理について図２を用いて説明する。図２は管理センタ１０のプログラム管理制御部１１（ＣＰＵ）が実行する管理処理を示すフローチャートである。
【００５２】
この管理処理は、例えば定期的に、各車両３０に対して順次起動される処理であって（起動制御手段）、まず、ランダムに演算方式および検査領域を設定する（Ｓ１１０：検査方法選択手段、検査領域選択手段、演算方式選択手段）。ここで、この処理においては、例えば、ＣＰＵの内部にて乱数を発生させ、乱数に対応して予め設定された検査方式および検査領域を設定する（Ｓ２２０も同様）。
【００５３】
ここで、検査領域は、例えば開始アドレスと終了アドレスとが選択されることにより、これらのアドレスを範囲の両端部とする任意のデータ範囲が設定される。なお、この検査領域は、例えば図３（ａ）にてハッチング部分で示すような領域となる。
【００５４】
ただし、この検査領域を設定するにあたっては、図３（ｂ）に示すように、終了アドレスのみを選択するようにしてもよい。この場合、開始アドレスは予め設定されたアドレス（例えば先頭アドレス）に設定される。このように検査領域を選択すれば、検査開始アドレスおよび検査終了アドレスを選択する場合と比較して、プログラム管理制御部１１または車両制御部３１における処理を簡素化することができる。つまり、この構成によりプログラムのロジックを簡素化することができるので、このプログラムを起動する際の処理負荷を軽減することができる。
【００５５】
また、図３（ｃ）に示すように、重要なパラメータが格納されたアドレスの領域が予め分かっている場合には、検査領域を設定するにあたっては、このアドレス領域の全てまたはそのうちの少なくとも一部分を選択するようにしてもよい。このように検査領域を選択すれば、車両制御部３１にとって重要なデータを管理センタ１０にて重点的にチェックすることができるので、重要なデータに異常が発生して車両制御部３１の基本的な機能が損なわれてしまうことを防止することができる。
【００５６】
次いで図２に戻り、設定した演算方式および検査領域に対応するデータを車両３０に対して要求する（Ｓ１２０：要求手段）。つまり、車両３０に対して演算指令を送信する。なお、この処理においてデータの要求を受けた車両３０は、図４に示す車両処理（詳細は後述）を実行し、設定した演算方式および検査領域に対応する演算結果（Ｂ）を管理センタ１０に対して返信する。
【００５７】
続いて、車両３０との通信ができたか否かを判定する（Ｓ１３０）。通信ができていなければ（Ｓ１３０：Ｎｏ）、車両３０が通信不能状態であるものとして管理処理を終了する。一方、車両３０との通信ができていれば（Ｓ１３０：Ｙｅｓ）、車両３０からの応答データとして期待される演算結果（Ａ）を演算する（Ｓ１４０：推測手段）。ここで、例えば、演算方式としてチェックサム方式が選択されていれば、設定した検査領域のデータにおけるチェックサムを演算する。なお、チェックサム方式以外の演算方式としては、例えば、検査領域内のデータを、交互に加算・減算する方式等、どのような演算方式であってもよい。
【００５８】
そして、車両３０から演算結果（Ｂ）を受信したか否かを判定する（Ｓ１５０、Ｓ１５０〜Ｓ１８０：データ範囲判定手段）。演算結果（Ｂ）を受信していなければ（Ｓ１５０：Ｎｏ）、この処理を繰り返す。また、演算結果（Ｂ）を受信していれば（Ｓ１５０：Ｙｅｓ）、自ら演算した演算結果（Ａ）と受信した演算結果（Ｂ）とを比較する（Ｓ１６０）。
【００５９】
続いて、これらの演算結果（Ａ）および（Ｂ）が一致するか否かを判定する（Ｓ１７０）。これらが一致していれば（Ｓ１７０：Ｙｅｓ）、車両３０に搭載された制御プログラムに異常がないものと判断して管理処理を終了する。一方、これらが一致していなければ（Ｓ１７０：Ｎｏ）、プログラムの異常を認識し（Ｓ１８０）、車両３０に対してエンジン３５を始動不可に設定するよう指令する（Ｓ１９０：第１指示手段）。
【００６０】
そして、正しいプログラムデータ（異常がない正規のプログラムデータ）を車両３０に対して送信する（Ｓ２００：プログラム送信手段）。
なお、車両３０では、車両処理にて、正しいプログラムデータを受信すると、このプログラムデータを書き換え可能メモリ３１ｄに格納された制御プログラムに上書き保存し、プログラムの書き換えが正常に実行されたか否かの確認を求める問い合わせ要求を管理センタ１０に対して送信する。
【００６１】
そこで、管理処理では、車両３０からこの問い合わせ要求を受信したか否かを判定する（Ｓ２１０）。問い合わせ要求を受信していなければ（Ｓ２１０：Ｎｏ）、この処理を繰り返し、問い合わせ要求を受信していれば（Ｓ２１０：Ｙｅｓ）、ランダムに計算方法を設定すると共に、検査領域に関しては制御プログラムの全領域に設定する（Ｓ２２０）。
【００６２】
なお、Ｓ２３０〜Ｓ２７０処理においては、前述のＳ１２０，Ｓ１４０〜Ｓ１７０の処理と同様の処理を実行する。
即ち、設定した演算方式および検査領域に対応するデータを車両３０に対して要求し（Ｓ２３０）。車両３０からの応答データとして期待される演算結果（Ｃ）を演算する（Ｓ２４０）。
【００６３】
そして、車両３０から演算結果（Ｄ）を受信したか否かを判定する（Ｓ２５０）。演算結果（Ｄ）を受信していなければ（Ｓ２５０：Ｎｏ）、この処理を繰り返す。また、演算結果（Ｄ）を受信していれば（Ｓ２５０：Ｙｅｓ）、自ら演算した演算結果（Ｃ）と受信した演算結果（Ｄ）とを比較する（Ｓ２６０：書換判定手段）。
【００６４】
続いて、これらの演算結果（Ｃ）および（Ｄ）が一致するか否かを判定する（Ｓ２７０：書換判定手段）。
これらの演算結果（Ｃ）および（Ｄ）が一致していれば（Ｓ２７０：Ｙｅｓ）、車両３０に搭載された制御プログラムに異常がないものと判断し、車両３０に対してエンジン３５を始動可能に設定するよう指令し（Ｓ３００：第２指示手段）、管理処理を終了する。
【００６５】
また、演算結果（Ｃ）および（Ｄ）が不一致であれば（Ｓ２７０：Ｎｏ）、Ｓ２７０にて不一致であると判定した回数をＲＡＭ等の一時メモリにインクリメントし、この不一致回数ｎが予め設定された基準回数ｍ（例えば３回）よりも大きいか否かを判定する（Ｓ２８０：監視手段）。
【００６６】
不一致回数ｎが基準回数ｍ以上であれば（Ｓ２８０：Ｙｅｓ）、予め設定された連絡先である車両販売店に車両３０に搭載された制御プログラムを正規のプログラムに書き換えできない旨を通知し（Ｓ２９０：第２通知手段）、この管理処理を終了する。また、不一致回数ｎが基準回数ｍ未満であれば（Ｓ２８０：Ｎｏ）、Ｓ２００からの処理を繰り返す。
【００６７】
なお、不一致回数ｎは、Ｓ２９０またはＳ３００の処理が実行されるとクリア（ｎ←０）される。
次に、この管理処理に対応して車両３０側で実行される処理について図４を用いて説明する。図４は車両３０の車両制御部３１（ＣＰＵ３１ａ）が実行する車両処理を示すフローチャートである。
【００６８】
この車両処理は、車両のＩＧ（イグニッション）がＯＮにされているときに起動される処理であって、まず管理センタ１０から何らかのデータを受信したか否かを判定する（Ｓ５１０）。管理センタ１０から何もデータを受信していなければ（Ｓ５１０：Ｎｏ）、車両処理を初めから繰り返す。
【００６９】
また、管理センタ１０から何らかのデータを受信していれば（Ｓ５１０：Ｙｅｓ）、受信したデータが演算指令であるか否かを判定する（Ｓ５２０）。なお、この処理にて判定される演算指令とは、管理処理のＳ１２０およびＳ２３０にて送信された演算指令に対応する。
【００７０】
受信したデータが演算指令であれば（Ｓ５２０：Ｙｅｓ）、演算指令の内容に基づいて、指定された演算方式および検査領域を制御プログラムから選択し、この制御プログラムに基づいて応答データを演算し（Ｓ５５０：通信制御手段）、演算結果を管理センタ１０に対して送信後（Ｓ５６０：通信制御手段）、車両処理を初めから繰り返す。
【００７１】
一方、受信したデータが演算指令ではなければ（Ｓ５２０：Ｎｏ）、受信したデータがプログラムデータであるか否かを判定する（Ｓ５３０）。なお、この処理にて判定されるプログラムデータとは、管理処理のＳ２００にて送信されるプログラムデータに対応する。
【００７２】
受信したデータがプログラムデータであれば（Ｓ５３０：Ｙｅｓ）、書き換え可能メモリ３１ｄに格納されている制御プログラムを受信したプログラムに書き換え（Ｓ５７０：書換手段）、プログラムの書き換えが正常に実行されたか否かの確認を求める問い合わせ要求を管理センタ１０に対して送信し（Ｓ５８０：問い合わせ手段）、車両処理を初めから繰り返す。
【００７３】
また、受信したデータがプログラムデータでなければ（Ｓ５３０：Ｎｏ）、受信したデータがエンジン３５を始動可能または始動不可能に設定する指令であるか否かを判定する（Ｓ５４０）。なお、この処理にて判定されるエンジン３５を始動可能または始動不可能に設定する指令とは、管理処理のＳ１９０およびＳ３００にて送信された指令に対応する。
【００７４】
受信したデータがエンジン３５を始動可能または始動不可能に設定する指令であれば（Ｓ５４０：Ｙｅｓ）、車両３０のエンジン３５を始動可能または始動不可能に設定する（Ｓ５９０：禁止手段、解除手段）。ここで、車両３０を始動不可能にする設定としては、例えば、スタータ３７の駆動を禁止する設定をすればよい。また、車両３０を始動可能にする設定としては、スタータ３７の駆動を禁止する設定を解除すればよい。
【００７５】
続いて、この処理が終了すると、Ｓ５５０にて設定された状態（始動可能または始動不可能）を、車両３０のユーザに通知し（Ｓ６００：第１通知手段）、車両処理を初めから繰り返す。
【００７６】
以上のように詳述したプログラム管理システム１において、管理センタ１０のプログラム管理制御部１１は、管理処理にて予め設定された複数の検査方法の中から少なくとも１つの検査方法を選択し（Ｓ１１０）、選択された検査方法に基づくデータを車両制御部３１に対して要求する（Ｓ１２０）。そして、要求に応じて車両３０の車両制御部３１から送信されたデータを受信し、受信したデータの値が予め設定された許容範囲内であるか否かを判定することにより、車両制御部３１に格納されたプログラムの異常の有無を判定する（Ｓ１５０〜Ｓ１８０）。
【００７７】
一方、車両３０の車両制御部３１は、車両処理にて、管理センタ１０から検査方法を指定したデータの要求を受けると、この要求により指定された検査方法に基づいて、車両制御部３１が保持するプログラムに関するデータを抽出し、この抽出したデータを管理センタ１０に対して送信する（Ｓ５５０，Ｓ５６０）。
【００７８】
従って、このようなプログラム管理システム１によれば、管理センタ１０にて指定した検査方法に対応したデータを車両３０に送信させるので、車両３０に搭載された制御プログラムに異常がなければ、車両制御部３１は指定された検査方法に基づくデータを送信できるのに対して、車両３０に搭載された制御プログラムに異常があれば、車両制御部３１は指定された検査方法に基づくデータを送信できない。
【００７９】
よって管理センタ１０のプログラム管理制御部１１は、車両３０から受信したデータに基づいて、車両３０に搭載された制御プログラムの異常を確実に検出することができる。
また、プログラム管理制御部１１は、管理処理にて、検査方法として、車両制御部３１が保持するプログラムデータの少なくとも一部分である検査領域を選択する（Ｓ１１０）。また、車両制御部３１は、車両制御部３１が保持するプログラムデータのうち、選択された検査領域のデータを抽出し、管理センタ１０に対して送信する（Ｓ５５０，Ｓ５６０）。
【００８０】
従って、プログラム管理システム１によれば、検査毎に異なる検査領域を選択することができるので、検査毎に何れの検査領域が選択されるかを予想し難くすることができる。よって、プログラムが不正に書き換えられたことによるプログラムの異常であっても、この異常を確実に検出することができる。
【００８１】
加えて、プログラム管理制御部１１は、車両制御部３１が検査対象のプログラムとして保持するプログラムデータの全てを選択可能にされている。
従って、このようなプログラム管理システム１によれば、例えば、プログラムの書き換えを実行したとき等、全てのプログラムをチェックすることが好ましい場合には、検査対象のプログラムとして保持するプログラムデータの全てを選択することができる。よって、プログラムデータの検査を確実に実施することができる。
【００８２】
さらに、プログラム管理制御部１１は、車両制御部３１が保持する複数の演算方式から少なくとも１つの演算方式を選択する。また、車両３０の車両制御部３１は、車両処理にて、選択された演算方式に基づいて、予め設定された車両制御部３１が保持するプログラムに関するデータを演算し、この演算結果のデータを管理センタ１０に対して送信する（Ｓ５５０，Ｓ５６０）。
【００８３】
従って、このようなプログラム管理システム１によれば、演算に使用するデータが同じであったとしても、演算方式が異なるため、管理センタ１０に対して演算方式により異なるデータを送信することができる。
【００８４】
さらに、プログラム管理制御部１１は、管理処理にて、車両制御部３１から送信されてくるデータの数値範囲を推測する（Ｓ１４０）。
従って、このようなプログラム管理システム１によれば、時間と共に値が変化するデータを車両制御部３１から取得する場合においても、適切にプログラムの異常を判定することができる。
【００８５】
加えて、上記プログラム管理システム１においては、演算方式としてチェックサム方式を選択可能にされている。
従って、このようなプログラム管理システム１において、チェックサム方式が選択された場合には、このチェックサム方式はプログラムのロジックが簡素であるため、演算速度を向上させることができる。よって、通信の際の応答性を向上させることができる。
【００８６】
また、車両制御部３１は車両に搭載されており、プログラム管理制御部１１は、管理処理にて車両制御部３１に格納されたプログラムに異常があると判定されると、車両３０を始動不可に設定するよう車両制御部３１に対して指示する。そして、車両制御部３１は、管理センタ１０から車両３０を始動不可に設定するよう指示を受けると、車両３０の始動を禁止する（Ｓ５９０）。
【００８７】
従って、このようなプログラム管理システム１によれば、プログラムに異常がある場合には、車両３０の始動を禁止することができる。よって、プログラムに異常がある状態で車両３０が運転されることを防止することができる。
【００８８】
加えて、車両制御部３１は、車両の始動が禁止されると、車両の始動が禁止された旨を予め設定された連絡先に通知する（Ｓ６００）。
従って、このようなプログラム管理システム１によれば、車両３０の始動が禁止された旨を予め設定された連絡先に通知することができるので、車両３０が始動されなくなった理由を容易に特定することができる。また、連絡先の者はプログラムに異常が発生したことを認識することができる。
【００８９】
さらに、プログラム管理制御部１１は、車両制御部３１に格納されたプログラムに異常があると判定すると、正規のプログラムを車両制御部３１に対して送信する（Ｓ２００）。そして、車両制御部３１は、管理センタ１０から正規のプログラムを受信すると、車両制御部３１が保持していたプログラムを受信した正規のプログラムに書き換える（Ｓ５７０）。
【００９０】
従って、このようなプログラム管理システム１によれば、プログラムの異常を検出したときには、正規のプログラムに書き換えることができる。
よって、作業者により車両制御部３１のプログラムを書き換える必要がなくなるので、プログラムの書換作業を簡素化することができる。また、車両の自動車販売店や整備工場に持ち込む必要がなくなるので、車両３０のユーザにとって煩わしい作業を省くことができ、ユーザの利便性を向上させることができる。
【００９１】
また、車両制御部３１は、車両処理にて、プログラムの書き換え後に、書き換え後のプログラムデータの少なくとも一部分を管理センタ１０に送信することにより書き換え後のプログラムの妥当性を問い合わせる（Ｓ５８０）。そして、プログラム管理制御部１１は、車両制御部３１からプログラムの妥当性の問い合わせを受けると、この問い合わせに対応して車両制御部３１により送信されたデータを受信し、受信したデータの値が予め設定された許容範囲内であれば、車両制御部３１に格納されたプログラムに異常はないと判定し、受信したデータの値が許容範囲外であれば、車両制御部３１に格納されたプログラムに異常があると判定する（Ｓ２６０，Ｓ２７０）。
【００９２】
従って、このようなプログラム管理システム１によれば、車両制御部３１のプログラムを書き換えた場合に、書き換え後のプログラムに異常があるか否かを確認することができる。
【００９３】
さらに、プログラム管理制御部１１は、プログラムに異常がないと判定されると、車両３０を始動可に設定するよう車両制御部３１に対して指示する（Ｓ３００）。そして、車両制御部３１は、管理センタ１０から車両３０を始動可に設定するよう指示を受けると、車両の始動を禁止する設定を解除する（Ｓ５９０）。
【００９４】
従って、このようなプログラム管理システム１によれば、プログラムが異常な状態から正常な状態に書き換えられた場合には、車両３０の始動を許可することができる。
また、プログラム管理制御部１１は車両制御部３１に格納されたプログラムに異常があると判定すると、再度Ｓ２００の処理を作動させる（Ｓ２６０，Ｓ２７０）。
【００９５】
従って、このようなプログラム管理システム１によれば、書き換え後のプログラムに異常がある場合に、再度プログラムの書き換えを実行することができるので、プログラム書換の確実性を向上させることができる。
【００９６】
さらに、プログラム管理制御部１１は、プログラムに異常があると判定した回数を監視し、監視している回数が、予め設定された所定回数以上になった場合に、予め設定された連絡先にプログラムが正常に書き換えられない旨を通知する（Ｓ２９０）。
【００９７】
従って、このようなプログラム管理システム１によれば、プログラムの書き換えができない場合には、所定の連絡先に通知することができる。よって、プログラムの異常を早期にユーザ等の者に通知することができる。
【００９８】
また、プログラム管理制御部１１による管理処理および車両制御部３１による車両処理は、定期的に起動される。
従って、このようなプログラム管理システム１によれば、定期的にプログラムに異常があるか否かの検査をすることができるので、プログラムに異常が発生したとしても比較的早期にその異常を検出することができる。
【００９９】
［実施例２］
次に、別形態のプログラム管理システム１について説明する。本実施例（実施例２）では、実施例１と異なる箇所のみを詳述し、実施例１と同様の箇所については、同一の符号を付して説明を省略する。
【０１００】
本実施例のプログラム管理システム１においては、車両３０が自ら制御プログラムを検査するための演算方式および検査領域を設定する。
この処理の具体例について、図５を用いて説明する。ここで、図５（ａ）は車両３０の車両制御部３１（ＣＰＵ３１ａ）が実行する実施例２の車両処理を示すフローチャート、図５（ｂ）は管理センタ１０のプログラム管理制御部１１（ＣＰＵ）が実行する実施例２の管理処理を示すフローチャートである。
【０１０１】
本実施例の車両処理は、車両制御部３１の起動時、またはイグニッションがＯＦＦされた後のシャットダウン時、または所定時間後に繰り返し起動される処理であって（起動制御手段）、図５（ａ）に示すように、まず、ランダムに演算方式および検査領域を決定する（Ｓ７２０：検査方法選択手段、検査領域選択手段、演算方式選択手段）。
【０１０２】
ここで、車両３０のＲＯＭ３１ｂには、乱数に対応して予め検査方式および検査領域が設定されており、Ｓ７２０の処理では、Ｓ１１０の処理と同様に、乱数を抽出することにより演算方式および検査領域を決定する。
【０１０３】
続いて、Ｓ７３０およびＳ７４０では、実施例１の車両処理（図４）のＳ５５０およびＳ５６０と同様の処理を実行する。これらの処理により、車両３０にて設定した演算方式および検査領域に対応した演算が実行され、この演算結果が管理センタ１０に対して送信される。ただし、Ｓ７４０にて演算結果を送信する際には、演算方式および検査領域を識別するための識別情報が演算結果に付加されている。
【０１０４】
そして、管理センタ１０から何らかのデータを受信したか否かを判定する（Ｓ７５０）。何もデータを受信していなければ（Ｓ７５０：Ｎｏ）、この処理を繰り返す。何らかのデータを受信していれば（Ｓ７５０：Ｙｅｓ）、受信したデータがプログラムの妥当性があることを示すデータであるか否かを判定する（Ｓ７６０）。
【０１０５】
プログラムの妥当性があることを示すデータであれば（Ｓ７６０：Ｙｅｓ）、プログラムが正常であるか否かを認知し（Ｓ７７０）、車両処理を終了する。また、受信データがプログラムの妥当性があることを示すデータでなければ（Ｓ６０：Ｎｏ）、実施例１の車両処理（図４）におけるＳ５２０以下の処理を実行する。
【０１０６】
また、本実施例の管理処理は、図５（ｂ）に示すように、管理センタ１０が起動されている際に繰り返し実行される処理であって、まず、車両３０から演算方式および検査領域を示す識別情報を含む演算結果のデータを受信したか否かを判定する（Ｓ８１０）。演算結果のデータを受信していなければ（Ｓ８１０：Ｎｏ）、管理処理を終了する。また、演算結果のデータを受信していれば（Ｓ８１０：Ｙｅｓ）、受信したデータの妥当性を確認する（Ｓ８２０：データ範囲判定手段）。
【０１０７】
ここで、本実施例の管理センタ１０においては、プログラム管理制御部１１のＲＯＭ等のメモリに予め演算方式および検査領域に対応した参照データが格納されており、Ｓ８２０の処理にて、車両３０から演算結果のデータが送信されると、このデータに含まれる識別情報に基づいて、演算方式および検査領域に対応した参照データを抽出し、この参照データと演算結果のデータとを比較する。
【０１０８】
次に、受信したデータの妥当性（つまり、参照データと演算結果のデータとが一致するか否か）を判定する（Ｓ８３０：データ範囲判定手段）。
受信したデータの妥当性があれば（Ｓ８３０：Ｙｅｓ）、妥当性がある旨を車両３０に送信し（Ｓ８４０）、管理処理を終了する。一方、受信したデータに妥当性がなければ（Ｓ８３０：Ｎｏ）、実施例１の管理処理（図２）におけるＳ１８０以下の処理を実行する。
【０１０９】
以上のような実施例２のプログラム管理システム１において、車両制御部３１は、検査方法を設定し（Ｓ７２０）、検査方法を表す識別情報と共に選択した検査方法に関するデータを送信する（Ｓ７３０，Ｓ７４０）。また、管理センタ１０では、識別情報とデータとの対応関係に妥当性があるか否かを判定する（Ｓ８２０，Ｓ８３０）。
【０１１０】
従って、このようなプログラム管理システム１において、車両制御部３１は自ら指定した検査方法に対応したデータを識別情報と共に車両制御部３１に送信するので、車両制御部３１は、車両制御部３１に搭載された制御プログラムに異常がなければ、送信するデータとこのデータに対応する識別情報を送信できるのに対して、車両制御部３１に搭載された制御プログラムに異常があれば、車両制御部３１は送信するデータに識別情報を対応させることができない。
【０１１１】
よって管理センタ１０は、車両３０から受信したデータに基づいて、車両制御部３１に搭載された制御プログラムの異常を確実に検出することができる。
［その他の実施形態］
なお、本発明の実施の形態は、上記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【０１１２】
例えば、本実施例において、管理処理のＳ１１０では、処理を開始するタイミングに基づいて選択する検査方法を採用したが、例えば、前回選択した検査方法に基づいて選択する検査方法を決定するようにしてもよい。
【０１１３】
また、車両制御部３１が保持するプログラムに関するデータとして、プログラムデータそのもののうち、少なくとも一部分のデータを抽出したが、このプログラムによって使用されるパラメータを抽出してもよい。また、プログラムを断片的に抽出し、抽出したデータを基に演算を行った演算結果を抽出してもよい。
【０１１４】
また、プログラム管理制御部１１における管理処理のＳ１２０では、予め複数の検査方法を車両制御部３１に格納しておき、車両制御部３１に実行させる検査方法のみを指定するようにしたが、例えば、検査用の検査プログラムを車両制御部３１に送信し、この検査プログラムを車両制御部３１に実行させることにより車両制御部３１からデータを受信するようにしてもよい。
【０１１５】
さらに、上記実施例では、制御プログラムを正規のプログラムに更新した場合、車両３０の車両制御部３１は、問い合わせ要求を管理センタ１１に送信し、その後、プログラムデータを送信したが、問い合わせ要求として、プログラムデータを送信するようにしてもよい。
【図面の簡単な説明】
【０１１６】
【図１】プログラム管理システムの概要を示すブロック図である。
【図２】実施例１の管理処理を示すフローチャートである。
【図３】プログラムデータの選択範囲の一例を示す説明図である。
【図４】実施例１の車両処理を示すフローチャートである。
【図５】実施例２の車両処理を示すフローチャート（ａ）、実施例２の管理処理を示すフローチャート（ｂ）である。
【符号の説明】
【０１１７】
１…プログラム管理システム、５…インターネット網、７…通信施設、１０…管理センタ、１１…プログラム管理制御部、１３…通信インターフェイス、３０…車両、３１…車両制御部、３３…通信インターフェイス。
【図１】
0004605079.tif 000002
【図２】
0004605079.tif 000003
【図３】
0004605079.tif 000004
【図４】
0004605079.tif 000005
【図５】
0004605079.tif 000006