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

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

▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

特開2023-152417車載システム、更新制御装置、及びプログラム更新制御方法
<>
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図1
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図2
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図3
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図4
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図5
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図6
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図7
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図8
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図9A
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図9B
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図10
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図11
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図12
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図13
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図14A
  • 特開-車載システム、更新制御装置、及びプログラム更新制御方法 図14B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152417
(43)【公開日】2023-10-17
(54)【発明の名称】車載システム、更新制御装置、及びプログラム更新制御方法
(51)【国際特許分類】
   G06F 8/65 20180101AFI20231010BHJP
   B60R 16/02 20060101ALI20231010BHJP
【FI】
G06F8/65
B60R16/02 660U
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022062429
(22)【出願日】2022-04-04
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】立石 博志
(72)【発明者】
【氏名】古戸 健
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA88
5B376GA08
(57)【要約】
【課題】更新制御装置の記憶部の空き容量が不足していても、更新データをダウンロードする。
【解決手段】
更新制御装置は、プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する受信部と、前記受信部によって受信された前記第1部分データを記憶する記憶部と、対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記記憶部に記憶された前記第1部分データを前記対象車載装置へ送信する送信部と、を備え、前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置であり、前記複数の車載装置それぞれに関する選定条件に基づいて、前記複数の非対象車載装置から選定される。
【選択図】図5
【特許請求の範囲】
【請求項1】
プログラムの更新対象である車載装置である対象車載装置と、
プログラムの更新対象ではない車載装置である複数の非対象車載装置と、
前記対象車載装置における前記プログラムの更新を制御する更新制御装置と、
を備え、
前記更新制御装置は、
前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する第1受信部と、
前記第1受信部によって受信された前記第1部分データを記憶する第1記憶部と、
前記第1記憶部に記憶された前記第1部分データを、前記対象車載装置へ送信する第1送信部と、
を含み、
前記複数の非対象車載装置から選定された選定車載装置は、
前記更新データの部分データであり、前記第1部分データとは異なる第2部分データを、前記外部装置から受信する第2受信部と、
前記第2受信部によって受信された前記第2部分データを記憶する第2記憶部と、
前記第2記憶部に記憶された前記第2部分データを、前記対象車載装置へ送信する第2送信部と、
を含み、
前記対象車載装置は、
前記更新制御装置から前記第1部分データを受信し、前記選定車載装置から前記第2部分データを受信する第3受信部と、
前記第3受信部によって受信された前記第1部分データ及び前記第2部分データを結合し、前記更新データを生成する生成部と、
前記生成部によって生成された前記更新データを用いて、前記プログラムを更新する更新部と、
を含む、
車載システム。
【請求項2】
前記選定車載装置は、前記複数の車載装置それぞれに関する選定条件に基づいて、前記複数の非対象車載装置から選定される、
請求項1に記載の車載システム。
【請求項3】
前記選定条件は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数のうちの少なくとも1つに関する条件である、
請求項2に記載の車載システム。
【請求項4】
前記車載システムは、前記外部装置と通信可能な外部通信装置を備え、
前記外部通信装置と同一のバスに接続された車載装置の前記セキュリティ強度は、前記外部通信装置とは異なるバスに接続された車載装置の前記セキュリティ強度より低い、
請求項3に記載の車載システム。
【請求項5】
前記対象車載装置と同一のバスに接続された車載装置の通信アクセス性は、前記対象車載装置とは異なるバスに接続された車載装置の通信アクセス性より高い、
請求項3に記載の車載システム。
【請求項6】
前記車載装置が有する記憶部における論理的構成単位の数は、前記車載装置が有する不揮発性メモリがシングルバンクである場合と、ダブルバンクである場合とを含む、
請求項3に記載の車載システム。
【請求項7】
前記更新制御装置は、
前記選定条件に基づいて、前記複数の非対象車載装置から前記選定車載装置を選定する選定部と、
前記選定部によって選定された前記選定車載装置を、前記外部装置へ通知する通知部と、
を含む、
請求項3から請求項6のいずれか1項に記載の車載システム。
【請求項8】
前記選定部は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数のうちの少なくとも1つの項目について前記複数の非対象車載装置毎に点数を付け、前記点数に基づいて前記複数の非対象車載装置から前記選定車載装置を選定する、
請求項7に記載の車載システム。
【請求項9】
前記選定部は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数の複数の項目毎に重みを設定し、前記点数を前記重みに乗じた結果に基づいて前記複数の非対象車載装置から前記選定車載装置を選定する、
請求項8に記載の車載システム。
【請求項10】
前記選定条件は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数の中から選択された複数の項目に関する複数の条件を含み、
前記選定部は、前記複数の条件について順番に、前記複数の非対象車載装置の中から前記条件に適合する車載装置を決定することにより、前記選定車載装置を選定する、
請求項7に記載の車載システム。
【請求項11】
前記第1受信部は、前記第1部分データと、前記第1部分データを検証するための第1検証データとを含む第1更新データを、前記外部装置から受信し、
前記更新制御装置は、前記第1更新データに含まれる前記第1部分データを、前記第1更新データに含まれる前記第1検証データを用いて検証する第1検証部を含み、
前記第1送信部は、前記第1検証部による前記第1部分データの検証が成功した場合に、前記第1部分データを前記対象車載装置へ送信し、
前記第2受信部は、前記第2部分データと、前記第2部分データを検証するための第2検証データとを含む第2更新データを、前記外部装置から受信し、
前記選定車載装置は、前記第2更新データに含まれる前記第2部分データを、前記第2更新データに含まれる前記第2検証データを用いて検証する第2検証部を含み、
前記第2送信部は、前記第2検証部による前記第2部分データの検証が成功した場合に、前記第2部分データを前記対象車載装置へ送信する、
請求項1に記載の車載システム。
【請求項12】
前記更新データは、更新後のプログラムである更新プログラムと、前記更新プログラムの検証に用いられるプログラム検証データとを含み、
前記プログラム検証データは、前記第1部分データ及び前記第2部分データのいずれか1つに含まれる、
請求項1に記載の車載システム。
【請求項13】
プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置であって、
前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する受信部と、
前記受信部によって受信された前記第1部分データを記憶する記憶部と、
前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記記憶部に記憶された前記第1部分データを前記対象車載装置へ送信する送信部と、
を備え、
前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置である、
更新制御装置。
【請求項14】
プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置によるプログラム更新制御方法であって、
前記更新制御装置が、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信するステップと、
前記更新制御装置が、受信された前記第1部分データを記憶するステップと、
前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記更新制御装置が、記憶された前記第1部分データを前記対象車載装置へ送信するステップと、
を含み、
前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置である、
プログラム更新制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載システム、更新制御装置、及びプログラム更新制御方法に関する。
【背景技術】
【0002】
車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載機器を制御するための車載ECU(Electronic Control Unit)が搭載されている。特許文献1には、車載ECUのプログラムを更新するにあたり、外部サーバからダウンロードした更新プログラムを記憶部に一旦記憶(キャッシュ)し、更新対象の車載ECUに更新プログラムを送信する車載更新装置が開示されている。特許文献1に開示された車載更新装置は、外部サーバから更新プログラムをダウンロードする前に、記憶部に記憶されていた退避データを外部サーバ又は更新対象ではない車載ECUに送信し、更新プログラムの記憶領域を確保する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-015618号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、退避データが車載更新装置の動作に不可欠なデータである場合のように、退避データを送信することによって更新プログラムの記憶領域を確保することが困難なこともある。
【課題を解決するための手段】
【0005】
本開示の一態様に係る車載システムは、プログラムの更新対象である車載装置である対象車載装置と、プログラムの更新対象ではない車載装置である複数の非対象車載装置と、前記対象車載装置における前記プログラムの更新を制御する更新制御装置と、を備え、前記更新制御装置は、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する第1受信部と、前記第1受信部によって受信された前記第1部分データを記憶する第1記憶部と、前記第1記憶部に記憶された前記第1部分データを、前記対象車載装置へ送信する第1送信部と、を含み、前記複数の非対象車載装置から選定された選定車載装置は、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データを、前記外部装置から受信する第2受信部と、前記第2受信部によって受信された前記第2部分データを記憶する第2記憶部と、前記第2記憶部に記憶された前記第2部分データを、前記対象車載装置へ送信する第2送信部と、を含み、前記対象車載装置は、前記更新制御装置から前記第1部分データを受信し、前記選定車載装置から前記第2部分データを受信する第3受信部と、前記第3受信部によって受信された前記第1部分データ及び前記第2部分データを結合し、前記更新データを生成する生成部と、前記生成部によって生成された前記更新データを用いて、前記プログラムを更新する更新部と、を含み、前記選定車載装置は、前記複数の車載装置それぞれに関する選定条件に基づいて、前記複数の非対象車載装置から選定される。
【0006】
本開示の一態様に係る更新制御装置は、プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置であって、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する受信部と、前記受信部によって受信された前記第1部分データを記憶する記憶部と、前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記記憶部に記憶された前記第1部分データを前記対象車載装置へ送信する送信部と、を備え、前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置であり、前記複数の車載装置それぞれに関する選定条件に基づいて、前記複数の非対象車載装置から選定される。
【0007】
本開示の一の態様に係るプログラム更新制御方法は、プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置によるプログラム更新制御方法であって、前記更新制御装置が、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信するステップと、前記更新制御装置が、受信された前記第1部分データを記憶するステップと、前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記更新制御装置が、記憶された前記第1部分データを前記対象車載装置へ送信するステップと、を含み、前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置であり、前記複数の車載装置それぞれに関する選定条件に基づいて、前記複数の非対象車載装置から選定される。
【0008】
本開示は、上記のような特徴的な構成を備える更新制御装置、及び前記更新制御装置を含む車載システムとして実現することができるだけでなく、更新制御装置における特徴的な処理をステップとするプログラム更新制御方法として実現したり、更新制御装置に上記の特徴的な処理を実行させるためのプログラムとして実現したり、更新制御装置の一部又は全部を半導体集積回路として実現したりすることができる。
【発明の効果】
【0009】
本開示によれば、更新制御装置の記憶部の空き容量が不足していても、更新制御装置の記憶部のデータを退避させることなく、更新データをダウンロードすることができる。
【図面の簡単な説明】
【0010】
図1】実施形態に係るプログラム更新システムの一例を説明するための模式図である。
図2】実施形態に係る車載システムの構成の一例を示すブロック図である。
図3】実施形態に係るOTAマスタの構成の一例を示すブロック図である。
図4】実施形態に係るECUの構成の一例を示すブロック図である。
図5】実施形態に係る車載システムの機能の一例を示す機能ブロック図である。
図6】実施形態に係る選定条件における各項目の重み及び点数の一例を説明するための図である。
図7】更新データの構成の一例を説明するための図である。
図8】更新データの分割の一例を説明する図である。
図9A】第1更新データの構成の一例を示す図である。
図9B】第2更新データの構成の一例を示す図である。
図10】メモリ空き容量確認処理の一例を説明するためのシーケンス図である。
図11】分割ダウンロード処理の一例を説明するためのシーケンス図である。
図12】選定処理の一例を示すフローチャートである。
図13】プログラム更新処理の一例を説明するためのシーケンス図である。
図14A】変形例に係る選定処理の一例の一部分を示すフローチャートである。
図14B】変形例に係る選定処理の一例の他の部分を示すフローチャートである。
【発明を実施するための形態】
【0011】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0012】
(1) 本実施形態に係る車載システムは、プログラムの更新対象である車載装置である対象車載装置と、プログラムの更新対象ではない車載装置である複数の非対象車載装置と、前記対象車載装置における前記プログラムの更新を制御する更新制御装置と、を備え、前記更新制御装置は、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する第1受信部と、前記第1受信部によって受信された前記第1部分データを記憶する第1記憶部と、前記第1記憶部に記憶された前記第1部分データを、前記対象車載装置へ送信する第1送信部と、を含み、前記複数の非対象車載装置から選定された選定車載装置は、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データを、前記外部装置から受信する第2受信部と、前記第2受信部によって受信された前記第2部分データを記憶する第2記憶部と、前記第2記憶部に記憶された前記第2部分データを、前記対象車載装置へ送信する第2送信部と、を含み、前記対象車載装置は、前記更新制御装置から前記第1部分データを受信し、前記選定車載装置から前記第2部分データを受信する第3受信部と、前記第3受信部によって受信された前記第1部分データ及び前記第2部分データを結合し、前記更新データを生成する生成部と、前記生成部によって生成された前記更新データを用いて、前記プログラムを更新する更新部と、を含む。これにより、更新データの一部を更新制御装置が記憶し、更新データの他の一部を選定車載装置が記憶するため、更新制御装置の記憶部の空き容量が不足していても、更新制御装置の記憶部のデータを退避させることなく、更新データをダウンロードすることができる。
【0013】
(2) 上記(1)において、前記選定車載装置は、前記複数の車載装置それぞれに関する選定条件に基づいて、前記複数の非対象車載装置から選定されてもよい。これにより、選定条件にしたがって、複数の非対象車載装置から選定車載装置を選定することができる。
【0014】
(3) 上記(2)において、前記選定条件は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数のうちの少なくとも1つに関する条件であってもよい。これにより、上記のような条件によって、適切に選定車載装置を選定することができる。
【0015】
(4) 上記(3)において、前記車載システムは、前記外部装置と通信可能な外部通信装置を備え、前記外部通信装置と同一のバスに接続された車載装置の前記セキュリティ強度は、前記外部通信装置とは異なるバスに接続された車載装置の前記セキュリティ強度より低くてもよい。これにより、車載システムにおいて車載装置が接続されたバスに応じて、適切に選定車載装置を選定することができる。
【0016】
(5) 上記(3)または(4)において、前記対象車載装置と同一のバスに接続された車載装置の通信アクセス性は、前記対象車載装置とは異なるバスに接続された車載装置の通信アクセス性より高くてもよい。これにより、車載システムにおいて車載装置が接続されたバスに応じて、適切に選定車載装置を選定することができる。
【0017】
(6) 上記(3)から(5)のいずれか1つにおいて、前記車載装置が有する記憶部における論理的構成単位の数は、前記車載装置が有する不揮発性メモリがシングルバンクである場合と、ダブルバンクである場合とを含んでもよい。これにより、車載装置が有する記憶部がシングルバンクメモリであるかダブルバンクメモリであるかに応じて、適切に選定車載装置を選定することができる。
【0018】
(7) 上記(3)から(6)のいずれか1つにおいて、前記更新制御装置は、前記選定条件に基づいて、前記複数の非対象車載装置から前記選定車載装置を選定する選定部と、前記選定部によって選定された前記選定車載装置を、前記外部装置へ通知する通知部と、を含んでもよい。これにより、車両に搭載された更新制御装置が選定車載装置を選定することができる。
【0019】
(8) 上記(7)において、前記選定部は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数のうちの少なくとも1つの項目について前記複数の非対象車載装置毎に点数を付け、前記点数に基づいて前記複数の非対象車載装置から前記選定車載装置を選定してもよい。これにより、上記の項目について非対象車載装置を定量的に評価し、評価結果に応じて適切に選定車載装置を選定することができる。
【0020】
(9) 上記(8)において、前記選定部は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数の複数の項目毎に重みを設定し、前記点数を前記重みに乗じた結果に基づいて前記複数の非対象車載装置から前記選定車載装置を選定してもよい。これにより、上記の項目の重要度に応じて非対象車載装置を定量的に評価し、評価結果に応じて適切に選定車載装置を選定することができる。
【0021】
(10) 上記(7)において、前記選定条件は、前記車両が運転状態にある場合における前記車載装置の処理負荷、前記車両に乗員が搭乗している場合における前記車載装置の処理負荷、前記車載装置のセキュリティ強度、前記車載装置の通信アクセス性、前記車載装置に設けられた記憶部の空き容量、前記記憶部の書き込み及び読出し速度、並びに前記車載装置が有する記憶部における論理的構成単位の数の中から選択された複数の項目に関する複数の条件を含み、前記選定部は、前記複数の条件について順番に、前記複数の非対象車載装置の中から前記条件に適合する車載装置を決定することにより、前記選定車載装置を選定してもよい。これにより、複数の条件に適合する車載装置を順次決定することで、選定車載装置の候補となる車載装置を絞っていくことができる。
【0022】
(11) 上記(1)から(10)のいずれか1つにおいて、前記第1受信部は、前記第1部分データと、前記第1部分データを検証するための第1検証データとを含む第1更新データを、前記外部装置から受信し、前記更新制御装置は、前記第1更新データに含まれる前記第1部分データを、前記第1更新データに含まれる前記第1検証データを用いて検証する第1検証部を含み、前記第1送信部は、前記第1検証部による前記第1部分データの検証が成功した場合に、前記第1部分データを前記対象車載装置へ送信し、前記第2受信部は、前記第2部分データと、前記第2部分データを検証するための第2検証データとを含む第2更新データを、前記外部装置から受信し、前記選定車載装置は、前記第2更新データに含まれる前記第2部分データを、前記第2更新データに含まれる前記第2検証データを用いて検証する第2検証部を含み、前記第2送信部は、前記第2検証部による前記第2部分データの検証が成功した場合に、前記第2部分データを前記対象車載装置へ送信してもよい。これにより、第1部分データ及び第2部分データを個別に検証することができる。
【0023】
(12) 上記(1)から(11)のいずれか1つにおいて、前記更新データは、更新後のプログラムである更新プログラムと、前記更新プログラムの検証に用いられるプログラム検証データとを含み、前記プログラム検証データは、前記第1部分データ及び前記第2部分データのいずれか1つに含まれてもよい。これにより、第1部分データ及び第2部分データを結合した更新データに含まれる更新プログラムを検証することができる。
【0024】
(13) 本実施形態に係る更新制御装置は、プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置であって、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する受信部と、前記受信部によって受信された前記第1部分データを記憶する記憶部と、前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記記憶部に記憶された前記第1部分データを前記対象車載装置へ送信する送信部と、を備え、前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置である。これにより、更新データの一部を更新制御装置が記憶し、更新データの他の一部を選定車載装置が記憶するため、更新制御装置の記憶部の空き容量が不足していても、更新制御装置の記憶部のデータを退避させることなく、更新データをダウンロードすることができる。
【0025】
(14) 本実施形態に係るプログラム更新制御方法は、プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置によるプログラム更新制御方法であって、前記更新制御装置が、前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信するステップと、前記更新制御装置が、受信された前記第1部分データを記憶するステップと、前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記更新制御装置が、記憶された前記第1部分データを前記対象車載装置へ送信するステップと、を含み、前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置である。これにより、更新データの一部を更新制御装置が記憶し、更新データの他の一部を選定車載装置が記憶するため、更新制御装置の記憶部の空き容量が不足していても、更新制御装置の記憶部のデータを退避させることなく、更新データをダウンロードすることができる。
【0026】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0027】
[1.プログラム更新システム]
図1は、本実施形態に係るプログラム更新システムの一例を説明するための模式図である。
【0028】
プログラム更新システムは、車両10に搭載された車載装置の制御プログラムを更新するためのシステムである。プログラム更新システムは、車両10と、OTA(Over The Air)サーバ50とを含む。車両10は、後述するような車載システムを搭載している。
【0029】
車両10は、無線通信によって車両の外部の装置と通信することが可能である。車両10は、例えば第5世代移動通信システム(5G)、又は第4世代移動通信システム(4G)に準拠した無線通信端末を備え、基地局20との間で無線通信することができる。基地局20は、インターネット30に接続されている。OTAサーバ50もインターネット30に接続されている。このような構成により、車両10とOTAサーバ50は相互に通信することができる。
【0030】
OTAサーバ50は、車両10にプログラム更新のためのデータを提供することができる。OTAサーバ50は、「外部装置」の一例である。
【0031】
[2.車載システム]
図2は、本実施形態に係る車載システムの構成の一例を示すブロック図である。
【0032】
本実施系に係る車載システム100は、統合ECU(Electronic Control Unit)200と、個別ECU300A,300B,300C,300D,300Eとを含む。車載システム100は、統合ECU200、個別ECU300300A,300B,300C,300D,300E、及びそれらを繋ぐ通信ケーブル(通信バス)によって構成される。
【0033】
統合ECU200は、複数の個別ECU間の通信を中継するゲートウェイである。統合ECU200は、個別ECU300A,300B,300C,300D,300Eの制御プログラムの更新を制御するOTAマスタである。統合ECU200は、「更新制御装置」の一例である。以下、統合ECU200を、「OTAマスタ200」ともいう。
【0034】
複数の個別ECU300A,300B,300C,300D,300Eは、車両10の各部に配置される。個別ECU300A,300B,300C,300D,300Eは、車両10の各部のハードウェアを個別に制御したり、車両10の各部のハードウェアの状態を監視したりする。例えば、個別ECU300A,300B,300C,300D,300Eは、パワートレーン系、ボディ系、情報及びエンタテイメント系のECUである。個別ECU300A,300B,300C,300D,300Eは、「車載装置」の一例である。なお、以下の説明では、個別ECUを「ECU」ともいい、個別ECU300A,300B,300C,300Dを総称して「ECU300」ともいう。
【0035】
OTAマスタ200は、ECU300A,300B,300C,300D,300EのそれぞれとCAN(Controller Area Network)バスのような車載バス400A,400B,400Cを介して接続されている。具体的には、バス400Aには、ECU300A,300Bが接続されている。バス400Bには、ECU300C,300Dが接続されている。バス400Cには、ECU300Eが接続されている。OTAマスタ200は、ECU300A,300B,300C,300D,300Eのそれぞれと相互に通信することができる。
【0036】
OTAマスタ200は、バス400Cを介して外部通信装置500に接続されている。外部通信装置500は、例えば5G又は4Gに準拠した無線通信端末であり、例えば、TSU(Telematics Control Unit)である。外部通信装置500は、OTAサーバ50と通信することができる。外部通信装置500は、OTAマスタ200とOTAサーバ50との間の通信を中継する。
【0037】
外部通信装置500に接続されたバス400Cは、車内における通信だけでなく、車外の装置との通信にも用いられる車外通信バスである。バス400A,400Bは、車内通信にのみ用いられる車内通信バスである。
【0038】
[3.OTAマスタの構成]
図3は、本実施形態に係るOTAマスタの構成の一例を示すブロック図である。OTAマスタ200は、プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信インタフェース(I/F)204とを含む。
【0039】
揮発性メモリ203は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の半導体メモリである。不揮発性メモリ202は、例えばフラッシュメモリ、ハードディスク等である。不揮発性メモリ202は、データの読み出し及び書き込みが可能である。不揮発性メモリ202には、コンピュータプログラムである更新制御プログラム205及びに更新制御プログラム205の実行に使用されるデータが格納される。OTAマスタ200は、OTAサーバ50からダウンロードした第1更新データを不揮発性メモリ202に格納することができる。OTAマスタ200は、コンピュータを備えて構成され、OTAマスタ200の各機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムである更新制御プログラム205が実行されることで発揮される。
【0040】
更新制御プログラム205は、ECU300の制御プログラムの更新を制御するためのプログラムである。さらに具体的には、更新制御プログラム205は、ECU300A,300B,300C,300D,300Eの中から、制御プログラムの更新データの一部(第2部分データ)の格納先を選定し、OTAサーバ50に、選定されたECUである選定ECUを通知するためのプログラムである。更新制御プログラム205は、更新データの第1部分データを含む第1更新データをOTAサーバ50からダウンロードし、ダウンロードした第1更新データに含まれる第1部分データを不揮発性メモリ202に格納し、更新対象のECUである対象ECUへ第1部分データを送信するためのプログラムである。
【0041】
不揮発性メモリ202には、鍵データ206が格納されている。鍵データ206は、OTAサーバ50からダウンロードした更新データ(第1更新データ)の検証に用いられる。
【0042】
プロセッサ201は、例えばCPU(Central Processing Unit)である。ただし、プロセッサ201は、CPUに限られない。プロセッサ201は、GPU(Graphics Processing Unit)であってもよい。プロセッサ201は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ201は、例えば、ASIC(Application Specific Integrated Circuit)を一部に含んでもよいし、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを一部に含んでもよい。
【0043】
通信I/F204は、例えば、車載ネットワーク用の通信プロトコルであるCAN(Controller Area Network)に準拠した通信インタフェースである。通信I/F204は、CAN FD(CAN with Flexible Data rate)、イーサネット(Ethernetは登録商標)、LIN(Local Interconnect Network)等のプロトコルに準拠した通信インタフェースであってもよい。通信I/F204は、複数の通信ポートを含み、バス400A,400B,400Cのそれぞれに接続されている。通信I/F204は、バス400A,400B,400Cを介してECU300A,300B,300C,300D,300Eのそれぞれに接続されている。OTAマスタ200は、通信I/F204によって、ECU300A,300B,300C,300D,300Eと通信することができる。さらに、OTAマスタ200は、通信I/F204によって、外部通信装置500を介してOTAサーバ50と通信することができる。
【0044】
[4.OTAサーバ]
OTAサーバ50は、プロセッサ、記憶装置(不揮発性メモリ及び揮発性メモリ)、通信I/F等によって構成されている。OTAサーバ50は、ECU300へ更新後のプログラム(以下、「更新プログラム」)という)を提供する。
【0045】
OTAサーバ50は、更新プログラムと、更新プログラムの検証に用いられる検証データ(以下、「PG検証データ」ともいう)とを含むパッケージである更新データを、OTAマスタ200へダウンロードすることができる。OTAサーバ50は、OTAマスタ200から更新データの分割の要求を受け付けた場合に、更新データを分割して第1部分データ及び第2部分データを生成し、第1部分データを含む第1更新データと、第2部分データを含む第2更新データとを個別にダウンロードすることができる。
【0046】
[5.ECUの構成]
図4は、本実施形態に係るECUの構成の一例を示すブロック図である。ECU300は、プロセッサ301と、不揮発性メモリ302と、揮発性メモリ303と、通信I/F304と、入出力I/F(I/O)305とを備える。
【0047】
揮発性メモリ303は、例えばSRAM、DRAM等の半導体メモリである。不揮発性メモリ302は、例えばフラッシュメモリ、ハードディスク、ROM等である。不揮発性メモリ302は、一又は複数のフラッシュメモリチップによって構成されるバンクを単位としてメモリコントローラによって管理される。すなわち、バンクは不揮発性メモリ302の論理的構成単位である。バンクは、不揮発性メモリ302を構成するメモリモジュールの面毎に定義される。メモリモジュールの一面にのみフラッシュメモリチップが搭載されている不揮発性メモリ302はシングルバンクメモリであり、メモリモジュールの両面にフラッシュメモリチップが搭載されている不揮発性メモリ302はダブルバンクメモリである。不揮発性メモリ302には、コンピュータプログラムである制御プログラム306及び制御プログラム306の実行に使用されるデータが格納される。個別ECU300は、コンピュータを備えて構成され、個別ECU300の各機能は、前記コンピュータの記憶装置に記憶されたコンピュータプログラムである制御プログラム306が実行されることで発揮される。制御プログラム306は、例えば、車両10の一部のハードウェアを制御するためのプログラムである。
【0048】
不揮発性メモリ302には、更新プログラム308及び更新プログラム308の実行に使用されるデータが格納される。更新プログラム308は、OTAマスタ200から更新データを受信し、受信した更新データを用いて制御プログラム306を更新するためのプログラムである。不揮発性メモリ302には、さらに鍵データ307が格納されている。鍵データ307は、更新プログラムに含まれるPG検証データを復号するために用いられる。
【0049】
不揮発性メモリ302には、さらに、更新補助プログラム309及び更新補助プログラム309の実行に使用されるデータが格納される。更新補助プログラム309は、OTAサーバ50から送信された第2更新データをOTAマスタ200を介して受信し、受信した第2更新データに含まれる第2部分データを不揮発性メモリ302に格納し、対象ECUへ第2部分データを送信するためのプログラムである。
【0050】
プロセッサ301は、例えばCPUである。ただし、プロセッサ301は、CPUに限られない。プロセッサ301は、GPUであってもよい。プロセッサ301は、例えば、ASICを一部に含んでもよいし、FPGA等のプログラマブルロジックデバイスを一部に含んでもよい。
【0051】
通信I/F304は、例えば、CANに準拠した通信インタフェースである。通信I/F304は、CAN FD、イーサネット、LIN等のプロトコルに準拠した通信インタフェースであってもよい。通信I/F304は、少なくとも1つの通信ポートを含み、バス400A,400B,400Cのいずれか1つに接続されている。通信I/F304は、バス400A,400B,400Cのいずれか1つを介してOTAマスタ200に接続されている。ECU300は、通信I/F304によって、OTAマスタ200と通信することができる。
【0052】
I/O305は、例えば、図示しないセンサ又はアクチュエータに接続されている。I/O305は、センサから出力されたセンサデータを受け付けたり、アクチュエータに制御信号を出力したりすることができる。
【0053】
[5.車載システムの機能]
図5は、本実施形態に係る車載システムの機能の一例を示す機能ブロック図である。以下の説明では、ECU300Aの制御プログラム306が更新される、すなわち、ECU300Aが対象ECUであり、ECU300Bが更新データの一部の格納先として選定される、すなわち、ECU300Bが選定ECUである例を説明する。対象ECUは、「対象車載装置」の一例であり、選定ECUは、「選定車載装置」の一例である。
【0054】
OTAマスタ200のプロセッサ201が更新制御プログラム205を実行することにより、選定部211と、通知部212と、第1受信部213と、第1記憶部214と、第1検証部215と、第1送信部216との各機能が実現される。ECU300A,300B,300C,300D,300Eのうちの選定ECU310(本例ではECU300B)のプロセッサ301が更新補助プログラム309を実行することにより、第2受信部311と、第2記憶部312と、第2検証部313と、第2送信部314との各機能が実現される。さらに、ECU300A,300B,300C,300D,300Eのうちの対象ECU320(本例ではECU300A)のプロセッサ301が更新プログラム308を実行することにより、第3受信部321と、第3記憶部322と、生成部323と、第3検証部324と、更新部325との各機能が実現される。
【0055】
選定部211は、選定条件に基づいて、対象ECU320であるECU300Aを除くECU300B,300C,300D,300E(非対象車載装置)の中から選定ECU310を選定する。選定条件は、複数のECU300B,300C,300D,300Eそれぞれに関する条件である。具体的な一例では、選定条件は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数のうちの少なくとも1つに関する条件である。
【0056】
例えば、ECU300のセキュリティ強度は、ECU300に接続されたバス400A,400B,400Cによって定まる。具体的には、車外通信バス400Cに接続されたECU300Eのセキュリティ強度は、車内通信バス400A,400Bに接続されたECU300A,300B,300C,300Dよりも低い。
【0057】
例えば、ECU300の通信アクセス性は、ECU300に接続されたバス400A,400B,400Cによって定まる。具体的には、対象ECU320と同一のバス400Aに接続されたECU300Bの通信アクセス性は、対象ECU320とは異なるバス400B,400Cに接続されたECU300C,300D,300Eの通信アクセス性よりも高い。
【0058】
例えば、ECU300が有する不揮発性メモリ302における論理的構成単位の数に応じて、シングルバンクの記憶部を有するECUとダブルバンクの記憶部を有するECUとに分かれる。
【0059】
例えば、選定部211は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数のうちの少なくとも1つの項目についてECU300B,300C,300D,300E毎に点数を付け、点数に基づいてECU300B,300C,300D,300Eから選定ECU310を選定する。さらに具体的な一例では、選定部211は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数のうちの複数の項目毎に重みを設定し、点数を重みに乗じた結果に基づいてECU300B,300C,300D,300Eから選定ECU310を選定する。
【0060】
図6は、本実施形態に係る選定条件における各項目の重み及び点数の一例を説明するための図である。図6の例では、車両10が運転状態にある場合におけるECU300の処理負荷(図6において項目「運転状態」)xについての重みが15%である。車両10が運転中(以下、「運転状態」という)において処理負荷が高いECU300の項目xの点数(値)は0であり、運転状態において処理負荷が低いECU300の項目xの点数は1である。すなわち、ECU300B,300Cは運転状態における処理負荷が高いため、ECU300B,300Cの項目xの点数は0である。ECU300D,300Eは運転状態における処理負荷が低いため、ECU300D,300Eの項目xの点数は1である。
【0061】
車両10に乗員が搭乗している場合におけるECU300の処理負荷(図6において項目「乗車状態」)xについての重みは15%である。車両10に乗員が搭乗している場合(以下、「乗車状態」という)において処理負荷が高いECU300の項目xの点数は0であり、乗車状態において処理負荷が低いECU300の項目xの点数は1である。すなわち、ECU300C,300Eは乗車状態における処理負荷が高いため、ECU300C,300Eの項目xの点数は0である。ECU300B,300Dは乗車状態における処理負荷が低いため、ECU300B,300Dの項目xの点数は1である。
【0062】
ECU300のセキュリティ強度xについての重みは20%である。セキュリティ強度が低いECU300、すなわち、車外通信バス400Cに接続されたECU300Eの項目xの点数は0であり、セキュリティ強度が高いECU300、すなわち、車内通信バス400A,400Bに接続されたECU300B,300C,300Dの項目xの点数は1である。
【0063】
ECU300の通信アクセス性xについての重みは10%である。通信アクセス性が低いECU300、すなわち、対象ECU320とは異なるバス400B,400Cに接続されたECU300C,300D,300Eの項目xの点数は0であり、通信アクセス性が高いECU300、すなわち、対象ECU320と同一のバス400Aに接続されたECU300Bの項目xの点数は1である。
【0064】
ECU300に設けられた不揮発性メモリ302の空き容量(図6において項目「メモリ空き容量」)xについての重みは10%である。項目xについての点数は、不揮発性メモリ302の空き容量に応じた実数値として与えられる。例えば、点数は、不揮発性メモリ302の空き容量(MB)×0.01で算出される。ただし、上記の数式による算出結果が1以上である場合、点数は1とされる。図6の例では、ECU300Bのメモリ空き容量は10MBであるため、ECU300Bの項目xの点数は0.1である。ECU300Cのメモリ空き容量は2MBであるため、ECU300Cの項目xの点数は0.02である。ECU300Dのメモリ空き容量は50MBであるため、ECU300Dの項目xの点数は0.5である。ECU300Eのメモリ空き容量は150MBであるため、ECU300Bの項目xの点数は1である。
【0065】
ECU300に設けられた不揮発性メモリ302の書き込み及び読出し速度(図6において項目「メモリ書込み・読出し速度」)xについての重みは10%である。項目xについての点数は、不揮発性メモリ302の書き込み及び読み出し速度に応じた実数値として与えられる。例えば、点数は、書き込み速度(kbps)×0.001+読み出し速度(kbps)×0.001で算出される。ただし、上記の数式による算出結果が1以上である場合、点数は1とされる。図6の例では、ECU300Bのメモリ書き込み速度は500kbpsであり、読み出し速度は500kbpsであるため、ECU300Bの項目xの点数は1である。ECU300Cのメモリ書き込み速度は100kbpsであり、読み出し速度は200kbpsであるため、ECU300Cの項目xの点数は0.3である。ECU300Dのメモリ書き込み速度は200kbpsであり、読み出し速度は500kbpsであるため、ECU300Dの項目xの点数は0.7である。ECU300Eのメモリ書き込み速度は1Mbpsであり、読み出し速度は1Mbpsであるため、ECU300Eの項目xの点数は1である。
【0066】
ECU300の不揮発性メモリ302における論理的構成単位(バンク)の数(図6において項目「メモリバンク」)xについての重みは20%である。ダブルバンクの不揮発性メモリ302を有するECU300B,300Eの項目xの点数は1である。シングルバンクの不揮発性メモリ302を有するECU300C,300Dの項目xの点数は0である。
【0067】
図5に戻り、選定部211は、E=15x+15x+20x+10x+10x+10x+20xによって各ECU300の評価値Eを算出する。この評価値Eの算定式は、選定条件を表している。選定部211は、更新データの一部の格納先の候補であるECU300(対象ECU320は候補から除外される)の中で評価値Eが最大のECU300を、更新データの一部の格納先(選定ECU310)に選定する。なお、この例では、選定条件を、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数の各項目についての条件としたが、これに限定されない。車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数から選択される1又は複数の項目についての条件であってもよい。
【0068】
通知部212は、選定部211によって選定された選定ECU310を、OTAサーバ50へ通知する。例えば、通知部212は、選定ECU310の識別情報を、OTAサーバ50へ通知することができる。
【0069】
OTAサーバ50は、更新データを第1部分データと第2部分データに分割する。OTAサーバ50は、第1部分データを含む第1更新データを送信し、第2部分データを含む第2更新データを送信する。
【0070】
図7は、更新データの構成の一例を説明するための図である。更新データ610は、対象ECU320による制御プログラム306の更新に用いられるデータである。更新データ610は、更新プログラム601(実行可能形式の更新プログラムのバイナリデータ)と、プログラム検証データ(以下、「PG検証データ」という)602とを含む。PG検証データ602は、対象ECU320による更新プログラム601の検証に用いられるデータである。OTAサーバ50は、更新プログラム601のハッシュ値を鍵データで暗号化し、PG検証データ602を生成する。OTAサーバ50は、更新プログラム601とPG検証データ602とを結合し、更新データ610を生成する。
【0071】
図7に示す更新パッケージ600は、更新データ610と、OTAマスタ検証データ603とを含む。OTAマスタ検証データ603は、OTAマスタ200による更新データ610の検証に用いられるデータである。OTAサーバ50は、更新データ610のハッシュ値を鍵データで暗号化し、OTAマスタ検証データ603を生成する。OTAサーバ50は、更新データ610とOTAマスタ検証データ603とを結合し、更新パッケージ600を生成する。
【0072】
OTAマスタ200の不揮発性メモリ202に、更新パッケージ600を記憶することが可能なサイズの空き領域が存在する場合、OTAサーバ50は更新パッケージ600をOTAマスタ200にダウンロードする。OTAマスタ200は、ダウンロードした更新パッケージ600を不揮発性メモリ202に記憶する。OTAマスタ200は、更新パッケージ600に含まれるOTAマスタ検証データ603を、不揮発性メモリ202に記憶された鍵データ206によって復号する。OTAマスタ200は、更新パッケージ600に含まれる更新データ610のハッシュ値を算出し、算出されたハッシュ値を、OTAマスタ検証データ603を複合することによって得られたハッシュ値と比較することで、更新データ610を検証する。
【0073】
2つのハッシュ値が一致した場合、OTAマスタ200は、更新データ610を対象ECU320へ送信する。対象ECU320は、受信した更新データ610を不揮発性メモリ302に記憶する。対象ECU320は、更新データ610に含まれるPG検証データ602を、不揮発性メモリ302に記憶された鍵データ307によって復号する。対象ECU320は、更新データ610に含まれる更新プログラム601のハッシュ値を算出し、算出されたハッシュ値を、PG検証データ602を複合することによって得られたハッシュ値と比較することで、更新プログラム601を検証する。更新プログラム601の検証に成功した場合、すなわち、2つのハッシュ値が一致した場合、対象ECU320は、更新プログラム601をインストールし、制御プログラム306を更新する。
【0074】
OTAマスタ200の不揮発性メモリ202に、更新パッケージ600を記憶することが可能なサイズの空き領域が存在しない場合、選定部211が選定ECU310を選定する。OTAマスタ200は、更新データ610の分割をOTAサーバ50に要求する。この要求には、選定ECU310の情報が含まれる。つまり、OTAマスタ200は、更新データ610の分割をOTAサーバ50に要求することで、選定ECU310をOTAサーバ50に通知する。
【0075】
OTAサーバ50は、更新データ610の分割要求を受信すると、更新データ610を分割する。図8は、更新データ610の分割の一例を説明する図である。本実施形態では、OTAサーバ50は、更新データ610を第1部分データ611と第2部分データ612に二分割する。ただし、更新データ610は3以上の部分データに分割されてもよい。
【0076】
更新データ610は、更新プログラム601とPG検証データ602とによって構成されている。PG検証データ602は、第1部分データ611及び第2部分データ612のいずれか1つに含まれる。ただし、PG検証データ602の一部が第1部分データ611に含まれ、PG検証データ602の残りの部分が第2部分データ612に含まれてもよい。
【0077】
図9Aは、第1更新データの構成の一例を示す図である。図9Aに示す第1更新データ620は、第1部分データ611と、OTAマスタ検証データ621とを含む。OTAマスタ検証データ621は、OTAマスタ200による第1部分データ611の検証に用いられるデータであり、「第1検証データ」の一例である。OTAサーバ50は、第1部分データ611のハッシュ値を鍵データで暗号化し、OTAマスタ検証データ621を生成する。OTAサーバ50は、第1部分データ611とOTAマスタ検証データ621とを結合し、第1更新データ620を生成する。
【0078】
図9Bは、第2更新データの構成の一例を示す図である。図9Bに示す第2更新データ630は、第2部分データ612と、ECU検証データ631とを含む。ECU検証データ631は、選定ECU310による第2部分データ612の検証に用いられるデータであり、「第2検証データ」の一例である。OTAサーバ50は、第2部分データ612のハッシュ値を鍵データで暗号化し、ECU検証データ631を生成する。OTAサーバ50は、第2部分データ612とECU検証データ631とを結合し、第2更新データ630を生成する。
【0079】
図5に戻り、OTAサーバ50は、第1更新データ620をOTAマスタ200に送信する。OTAマスタ200の第1受信部213は、OTAサーバ50から送信された第1更新データ620を受信する。第1記憶部214は、第1受信部213によって受信された第1更新データ620を記憶する。
【0080】
第1検証部215は、第1更新データ620に含まれるOTAマスタ検証データ621を、不揮発性メモリ202に記憶された鍵データ206によって復号する。第1検証部215は、第1更新データ620に含まれる第1部分データ611のハッシュ値を算出し、算出されたハッシュ値を、OTAマスタ検証データ621を複合することによって得られたハッシュ値と比較することで、第1部分データ611を検証する。
【0081】
第1部分データ611の検証に成功した場合、すなわち、2つのハッシュ値が一致した場合、第1送信部216は、第1部分データ611を対象ECU320へ送信する。
【0082】
OTAサーバ50は、第2更新データ630をOTAマスタ200に送信する。OTAマスタ200は、受信した第2更新データ630を選定ECU310に送信する。選定ECU310の第2受信部311は、OTAサーバ50から送信された第2更新データ630を受信する。第2記憶部312は、第2受信部311によって受信された第2更新データ630を記憶する。
【0083】
第2検証部313は、第2更新データ630に含まれるECU検証データ631を、不揮発性メモリ302に記憶された鍵データ307によって復号する。第2検証部313は、第2更新データ630に含まれる第2部分データ612のハッシュ値を算出し、算出されたハッシュ値を、ECU検証データ631を複合することによって得られたハッシュ値と比較することで、第2部分データ612を検証する。
【0084】
第2部分データ612の検証に成功した場合、すなわち、2つのハッシュ値が一致した場合、第2送信部314は、第2部分データ612を対象ECU320へ送信する。
【0085】
対象ECU320の第3受信部321は、OTAマスタ200から送信された第1部分データ611を受信する。第3記憶部322は、受信した第1部分データ611を記憶する。第3受信部321は、選定ECU310から送信された第2部分データ612を受信する。第3記憶部322は、受信した第2部分データ612を記憶する。
【0086】
生成部323は、第3受信部によって受信された第1部分データ611及び第2部分データ612を結合し、更新データ610を生成(復元)する。
【0087】
第3検証部324は、更新データ610に含まれるPG検証データ602を、不揮発性メモリ302に記憶された鍵データ307によって復号する。第3検証部324は、更新データ610に含まれる更新プログラム601のハッシュ値を算出し、算出されたハッシュ値を、PG検証データ602を複合することによって得られたハッシュ値と比較することで、更新プログラム601を検証する。
【0088】
更新プログラム601の検証に成功した場合、すなわち、2つのハッシュ値が一致した場合、更新部325は、更新プログラム601をインストールし、制御プログラム306を更新する。
【0089】
[6.プログラム更新システムの動作]
以下、本実施形態に係るプログラム更新システムの動作を説明する。
【0090】
[6-1.メモリ空き容量確認処理]
OTAマスタ200は、更新データの一部の格納先の選定に用いる情報を収集するために、ECU300A,300B,300C,300D,300Eの不揮発性メモリ302の空き容量を確認するメモリ空き容量確認処理を実行する。図10は、メモリ空き容量確認処理の一例を説明するためのシーケンス図である。
【0091】
OTAマスタ200は、不揮発性メモリ302の空き容量の確認要求をECU300A,300B,300C,300D,300Eに送信する(ステップS11~S13)。ECU300A,300B,300C,300D,300Eのそれぞれは、要求を受信すると、不揮発性メモリ302の空き容量を示す情報を取得し、この情報を送信することで、OTAマスタ200に不揮発性メモリの空き容量を通知する(ステップS21~S23)。OTAマスタ200は、ECU300A,300B,300C,300D,300Eのそれぞれから送信された情報を受信し、ECU300A,300B,300C,300D,300Eのそれぞれの不揮発性メモリ302の空き容量を取得する。
【0092】
OTAマスタ200は、上記のような不揮発性メモリ302の空き容量の確認要求を、例えば一定期間毎に送信する。これにより、ECU300A,300B,300C,300D,300Eのそれぞれの不揮発性メモリ302の空き容量が定期的に更新され、OTAマスタ200は、更新データの一部の格納先の選定を行うことが可能となる。
【0093】
[6-2.分割ダウンロード処理]
上述したように、OTAマスタ200の不揮発性メモリ202に、更新パッケージ600を記憶することが可能なサイズの空き領域が存在しない場合、プログラム更新システムは、更新データを分割してダウンロードする分割ダウンロード処理を実行する。図11は、分割ダウンロード処理の一例を説明するためのシーケンス図である。
【0094】
あるECU300向けに新バージョンの制御プログラム306がリリースされると、OTAサーバ50には、当該バージョンの更新プログラム601を含む更新データ610が記憶される。この場合、OTAサーバ50は、制御プログラム306の更新要求をOTAマスタ200へ送信する。OTAマスタ200は、制御プログラム306の更新要求を受信すると、OTAサーバ50へ応答を送信する(ステップS31)。
【0095】
次に、OTAマスタ200は、OTAマスタ200が真正であることを認証するための認証データをOTAサーバ50へ送信し、OTAサーバ50が認証を行う。認証に成功すると、OTAサーバ50は認証成功をOTAマスタ200に通知する(ステップS32)。
【0096】
OTAマスタ200は、更新パッケージ600のサイズ確認要求をOTAサーバ50へ送信する(ステップS33)。OTAサーバ50は、更新パッケージ600のサイズ確認要求を受信すると、更新パッケージ600のサイズをOTAマスタ200に通知する(ステップS34)。
【0097】
OTAマスタ200は、不揮発性メモリ202の空き容量と更新パッケージ600のサイズとを比較し、更新パッケージ600を不揮発性メモリ202に格納可能であるか否か、すなわち、更新パッケージ600のダウンロードが可能か否かを判定する(ステップS35)。更新パッケージ600のダウンロードが可能である場合、上述したように、更新パッケージ600をOTAサーバ50からダウンロードする。なお、図11では、更新パッケージ600のダウンロードが可能な場合の処理は省略し、更新パッケージ600のダウンロードが不可能な場合の処理のみを示している。
【0098】
OTAマスタ200は、更新パッケージ600のダウンロードが不可能であると判定すると、更新データの一部の格納先を選定する選定処理を実行する(ステップS36)。
【0099】
図12は、選定処理の一例を示すフローチャートである。OTAマスタ200のプロセッサ201は、車両10の電源の状態を確認し、稼働中(電力供給中)のECU300を特定する。車両10がイグニッション(IG)オンの状態である場合には、全てのECU300に電力が供給され、全てのECU300が稼働する。車両10がIGオフの状態である場合には、バッテリー電源で駆動されるECU300のみに電力が供給され、これらのECU300が稼働する。プロセッサ201は、対象ECU320を除き、稼働中のECU300を、更新データの一部の格納先の候補に決定する(ステップS101)。
【0100】
次にプロセッサ201は、上述した評価値Eの式により、全ての候補の評価値Eを算出する(ステップS102)。プロセッサ201は、評価値Eが最大の候補を、更新データの一部の格納先(選定ECU310)に選定する(ステップS103)。以上で、選定処理が終了する。
【0101】
図11に戻り、OTAマスタ200は、更新データの分割要求をOTAサーバ50へ送信する(ステップS37)。分割要求には、選定ECU310の識別情報が含まれる。なお、選定ECU310の識別情報ではなく、選定ECU310の不揮発性メモリ302の空き容量をOTAサーバ50に通知してもよい。
【0102】
OTAサーバ50は、要求を受信すると、OTAマスタ200及び選定ECU310に応じたサイズで、更新データ610を分割する(ステップS38)。OTAサーバ50は、OTAマスタ検証データ621を生成し、第1部分データ611とOTAマスタ検証データ621とを結合して、第1更新データ620を作成する。OTAサーバ50は、ECU検証データ631を生成し、第2部分データ612とECU検証データ631とを結合して、第2更新データ630を作成する(ステップS39)。
【0103】
OTAサーバ50は、第1更新データ620をOTAマスタ200へ送信する(ステップS40)。OTAマスタ200は、第1更新データ620を受信すると、第1更新データ620を不揮発性メモリ202に格納する(ステップS41)。OTAマスタ200は、第1更新データ620に含まれる第1部分データ611を、OTAマスタ検証データ621を用いて検証する(ステップS42)。
【0104】
OTAサーバ50は、第2更新データ630をOTAマスタ200へ送信する(ステップS43)。OTAマスタ200は、第2更新データ630を受信すると、受信した第2更新データ630を選定ECU310へ転送する(ステップS44)。選定ECU310は、第2更新データ630を受信すると、第2更新データ630を不揮発性メモリ302に格納する(ステップS45)。選定ECU310は、第2更新データ630に含まれる第2部分データ612を、ECU検証データ631を用いて検証する(ステップS46)。以上で、分割ダウンロード処理が終了する。
【0105】
[6-3.プログラム更新処理]
プログラム更新システムは、分割ダウンロード処理の後、対象ECU320の制御プログラムを更新するプログラム更新処理を実行する。図13は、プログラム更新処理の一例を説明するためのシーケンス図である。
【0106】
OTAマスタ200は、第1部分データ611の検証に成功すると、第1部分データ611を対象ECU320へ送信する(ステップS51)。対象ECU320は、第1部分データ611を受信すると、受信した第1部分データ611を不揮発性メモリ302に格納する(ステップS52)。
【0107】
OTAマスタ200は、第2部分データ612の送信指示を、選定ECU310に送信する(ステップS53)。第2部分データ612の検証に成功した選定ECU310は、第2部分データ612の送信指示を受信すると、第2部分データ612を対象ECU320へ送信する(ステップS54)。対象ECU320は、第2部分データ612を受信すると、受信した第2部分データ612を不揮発性メモリ302に格納する(ステップS55)。
【0108】
対象ECU320は、受信した第1部分データ611と受信した第2部分データ612とを結合し、更新データ610を復元する(ステップS56)。対象ECU320は、更新データ610に含まれる更新プログラム601を、PG検証データ602を用いて検証する(ステップS57)。検証に成功すると、対象ECU320は、更新プログラム601を不揮発性メモリ302にインストールし、制御プログラム306を更新する(ステップS58)。以上で、プログラム更新処理が終了する。
【0109】
[7.変型例]
選定部211は、選定条件に含まれる複数の条件について順番に、ECU300B,300C,300D,300Eの中から条件に適合するECU300を決定することにより、選定ECU310を選定してもよい。
【0110】
図14A及び図14Bは、本変形例に係る選定処理の一例を示すフローチャートである。本変形例では、OTAマスタ200のプロセッサ201は、以下のような選定処理を実行する(ステップS36)。
【0111】
プロセッサ201は、車両10がIGオン状態であるか否かを判定する(ステップS201)。車両10がIGオン状態である場合(ステップS201においてYES)、プロセッサ201は、対象ECU320を除く全てのECU300を更新データ610の一部の格納先の候補に決定する(ステップS202)。車両10がIGオフ状態である場合(ステップS201においてNO)、プロセッサ201は、IG電源から電力供給を受けるECU300以外のECU300(すなわち、バッテリ電源から電力供給を受けるECU300)を更新データ610の一部の格納先の候補に決定する(ステップS203)。ステップS202又はS203の後、プロセッサ201はステップS204へ移る。
【0112】
プロセッサ201は、車両10に乗員が乗車しているか否かを判定する(ステップS204)。車両10に乗員が乗車している場合(ステップS204においてYES)、プロセッサ201は、乗車状態において処理負荷が高いECU300を候補から削除する(ステップS205)。ステップS205の後、プロセッサ201はステップS206へ移る。車両10に乗員が乗車していない場合(ステップS204においてNO)も、プロセッサ201はステップS206へ移る。
【0113】
プロセッサ201は、車両10が運転(走行)中であるか否かを判定する(ステップS206)。車両10が運転中である場合(ステップS206においてYES)、プロセッサ201は、運転状態において処理負荷が高いECU300を候補から削除する(ステップS207)。ステップS207の後、プロセッサ201はステップS208へ移る。車両10が運転中ではない、すなわち停止中の場合(ステップS206においてNO)も、プロセッサ201はステップS208へ移る。
【0114】
プロセッサ201は、対象ECU320のセキュリティ強度が高いか低いかを判定する(ステップS208)。対象ECU320が車内通信バス400A,400Bに接続されていれば、プロセッサ201は、対象ECU320のセキュリティ強度が高いと判定する(ステップS201においてYES)。この場合、プロセッサ201は、車内通信バス400A,400B上のECU300を候補から削除する(ステップS209)。ステップS209の後、プロセッサ201はステップS212に移る。
【0115】
対象ECU320が車外通信バス400Cに接続されていれば、プロセッサ201は、対象ECU320のセキュリティ強度が低いと判定する(ステップS201においてNO)。この場合、プロセッサ201は、対象ECU320と同一のバスに接続されたECU300が候補に含まれるか否かを判定する(ステップS210)。対象ECU320と同一のバスに接続されたECU300が候補に含まれる場合(ステップS210においてYES)、プロセッサ201は、対象ECU320と異なるバスに接続されたECU300を候補から削除する(ステップS211)。ステップS211の後、プロセッサ201はステップS212に移る。対象ECU320と同一のバスに接続されたECU300が候補に含まれない場合(ステップS210においてNO)も、プロセッサ201はステップS212に移る。
【0116】
プロセッサ201は、候補のうち、不揮発性メモリ302の空き容量が最大のECU300を、更新データ610の一部の格納先に選定する(ステップS212)。以上で、選定処理が終了する。
【0117】
[8.その他の変型例]
上述した実施形態では、統合ECU200をOTAマスタとしたが、これに限定されない。個別ECU300がOTAマスタであってもよい。
【0118】
上述した実施形態では、OTAマスタ200が更新データ610の一部の格納先を選定したが、これに限定されない。例えば、OTAサーバ50が更新データ610の一部の格納先を選定してもよい。この場合、OTAマスタ200は、各ECU300A,300B,300C,300D,300Eの不揮発性メモリ302の空き容量を、OTAサーバ50に通知してもよい。
【0119】
[9.実施形態の効果]
車載システム100は、制御プログラム306の更新対象であるECU300である対象ECU320(対象車載装置)と、制御プログラム306の更新対象ではないECU300である複数のECU300B,300C,300D,300E(非対象車載装置)と、対象ECU320における制御プログラム306の更新を制御するOTAマスタ200(更新制御装置)とを含む。OTAマスタ200は、第1受信部213と、第1記憶部214と、第1送信部216とを含む。第1受信部213は、第1部分データ611を、車両10の外部に配置されたOTAサーバ50(外部装置)から受信する。第1部分データ611は、制御プログラム306の更新に用いられる更新データ610の部分データである。第1記憶部214は、第1受信部213によって受信された第1部分データ611を記憶する。第1送信部216は、第1記憶部214に記憶された第1部分データ611を、対象ECU320へ送信する。複数のECU300B,300C,300D,300Eから選定された選定ECU310(選定車載装置)は、第2受信部311と、第2記憶部312と、第2送信部314とを含む。第2受信部311は、第2部分データ612をOTAサーバ50から受信する。第2部分データ612は、更新データ610の部分データであり、第1部分データ611とは異なるデータである。第2記憶部312は、第2受信部311によって受信された第2部分データ612を記憶する。第2送信部314は、第2記憶部312に記憶された第2部分データ612を、対象ECU320へ送信する。対象ECU320は、第3受信部321と、生成部323と、更新部325とを含む。第3受信部321は、OTAマスタ200から第1部分データ611を受信し、選定ECU310から第2部分データ612を受信する。生成部323は、第3受信部321によって受信された第1部分データ611及び第2部分データ612を結合し、更新データ610を生成する。更新部325は、生成部323によって生成された更新データ610を用いて、制御プログラム306を更新する。これにより、更新データ610の一部をOTAマスタ200が記憶し、更新データ610の他の一部を選定ECU310が記憶するため、OTAマスタ200の不揮発性メモリ202の空き容量が不足していても、OTAマスタ200の不揮発性メモリ202のデータを退避させることなく、更新データ610をダウンロードすることができる。
【0120】
選定ECU310は、複数のECU300A,300B,300C,300D,300Eそれぞれに関する選定条件に基づいて、ECU300B,300C,300D,300Eから選定されてもよい。これにより、選定条件にしたがって、ECU300B,300C,300D,300Eからから選定ECU310を選定することができる。
【0121】
選定条件は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、ECU300に設けられた不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数のうちの少なくとも1つに関する条件であってもよい。これにより、上記のような条件によって、適切に選定ECU310を選定することができる。
【0122】
車載システム100は、OTAサーバ50と通信可能な外部通信装置500を含んでもよい。外部通信装置500と同一のバス400Cに接続されたECU300のセキュリティ強度は、外部通信装置500とは異なるバス400A,400Bに接続されたECU300のセキュリティ強度より低くてもよい。これにより、車載システム100においてECU300が接続されたバスに応じて、適切に選定ECU310を選定することができる。
【0123】
対象ECU320と同一のバス400Aに接続されたECU300の通信アクセス性は、対象ECU320とは異なるバス400B,400Cに接続されたECU300の通信アクセス性より高くてもよい。これにより、車載システム100においてECU300が接続されたバスに応じて、適切に選定ECU310を選定することができる。
【0124】
ECU300が有する不揮発性メモリ302における論理的構成単位の数は、ECU300が有する不揮発性メモリ302がシングルバンクである場合と、ダブルバンクである場合とを含んでもよい。これにより、ECU300が有する揮発性メモリ302がシングルバンクメモリであるかダブルバンクメモリであるかに応じて、適切に選定ECU310を選定することができる。
【0125】
OTAマスタ200は、選定部211と、通知部212とを含んでもよい。選定部211は、選定条件に基づいて、複数のECU300B,300C,300D,300Eから選定ECU310を選定する。通知部212は、選定部211によって選定された選定ECU310を、OTAサーバ50へ通知する。これにより、車両10に搭載されたOTAマスタ200が選定ECU310を選定することができる。
【0126】
選定部211は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、ECU300に設けられた不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数のうちの少なくとも1つの項目についてECU300B,300C,300D,300E毎に点数を付け、点数に基づいてECU300B,300C,300D,300Eから選定ECU310を選定してもよい。これにより、上記の項目についてECU300B,300C,300D,300Eを定量的に評価し、評価結果に応じて適切に選定ECU310を選定することができる。
【0127】
選定部211は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、ECU300に設けられた不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数の複数の項目毎に重みを設定し、点数を重みに乗じた結果に基づいてECU300B,300C,300D,300Eから選定ECU310を選定してもよい。これにより、上記の項目の重要度に応じてECU300B,300C,300D,300Eを定量的に評価し、評価結果に応じて適切に選定ECU310を選定することができる。
【0128】
(9) 選定条件は、車両10が運転状態にある場合におけるECU300の処理負荷、車両10に乗員が搭乗している場合におけるECU300の処理負荷、ECU300のセキュリティ強度、ECU300の通信アクセス性、ECU300に設けられた不揮発性メモリ302の空き容量、ECU300に設けられた不揮発性メモリ302の書き込み及び読出し速度、並びにECU300が有する不揮発性メモリ302における論理的構成単位の数の中から選択された複数の項目に関する複数の条件を含んでもよい。選定部211は、複数の条件について順番に、ECU300B,300C,300D,300Eの中から条件に適合するECU300を決定することにより、選定ECU310を選定してもよい。これにより、複数の条件に適合するECU300を順次決定することで、選定ECU310の候補となるECU300を絞っていくことができる。
【0129】
第1受信部213は、第1部分データ611と、第1部分データ611を検証するためのOTAマスタ検証データ621(第1検証データ)とを含む第1更新データ620を、OTAサーバ50から受信してもよい。OTAマスタ200は、第1検証部215を含んでもよい。第1検証部215は、第1更新データ620に含まれる第1部分データ611を、第1更新データ620に含まれるOTAマスタ検証データ621を用いて検証する。第1送信部216は、第1検証部215による第1部分データ611の検証が成功した場合に、第1部分データ611を対象ECU320へ送信してもよい。第2受信部311は、第2部分データ612と、第2部分データ612を検証するためのECU検証データ631(第2検証データ)とを含む第2更新データ630を、OTAサーバ50から受信してもよい。選定ECU310は、第2検証部313を含んでもよい。第2検証部313は、第2更新データ630に含まれる第2部分データ612を、第2更新データ630に含まれるECU検証データ631を用いて検証する。第2送信部314は、第2検証部313による第2部分データ612の検証が成功した場合に、第2部分データ612を対象ECU320へ送信してもよい。これにより、第1部分データ611及び第2部分データ612を個別に検証することができる。
【0130】
更新データ610は、更新後のプログラムである更新プログラム601と、更新プログラム601の検証に用いられるPG検証データ602とを含んでもよい。PG検証データ602は、第1部分データ611及び第2部分データ612のいずれか1つに含まれてもよい。これにより、第1部分データ611及び第2部分データ612を結合した更新データ610に含まれる更新プログラム601を検証することができる。
【0131】
[10.付記]
プログラムの更新対象である車載装置である対象車載装置における前記プログラムの更新を制御する更新制御装置において用いられる更新制御プログラムであって、
コンピュータを、
前記プログラムの更新に用いられる更新データの部分データである第1部分データを、車両の外部に配置された外部装置から受信する受信部と、
前記受信部によって受信された前記第1部分データを記憶する記憶部と、
前記対象車載装置が、前記第1部分データと、選定車載装置から送信された、前記更新データの部分データであり、前記第1部分データとは異なる第2部分データとを結合し、前記更新データを生成するために、前記記憶部に記憶された前記第1部分データを前記対象車載装置へ送信する送信部、
として機能させ、
前記選定車載装置は、前記外部装置から送信された前記第2部分データを記憶する車載装置である、
更新制御プログラム。
【0132】
[11.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
【符号の説明】
【0133】
10 車両
20 基地局
30 インターネット
50 OTAサーバ(外部装置)
100 車載システム
200 統合ECU(OTAマスタ、更新制御装置)
201 プロセッサ
202 不揮発性メモリ
203 揮発性メモリ
204 通信インタフェース(通信I/F)
205 更新制御プログラム
206 鍵データ
211 選定部
212 通知部
213 第1受信部
214 第1記憶部
215 第1検証部
216 第1送信部
300,300A,300B,300C,300D,300E 個別ECU(ECU、車載装置)
301 プロセッサ
302 不揮発性メモリ
303 揮発性メモリ
304 通信インタフェース(通信I/F)
305 入出力インタフェース(I/O)
306 制御プログラム
307 鍵データ
308 更新プログラム
309 更新補助プログラム
310 選定ECU(選定車載装置)
311 第2受信部
312 第2記憶部
313 第2検証部
314 第2送信部
320 対象ECU(対象車載装置)
321 第3受信部
322 第3記憶部
323 生成部
324 第3検証部
325 更新部
400A,400B 車内通信バス
400C 車外通信バス
500 外部通信装置
600 更新パッケージ
601 更新プログラム
602 プログラム検証データ(PG検証データ)
603 OTAマスタ検証データ
610 更新データ
611 第1部分データ
612 第2部分データ
620 第1更新データ
621 OTAマスタ検証データ(第1検証データ)
630 第2更新データ
631 ECU検証データ(第2検証データ)
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11
図12
図13
図14A
図14B