IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特許7533379センタ、OTAマスタ、方法、プログラム、及び車両
<>
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図1
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図2
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図3
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図4
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図5
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図6
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図7
  • 特許-センタ、OTAマスタ、方法、プログラム、及び車両 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】センタ、OTAマスタ、方法、プログラム、及び車両
(51)【国際特許分類】
   G06F 8/65 20180101AFI20240806BHJP
   G06F 21/60 20130101ALI20240806BHJP
   B60R 16/02 20060101ALI20240806BHJP
【FI】
G06F8/65
G06F21/60 360
G06F21/60 320
B60R16/02 660U
【請求項の数】 13
(21)【出願番号】P 2021107731
(22)【出願日】2021-06-29
(65)【公開番号】P2023005670
(43)【公開日】2023-01-18
【審査請求日】2023-04-17
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(72)【発明者】
【氏名】石川 智康
(72)【発明者】
【氏名】谷森 俊介
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2020-027624(JP,A)
【文献】特開2017-199068(JP,A)
【文献】特開2002-229452(JP,A)
【文献】特開2005-099885(JP,A)
【文献】特開平11-122237(JP,A)
【文献】特開2018-148303(JP,A)
【文献】米国特許出願公開第2018/0018160(US,A1)
【文献】米国特許出願公開第2008/0271025(US,A1)
【文献】特開2016-170740(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
G06F 21/60
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両に搭載される電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタであって、
前記車両が使用される地域と、前記ソフトウェア更新に要求されるセキュリティレベルとを関連付けた、セキュリティ情報を記憶する記憶部と、
前記車両の位置を示す位置情報及び複数の前記電子制御ユニットの各バージョンを示すバージョン情報を、前記車両から受信する受信部と、
前記バージョン情報に基づいて、前記ソフトウェア更新の対象となる前記電子制御ユニットであるターゲット電子制御ユニットがあるか否かを判定する判定部と、
前記判定部によって前記ターゲット電子制御ユニットがあると判定された場合、前記セキュリティ情報と前記位置情報とに基づいて、前記車両が位置する地域の前記セキュリティレベルで暗号化が施された配信パッケージを生成する制御部と、
前記OTAマスタからの要求に基づいて、前記配信パッケージを前記OTAマスタに送信する送信部と、を備える、センタ。
【請求項2】
前記制御部は、前記暗号化の手法を特定する情報を含む前記配信パッケージを生成する、請求項1に記載のセンタ。
【請求項3】
前記制御部は、前記車両が位置する地域の前記セキュリティレベルが所定の閾値以上の場合、前記車両に固有の情報に基づいて前記暗号化を行う、請求項1又は2に記載のセンタ。
【請求項4】
前記制御部は、前記車両が位置する地域の前記セキュリティレベルが所定の閾値未満の場合、複数の前記車両に共通の情報に基づいて前記暗号化を行う、請求項1乃至3のいずれか1項に記載のセンタ。
【請求項5】
車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタであって、
前記車両の位置を示す位置情報をセンタに送信する送信部と、
前記位置情報に基づいて前記車両が位置する地域のセキュリティレベルで暗号化が施された配信パッケージを前記センタから受信する受信部と、
前記受信部が受信した前記配信パッケージに基づいて、更新対象となる前記電子制御ユニットの前記ソフトウェア更新を制御する制御部と、を備える、OTAマスタ。
【請求項6】
前記制御部は、前記配信パッケージに含まれる前記暗号化の手法を特定する情報に基づいて、前記配信パッケージを復号する、請求項5に記載のOTAマスタ。
【請求項7】
前記制御部は、前記車両に固有の情報に基づいて前記配信パッケージを復号する、請求項5又は6に記載のOTAマスタ。
【請求項8】
前記制御部は、複数の前記車両に共通の情報に基づいて前記配信パッケージを復号する、請求項5乃至7のいずれか1項に記載のOTAマスタ。
【請求項9】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタが実行する方法であって、
前記車両が使用される地域と、前記ソフトウェア更新に要求されるセキュリティレベルとを関連付けた、セキュリティ情報を記憶するステップと、
前記車両の位置を示す位置情報及び複数の前記電子制御ユニットのバージョンを示すバージョン情報を前記車両から受信するステップと、
前記バージョン情報に基づいて、前記ソフトウェア更新の対象となる前記電子制御ユニットであるターゲット電子制御ユニットがあるか否かを判定するステップと、
前記ターゲット電子制御ユニットがあると判定された場合、前記セキュリティ情報と前記位置情報とに基づいて、前記車両が位置する地域の前記セキュリティレベルで暗号化が施された配信パッケージを生成するステップと、
前記OTAマスタからの要求に基づいて、前記配信パッケージを前記OTAマスタに送信するステップと、を含む、方法。
【請求項10】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタが実行する方法であって、
前記車両の位置情報をセンタに送信するステップと、
前記位置情報に基づいて前記車両が位置する地域のセキュリティレベルで暗号化が施された配信パッケージを前記センタから受信するステップと、
前記受信した前記配信パッケージに基づいて、更新対象となる前記電子制御ユニットの前記ソフトウェア更新を制御するステップと、を含む、方法。
【請求項11】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタのコンピューターが実行するプログラムであって、
前記車両が使用される地域と、前記ソフトウェア更新に要求されるセキュリティレベルとを関連付けた、セキュリティ情報を記憶するステップと、
前記車両の位置を示す位置情報及び複数の前記電子制御ユニットのバージョンを示すバージョン情報を前記車両から受信するステップと、
前記バージョン情報に基づいて、前記ソフトウェア更新の対象となる前記電子制御ユニットであるターゲット電子制御ユニットがあるか否かを判定するステップと、
前記ターゲット電子制御ユニットがあると判定された場合、前記セキュリティ情報と前記位置情報とに基づいて、前記車両が位置する地域の前記セキュリティレベルで暗号化が施された配信パッケージを生成するステップと、
前記OTAマスタからの要求に基づいて、前記配信パッケージを前記OTAマスタに送信するステップと、を含む、プログラム。
【請求項12】
プロセッサと、メモリとを備え、車両に搭載された電子制御ユニットのソフトウェア更新を制御するOTAマスタのコンピューターが実行するプログラムであって、
前記車両の位置情報をセンタに送信するステップと、
前記位置情報に基づいて前記車両が位置する地域のセキュリティレベルで暗号化が施された配信パッケージを前記センタから受信するステップと、
前記受信した前記配信パッケージに基づいて、更新対象となる前記電子制御ユニットの前記ソフトウェア更新を制御するステップと、を含む、プログラム。
【請求項13】
請求項5乃至8のいずれか1項に記載のOTAマスタを搭載した、車両。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、電子制御ユニットのソフトウェアの更新を制御するセンタやOTAマスタなどに関する。
【背景技術】
【0002】
車両には、車両の動作を制御するための複数の電子制御ユニットが搭載されている。電子制御ユニットは、プロセッサと、RAMのような一時的な記憶部と、フラッシュROMのような不揮発性の記憶部である不揮発性メモリとを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを実行することにより電子制御ユニットの制御機能を実現する。各電子制御ユニットが記憶するソフトウェアは書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各電子制御ユニットの機能を改善したり、新たな車両制御機能を追加したりすることができる。
【0003】
電子制御ユニットのソフトウェアを更新する技術として、車載ネットワークに接続された車載通信機器とインターネットなどの通信ネットワークとを無線で接続し、車両のソフトウェアの更新処理を担う装置が、無線通信を介してサーバーからソフトウェアをダウンロードし、ダウンロードしたソフトウェアを電子制御ユニットにインストールすることにより、電子制御ユニットのソフトウェア更新や追加を行うOTA(Over The Air)技術が知られている。例えば、特許文献1を参照。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-326689号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
OTAを用いた電子制御ユニットのソフトウェア更新に要求されるセキュリティレベルは、車両が使用される地域(国や州など)における法規制によって異なる。従って、ソフトウェアの更新を行うために必要なデータや情報を含んだ配信パッケージのセキュリティレベル(暗号化レベル)を一律に設定してしまうと、ソフトウェア更新時に車両が存在する地域によっては、パッケージをそのまま配信することができなかったり、セキュリティレベルが高すぎてデータや情報の復号に長い時間を要したり、することが考えられる。このため、配信パッケージのセキュリティレベルの設定には改善の余地がある。
【0006】
本開示は、上記課題を鑑みてなされたものであり、セキュリティレベルを動的に設定して配信パッケージを好適に送受信することができるセンタやOTAマスタなどを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本開示技術の一態様は、車両に搭載される電子制御ユニットのソフトウェア更新を制御するOTAマスタと通信可能なセンタであって、車両が使用される地域と、ソフトウェア更新に要求されるセキュリティレベルとを関連付けた、セキュリティ情報を記憶する記憶部と、車両の位置を示す位置情報及び複数の電子制御ユニットの各バージョンを示すバージョン情報を、車両から受信する受信部と、バージョン情報に基づいて、ソフトウェア更新の対象となる電子制御ユニットであるターゲット電子制御ユニットがあるか否かを判定する判定部と、判定部によってターゲット電子制御ユニットがあると判定された場合、セキュリティ情報と位置情報とに基づいて、車両が位置する地域のセキュリティレベルで暗号化が施された配信パッケージを生成する制御部と、OTAマスタからの要求に基づいて、配信パッケージをOTAマスタに送信する送信部と、を備える、センタである。
【発明の効果】
【0008】
本開示によれば、センタがソフトウェア更新時の車両の位置に基づいたセキュリティレベルを配信パッケージに設定するので、ソフトウェア更新時の車両の位置にとって好適なセキュリティレベルの配信パッケージをOTAマスタへ配信することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るネットワークシステムの全体構成を示すブロック図
図2】センタの概略構成を示すブロック図
図3】センタの機能ブロック図
図4】センタが記憶するセキュリティ情報の一例
図5】OTAマスタの概略構成を示すブロック図
図6】OTAマスタの機能ブロック図
図7】センタが実行する配信制御処理のフローチャート
図8】OTAマスタが実行するソフトウェア更新制御処理のフローチャート
【発明を実施するための形態】
【0010】
本開示は、センタが、車両が使用される地域とソフトウェア更新に要求されるセキュリティレベルとを関連付けた情報を予め記憶しておき、OTAマスタから更新データのダウンロード要求があった場合に、そのOTAマスタを搭載した車両が位置する地域のセキュリティレベルで暗号化が施された配信パッケージを生成して、OTAマスタに送信する。この処理によって、配信地域において要求されるセキュリティレベルでソフトウェア更新を実行することができる。
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。
【0011】
<実施形態>
[構成]
図1は、本開示の一実施形態に係るネットワークシステムの全体構成を示すブロック図である。図1に示すネットワークシステムは、車両に搭載された複数の電子制御ユニット40a~40dのソフトウェアを更新するためのシステムであり、車両の外にあるセンタ10と、車両内に構築される車載ネットワーク20と、を備える。
【0012】
(1)センタ
センタ10は、ネットワーク70を介して、車載ネットワーク20が備える後述するOTAマスタ30と通信可能である。センタ10は、OTAマスタ30との間で、電子制御ユニット40a~40dのソフトウェアの更新データの送信や、ソフトウェア更新処理の進捗状況を示す通知の受信などを行って、OTAマスタ30に接続された複数の電子制御ユニット40a~40dのソフトウェア更新を制御及び管理することができる。このセンタ10は、いわゆるサーバーとしての機能を有する。
【0013】
図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は、ネットワーク70を介してOTAマスタ30と通信を行うための装置である。
【0014】
図3は、図2に示したセンタ10の機能ブロック図である。図3で示すセンタ10は、判定部15と、記憶部16と、通信部17と、制御部18と、を備える。記憶部16は、図2に示した記憶装置13によって実現される。判定部15、通信部17、及び制御部18は、図2に示したCPU11がRAM12を用いて記憶装置13に記憶されるプログラムを実行することによって実現される。
【0015】
記憶部16は、車両に搭載された1つ以上の電子制御ユニットのソフトウェア更新処理に関する情報を記憶する。ソフトウェア更新処理に関する情報として、記憶部16は、車両を識別する車両識別情報(車両ID)ごとに、電子制御ユニット40a~40dで利用可能なソフトウェアを示す情報を関連付けた更新管理情報と、電子制御ユニット40a~40dのソフトウェアの更新データ(又は更新データを含む配信パッケージ)とを、少なくとも記憶する。電子制御ユニット40a~40dで利用可能なソフトウェアを示す情報としては、例えば、複数の電子制御ユニット40a~40dの各ソフトウェアの最新のバージョン情報の組み合わせが定義される。また、ソフトウェア更新処理に関する情報として、記憶部16は、車両が使用される地域ごとに、ソフトウェア更新に要求されるセキュリティレベルを関連付けたセキュリティ情報を記憶する。図4に、記憶部16が記憶するセキュリティ情報の一例を示す。図4に例示するセキュリティ情報は、車両が使用される地域とソフトウェア更新に要求されるセキュリティレベルとが対応付けられている。地域は、国、州、市、町、法規制領域などの単位で区分することが可能である。また、ソフトウェア更新処理に関する情報として、記憶部16は、車両で実施されているソフトウェアの更新状態を示す更新ステータスを記憶することができる。さらに、記憶部16は、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリの種別に関する情報を記憶することができる。
【0016】
通信部17は、OTAマスタ30との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部17は、OTAマスタ30からソフトウェアの更新確認要求を受信する(受信部)。更新確認要求は、例えば、車両において電源又はイグニッションがオンされた(以下「電源ON」という)時に、OTAマスタ30からセンタ10へと送信される情報であって、後述する車両構成情報に基づいて電子制御ユニット40a~40dの更新データがあるか否かの確認をセンタ10に要求するための情報である。また、通信部17は、OTAマスタ30から受信した更新確認要求に応答して、更新データの有無を示す情報をOTAマスタ30に送信する(送信部)。また、通信部17は、OTAマスタ30からの配信パッケージの送信要求(ダウンロード要求)を受信する(受信部)。また、通信部17は、配信パッケージのダウンロード要求を受信すると、電子制御ユニット40a~40dのソフトウェアの更新データを含む配信パッケージを、車両の位置に対応するセキュリティレベルに応じた暗号化を施した上で(後述する)、OTAマスタ30に送信する。
【0017】
判定部15は、通信部17がOTAマスタ30から更新確認要求を受信すると、記憶部16に記憶されている更新管理情報(電子制御ユニットのバージョンなど)に基づいて、更新確認要求に含まれる車両IDで特定される車両に搭載された電子制御ユニット40a~40dについてソフトウェアの更新データがあるか否かを判定する。判定部15による更新データがあるか否かの判定結果は、通信部17によってOTAマスタ30に送信される。
【0018】
制御部18は、判定部15によって電子制御ユニット40a~40dのソフトウェアの更新データがあると判定された場合、OTAマスタ30から配信パッケージのダウンロード要求を受信すると、OTAマスタ30に送信する更新データを含む配信パッケージを生成する。この際、制御部18は、記憶部16が記憶するセキュリティ情報と、更新確認要求又はダウンロード要求に含まれる車両の位置を示す位置情報とに基づいて、所定のセキュリティレベルで暗号化が施された配信パッケージを生成する。配信パッケージには、暗号方法を特定する情報を含ませてもよい。このセキュリティレベルに応じた暗号化については、後述する。
【0019】
(2)車載ネットワーク
車載ネットワーク20は、OTAマスタ30と、複数の電子制御ユニット40a~40dと、通信モジュール50と、を備える。OTAマスタ30と通信モジュール50とは、バス60aを介して接続されている。OTAマスタ30と電子制御ユニット40a及び40bとは、バス60bを介して接続されている。OTAマスタ30と電子制御ユニット40c及び40dとは、バス60cを介して接続されている。
【0020】
OTAマスタ30は、バス60a及び通信モジュール50を介してネットワーク70経由でセンタ10と無線による通信が可能である。このOTAマスタ30は、OTA状態を管理し、ソフトウェア更新処理の流れである更新シーケンスを制御して更新対象となる電子制御ユニット(以下「ターゲット電子制御ユニット」という)のソフトウェア更新を実施する機能を有する装置である。OTAマスタ30は、センタ10から取得した更新データなどに基づいて、電子制御ユニット40a~40dのうちターゲット電子制御ユニットのソフトウェア更新を制御する。OTAマスタ30は、セントラルゲートウェイ(CGW)と称される場合もある。
【0021】
図5は、図1におけるOTAマスタ30の概略構成を示すブロック図である。図5で示すように、OTAマスタ30は、CPU31と、RAM32と、ROM(Read-Only Memory)33と、記憶装置34と、通信装置36と、を備える。CPU31、RAM32、ROM33、及び記憶装置34は、マイクロコンピューター35を構成する。OTAマスタ30において、CPU31は、ROM33から読み出したプログラムを、RAM32を作業領域として用いて実行することにより、ソフトウェア更新に関する所定の処理を実行する。通信装置36は、図1に示したバス60a~60cを介して、通信モジュール50及び電子制御ユニット40a~40dのそれぞれと通信を行うための装置である。
【0022】
図6は、図5に示したOTAマスタ30の機能ブロック図である。図6に示すOTAマスタ30は、記憶部37と、通信部38と、制御部39と、を備える。記憶部37は、図5に示した記憶装置34によって実現される。通信部38及び制御部39は、図5に示したCPU31がRAM32を用いてROM33に記憶されるプログラムを実行することによって実現される。
【0023】
記憶部37は、複数の電子制御ユニット40a~40dのソフトウェア更新を実行するためのプログラム(OTAマスタ30の制御用プログラム)や、ソフトウェア更新を実行する際に用いる各種データの他、センタ10からダウンロードしたソフトウェアの更新データなどを記憶する。また、記憶部37は、複数の電子制御ユニット40a~40dのそれぞれに搭載される不揮発性メモリの種別に関する情報を記憶することができる。さらには、記憶部37は、センタ10から送信されてくる配信パッケージに施された暗号化の手法を、予め記憶していてもよい。
【0024】
通信部38は、センタ10との間で、データ、情報、及び要求などの送信及び受信を行う送信部及び受信部として機能する。通信部38は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する(送信部)。更新確認要求は、例えば、車両を識別するための車両IDと、車載ネットワーク20に接続される電子制御ユニット40a~40dのソフトウェアの現バージョンに関するバージョン情報と、車両の位置を示す位置情報とを含む。車両ID及び電子制御ユニット40a~40dのソフトウェアの現バージョンは、センタ10が車両IDごとに保持するソフトウェアの最新バージョンとの比較により、電子制御ユニット40a~40dのソフトウェアの更新データがあるか否かを判定するために用いられる。位置情報は、センタ10が配信パッケージのセキュリティレベルを決定するために用いられる。また、通信部38は、更新確認要求に対する応答としてセンタ10から更新データの有無を示す通知を受信する(受信部)。電子制御ユニット40a~40dのソフトウェアの更新データがある場合、通信部38は、ソフトウェアの更新データの配信パッケージのダウンロード要求をセンタ10に送信し(送信部)、センタ10から送信される配信パッケージを、制御部39による制御に基づいて受信(ダウンロード)する(受信部)。なお、このダウンロード要求に位置情報が含まれていてもよい。また、通信部38は、電子制御ユニット40a~40dが送信するソフトウェアの更新状態を、センタ10に送信する(送信部)。
【0025】
制御部39は、通信部38が受信した更新確認要求に対するセンタ10からの応答に基づいて、電子制御ユニット40a~40dのソフトウェアの更新データがあるか否かを判定する。また、制御部39は、自らの制御に基づいて通信部38がセンタ10から受信(ダウンロード)して記憶部37に格納した配信パッケージの復号や真正性の検証を行う。また、制御部39は、センタ10から受信(ダウンロード)した更新データを用い、電子制御ユニット40a~40dのソフトウェア更新処理(各種の検証、インストール、アクティベートなど)を制御する。具体的には、制御部39は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データに基づく更新ソフトウェアをインストールさせる。インストールの完了後、制御部39は、ターゲット電子制御ユニットに対して、インストールした更新ソフトウェアを有効化させるアクティベートを指示する。このソフトウェア更新処理の際、制御部39は、複数の電子制御ユニット40a~40dにおける各種の検証、インストール、アクティベートなどの手順を好適に制御する。
【0026】
複数の電子制御ユニット40a~40dは、車両の各部の動作を制御するための装置(ECU:Electronic Control Unit)である。図1においては、車載ネットワーク20が4つの電子制御ユニット40a~40dを備えている例を示したが、電子制御ユニットの数は特に限定されない。例えば、電子制御ユニット40a~40dのソフトウェアの更新処理時に更新データがあることの表示、車両のユーザーや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、及びソフトウェア更新の結果の表示など、各種の表示を行うための表示装置(HMI)が、OTAマスタ30に接続されていてもよい。表示装置としては、カーナビゲーションシステムなどを用いることが可能である。また、電子制御ユニットをOTAマスタ30に接続するバスの数も特に限定されない。例えば、上述の表示装置が、バス60a~60c以外のバスでOTAマスタ30に接続されてもよい。
【0027】
通信モジュール50は、センタ10と車両との通信を制御する機能を持ったユニットであり、車載ネットワーク20をセンタ10に接続するための通信機器である。通信モジュール50は、ネットワーク70経由でセンタ10と無線で接続され、OTAマスタ30による車両の認証や更新データのダウンロードなどが行われる。なお、この通信モジュール50は、OTAマスタ30に含まれて構成されてもよい。
【0028】
[ソフトウェアの更新処理の概要]
OTAマスタ30は、例えば、車両の電源ONを契機として、ソフトウェアの更新確認要求をセンタ10に送信する。更新確認要求は、車両を識別するための車両IDと、車載ネットワーク20に接続される電子制御ユニット40a~40dのハードウェア及びソフトウェアの現バージョンなどの電子制御ユニットの状態(システム構成)に関する情報である車両構成情報と、車両の位置を示す位置情報と、を含む。車両構成情報は、車載ネットワーク20に接続される電子制御ユニット40a~40dから電子制御ユニットの識別番号(ECU_ID)と、電子制御ユニットのソフトウェアバージョンの識別番号(ECU_Software_ID)とを、取得することで作成可能である。車両ID及び電子制御ユニット40a~40dのソフトウェアの現バージョンは、センタ10が車両IDごとに保持するソフトウェアの最新バージョンとの比較により、電子制御ユニット40a~40dのソフトウェアの更新データがあるか否かを判定するために用いられる。位置情報には、車両に搭載されたGPSシステムによって取得した緯度/経度の情報などを利用できる。センタ10は、OTAマスタ30から受信した更新確認要求に対する応答として、更新データの有無を示す通知をOTAマスタ30に送信する。電子制御ユニット40a~40dのソフトウェアの更新データがある場合、OTAマスタ30は、配信パッケージのダウンロード要求をセンタ10に送信する。センタ10は、OTAマスタ30から受信したダウンロード要求に応じて、自らが記憶するセキュリティ情報に基づいて車両の位置に応じたセキュリティレベルを与えた(後述する)更新データを含む配信パッケージを、OTAマスタ30に送信する。配信パッケージは、更新データの他に、配信パッケージに施した暗号化の手法を特定する情報、更新データの真正性を検証するための検証用データや、更新データの数、種別情報、ソフトウェア更新時に用いる各種の制御情報などを含んでいてもよい。
【0029】
OTAマスタ30は、センタ10から受信した更新確認要求に対する応答に基づいて、電子制御ユニット40a~40dのソフトウェアの更新データがあるか否かを判定する。また、OTAマスタ30は、センタ10から受信して記憶装置13に格納した配信パッケージの復号や真正性の検証を行う。また、OTAマスタ30は、配信パッケージでダウンロードした1つ以上の更新データをターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットに更新データをインストールさせる。インストールの完了後、OTAマスタ30は、ターゲット電子制御ユニットに対して、インストールさせた更新版のソフトウェアを有効とするアクティベートを行うように指示をする。
【0030】
また、OTAマスタ30は、承諾要求処理において、ソフトウェア更新に対して承諾が必要である旨の通知やソフトウェア更新を承諾した旨の入力を促す通知を、出力装置に出力させる。出力装置としては、車載ネットワーク20に設けられた表示による通知を行う表示装置(図示せず)や音声による通知を行う音声出力装置(図示せず)などを利用できる。例えば、承諾要求処理において、表示装置を出力装置として用いる場合、OTAマスタ30は、ユーザー又は管理者にソフトウェア更新の承諾を求めるための承諾要求画面を表示装置に表示させたり、ユーザー又は管理者が承諾する場合には承諾ボタンを押下するなどの特定の入力操作を促す通知を表示装置に表示させたり、することができる。また、OTAマスタ30は、承諾要求処理において、電子制御ユニット40a~40dのソフトウェアの更新データがあることを通知する文言やアイコンなどを表示装置に表示させたり、ソフトウェア更新処理の実行中における制限事項などを表示装置に表示させたり、することができる。OTAマスタ30は、ユーザー又は管理者から承諾した旨の入力を受け付けると、上述したインストール及びアクティベートの制御処理を実行し、ターゲット電子制御ユニットのソフトウェアを更新する。
【0031】
ここで、ターゲット電子制御ユニットの不揮発性メモリが、ソフトウェアなどのデータを格納するための1つの格納領域を有するシングルバンクメモリである場合は、原則的にインストールとアクティベートとがひと続きに行われるため、インストールの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、シングルバンクメモリのターゲット電子制御ユニットであっても、インストール完了の状態で更新処理を一時的に停止、つまりアクティベートを待機(保留)することが要求されることもあり得る。また、ターゲット電子制御ユニットの不揮発性メモリが、ソフトウェアなどのデータを格納するための2つの格納領域を有するデュアルバンクメモリである場合は、少なくとも、インストールの実行後かつアクティベートの実行前に、ソフトウェア更新に対する承諾要求処理が行われる。なお、ターゲット電子制御ユニットの不揮発性メモリがデュアルバンクメモリである場合には、インストール実行前のソフトウェアの更新に対する承諾要求処理は、行われてもよいし省略されてもよい。
【0032】
ソフトウェア更新処理は、OTAマスタ30がセンタ10から更新データをダウンロードするフェーズ(ダウンロードフェーズ)、ダウンロードした更新データをOTAマスタ30がターゲット電子制御ユニットに転送し、ターゲット電子制御ユニットの格納領域に更新データに基づく更新ソフトウェアをインストールするフェーズ(インストールフェーズ)、及びターゲット電子制御ユニットがインストールした更新ソフトウェアを有効化するフェーズ(アクティベートフェーズ)からなる。
【0033】
ダウンロードは、OTAマスタ30が、センタ10から送信された電子制御ユニットのソフトウェアを更新するための更新データを、受信して記憶部37に記憶する処理である。ダウンロードにおいては、後述する所定のセキュリティレベルに応じた暗号化が施された配信パッケージを用いた更新データのダウンロードが行われる。ダウンロードフェーズでは、ダウンロードの実行だけでなく、ダウンロードの実行可否判断、配信パッケージの復号、更新データの検証など、ダウンロードに関する一連の処理の制御を含む。
【0034】
センタ10からOTAマスタ30に送信される更新データは、電子制御ユニットの更新ソフトウェア(全データ又は差分データ)、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェア又は圧縮データを分割した分割データのいずれを含んでいてもよい。また、更新データは、ターゲット電子制御ユニットのECU_ID(又はシリアル番号)と、更新前のターゲット電子制御ユニットのECU_Software_IDとを、含んでいてもよい。ダウンロードされる配信パッケージには、単一の電子制御ユニットのみの更新データ又は複数の電子制御ユニットの更新データが含まれ得る。
【0035】
インストールは、OTAマスタ30が、センタ10からダウンロードした更新データに基づいて、複数のターゲット電子制御ユニットの不揮発性メモリに更新ソフトウェア(更新版のプログラム)を定められた順序で書き込む処理である。インストールフェーズでは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送及び更新ソフトウェアの検証など、インストールに関する一連の処理の制御を含む。
【0036】
更新データが更新ソフトウェアそのもの(全データ)を含む場合は、インストールフェーズにおいて、OTAマスタ30が更新データ(更新ソフトウェア)をターゲット電子制御ユニットに転送する。また、更新データが更新ソフトウェアの圧縮データ、又は差分データ、あるいは分割データを含む場合は、OTAマスタ30がターゲット電子制御ユニットに更新データを転送し、ターゲット電子制御ユニットが更新データから更新ソフトウェアを生成してもよいし、OTAマスタ30が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲット電子制御ユニットに転送してもよい。ここで、更新ソフトウェアの生成は、圧縮データの解凍や、差分データ又は分割データの組み付け(統合)により行うことができる。
【0037】
更新ソフトウェアのインストールは、OTAマスタ30からのインストール要求に基づいて、ターゲット電子制御ユニットが行うことができる。なお、更新データを受信した特定のターゲット電子制御ユニットについては、OTAマスタ30からの明示の指示を受けることなく、自律的にインストールを行ってもよい。
【0038】
アクティベートは、ターゲット電子制御ユニットが、不揮発性メモリにインストールした更新ソフトウェアを有効化(アクティベート)する処理である。アクティベートフェーズでは、アクティベートの実行だけでなく、アクティベートの実行可否判断、アクティベートに対する車両のユーザー又は管理者への承諾要求、実行結果の検証など、アクティベートに関する一連の制御を含む。
【0039】
更新ソフトウェアのアクティベートは、OTAマスタ30からのアクティベート要求に基づいて、ターゲット電子制御ユニットが行うことができる。なお、更新データを受信した特定のターゲット電子制御ユニットについては、OTAマスタ30からの明示の指示を受けることなく、インストールの完了後に自律的にアクティベートを行ってもよい。
【0040】
なお、ソフトウェア更新処理は、複数のターゲット電子制御ユニットのそれぞれに対して、連続的あるいは並列的に行うことができる。
【0041】
また、本明細書における「ソフトウェア更新処理」は、ダウンロード、インストール、及びアクティベートの全てを連続して行う処理だけでなく、ダウンロード、インストール、及びアクティベートのうちの一部のみを行う処理も含む。
【0042】
[処理]
次に、図7及び図8をさらに参照して、本実施形態に係るネットワークシステムにおいて実行される処理を説明する。
【0043】
図7は、センタ10の各構成が実行する配信制御処理の一例を説明するフローチャートである。この図7に示す配信制御処理は、OTAマスタ30が送信する更新確認要求を、センタ10が受信することによって開始される。
【0044】
(ステップS701)
センタ10の通信部17は、OTAマスタ30からソフトウェアの更新確認要求があったか否かを判断する。更新確認要求があった場合は(ステップS701、はい)、ステップS702に処理が進み、更新確認要求がない場合は(ステップS701、いいえ)、ステップS704に処理が進む。
【0045】
(ステップS702)
センタ10の制御部18は、更新が必要なソフトウェアの有無をチェックする。このチェックは、更新確認要求に含まれる車両構成情報から取得する車両に搭載される各電子制御ユニット40a~40dのソフトウェアの現バージョンと、センタ10の記憶部16に記憶されている各ソフトウェアの最新バージョンとに、基づいて行われる。更新が必要なソフトウェアの有無のチェックが行われると、ステップS703に処理が進む。
【0046】
(ステップS703)
センタ10の制御部18は、センタ10の記憶部16に記憶されている更新管理情報に基づいて、更新確認要求に含まれる車両に搭載された電子制御ユニット40a~40dについてソフトウェアの更新データがあるか否かを判断し、判断結果に基づいて更新データの有無を示す情報をOTAマスタ30に送信する。更新データの有無が送信されると、ステップS704に処理が進む。
【0047】
(ステップS704)
センタ10の通信部17は、OTAマスタ30から配信パッケージのダウンロード要求があったか否かを判断する。ダウンロード要求があった場合は(ステップS704、はい)、ステップS705に処理が進み、ダウンロード要求がない場合は(ステップS704、いいえ)、ステップS701に処理が進む。
【0048】
(ステップS705)
センタ10の制御部18は、OTAマスタ30から受信した要求(更新確認要求又はダウンロード要求)に含まれる位置情報から得られる車両の位置に対応するセキュリティレベルを、センタ10の記憶部16が記憶するセキュリティ情報に基づいて取得する。例えば、図4の例のように、車両が地域Aに位置している場合には、この車両に向けた配信パッケージのセキュリティレベルとして「レベル1」が取得される。車両の位置に対応するセキュリティレベルが取得されると、ステップS706に処理が進む。
【0049】
(ステップS706)
センタ10の制御部18は、OTAマスタ30に送信する更新データなどを含む配信パッケージとして、取得したセキュリティレベルに応じた強度で暗号化を施した配信パッケージを生成する。暗号化の一例としては、セキュリティレベルが所定の閾値以上の(高い)場合には、車両に固有の情報(キー)に基づいて配信パッケージに暗号化を施し、セキュリティレベルが所定の閾値未満の(低い)場合には、複数の車両に共通の情報(キー)に基づいて配信パッケージに暗号化を施すことができる。セキュリティレベルが所定の閾値以上の場合における車両に固有の情報は、VINなどの車両識別情報を用いて生成されてもよいし、VINごと(車両ごと)に異なる暗号化が施されてもよい。また、この配信パッケージには、暗号化の手法を特定する情報を含ませてもよい。車両の位置に応じたセキュリティレベルに基づいて暗号化が施された配信パッケージが生成されると、ステップS707に処理が進む。
【0050】
(ステップS707)
センタ10の通信部17は、車両の位置に応じたセキュリティレベルに基づいて暗号化が施された配信パッケージを、OTAマスタ30に送信する。配信パッケージが送信されると、ステップS701に処理が進む。
【0051】
なお、上記実施形態では、OTAマスタ30から要求を受信するタイミングで、センタ10が、車両の位置に応じたセキュリティレベルに基づいて暗号化が施された配信パッケージを生成する例を説明した。しかし、センタ10は、更新データがセンタ10に登録されたタイミングで、全ての車両について全ての地域に応じたセキュリティレベルに基づく暗号化を施した複数の配信パッケージを予め生成しておいてもよい。
【0052】
図8は、OTAマスタ30の各構成が実行するソフトウェア更新制御処理の一例を説明するフローチャートである。この図8に示すソフトウェア更新制御処理は、例えば、車両の電源ONを契機として実行される。
【0053】
(ステップS801)
OTAマスタ30の通信部38は、電子制御ユニット40a~40dのソフトウェアの更新データがあるか否かの確認要求を、センタ10に送信する。この確認要求には、車両IDと、電子制御ユニット40a~40dのソフトウェアの現バージョンとが、含まれる。確認要求がセンタ10に送信されると、ステップS802に処理が進む。
【0054】
(ステップS802)
OTAマスタ30の通信部38は、センタ10から更新データの確認要求に対する確認結果を受信する。確認結果が受信されると、ステップS803に処理が進む。
【0055】
(ステップS803)
OTAマスタ30の制御部39は、OTAマスタ30の通信部38が受信した更新データの確認要求に対する確認結果に基づいて、電子制御ユニット40a~40dのうち少なくとも1つに対するソフトウェアの更新データがあるか否かを判断する。ソフトウェアの更新データが少なくとも1つある場合は(ステップS803、はい)、ステップS804に処理が進み、ソフトウェアの更新データが全くない場合は(ステップS803、いいえ)、本ソフトウェア更新制御処理が終了する。
【0056】
(ステップS804)
OTAマスタ30の制御部39は、更新データのダウンロードを行う。より詳細には、OTAマスタ30の通信部38がセンタ10に更新データを含む配信パッケージのダウンロード要求を送信し、通信部38がダウンロード要求に応答してセンタ10から送信される配信パッケージを受信する。通信部38は、受信した配信パッケージをOTAマスタ30の記憶部37に格納する。更新データのダウンロードが行われると、ステップS805に処理が進む。
【0057】
(ステップS805)
OTAマスタ30の制御部39は、ターゲット電子制御ユニットに対して更新データに基づくソフトウェアのインストールを実行する。より詳細には、制御部39は、配信パッケージに含まれるOTAマスタ用情報(識別情報で特定が可能)に基づいて、配信パッケージに含まれる更新データをターゲット電子制御ユニットに転送し、更新ソフトウェアのインストールを指示する。ターゲット電子制御ユニットは、OTAマスタ30から受信した更新データをデータ格納領域に書き込む。更新ソフトウェアのインストールが実行されると、ステップS806に処理が進む。
【0058】
(ステップS806)
OTAマスタ30の制御部39は、ターゲット電子制御ユニットにインストールされた更新ソフトウェアのアクティベートを実行する。より詳細には、制御部39は、配信パッケージに含まれるOTAマスタ用情報に基づいて、更新ソフトウェアをデータ格納領域に書き込んだターゲット電子制御ユニットに対して、更新ソフトウェアのアクティベートを指示する。ターゲット電子制御ユニットは、電源OFFなどの特定の入力操作が行われたことを契機として再起動し、更新ソフトウェアを実行する。更新ソフトウェアのアクティベート処理が実行されると、本ソフトウェア更新制御処理が終了する。
【0059】
<効果>
以上のように、本開示の一実施形態に係るネットワークシステムによれば、センタが、車両が使用される地域とソフトウェア更新に要求されるセキュリティレベルとを関連付けた情報(セキュリティ情報)を予め記憶しておく。そして、センタは、OTAマスタから更新データのダウンロード要求があった場合、そのOTAマスタを搭載した車両が位置する地域のセキュリティレベルで暗号化が施された配信パッケージを生成して、OTAマスタに送信する。この処理によって、同じソフトウェア更新であっても、更新データが配信される地域において要求されるセキュリティレベルで、適切にソフトウェア更新を実行することができる。
【0060】
この配信パッケージには、配信パッケージに施された暗号化の手法を特定する情報を含めることができる。この情報を含めておけば、配信パッケージを受信したOTAマスタが、配信パッケージを容易に復号することができる。
【0061】
また、車両が位置する地域のセキュリティレベルが所定の閾値以上であるセキュリティレベル要求が高い場合には、車両に固有の情報に基づいて暗号化を施すことによって改ざんなどを抑制することができる。また、車両が位置する地域のセキュリティレベルが所定の閾値未満であるセキュリティレベル要求が低い場合には、複数の車両に共通の情報に基づいて暗号化を施すことによって配信パッケージの復号を簡単にして、ソフトウェア更新に要する時間を短縮することができる。
【0062】
以上、本開示技術の一実施形態を説明したが、本開示は、センタだけでなく、センタと通信可能なOTAマスタ、プロセッサとメモリとを備えたセンタやOTAマスタが実行する方法、プログラム、あるいはプログラムを記憶したコンピューター読み取り可能な非一時的な記憶媒体、あるいはOTAマスタを備えた車両など、として捉えることが可能である。
【産業上の利用可能性】
【0063】
本開示技術は、電子制御ユニットのソフトウェアを更新するためのネットワークシステムに利用できる。
【符号の説明】
【0064】
10 センタ
11、31 CPU
12、32 RAM
13、34 記憶装置
14、36 通信装置
16、37 記憶部
17、38 通信部
18、39 制御部
20 車載ネットワーク
30 OTAマスタ
33 ROM
35 マイクロコンピューター
40a~40d 電子制御ユニット(ECU)
50 通信モジュール
60a~60c バス
70 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8