(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-20
(45)【発行日】2024-11-28
(54)【発明の名称】車両制御装置、車両制御方法、及び、記録媒体
(51)【国際特許分類】
G06F 8/65 20180101AFI20241121BHJP
G06F 11/14 20060101ALI20241121BHJP
B60R 16/02 20060101ALI20241121BHJP
【FI】
G06F8/65
G06F11/14 617
B60R16/02 660U
(21)【出願番号】P 2022137520
(22)【出願日】2022-08-31
【審査請求日】2023-03-28
(31)【優先権主張番号】P 2022021064
(32)【優先日】2022-02-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】110001081
【氏名又は名称】弁理士法人クシブチ国際特許事務所
(72)【発明者】
【氏名】加藤 久浩
(72)【発明者】
【氏名】伯川 弘昭
(72)【発明者】
【氏名】相吉澤 怜
(72)【発明者】
【氏名】猪股 孝幸
(72)【発明者】
【氏名】川俣 聖寿
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2009-042850(JP,A)
【文献】特開2021-027695(JP,A)
【文献】特開2018-092241(JP,A)
【文献】国際公開第2016/136014(WO,A1)
【文献】特開2001-117765(JP,A)
【文献】特開2004-054818(JP,A)
【文献】特開2010-140183(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60-8/658
G06F 11/14
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両を起動させるための車両起動用プログラムを実行することによって前記車両の制御を行う車両制御部と、
前記車両起動用プログラムを記憶し書き換えが制限される書換制限領域と、前記車両起動用プログラムを書き換え可能に記憶する書換可能領域と、を有する記憶部と、
外部装置と通信を行う通信部と、
前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域に記憶させる更新処理を実行するプログラム更新部と、
前記更新処理が正常に完了しなかったことを通知する通知部と、を備え、
前記車両制御部は、前記書換可能領域に記憶された前記車両起動用プログラムを実行し、前記プログラム更新部による前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行
し、
前記記憶部は、前記車両起動用プログラムおよび前記車両起動用更新プログラムを記憶する第1記憶領域と、前記車両起動用プログラムおよび前記車両起動用更新プログラムを記憶する第2記憶領域とを、前記書換可能領域に備え、
前記プログラム更新部は、
前記車両起動用更新プログラムを、前記第1記憶領域または前記第2記憶領域の少なくとも一方に記憶させる前記更新処理を実行し、
前記第2記憶領域に前記車両起動用更新プログラムを記憶させる前記更新処理が正常に完了しなかった場合に、前記更新処理が正常に完了しなかったことを示す異常発生情報を、前記第1記憶領域に記憶させ、
前記車両制御部は、前記異常発生情報に基づいて前記第1記憶領域に記憶された前記車両起動用プログラムを実行する場合に、前記通知部によって異常発生第1通知を行う、
車両制御装置。
【請求項2】
前記車両制御部は、前記第1記憶領域及び前記第2記憶領域に前記車両起動用プログラムが記憶されている場合に、前記異常発生情報に基づいて、前記第1記憶領域に記憶された前記車両起動用プログラムまたは前記第2記憶領域に記憶された前記車両起動用プログラムを選択して実行する、
請求項
1に記載の車両制御装置。
【請求項3】
前記車両制御部が前記書換制限領域に記憶された前記車両起動用プログラムを実行する場合、前記通知部によって前記異常発生第1通知とは異なる異常発生第2通知を行う、
請求項1
又は請求項2に記載の車両制御装置。
【請求項4】
前記通知部によって前記異常発生第2通知を実行する場合に、前記通信部によって、前記更新処理が正常に完了しなかったことを示す異常発生信号を前記外部装置に送信する、
請求項
3に記載の車両制御装置。
【請求項5】
車両の外部に存在する外部装置と通信を行う通信部と、前記車両を起動させるための車両起動用プログラムを記憶
し書き換えが制限される書換制限領域及び前記車両起動用プログラムを書き換え可能に記憶する書換可能領域を有する記憶部と、を備える車両制御装置
により実行される車両制御方法であって、
前記記憶部の前記書換可能領域は、前記車両起動用プログラムを記憶する第1記憶領域及び第2記憶領域を備え、
前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域
の前記第1記憶領域又は前記第2記憶領域の少なくとも一方に記憶させる更新処理を実行
するプログラム更新ステップと、
前記書換可能領域に記憶された前記車両起動用プログラムを実行することによって前記車両を起動させ、前記プログラム更新ステップによる前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行
する車両制御ステップと、
前記更新処理が正常に完了しなかったことを通知する通知ステップと、を含み
前記プログラム更新ステップは、前記第2記憶領域に前記車両起動用更新プログラムを記憶させる前記更新処理が正常に完了しなかった場合に、前記更新処理が正常に完了しなかったことを示す異常発生情報を、前記第1記憶領域に記憶させ、
前記車両制御ステップは、前記異常発生情報に基づいて前記第1記憶領域に記憶された前記車両起動用プログラムを実行する場合に、前記通知ステップによって異常発生第1通知を行う、
車両制御方法。
【請求項6】
車両の外部に存在する外部装置と通信を行う通信部と、前記車両を起動させるための車両起動用プログラムを記憶
し書き換えが制限される書換制限領域及び前記車両起動用プログラムを書き換え可能に記憶する書換可能領域を有する記憶部と、を備える車両制御装置を
構成するコンピュータが実行するプログラムを記憶した記録媒体であって、
前記記憶部の前記書換可能領域は、前記車両起動用プログラムを記憶する第1記憶領域及び第2記憶領域を備え、
前記記録媒体に記憶されたプログラムは、前記コンピュータを、
前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域
の前記第1記憶領域又は前記第2記憶領域の少なくとも一方に記憶させる更新処理を実行
するプログラム更新部と、
前記書換可能領域に記憶された前記車両起動用プログラムを実行することによって前記車両を起動させ
、前記プログラム更新部による前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行
する車両制御部と、
前記更新処理が正常に完了しなかったことを通知する通知部と、して機能させ、
前記プログラム更新部は、前記第2記憶領域に前記車両起動用更新プログラムを記憶させる前記更新処理が正常に完了しなかった場合に、前記更新処理が正常に完了しなかったことを示す異常発生情報を、前記第1記憶領域に記憶させ、
前記車両制御部は、前記異常発生情報に基づいて前記第1記憶領域に記憶された前記車両起動用プログラムを実行する場合に、前記通知部によって異常発生第1通知を行う、
記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両制御装置、車両制御方法、及び、記録媒体に関する。
【背景技術】
【0002】
近年、交通の安全性の向上やCO2の排出削減を目的として、車両を制御するソフトウェアの機能が充実している。そして、車両に搭載されるECU(Electronic Control Unit)によって実行されるプログラムを更新する技術が提案されている。例えば、特許文献1には、プログラムを記憶する記憶部が、制御プログラムを記憶する車両制御プログラム記憶領域と、制御プログラムの更新版である更新プログラムを記憶する第2プログラム記憶領域とを含む構成が開示されている。この構成によれば、制御プログラムの実行中であっても更新プログラムを記憶部に記憶させることが可能であり、プログラムを更新するタイミングの制約を小さくできる、とされている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両を制御するソフトウェアの中には、車両の基本的な動作を行うために重要なプログラムが含まれる。このようなプログラムが損なわれると車両の動作に大きな影響を及ぼす。このため、プログラムを更新する処理に関する信頼性を確保することが求められる。
本発明はかかる背景に鑑みてなされたものであり、車両を制御するプログラムの更新に関する信頼性を確保することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するための一態様は、車両を起動させるための車両起動用プログラムを実行することによって前記車両の制御を行う車両制御部と、前記車両起動用プログラムを記憶し書き換えが制限される書換制限領域と、前記車両起動用プログラムを書き換え可能に記憶する書換可能領域と、を有する記憶部と、外部装置と通信を行う通信部と、前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域に記憶させる更新処理を実行するプログラム更新部と、前記更新処理が正常に完了しなかったことを通知する通知部と、を備え、前記車両制御部は、前記書換可能領域に記憶された前記車両起動用プログラムを実行し、前記プログラム更新部による前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行し、前記記憶部は、前記車両起動用プログラムおよび前記車両起動用更新プログラムを記憶する第1記憶領域と、前記車両起動用プログラムおよび前記車両起動用更新プログラムを記憶する第2記憶領域とを、前記書換可能領域に備え、前記プログラム更新部は、前記車両起動用更新プログラムを、前記第1記憶領域または前記第2記憶領域の少なくとも一方に記憶させる前記更新処理を実行し、前記第2記憶領域に前記車両起動用更新プログラムを記憶させる前記更新処理が正常に完了しなかった場合に、前記更新処理が正常に完了しなかったことを示す異常発生情報を、前記第1記憶領域に記憶させ、前記車両制御部は、前記異常発生情報に基づいて前記第1記憶領域に記憶された前記車両起動用プログラムを実行する場合に、前記通知部によって異常発生第1通知を行う、車両制御装置である。
【発明の効果】
【0006】
上記構成によれば、車両を起動させるためのプログラムの更新に支障が生じた場合であっても、書き換えが制限される領域に記憶されたプログラムを利用して、車両を起動させることができる。これにより、車両を制御するプログラムの更新に関する信頼性を確保できる。
【図面の簡単な説明】
【0007】
【
図2】プログラム管理システムの概略構成を示す図。
【
図3】第1実施形態における制御システムの要部構成を示すブロック図。
【
図4】第1実施形態における記憶部の構成例を示す模式図。
【
図5】第1実施形態における制御システムの動作を示すフローチャート。
【
図6】第1実施形態における制御システムの動作を示すフローチャート。
【
図7】第2実施形態における記憶部の構成例を示す模式図。
【
図8】第2実施形態における制御システムの動作を示すフローチャート。
【
図9】第2実施形態における制御システムの動作を示すフローチャート。
【
図10】第2実施形態における制御システムの動作を示すフローチャート。
【発明を実施するための形態】
【0008】
図1は、車両の制御システム1を示す図である。
制御システム1は、車両の全般的な制御および情報処理を行うセントラルECU2を備えている。以下、制御システム1が搭載された車両を自車両とする。自車両とは、具体的には後述する車両Vである。セントラルECU2は、通信ライン4a、4b、4cを含む通信ラインに接続される。セントラルECU2は、これらの通信ライン間における通信データの授受を管理するゲートウェイの機能を実現する。また、セントラルECU2には、移動通信システムの通信規格に準拠する無線装置であるTCU(Telematics Control Unit)12が接続される。セントラルECU2は、TCU12を利用してOTA(Over The Air)管理を実行する。OTA管理は、車両が備える車載装置の更新プログラムを車外のサーバからダウンロードする処理、及び、ダウンロードした更新プログラムを車載装置に適用する処理に関する制御を含む。また、セントラルECU2には、DLC(Data Link Connector)19が接続される。DLC19には、後述する診断装置等を接続することができる。
【0009】
通信ライン4a、4b、及び4cには、それぞれ、第1ゾーンECU20a、第2ゾーンECU20b、及び第3ゾーンECU20cが接続されている。第1ゾーンECU20a、第2ゾーンECU20b、及び第3ゾーンECU20cに接続されるECUの数や種類に制限はなく、本実施形態では一つの構成例を示す。この例では、第1ゾーンECU20aには、ECU30a、30b、30cが接続されている。第2ゾーンECU20bには、ECU30d、30e、30f、30g、30h、30i、30j、30kが接続されている。また、第3ゾーンECU20cには、ECU30l、30m、30nが接続されている。
【0010】
以下、第1ゾーンECU20a、第2ゾーンECU20b、及び第3ゾーンECU20cを総称してゾーンECU20ともいい、ECU30a~30nを総称してECU30ともいうものとする。
【0011】
ECU30には、例えば、MPU(Map Positioning Unit)、MVC-ECU(MVC;Multi View Camera)、PKS-ECU(PKS;Parking Support)、及び又はADAS-ECU(ADAS;Advanced Driver-Assistace System)、及びその他の、自車両が備える種々のデバイスやセンサの動作を制御するECUが含まれ得る。そのようなデバイスやセンサには、自車両を走行させる走行用モータ、アクセルやブレーキなどの操縦器、VSA装置(VSA;Vehicle Stability Assist)、バッテリ、ヘッドランプ等の灯体、ドアウィンドウを駆動するウィンドウモータ、ドアロック機構を駆動するアクチュエータ、ドアロックセンサ、ドア開閉センサ、温度センサ、車外カメラ、車室内カメラなどが含まれ得る。
【0012】
ゾーンECU20には、それぞれ、自車両の車体空間の同じ区画内に配された複数のECU30、または同じ区画内に配されたデバイスやセンサの動作を制御する複数のECU30が接続されている。
【0013】
なお、セントラルECU2には、ゾーンECU20に加えて、他の制御装置や機器が接続され得る。そのような制御装置や機器には、ICB(Infotainment Control Box)、スピーカ、マイクロホンと、メーターパネル、ステアリングスイッチ、GNSS(GNSS;Global Navigation Satellite System)センサ、タッチパネルなどが含まれ得る。
【0014】
通信ライン4a、4b、及び4cは、本実施形態では、例えば、CAN通信規格に準拠した通信を行うCANバスで構成される。以下、通信ライン4a、4b、及び4cを総称して通信ライン4ともいうものとする。ここで、通信ライン4は、本開示における車載ネットワークに対応する。また、通信ライン4に接続されたゾーンECU20は、本開示における、複数の電子制御装置に対応する。
【0015】
通信ライン4に接続されたゾーンECU20は、従来技術に従い、送信するデータを、CAN通信規格に従って一つのフレームにより又は複数のフレームの列として、通信ライン4へ送出する。CAN通信規格に従い、送出される各フレームには識別コード(ID)が含まれており、フレームを受信した各ゾーンECU20は、そのフレームに含まれるIDに基づいて、当該フレームが自身に宛てて送信されたフレームであるか否かを判断する。
【0016】
図2は、プログラム管理システム100の概略構成を示す図である。
プログラム管理システム100は、制御システム1を構成する各種のECUが実行するプログラムの更新を可能とするシステムである。プログラム管理システム100は、サーバ110、及び、車両診断装置120を含む。
【0017】
サーバ110は、通信ネットワークNによって制御システム1と接続される。
通信ネットワークNは、例えば、セルラー通信網、Wi-Fi(登録商標)ネットワーク、Bluetooth(登録商標)、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、公衆回線、プロバイダ装置、専用回線、基地局等を含み、
図2には基地局Bを図示する。制御システム1が備えるTCU12は、基地局Bとの間でセルラー通信を実行することにより、通信ネットワークNを通じて外部装置とデータ通信を実行する。
【0018】
制御システム1は、TCU12によってサーバ110と通信を実行することによって、制御システム1の各種のECUが実行するプログラムを更新するための更新データを、サーバ110からダウンロードすることができる。制御システム1が、サーバ110から更新データをダウンロードしてプログラムを更新する手段は、上述したOTAに相当する。サーバ110は、制御システム1の外部装置の一例に対応する。TCU12は、通信部の一例に対応する。
【0019】
車両診断装置120は、制御システム1が搭載される車両Vを取り扱う販売店や整備工場に設置される装置である。車両診断装置120は、制御システム1が有するDLC19に、ケーブルによって接続される。制御システム1は、車両診断装置120と通信を実行することにより、制御システム1が実行するプログラムの更新等を行うことができる。車両診断装置120を外部装置の一例とし、DLC19を通信部の一例とすることができる。
【0020】
ここで、ECUのプログラムの更新とは、ECUが実行するプログラムを異なるバージョンのプログラムに書き換えることを指す。ECUのプログラムの更新は、ECUがプログラムを実行する際に参照されるデータ、及び/または、プログラムの実行により生成または変更されるデータを、プログラムとともに書き換えることを含む場合がある。ECUのプログラムの更新は、ECUが実行するプログラムを、同じバージョンのプログラムに書き換えることを含む場合がある。
【0021】
[第1実施形態]
まず、本開示の第1実施形態について説明する。
図3は、第1実施形態における制御システム1の要部構成を示すブロック図である。
図3は、制御システム1においてプログラムの更新に関わる構成の一部を示しており、制御システム1が
図3に示されていない構成を具備することを妨げない。
【0022】
制御システム1において、セントラルECU2、ゾーンECU20、及びECU30を含む各々のECUは、プロセッサと、記憶部と、を備える。プロセッサは、例えば、CPU(Central Processing Unit)、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)により構成される。記憶部は、プロセッサが実行するプログラム、及び、プロセッサにより処理されるデータを不揮発的に記憶する。記憶部は、例えば、ROM(Read Only Memory)である。また、ECUは、プログラム及びデータを一時的に記憶するためのワークエリアを形成するRAM(Random Access Memory)を備えてもよい。ECUは、プロセッサ、ROM、RAMを一体に備える集積回路で構成されてもよい。また、ECUは、プロセッサ、ROM及びRAMのそれぞれを独立したハードウェアとして備える構成であってもよい。
【0023】
セントラルECU2は、プログラムの更新に関わる機能部として、更新制御部201を備える。更新制御部201は、セントラルECU2が備えるハードウェアであってもよい。また、更新制御部201は、セントラルECU2のプロセッサがプログラムを実行することによってソフトウェアとハードウェアとの協働により実現される機能部であってもよい。
【0024】
更新制御部201は、更新データ受信部202、及び、更新データ制御部203を備える。更新データ受信部202は、TCU12を制御して、サーバ110からプログラムを更新するための更新データを受信する。更新データ制御部203は、更新データ受信部202が受信した更新データを利用して、セントラルECU2を含む各種のECUがプログラムを更新する処理を制御する。
【0025】
図3には、更新制御部201による制御の対象として、第2ゾーンECU20bを図示するが、これは一例である。更新制御部201の制御の対象となるECUの数に制限はない。更新制御部201は、制御システム1が備える少なくとも一部のECUが実行するプログラムの更新を制御する。更新制御部201は、制御システム1が備える全てのECU、或いは、ほとんど全てのECUによるプログラムの更新を制御してもよい。
【0026】
更新制御部201の制御に従ってプログラムを更新するECUの一例として、本実施形態では第2ゾーンECU20bについて説明する。
第2ゾーンECU20bは、プログラム実行部51、更新実行部52、及び、記憶部53を備える。記憶部53は上述した記憶部に相当する。プログラム実行部51は、記憶部53に記憶されたプログラムを実行する。プログラム実行部51は、第2ゾーンECU20bが備えるプロセッサ自体の機能を表すということもできる。プログラム実行部51は、車両制御部の一例に対応する。また、制御システム1は車両制御装置の一例に対応する。記憶部53は、プログラム実行部51が実行するプログラム、及び、このプログラムに関連するデータを記憶する。更新実行部52は、記憶部53が記憶するプログラムを更新する。更新実行部52は、プログラム更新部の一例に対応する。
【0027】
車両Vにおいて、第2ゾーンECU20bの制御対象は、
図1に示したECU30d~30kである。ECU30d~30kとしては、例えば、車両Vの灯体、ウィンドウモータ、ドアセンサ、ドアロック機構、及び、ESLを制御するECUが挙げられる。また、ECU30d~30kとしては、例えば、ワイパーモータ、ウィンドウウォッシャーモータ、及び、電源リレー41を制御するECUが挙げられる。本実施形態では、ECU30kを、電源リレー41を制御するECUとして説明する。
【0028】
ワイパーモータは、車両Vのワイパーを動作させるモータである。ウィンドウウォッシャーモータは、ウィンドウウォッシャーポンプを駆動するモータである。ウィンドウウォッシャーポンプは、ウィンドウウォッシャーモータによって駆動され、車両Vのフロントウィンドウにウィンドウウォッシャー液を噴射する。
【0029】
電源リレー41は、車両Vに搭載されたバッテリからの電源供給状態を切り替えるためのスイッチングを行う回路である。ECU30kは、第2ゾーンECU20bが出力する信号に基づき、電源リレー41を制御して、バッテリからの電力を制御システム1の各部に供給する電源オン状態と、制御システム1の少なくとも一部に対する電力供給が停止する電源オフ状態とを切り替える。電源リレー41は、例えば、有接点リレーである。電源リレー41は、ソリッドステートリレー或いは半導体リレーと呼ばれる素子、或いは、その他のスイッチング素子であってもよい。
【0030】
ここで、電源オン状態とは、車両Vが、車両Vの駆動装置を動作させて走行可能な状態をいう。駆動装置は、例えば、車両を駆動するモータまたは内燃機関である。例えば、車両Vが走行している場合、車両Vが停車中であって駆動装置が動作している場合、及び、駆動装置を動作させることが可能な状態は、電源オン状態に含まれる。これに対し、電源オフ状態は、少なくとも車両Vの駆動装置が停止された状態であって、駆動装置を動作させるために起動処理を必要とする状態をいう。電源オフ状態において、制御システム1において駆動装置以外の構成部が停止していてもよい。
【0031】
例えば、駆動装置が内燃機関を含む場合、電源オフ状態とは、内燃機関が動作を停止した状態であって、内燃機関を始動させるセルモータ等が動作しない状態を含む。また、例えば、駆動装置がモータを含む場合、電源オフ状態とは、モータへの電力供給が停止し、かつ、モータの駆動状態の制御が停止した状態である。電源オフ状態において、セントラルECU2、及び、第2ゾーンECU20bを含む複数のECUが動作していてもよい。
【0032】
制御システム1が電源オフ状態から電源オン状態に遷移する動作を、ここでは起動と呼ぶ。車両Vを起動させるためには、第2ゾーンECU20bがECU30kを制御することによって、電源リレー41がスイッチングを行う必要がある。
【0033】
図4は、記憶部53の構成例を示す模式図である。
記憶部53は、不揮発性の記憶領域を有する。記憶部53は、プログラム及びデータを書き換え可能に記憶領域に記憶する。記憶部53は、例えば、半導体記憶デバイス、或いは、磁気記録装置により構成される。具体的な例として、記憶部53は、フラッシュROM、或いは、EEPROM(Electrically Erasable Programmable ROM)で構成される。以下の説明では、記憶部53が記憶するプログラム及びデータを、プログラムと表記する。すなわち、以下の説明において言及されるプログラムとは、そのプログラムをプロセッサが実行する時に参照され、生成され、或いは処理されるデータを含む。これらのプログラム及びデータの全体は、ソフトウェアと言い換えることができる。すなわち、プログラム管理システム100は、車両Vに搭載された制御システム1のソフトウェアを管理し、更新する機能を有する。
【0034】
記憶部53の記憶領域は論理的に複数の領域に区分されている。すなわち、記憶部53には、ブート領域61、及び、プログラム記憶領域62が設けられる。ブート領域61、及びプログラム記憶領域62は、いずれもプログラムを記憶する。ブート領域61は、更新実行部52によって書き換えることが制限または禁止された領域である。ブート領域61は、書換制限領域の一例に対応する。このため、ブート領域61が記憶するプログラムを更新実行部52が更新する処理は行われない。これに対し、プログラム記憶領域62は、更新実行部52によって書き換え可能な領域である。プログラム記憶領域62は、書換可能領域の一例に対応する。更新実行部52は、プログラム記憶領域62に新たなプログラムを記憶させる処理、及び、プログラム記憶領域62が記憶するプログラムを更新する処理を実行可能である。また、ブート領域61は、書き換えが完全に禁止される必要は無く、更新実行部52がプログラムやデータを書き換える処理の対象とならないよう設定された領域であればよい。例えば、セントラルECU2や、DLC19を介して接続される車両診断装置120の制御により、ブート領域61に対する書き換えが実行されることを妨げない。
【0035】
ブート領域61に対する書き込みの制限は、ハードウェアによる制限であっても、ソフトウェアによる制限であってもよい。例えば、ブート領域61及びプログラム記憶領域62が同一の半導体記憶デバイスの記憶領域に設けられる場合、ブート領域61に対する制限は、更新実行部52の仕様またはソフトウェアによって実現される。また、例えば、ブート領域61とプログラム記憶領域62とが異なる半導体記憶デバイスの記憶領域である場合、ブート領域61に対する制限を、ハードウェアによって実現してもよい。
【0036】
ブート領域61は、ブートローダ71を記憶する。ブートローダ71は、第2ゾーンECU20bが車両Vを起動させるときに最初にプログラム実行部51によって実行されるプログラムである。プログラム実行部51は、ブートローダ71を実行することによって、プログラム実行部51の処理に必要な初期化等を実行する。さらに、プログラム実行部51は、ブートローダ71の機能によって、プログラム記憶領域62に記憶される車両起動用プログラム73を読み出して実行する。
【0037】
プログラム記憶領域62は、プログラム実行部51が実行するプログラムを記憶する。プログラム記憶領域62は、車両起動用プログラム73を記憶する。車両起動用プログラム73は、第2ゾーンECU20bがECU30kを制御して電源リレー41を動作させることにより、車両Vを起動させるためのプログラムを含む。また、車両起動用プログラム73は、不図示のエンジンスタータを制御する機能等を含んでもよい。
【0038】
車両起動用プログラム73は、車両Vの基本的な動作を実行するための1または複数のプログラムを含む。すなわち、車両起動用プログラム73は、車両Vの起動、走行及び停止をするために必須の機能を含む。例えば、車両起動用プログラム73は、ドアロック機構及びESLの制御に関する機能を含む。
また、車両起動用プログラム73の機能は、法令等によって車両Vの走行中に実行することが求められる制御を含む。例えば、車両起動用プログラム73は、車両Vの灯体の点灯の制御に関する機能、ワイパーモータの制御に関する機能、及び、ウィンドウウォッシャーモータの制御に関する機能を含む。
【0039】
車両起動用プログラム73の機能は、制御システム1におけるプログラムの更新に必要な機能を含んでもよい。例えば、車両起動用プログラム73は、TCU12を介してサーバ110と通信を実行する機能、及び、DLC19を介して車両診断装置120と通信を実行する機能を含んでもよい。
【0040】
また、車両起動用プログラム73は、車両Vの走行に必須ではない機能に関するプログラムを含んでもよい。例えば、車両起動用プログラム73は、ユーザの利便性を高めるアクセシビリティに関する機能や、ユーザの娯楽性を高めるインフォテイメントに関する機能を含んでもよい。具体的には、車両起動用プログラム73の機能は、ハンズフリーでドアを開閉する機能、車両Vの車室空間の照明による演出を行う機能等を含んでもよい。
【0041】
ブート領域61は、ブートローダ71のほか、車両起動用プログラム72を記憶する。車両起動用プログラム72は、車両起動用プログラム73と同様にプログラム実行部51によって実行され、プログラム実行部51が各部を制御するためのプログラムである。車両起動用プログラム72は、車両起動用プログラム73と同様に、車両Vの基本的な動作を実行するための1または複数のプログラムを含む。具体的には、車両Vの起動、走行及び停止をするために必須の機能、及び、法令等によって車両Vの走行中に実行することが求められる制御を含む。従って、プログラム実行部51が車両起動用プログラム72を実行することにより、少なくとも車両Vを起動させ、車両Vを走行させることが可能となる。
【0042】
車両起動用プログラム72は、車両起動用プログラム73により実現される機能のうち、ユーザの利便性を高めるアクセシビリティに関する機能や、ユーザの娯楽性を高めるインフォテイメントに関する機能を含まないプログラムであってもよい。この場合、車両起動用プログラム72を記憶するための記憶容量は、車両起動用プログラム73よりも小さいため、ブート領域61の記憶容量を抑えることができる。
【0043】
プログラム記憶領域62が記憶する車両起動用プログラム73は、更新実行部52の機能によって更新できる。これに対し、ブート領域61が記憶する車両起動用プログラム72は、更新実行部52によって更新されない。例えば、車両起動用プログラム72は、車両Vの工場出荷時にブート領域61に記憶された状態のまま変更されない。従って、車両起動用プログラム72は、更新実行部52の動作にかかわらず保護された状態にある。更新実行部52が車両起動用プログラム73を更新する更新処理において、何らかの支障が発生した場合であっても、制御システム1は、車両起動用プログラム72をプログラム実行部51によって実行することにより、車両Vを起動させ、車両Vを走行させることができる。
【0044】
図5及び
図6は、制御システム1の動作を示すフローチャートである。
図5は、プログラム記憶領域62が記憶する車両起動用プログラム73を更新する処理を示す。
図5のステップS14~S16は更新処理の一例に対応する。
【0045】
更新データ受信部202は、サーバ110に対してTCU12によって要求を送信する(ステップS11)。ステップS11の要求は、ECUが記憶するプログラムを更新するための更新プログラムの要求であり、例えば、車両起動用プログラム73を更新するための車両制御更新プログラムを送信することの要求である。
【0046】
更新データ受信部202は、ステップS11の要求に応じてサーバ110が送信するプログラムを、サーバ110からダウンロードし、不図示の記憶領域に一時的に記憶する(ステップS12)。ここで、更新データ制御部203は、更新処理を開始するため、車両Vの電源がオフに切り替えられることを待機する。すなわち、更新データ制御部203は、車両Vが電源オフ状態に切り替えられたか否かを判定する(ステップS13)。車両Vが電源オフ状態に切り替えられない間(ステップS13;NO)、更新データ制御部203はステップS13で待機する。
【0047】
車両Vが電源オフ状態に切り替えられたと判定した場合(ステップS13;YES)、更新データ制御部203の制御に従って、更新実行部52が更新処理を開始する(ステップS14)。
【0048】
更新処理において、更新実行部52は、ステップS12でダウンロードした車両制御更新プログラムを、プログラム記憶領域62に記憶させる(ステップS15)。更新実行部52は、プログラム記憶領域62に記憶した車両制御更新プログラムを利用して、プログラム記憶領域62が記憶する車両起動用プログラム73のインストールを実行する(ステップS16)。ステップS16の処理は、車両起動用プログラム73を、新しいバージョンの車両起動用プログラム73に更新する処理に相当する。
【0049】
更新実行部52は、インストールが正常に完了したことを確認する処理を行う(ステップS17)。ステップS17で、更新実行部52は、インストールされたプログラムが、プログラム実行部51によって正常に実行可能な状態であることを確認する。例えば、更新実行部52は、更新後の車両起動用プログラム73のハッシュ値を算出し、算出したハッシュ値を、算出車両制御更新プログラムとともにサーバ110からダウンロードしたハッシュ値と比較することにより、更新後の車両起動用プログラム73の正常性を確認する。
【0050】
更新実行部52は、ステップS17の処理の結果に基づいて、車両起動用プログラム73のインストールが正常に完了したか否かを判定する(ステップS18)。インストールが正常に完了した場合(ステップS18;YES)、更新実行部52は、インストールしたプログラムのアクティベーションを実行し(ステップS19)、本処理を終了する。アクティベーションは、更新したプログラムの実行に関する設定を含む。
【0051】
車両起動用プログラム73のインストールが正常に完了していないと判定した場合(ステップS18;NO)、更新実行部52は、プログラム記憶領域62に異常発生情報74を書き込む(ステップS20)。
【0052】
異常発生情報74は、車両起動用プログラム73の更新処理が正常に完了しなかったことを示す情報である。異常発生情報74は、例えばフラグであってもよい。この場合、ステップS20で、更新実行部52が異常発生情報74を書き込むことは、異常発生情報74のフラグをオンに書き換えることに相当する。異常発生情報74がプログラム記憶領域62に記憶されている場合、プログラム実行部51は、起動時に車両起動用プログラム73を実行しない。これにより、正常に動作しない可能性がある車両起動用プログラム73が実行されることを防止できる。
【0053】
図6は、第2ゾーンECU20bの起動に関する動作を示す。
プログラム実行部51は、ブート領域61に記憶されているブートローダ71を読み出して実行する(ステップS31)。続いて、プログラム実行部51は、プログラム記憶領域62を参照し(ステップS32)、異常発生情報74が記憶されているか否かを判定する(ステップS33)。プログラム実行部51は、異常発生情報74が記憶されていない場合(ステップS33;NO)、プログラム記憶領域62に記憶された車両起動用プログラム73を実行する(ステップS34)。プログラム実行部51は、車両起動用プログラム73を実行することによって、ECU30kにより電源リレー41を切り替えさせて、車両Vを起動させる(ステップS35)。これにより、制御システム1が車両Vの走行に必要な機能を制御可能な状態となり、車両Vは電源オン状態に移行する。
【0054】
プログラム実行部51は、異常発生情報74がプログラム記憶領域62に記憶されている場合(ステップS33;YES)、ブート領域61に記憶された車両起動用プログラム72を実行する(ステップS36)。プログラム実行部51は、車両起動用プログラム72を実行することによって、ECU30kにより電源リレー41を切り替えさせて、車両Vを起動させる(ステップS37)。
【0055】
この場合、更新制御部201またはプログラム実行部51は、異常発生通知を行う(ステップS38)。異常発生通知は、車両起動用プログラム73の更新処理が正常に完了しなかったことを示す通知である。
【0056】
異常発生通知は、例えば、車両Vの運転席または他の席に乗車しているユーザに対して実行される。異常発生通知の内容は、例えば、車両起動用プログラム73の更新の再実行を求めること、車両Vの販売店や整備工場において車両診断装置120を利用して車両起動用プログラム73を更新すること、等を案内する。ステップS38では、例えば、車両Vに搭載されたタッチパネルに文字や画像を表示すること、或いは、車両Vに搭載されたスピーカから音声を出力することによって通知が実行される。
【0057】
更新制御部201またはプログラム実行部51は、異常発生通知を行った後に、異常発生信号を外部装置に送信する(ステップS39)。異常発生信号は、車両起動用プログラム73の更新処理が正常に完了しなかったことを示す信号である。異常発生通知は、例えば、TCU12によってサーバ110に送信され、或いは、DLC19を介して車両診断装置120に送信される。また、ステップS39で、異常発生通知が、予め制御システム1に登録されたスマートフォンやパーソナルコンピュータに送信される構成としてもよい。
【0058】
異常発生信号が制御システム1からサーバ110や他の装置に送信されることにより、例えば、車両Vを運転するユーザに対し、車両Vの販売店や整備工場から、車両起動用プログラム73の修復や更新のやり直しに関する支援を行うことが可能となる。
【0059】
[第2実施形態]
次に、本開示の第2実施形態について説明する。
図7は、第2実施形態における記憶部53Aの構成例を示す模式図である。記憶部53Aは、
図3及び
図4に示した記憶部53に代えて、第2ゾーンECU20bに設けられる。第2実施形態における制御システム1の構成及び機能は、記憶部53と記憶部53Aとの相違、及びこれに関する動作の相違を除き、第1実施形態と共通する。第1実施形態で説明した構成については、以下の説明において、第1実施形態と同じ符号を付すことによって図示及び説明を省略する。
【0060】
記憶部53Aは、不揮発性の記憶領域を有する。記憶部53Aは、プログラム及びデータを書き換え可能に記憶領域に記憶する。記憶部53Aは、記憶部53と同様に、半導体記憶デバイス、或いは、磁気記録装置により構成され、具体的にはフラッシュROM或いはEEPROMで構成される。
【0061】
記憶部53Aの記憶領域は論理的に複数の領域に区分される。すなわち、記憶部53Aには、ブート領域61A、A面ブートイメージ記憶領域65、B面ブートイメージ記憶領域66、プログラム記憶第1領域67、及び、プログラム記憶第2領域68が設けられる。これらの各領域は、いずれもプログラムを記憶する。
【0062】
ブート領域61Aは、マスターブートレコード81、及び、車両起動用プログラム82を記憶する。ブート領域61Aは、ブート領域61Aに記憶されるプログラムがブート領域61と相違することを除き、ブート領域61と同様に構成される。
【0063】
マスターブートレコード81は、第2ゾーンECU20bが車両Vを起動させるときに最初にプログラム実行部51によって実行されるプログラムである。プログラム実行部51は、マスターブートレコード81を参照し、マスターブートレコード81は、ブートローダ71に相当するプログラム、及び、このプログラムに続いてプログラム実行部51が実行すべきプログラムを指定するデータ等を含む。プログラム実行部51は、マスターブートレコード81に含まれるプログラムを実行することによって、プログラム実行部51の処理に必要な初期化等を実行する。さらに、プログラム実行部51は、ブートローダ71の機能によって、ブートプログラム83またはブートプログラム84を読み出して実行する。
【0064】
A面ブートイメージ記憶領域65は、ブートプログラム83を記憶する。B面ブートイメージ記憶領域66はブートプログラム84を記憶する。
ブートプログラム83は、第2ゾーンECU20bの基本的な動作を実行し、車両起動用プログラム85の実行を開始するためのプログラムである。ブートプログラム84は、第2ゾーンECU20bの基本的な動作を実行し、車両起動用プログラム86の実行を開始するためのプログラムである。
【0065】
従って、プログラム実行部51は、マスターブートレコード81に続いて、ブートプログラム83及び車両起動用プログラム85、または、ブートプログラム84及び車両起動用プログラム86を実行する。
【0066】
プログラム記憶第1領域67は、車両起動用プログラム85を記憶する。プログラム記憶第2領域68は車両起動用プログラム86を記憶する。車両起動用プログラム85は、車両起動用プログラム73と同様のプログラムである。車両起動用プログラム86も同様である。また、プログラム記憶第1領域67は異常発生情報87A、及び、更新情報88Aを記憶することができる。プログラム記憶第2領域68は、異常発生情報87B、及び、更新情報88Bを記憶することができる。
【0067】
すなわち、車両起動用プログラム85、86は、第2ゾーンECU20bがECU30kを動作させることにより、電源リレー41を切り替えさせて車両Vを起動させるためのプログラムを含む。また、車両起動用プログラム85、86は、不図示のエンジンスタータを制御する機能等を含んでもよい。
【0068】
車両起動用プログラム85、86は、車両Vの基本的な動作を実行するための1または複数のプログラムを含む。換言すれば、車両起動用プログラム85、86は、車両Vの起動、走行及び停止をするために必須の機能を含む。例えば、車両起動用プログラム85、86は、ドアロック機構33及びESL34を制御する機能を含む。また、車両起動用プログラム85、86の機能は、法令等によって車両Vの走行中に実行することが求められる制御を含む。例えば、車両起動用プログラム85、86は、灯体の点灯を制御する機能、ワイパーモータを制御する機能、及び、ウィンドウウォッシャーモータを制御する機能を含む。
【0069】
車両起動用プログラム85、86の機能は、制御システム1におけるプログラムの更新に必要な機能を含んでもよい。例えば、車両起動用プログラム85、86は、TCU12に介してサーバ110と通信を実行する機能、及び、DLC19を介して車両診断装置120と通信を実行する機能を含んでもよい。
【0070】
また、車両起動用プログラム85、86は、車両Vの走行に必須ではない機能に関するプログラムを含んでもよい。例えば、車両起動用プログラム85、86は、ユーザの利便性を高めるアクセシビリティに関する機能や、ユーザの娯楽性を高めるインフォテイメントに関する機能を含んでもよい。具体的には、車両起動用プログラム85、86の機能は、ハンズフリーでドアを開閉する機能、車両Vの車室空間の照明による演出を行う機能等を含んでもよい。
【0071】
車両起動用プログラム85と車両起動用プログラム86とは、いずれも第2ゾーンECU20bに適合するプログラムである。車両起動用プログラム85と車両起動用プログラム86とは同一のプログラムであってもよいし、異なるプログラムであってもよい。例えば、車両起動用プログラム85と車両起動用プログラム86とは、同一の種類のプログラムであって、バージョンが異なるプログラムである。車両起動用プログラム86が車両起動用プログラム85よりも新しいバージョンである例を想定する。この例では、例えば、車両起動用プログラム86が、車両起動用プログラム85に対して機能が追加された改良版のプログラムである。また、例えば、車両起動用プログラム86は、車両起動用プログラム85が有する不具合や脆弱性を解消したプログラムである。
【0072】
ブート領域61Aは、マスターブートレコード81のほか、車両起動用プログラム82を記憶する。車両起動用プログラム82は、車両起動用プログラム85、86と同様にプログラム実行部51によって実行され、プログラム実行部51が各部を制御するためのプログラムである。
【0073】
車両起動用プログラム82は、車両起動用プログラム85、86と同様に、車両Vの基本的な動作を実行するための1または複数のプログラムを含む。具体的には、車両Vの起動、走行及び停止をするために必須の機能、及び、法令等によって車両Vの走行中に実行することが求められる制御を含む。従って、プログラム実行部51が車両起動用プログラム82を実行することにより、少なくとも車両Vを起動させ、車両Vを走行させることが可能となる。
【0074】
車両起動用プログラム82は、車両起動用プログラム85、86により実現される機能のうち、ユーザの利便性を高めるアクセシビリティに関する機能や、ユーザの娯楽性を高めるインフォテイメントに関する機能を含まないプログラムであってもよい。この場合、車両起動用プログラム82を記憶するための記憶容量は、車両起動用プログラム85、86よりも小さいため、ブート領域61Aの記憶容量を抑えることができる。
【0075】
記憶部53Aの記憶領域は、A面とB面とに分類される。A面にはA面ブートイメージ記憶領域65及びプログラム記憶第1領域67が属する。B面にはB面ブートイメージ記憶領域66及びプログラム記憶第2領域68が属する。ブート領域61AはA面とB面のいずれにも属しない。
【0076】
A面の記憶領域と、B面の記憶領域とは、互いに独立してプログラムを記憶する。プログラム実行部51は、A面、及び、B面のいずれか一方の記憶領域に記憶されたプログラムを利用して、第2ゾーンECU20bの各種の機能を実現する。プログラム実行部51がA面を選択する場合、プログラム実行部51は、マスターブートレコード81に続いてブートプログラム83及び車両起動用プログラム85を実行する。この場合、プログラム実行部51はB面のプログラムを実行することなく、電源リレー41を含む各部を制御できる。つまり、プログラム実行部51は、記憶部53AにおいてA面またはB面のいずれか一方にプログラムが正常に記憶されていれば、第2ゾーンECU20bとしての動作を実行できる。
【0077】
更新実行部52は、記憶部53Aが記憶しているプログラムを更新する場合、A面及びB面のいずれかを選択する。一例として、プログラム記憶第1領域67が記憶する車両起動用プログラム85よりも新しいバージョンのプログラムがサーバ110によって提供された場合を想定する。この場合、更新実行部52は、車両起動用プログラム85とは異なる記憶領域に記憶されている車両起動用プログラム86を更新する。更新実行部52は、サーバ110から、車両起動用プログラム86を更新するための車両制御更新プログラムをダウンロードし、この車両制御更新プログラムに基づき、プログラム記憶第2領域68が記憶するプログラムを更新する。その後、更新実行部52は、新しいバージョンである車両起動用プログラム86をプログラム実行部51が実行するように、設定を変更する。
【0078】
プログラム記憶第1領域67、及び、プログラム記憶第2領域68は、更新実行部52によって書き換え可能な領域である。プログラム記憶第1領域67及びプログラム記憶第2領域68は、書換可能領域の一例に対応する。従って、更新実行部52は、プログラム記憶第1領域67及びプログラム記憶第2領域68に対し、新たなプログラムを記憶させる処理、及び、既に記憶されているプログラムを更新する処理を実行可能である。
【0079】
ブート領域61Aは、ブート領域61と同様に書き換えが制限または禁止された領域である。ブート領域61Aは、書換制限領域の一例に対応する。このため、ブート領域61Aが記憶するプログラムを更新実行部52が更新する処理は行われない。具体的には、車両起動用プログラム82は、更新実行部52が実行する更新処理の対象にはならない。例えば、車両起動用プログラム82は、車両Vの工場出荷時にブート領域61Aに記憶された状態のまま変更されない。ブート領域61Aは、書き換えが完全に禁止される必要は無く、更新実行部52がプログラムやデータを書き換える処理の対象とならないよう設定された領域であればよい。例えば、セントラルECU2や、DLC19を介して接続される車両診断装置120の制御により、ブート領域61Aに対する書き換えが実行されることを妨げない。
【0080】
A面ブートイメージ記憶領域65、及び、B面ブートイメージ記憶領域66は、更新実行部52がプログラムの書き換えを行う対象ではない。例えば、A面ブートイメージ記憶領域65及びB面ブートイメージ記憶領域66は、ブート領域61Aと同様に、更新実行部52による書き換えが制限された領域であってもよい。
【0081】
プログラム記憶領域62が記憶する車両起動用プログラム85,86は、更新実行部52の機能によって更新できる。これに対し、ブート領域61Aが記憶する車両起動用プログラム82は、更新実行部52によって更新されない。従って、車両起動用プログラム82は、更新実行部52の動作にかかわらず保護された状態にある。更新実行部52が車両起動用プログラム73を更新する更新処理において、何らかの支障が発生した場合であっても、制御システム1は、車両起動用プログラム82をプログラム実行部51によって実行することにより、車両Vを起動させ、車両Vを走行させることができる。
【0082】
図8、
図9及び
図10は、第2実施形態における制御システム1の動作を示すフローチャートである。
図8及び
図9は、記憶部53Aが記憶する車両起動用プログラム85、86を更新する処理を示す。
図9は、
図8に示す動作の変形例である。
図8のステップS14、S41~S44は更新処理の一例に対応する。
図9のステップS46、S43~S44は更新処理の一例に対応する。
【0083】
図8のステップS11~S14、S17~S19は
図5と同様の動作であるため、ここでは説明を省略する。
【0084】
図8に示すように、ステップS14で更新処理を開始した後、更新実行部52は、プログラム記憶第1領域67及びプログラム記憶第2領域68のいずれか一方を、更新対象の領域として特定する(ステップS41)。更新実行部52は、更新情報を生成して記憶部53Aに記憶させる(ステップS42)。更新情報は、更新されない側のプログラムが利用に適するか否かを示す情報である。更新実行部52は、更新処理を行う理由に基づいて更新情報を生成する。
【0085】
一例として、更新実行部52が、プログラム記憶第1領域67が記憶する車両起動用プログラム85を更新する場合を説明する。この場合、更新実行部52は、ステップS41で、更新対象の領域としてプログラム記憶第1領域67を選択する。更新実行部52は、更新対象の領域でないプログラム記憶第2領域68に記憶された車両起動用プログラム86について更新情報88Bを生成し、プログラム記憶第2領域68に記憶させる。更新情報88Bは、車両起動用プログラム86が、利用に適するか否かを示す。更新実行部52は、更新処理を行う理由が、車両起動用プログラム86の不具合や脆弱性を解消することに該当する場合は、車両起動用プログラム86が利用に適しないことを示す更新情報88Bを生成する。また、更新処理を行う理由が、車両起動用プログラム86の不具合や脆弱性を解消することに該当しない場合は、車両起動用プログラム86が利用に適することを示す更新情報88Bを生成する。更新処理を行う理由は、例えば、サーバ110が車両制御更新プログラムとともに制御システム1に送信する付加情報により判定可能である。この場合、サーバ110は、車両制御更新プログラムを制御システム1に送信する際に、更新処理を行う理由を示す付加情報を、制御システム1に送信する。同様に、更新実行部52は、プログラム記憶第2領域68が記憶する車両起動用プログラム86を更新する場合に、車両起動用プログラム85が利用に適するか否かを示す更新情報88Aを生成し、プログラム記憶第1領域67に記憶させる。また、更新情報88A、88Bは、更新処理を行った理由を示すコード等であってもよい。
【0086】
更新実行部52は、ステップS12でダウンロードした車両制御更新プログラムを、更新対象の領域に記憶させる(ステップS43)。更新実行部52は、ステップS43で記憶させた車両制御更新プログラムを利用して、更新対象の領域が記憶する車両起動用プログラムのインストールを実行する(ステップS44)。ステップS44の処理は、ステップS16と同様である。
【0087】
また、ステップS18の判定において、インストールが正常に完了しなかったと判定した場合、更新実行部52は、異常発生情報を、更新対象の領域に記憶させる。例えば、車両起動用プログラム85を更新する処理が正常に完了しなかった場合、更新実行部52は、ステップS45で、更新対象の領域であるプログラム記憶第1領域67に、異常発生情報87Aを記憶させる。
【0088】
図8には、
図5と同様に、更新データ制御部203が車両Vの電源がオフに切り替えられることを待機し、車両Vの電源がオフに切り替えられた後に更新処理を実行する動作を示した。記憶部53Aは、A面の記憶領域とB面の記憶領域とを有するので、車両Vの電源がオンになっている間であっても、プログラムの信頼性に影響を与えることなく更新処理を実行できる。この場合の動作を
図9に示す。
【0089】
図9において、ステップS11、S12、S17~S19、S43~S45は
図8と共通の動作であるから、説明を省略する。
【0090】
図9に示すように、ステップS12で更新データ受信部202がプログラムをダウンロードした後、更新実行部52は、記憶領域を選択して更新処理を開始する(ステップS46)。ステップS46で、更新実行部52は、記憶部53AのA面の記憶領域及びB面の記憶領域のうち、最終更新日時が古い側の領域を、更新処理の対象として選択する。詳細には、更新実行部52は、プログラム記憶第1領域67及びプログラム記憶第2領域68の最終更新日時を特定する。プログラム記憶第1領域67の最終更新日時は、プログラム記憶第1領域67が記憶するプログラムが最後に更新された日時である。プログラム記憶第2領域68の最終更新日時も同様である。更新実行部52は、プログラム記憶第1領域67とプログラム記憶第2領域68の最終更新日時を比較し、最終更新日時が古い側の領域を選択する。ステップS46で、更新実行部52は、ステップS42と同様の処理によって更新情報を生成し、選択されなかった側の記憶領域に更新情報を記憶させてもよい。
ステップS46の後、更新実行部52は、ステップS43に移行する。
【0091】
更新実行部52が、ステップS18の判定において、インストールが正常に完了したと判定した場合(ステップS18;YES)、更新データ制御部203は、車両Vの電源をオフにする操作の有無を判定する(ステップS47)。ステップS47の判定は、ステップS13と同様であってもよい。或いは、ステップS47で、更新データ制御部203は、車両Vの電源をオフにすることを指示する操作の有無を判定してもよい。すなわち、車両Vの電源が実際にオフに切り替わることでなく、これを指示する操作を判定してもよい。この種の操作として、例えば、車両Vのイグニッションスイッチの操作が挙げられる。
【0092】
更新データ制御部203は、車両Vの電源がオフに切り替えられるまで待機する(ステップS47;NO)。車両Vの電源がオフに切り替えられると判定した場合(ステップS47;YES)、更新データ制御部203は、ユーザに対してアクティベーションの承認を依頼する処理を行う(ステップS48)。例えば、ステップS48で、更新データ制御部203は、更新の承認を求めるメッセージを、車両Vに搭載されたタッチパネルに表示する処理、及び、更新の承認を依頼する音声メッセージを、車両Vに搭載されたスピーカから出力させる処理のいずれか1以上を実行する。ここで、ステップS48で、更新データ制御部203は、ユーザが承認の操作を行うための操作用のアイコン等を、タッチパネルに表示してもよい。
【0093】
更新データ制御部203は、ユーザによって更新を承認する操作が行われたか否かを判定する(ステップS49)。更新を承認する操作は、例えば、タッチパネルに対する操作である。更新を承認する操作が行われていないと判定した場合(ステップS49;NO)、更新データ制御部203は本処理を終了する。この場合、更新データ制御部203は、その後に車両Vの電源がオフにされる毎に、ステップS48の動作を行う。
【0094】
更新を承認する操作が行われた場合(ステップS49;YES)、更新データ制御部203の制御により、更新実行部52が、インストールしたプログラムのアクティベーションを実行し(ステップS19)、本処理を終了する。ステップS19で、更新実行部52は、次回に車両Vの電源がオンになった場合に、ステップS44でインストールしたプログラムが実行されるように設定を行う。
【0095】
更新実行部52及び更新データ制御部203は、
図8の動作と、
図9の動作のいずれかを択一的に実行する構成であってもよい。
また、更新実行部52及び更新データ制御部203は、
図8の動作と
図9の動作の両方を実行可能であり、いずれかを選択して実行する構成であってもよい。例えば、更新データ制御部203は、更新処理を行う理由が、車両起動用プログラム86の不具合や脆弱性を解消することに該当する場合は、
図8の動作を実行する構成であってもよい。この場合、更新実行部52及び更新データ制御部203は、更新処理を行う理由が、車両起動用プログラム86の不具合や脆弱性を解消することに該当しない場合に、
図8または
図9の動作を実行する。プログラムの更新処理では、記憶部53Aが記憶しているプログラムを上書き更新することによって、もとのプログラムを実行できなくなることを考慮する必要がある。プログラム記憶第1領域67が記憶するプログラム、及び、プログラム記憶第2領域68が記憶するプログラムの両方が、プログラム実行部51が実行しても支障のない状態である場合には、どちらを更新しても信頼性に影響を与えない。このような場合、記憶部53Aは、実行可能なプログラムをプログラム記憶第1領域67とプログラム記憶第2領域68の両方に記憶している。従って、車両Vの電源をオフにしなくても、プログラムの信頼性に影響を与えることなく、プログラムを更新できる。この場合、
図9の動作は、車両Vの電源がオンになっている間に更新処理を実行できるという利点がある。
【0096】
図10は、第2ゾーンECU20bの起動に関する動作を示す。
図10の動作は、プログラムの更新が
図8の通りに実行された場合、及び、
図9の通りに実行された場合のいずれであっても実行可能である。
【0097】
プログラム実行部51は、マスターブートレコード(MBR)81を参照し、ブートプログラム83またはブートプログラム84を選択して実行する(ステップS51)。ステップS51で、プログラム実行部51は、A面ブートイメージ記憶領域65とB面ブートイメージ記憶領域66のいずれか、すなわち、A面とB面のいずれかを選択する。例えば、プログラム実行部51は、マスターブートレコード81に含まれるプログラムの機能により、車両起動用プログラム85と車両起動用プログラム86の最終更新日時を比較する。この場合、プログラム実行部51は、A面とB面のうち、最終更新日時が新しい側の車両起動用プログラムを記憶する側の領域を、選択する。
【0098】
以下では、一例として、ステップS51でプログラム実行部51がA面のプログラムを選択して実行する場合を説明する。プログラム実行部51がB面のプログラムを選択する場合の動作は同様に理解される。
【0099】
プログラム実行部51は、ステップS51でブートプログラム83を実行した場合、プログラム記憶第1領域67を参照し(ステップS52)、異常発生情報87Aが記憶されているか否かを判定する(ステップS53)。
【0100】
異常発生情報87Aが記憶されていない場合(ステップS53;NO)、プログラム実行部51は、プログラム記憶第1領域67に記憶された車両起動用プログラム85を実行する(ステップS54)。プログラム実行部51は、車両起動用プログラム85を実行することによって、ECU30kにより電源リレー41を切り替えさせて、車両Vを起動させる(ステップS55)。これにより、制御システム1が車両Vの走行に必要な機能を制御可能な状態となり、車両Vは電源オン状態に移行する。
【0101】
プログラム実行部51は、異常発生情報87Aがプログラム記憶第1領域67に記憶されている場合(ステップS53;YES)、更新情報88Bを参照する(ステップS55)。ステップS55で、プログラム実行部51は、ステップS52で参照していない側の記憶領域、すなわち、プログラム記憶第2領域68に記憶された更新情報88Bを参照する。
【0102】
プログラム実行部51は、ステップS55で参照した更新情報88Bに基づき、プログラム記憶第2領域68の車両起動用プログラム86を利用可能であるか否かを判定する(ステップS57)。
【0103】
車両起動用プログラム86を利用可能であると判定した場合(ステップS57;YES)、プログラム実行部51は、車両起動用プログラム86を実行する(ステップS58)。プログラム実行部51は、車両起動用プログラム86を実行することによって、ECU30kにより電源リレー41を切り替えさせて、車両Vを起動させる(ステップS59)。これにより、制御システム1が車両Vの走行に必要な機能を制御可能な状態となり、車両Vは電源オン状態に移行する。
【0104】
その後、更新制御部201またはプログラム実行部51は、異常発生第1通知を行う(ステップS60)。異常発生第1通知は、車両起動用プログラム85の更新処理が正常に完了しなかったことを示す通知であって、車両起動用プログラム86が実行可能である場合に行われる通知である。異常発生第1通知の通知方法は、ステップS38で実行される異常発生通知と同様である。
【0105】
車両起動用プログラム86を利用可能でないと判定した場合(ステップS57;NO)、プログラム実行部51は、ブート領域61Aに記憶された車両起動用プログラム82を実行する(ステップS61)。プログラム実行部51は、車両起動用プログラム82を実行することによって、ECU30kにより電源リレー41を切り替えさせて、車両Vを起動させる(ステップS62)。これにより、制御システム1が車両Vの走行に必要な機能を制御可能な状態となり、車両Vは電源オン状態に移行する。
【0106】
その後、更新制御部201またはプログラム実行部51は、異常発生第2通知を行う(ステップS60)。異常発生第2通知は、車両起動用プログラム85の更新処理が正常に完了せず、かつ、車両起動用プログラム86が利用に適しないことを示す通知である。異常発生第1通知は、記憶部53Aに記憶された車両起動用プログラム85、86の一方が正常に利用可能であり、他方の更新処理が成功しなかった場合に通知される。この状況は、更新処理をやり直すことにより、解消できる。これに対し、異常発生第2通知は、記憶部53Aに記憶された車両起動用プログラム85、86の両方が利用に適しておらず、いわば緊急用の車両起動用プログラム82を利用して車両Vが起動したことを示す。車両起動用プログラム82は、車両Vを安全に走行させる基準を満たす機能を有するプログラムであるが、車両起動用プログラム85、86と比較して機能が少ない。このため、車両起動用プログラム82によって車両Vが起動した状態は、早めに対処することが望まれる。例えば、車両Vの販売店や整備工場で、車両診断装置120をDLC19に接続することによって車両起動用プログラム85、86の少なくともいずれかを更新または修復することが望ましい。
【0107】
従って、異常発生第1通知は、例えば、ユーザに対して、更新処理のやり直しを促す内容である。これに対し、異常発生第2通知は、例えば、ユーザに対して早期に対処を求める内容である。このため、異常発生第1通知の態様と、異常発生第2通知の態様とは、ユーザが明確に区別可能な程度に異なる態様であることが望ましい。異常発生第2通知の通知方法は、ステップS60で実行される異常発生第1通知と同様の方法を採用できる。
【0108】
更新制御部201またはプログラム実行部51は、異常発生第2通知を行った後に、異常発生信号を外部装置に送信する(ステップS64)。異常発生信号は、ステップS39で送信される信号と同様である。
【0109】
上記実施形態は本発明を適用した一具体例を示すものであり、発明が適用される形態を限定するものではない。
【0110】
上記実施形態では、制御システム1が、サーバ110からダウンロードする車両制御更新プログラムに基づいて、記憶部53、53Aが記憶する車両起動用プログラム72、85、86を更新する場合の動作を説明した。本発明はこれに限定されず、例えば、DLC19に接続された車両診断装置120から制御システム1が車両制御更新プログラムを受信する場合に、
図5または
図8に示した動作を実行してもよい。つまり、外部装置としての車両診断装置120から制御システム1が車両制御更新プログラムを取得して、車両起動用プログラムを更新する場合に、上記実施形態の動作を適用してもよい。
【0111】
また、上記実施形態では、制御システム1が有する第2ゾーンECU20bが実行する車両起動用プログラム72、85、86を更新する場合を例に挙げて説明した。これは一例である。例えば、本実施形態で説明した記憶部53、53Aの構成、および、プログラム実行部51及び更新実行部52の動作を、セントラルECU2や、その他のECUに適用することは勿論可能である。
【0112】
また、上記実施形態では、車両Vの起動に必要な車両起動用プログラムを更新する更新処理に本発明を適用した例を説明した。これは一例であり、車両Vの機能に関するプログラムを更新する更新処理について、本実施形態の構成および動作を適用可能である。
【0113】
また、上記実施形態では、車両起動用プログラムのインストールが正常に完了しなかった場合に、異常発生通知、異常発生第1通知あるいは異常発生第2通知を行う例を説明した。これは一例である。プログラム実行部51は、例えば、更新処理によって更新された車両起動用プログラムを実行した場合、すなわち、更新処理に成功した場合に、更新処理が成功したことを示す通知を行ってもよい。また、外部装置に、更新処理が成功したことを示す信号を送信してもよい。
【0114】
また、上記実施形態で示した制御システム1の構成は一例であり、制御システム1が備えるECUの種類、ECUの数、ECUの制御対象の装置の構成は種々に変更可能である。
【0115】
図1及び
図3は、本願発明の理解を容易にするために、プログラム管理システム100の各装置の機能構成を、主な処理内容により区分して示した概略構成を示す図であり、装置の構成を限定するものではない。
図5、
図6、
図8、
図9、
図10に示した各処理は、1つのプログラムにより実行されてもよいし、複数のプログラムにより実行されてもよい。
【0116】
また、車両Vは、例えば四輪自動車であるが、車両Vの種類は特に制限されず、大型自動車、商用車、二輪車、三輪車等であってもよい。その他、制御システム1における各部の構成は任意に変更可能である。
【0117】
上記実施形態は、以下の構成をサポートする。
【0118】
(構成1)車両を起動させるための車両起動用プログラムを実行することによって前記車両の制御を行う車両制御部と、前記車両起動用プログラムを記憶し書き換えが制限される書換制限領域と、前記車両起動用プログラムを書き換え可能に記憶する書換可能領域と、を有する記憶部と、外部装置と通信を行う通信部と、前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域に記憶させる更新処理を実行するプログラム更新部と、を備え、前記車両制御部は、前記書換可能領域に記憶された前記車両起動用プログラムを実行し、前記プログラム更新部による前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行する、車両制御装置。
構成1の車両制御装置によれば、車両起動用プログラムの更新に支障が生じた場合であっても、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させることができる。書き換えが制限される領域に記憶された車両起動用プログラムは、更新の対象でないため、実行可能な状態で維持される。このため、車両起動用プログラムを実行できない事態を確実に回避できるので、車両を制御するプログラムの更新に関する信頼性を確保できる。
【0119】
(構成2)前記車両起動用プログラムは、前記車両の電源リレーを制御する電源リレー制御プログラムを含む、構成1に記載の車両制御装置。
構成2の車両制御装置によれば、車両の電源リレーを制御するプログラムの更新に関する信頼性を確保できる。
【0120】
(構成3)前記プログラム更新部は、前記更新処理が正常に完了しなかった場合に、前記更新処理が正常に完了しなかったことを示す異常発生情報を前記記憶部に記憶させる、構成1または構成2に記載の車両制御装置。
構成3の車両制御装置によれば、更新処理が正常に完了しなかったことを示す情報を記憶することにより、更新処理が正常に完了しなかった車両起動用プログラムを確実に識別できる。例えば、車両制御部が起動して車両起動用プログラムを実行する場合に、更新処理が正常に完了しなかった車両起動用プログラムが実行されることを防止できる。このため、車両を制御するプログラムの更新に関し、より高い信頼性を確保できる。
【0121】
(構成4)前記車両制御部は、前記記憶部に前記異常発生情報が記憶されている場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行する、構成3に記載の車両制御装置。
構成4の車両制御装置によれば、更新処理が正常に完了しなかった車両起動用プログラムを異常発生情報に基づき区別できる。これにより、実行に適しない車両起動用プログラムを実行することなく、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させる。このため、車両を制御するプログラムの更新に関し、より高い信頼性を確保できる。
【0122】
(構成5)前記更新処理が正常に完了しなかったことを示す異常発生通知を行う通知部を備え、前記車両制御部が前記書換制限領域に記憶された前記車両起動用プログラムを実行する場合、前記通知部によって前記異常発生通知を実行する、構成1から構成4のいずれか1項に記載の車両制御装置。
構成5の車両制御装置によれば、車両起動用プログラムの更新処理が正常に完了しなかったことを通知することによって、車両の状態をユーザに知らせることができる。この通知により、例えば、車両起動用プログラムの更新処理の再実行や、車両起動用プログラムの修復を促すことができる。このため、車両を制御するプログラムの更新に支障が発生した場合であっても、ユーザがより適切な対処を行うことが可能となる。
【0123】
(構成6)前記通知部によって前記異常発生通知を実行する場合に、前記通信部によって、前記更新処理が正常に完了しなかったことを示す異常発生信号を前記外部装置に送信する、構成5に記載の車両制御装置。
構成6の車両制御装置によれば、車両起動用プログラムの更新処理が正常に完了しなかったことを外部装置に知らせることができる。この通知により、車両起動用プログラムの更新処理が正常に完了しなかったことを、外部装置による検知または記録することが可能となる。これにより、例えば、車両起動用プログラムの更新処理の再実行や、車両起動用プログラムの修復に関して、外部からユーザに対して支援を行うことが可能となる。
【0124】
(構成7)前記記憶部は、前記車両起動用プログラムおよび前記車両起動用更新プログラムを記憶する第1記憶領域と、前記車両起動用プログラムおよび前記車両起動用更新プログラムを記憶する第2記憶領域とを、前記書換可能領域に備え、前記プログラム更新部は、前記車両起動用更新プログラムを、前記第1記憶領域または前記第2記憶領域の少なくとも一方に記憶させる前記更新処理を実行し、前記第2記憶領域に前記車両起動用更新プログラムを記憶させる前記更新処理が正常に完了しなかった場合に、前記更新処理が正常に完了しなかったことを示す異常発生情報を、前記第1記憶領域に記憶させる、構成1に記載の車両制御装置。
構成7の車両制御装置によれば、車両起動用プログラムを更新する間、更新に影響されない領域にも車両起動用プログラムを保持できるので、プログラムの更新に支障が発生することに備えて、プログラムを更新するタイミングを制限する必要がない。従って、プログラムを更新するタイミングの制約を小さくすることができる。そして、更新処理に支障が生じた場合には、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させることができる。つまり、更新が正常に完了しなかった車両起動用プログラム、及び、更新されなかった車両起動用プログラムの両方が実行に適しない状態であっても、車両を起動させることが可能である。さらに、異常発生情報に基づいて、更新処理が正常に完了しなかった車両起動用プログラムを区別できる。これにより、実行に適しない車両起動用プログラムを実行することなく、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させることができる。従って、車両を確実に起動させることができ、車両を制御するプログラムの更新に関し、より高い信頼性を確保できる。
【0125】
(構成8)前記車両制御部は、前記第1記憶領域及び前記第2記憶領域に前記車両起動用プログラムが記憶されている場合に、前記異常発生情報に基づいて、前記第1記憶領域に記憶された前記車両起動用プログラムまたは前記第2記憶領域に記憶された前記車両起動用プログラムを選択して実行する、構成7に記載の車両制御装置。
構成8の車両制御装置によれば、異常発生情報に基づいて、更新処理が正常に完了しなかった車両起動用プログラムを区別する。これにより、実行に適しない車両起動用プログラムを実行することなく、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させることができる。従って、車両を確実に起動させることができ、車両を制御するプログラムの更新に関し、より高い信頼性を確保できる。
【0126】
(構成9)前記更新処理が正常に完了しなかったことを通知する通知部を備え、前記車両制御部は、前記異常発生情報に基づいて前記第1記憶領域に記憶された前記車両起動用プログラムを実行する場合に、前記通知部によって異常発生第1通知を行う、構成7または構成8に記載の車両制御装置。
構成9の車両制御装置によれば、車両起動用プログラムの更新処理が正常に完了しなかったことを通知することによって、車両の状態をユーザに知らせることができる。この通知により、例えば、車両起動用プログラムの更新処理の再実行を促すことができる。このため、車両を制御するプログラムの更新に支障が発生した場合であっても、ユーザがより適切な対処を行うことが可能となる。
【0127】
(構成10)前記車両制御部が前記書換制限領域に記憶された前記車両起動用プログラムを実行する場合、前記通知部によって前記異常発生第1通知とは異なる異常発生第2通知を行う、構成9に記載の車両制御装置。
構成10の車両制御装置によれば、更新が正常に完了しなかった車両起動用プログラム、及び、更新されなかった車両起動用プログラムの両方が実行に適しない状態であることを、通知できる。異常発生第2通知は、車両起動用プログラムの更新処理の再実行を促すような異常発生第1通知とは異なるため、より迅速な対処を要することを、ユーザに知らせることができる。
【0128】
(構成11)前記通知部によって前記異常発生第2通知を実行する場合に、前記通信部によって、前記更新処理が正常に完了しなかったことを示す異常発生信号を前記外部装置に送信する、構成10に記載の車両制御装置。
構成11の車両制御装置によれば、車両起動用プログラムの更新処理が正常に完了せず、更新されなかった車両起動用プログラムも実行に適しない状態であることを、外部装置に知らせることができる。これにより、例えば、車両起動用プログラムの更新処理の再実行や、車両起動用プログラムの修復に関して、外部からユーザに対して支援を行うことが可能となる。
【0129】
(構成12)車両の外部に存在する外部装置と通信を行う通信部と、前記車両を起動させるための車両起動用プログラムを記憶する記憶部と、を備える車両制御装置を利用する車両制御方法であって、前記記憶部には、前記車両起動用プログラムを記憶し書き換えが制限される書換制限領域と、前記車両起動用プログラムを書き換え可能に記憶する書換可能領域と、が設けられ、前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域に記憶させる更新処理を実行し、前記書換可能領域に記憶された前記車両起動用プログラムを実行することによって前記車両を起動させ、前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行する、車両制御方法。
構成12の車両制御方法によれば、車両起動用プログラムの更新に支障が生じた場合であっても、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させることができる。書き換えが制限される領域に記憶された車両起動用プログラムは、更新の対象でないため、実行可能な状態で維持される。このため、車両起動用プログラムを実行できない事態を確実に回避できるので、車両を制御するプログラムの更新に関する信頼性を確保できる。
【0130】
(構成13)車両の外部に存在する外部装置と通信を行う通信部と、前記車両を起動させるための車両起動用プログラムを記憶する記憶部と、を備える車両制御装置を制御するコンピュータが実行するプログラムを記憶した記録媒体であって、前記記憶部には、前記車両起動用プログラムを記憶し書き換えが制限される書換制限領域と、前記車両起動用プログラムを書き換え可能に記憶する書換可能領域と、が設けられ、前記コンピュータに、前記通信部によって受信された、前記車両起動用プログラムの更新に利用される車両起動用更新プログラムを、前記書換可能領域に記憶させる更新処理を実行させ、前記書換可能領域に記憶された前記車両起動用プログラムを実行させることによって前記車両を起動させ、前記更新処理が正常に完了しなかった場合に、前記書換制限領域に記憶された前記車両起動用プログラムを実行させるプログラムを記憶する、記録媒体。
構成13の記録媒体に記録されたプログラムによれば、車両起動用プログラムの更新に支障が生じた場合であっても、書き換えが制限される領域に記憶された車両起動用プログラムを利用して、車両を起動させることができる。書き換えが制限される領域に記憶された車両起動用プログラムは、更新の対象でないため、実行可能な状態で維持される。このため、車両起動用プログラムを実行できない事態を確実に回避できるので、車両を制御するプログラムの更新に関する信頼性を確保できる。
【符号の説明】
【0131】
1…制御システム(車両制御装置)、2…セントラルECU、12…TCU(通信部)、19…DLC(通信部)、20…ゾーンECU、20a…第1ゾーンECU、20b…第2ゾーンECU、20c…第3ゾーンECU、30、30a、30b、30c、30d、30e、30f、30g、30h、30i、30j、30k、30l、30m、30n…ECU、41…電源リレー、51…プログラム実行部(車両制御部)、52…更新実行部(プログラム更新部)、53、53A…記憶部、61、61A…ブート領域(書換制限領域)、62…プログラム記憶領域(書換可能領域)、67…プログラム記憶第1領域(書換可能領域)、68…プログラム記憶第2領域(書換可能領域)、72…車両起動用プログラム、73…車両起動用プログラム、74…異常発生情報、81…マスターブートレコード、82…車両起動用プログラム、85、86…車両起動用プログラム、87A、87B…異常発生情報、88A、88B…更新情報、100…プログラム管理システム、110…サーバ、120…車両診断装置、201…更新制御部、202…更新データ受信部、203…更新データ制御部、V…車両。