(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024177734
(43)【公開日】2024-12-24
(54)【発明の名称】ソフトウェアの更新用サーバ、ソフトウェアの更新プログラム、及びソフトウェアの更新方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20241217BHJP
【FI】
G06F8/65
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023096038
(22)【出願日】2023-06-12
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】高下 直樹
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA61
(57)【要約】
【課題】不具合がある更新ソフトウェアが車両に適用されることを抑制する。
【解決手段】ソフトウェアの更新用サーバは、実行装置と、記憶装置とを備えている。記憶装置は、ソフトウェアの更新処理の対象車両を指定する情報、及び対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報を記憶している。記憶装置は、更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報を記憶している。実行装置は、付随情報を外部からの入力に基づき記憶装置に記憶する。実行装置は、付随情報が更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定しているキャンペーン情報については、当該キャンペーン情報に応じた更新処理を禁止する(S22)。
【選択図】
図3
【特許請求の範囲】
【請求項1】
実行装置と、記憶装置とを備え、
前記記憶装置は、
ソフトウェアの更新処理の対象車両を指定する情報、及び前記対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報と、
前記更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報と、
を記憶しており、
前記実行装置は、
前記付随情報を外部からの入力に基づき前記記憶装置に記憶することと、
前記付随情報が前記更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止することと、
を実行する
ソフトウェアの更新用サーバ。
【請求項2】
前記付随情報は、前記更新ソフトウェア毎に、当該更新ソフトウェアに更新してはならない非更新車両を指定する情報を含み、
前記実行装置は、
前記付随情報が前記更新ソフトウェア自体に不具合がないことを示している場合であっても、当該更新ソフトウェアを指定し、且つ、前記非更新車両を前記対象車両として指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止すること、
を実行する
請求項1に記載のソフトウェアの更新用サーバ。
【請求項3】
前記実行装置は、
前記キャンペーン情報での前記対象車両に対して前記更新ソフトウェアが適用可能であることを通知するキャンペーン通知を送信することと、
前記キャンペーン通知を送信した後に、当該キャンペーン通知を送信した前記対象車両に対して前記更新ソフトウェアを送信することと、
前記キャンペーン情報に応じた前記キャンペーン通知の送信を禁止することにより前記更新処理を禁止することと、
を実行する
請求項1又は請求項2に記載のソフトウェアの更新用サーバ。
【請求項4】
実行装置と、記憶装置とを備える更新用サーバを対象とし、
前記記憶装置は、
ソフトウェアの更新処理の対象車両を指定する情報、及び前記対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報と、
前記更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報と、
を記憶しており、
前記実行装置に、
前記付随情報を外部からの入力に基づき前記記憶装置に記憶することと、
前記付随情報が前記更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止することと、
を実行させる
ソフトウェアの更新プログラム。
【請求項5】
実行装置と、記憶装置とを備える更新用サーバを対象とし、
前記記憶装置は、
ソフトウェアの更新処理の対象車両を指定する情報、及び前記対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報と、
前記更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報と、
を記憶しており、
前記実行装置が、
前記付随情報を外部からの入力に基づき前記記憶装置に記憶することと、
前記付随情報が前記更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止することと、
を実行する
ソフトウェアの更新方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの更新用サーバ、ソフトウェアの更新プログラム、及びソフトウェアの更新方法に関する。
【背景技術】
【0002】
特許文献1に記載のソフトウェアの更新システムは、ソフトウェアを配信する更新用サーバと、車両とを備えている。車両は、マスタ装置と、複数の制御装置とを備えている。更新用サーバは、車両の制御装置に対するソフトウェアの更新を実行する際に、車両のマスタ装置に対してキャンペーン通知を送信する。マスタ装置は、キャンペーン通知を取得し、且つ、車両のユーザからソフトウェアの更新についての承諾が得られた場合に、制御装置に対するソフトウェアの更新に関する処理を実行する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のようなソフトウェアの更新システムにおいて、更新する新たなソフトウェアにバグなどの不具合が存在する可能性は否定できない。仮に、ソフトウェア自体に不具合が存在する場合には、当該ソフトウェアが各車両に適用されることを、速やかに防止する必要がある。
【課題を解決するための手段】
【0005】
上記課題を解決するためのソフトウェアの更新用サーバは、実行装置と、記憶装置とを備え、前記記憶装置は、ソフトウェアの更新処理の対象車両を指定する情報、及び前記対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報と、前記更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報と、を記憶しており、前記実行装置は、前記付随情報を外部からの入力に基づき前記記憶装置に記憶することと、前記付随情報が前記更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止することと、を実行する。
【0006】
上記課題を解決するためのソフトウェアの更新プログラムは、実行装置と、記憶装置とを備える更新用サーバを対象とし、前記記憶装置は、ソフトウェアの更新処理の対象車両を指定する情報、及び前記対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報と、前記更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報と、を記憶しており、前記実行装置に、前記付随情報を外部からの入力に基づき前記記憶装置に記憶することと、前記付随情報が前記更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止することと、を実行させる。
【0007】
上記課題を解決するためのソフトウェアの更新方法は、実行装置と、記憶装置とを備える更新用サーバを対象とし、前記記憶装置は、ソフトウェアの更新処理の対象車両を指定する情報、及び前記対象車両に搭載された制御装置に適用するべき更新ソフトウェアを指定する情報を含むキャンペーン情報と、前記更新ソフトウェア毎に、当該更新ソフトウェア自体に不具合があるか否かの情報を示している付随情報と、を記憶しており、前記実行装置が、前記付随情報を外部からの入力に基づき前記記憶装置に記憶することと、前記付随情報が前記更新ソフトウェア自体に不具合があることを示している場合、不具合のある当該更新ソフトウェアを指定している前記キャンペーン情報については、当該キャンペーン情報に応じた前記更新処理を禁止することと、を実行する。
【発明の効果】
【0008】
上記構成によれば、更新ソフトウェアにバグなどの不具合がある場合に、その更新ソフトウェアを指定している全てのキャンペーン情報に応じた更新処理が禁止される。したがって、例えば更新用サーバの管理者等が付随情報を入力すれば、不具合がある更新ソフトウェアが各車両の制御装置に適用されることを、一括して防止できる。
【図面の簡単な説明】
【0009】
【
図3】
図3は、判定制御を示すフローチャートである。
【
図4】
図4は、取得制御を示すシーケンス図である。
【
図5】
図5は、更新制御を示すシーケンス図である。
【発明を実施するための形態】
【0010】
<更新システムの概略構成>
以下、本発明の一実施形態を
図1~
図5にしたがって説明する。先ず、更新システムUSの概略構成について説明する。
【0011】
図1に示すように、更新システムUSは、複数の車両100を備えている。車両100としては、例えば、ユーザが所有する自動車である。なお、
図1では、1つの車両100のみを代表して図示している。
【0012】
車両100は、セントラルECU10、パワートレインECU20、ブレーキECU30、先進運転支援ECU40、及びDCM50を備えている。また、車両100は、第1外部バス61、第2外部バス62、第3外部バス63、及び第4外部バス64を備えている。なお、「ECU」は、Electronic Control Unitの略称である。また、「DCM」は、Data Communication Moduleの略称である。本実施形態において、パワートレインECU20、ブレーキECU30、及び先進運転支援ECU40のそれぞれは、ソフトウェアの更新が行われる制御装置の一例である。
【0013】
セントラルECU10は、車両100の全体を統括して制御する。セントラルECU10は、CPU11、ROM12、RAM13、ストレージ14、及び内部バス15を備えている。内部バス15は、CPU11、ROM12、RAM13、及びストレージ14を互いに通信可能に接続している。ROM12は、各種のプログラム及び各種のデータを予め記憶している。また、ROM12は、各種のプログラムの一つとして、ソフトウェアの更新の際に実行されるマスタプログラム12Aを予め記憶している。RAM13は、揮発性メモリである。RAM13は、各種のプログラム及び各種のデータを一時的に記憶する。CPU11は、RAM13を作業領域として、ROM12のプログラムを読み出すことにより各種の処理を実行する。また、CPU11は、マスタプログラム12Aを読み出すことにより、制御装置のソフトウェアの更新処理に関する各種の処理を実行する。すなわち、セントラルECU10は、制御装置のソフトウェアを更新するためのマスタ装置として機能する。
【0014】
ストレージ14は、各種のプログラム及び各種のデータを記憶可能である。ストレージ14は、電気的に書き換え可能な不揮発性メモリである。例えば、ストレージ14は、NAND型のフラッシュメモリである。
【0015】
ストレージ14は、車両構成情報IVを予め記憶している。車両構成情報IVは、ソフトウェア情報、及び車両識別情報を含んでいる。ここで、ソフトウェア情報は、ECU毎のソフトウェアと、そのソフトウェアのバージョンを示す情報である。また、車両識別情報は、車両100の種別及び識別番号などを示す情報である。
【0016】
DCM50は、第1外部バス61を介してセントラルECU10と接続している。DCM50は、通信ネットワークNWを介して車両100の外部の機器と無線通信可能である。したがって、セントラルECU10は、第1外部バス61及びDCM50を介して車両100の外部の機器と無線通信可能である。
【0017】
パワートレインECU20は、第2外部バス62を介してセントラルECU10と互いに通信可能である。パワートレインECU20は、図示しないエンジン及びトランスミッション等を制御するための各種の処理を実行する。パワートレインECU20は、CPU21、ROM22、RAM23、ストレージ24、及び内部バス25を備えている。内部バス25は、CPU21、ROM22、RAM23、及びストレージ24を互いに通信可能に接続している。ROM22は、各種のプログラム及び各種のデータを予め記憶している。また、ROM22は、各種のプログラムの一つとして、制御プログラム22Aを予め記憶している。ROM22は、いわゆるEPROM(Erasable Programmable Read Only Memory)である。つまり、ROM22に記憶されている制御プログラム22Aは、更新可能である。また、ROM22は、データの格納領域を2つ有する、いわゆる2面ROMである。つまり、ROM22では、当該ROM22がオン状態であっても、そのオン状態で利用しているデータの格納領域とは別の格納領域にソフトウェアのインストールが可能である。RAM23は、揮発性メモリである。RAM23は、各種のプログラム及び各種のデータを一時的に記憶する。CPU21は、RAM23を作業領域として、ROM22のプログラムを読み出すことにより各種の処理を実行する。また、CPU21は、制御プログラム22Aを読み出すことにより、エンジン及びトランスミッション等を制御するための各種の処理を実行する。
【0018】
ストレージ24は、各種のプログラム及び各種のデータを記憶可能である。ストレージ24は、電気的に書き換え可能な不揮発性メモリである。例えば、ストレージ24は、NOR型のフラッシュメモリである。
【0019】
ブレーキECU30は、第3外部バス63を介してセントラルECU10と互いに通信可能である。ブレーキECU30は、図示しないブレーキ装置を制御する。ブレーキECU30の内部構成は、パワートレインECU20の内部構成と同様である。すなわち、ブレーキECU30は、CPU31、ROM32、RAM33、ストレージ34、及び内部バス35を備えている。ROM32は、各種のプログラムの一つとして、制御プログラム32Aを予め記憶している。CPU31は、制御プログラム32Aを読み出すことにより、ブレーキ装置を制御するための各種の処理を実行する。
【0020】
先進運転支援ECU40は、第4外部バス64を介してセントラルECU10と互いに通信可能である。先進運転支援ECU40は、各種のアプリケーションソフトウェアを実行することにより各種の運転支援を実現する。なお、各種のアプリケーションソフトウェアは、車両100に先行して走行する先行車両との車間距離を一定に保ちながら追従走行するためのソフトウェア、車両100への衝突の被害を軽減させるために自動的に制動をかけるためのソフトウェア等を含んでいる。先進運転支援ECU40の内部構成は、パワートレインECU20の内部構成と同様である。すなわち、先進運転支援ECU40は、CPU41、ROM42、RAM43、ストレージ44、及び内部バス45を備えている。ROM42は、各種のプログラムの一つとして、制御プログラム42Aを予め記憶している。CPU41は、制御プログラム42Aを読み出すことにより、上述した各種の運転支援を実現するための各種の処理を実行する。
【0021】
図1に示すように、車両100は、複数の機器で構成された機器群を備えている。これら機器の例は、二次電池71、及びディスプレイ76である。二次電池71は、セントラルECU10、パワートレインECU20、ブレーキECU30、先進運転支援ECU40、及びDCM50等に電力を供給する。なお、
図1では、二次電池71とセントラルECU10とを接続する電力経路、及び二次電池71とパワートレインECU20とを接続する電力経路のみを代表して図示している。
【0022】
ディスプレイ76は、各種の情報を表示可能である。また、ディスプレイ76は、いわゆるタッチパネルディスプレイである。したがって、車両100のユーザは、ディスプレイ76を介して各種の情報を入力することが可能である。つまり、ディスプレイ76は、ユーザに対して情報を出力する出力機器としても、ユーザからの情報を受け付ける入力機器としても機能する。
【0023】
セントラルECU10は、ディスプレイ76に制御信号を出力することにより、ディスプレイ76において各種の情報を表示する。また、セントラルECU10は、ディスプレイ76から、車両100のユーザにより入力された情報を取得する。
【0024】
図1に示すように、更新システムUSは、更新用サーバ200を備えている。更新用サーバ200は、実行装置210、記憶装置220、及び通信装置230を備えている。通信装置230は、通信ネットワークNWを介して更新用サーバ200の外部の機器と無線通信可能である。記憶装置220は、読み出しのみが可能なROMと、読み出し及び書き込みが可能な揮発性のRAMと、読み出し及び書き込みが可能な不揮発性のストレージとを含んでいる。記憶装置220は、各種のプログラム及び各種のデータを予め記憶している。記憶装置220は、各種のプログラムの一つとして、更新プログラム220Aを記憶している。実行装置210は、更新プログラム220Aを読み出すことにより、ソフトウェアの更新方法における各種の処理を実現する。なお、実行装置210の一例は、CPUである。
【0025】
図1に示すように、記憶装置220は、各種のデータとして、複数のキャンペーン情報ICを記憶している。キャンペーン情報ICは、車両100に搭載された制御装置のソフトウェアの更新処理を行うためのキャンペーンに関する情報である。なお、
図1では、1つのキャンペーン情報ICのみを代表して図示している。
図2に示すように、キャンペーン情報ICは、対象車両情報ITV、配信時期情報IDT、禁止フラグFF、及び同期アセンブリASを含んでいる。対象車両情報ITVは、ソフトウェアの更新処理の対象とする車両100を指定する情報である。例えば、対象車両情報ITVは、「00001~10000」といった複数の車両100の識別番号を示す情報である。なお、本実施形態において、対象車両情報ITVは、車両100が販売された国、車両100の販売時期、車両100の車種などで区分けされた複数の車両100を指定するものである。また、配信時期情報IDTは、ソフトウェアの更新処理のために当該ソフトウェアを配信する時期を定めた情報である。例えば、配信時期情報IDTは、「*年*月*日*時」といった日時を示す情報である。同期アセンブリASは、車両100において同時に更新するソフトウェアを指定した情報である。すなわち、同期アセンブリASは、1又は複数のソフトウェアを指定する。ここで、同期アセンブリASが指定しているソフトウェアは、車両100の制御装置に適用する新しいソフトウェアのことである。なお、同期アセンブリASが指定しているソフトウェアの一例は、車両100に記憶されたソフトウェアに比べて新しいバージョンの、制御プログラム22A、制御プログラム32A、及び制御プログラム42Aのうちの1以上である。本実施形態において、同期アセンブリASが指定しているソフトウェアのそれぞれは、車両100に搭載された制御装置に適用するべき更新ソフトウェアに相当する。なお、記憶装置220は、キャンペーン情報ICとは別に、車両100に記憶されたソフトウェアに比べて新しいバージョンの、制御プログラム22A、制御プログラム32A、及び制御プログラム42Aを記憶している。また、禁止フラグFFは、キャンペーン情報ICに応じた更新処理を禁止するためのフラグである。本実施形態において、禁止フラグFFがONであることは、キャンペーン情報ICに応じた更新処理を禁止することを示す。なお、禁止フラグFFの初期値は、OFFである。
【0026】
図1に示すように、記憶装置220は、各種のデータとして、複数の付随情報IAを記憶している。記憶装置220は、更新ソフトウェア毎に、すなわち、制御プログラム22A、制御プログラム32A、及び制御プログラム42Aに対応して、合計3つの付随情報IAを記憶している。なお、
図1では、1つの付随情報IAのみを代表して図示している。付随情報IAは、不具合情報ID、及び非更新情報INを含んでいる。不具合情報IDは、対応する更新ソフトウェア自体に不具合があるか否かの情報である。したがって、例えば、制御プログラム22Aに対応した付随情報IAの不具合情報IDは、制御プログラム22A自体に不具合があるか否かの情報を示す。また、非更新情報INは、対応する更新ソフトウェアを更新してはならない非更新車両を指定する情報である。したがって、例えば、制御プログラム22Aに対応した付随情報IAの非更新情報INは、制御プログラム22Aを更新してはならない非更新車両を指定する情報である。また、非更新情報INの非更新車両が指定される状況の一例は、車両100が使用される国などの法規に対して制御プログラム22Aが適合していない場合である。例えば、非更新情報INは、「00001~10000」といった複数の車両100の識別番号を示す情報である。本実施形態において、例えば更新用サーバ200の管理者等が当該更新用サーバ200に接続された入力機器を介して付随情報IAを入力する度に、実行装置210は、入力された付随情報IAを記憶装置220に記憶する。換言すると、実行装置210は、付随情報IAを外部からの入力に基づき記憶装置220に記憶する。
【0027】
<判定制御>
次に、
図3を参照して、更新用サーバ200が実行する判定制御について説明する。この判定制御は、更新用サーバ200がキャンペーン情報ICに応じた更新処理を禁止するか否かを決定するための制御である。本実施形態において、更新用サーバ200の実行装置210は、記憶装置220の付随情報IAが更新される度に、その付随情報IAに対応する更新ソフトウェアについての判定制御を実行する。
【0028】
図3に示すように、更新用サーバ200の実行装置210は、判定制御を開始すると、ステップS11の処理を実行する。ステップS11において、更新用サーバ200の実行装置210は、記憶装置220に記憶された新たな付随情報IAを取得する。ステップS11の後、実行装置210は、処理をステップS12に進める。
【0029】
ステップS12において、実行装置210は、付随情報IAの不具合情報IDに基づいて、その付随情報IAに対応する更新ソフトウェア自体に不具合があるか否かを判定する。ステップS12において、付随情報IAの不具合情報IDが更新ソフトウェア自体に不具合があることを示していると実行装置210が判定した場合(S12:YES)、実行装置210は、処理をステップS21に進める。
【0030】
ステップS21において、実行装置210は、記憶装置220に記憶された複数のキャンペーン情報ICのうち、不具合がある更新ソフトウェアを指定している全てのキャンペーン情報ICを抽出する。なお、具体的には、実行装置210は、各キャンペーン情報ICの同期アセンブリASに基づいて、不具合がある更新ソフトウェアを指定しているキャンペーン情報ICを抽出する。ステップS21の後、実行装置210は、処理をステップS22に進める。
【0031】
ステップS22において、実行装置210は、ステップS21で抽出したキャンペーン情報ICについて、禁止フラグFFをONに設定する。換言すると、実行装置210は、不具合がある更新ソフトウェアを指定しているキャンペーン情報ICについては、当該キャンペーン情報ICの禁止フラグFFをONに設定する。ステップS22の後、実行装置210は、今回の判定制御を終了する。
【0032】
一方、上述したステップS12において、付随情報IAの不具合情報IDが更新ソフトウェア自体に不具合がないことを示していると実行装置210が判定した場合(S12:NO)、実行装置210は、処理をステップS13に進める。
【0033】
ステップS13において、実行装置210は、付随情報IAの非更新情報INに基づいて、その付随情報IAに対応する更新ソフトウェアを更新してはならない非更新車両があるか否かを判定する。ステップS13において、更新ソフトウェアを更新してはならない非更新車両がないと実行装置210が判定した場合(S13:NO)、実行装置210は、今回の判定制御を終了する。
【0034】
一方、ステップS13において、更新ソフトウェアを更新してはならない非更新車両があると実行装置210が判定した場合(S13:YES)、実行装置210は、処理をステップS31に進める。
【0035】
ステップS31において、実行装置210は、記憶装置220に記憶された複数のキャンペーン情報ICのうち、付随情報IAに対応する更新ソフトウェアを指定し、且つ、非更新車両を更新処理の対象として指定している全てのキャンペーン情報ICを抽出する。なお、具体的には、実行装置210は、キャンペーン情報ICの同期アセンブリAS及び対象車両情報ITVに基づいて、更新ソフトウェアを指定し、且つ、非更新車両を更新処理の対象として指定しているキャンペーン情報ICを抽出する。このとき、実行装置210は、キャンペーン情報ICの対象車両情報ITVが指定している車両100と付随情報IAの非更新情報INが指定している非更新車両とが一部でも重複しているキャンペーン情報ICも、上記抽出の対象とする。ステップS31の後、実行装置210は、処理をステップS32に進める。
【0036】
ステップS32において、実行装置210は、ステップS31で抽出したキャンペーン情報ICについて、禁止フラグFFをONに設定する。換言すると、実行装置210は、更新ソフトウェアを指定し、且つ、非更新車両を更新処理の対象として指定しているキャンペーン情報ICについては、当該キャンペーン情報ICの禁止フラグFFをONに設定する。ステップS32の後、実行装置210は、今回の判定制御を終了する。
【0037】
<取得制御>
次に、
図4を参照して、更新用サーバ200、及び車両100のセントラルECU10が実行する取得制御について説明する。この取得制御は、更新用サーバ200が車両構成情報IVを取得するための制御である。また、取得制御は、1つの更新用サーバ200と、複数の車両100のセントラルECU10との間で、それぞれ並行して実行される。本実施形態において、車両100のセントラルECU10は、車両100のシステムが起動する度に、取得制御を開始する。
【0038】
図4に示すように、セントラルECU10のCPU11は、取得制御を開始すると、ステップS51の処理を実行する。ステップS51において、セントラルECU10のCPU11は、車両構成情報IVを、更新用サーバ200に送信する。更新用サーバ200の実行装置210が車両構成情報IVを取得した場合、更新用サーバ200の実行装置210は、処理をステップS52に進める。
【0039】
ステップS52において、更新用サーバ200の実行装置210は、車両構成情報IVに基づいて、車両100についてソフトウェアの更新の要求が発生したか否かを判定する。例えば、記憶装置220に記憶されている制御プログラム22Aのバージョンが車両100の制御プログラム22Aのバージョンに比べて新しい場合に、更新用サーバ200の実行装置210は、車両100についてソフトウェアの更新の要求が発生したと判定する。なお、更新用サーバ200の実行装置210は、車両100についてソフトウェアの更新の要求が発生したことを必要条件として、後述する更新制御を実行する。ステップS52の後、更新用サーバ200の実行装置210は、今回の取得制御を終了する。
【0040】
<更新制御>
次に、
図5を参照して、更新用サーバ200、及び車両100のセントラルECU10が実行する更新制御について説明する。この更新制御は、車両100のソフトウェアの更新に関する制御である。この更新制御は、1つの更新用サーバ200と、複数の車両100のセントラルECU10との間で、それぞれ並行して実行される。
【0041】
本実施形態において、更新用サーバ200の実行装置210は、例えば以下の条件(1)及び条件(2)を全て満たした場合に、キャンペーン情報ICの同期アセンブリASが指定している更新ソフトウェアについての更新制御を実行する。なお、以下では、同期アセンブリASが指定している更新ソフトウェアが制御プログラム22Aであるものを一例として、当該制御プログラム22Aの更新制御を行う場合の処理を説明する。
【0042】
条件(1):取得制御において、キャンペーン情報ICの対象車両情報ITVで指定された車両100についてソフトウェアの更新の要求が発生したこと。
条件(2):現時点がキャンペーン情報ICの配信時期情報IDTで定められた時期以降であること。
【0043】
図5に示すように、更新用サーバ200の実行装置210は、更新制御を開始すると、ステップS61の処理を実行する。ステップS61において、更新用サーバ200の実行装置210は、キャンペーン情報ICの禁止フラグFFを確認する。そして、禁止フラグFFがONである場合、更新用サーバ200の実行装置210は、ステップS62~ステップS82の処理を実行せずに、今回の更新制御を終了する。換言すると、更新用サーバ200の実行装置210は、禁止フラグFFがONであるキャンペーン情報ICについては、当該キャンペーン情報ICに応じたキャンペーン通知NCの送信を禁止する。なお、キャンペーン通知NCについては、後述する。一方、禁止フラグFFがOFFである場合、更新用サーバ200の実行装置210は、処理をステップS62に進める。
【0044】
ステップS62において、更新用サーバ200の実行装置210は、キャンペーン情報ICに応じたキャンペーン通知NCを、ソフトウェアの更新の要求が発生した車両100に対して送信する。ここで、キャンペーン通知NCは、キャンペーン情報ICで更新処理の対象としている車両100に対して更新ソフトウェアが適用可能であることを通知するものである。したがって、実行装置210がキャンペーン通知NCの送信を行わない限り、当該キャンペーン通知NCに対応した更新ソフトウェアの更新処理は行われない。つまり、上述したように、禁止フラグFFがONである場合、実行装置210は、キャンペーン通知NCの送信を禁止することにより、キャンペーン情報ICに応じた更新ソフトウェアの更新処理を禁止する。また、キャンペーン通知NCは、更新ソフトウェアの種別を示す情報を含んでいる。なお、この例では、更新ソフトウェアの種別を示す情報は、更新ソフトウェアがパワートレインECU20の制御プログラム22Aであることを示す情報である。セントラルECU10のCPU11がキャンペーン通知NCを取得した場合、セントラルECU10のCPU11は、処理をステップS66に進める。
【0045】
ステップS66において、セントラルECU10のCPU11は、車両100のユーザに対して、制御プログラム22Aの更新のために新たな制御プログラム22Aのダウンロードの実行を承諾するか否かを確認する。具体的には、セントラルECU10のCPU11は、ディスプレイ76に制御信号を出力することにより、ディスプレイ76において制御プログラム22Aのダウンロードの実行を承諾するか否かの選択肢を表示させる。そして、車両100のユーザから承諾が得られない場合、セントラルECU10のCPU11は、一定期間毎に、制御プログラム22Aのダウンロードの実行を承諾するか否かの選択肢を表示させる。一方、車両100のユーザから承諾が得られた場合、セントラルECU10のCPU11は、処理をステップS71に進める。
【0046】
ステップS71において、セントラルECU10のCPU11は、新たな制御プログラム22Aの送信を要求するための要求信号を、更新用サーバ200へと送信する。更新用サーバ200の実行装置210が要求信号を取得した場合、更新用サーバ200の実行装置210は、処理をステップS72に進める。
【0047】
ステップS72において、更新用サーバ200の実行装置210は、キャンペーン通知NCに対応した新たなソフトウェアとして、新たな制御プログラム22Aを、セントラルECU10へと送信する。換言すると、セントラルECU10のCPU11は、更新用サーバ200から新たな制御プログラム22Aをダウンロードする。このとき、セントラルECU10のCPU11は、セントラルECU10のストレージ14に新たな制御プログラム22Aを記憶する。ステップS72の後、セントラルECU10のCPU11は、処理をステップS76に進める。
【0048】
ステップS76において、セントラルECU10のCPU11は、車両100のユーザに対して、制御プログラム22Aの更新のために新たな制御プログラム22Aのインストール及びアクティベートの実行を承諾するか否かを確認する。具体的には、セントラルECU10のCPU11は、ディスプレイ76に制御信号を出力することにより、ディスプレイ76において制御プログラム22Aのインストール及びアクティベートの実行を承諾するか否かの選択肢を表示させる。そして、車両100のユーザから承諾が得られない場合、セントラルECU10のCPU11は、一定期間毎に、制御プログラム22Aのインストール及びアクティベートの実行を承諾するか否かの選択肢を表示させる。一方、車両100のユーザから承諾が得られた場合、セントラルECU10のCPU11は、処理をステップS80に進める。
【0049】
ステップS80において、セントラルECU10のCPU11は、予め定められた開始条件が満たされているか否かを判定する。ここで、開始条件の一例は、車両100のシステムがオフ状態であることである。なお、車両100のシステムがオフ状態であるとは、セントラルECU10を除く各ECUに電力が供給されていない状態のことをいう。したがって、車両100が走行している状態、及び車両100の各機器が使用可能なアクセサリオン状態は、オン状態である。そして、車両100が走行できない状態は、オフ状態である。ステップS80において、開始条件が満たされていないとセントラルECU10のCPU11が判定した場合、セントラルECU10のCPU11は、再びステップS80の処理を実行する。
【0050】
一方、ステップS80において、開始条件が満たされているとセントラルECU10のCPU11が判定した場合、セントラルECU10のCPU11は、処理をステップS81に進める。
【0051】
ステップS81において、セントラルECU10のCPU11は、ストレージ14に記憶されている新たな制御プログラム22Aを、パワートレインECU20のROM22にインストールする。ステップS81の後、セントラルECU10のCPU11は、処理をステップS82に進める。
【0052】
ステップS82において、セントラルECU10のCPU11は、インストールした制御プログラム22Aをアクティベートする。ここでいうアクティベートは、制御プログラム22Aを実行するための参照アドレス等を切り替えることにより、インストールした制御プログラム22Aを実行可能な状態にすることである。ステップS82の後、セントラルECU10のCPU11は、今回の更新制御を終了する。
【0053】
<本実施形態の作用>
仮に、キャンペーン情報ICの同期アセンブリASが指定している更新ソフトウェアである制御プログラム22Aにバグなどの不具合が生じているとする。このような状況において、例えば更新用サーバ200の管理者等が入力機器を介して制御プログラム22Aに対応した付随情報IAを入力すると、更新用サーバ200の実行装置210は、入力された付随情報IAを記憶装置220に記憶する。すると、
図3に示すように、更新用サーバ200の実行装置210は、更新された付随情報IAに対応する更新ソフトウェアについて判定制御を実行する。このとき、ステップS12において、付随情報IAの不具合情報IDが更新ソフトウェア自体に不具合があることを示していると、実行装置210は、処理をステップS21に進める。そして、ステップS21及びステップS22において、実行装置210は、不具合がある更新ソフトウェアを指定しているキャンペーン情報ICについては、当該キャンペーン情報ICの禁止フラグFFをONに設定する。このようにキャンペーン情報ICの禁止フラグFFがONに設定されていると、
図5に示すように、実行装置210が更新制御を開始しても、実行装置210は、ステップS62~ステップS82の処理を実行せずに、今回の更新制御を終了する。換言すると、更新用サーバ200の実行装置210は、不具合がある更新ソフトウェアを指定しているキャンペーン情報ICについては、当該キャンペーン情報ICに応じた更新ソフトウェアの更新処理を禁止する。
【0054】
<本実施形態の効果>
(1)本実施形態によれば、更新ソフトウェアにバグなどの不具合がある場合に、その更新ソフトウェアを指定している全てのキャンペーン情報ICに応じた更新ソフトウェアの更新処理が禁止される。したがって、更新用サーバ200の管理者等が付随情報IAを入力すれば、不具合がある更新ソフトウェアが各車両100の制御装置に適用されることを、一括して防止できる。
【0055】
(2)例えば、更新ソフトウェアにバグなどの不具合がないことで更新ソフトウェアが正常に機能する場合であっても、その更新ソフトウェアが、車両100が使用される国などの法規に適合していないことがある。この点、判定制御において、更新用サーバ200の実行装置210は、更新ソフトウェアを指定し、且つ、非更新車両を更新処理の対象として指定しているキャンペーン情報ICについては、当該キャンペーン情報ICの禁止フラグFFをONに設定する。そのため、更新ソフトウェア自体に不具合がない場合であっても、非更新車両を更新処理の対象として指定しているキャンペーン情報ICについては、当該キャンペーン情報ICに応じた更新ソフトウェアの更新処理を禁止される。これにより、更新ソフトウェアを更新してはならない車両100の制御装置に対して、更新ソフトウェアが適用されることは抑制できる。
【0056】
(3)更新制御において、更新用サーバ200の実行装置210は、キャンペーン情報ICに応じたキャンペーン通知NCの送信を禁止することにより、キャンペーン情報ICに応じた更新ソフトウェアの更新処理を禁止する。すなわち、ステップS72においてキャンペーン情報ICに応じた更新ソフトウェアの送信が実行されないだけでなく、ステップS62においてキャンペーン情報ICに応じたキャンペーン通知NCの送信も実行されない。これにより、更新ソフトウェアの更新処理が実行できないときであるにも拘わらず、キャンペーン通知NCが送信されることに起因して、更新ソフトウェアが適用可能であるかのような誤解を車両100のユーザに生じさせることは抑制できる。
【0057】
<変更例>
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0058】
・上記実施形態において、判定制御は変更してもよい。
例えば、ステップS13の判定処理は省略してもよい。具体例として、付随情報IAの非更新情報INとして非更新車両を指定する可能性が比較的に低いのであれば、ステップS13の判定処理を省略しても、その影響は小さい。この場合、ステップS12において、付随情報IAの不具合情報IDが更新ソフトウェア自体に不具合がないことを示していると実行装置210が判定した場合(S12:NO)、実行装置210は、今回の判定制御を終了すればよい。すなわち、ステップS31及びステップS32の処理も省略できる。また、付随情報IAは、非更新情報INを含んでいなくてもよい。
【0059】
・上記実施形態において、更新制御は変更してよい。
例えば、ステップS61の処理は、ステップS62の処理よりも前に実行しなくてもよい。具体例として、更新用サーバ200の実行装置210は、ステップS71の後であってステップS72よりも前に、ステップS61の処理を実行してもよい。この構成では、禁止フラグFFがONである場合に、更新用サーバ200の実行装置210は、ステップS72~ステップS82の処理を実行せずに、今回の更新制御を終了する。換言すると、禁止フラグFFがONである場合、実行装置210は、ステップS72においてキャンペーン情報ICに応じた更新ソフトウェアの送信を禁止することにより、キャンペーン情報ICに応じた更新ソフトウェアの更新処理を禁止する。
【符号の説明】
【0060】
IA…付随情報 IC…キャンペーン情報 NC…キャンペーン通知 NW…通信ネットワーク US…更新システム 10…セントラルECU 11…CPU 12…ROM 12A…マスタプログラム 13…RAM 14…ストレージ 20…パワートレインECU 21…CPU 22…ROM 22A…制御プログラム 23…RAM 24…ストレージ 30…ブレーキECU 31…CPU 32…ROM 32A…制御プログラム 34…ストレージ 40…先進運転支援ECU 41…CPU 42…ROM 42A…制御プログラム 44…ストレージ 50…DCM 71…二次電池 76…ディスプレイ 100…車両 200…更新用サーバ 210…実行装置 220…記憶装置 220A…更新プログラム 230…通信装置