(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】センタ、配信制御方法、及び配信制御プログラム
(51)【国際特許分類】
H04L 67/10 20220101AFI20240820BHJP
G06F 8/65 20180101ALI20240820BHJP
B60R 16/02 20060101ALI20240820BHJP
【FI】
H04L67/10
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2021063112
(22)【出願日】2021-04-01
【審査請求日】2023-03-23
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】長光 翔一
【審査官】速水 雄太
(56)【参考文献】
【文献】特開2020-027620(JP,A)
【文献】米国特許出願公開第2015/0088370(US,A1)
【文献】特開2020-062909(JP,A)
【文献】特開2008-181228(JP,A)
【文献】米国特許出願公開第2015/0007155(US,A1)
【文献】特開2022-109181(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00-67/75
G06F 8/65
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両と通信可能なセンタであって、
前記車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶する記憶部と、
前記車両から前記電子制御ユニットのソフトウェアの現在のバージョンを受信する受信部と、
前記更新履歴に基づいて、前記受信部が受信した前記現在のバージョンが前記更新履歴に記録された最終更新時のバージョンと一致するか否かを判定する判定部と、
前記受信部が受信した前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記車両にエラー通知を送信する送信部と
、
前記受信部が受信した前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記センタとは異なる第2のセンタ又は端末に、前記電子制御ユニットのソフトウェアのバージョン変更の有無を問い合わせる問い合わせ部と、を備える、センタ。
【請求項2】
前記受信部が受信した前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記車両に対する更新データ配信を無効化する制御部をさらに備える、請求項1に記載のセンタ。
【請求項3】
車両と通信可能なセンタであって、
前記車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶する記憶部と、
前記車両から前記電子制御ユニットのソフトウェアの現在のバージョンを受信する受信部と、
前記更新履歴に基づいて、前記受信部が受信した前記現在のバージョンが前記更新履歴に記録された最終更新時のバージョンと一致するか否かを判定する判定部と、
前記受信部が受信した前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記車両にエラー通知を送信する送信部と、
前記受信部が受信した前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記センタとは異なる第2のセンタ又は端末に、前記電子制御ユニットのソフトウェアのバージョン変更の有無を問い合わせる問い合わせ部と、 前記受信部が受信した前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記車両に対する更新データ配信を無効化する制御部と、を備え、
前記制御部は、前記受信部が受信した前記現在のバージョンが不具合を含むものである場合は、前記車両に対する更新データ配信を無効化せずに前記不具合を解消させるための更新データを配信する
、センタ。
【請求項4】
前記更新データ配信の無効化を解除する指示を受け付ける受付部をさらに備え、
前記制御部は、前記受付部が前記指示を受け付けた場合、前記車両に対する前記更新データ配信を有効化する、請求
項1乃至3のいずれか1項に記載のセンタ。
【請求項5】
プロセッサと、メモリと、記憶装置とを備え、車両と通信可能なセンタのコンピューターが実行する、ソフトウェアの更新データの配信制御方法であって、
前記車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶するステップと、
前記車両から前記電子制御ユニットのソフトウェアの現在のバージョンを受信するステップと、
前記更新履歴に基づいて、前記現在のバージョンが前記更新履歴に記録された最終更新時のバージョンと一致するか否かを判定するステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記車両にエラー通知を送信するステップと
、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記センタとは異なる第2のセンタ又は端末に、前記電子制御ユニットのソフトウェアのバージョン変更の有無を問い合わせるステップと、を含む、配信制御方法。
【請求項6】
プロセッサと、メモリと、記憶装置とを備え、車両と通信可能なセンタのコンピューターが実行する、ソフトウェアの更新データの配信制御方法であって、
前記車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶するステップと、
前記車両から前記電子制御ユニットのソフトウェアの現在のバージョンを受信するステップと、
前記更新履歴に基づいて、前記現在のバージョンが前記更新履歴に記録された最終更新時のバージョンと一致するか否かを判定するステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記車両にエラー通知を送信するステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記センタとは異なる第2のセンタ又は端末に、前記電子制御ユニットのソフトウェアのバージョン変更の有無を問い合わせるステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記車両に対する更新データ配信を無効化するステップと、を含み、
前記無効化するステップは、前記現在のバージョンが不具合を含むものである場合は、前記車両に対する更新データ配信を無効化せずに前記不具合を解消させるための更新データを配信する、配信制御方法。
【請求項7】
プロセッサと、メモリと、記憶装置とを備え、車両と通信可能なセンタのコンピューターが実行する、ソフトウェアの更新データの配信制御プログラムであって、
前記車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶するステップと、
前記車両から前記電子制御ユニットのソフトウェアの現在のバージョンを受信するステ
ップと、
前記更新履歴に基づいて、前記現在のバージョンが前記更新履歴に記録された最終更新時のバージョンと一致するか否かを判定するステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記車両にエラー通知を送信するステップと
、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記センタとは異なる第2のセンタ又は端末に、前記電子制御ユニットのソフトウェアのバージョン変更の有無を問い合わせるステップと、を含む、配信制御プログラム。
【請求項8】
プロセッサと、メモリと、記憶装置とを備え、車両と通信可能なセンタのコンピューターが実行する、ソフトウェアの更新データの配信制御プログラムであって、
前記車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶するステップと、
前記車両から前記電子制御ユニットのソフトウェアの現在のバージョンを受信するステップと、
前記更新履歴に基づいて、前記現在のバージョンが前記更新履歴に記録された最終更新時のバージョンと一致するか否かを判定するステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記車両にエラー通知を送信するステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと判定された場合、前記センタとは異なる第2のセンタ又は端末に、前記電子制御ユニットのソフトウェアのバージョン変更の有無を問い合わせるステップと、
前記現在のバージョンが前記最終更新時のバージョンと一致しないと前記判定部が判定した場合、前記車両に対する更新データ配信を無効化するステップと、を含み、
前記無効化するステップは、前記現在のバージョンが不具合を含むものである場合は、前記車両に対する更新データ配信を無効化せずに前記不具合を解消させるための更新データを配信する、配信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタなどに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニット(ECU:Electronic Control Unit)が搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部とを備え、プロセッサが記憶部に記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバー機能を有するセンタからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェア更新や追加を行うOTA(Over The Air)技術が知られている。
【0004】
このOTA技術を用いたソフトウェアの更新処理は、車両の電源又はイグニッションがONの時に、車両のソフトウェアの更新処理を担う装置であるOTAマスタが、車載通信機器を介して、電子制御ユニットのソフトウェアのバージョン情報をセンタに送信すること(更新確認)を契機として開始することができる(例えば、特許文献1を参照)。OTAマスタは、センタから更新データをOTAによりダウンロードすると、車内の表示装置などに表示を行うことにより、更新データがあることをユーザーに通知し、ボタンなどの入力装置の操作によってユーザーの承諾を受け付けたことを契機として、更新データのインストール及びアクティベートを実施する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
故障などによって電子制御ユニットが交換された場合、電子制御ユニットに実装されるソフトウェアのバージョンが交換前後で変わる可能性がある。電子制御ユニットの交換によってソフトウェアのバージョンが変わった場合、交換作業の実施に関わる当事者(作業者、ユーザーなど)は、OTA以外でバージョン変更が生じたことを認識することができる。しかしながら、不正なソフトウェアの書き換えによってソフトウェアのバージョンが変えられた場合には、OTA以外でバージョン変更が生じたことをユーザーや車両などが認識できないおそれがある。
【0007】
本開示は、上記課題を鑑みてなされたものであり、不正なソフトウェアの書き換えによってソフトウェアのバージョンが変更された場合でも、OTA以外でバージョン変更が生じたことを認識できるようにしたセンタなど、を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本開示技術の一態様は、車両と通信可能なセンタであって、車両に搭載された電子制御ユニットのソフトウェアの更新履歴を記憶する記憶部と、車両から電子制御ユニットのソフトウェアの現在のバージョンを受信する受信部と、更新履歴に基づいて、受信部が受信した現在のバージョンが更新履歴に記録された最終更新時のバージョンと一致するか否かを判定する判定部と、受信部が受信した現在のバージョンが最終更新時のバージョンと一致しないと判定部が判定した場合、車両にエラー通知を送信する送信部と、を備える、センタである。
【発明の効果】
【0009】
本開示のセンタなどによれば、不正なソフトウェアの書き換えによってソフトウェアのバージョンが変更された場合でも、OTA以外でバージョン変更が生じたことを認識することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るネットワークシステムの全体構成を示すブロック図
【
図7】センタが実行する更新確認要求処理のフローチャート
【
図8】ソフトウェアのバージョンに整合性を説明する図
【
図9】センタが実行するダウンロード要求処理のフローチャート
【
図10】OTAマスタが実行するソフトウェア更新制御処理のフローチャート
【発明を実施するための形態】
【0011】
本開示のセンタは、車両から受信する電子制御ユニットのソフトウェアの現在のバージョンが、自身が記憶及び管理する電子制御ユニットのソフトウェア更新履歴における最終更新時のバージョンと一致しない場合、車両にエラー通知を送信する。これにより、不正なソフトウェアの書き換えによってソフトウェアのバージョンが変更された場合でも、車両においてOTA以外でバージョン変更が生じたことを認識することができる。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
【0012】
<実施形態>
[システムの構成]
図1は、本開示の一実施形態に係るネットワークシステムの全体構成を示すブロック図である。
図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット(ECU)50a~50dのソフトウェアを更新するためのシステムであり、車両外にあるセンタ10と、車両内に構築される車載ネットワーク90と、を備える。
【0013】
(1)センタ
センタ10は、ネットワーク100を介して、車載ネットワーク90が備える後述のOTAマスタ30と通信可能であり、電子制御ユニット50a~50dの更新データの送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などを行って、OTAマスタ30に接続された複数の電子制御ユニット50a~50dのソフトウェア更新を管理することができる。このセンタ10は、いわゆるサーバーとしての機能を有する。
【0014】
図2は、
図1におけるセンタ10の概略構成を示すブロック図である。
図2で示すように、センタ10は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、記憶装置13と、通信装置14と、を備える。記憶装置13は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの読み書き可能な記憶媒体を備えた装置であり、ソフトウェアの更新管理を実行するためのプログラム、ソフトウェアの更新管理に用いる情報、及び各電子制御ユニットの更新データなどを記憶する。センタ10において、CPU11は、記憶装置13から読み出したプログラムを、RAM12を作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。通信装置14は、ネットワーク100を介してOTAマスタ30と通信を行うための装置である。
【0015】
図3は、
図2に示したセンタ10の機能ブロック図である。
図3で示すセンタ10は、記憶部15と、通信部16と、制御部17と、判定部18と、問い合わせ部19と、受付部20と、を備える。記憶部15は、
図2に示した記憶装置13によって実現される。通信部16、制御部17、判定部18、問い合わせ部19、及び受付部20は、
図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
【0016】
記憶部15は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部15は、車両を識別する車両識別情報(車両ID)ごとに、電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニット50a~50dのソフトウェアの更新データとを、少なくとも記憶する。電子制御ユニット50a~50dで利用可能なソフトウェアを示す情報としては、例えば、複数の電子制御ユニット50a~50dの各ソフトウェアの最新バージョンの組み合わせが定義される。また、ソフトウェア更新処理に関する情報として、記憶部15は、車両で実施されているソフトウェアの更新状態を示す更新ステータスを記憶する。
【0017】
また、記憶部15は、車両に搭載された電子制御ユニット50a~50dのソフトウェアの更新履歴である更新履歴情報を記憶する。更新履歴情報は、車両を識別する車両IDごとに、車両に対して実施されたこれまでのソフトウェアの更新内容が累積的に記録された情報である。
図6に、更新履歴情報の一例を示す。
図6に例示する更新履歴情報は、更新の実施回数を表す番号と、更新を実施した日時と、更新において変更された各電子制御ユニット(ECU)のソフトウェアのバージョンが対応付けて記録されている。例えば、
図6は、車両ID_0001の車両は、20XX年7月31日14時47分58秒に実施された3回目の更新処理において、電子制御ユニットECU-Aがバージョン2.0へ、電子制御ユニットECU-Bがバージョン2.0へ、電子制御ユニットECU-Cがバージョン3.0へ更新されたことを示している。
【0018】
通信部16は、OTAマスタ30との間で、データ、情報、及び要求などの送信及び受信を行う。通信部16は、OTAマスタ30からソフトウェアの更新確認要求を受信することが可能である(受信部)。更新確認要求は、例えば、車両において電源又はイグニッションがオンされた(以下「電源ON」という)時に、OTAマスタ30からセンタ10へと送信される情報であって、後述する車両構成情報に基づいて電子制御ユニット50a~50dの更新データがあるか否かの確認をセンタ10に要求するための情報である。通信部16は、OTAマスタ30から受信した更新確認要求に応答して、更新データの有無を示す情報をOTAマスタ30に送信する(送信部)。また、通信部16は、後述する判定部18でOTAによる更新データ配信が無効と判定された場合に、エラー通知をOTAマスタ30に送信する(送信部)。また、通信部16は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信することが可能である(受信部)。通信部16は、配信パッケージのダウンロード要求を受信すると、OTAによる更新データ配信の有効/無効及び無効の解除指示の有無に基づいて、後述の制御部17で生成される電子制御ユニット50a~50dのソフトウェアの更新データを含む配信パッケージをOTAマスタ30に送信する(送信部)。
【0019】
判定部18は、通信部16が受信した更新確認要求に含まれる車両構成情報から、電子制御ユニット50a~50dの各ソフトウェアの現在のバージョンを取得する。そして、判定部18は、記憶部15に記憶されている更新履歴情報に基づいて、車両から取得した各ソフトウェアの現在のバージョンが、センタ10が更新履歴として管理する当該車両における最終更新時の各ソフトウェアのバージョンと一致するか否かを判定する。
【0020】
問い合わせ部19は、各ソフトウェアの現在のバージョンが最終更新時の各ソフトウェアのバージョンと一致しないと判定部18が判定した場合に、センタ10とは異なる別のセンタ(第2のセンタ)又はディーラーや予め登録されたユーザーなどが所有する通信端末に、電子制御ユニット50a~50dのソフトウェアのバージョン変更の有無を問い合わせることができる。
【0021】
受付部20は、OTAによる更新データ配信が無効である場合に、無効化を解除する指示を受け付けることができる。この無効化を解除する指示は、例えば、電子制御ユニットの交換などの正当な理由で各ソフトウェアの現在のバージョンが最終更新時の各ソフトウェアのバージョンと一致しなくなった場合に、ディーラーや予め登録されたユーザーなどから指示される。
【0022】
制御部17は、各ソフトウェアの現在のバージョンが最終更新時の各ソフトウェアのバージョンと一致すると判定部18が判定した場合は、OTAによる更新データ配信を有効化する。一方、制御部17は、各ソフトウェアの現在のバージョンが最終更新時の各ソフトウェアのバージョンと一致しないと判定部18が判定した場合には、OTAによる更新データ配信を無効化する。制御部17におけるOTAによる更新データ配信の無効化の結果は、エラー通知という形で通信部16によってOTAマスタ30に送信される。また、制御部17は、通信部16がOTAマスタ30から更新確認要求を受信すると、記憶部15に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両IDで特定される車両に搭載された電子制御ユニット50a~50dについてソフトウェアの更新データがあるか否かを判定する。制御部17による更新データがあるか否かの判定結果は、通信部16によってOTAマスタ30に送信される。そして、制御部17は、OTAによる更新データ配信が有効化され、かつ、電子制御ユニット50a~50dのソフトウェアの更新データがあると判定した場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、記憶部15に記憶されている該当の更新データを含む配信パッケージを生成する。
【0023】
(2)車載ネットワーク
車載ネットワーク90は、OTAマスタ30と、複数の電子制御ユニット50a~50dと、表示装置70と、通信モジュール80と、を備える。OTAマスタ30と通信モジュール80とは、バス60aを介して接続されている。OTAマスタ30と電子制御ユニット50a及び50bとは、バス60bを介して接続されている。OTAマスタ30と電子制御ユニット50c及び50dとは、バス60cを介して接続されている。OTAマスタ30と表示装置70とは、バス60dを介して接続されている。
【0024】
OTAマスタ30は、バス60a及び通信モジュール80を介してネットワーク100経由でセンタ10と無線による通信が可能である。また、OTAマスタ30は、バス60b~60dを介して電子制御ユニット50a~50d及び表示装置70と有線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置であり、センタ10から通信によって取得した更新データなどに基づいて、電子制御ユニット50a~50dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
【0025】
図4は、
図1におけるOTAマスタ30の概略構成を示すブロック図である。
図4で示すように、OTAマスタ30は、CPU31と、RAM32と、ROM(Read-Only Memory)33と、記憶装置34と、通信装置36と、を備える。CPU31、RAM32、ROM33、及び記憶装置34は、マイクロコンピューター35を構成する。OTAマスタ30において、CPU31は、ROM33から読み出したプログラムを、RAM32を作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。通信装置36は、
図1に示したバス60a~60dを介して、通信モジュール80、電子制御ユニット50a~50d、及び表示装置70と通信を行うための装置である。
【0026】
図5は、
図4に示したOTAマスタ30の機能ブロック図である。
図5に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、出力部40と、を備える。記憶部37は、
図3に示した記憶装置34によって実現される。通信部38、制御部39、及び出力部40は、
図3に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
【0027】
記憶部37は、複数の電子制御ユニット50a~50dのソフトウェア更新を実行するためのプログラム(OTAマスタ30の制御用プログラム)や、ソフトウェア更新を実行する際に用いる各種データの他、センタ10からダウンロードしたソフトウェアの更新データを記憶する。
【0028】
通信部38は、センタ10との間で、データ、情報、及び要求などの送信及び受信を行う。通信部38は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、例えば、車両を識別するための車両IDと、車載ネットワーク90に接続される電子制御ユニット50a~50dのソフトウェアのバージョンに関する情報とを含む。車両ID及び電子制御ユニット50a~50dのソフトウェアのバージョンは、センタ10が車両IDごとに記憶する最終更新(最新)のソフトウェアのバージョンとの比較により、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否か、及び更新データがある場合にOTAによる更新データの配信が有効か無効か、を判定するために用いられる。また、通信部38は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。また、通信部38は、OTAによる更新データの配信が無効である場合にはエラー通知を受信する。電子制御ユニット50a~50dのソフトウェアの更新データがある場合、通信部38は、更新データを含む配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを受信(ダウンロード)する受信部として機能する。また、通信部38は、後述する取得部42が取得した電子制御ユニット50a~50dが送信するソフトウェアの更新状態を、センタ10に送信する。
【0029】
制御部39は、通信部38が受信した更新確認要求に対するセンタ10からの応答及びエラー通知に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、制御部39は、通信部38がセンタ10から受信(ダウンロード)して記憶部37に格納した配信パッケージの真正性を検証する。また、制御部39は、センタ10から受信(ダウンロード)した更新データを用いて、電子制御ユニット50a~50dのソフトウェアの更新処理(インストール、アクティベート)を制御する。具体的には、制御部39は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データに基づく更新ソフトウェアをインストールさせる。インストールの完了後、制御部39は、ターゲット電子制御ユニットに対して、インストールした更新ソフトウェアを有効とするアクティベートを指示する。
【0030】
出力部40は、通信部38がセンタ10からエラー通知を受け取った場合に、表示装置70に対してエラー表示を行うための指示を出力することができる。この表示装置70を介したエラー表示によって、例えば、センタ10から車両に対するOTAによる更新データ配信が無効であるためソフトウェア更新処理ができないことを、ユーザーなどに知らせることができる。
【0031】
複数の電子制御ユニット50a~50dは、車両の各部の動作を制御するための装置(ECU)である。
図1においては、4つの電子制御ユニット50a~50dを例示したが、電子制御ユニットの数は特に限定されない。また、電子制御ユニットをOTAマスタ30に接続するバスの数も特に限定されない。
【0032】
表示装置70は、電子制御ユニット50a~50dのソフトウェアの更新処理時に更新データがあることの表示、OTAによる更新データ配信が無効であるためソフトウェア更新処理ができないことの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うために用いられるヒューマンマシンインタフェース(HMI)である。表示装置70としては、典型的にはカーナビゲーションシステムの表示装置を用いることができるが、プログラムの更新処理時に必要な情報を表示可能なものであれば特に限定されない。なお、
図1に示すバス60dには、表示装置70に加えて電子制御ユニットなどがさらに接続されていてもよい。
【0033】
通信モジュール80は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク90をセンタ10に接続するための通信機器である。通信モジュール80は、ネットワーク100経由でセンタ10と無線で接続され、OTAマスタ30による車両の認証や更新データのダウンロードなどが行われる。なお、この通信モジュール80は、OTAマスタ30に含まれて構成されてもよい。
【0034】
[ソフトウェアの更新処理の概要]
OTAマスタ30は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、車両を識別するための車両IDと、車載ネットワーク90に接続される電子制御ユニット50a~50dのハードウェア及びソフトウェアのバージョンなどの電子制御ユニットの状態(システム構成)に関する情報である車両構成情報と、を含む。車両構成情報は、車載ネットワーク90に接続される電子制御ユニット50a~50dから電子制御ユニットの識別番号(ECU_ID)と、電子制御ユニットのソフトウェアバージョンの識別番号(ECU_Software_ID)を取得することで作成可能である。車両ID及び電子制御ユニット50a~50dのソフトウェアのバージョンは、センタ10が車両IDごとに保持する最新のソフトウェアのバージョンとの比較により、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否か、及び更新データがある場合にOTAによる更新データの配信が有効か無効か、を判定するために用いられる。また、OTAマスタ30は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する。また、OTAマスタ30は、OTAによる更新データの配信が無効である場合にはセンタ10からエラー通知を受信する。電子制御ユニット50a~50dのソフトウェアの更新データがある場合、OTAマスタ30は、配信パッケージのダウンロード要求をセンタ10に送信し、センタ10から送信される配信パッケージを受信する。配信パッケージは、更新データの他に、更新データの真正性を検証するための検証用データや、更新データの数、インストール順、アクティベート順、種別情報、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。
【0035】
OTAマスタ30は、受信した更新確認要求に対するセンタ10からの応答及びエラー通知に基づいて、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かを判定する。また、OTAマスタ30は、センタ10から受信して記憶装置13に格納した配信パッケージの真正性を検証する。また、OTAマスタ30は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データをインストールさせる。インストールの完了後、OTAマスタ30は、ターゲット電子制御ユニットに対して、インストールした更新版のソフトウェアを有効とするように指示をする。
【0036】
OTAマスタ30は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、車載ネットワーク90に設けられた表示装置70や、音声による通知を行う音声出力装置などを利用できる。例えば、承諾要求処理において、表示装置70を出力装置として用いる場合、OTAマスタ30は、ソフトウェア更新の承諾を求めるための承諾要求画面を表示装置70に表示させ、ユーザー又は管理者が承諾した場合に承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置70に表示させることができる。また、OTAマスタ30は、承諾要求処理において、電子制御ユニット50a~50dのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置70に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置70に表示させたり、することができる。OTAマスタ30は、ユーザー又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
【0037】
ここで、電子制御ユニットの不揮発性メモリがプログラムを格納するための1つの格納領域を有するシングルバンクメモリである場合は、インストールとアクティベートとがひと続きに行われるため、インストールの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。電子制御ユニットの不揮発性メモリがプログラムを格納するための2つの格納領域を有するデュアルバンクメモリである場合は、少なくとも、インストールの実行後、かつ、アクティベートの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、電子制御ユニットの不揮発性メモリがデュアルバンクメモリである場合には、インストール実行前のソフトウェアの更新に対する承諾要求処理は、行われてもよいし、省略されてもよい。
【0038】
ソフトウェアの更新処理は、OTAマスタ30がセンタ10から更新データをダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30がターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットがインストールした更新版のソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
【0039】
ダウンロードは、OTAマスタ30が、センタ10から配信パッケージによって送信された電子制御ユニット50a~50dのソフトウェアを更新するための更新データを、受信して記憶装置34に記憶する処理である。ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、ダウンロードに対する車両のユーザー又は管理者への承諾要求、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
【0040】
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニット50a~50dの更新ソフトウェア、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットのECU_ID(又はシリアル番号)と、更新前の電子制御ユニットのECU_Software_IDを含んでいてもよい。更新データは、上述した配信パッケージとしてダウンロードされるが、配信パッケージには、単一又は複数の電子制御ユニットの更新データが含まれる。
【0041】
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データに基づいて、ターゲット電子制御ユニットに更新ソフトウェア(更新版のプログラム)を書き込む処理である。インストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、インストールに対する車両のユーザー又は管理者への承諾要求、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
【0042】
更新データが更新ソフトウェアそのものを含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍、差分データ又は分割データの組み付け(統合)により行うことができる。
【0043】
更新ソフトウェアのインストールは、OTAマスタ30(又はセンタ10)からのインストール要求(又は指示)に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
【0044】
アクティベートは、ターゲット電子制御ユニットが、インストールした更新ソフトウェアを有効化(アクティベート)する処理である。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、アクティベートに対する車両のユーザー又は管理者への承諾要求、実行結果の検証など、アクティベートに関する一連の制御を含む。
【0045】
更新ソフトウェアのアクティベートは、OTAマスタ30(又はセンタ10)からのアクティベート要求(又は指示)に基づいて、ターゲット電子制御ユニットが行うことができる。あるいは、更新データを受信したターゲット電子制御ユニットが、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
【0046】
なお、ソフトウェアの更新処理は、複数の電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0047】
また、本明細書における「ソフトウェアの更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
【0048】
[処理]
次に、
図7乃至
図10をさらに参照して、本実施形態に係るネットワークシステムにおいて実行される処理を説明する。
【0049】
図7は、センタ10の各構成が実行する更新確認要求処理の手順を説明するフローチャートである。この
図7に示す更新確認要求処理は、OTAマスタ30が送信する更新確認要求を、センタ10が受信することによって開始される。
【0050】
(ステップS701)
判定部18は、通信部16がOTAマスタ30から受信した更新確認要求によって、車両に搭載される各電子制御ユニット50a~50dのソフトウェアの現在のバージョンを取得する。ソフトウェアの現在のバージョンが取得されると、ステップS702に処理が進む。
【0051】
(ステップS702)
判定部18は、ソフトウェアバージョンの整合性をチェックする。この整合性のチェックは、車両から取得した各ソフトウェアの現在のバージョンが、センタ10の記憶部37が更新履歴情報として記憶する車両における各ソフトウェアの最終更新時のバージョンと一致するか否か、を判定することで行われる。整合性のチェックがされると、ステップS703に処理が進む。
【0052】
(ステップS703)
判定部18は、整合性をチェックした結果、各電子制御ユニット50a~50dのソフトウェアのバージョンに整合性があるか否かを判断する。判定部18は、各ソフトウェアにおける現在のバージョンが最終更新時のバージョンと一致する場合には整合性ありと判断し、各ソフトウェアにおける現在のバージョンが最終更新時のバージョンと一致しない場合には整合性なしと判断する。整合性ありと判定された場合は(ステップS703、はい)、ステップS704に処理が進み、整合性なしと判定された場合は(ステップS703、いいえ)、ステップS705に処理が進む。
【0053】
(ステップS704)
制御部17は、各ソフトウェアのバージョンに整合性があるので、OTAによる更新データ配信を有効化する。OTAによる更新データ配信が有効化されると、ステップS706に処理が進む。
【0054】
(ステップS705)
制御部17は、各ソフトウェアのバージョンに整合性がないので、OTAによる更新データ配信を無効化する。OTAによる更新データ配信が無効化されると、ステップS707に処理が進む。
【0055】
ここで
図8を参照して、ソフトウェアのバージョンに整合性について説明する。
図8は、センタ10の記憶部15が
図6に示す更新履歴情報を記憶している場合において、OTAマスタ30からセンタ10に向けて各電子制御ユニットECU-A、ECU-B、及びECU-Cのソフトウェアの現在のバージョンが送信された例である。
図8の(a)では、現在のバージョン「ECU-A:2.0、ECU-B:2.0、ECU-C:3.0」が最終更新時のバージョン(
図6の番号3の各バージョン)と一致するので、OTAによる更新データ配信が有効とされる。一方、
図8の(b)では、現在のバージョン「ECU-A:2.0、ECU-B:2.0、ECU-C:1.0」のうちECU-Cのバージョンが古く最終更新時のバージョン(
図6の番号3の各バージョン)と一致しないので、OTAによる更新データ配信が無効とされる。また、
図8の(c)では、現在のバージョン「ECU-A:2.0、ECU-B:2.0、ECU-C:1.0」のうちECU-Aのバージョンが新しく最終更新時のバージョン(
図6の番号3の各バージョン)と一致しないので、OTAによる更新データ配信が無効とされる。
【0056】
(ステップS706)
制御部17は、記憶部15に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両IDで特定される車両に搭載された電子制御ユニット50a~50dについてソフトウェアの更新データがあるか否かを判断し、判断結果に基づいて更新データの有無を示す情報をOTAマスタ30に送信する。更新データの有無が送信されると、本更新確認要求処理が終了する。
【0057】
(ステップS707)
通信部16は、更新データ配信が無効化されたことを示すエラー通知を、OTAマスタ30に送信する。エラー通知が送信されると、本更新確認要求処理が終了する。なお、エラー通知が送信される場合であっても、上記ステップS706と同様に更新データの有無がOTAマスタ30に送信されてもよい。
【0058】
なお、上記実施形態では、センタ10は、ステップS703においてソフトウェアのバージョンに整合性がないと判定した場合、OTAによる更新データ配信を無効化して、エラー通知をOTAマスタ30に送信する例を説明した(ステップS705、S707)。しかしながら、センタ10は、車両から受信するソフトウェアの現在のバージョンが不具合を含むものであると判断できる場合には、OTAによる更新データ配信を無効化せずに、この不具合を解消させるために必要な更新データの配信をOTAマスタ30に対して行ってもよい。
【0059】
図9は、センタ10の各構成が実行するダウンロード要求処理の手順を説明するフローチャートである。この
図9に示すダウンロード要求処理は、OTAマスタ30が送信する配信パッケージのダウンロード要求をセンタ10が受信することによって開始される。
【0060】
(ステップS901)
制御部17は、OTAによる更新データ配信が有効であるか否かを判断する。OTAによる更新データ配信が有効である場合は(ステップS901、はい)、ステップS905に処理が進み、OTAによる更新データ配信が無効である場合は(ステップS901、いいえ)、ステップS902に処理が進む。
【0061】
(ステップS902)
問い合わせ部19は、センタ10とは異なる別のセンタ(第2のセンタ)又はディーラーや予めユーザーなどが所有する通信端末に、電子制御ユニット50a~50dのソフトウェアのバージョン変更の有無を問い合わせる。問い合わせがされると、ステップS903に処理が進む。
【0062】
(ステップS903)
受付部20は、OTAによる更新データ配信の無効化を解除する指示を受け付けたか否かを判断する。無効化解除の指示としては、センタ10が発行するワンタイムパスワードをディーラーやユーザーなどが所有する通信端末や車両キーとして登録された携帯端末などに送信し、ディーラーやユーザーなどがこのワンタイムパスワードをWeb経由で返信(入力)することを例示できる。また、この他にも、ユーザーと所定の窓口(車両メーカー(OEM)窓口など)との間で電話による認証の後、所定の窓口がセンタ10に対して解除指示する方法や、ディーラーへの車両入庫予定が確認されたディーラーシステムとセンタ10とが連携することで、ディーラー作業が発生することを事前にセンタ10へ通知することで解除指示する方法など、が考えられる。無効化を解除する指示を受け付けた場合は(ステップS903、はい)、ステップS904に処理が進み、無効化を解除する指示を受け付けていない場合は(ステップS903、いいえ)、本ダウンロード要求処理が終了する。
【0063】
(ステップS904)
制御部17は、OTAによる更新データ配信の無効化を解除する指示があるので、更新データ配信を有効化する。OTAによる更新データ配信が有効化されると、ステップS905に処理が進む。
【0064】
(ステップS905)
制御部17は、電子制御ユニット50a~50dのソフトウェアの更新データを含む配信パッケージを生成する。通信部16は、制御部17で生成された配信パッケージをOTAマスタ30に送信する。配信パッケージの生成及び送信がされると、本ダウンロード要求処理が終了する。
【0065】
図10は、OTAマスタ30の各構成が実行するソフトウェア更新制御処理の手順を説明するフローチャートである。この
図10に示すソフトウェア更新制御処理は、例えば、車両の電源ONを契機として実行される。
【0066】
(ステップS1001)
通信部38は、電子制御ユニット50a~50dのソフトウェアの更新データがあるか否かの確認要求を、センタ10に送信する。この確認要求には、車両IDと、電子制御ユニット50a~50dのソフトウェアの現在のバージョンとが、含まれる。確認要求がセンタ10に送信されると、ステップS1002に処理が進む。
【0067】
(ステップS1002)
通信部38は、センタ10から更新データの確認要求に対する確認結果を受信する。確認結果が受信されると、ステップS1003に処理が進む。
【0068】
(ステップS1003)
制御部39は、ソフトウェアの更新が可能であるか否かを判断する。この判断は、通信部38が、更新データ配信が無効化されたことを示すエラー通知をセンタ10から受信したか否かによって可能である。ソフトウェアの更新が可能である場合は(ステップS1003、はい)、ステップS1004に処理が進み、ソフトウェアの更新が可能ではない場合は(ステップS1003、いいえ)、ステップS1008に処理が進む。
【0069】
(ステップS1004)
制御部39は、通信部38が受信した更新データの確認要求に対する確認結果に基づいて、電子制御ユニット50a~50dのうち少なくとも1つに対するソフトウェアの更新データがあるか否かを判断する。ソフトウェアの更新データが少なくとも1つある場合は(ステップS1004、はい)、ステップS1005に処理が進み、ソフトウェアの更新データが全くない場合は(ステップS1004、いいえ)、本ソフトウェア更新制御処理が終了する。
【0070】
(ステップS1005)
制御部39は、更新データのダウンロードを行う。より詳細には、通信部38がセンタ10に配信パッケージのダウンロード要求を送信し、通信部38がダウンロード要求に応答してセンタ10から送信される配信パッケージを受信する。通信部38は、受信した配信パッケージを記憶部37に格納する。更新データのダウンロードが行われると、ステップS1006に処理が進む。
【0071】
(ステップS1006)
制御部39は、ターゲット電子制御ユニットに対してインストール処理を実行する。より詳細には、制御部39は、ターゲット電子制御ユニットに配信パッケージに含まれる更新データを転送し、インストールを指示する。ターゲット電子制御ユニットは、OTAマスタ30から受信した更新データをデータ格納領域に書き込む。インストール処理が実行されると、ステップS1007に処理が進む。
【0072】
(ステップS1007)
制御部39は、ターゲット電子制御ユニットに対してアクティベート処理を実行する。より詳細には、制御部39は、更新データをデータ格納領域に書き込んだターゲット電子制御ユニットに対して、更新版のソフトウェアのアクティベートを指示する。ターゲット電子制御ユニットは、電源OFFなどの特定の入力操作が行われたことを契機として、再起動し、更新後のソフトウェアを実行する。アクティベート処理が実行されると、本ソフトウェア更新制御処理が終了する。
【0073】
(ステップS1008)
出力部40は、通信部38がセンタ10から受信したエラー通知に基づいて、表示装置70に対してエラー表示を行うための指示を出力する。エラー表示の指示がされると、本ソフトウェア更新制御処理が終了する。
【0074】
<効果>
以上のように、本開示の一実施形態に係るネットワークシステムによれば、センタ10は、車両(OTAマスタ30)から受信する電子制御ユニット50a~50dのソフトウェアの現在のバージョンが、自身が記憶及び管理する電子制御ユニット50a~50dのソフトウェアの更新履歴情報における最終更新時のバージョンと一致しない場合、車両にエラー通知を送信する。この通知により、不正なソフトウェアの書き換えによってソフトウェアのバージョンが変更された場合でも、車両においてOTA以外でバージョン変更が生じたことを認識することができる。また、エラー通知に基づいて表示装置70などにエラー表示を行うことによって、OTAによるソフトウェア更新ができないことをユーザーなどに報知することができる。
【0075】
また、センタ10は、電子制御ユニット50a~50dのソフトウェアの現在のバージョンが更新履歴情報における最終更新時のバージョンと一致しない場合は、OTAによる更新データ配信を無効化する。これにより、不正なソフトウェアを有する電子制御ユニットに更新データを配信してしまうことを抑制できる。
【0076】
また、センタ10では、電子制御ユニット50a~50dのソフトウェアの現在のバージョンが更新履歴情報における最終更新時のバージョンと一致しないことが正当な理由で生じた場合には、ユーザーなどの指示によってOTAによる更新データ配信の無効化を解除することができるので、ユーザーの利便性を必要以上に損なうことがなくなる。
【0077】
また、センタ10は、電子制御ユニット50a~50dのソフトウェアの現在のバージョンが更新履歴情報における最終更新時のバージョンと一致しない場合、センタ10とは異なる別のセンタ(第2のセンタ)又はディーラーや予め登録されたユーザーなどが所有する通信端末に、電子制御ユニット50a~50dのソフトウェアのバージョン変更の有無を問い合わせる。これにより、不正なソフトウェアの書き換えによってソフトウェアのバージョンが変わったか否かを確認することができる。
【0078】
なお、上述したエラー通知、OTAによる更新データ配信の無効化、及びユーザーなどへの問い合わせを行う順序は、実施形態に限定されるものではなく任意に設定することが可能である。
【0079】
以上、本開示技術の一実施形態を説明したが、本開示は、センタだけでなく、プロセッサとメモリと記憶装置とを備えたセンタが実行する配信制御方法、配信制御プログラム、あるいは配信制御プログラムを記憶したコンピューター読み取り可能な非一時的な記憶媒体など、として捉えることが可能である。
【産業上の利用可能性】
【0080】
本開示技術は、電子制御ユニットのソフトウェアを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0081】
10 センタ
11、31 CPU
12、32 RAM
13、34 記憶装置
14、36 通信装置
15、37 記憶部
16、38 通信部
17、39 制御部
18 判定部
19 問い合わせ部
20 受付部
30 OTAマスタ
33 ROM
35 マイクロコンピューター
40 出力部
50a~50d 電子制御ユニット(ECU)
60a~60d バス
70 表示装置
80 通信モジュール
90 車載ネットワーク
100 ネットワーク