(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】センタ、更新制御方法、更新制御プログラム、OTAマスタ
(51)【国際特許分類】
G06F 8/65 20180101AFI20241106BHJP
【FI】
G06F8/65
(21)【出願番号】P 2021081819
(22)【出願日】2021-05-13
【審査請求日】2023-09-12
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】長光 翔一
【審査官】西間木 祐紀
(56)【参考文献】
【文献】特開2005-135147(JP,A)
【文献】特開2006-344230(JP,A)
【文献】特開2021-022018(JP,A)
【文献】特開2020-027639(JP,A)
【文献】米国特許出願公開第2020/0401395(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
車両が備えるOTAマスタとネットワークを介して通信可能なセンタであって、
ターゲットECUの更新ソフトウェアが1以上含まれているパッケージデータが1以上含まれているキャンペーンデータを前記OTAマスタに配信する配信部と、
所定の前記キャンペーンデータに含まれている所定の前記パッケージデータの内容について、当該キャンペーンデータの配信後に
当該キャンペーンデータに基づく更新に伴う不具合が発見されたか否かを判定する不具合判定部と、
前記不具合が発見された場合、前記キャンペーンデータの適用に際して、当該不具合が発見されたパッケージデータの適用を行わないようにするための適用回避指示を当該キャンペーンデータの適用対象となる車両に所定のネットワークを介して送信する適用回避指示送信部と、を備える、センタ。
【請求項2】
前記センタは、前記不具合が発見されたパッケージデータと、当該パッケージデータが含まれている前記キャンペーンデータにおける他のパッケージデータとの関連度合いを判定する関連度判定部を更に備え、
前記適用回避指
示送信部は、前記不具合が発見されたパッケージデータとその他のパッケージデータとの関連度合いが低いと判定された場合に、前記適用回避指示を送信する、請求項1に記載のセンタ。
【請求項3】
車両が備えるOTAマスタとネットワークを介して通信可能なセンタのコンピュータが実行する更新制御方法であって、
ターゲットECUの更新ソフトウェアが1以上含まれているパッケージデータが1以上含まれているキャンペーンデータを前記OTAマスタに配信する配信ステップと、
所定の前記キャンペーンデータに含まれている所定の前記パッケージデータの内容について、当該キャンペーンデータの配信後に
当該キャンペーンデータに基づく更新に伴う不具合が発見されたか否かを判定する不具合判定ステップと、
前記不具合が発見された場合、前記キャンペーンデータの適用に際して、当該不具合が発見されたパッケージデータの適用を行わないようにするため適用回避指示を当該キャンペーンデータの適用対象となる車両に所定のネットワークを介して送信する適用回避指示送信ステップとを備える、更新制御方法。
【請求項4】
プロセッサと、メモリとを少なくとも備え、車両が備えるOTAマスタとネットワークを介して通信可能なセンタのコンピュータに実行させる更新制御プログラムであって、
ターゲットECUの更新ソフトウェアが1以上含まれているパッケージデータが1以上含まれているキャンペーンデータを前記OTAマスタに配信する配信ステップと、
所定の前記キャンペーンデータに含まれている所定の前記パッケージデータの内容について、当該キャンペーンデータの配信後に
当該キャンペーンデータに基づく更新に伴う不具合が発見されたか否かを判定する不具合判定ステップと、
前記不具合が発見された場合、前記キャンペーンデータの適用に際して、当該不具合が発見されたパッケージデータの適用を行わないようにするための適用回避指示を当該キャンペーンデータの適用対象となる車両に所定のネットワークを介して送信する適用回避指示送信ステップと、を前記コンピュータに実行させる、更新制御プログラム。
【請求項5】
複数のECUを含む車載ネットワークに接続されると共に、センタとネットワークを介して通信可能であり、1以上の前記ECUのプログラムを更新するOTAマスタであって、
ターゲットECUの更新ソフトウェアが1以上含まれているパッケージデータが1以上含まれているキャンペーンデータが存在するか否かの更新問い合わせを前記センタに送信する更新問い合わせ部と、
前記問い合わせの結果、前記キャンペーンデータがある場合、当該キャンペーンデータを前記センタ
から受信する第1受信部と、
前記
センタから受信した
前記キャンペーンデータに含まれる前記パッケージデータのうち、適用回避すべきパッケージがあるか否かの適用回避問い合わせを前記センタに送信する適用回避問い合わせ部と、
前記キャンペーンデータに含まれるパッケージデータを用いて前記ターゲットECUのソフトウェアを更新する更新処理部とを備え、
前記更新処理部は、前記適用回避問い合わせの結果、前記キャンペーンデータに含まれるパッケージデータの一部について適用を行わないことが示されている適用回避指示を前記センタから受信した場合は、当該適用回避指示で示されている所定のパッケージデータのみ適用しないようにして前記ターゲットECUのソフトウェアを更新する、OTAマスタ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両が備えるOTAマスタとネットワークを介して通信可能なセンタに関する。
【背景技術】
【0002】
従来から、車両には、制御機能を実行するための複数の電子制御装置(「ECU」と呼ばれる)が実装されている。当該ECUは、プロセッサと記憶部とを備え、プロセッサが記憶部に記憶されるソフトウェアを実行することによりECUの制御機能を実現する。また、各ECUが記憶するソフトウェアは更新可能である。具体的には、整備工場等において、車両に設けられたダイアグ用コネクタを介して接続した外部機器を用いて更新することができる。また、車載ネットワークが備える通信機器とインターネット等の通信ネットワークとを無線で接続し、無線通信を介して更新センタに設けられた配信サーバからダウンロードしたソフトウェアで更新することもできる(例えば特開2020-004245号公報)。この無線通信を介した更新サービスは、OTAサービスと呼ばれる。
【0003】
上記OTAサービスにおける更新処理では、更新対象となる所定のECU(ターゲットECUと呼ばれる)のソフトウェアを更新するための更新ソフトウェアが1以上含まれているパッケージデータを、「キャンペーン」と呼ばれるイベント単位で配信している。パッケージデータの例を挙げると、例えば、「自動運転制御用のパッケージデータ」として、アクセルECU用の更新ソフトウェア、ハンドルECU用の更新ソフトウェア、ブレーキECU用の更新ソフトウェアの3つの更新ソフトウェアが含まれる例がある。また、「ウィンドウ制御用のパッケージデータ」として、ウィンドウ制御ECUの更新ソフトウェアが含まれる例がある。そして、1つのキャンペーンには、複数のパッケージデータが含まれ得る。より具体的には、これらのパッケージデータを配信日時でまとめたものをキャンペーンデータとして生成し、当該キャンペーンデータを車両に配信している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、あるキャンペーンデータの配信後、そのキャンペーンデータに含まれるパッケージデータの一部に不具合が見つかった場合を想定する。このような場合、当該キャンペーンデータ自体の配信を停止していた。そのため、不具合はないが、重要度の高い更新ソフトウェアを含むパッケージデータがこのようなキャンペーンデータに含まれていた場合、当該キャンペーンデータ自体の配信停止によって、当該重要度の高い更新ソフトウェア(を含むパッケージデータ)の適用が遅れる虞があった。
【0006】
本開示は、上記課題を鑑みてなされたものであり、重要度の高い更新ソフトウェアを含むパッケージデータの適用を迅速に行うことが可能なセンタを提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本開示技術の一態様は、車両が備えるOTAマスタとネットワークを介して通信可能なセンタである。センタは、ターゲットECUの更新ソフトウェアが1以上含まれているパッケージデータが1以上含まれているキャンペーンデータをOTAマスタに配信する配信部と、所定のキャンペーンデータに含まれている所定のパッケージデータの内容について、当該キャンペーンデータの配信後に更新に伴う不具合が発見されたか否かを判定する不具合判定部と、不具合が発見された場合、キャンペーンデータの適用に際して、当該不具合が発見されたパッケージデータの適用を行わないようにするため適用回避指示を当該キャンペーンデータの適用対象となる車両に所定のネットワークを介して送信する適用回避指示送信部と、を備える。
【発明の効果】
【0008】
本開示のセンタによれば、所定のキャンペーンデータに、不具合のあるパッケージデータと、不具合はないが重要度が高い更新ソフトウェアを含むパッケージとが含まれている場合であっても、不具合のあるパッケージの適用だけ回避しつつ、不具合がないパッケージについては適用できるため、重要度の高い更新ソフトウェアの適用を迅速に行うことができる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係るシステムの全体構成を示すブロック図
【
図3】OTAマスタ31の概略構成を示すブロック図
【
図6】センタ1の記憶部16に記憶されるデータの一例を示すメモリマップ
【
図7】キャンペーン定義データ103のデータ構成の一例
【
図11】適用回避対象データ108のデータ構成の一例
【
図12】OTAマスタ31の記憶部47に記憶されるデータの一例を示すメモリマップ
【
図13】第1の実施例に係る不具合登録処理の詳細を示すフローチャート
【
図14】第1の実施例に係る更新制御処理の詳細を示すフローチャート
【
図15】第1の実施例におけるOTAマスタ制御処理の詳細を示すフローチャート
【
図16】第2の実施例に係るキャンペーン定義データ103のデータ構成の一例
【
図17】第2の実施例に係る不具合登録処理の詳細を示すフローチャート
【
図18】第2の実施例に係る更新制御処理の詳細を示すフローチャート
【
図19】第2の実施例に係るOTAマスタ制御処理の詳細を示すフローチャート
【発明を実施するための形態】
【0010】
以下、本開示技術の実施形態について、図面を参照しながら詳細に説明する。
【0011】
(第1の実施例)
まず、第1の実施例について説明する。第1の実施例では、次のような処理が行われる。あるキャンペーンデータの配信開始後、当該キャンペーンデータに含まれる所定のパッケージデータ(以下、単にパッケージと呼ぶ)について不具合が見つかると、例えばOEMメーカからOTAセンタ(以下、単にセンタと呼ぶ)にその旨の連絡が行われる。センタでは、この不具合の情報が記憶される。そして、OTAマスタからセンタに対して、ソフトウェア更新の有無の問い合わせ(以下、更新問い合わせと呼ぶ)があった場合、更新があれば、1以上のパッケージが含まれるキャンペーンデータがセンタから配信される。この際に、当該不具合のあるパッケージ(以下、不具合パッケージと呼ぶ)の情報について、センタからOTAマスタに伝えられる。OTAマスタは、当該情報に基づいて、不具合パッケージの適用を回避するようにして、所定のキャンペーンデータに含まれる各パッケージの適用を実行する。
【0012】
[第1の実施例のシステム全体の構成について]
次に、第1の実施例における更新制御システムの構成について説明する。
図1は、第1の実施例における更新制御システムの全体構成を示すブロック図である。当該更新制御システムは、センタ1、車両3を備えている。
【0013】
センタ1は、車両3に備えられる電子制御装置(以下、ECU)のソフトウェアの更新を管理するためのサーバである(より正確には、センタ1はこのようなサーバを含むセンタシステムであるが、以下では説明の便宜上、サーバとして説明する)。センタ1は、車両3(OTAマスタ31)と通信可能である。
【0014】
車両3は、車載ネットワークシステムを搭載している。当該車載ネットワークシステムは、センタ1と通信可能である。車載ネットワークシステムは、OTAマスタ(ソフトウェア更新装置)31と、通信モジュール32と、複数のECU33a~33dとを少なくとも備える。
【0015】
OTAマスタ31は、バス35を介して通信モジュール32、ECU33a~33dと接続されている。OTAマスタ31は、通信モジュール32を介してセンタ1と無線での通信が可能である。OTAマスタ31は、センタ1との間で所定のデータの送受信を行いながら、各ECU33のソフトウェア更新処理の制御を実行する。すなわち、OTAマスタ31は、ソフトウェア更新機能を有する。通信モジュール32は、所定のネットワーク(電話網やインターネット網等)と接続する通信機器である。
【0016】
ECU33a~33dは、車両3の各部の動作を制御する。なお、
図1におけるECU33の数は一例であることはいうまでもない。
【0017】
[センタ1の構成について]
図2は、上記センタ1の概略構成を示すブロック図である。
図2に示すように、センタ1は、プロセッサ11と、RAM12と、記憶装置13と、通信装置14とを備える。記憶装置13は、ハードディスクやSSD等の読み書き可能な記憶媒体を備え、本実施形態に係る処理に必要な各種のプログラムやデータを記憶する。センタ1において、プロセッサ11は、記憶装置13から読み出したプログラムを、RAM12を作業領域として用いて実行することにより、所定の制御処理を実行する。通信装置14は、ネットワークを介して、車両3と通信を行う機器である。
【0018】
[OTAマスタ31の構成について]
図3は、上記OTAマスタ31の概略構成を示すブロック図である。
図3に示すように、OTAマスタ31は、プロセッサ41と、RAM42と、ROM43と、記憶装置44とを備えるマイクロコンピュータ45と、通信装置46とを備える。OTAマスタ31において、マイクロコンピュータ45のプロセッサ41は、ROM43から読み出したプログラムを、RAM42を作業領域として用いて実行することにより、所定の制御処理を実行する。通信装置46は、
図1に示したバス35を介して、通信モジュール32、ECU33a~33dと通信を行う機器である。
【0019】
[センタ1の機能ブロック図]
図4は、上記センタ1の機能ブロック図である。センタ1は、記憶部16と通信部17と制御部18とを備える。通信部17及び制御部18は、
図2に示したプロセッサ11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することにより実現され、記憶部16は、
図2に示した記憶装置13により実現される。
【0020】
記憶部16は、本実施例に係る処理で使用するプログラムやデータを記憶する。
【0021】
制御部18は、通信部17を用いて、OTAマスタ31との間で所定のデータの送受信を行い、ソフトウェア更新処理を実行する。
【0022】
[OTAマスタ31の機能ブロック図]
図5は、
図3に示したOTAマスタ31の機能ブロック図である。
【0023】
OTAマスタ31は、記憶部47と、通信部48と、制御部49とを備える。記憶部47は、
図3に示した記憶装置44によって実現され、通信部48と、制御部49とは、
図3に示したプロセッサ41がRAM42を用いてROM43に記憶されるプログラムを実行することにより実現される。
【0024】
記憶部47は、ソフトウェア更新処理を実行するための各種プログラムや各種データを記憶する。
【0025】
制御部49は、通信部48を介してセンタ1と通信を行い、ソフトウェア更新処理に関する各種の制御を実行する。具体的には、制御部49は、更新の有無の問い合わせを行い、ある場合はキャンペーンに係るデータをダウンロードする。また、不具合パッケージの有無の問い合わせもセンタ1に対して行い、その回答内容に応じて、不具合パッケージのみ適用を回避しながら更新処理を実行する。
【0026】
以下、第1の実施例に係る処理の詳細について説明する。
【0027】
[センタ1で用いられるデータについて]
まず、センタ1の処理で用いられるデータについて説明する。
図6は、センタ1の記憶部16に記憶されるデータの一例を示すメモリマップである。記憶部16には、更新制御プログラム101、車両データベース102、キャンペーン定義データ103、キャンペーンデータ104、不具合データ107、適用回避対象データ108等が記憶される。また、図示は省略するが、その他、OTAサービスを実現するための各種プログラムやデータも記憶部16に記憶される。
【0028】
更新制御プログラム101は、本実施形態に係るソフトウェア更新の処理を制御するためのプログラムである。
【0029】
車両データベース102は、センタ1で管理する車両3のデータベースであり、具体的にはOTAサービスの提供対象となる車両3に関する情報を登録したデータベースである。図示は省略するが、車両データベース102には、個々の車両3を識別するための車両識別番号(VIN)や、更新履歴を示すデータ等が含まれている。
【0030】
キャンペーン定義データ103は、上述したキャンペーンの内容に関して定義したデータである。
図7は、キャンペーン定義データ103のデータ構成の一例である。キャンペーン定義データ103は、キャンペーンID121、キャンペーン内容122、適用対象データ123の項目を少なくとも含むテーブル形式のデータである。キャンペーンID121は、上述したようなキャンペーンを一意に識別するためのIDである。キャンペーン内容122は、所定のキャンペーン(に対応するキャンペーンデータ104)に含まれるパッケージに関するデータである。例えば、キャンペーン内容122は、
図8に示すようなデータ構成を有する。
図8では、キャンペーン内容122は、パッケージID131およびパッケージ内容132という項目を含んでいる。パッケージID131は、各パッケージを識別するためのIDである。パッケージ内容132は、そのパッケージに含まれている更新ソフトウェアを特定するための更新ソフトウェアID133が1以上定義されているデータである。
【0031】
図7に戻り、適用対象データ123は、所定のキャンペーンが適用される対象について定義したデータである。例えば、適用対象データ123には、そのキャンペーンを適用すべき車種等の情報が定義される。
【0032】
図6に戻り、次に、キャンペーンデータ104は、上記キャンペーン定義データ103の定義内容に基づいて生成されるデータであり、キャンペーンとしてOTAマスタ31に配信されるデータである。
図6では、説明の便宜上、キャンペーンデータ104を1つだけ例示しているが、キャンペーンの数に応じて複数のキャンペーンデータ104が記憶部16に記憶され得る。1つのキャンペーンデータ104には、上記キャンペーン定義データ103の定義内容に従って、キャンペーンID105と、1以上のパッケージデータ106が含まれる。キャンペーンID105は、上記キャンペーン定義データ103のキャンペーンID121に対応するIDである。パッケージデータ106は、そのキャンペーンに含まれる上記パッケージの具体的なデータである。
図9に、当該パッケージデータのデータ構成の一例を示す。各パッケージデータ106には、パッケージID141と、1以上の上記更新ソフトウェア142が含まれる。パッケージID141は、上記キャンペーン内容122のパッケージID131に対応するIDである。また、図示は省略するが、各更新ソフトウェア142には、上記キャンペーン内容122の更新ソフトウェアID133に対応する更新ソフトウェアIDと、ターゲットECUの更新ソフトウェアの本体となるデータが含まれている。
【0033】
図6に戻り、次に、不具合データ107は、上記不具合パッケージに関するデータである。例えば、不具合データ107は、OEMメーカから不具合パッケージの連絡を受けたことに応じてその内容が追加される。
図10は、当該不具合データ107のデータ構成の一例である。不具合データ107には、不具合パッケージを特定するための情報である不具合パッケージID181が記憶されている。
【0034】
適用回避対象データ108は、上記不具合データ107に基づいて生成され得るデータであり、キャンペーン単位で、更新の適用を回避すべき対象である不具合パッケージを特定するためのデータである。
図11は、当該適用回避対象データ108のデータ構成の一例を示す図である。適用回避対象データ108は、キャンペーンID151、および対象パッケージ152を少なくとも含むテーブル形式のデータである。キャンペーンID151はキャンペーンデータ104を特定するためのIDである。対象パッケージ152は、所定のキャンペーンデータ104に関して、不具合パッケージを特定するための情報(上記不具合パッケージID181)を示すデータである。また、適用を回避すべき不具合パッケージが複数ある場合は、これらを個々に特定するため、複数のパッケージそれぞれの情報について定義される。
【0035】
一部回避指示データ109は、所定の不具合パッケージの適用回避をOTAマスタ31に指示するためのデータである。当該一部回避指示データ109には、不具合パッケージを特定する情報(上記不具合パッケージID181)が含まれている。また、一部回避指示データ109は、個々のOTAマスタ31に送信されるものであるため、記憶部16には、個々のOTAマスタ31に応じた複数の一部回避指示データ109が(一時的に)記憶され得る。
【0036】
[OTAマスタ31で用いられるデータについて]
次に、OTAマスタ31で用いられるデータについて説明する。
図12は、OTAマスタ31の記憶部47に記憶されるデータの一例を示すメモリマップである。OTAマスタ31の記憶部47には、更新制御プログラム151、ダウンロードデータ162が少なくとも記憶されている。その他、図示は省略するが、OTAサービスを実現するための各種プログラムやデータも記憶部47に記憶される。
【0037】
更新制御プログラム161は、本実施例に係る処理をOTAマスタ31が実行するためのプログラムである。
【0038】
ダウンロードデータ162は、センタ1から配信された所定のキャンペーンデータ104を(一時的に)記憶したデータである。OTAマスタ31は、当該ダウンロードデータ162に基づいて更新処理を実行する。
【0039】
その他、図示は省略するが、記憶部47には、上記センタ1から送信された一部回避指示データ109等も記憶される。
【0040】
[第1実施例の処理フロー]
次に、第1の実施例の処理の流れについて説明する。まず、センタ1で実行される処理について説明し、その後、OTAマスタ31で実行される処理について説明する。
【0041】
図13は、センタ1で実行される不具合登録処理の詳細を示すフローチャートである。当該処理は、センタ1において、例えば所定のタイミングで繰り返し実行され得る。また、本実施例では、所定のパッケージに不具合が見つかった場合、そのパッケージの開発元であるOEMのサーバから、当該不具合に関する情報がサーバ間通信でセンタ1に送信されてくる場合を例示する。
図13において、まず、ステップS1で、制御部18は、所定のパッケージに関して新たな不具合が発見されたか否かを判定する。本実施例では、上記のようにOEMのサーバから不具合に関する情報を受信したか否かで判定する。受信していた場合、制御部18は、新たな不具合が見つかったと判定する。当該判定の結果、新たな不具合が見つかった場合は(ステップS1でYES)、ステップS2で、制御部18は、上記受信した情報に基づき、不具合データ107の内容を更新する。具体的には、制御部18は、新たな不具合パッケージを特定する不具合パッケージID181を不具合データ107に登録する。更に、制御部18は、キャンペーン定義データ103を参照して、新たに見つかった不具合パッケージを含むキャンペーンID121を抽出する。そして、当該抽出したキャンペーンID121と不具合データ107の内容に基づき、適用回避対象データ108の内容を更新する。すなわち、制御部18は、抽出したキャンペーンID121を適用回避対象データ108のキャンペーンID151とし、新たに見つかった不具合パッケージID181を対象パッケージ152としたデータを適用回避対象データ108に追加する。その後、制御部18は、当該不具合登録処理を終了する。
【0042】
一方、上記ステップS1の判定の結果、新たな不具合が見つかっていない場合は(ステップS1でNO)、制御部18は、上記ステップS2の処理をスキップして、当該不具合登録処理を終了する。
【0043】
なお、上記不具合登録処理に関して、本実施例では所定のOEMサーバからセンタ1に不具合情報が送信される例を挙げた。これに限らず、他の実施例では、オペレータ等の手操作で上記不具合データ107およひ適用回避対象データ108の内容を更新するような処理としてもよい。
【0044】
次に、
図14は、センタ1で実行される更新制御処理の詳細を示すフローチャートである。
図14において、まず、ステップS11で、制御部18は、所定のOTAマスタ31から更新問い合わせを受信したか否かを判定する。受信していない場合は(ステップS11でNO)、制御部18は、ステップS11の処理を繰り返すことで、更新問い合わせの待ち受けを継続する。一方、更新問い合わせを受信した場合は(ステップS11でYES)、ステップS12で、制御部18は、更新問い合わせの送信元の車両3(以下、更新問い合わせ元車両)に関して、更新があるか否かを判定する、具体的には、制御部18は、配信可能なキャンペーンデータ104があるか否かを、車両データベース102およびキャンペーン定義データ103に基づいて判定する。例えば、制御部18は、当該更新問い合わせ元車両の更新履歴に基づいて、更新の有無を判定する。当該判定の結果、更新が無い、すなわち、配信可能なキャンペーンデータ104が無い場合は(ステップS12でNO)、ステップS14で、制御部18は、更新は無い旨の通知を更新問い合わせ元車両のOTAマスタ31に送信する。その後、制御部18は、上記ステップS11に戻り、処理を繰り返す。
【0045】
一方、ステップS12の判定の結果、配信可能なキャンペーンデータ104がある場合は(ステップS12でYES)、ステップS13で、制御部18は、当該キャンペーンデータ104を更新問い合わせ元車両のOTAマスタ31に配信する。
【0046】
次に、ステップS15で、上記キャンペーンデータ104を配信したOTAマスタ31から、適用回避対象の有無の問い合わせ(以下、適用回避問い合わせ)を受信したか否かを判定する。当該適用回避問い合わせは、配信されたキャンペーンデータ104について、適用を回避すべき不具合パッケージがあるか否かを問い合わせる旨の内容である。当該適用回避問い合わせには、問い合わせ対象となるキャンペーンID151等の情報が含まれていてもよい。当該判定の結果、適用回避問い合わせを受信していない場合は(ステップS15でNO)、制御部18は、当該適用回避問い合わせの受信の待ち受けを継続する。一方、適用回避問い合わせを受信した場合は(ステップS15でYES)、ステップS16で、制御部18は、適用回避対象データ108を参照して、当該適用回避問い合わせに係るキャンペーンID151に関して、不具合パッケージがあるか否かを判定する。当該判定の結果、不具合パッケージが無い場合は(ステップS16でNO)、ステップS18で、制御部18は、不具合パッケージは無い旨の通知を、適用回避問い合わせの送信元の車両3(以下、回避問い合わせ元車両)のOTAマスタ31に送信する。その後、制御部18は、上記ステップS11に戻り、処理を繰り返す。
【0047】
一方、ステップS16の判定の結果、不具合パッケージがある場合は(ステップS16でYES)、ステップS17で、制御部18は、適用回避対象データ108に基づき、当該不具合パッケージを示す情報が含まれる一部回避指示データ109を生成する。そして、制御部18は、当該一部回避指示データ109を回避問い合わせ元車両のOTAマスタ31に送信する。その後、制御部18は、上記ステップS11に戻り、処理を繰り返す。
【0048】
以上で、センタ1で実行される処理の説明を終了する。
【0049】
次に、OTAマスタ31で実行される処理について説明する。
図15は、OTAマスタ31で実行されるOTAマスタ制御処理の詳細を示すフローチャートである。当該処理は、例えば2週間に1回の頻度で、イグニッションオンのタイミングで実行される処理である。
図15において、まず、ステップS31で、OTAマスタ31の制御部49は、更新問い合わせを生成してセンタ1に送信する。
【0050】
次に、ステップS32で、制御部49は、センタ1から送信されてきた、当該更新問い合わせに対する回答データを受信し、更新があるか否か、すなわち、配信されるキャンペーンデータ104があるか否かを判定する。当該判定の結果、更新が無い場合は(ステップS32でNO)、制御部49は、当該OTAマスタ制御処理を終了する。
【0051】
一方、更新がある場合は(ステップS32でYES)、ステップS33で、制御部49は、キャンペーンデータ104をセンタ1から受信(ダウンロード)する。当該キャンペーンデータ104の受信が終われば、次に、ステップS34で、制御部49は、上記適用回避問い合わせを生成する。そして、制御部49は、当該適用回避問い合わせをセンタ1に送信する。
【0052】
次に、ステップS35で、制御部49は、センタ1から一部回避指示データ109を受信したか否かを判定する。当該判定の結果、一部回避指示データ109を受信していない場合は(この場合は、不具合パッケージは無い旨をセンタ1から受信していることになる)、ステップS37で、制御部49は、上記ステップS33で受信したキャンペーンデータ104に含まれる全てのパッケージを適用する更新処理を実行する。そして、当該更新処理が完了すれば、制御部49は、OTAマスタ制御処理を終了する。
【0053】
一方、ステップS35の判定の結果、一部回避指示データ109を受信していた場合は(ステップS35でYES)、ステップS36で、制御部49は、受信した一部回避指示データ109を記憶部47に記憶する。次に、制御部49は、一部回避指示データ109において指定されている不具合パッケージについては適用しないようにして、その他のパッケージを適用するための更新処理を実行する。例えば、制御部49は、一部回避指示データ109に含まれている不具合パッケージID181に基づいて、ダウンロードデータ162の中から適用回避すべきパッケージを識別し、当該パッケージを適用する処理をスキップする制御を行ってもよい。そして、当該更新処理が完了すれば、制御部49は、OTAマスタ制御処理を終了する。
【0054】
以上で、OTAマスタ31で実行される処理の説明を終了する。
【0055】
このように、第1の実施例では、不具合パッケージの情報をセンタ1に記憶しておき、所定のキャンペーンに係る更新を適用する際に、不具合パッケージの情報をOTAマスタ31に送信している。そして、OTAマスタ31では、この情報に基づいて不具合パッケージについては適用しないようにして更新処理を実行している。これにより、所定のキャンペーンデータ104に、不具合はないが重要度の高い更新ソフトウェアを含むパッケージと、不具合パッケージとの双方が含まれているような場合であっても、キャンペーンデータ104全体の適用を中止することなく、当該重要度の高い更新ソフトウェアを含むパッケージを適用することが可能となる。
【0056】
(第2の実施例)
次に、第2の実施例について説明する。上記第1の実施例では、単純に、不具合パッケージだけ適用しないような処理が行われていた。これに対して、第2の実施例では、あるキャンペーンデータ104に含まれているパッケージ同士の関連度の高さを考慮して、適用回避の判定を行う。例えば、あるキャンペーンデータ104について、パッケージAとパッケージBとパッケージCとが含まれているとする。そして、このうちパッケージBに関して不具合が見つかった場合を想定する。更に、このような場合において、パッケージAとパッケージBとの関連度が高い場合を想定する。関連度が高いとは、例えば、パッケージAに係る機能を実現するために、パッケージBに含まれるソフトウェアの一部の機能を利用したり、パッケージBに係るソフトウェアの処理結果を利用したりする場合等、パッケージ同士の依存関係がある程度高いといえるような場合である。以下、関連度の高いパッケージ同士の関係を「密結合」と呼び、関連度が低い場合の関係を「疎結合」と呼ぶ。また、本実施例では、原則的には各パッケージ同士は「疎結合」であるが、例外的に「密結合」となるパッケージが存在する、というような場合を想定する。
【0057】
上記のように、パッケージAとパッケージBとが「密結合」の場合、第1の実施例では、不具合パッケージであるパッケージBの適用だけ回避することになる。この場合、パッケージAのほうは更新されることになるが、「密結合」であるパッケージBの更新はなされていない状態となる。そのため、パッケージBの機能を利用あるいはこの機能に依存する(更新後の)パッケージAで想定しているパフォーマンスが発揮されない可能性がある。また、パッケージBの不具合が修正された結果、パッケージAのほうにも更に修正が必要となるケースもあり得る。この場合、再度パッケージAの更新が必要となり、更新の2度手間にもなり得る。つまり、「密結合」にあるパッケージの一方のみが更新適用されたとしても、それ単体では十分に機能しなかったり、再度の更新が必要になる等で、更新処理の効率性の観点から、改善の余地があるといえる。そこで、第2の実施例では、あるキャンペーンデータ104に含まれる不具合パッケージとその他のパッケージとの関連度の高さを判定する。そして、不具合パッケージが他のパッケージに対して「疎結合」の場合だけ、当該不具合パッケージの適用を回避するという処理を行う。例えば、上記の例でパッケージBが不具合パッケージである場合、パッケージAおよびCのいずれとも「疎結合」であれば、パッケージBのみ適用を回避する処理が行われる。一方、パッケージBがパッケージAと「密結合」である場合は、キャンペーン全体の適用を行わない(適用を中止する)、という処理を行う。
【0058】
以下、第2の実施例の詳細について説明する。まず、第2の実施例におけるハードウェア構成(センタ1およびOTAマスタ31)については、基本的には、上記第1の実施例と同様のため、詳細な説明は割愛する。
【0059】
次に、第2の実施例において使用するデータについて説明する。基本的には、第2の実施例でも第1の実施例と同様のデータが用いられるが、センタ1の記憶部16に記憶されるキャンペーン定義データ103のデータ構成に一部相違がある。具体的には、
図16に示すように、関連度データ124がキャンペーン定義データ103に含まれる構成となる。
【0060】
関連度データ124は、所定のキャンペーンデータ104に含まれるパッケージのうち、「密結合」であるパッケージを定義したデータである。具体的には、「密結合」の関係にあるパッケージのパッケージID141が定義される。また、「密結合」のパッケージの組み合わせが複数ある場合は、それぞれの組み合わせが識別可能なように定義される。
【0061】
次に、第2の実施例に係る処理の流れについて説明する。
図17は、第2の実施例に係る不具合登録処理の詳細を示すフローチャートである。
図17において、まず、ステップS51で、制御部18は、所定のパッケージに関して新たな不具合が発見されたか否かを判定する。この処理は、上記ステップS1と同様の処理である。当該判定の結果、新たな不具合が見つかっていない場合は(ステップS51でNO)、制御部18は、不具合登録処理を終了する。一方、新たな不具合が見つかった場合は(ステップS51でYES)、ステップS52で、制御部18は、新たに見つかった不具合パッケージの情報を不具合データ107に追加することで、不具合データ107を更新する。
【0062】
次に、ステップS53で、制御部18は、キャンペーン定義データ103を参照し、不具合パッケージを含むキャンペーンID121について抽出する。
【0063】
次に、ステップS54で、制御部18は、抽出したキャンペーンID121に対応するキャンペーンデータ104について、不具合パッケージが他のパッケージと「疎結合」であるか否かを、上記関連度データ124に基づいて判定する。当該判定の結果、不具合パッケージが「疎結合」である場合は(ステップS54でYES)、制御部18は、当該不具合パッケージを含むキャンペーンデータ104に関して、この不具合パッケージのみを適用回避対象に指定した内容のデータを適用回避対象データ108に追加する。
【0064】
一方、不具合パッケージが「疎結合」ではない、すなわち、いずれかのパッケージと「密結合」である場合は(ステップS54でNO)、ステップS56で、制御部18は、不具合パッケージを適用回避対象として指定すると共に、当該不具合パッケージが「密結合」であることを示す内容のデータを、上記適用回避対象データ108に追加する。当該データは、例えば「密結合」か「疎結合」かを2値で示すフラグ等であってもよい。以上で、第2の実施例に係る不具合登録処理は終了する。
【0065】
なお、上記ステップS55およびS56の処理については、上記のような処理に限らず、「疎結合」の場合は、指定された不具合パッケージの適用を回避する旨の指示内容を適用回避対象データ108とし、「密結合」の場合は、キャンペーン全体の適用の中止する指示内容を適用回避対象データ108として記憶するような処理としてもよい。そして、この場合、OTAマスタ31では、適用回避対象データ108に含まれる指示に基づいて更新処理が制御されてもよい。
【0066】
また、上記第1の実施例と同様に、第2の実施例においても、オペレータなどの手操作で上記不具合データ107およひ適用回避対象データ108の内容を更新するような処理としてもよい。
【0067】
次に、第2の実施例においてセンタ1で実行される更新制御処理について説明する。
図18は、第2の実施例に係る更新制御処理の詳細を示すフローチャートである。当該フローチャートにおいて、ステップS11~S18に係る処理は
図14を用いて上述した処理を同様であるため、ここでは説明は割愛し、主にこれら以外の処理(ステップS61~S62)について説明する。
【0068】
図18のステップS16の判定の結果、不具合パッケージがある場合は(ステップS16でYES)、ステップS61で、制御部18は、適用回避対象データ108を参照して、当該不具合パッケージが他のパッケージに対して「疎結合」であるか否かを判定する。具体的には、当該不具合パッケージが「密結合」であることを示す内容が適用回避対象データ108で示されている場合、制御部18は、「疎結合」ではないと判定する。「密結合」であることを示す内容ではない場合は、制御部18は、「疎結合」であると判定する。当該判定の結果、「疎結合」の場合は(ステップS61でYES)、制御部18は、上記ステップS17の処理を実行する(一部回避指示データ109の送信)。一方、「疎結合」ではない場合は(ステップS61でNO)、ステップS62で、制御部18は、キャンペーン全体の適用を中止するための適用中止指示をOTAマスタ31に送信する。
【0069】
次に、第2の実施例におけるOTAマスタ制御処理について説明する。
図19は、第2の実施例に係るOTAマスタ制御処理の詳細を示すフローチャートである。
図19において、ステップS31~S34、S36~S37の処理については、
図15を用いて上述した処理と同様であるため、ここでは説明を割愛し、主にその他の処理(ステップS71~S73)について説明する。
【0070】
図19のステップS34で適用回避問い合わせをセンタ1に送信した後、ステップS71で、制御部49は、センタ1から受信したデータに基づいて、不具合パッケージがあるか否かを判定する。具体的には、制御部49は、センタ1から不具合パッケージは無い旨を受信したか否かを判定し、この旨を受信していれば、不具合パッケージは無いと判定する。一方、不具合パッケージは無い旨を受信していない場合は、制御部49は、不具合パッケージがあると判定する。
【0071】
上記判定の結果、不具合パッケージが無い場合は(ステップS71でNO)、上記ステップS37の処理に進み、制御部49は、キャンペーンデータ104に含まれる全てのパッケージを適用する。一方、不具合パッケージがある場合は(ステップS71でYES)、ステップS72で、制御部49は、センタ1から受信した内容が一部回避指示か否かを判定する。当該判定の結果、一部回避指示である場合は(ステップS72でYES)、上記ステップS36の処理に進み、制御部49は、回避指示されている不具合パッケージだけ適用しないようにして更新処理を実行する。一方、一部回避指示では無い場合は(ステップS72でNO)、センタ1から、上記適用中止指示を受信していることになるため、ステップS73で、制御部49は、キャンペーン全体の適用を中止すための処理を実行する。例えば、制御部49は、更新処理を中止し、上記ダウンロードデータ162を破棄する。
【0072】
以上で、第2の実施例に係る処理の詳細説明を終了する。
【0073】
このように、第2の実施例では、センタ1において、所定のキャンペーンに含まれるパッケージ同士の関連性を考慮して、適用回避対象データ108が生成される。そして、不具合パッケージがある場合、当該不具合パッケージが他のパッケージとは「疎結合」である場合に、その不具合パッケージの適用だけ回避するための一部回避指示データ109をOTAマスタ31に送信している。これにより、OTAマスタ31では、ある不具合パッケージが「疎結合」である場合に、その不具合パッケージのみを適用回避し、その他のパッケージについては更新を適用するように更新処理を実行できる。また、不具合パッケージが「疎結合」ではない場合は、キャンペーン全体の適用を中止する制御を行っている。これにより、効率的な更新処理を実行することができる。
【0074】
[変形例]
なお、上記第2の実施例では、不具合パッケージが他のパッケージと「密結合」の場合は、キャンペーン全体の適用を中止していた。他の実施例では、このような場合、不具合パッケージおよびこれと「密結合」の関係であるパッケージについてのみ適用を回避するような制御を行ってもよい。例えば、あるキャンペーンにパッケージA、B、Cが含まれており、パッケージAとBが「密結合」であるとする。そして、パッケージBに不具合が見つかった場合を想定する。この場合に、キャンペーン全体の適用を中止するのではなく、パッケージAおよびBの適用だけ回避し、パッケージCについては更新を適用するような制御を行ってもよい。
【0075】
また、上記各実施例では、適用回避問い合わせを、キャンペーンデータ104を受信した後に行う例を挙げた。これに限らず、他の実施例では、キャンペーンデータ104の受信を開始する前に適用回避問い合わせを行うようにしてもよい。更にこの場合、適用回避対象のパッケージに係るパッケージデータ106についてはセンタ1から送信しないような制御を行ってもよい。これにより、通信量を削減し、効率的な通信を行うことも可能となる。
【0076】
また、上記適用回避指示データに関しては、OTAサービスで用いるネットワークとは別のネットワークで通知するような構成としてもよい。例えばOTAサービスをインターネット網で利用し、適用回避指示データについてはキャリア網のSMSやV2X等で通知するような構成としてもよい。そして、OTAマスタ31では、キャンペーンを適用する際にこのような適用回避指示データを受信していれば、当該適用回避指示データに基づいて不具合パッケージの適用を回避するように更新処理を行ってもよい。
【0077】
以上、本開示技術の一実施形態を説明したが、本開示は、センタだけでなく、プロセッサと、メモリとを少なくとも備え、車載ネットワークと通信可能なOTAセンタのコンピュータが実行する更新制御方法、その方法の制御プログラム、その制御プログラムを記憶したコンピューター読み取り可能な非一時的な記録媒体、OTAマスタ等として捉えることが可能である。
【産業上の利用可能性】
【0078】
本開示技術は、車両が備えるOTAマスタとネットワークを介して通信可能なセンタに利用できる。
【符号の説明】
【0079】
1 センタ
3 車両
11 プロセッサ
12 RAM
13 記憶装置
14 通信装置
31 OTAマスタ
32 通信モジュール
33 電子制御装置(ECU)
35 バス
41 プロセッサ
42 RAM
43 ROM
44 記憶装置
46 通信装置