(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025020454
(43)【公開日】2025-02-12
(54)【発明の名称】車載装置、プログラム及び、プログラムの更新方法
(51)【国際特許分類】
B60R 16/02 20060101AFI20250204BHJP
G06F 8/65 20180101ALN20250204BHJP
【FI】
B60R16/02 660U
G06F8/65
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2024201664
(22)【出願日】2024-11-19
(62)【分割の表示】P 2021167466の分割
【原出願日】2021-10-12
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】塩澤 孝之
(57)【要約】 (修正有)
【課題】車載ECUのプログラムを更新する処理を行うにあたり、当該プログラムが適用された車載ECUに対する動作確認を効率的に行う車載装置等を提供する。
【解決手段】車載装置は、車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行う車載装置であって、前記更新プログラムに関する処理を行う制御部を備え、前記制御部は、前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行い、前記更新対象の車載ECU以外の他の車載ECUを代替することにより、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行う車載装置であって、
前記更新プログラムに関する処理を行う制御部を備え、
前記制御部は、
前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、
取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、
前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行い、
前記動作確認シナリオに基づき、前記更新対象の車載ECU以外の他の車載ECUを代替することにより、前記更新対象の車載ECUに対する動作確認に関する処理を行う
車載装置。
【請求項2】
前記動作確認シナリオは、
前記他の車載ECUを代替する前記制御部が、前記更新対象の車載ECUに対しデータを送信する処理シーケンスと、
前記更新プログラムが適用された前記更新対象の車載ECUが、前記制御部によって代替された前記他の車載ECUに対しデータを送信する処理シーケンスとを含む
請求項1に記載の車載装置。
【請求項3】
前記動作確認シナリオには、前記更新対象の車載ECUに対する動作確認の結果を判定するための判定情報が含まれており、
前記制御部は、
前記更新対象の車載ECUに対する動作確認に関する処理を行うことにより、該動作確認の結果を取得し、
取得した動作確認の結果と、前記動作確認シナリオに含まれる前記判定情報とに基づき、前記更新対象の車載ECUにおけるプログラムの更新の成否を判定する
請求項1又は請求項2に記載の車載装置。
【請求項4】
前記制御部は、
前記更新対象の車載ECUが前記動作確認シナリオに基づき行った単体診断の結果を、前記更新対象の車載ECUから取得し、
取得した前記単体診断の結果に基づき、前記更新対象の車載ECUにおけるプログラムの更新の成否を判定する
請求項3に記載の車載装置。
【請求項5】
前記制御部は、
前記車両に搭載される複数の車載ECU間における通信の中継処理を行った際に収集した中継ログを用いて、前記外部サーバから取得した前記動作確認シナリオを補完し、
取得した前記更新プログラム及び前記補完した動作確認シナリオを前記更新対象の車載ECUに出力し、
前記補完した動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う
請求項1から請求項4のいずれか1項に記載の車載装置。
【請求項6】
前記制御部は、前記車両のIGスイッチがオフにされた場合、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う
請求項1から請求項5のいずれか1項に記載の車載装置。
【請求項7】
前記制御部は、
前記更新対象の車載ECU以外の他の車載ECUに対し、該他の車載ECUをスリープモードに遷移させるためのスリープ信号を出力し、
前記スリープ信号を出力した以降、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う
請求項1から請求項6のいずれか1項に記載の車載装置。
【請求項8】
車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行うコンピュータに、
前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、
取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、
前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行い、
前記動作確認シナリオに基づき、前記更新対象の車載ECU以外の他の車載ECUを代替することにより、前記更新対象の車載ECUに対する動作確認に関する処理を行う
処理を実行させるプログラム。
【請求項9】
車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行うコンピュータに、
前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、
取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、
前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行い、
前記動作確認シナリオに基づき、前記更新対象の車載ECU以外の他の車載ECUを代替することにより、前記更新対象の車載ECUに対する動作確認に関する処理を行う
処理を実行させるプログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載装置、プログラム及び、プログラムの更新方法に関する。
【背景技術】
【0002】
車両には、エンジン制御等の駆動制御系、エアコン制御等のボディ系等の車載機器を制御するためのECU(Electronic Control Unit)が搭載されている。ECUは、MPU等の演算処理部、RAM等の書き換え可能な不揮発性の記憶部、及び他のECUと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御を行う。更に車両には、無線通信の機能を備えた通信機が実装されており、通信機を介して、車外のネットワークに接続されているプログラム提供装置と通信し、当該プログラム提供装置からECUの制御プログラムをダウンロード(受信)し、当該ECUの制御プログラムを更新することができる(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の通信機(中継機)は、ダウンロードした制御プログラムを更新対象のECUに適用するにあたり、当該更新対象のECUに制御プログラムを適用した際の動作確認を行う点が、考慮されていないという問題点がある。
【0005】
本開示の目的は、車載ECUのプログラムを更新する処理を行うにあたり、当該プログラムが適用された車載ECUに対する動作確認を効率的に行うことができる車載装置等を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様に係る車載装置は、車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行う車載装置であって、前記更新プログラムに関する処理を行う制御部を備え、前記制御部は、前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行い、前記動作確認シナリオに基づき、前記更新対象の車載ECU以外の他の車載ECUを代替することにより、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【発明の効果】
【0007】
本開示の一態様によれば、車載ECUのプログラムを更新する処理を行うにあたり、当該プログラムが適用された車載ECUに対する動作確認を効率的に行う車載装置等を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態1に係る車載装置を含む車載更新システムの構成を例示する模式図である。
【
図2】
図2は、車載装置の物理構成を例示するブロック図である。
【
図3】車載装置及び更新対象の車載ECU等による処理の流れ(シーケンス)を例示する説明図である。
【
図4】車載装置の制御部の処理を例示するフローチャートである。
【
図5】実施形態2に係る車載装置の制御部の処理を例示するフローチャートである。
【発明を実施するための形態】
【0009】
[本開示の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0010】
(1)本開示の一態様に係る車載装置は、車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行う車載装置であって、前記更新プログラムに関する処理を行う制御部を備え、前記制御部は、前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【0011】
本態様にあたっては、車載装置(制御部)は、更新対象の車載ECUに対し更新プログラム及び動作確認シナリオを出力し、当該動作確認シナリオに基づき、更新対象の車載ECUに対する動作確認に関する処理を行う。当該動作確認シナリオには、更新対象の車載ECUに対し、車載装置が行う動作確認用の処理シーケンス、スクリプト、又はコマンド等の実行手順が列挙されている。車載装置から更新プログラム及び動作確認シナリオを取得した車載ECU(更新対象の車載ECU)は、取得した更新プログラムを適用した後、当該更新プログラムと併せて取得した動作確認シナリオに基づき、自ECUにおける動作確認に関する処理を行う。これにより、更新対象の車載ECU及び車載装置は、同じ動作確認シナリオに基づき、更新プログラムが適用された車載ECU(更新対象の車載ECU)の動作確認を行うものとなり、これら車載ECU及び車載装置が搭載される車両の実環境下での動作確認を効率的に行うことができる。
【0012】
(2)本開示の一態様に係る車載装置は、前記制御部は、前記動作確認シナリオに基づき、前記更新対象の車載ECU以外の他の車載ECUを代替することにより、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【0013】
本態様にあたっては、車載装置は、更新対象の車載ECU以外の他の車載ECUを代替することにより、更新対象の車載ECUに対する動作確認に関する処理を行うため、車両の実環境に則した動作確認を効率的に行うことができる。
【0014】
(3)本開示の一態様に係る車載装置は、前記動作確認シナリオは、前記他の車載ECUを代替する前記制御部が、前記更新対象の車載ECUに対しデータを送信する処理シーケンスと、前記更新プログラムが適用された前記更新対象の車載ECUが、前記制御部によって代替された前記他の車載ECUに対しデータを送信する処理シーケンスとを含む。
【0015】
本態様にあたっては、動作確認シナリオは、他の車載ECUを代替した車載装置と、更新プログラムが適用された車載ECU(更新対象の車載ECU)とによるデータの送受信が定められた処理シーケンスを含むため、車両の実環境に則した動作確認を効率的に行うことができる。すなわち、更新プログラムが適用された車載ECUは、動作確認シナリオに基づき、他の車載ECUとの間でデータの送受信を試みるが、当該データの送受信は、当該他の車載ECUを代替する車載装置によって行われる。これにより、更新プログラムが適用された車載ECU側からは、車両における実運用(実車環境)に則した動作確認を行いつつも、実際は、他の車載ECUを代替した車載装置が動作確認シナリオに基づき対応するものとなる。従って、当該動作確認を行うことによって、車両の制御自体に影響を与えることなく、更新プログラムが適用された車載ECUの動作確認を効率的に行うことができる。
【0016】
(4)本開示の一態様に係る車載装置は、前記動作確認シナリオには、前記更新対象の車載ECUに対する動作確認の結果を判定するための判定情報が含まれており、前記制御部は、前記更新対象の車載ECUに対する動作確認に関する処理を行うことにより、該動作確認の結果を取得し、取得した動作確認の結果と、前記動作確認シナリオに含まれる前記判定情報とに基づき、前記更新対象の車載ECUにおけるプログラムの更新の成否を判定する。
【0017】
本態様にあたっては、動作確認シナリオは、更新対象の車載ECUに対する動作確認の結果を判定するための判定情報を含む。当該判定情報は、例えば、更新対象の車載ECUから送信されることが想定されるデータの種類、送信周期、当該車載ECUのCPU又はメモリの想定使用率、及び車載装置から動作確認用のデータが送信された場合の返信レスポンスの想定値等を含む。車載装置(制御部)は、動作確認シナリオに含まれる判定情報と、動作確認の結果に含まれる各種の値等とを対比することにより、更新対象の車載ECUにおけるプログラムの更新が成功したか否か(成否)を効率的に判定することができる。
【0018】
(5)本開示の一態様に係る車載装置は、前記制御部は、前記更新対象の車載ECUが前記動作確認シナリオに基づき行った単体診断の結果を、前記更新対象の車載ECUから取得し、取得した前記単体診断の結果に基づき、前記更新対象の車載ECUにおけるプログラムの更新の成否を判定する。
【0019】
本態様にあたっては、車載ECUは、車載装置から取得した確認シナリオに基づき、自ECU内にて行う自己診断処理を行う。当該自己診断処理は、車載装置等、他の車載ECUとの通信を行わない診断処理であり、単体診断に相当する。車載装置は、更新対象の車載ECUから単体診断の結果を取得し、当該単体診断の結果に基づき、更新対象の車載ECUにおけるプログラムの更新の成否を判定するため、更新対象の車載ECUにおけるプログラムの更新が成功したか否か(成否)を効率的に判定することができる。
【0020】
(6)本開示の一態様に係る車載装置は、前記制御部は、前記車両に搭載される複数の車載ECU間における通信の中継処理を行った際に収集した中継ログを用いて、前記外部サーバから取得した前記動作確認シナリオを補完し、取得した前記更新プログラム及び前記補完した動作確認シナリオを前記更新対象の車載ECUに出力し、前記補完した動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【0021】
本態様にあたっては、車載装置は、車両に搭載される複数の車載ECU間における通信の中継処理を行うゲートウェイ又はイーサSW等の車載中継装置とし機能する。車載中継装置として機能する車載装置は、中継処理を行った際に収集した中継ログを記憶部に記憶しており、当該中継ログには、中継対象となったイーサフレーム又はCANメッセージのヘッダー情報(ソースアドレス、ディスティネーションアドレス、メッセージID等)、ペイロード情報、送受信頻度又は周期等を含む。車載装置(制御部)は、記憶部に記憶される中継ログを用いて、外部サーバから取得した動作確認シナリオに対し追記等、補完することにより、当該動作確認シナリオを更に自車の実環境に適合させることができる。このように自車の実環境との適合性が向上された動作確認シナリオ(補完された動作確認シナリオ)を用いることにより、更新対象の車載ECUに対する動作確認の精度を向上させることができる。
【0022】
(7)本開示の一態様に係る車載装置は、前記制御部は、前記車両のIGスイッチがオフにされた場合、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【0023】
本態様にあたっては、車載装置は、車両のIGスイッチがオフにされた後、動作確認シナリオに基づく動作確認に関する処理を行うため、IGスイッチがオンの時のみ駆動する他の車載ECUからの影響を受けることなく、又当該他の車載ECUに影響を与えることなく、動作確認に関する処理を行うことができる。
【0024】
(8)本開示の一態様に係る車載装置は、前記制御部は、前記更新対象の車載ECU以外の他の車載ECUに対し、該他の車載ECUをスリープモードに遷移させるためのスリープ信号を出力し、前記スリープ信号を出力した以降、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う。
【0025】
本態様にあたっては、車載装置は、更新対象の車載ECU以外の他の車載ECUに対しスリープ信号を出力した以降、動作確認シナリオに基づく動作確認に関する処理を行う。これにより、当該他の車載ECUは、データ送受信に関する処理を行わないスリープモードに遷移するため、これら他の車載ECUからの影響を受けることなく、又当該他の車載ECUに影響を与えることなく、動作確認に関する処理を行うことができる。
【0026】
(9)本開示の一態様に係るプログラムは、車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行うコンピュータに、前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う処理を実行させる。
【0027】
本態様にあたっては、コンピュータを、車載ECUの制御プログラムを更新する処理を行うにあたり、当該制御プログラムが適用された車載ECUに対する動作確認を効率的に行う車載装置として機能させることができる。
【0028】
(10)本開示の一態様に係るプログラムの更新方法は、車外の外部サーバから送信される更新プログラムを取得し、車両に搭載される車載ECUのプログラムを更新するための処理を行うコンピュータに、前記更新プログラムを取得する際、更新対象の車載ECUに対する動作確認を行うための動作確認シナリオを前記外部サーバから取得し、取得した前記更新プログラム及び前記動作確認シナリオを前記更新対象の車載ECUに出力し、前記動作確認シナリオに基づき、前記更新対象の車載ECUに対する動作確認に関する処理を行う処理を実行させる。
【0029】
本態様にあたっては、車載ECUの制御プログラムを更新する処理を行うにあたり、当該制御プログラムが適用された車載ECUに対する動作確認を効率的に行うプログラムの更新方法を提供することができる。
【0030】
[本発明の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載装置2を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0031】
(実施形態1)
以下、実施の形態について図面に基づいて説明する。
図1は、実施形態1に係る車載更新システムSの構成を示す模式図である。
図2は、車載装置2等の構成を示すブロック図である。車載更新システムSは、車両Cに搭載された車外通信装置1及び車載装置2を含み、車外ネットワークNを介して接続されたプログラム提供装置S1から取得したパッケージ(更新プログラム、動作確認シナリオ)を、車両Cに搭載されている車載ECU3(Electronic Control Unit/車載制御装置)に送信する。
【0032】
プログラム提供装置S1は、例えばインターネット又は公衆回線網等の車外ネットワークNに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による記憶部S11を備え、車外の外部サーバに相当する。プログラム提供装置S1には、車載ECU3の製造メーカ等によって作成された当該車載ECU3を制御するためのプログラム又はデータが、記憶部S11に保存されている。当該プログラム又はデータは、更新プログラムとして、後述のごとく車両Cに送信され、車両Cに搭載されている車載ECU3のプログラム又はデータを更新するために用いられる。このように構成されたプログラム提供装置S1(外部サーバ)は、OTA(Over The Air)サーバとも称される。車両に搭載される車載ECU3は、プログラム提供装置S1から無線通信により送信された更新プログラムを取得し、当該更新プログラムを実行するプログラムとして適用することにより、自ECUが実行するプログラムを更新(リプロ)することができる。
【0033】
以降、プログラムは、車載ECU3が処理を行うための制御構文等を含むプログラムコード及び、当該プログラムコードを実行するにあたり参照するデータが記載される外部ファイルを含むものとして説明する。更新プログラムの送信時において、これらプログラムコード及びデータが記載される外部ファイルは、例えば暗号化されたアーカイブファイルとして、プログラム提供装置S1から送信される。プログラム提供装置S1は、更新プログラムの送信する際、当該更新プログラムを含むパッケージを生成し、生成したパッケージを車両Cに送信する。パッケージは、例えば、プログラム更新に関する情報であるパッケージ情報(キャンペーン情報)、更新対象となる車載ECUに関する情報(ターゲット情報)、更新対処の車載ECUに対し適用される更新プログラム、及び当該更新プログラムを車載ECUに適用した際の動作確認を行うための動作確認シナリオを含む。
【0034】
車両Cには、車外通信装置1、車載装置2、表示装置5、及び種々の車載機器を制御するための複数の車載ECU3が搭載されている。車外通信装置1と車載装置2とは、例えばシリアルケーブル等のハーネスにより通信可能に接続されている。車載装置2及び車載ECU3は、CAN(Control Area Network/登録商標)又はEthernet(登録商標)等の通信プロトコルに対応した車載ネットワーク4によって通信可能に接続されている。
【0035】
車外通信装置1は、車外通信部(図示せず)及び、車載装置2と通信するための入出力I/F(図示せず)(インターフェイス)を含む。車外通信部は、3G、LTE、4G、5G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナ11を介してプログラム提供装置S1とデータの送受信を行う。車外通信装置1とプログラム提供装置S1との通信は、例えば公衆回線網又はインターネット等の外部ネットワークを介して行われる。
【0036】
車外通信装置1の入出力I/Fは、車載装置2と、例えばシリアル通信するための通信インターフェイスである。車外通信装置1と車載装置2とは、入出力I/F間に接続されたシリアルケーブル等のハーネスを介して相互に通信する。本実施形態では、車外通信装置1は、車載装置2と別装置とし、入出力I/F等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置1は、車載装置2の一構成部位として、車載装置2に内蔵されるものであってもよい。
【0037】
車載装置2は、制御部20、記憶部21及び車内通信部23を含む。車載装置2は、車外通信装置1が無線通信によってプログラム提供装置S1から受信した更新プログラム(パッケージ)を、車外通信装置1から取得し、車載ネットワーク4を介して当該更新プログラムを所定の車載ECU3(更新対象の車載ECU3)に送信するように構成されている。すなわち、車載装置2は、更新対象の車載ECU3におけるプログラム更新を制御するOTAマスタ(リプロマスタ)として機能する。
【0038】
車載装置2は、例えば、制御系の車載ECU3、安全系の車載ECU3及び、ボディ系の車載ECU3等の複数の系統のバス(セグメント)を統括し、これらバス(セグメント)間での車載ECU3同士の通信を中継するゲートウェイ(車載中継装置)である。すなわち、車載装置2は、CANプロトコルの中継においてはCANゲートウェイとして機能し、TCP/IPプロトコルの中継においてはレイヤー2スイッチ又はレイヤー3スイッチとして機能する。車載装置2は、通信に関する中継に加え、二次電池等の電源装置から出力された電力を分配及び中継し、自装置に接続されるアクチュエータ等の車載器に電力を供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。又は、車載装置2は、車両C全体をコントロールするボディECUの一機能部として構成されるものであってもよい。又は、車載装置2は、例えばヴィークルコンピュータ等の中央制御装置にて構成され、車両の全体的な制御を行う統合ECUであってもよい。
【0039】
制御部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部21に予め記憶された制御プログラムP(プログラム製品)及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。
【0040】
記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータが予め記憶してある。記憶部21に記憶された制御プログラムP(プログラム製品)は、車載装置2が読み取り可能な記録媒体211から読み出された制御プログラムP(プログラム製品)を記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部21に記憶させたものであってもよい。
【0041】
更に、記憶部21には、車両に搭載される車載ECUそれぞれの構成情報が集約された車両構成情報が、記憶される。車両構成情報は、例えば、各車載ECUの製造番号(シリアル番号)、ECU部番(型番)、Software部番、プログラムの現バージョン、旧バージョン、動作面数、動作面、MAC(Media Access Control)アドレス、IPアドレス、前回更新完了日時、リプロステータス及びVIN(車両識別番号)を含む。
【0042】
記憶部21には、車載ECU3間の通信、又は車載ECU3と外部サーバ100との間の通信のための中継処理を行うにあたり用いられる中継経路情報(ルーティングテーブル)が、記憶される。当該中継経路情報は、通信プロトコルに基づき書式が決定される。通信プロトコルがCANの場合、CAN用中継経路情報は、CANメッセージに含まれるメッセージ識別子(CAN-ID)及び、当該CAN-IDに関連付けられた中継先(CAN通信部232のI/Oポート番号)を含む。通信プロトコルがTCP/IPの場合、TCP/IP用中継経路情報は、IPパケットに含まれる送信先アドレス(MACアドレス又はIPアドレス)及び、当該送信先アドレスに関連付けられた中継先(イーサネット通信部231の物理ポート番号)を含む。当該中継経路情報(ルーティングテーブル)は、車両構成情報に含まれるものであってもよい。
【0043】
記憶部21には、更に、複数の車載ECU間における通信の中継処理を行った際に収集した中継ログが、記憶される。当該中継ログは、例えば、中継対象となったイーサフレーム又はCANメッセージのヘッダー情報(ソースアドレス、ディスティネーションアドレス、メッセージID等)、ペイロード情報、送受信頻度又は周期等のデータを含むものであり、当該データには通信履歴を示すタイムスタンプが関連付けられるものであってもよい。これにより、中継ログは、車載装置が搭載される車両の実運用環境(実車環境)における通信状態及び通信履歴を示すデータとして用いることができる。
【0044】
入出力I/F22は、車外通信装置1の入出力I/Fと同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/F22を介して、車載装置2は、車外通信装置1、表示装置5(HMI装置)及び、車両Cの起動及び停止を行うIGスイッチ6と通信可能に接続される。
【0045】
車内通信部23は、例えばCAN(Control Area Network)、CAN-FD(CAN with Flexible Data Rate)又はイーサネット(Ethernet/登録商標)の通信プロトコルを用いた入出力インターフェイス(CANトランシーバ、イーサネットPHY部)であり、車載装置2と車載ECU3とが通信するための通信部として機能する。車内通信部23は、複数個設けられており、車内通信部23夫々に、車載ネットワーク4を構成する通信線41夫々(イーサネットケーブル、CANバス)、すなわちバス夫々が接続されている。このように車内通信部23を複数個設けることにより、車載ネットワーク4を複数個のバス(セグメント)に分け、各セグメントに車載ECU3を、当該車載ECU3の機能に応じて接続するものであってもよい。車載装置2の制御部20は、車内通信部23を介して車載ネットワーク4に接続されている車載ECU3と相互に通信する。
【0046】
車載ECU3は、車載装置2と同様に制御部(図示せず)、記憶部(図示せず)及び車内通信部(図示せず)を含む。記憶部は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、車載ECU3のプログラム又はデータが記憶されている。このプログラム又はデータが、プログラム提供装置から送信され、車載装置2によって中継される更新プログラムによって、更新される対象である。車載ECU3の車内通信部は、車載装置2と同様に、例えば、CANトランシーバ又はイーサネットPHY部等により構成され、当該車内通信部を介して車載装置2と通信する。
【0047】
表示装置5は、例えばカーナビゲーションのディスプレイ等のHMI(Human Machine Interface)装置である。表示装置5は、車載装置2の入出力I/F22とシリアルケーブル等のハーネスにより通信可能に接続されている。表示装置5には、車載装置2の制御部20から入出力I/F22を介して出力されたデータ又は情報が表示される。
【0048】
図3は、車載装置2及び更新対象の車載ECU3等による処理の流れ(シーケンス)を例示する説明図である。更新プログラムを用いて、更新対処の車載ECU3におけるプログラム更新に関する処理を行うにあたり、プログラム提供装置S1(OTAサーバ)、車載装置2(OTAマスタ)、及び更新対象の車載ECU3(ターゲットECU)それぞれの処理シーケンスについて説明する。
【0049】
車載装置2は、車両C(自車)の車両構成情報を、プログラム提供装置S1に出力(送信)する(S01)。車載装置2は、各車載ECU3から定常的に当該車載ECU3に適用されているプログラム情報及び型式情報等を取得し、これら情報を集約することにより車両構成情報を生成及び保存している。車載装置2は、当該車両構成情報にVIN(Vehicle Identification Number)を含めるものであってもよい。
【0050】
プログラム提供装置S1は、更新プログラム及び動作確認シナリオを含むパッケージを生成する(S02)。プログラム提供装置S1は、車載装置2から取得した車両構成情報に基づき、パッケージを生成する。当該パッケージには、プログラム更新に関する情報であるパッケージ情報(キャンペーン情報)、更新対象となる車載ECU3に関する情報(ターゲット情報)、更新対象の車載ECU3に対し適用される更新プログラム、及び当該更新プログラムを車載ECU3に適用した際の動作確認を行うための動作確認シナリオが含まれている。当該動作確認シナリオには、更新対象の車載ECU3に対し、車載装置2が行う動作確認用の処理シーケンス、スクリプト、又はコマンド等の実行手順が列挙されている。動作確認シナリオは、更に、更新対象の車載ECU3が行う動作確認用の処理シーケンス等、及び車載装置2と更新対象の車載ECU3とによる動作確認の結果を検証(成否判定)するための判定情報が含まれている。プログラム提供装置S1は、車載装置2から送信された車両構成情報に基づき、当該車載装置2が搭載される車両Cの実環境に則した動作確認シナリオを生成することができる。プログラム提供装置S1は、生成したパッケージを車載装置2に出力(送信)する(S03)。
【0051】
車載装置2は、プログラム提供装置S1から取得(受信)したパッケージを記憶部S11に記憶する(S04)。車載装置2は、プログラム提供装置S1からパッケージを取得することにより、通常モード(車両Cの通常動作時の状態)から更新モードに移行(遷移)するものであってもよい。車載装置2は、パッケージに含まれる更新プログラム及び動作確認シナリオを、更新対象の車載ECU3に出力(送信)する(S05)。
【0052】
更新対象の車載ECU3は、車載装置2から取得(受信)した更新プログラム及び動作確認シナリオを記憶部に記憶する(S06)。更新対象の車載ECU3は、車載装置2から更新プログラム及び動作確認シナリオを受信することにより、更新モードに移行(遷移)する。
【0053】
更新対象の車載ECU3の記憶部は、現時点にて適用されているプログラム(現バージョンのプログラム)が記憶されている第1記憶領域と、過去に適用されていたプログラム(旧バージョンのプログラム)が記憶されている第2記憶領域とを含む。更新対象の車載ECU3は、車載装置2から取得した更新プログラム及び動作確認シナリオを第2記憶領域に記憶することにより、第1記憶領域に記憶されている現バージョンのプログラムを上書きすることなく、更新プログラム等を保存(記憶)するものであってもよい。更新対象の車載ECU3は、第1記憶領域及び第2記憶領域を有する2面持ちの記憶部を備えることにより、旧バージョンのプログラムに戻すロールバック処理を確実に行うことができる。
【0054】
車載装置2は、車両CのIGスイッチ6がオフにされた後、更新対象の車載ECU3に対し、アクティベート要求(更新プログラムの適用指示)を行う(S07)。車載装置2は、車両CのIGスイッチ6がオフにされた後、例えば、更新対象の車載ECU3に制御信号(アクティベート要求信号)を送信することにより、アクティベート要求(更新プログラムの適用指示)を行う。アクティベート要求のトリガーは、IGスイッチ6のオフであるとしたが、これに限定されず、車載装置2は、予め設定されたスケジューリング情報、又はスリープ信号のマルチキャスト等をトリガーとして、アクティベート要求を行うものであってもよい。
【0055】
更新対象の車載ECU3は、車載装置2からのアクティベート要求に応じて、現時点にて適用されているプログラムから、更新プログラムに切り替える(S08)。更新対象の車載ECU3は、更新プログラムに切り替えた旨を示す情報(アクティベート結果)を、車載装置2に出力(送信)する(S09)。更新対象の車載ECU3は、上述のとおり、第1記憶領域及び第2記憶領域を有する2面持ちの記憶部を備えており、更新プログラムが記憶された第2記憶領域を有効(活性化)させることにより、更新プログラムへの切り替えを行う。
【0056】
車載装置2は、記憶部21に記憶した動作確認シナリオに応じて、更新対象の車載ECU3に動作確認モードへの移行要求を行う(S10)。車載装置2は、例えば、更新対象の車載ECU3に制御信号(動作確認モード移行信号)を送信することにより、動作確認モードへの移行要求を行う。
【0057】
更新対象の車載ECU3は、車載装置2からの動作確認モードへの移行要求に応じて、動作確認モードに移行(遷移)する(S11)。動作確認モードに移行した更新対象の車載ECU3は、動作確認シナリオに基づき、更新プログラムを実行する。動作確認シナリオには、自ECU内(更新対象の車載ECU3内)にて行う自己診断処理(単体診断)に関するシーケンスが含まれている。動作確認モードに移行した更新対象の車載ECU3は、動作確認シナリオに基づき、自ECU内にて行う自己診断処理(単体診断)を行う。
【0058】
車載装置2は、動作確認シナリオに基づき、動作確認用データを更新対象の車載ECU3に出力(送信)する(S12)。車載装置2は、当該動作確認用データを更新対象の車載ECU3に出力するにあたり、当該更新対象の車載ECU3が通常時に通信する他の車載ECU3を代替する。車載装置2は他の車載ECU3を代替するにあたり、当該他の車載ECU3のIPアドレスをソースアドレスとするイーサフレームを送信するものであってもよい。又は、車載装置2は他の車載ECU3を代替するにあたり、当該他の車載ECU3が用いるCAN-IDを含めて、CANメッセージを送信するものであってもよい。
【0059】
更新対象の車載ECU3は、他の車載ECU3を代替した車載装置2から送信される動作確認用データに応じて、応答データを車載装置2に出力(送信)する(S13)。他の車載ECU3を代替した車載装置2と、更新対象の車載ECU3とのデータの送受信による処理シーケンスは、動作確認シナリオに基づき行われる。当該処理シーケンスにおいては、更新対象の車載ECU3に接続されるセンサ又はアクチュエータに対する制御は、省略又は無効化されているものであってもよい。車載装置2及び更新対象の車載ECU3は、これらデータの送受信による処理シーケンスにおけるレスポンス値、又は通信トラフィック量等の計測値(実測値)を記憶し、動作確認結果として保存するものであってもよい。
【0060】
更新対象の車載ECU3は、単体診断の結果、及び車載装置2とのデータ送受信による動作確認の結果を、車載装置2に出力(送信)する(S14)。動作確認シナリオには、単体診断の結果を判定するための単体診断用判定情報が含まれている。当該単体診断用判定情報は、更新プログラムを実行(アクティベート)した際、更新対象の車載ECU3において生成されるプロセスリスト、CPU使用量、メモリ使用量等の期待値である。
【0061】
更新対象の車載ECU3は、単体診断の結果における各種の実測値と、単体診断用判定情報における各種の期待値とを比較することにより、単体診断の結果を判定する。単体診断の結果における実測値が、単体診断用判定情報における期待値に適合する場合、更新対象の車載ECU3は、動作確認シナリオに基づき行われた単体診断の結果は肯定的(プログラムの更新が成功)であると判定する。単体診断の結果における実測値が、単体診断用判定情報における期待値に適合しない場合、更新対象の車載ECU3は、動作確認シナリオに基づき行われた単体診断の結果は否定的(プログラムの更新が失敗)であると判定する。
【0062】
車載装置2は、更新対象の車載ECU3とのデータ送受信による動作確認の結果等を、記憶部21に記憶する(S15)。車載装置2は、更新対象の車載ECU3から出力された動作確認の結果を記憶部21に記憶する。更に、車載装置2は、自装置において検証した動作確認の結果についても、記憶部21に記憶する。
【0063】
車載装置2は、動作確認シナリオに含まれる判定情報とに基づき、動作確認シナリオに含まれる判定情報と、動作確認の結果に含まれる各種の値(計測値、実測値)とを対比することにより、更新対象の車載ECU3におけるプログラムの更新が成功したか否か(成否)を判定する(S16)。当該判定情報は、例えば、他の車載ECU3を代替する車載装置2から、更新対象の車載ECU3へ送信された動作確認用データに対し、当該更新対象の車載ECU3からの応答データに関する期待値を含む。当該応答データに関する期待値とは、例えば、応答データの有無、種類(ヘッダー情報)、データ長、ペイロード情報、及び応答データの返信レスポンス値である。
【0064】
車載装置2は、更新対象の車載ECU3とのデータ送受信において、更新対象の車載ECU3からの応答データの有無、データ長又は返信レスポンス値等の実測値と、動作確認シナリオに含まれる判定情報(応答データに関する期待値)とを比較することにより、動作確認の結果を検証する。更新対象の車載ECU3からの応答データが、判定情報、すなわち動作確認シナリオにて定義されている期待値(応答データに関する期待値)に適合する場合、車載装置2は、動作確認シナリオに基づき行われた動作確認の結果は肯定的(プログラムの更新が成功)であると判定する。更新対象の車載ECU3からの応答データが、判定情報、すなわち動作確認シナリオにて定義されている期待値(応答データに関する期待値)に適合しない場合、車載装置2は、動作確認シナリオに基づき行われた動作確認の結果は否定的(プログラムの更新が失敗)であると判定する。
【0065】
更に、車載装置2は、更新対象の車載ECU3から取得した単体診断の結果、及び車載装置2とのデータ送受信による動作確認の結果に基づき、更新対象の車載ECU3におけるプログラムの更新が成功したか否か(成否)を判定する。すなわち、車載装置2は、自装置の側からの動作確認用データの送受信に関する動作確認の結果、車載ECU3の側からの動作確認用データの送受信に関する動作確認の結果、及び車載ECU3における単体診断の結果による3つの確認結果に基づき、更新対象の車載ECU3におけるプログラムの更新の成否判定を行う。当該3つの確認結果おいて、全ての確認結果が肯定的である場合、車載装置2は、更新対象の車載ECU3におけるプログラムの更新が成功したと判定する。このような3つの確認結果を実車環境において取得することにより、プログラムの更新の成否判定の精度を向上させることができる。
【0066】
プログラムの更新が成功したと判定した場合、車載装置2は、更新対象の車載ECU3に通常モードへの移行要求を行う(S17)。更新対象の車載ECU3は、車載装置2からの通常モードへの移行要求に応じて、通常モードに移行(遷移)する(S18)。車載装置2からの通常モードへの移行要求を更新対象の車載ECU3が受信することにより、当該更新対象の車載ECU3におけるプログラム更新は完了し、当該車載ECU3は、車両Cが走行等を行うにあたっての通常態様による制御を行う状態(通常モード)に移行(遷移)する。
【0067】
3つの確認結果おいて、少なくとも1つの確認結果が否定的である場合、車載装置2は、更新対象の車載ECU3におけるプログラムの更新が失敗したと判定する。プログラムの更新が失敗したと判定した場合、車載装置2は、更新対象の車載ECU3に対し、ロールバック処理を要求するものであってもよい。車載装置2は、これら3つの確認結果に基づき、ロールバック処理、又は縮退モードへの移行のいずれかの処置とするかを、決定するものであってもよい。車載装置2は、プログラムの更新が失敗した旨を、例えば表示装置5に出力し、車両Cの操作者等に報知するものであってもよい。
【0068】
車載装置2は、動作確認シナリオによる動作確認の結果を、プログラム提供装置S1に出力(送信)する(S19)。車載装置2から出力された動作確認の結果を取得したプログラム提供装置S1は、当該結果を自装置の記憶部S11に記憶する。これにより、車載装置2とプログラム提供装置S1との間にて、パッケージに基づくプログラム更新に関する情報の整合化(同期化)を図ることができる。
【0069】
図4は、車載装置2の制御部20の処理を例示するフローチャートである。車載装置2の制御部20は、例えば車両Cが起動状態(IGスイッチ6がオン)において、定常的に以下の処理を行う。
【0070】
車載装置2の制御部20は、プログラム提供装置S1へ、車両C(自車)の車両構成情報を出力(送信)する(S101)。車載装置2の制御部20によるプログラム提供装置S1への車両構成情報の出力は、車載ECU3に対するプログラムの更新処理を行う際に限定されず、当該車両構成情報の出力は定常的に行われるものであってもよい。すなわち、車載装置2の制御部20は、定常的又は周期的に車両C(自車)に搭載されている全ての車載ECU3から、当該車載ECU3に適用されているプログラム情報及び型式情報を取得し、取得及び集約した情報を車両構成情報として記憶する。車載装置2の制御部20は、VINが含まれる車両構成情報を、定常的又は周期的にプログラム提供装置S1に送信するものであってもよい。これにより、プログラム提供装置S1は、VINが含まれる車両構成情報に基づき、対象となる車両Cを特定し、当該特定した車両Cに応じたパッケージを作成する。プログラム提供装置S1によって作成されたパッケージは、プログラム更新に関する情報であるパッケージ情報(キャンペーン情報)、更新対象となる車載ECU3に関する情報(ターゲット情報)、更新プログラム(更新データ)、及び動作確認シナリオを含む。
【0071】
車載装置2の制御部20は、プログラム提供装置S1から更新プログラム及び動作確認シナリオを含むパッケージを取得する(S102)。車載装置2の制御部20は、車外通信装置1を介してプログラム提供装置S1と通信し、プログラム提供装置S1からパッケージを取得する。車載装置2の制御部20は、取得したパッケージを記憶部21に記憶する。
【0072】
車載装置2の制御部20は、更新対象の車載ECU3に、更新プログラム及び動作確認シナリオを出力する(S103)。動作確認シナリオを更新対象の車載ECU3に出力することにより、当該動作確認シナリオは、車載装置2及び更新対象の車載ECU3により共有されるものとなる。すなわち、車載装置2及び更新対象の車載ECU3は、同じ動作確認シナリオに基づき、動作確認に関する処理を行うことができる。車載装置2の制御部20は、更新対象の車載ECU3への更新プログラム及び動作確認シナリオを出力するに併せて、当該更新プログラムを適用する旨を示すアクティベート要求を、当該車載ECU3に出力するものであってもよい。
【0073】
車載装置2の制御部20は、更新対象の車載ECU3に動作確認モードへの移行要求を出力する(S104)。車載装置2から、動作確認モードへの移行要求を取得(受信)した更新対象の車載ECU3は、更新プログラムを適用するにあたり、動作確認シナリオに基づく動作確認の実行を開始する。
【0074】
車載装置2の制御部20は、動作確認シナリオに基づき、更新対象の車載ECU3に動作確認用データを出力する(S105)。車両Cの走行時等の通常状態(通常モード)において、更新対象の車載ECU3がデータ通信を行う対象は、車載装置2でなく、他の車載ECU3である。これに対し、動作確認シナリオにおいては、車載装置2は、当該他の車載ECU3に動作態様を疑似すべく、他の車載ECU3を代替する。これにより、動作確認モードの更新対象の車載ECU3は、他の車載ECU3を代替した車載装置2との間で、データの送受信を含む一連の処理シーケンスを実行する。動作確認シナリオに基づき、車載装置2の制御部20が動作確認用データを更新対象の車載ECU3に出力することにより、更新対象の車載ECU3も同様に動作確認シナリオに基づき応答データを出力する。すなわち、車載装置2の制御部20と更新対象の車載ECU3とは、同一の動作確認シナリオにより、実車環境に則したデータの送受信を開始する。
【0075】
車載装置2の制御部20は、動作確認シナリオによる動作確認の結果を取得する(S106)。更新対象の車載ECU3は、単体診断の結果、及び自ECU側からの動作確認用データの送受信に関する動作確認の結果を車載装置2に出力する。車載装置2の制御部20は、これら結果を更新対象の車載ECU3から取得する。更に、車載装置2の制御部20は、自装置側からの動作確認用データの送受信に関する動作確認の結果を取得する。上述のとおり、動作確認シナリオに基づき行われた動作確認において、各種の実測値は、車載装置2の記憶部21に記憶されている。車載装置2の制御部20は、自装置の記憶部21を参照することにより、自装置側からの動作確認用データの送受信に関する動作確認の結果を取得する。すなわち、車載装置2の制御部20は、これら3つの動作確認結果を取得する。
【0076】
車載装置2の制御部20は、更新対象の車載ECU3におけるプログラムの更新が成功した否かを判定する(S107)。動作確認シナリオには、動作確認の結果を判定するための判定情報が含まれている。車載装置2の制御部20は、取得した動作確認の結果である各種の実測値と、判定情報に含まれる期待値とを比較することにより、プログラムの更新が成功した否かを判定する。車載装置2の制御部20は、例えば、全ての実測値が期待値の範囲内となる場合、プログラムの更新が成功した判定する。車載装置2の制御部20は、例えば、全ての実測値が期待値の範囲内とならなかった場合、プログラムの更新が失敗した判定する。
【0077】
プログラムの更新が成功した場合(S107:YES)、車載装置2の制御部20は、更新対象の車載ECU3に通常モードへの移行要求を行う(S108)。プログラムの更新が成功したと判定した場合、車載装置2の制御部20は、例えば、更新対象の車載ECU3に制御信号(通常モード移行信号)を出力することにより、通常モードへの移行要求を行う。通常モードへの移行要求を受けた更新対象の車載ECU3は、通常モードに遷移する。
【0078】
プログラムの更新が成功しなかった場合(S107:NO)、すなわちプログラムの更新が失敗した場合、車載装置2の制御部20は、更新対象の車載ECU3に対し、ロールバック処理の要求を行う(S1071)。プログラムの更新が失敗したと判定した場合、車載装置2の制御部20は、例えば、更新対象の車載ECU3に制御信号(ロールバック信号)を出力することにより、ロールバック処理の要求を行う。又は、車載装置2の制御部20は、動作確認の結果の態様に応じて、ロールバック処理の要求、又は縮退モードへの移行のいずれかの処置とするかを、決定するものであってもよい。
【0079】
車載装置2の制御部20は、プログラム提供装置S1へ、動作確認シナリオによる動作確認の結果を出力(送信)する(S109)。車載装置2の制御部20は、車外通信装置1を介して、プログラム提供装置S1へ、動作確認シナリオによる動作確認の結果を出力(送信)する。又は、車載装置2の制御部20は、動作確認シナリオによる動作確認の結果を表示装置5に出力し、当該結果を車両Cの操作者等に報知するものであってもよい。
【0080】
本実施形態によれば、更新対象の車載ECU3及び車載装置2は、同じ動作確認シナリオに基づき、更新プログラムが適用された車載ECU3(更新対象の車載ECU3)の動作確認を行うものとなり、これら車載ECU3及び車載装置2が搭載される車両Cの実環境下での動作確認を効率的に行うことができる。動作確認シナリオに基づく動作確認の処理シーケンスにおいて、車載装置2は更新対象の車載ECU3以外の他の車載ECU3を代替するため、更新対象の車載ECU3は、当該他の車載ECU3との疑似的なデータ送信を行うことが可能となり、車両Cの実環境に則した動作確認を効率的に行うことができる。
【0081】
(実施形態2)
図5は、実施形態2に係る車載装置2の制御部20の処理を例示するフローチャートである。車載装置2の制御部20は、プログラム提供装置S1へ、車両C(自車)の車両構成情報を出力(送信)する(S201)。車載装置2の制御部20は、プログラム提供装置S1から更新プログラム及び動作確認シナリオを含むパッケージを取得する(S202)。車載装置2の制御部20は、実施形態1の処理S101及びS102と同様に、S201及びS202の処理を行う。
【0082】
車載装置2の制御部20は、複数の車載ECU3間における通信の中継処理を行った際に収集した中継ログを用いて、動作確認シナリオを補完する(S203)。車載装置2は、複数の車内通信部23を備え、これら車内通信部23に接続される車載ECU3間の通信を中継する車載中継装置として機能する。車載装置2の制御部20は、これら車載ECU3間の通信を中継するにあたり、当該中継の対象となったデータ(イーサフレーム、CANメッセージ)に基づき、中継ログを記憶部21に記憶している。当該中継ログは、例えば、中継対象となったイーサフレーム又はCANメッセージのヘッダー情報(ソースアドレス、ディスティネーションアドレス、メッセージID等)、ペイロード情報、送受信頻度又は周期等を含むものであり、車載装置2が搭載される車両Cの実運用環境(実車環境)における通信状態を示すデータである。
【0083】
車載装置2の制御部20は、中継ログを用いて、動作確認シナリオに含まれるデータ送受信に関するシーケンスの追記又は修正等を行うことにより、プログラム提供装置S1が生成した動作確認シナリオを、更に実車環境に則するように補完する。車載装置2の制御部20は、当該補完した動作確認シナリオを用いて、以降の処理を行う。すなわち、以降の処理において、車載装置2の制御部20及び更新対象の車載ECU3が用いる動作確認シナリオは、中継ログを用いて補完された動作確認シナリオである。
【0084】
車載装置2の制御部20は、更新対象の車載ECU3に、更新プログラム及び動作確認シナリオを出力する(S204)。車載装置2の制御部20は、実施形態1の処理S103と同様に、S204の処理を行う。
【0085】
車載装置2の制御部20は、更新対象の車載ECU3以外の他の車載ECU3に対し、スリープ信号を出力する(S205)。車載装置2の制御部20は、例えば、車両構成情報、又は中継処理に用いるルーティングテーブル等を参照することにより、車両C(自車)に搭載されている全ての車載ECU3を把握することができる。車載装置2の制御部20は、車両C(自車)に搭載されている全ての車載ECU3において、更新対象の車載ECU3以外となる他の車載ECU3を特定する。車載装置2の制御部20は、特定した他の車載ECU3に対し、スリープモードに遷移させるためのスリープ信号を出力(送信)する。スリープ信号を受信した他の車載ECU3は、スリープモードに遷移することにより、データの送受信等の処理を停止する。これにより、更新対象の車載ECU3以外となる他の車載ECU3に対する影響が発生することを防止しつつ、更新対象の車載ECU3へのプログラム更新の処理を行うことができる。車載装置2の制御部20はスリープ信号の出力を行うとしたが、これに限定されず、車載装置2の制御部20は、自装置における中継処理を停止することにより、更新対象の車載ECU3及び他の車載ECU3の通信を制限するものであってもよい。
【0086】
車載装置2の制御部20は、更新対象の車載ECU3に動作確認モードへの移行要求を出力する(S206)。車載装置2の制御部20は、動作確認シナリオに基づき、更新対象の車載ECU3に動作確認用データを出力する(S207)。車載装置2の制御部20は、動作確認シナリオによる動作確認の結果を取得する(S208)。車載装置2の制御部20は、更新対象の車載ECU3におけるプログラムの更新が成功した否かを判定する(S209)。プログラムの更新が成功した場合(S209:YES)、車載装置2の制御部20は、更新対象の車載ECU3に通常モードへの移行要求を行う(S210)。プログラムの更新が成功しなかった場合(S209:NO)、すなわちプログラムの更新が失敗した場合、車載装置2の制御部20は、更新対象の車載ECU3に対し、ロールバック処理の要求を行う(S2091)。車載装置2の制御部20は、プログラム提供装置S1へ、動作確認シナリオによる動作確認の結果を出力(送信)する(S211)。車載装置2の制御部20は、実施形態1の処理S104からS109と同様に、S206からS211の処理を行う。
【0087】
本実施形態によれば、車載装置2は、中継処理を行った際の中継ログを用いて、外部サーバから取得した動作確認シナリオに対し追記等、補完することにより、自車の実環境に対する動作確認シナリオの適合性を向上させることができる。このように自車の実環境との適合性が向上された動作確認シナリオ(補完された動作確認シナリオ)を用いることにより、更新対象の車載ECU3に対し更新プログラムを適用した際の動作確認の精度を向上させることができる。
【0088】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0089】
C 車両
S 車載更新システム
S1 プログラム提供装置
S11 記憶部
1 車外通信装置
11 アンテナ
2 車載装置
20 制御部
21 記憶部
211 記録媒体
P 制御プログラム(プログラム製品)
22 入出力I/F
23 車内通信部
3 車載ECU
4 車載ネットワーク
41 通信線
5 表示装置
6 IGスイッチ