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

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

▶ 株式会社デンソーの特許一覧

特開2024-171595ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム
<>
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図1
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図2
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図3
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図4
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図5
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図6
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図7
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図8
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図9
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図10
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図11
  • 特開-ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171595
(43)【公開日】2024-12-12
(54)【発明の名称】ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラム
(51)【国際特許分類】
   G06F 8/65 20180101AFI20241205BHJP
【FI】
G06F8/65
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023088683
(22)【出願日】2023-05-30
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】鶴田 仁咲
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA52
5B376GA08
(57)【要約】
【課題】非稼働面の更新を完了して稼働面と非稼働面とを切り替えた後でも、正常でないソフトウェアの書き込みに対して適切に対処する。
【解決手段】ソフトウェア更新装置6は、非稼働面更新指示を更新対象の電子制御装置へ送信させる更新指示送信部14aと、非稼働面の更新が完了された後に、面切り替え指示を更新対象の電子制御装置へ送信させる面切り替え指示送信部14bと、面切り替え指示が更新対象の電子制御装置へ送信された後に、非稼働面の更新が正常に実施されたか否かを判定する更新正常判定部14cと、非稼働面の更新が正常に実施されなかったと更新正常判定部により特定された場合に、更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる復帰部14dと、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
記憶領域を2つ以上の面で持つ電子制御装置をソフトウェアの更新対象とし、ソフトウェアの更新を制御するソフトウェア更新装置(6)であって、
非稼働面更新指示を前記更新対象の電子制御装置へ送信させる更新指示送信部(14a)と、
非稼働面の更新が完了された後に、面切り替え指示を前記更新対象の電子制御装置へ送信させる面切り替え指示送信部(14b)と、
面切り替えが完了された後に、非稼働面の更新が正常に実施されたか否かを判定する更新正常判定部(14c)と、
非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された場合に、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる復帰部(14d)と、を備えるソフトウェア更新装置。
【請求項2】
前記更新正常判定部は、テスト通信フレームを前記更新対象の電子制御装置へ送信させ、前記更新対象の電子制御装置からの前記テスト通信フレームに対する応答状況に基づいて非稼働面の更新が正常に実施されたか否かを判定する請求項1に記載したソフトウェア更新装置。
【請求項3】
前記復帰部は、前記テスト通信フレームが伝送される車載ネットワークと同一の車載ネットワークを介して面切り替え指示を前記更新対象の電子制御装置へ再度送信させることで、前記更新対象の電子制御装置を最初の面切り替え指示が送信される前の状態へ復帰させる請求項2に記載したソフトウェア更新装置。
【請求項4】
前記復帰部は、前記テスト通信フレームが伝送される車載ネットワークとは異なる車載ネットワークを介して面切り替え指示を前記更新対象の電子制御装置へ再度送信させることで、前記更新対象の電子制御装置を最初の面切り替え指示が送信される前の状態へ復帰させる請求項2に記載したソフトウェア更新装置。
【請求項5】
前記復帰部は、前記更新対象の電子制御装置が一つの場合に、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された前記更新対象の電子制御装置のみを面切り替え指示が送信される前の状態へ復帰させる請求項1に記載したソフトウェア更新装置。
【請求項6】
前記復帰部は、前記更新対象の電子制御装置が複数の場合に、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させ、当該更新対象の電子制御装置とバージョンを整合させる必要がある更新対象の電子制御装置も面切り替え指示が送信される前の状態へ復帰させる請求項1に記載したソフトウェア更新装置。
【請求項7】
前記復帰部は、前記更新対象の電子制御装置が複数の場合に、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させ、当該更新対象の電子制御装置とバージョンを整合させる必要がない更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させない請求項1に記載したソフトウェア更新装置。
【請求項8】
非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された場合に、エラー通知を外部に送信させるエラー通知送信部(14e)を備える請求項1から7の何れか一項に記載したソフトウェア更新装置。
【請求項9】
記憶領域を2つ以上の面で持つ電子制御装置(10a~10c,11a~11c,12a~12c)と、
前記電子制御装置をソフトウェアの更新対象とし、ソフトウェアの更新を制御するソフトウェア更新装置(6)と、を備えるソフトウェア更新システム(1,21)であって、
前記ソフトウェア更新装置は、
非稼働面更新指示を前記更新対象の電子制御装置へ送信させる更新指示送信部(14a)と、
非稼働面の更新が完了された後に、面切り替え指示を前記更新対象の電子制御装置へ送信させる面切り替え指示送信部(14b)と、
面切り替えが完了された後に、非稼働面の更新が正常に実施されたか否かを判定する更新正常判定部(14c)と、
非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された場合に、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる復帰部(14d)と、を備えるソフトウェア更新システム。
【請求項10】
記憶領域を2つ以上の面で持つ電子制御装置をソフトウェアの更新対象とし、ソフトウェアの更新を制御するソフトウェア更新装置(6)において、
非稼働面更新指示を前記更新対象の電子制御装置へ送信させる更新指示送信手順と、
非稼働面の更新が完了された後に、面切り替え指示を前記更新対象の電子制御装置へ送信させる面切り替え指示送信手順と、
面切り替えが完了された後に、非稼働面の更新が正常に実施されたか否かを判定する更新正常判定手順と、
非稼働面の更新が正常に実施されなかったと前記更新正常判定手順により特定した場合に、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる復帰手順と、を行うソフトウェアの復帰方法。
【請求項11】
記憶領域を2つ以上の面で持つ電子制御装置をソフトウェアの更新対象とし、ソフトウェアの更新を制御するソフトウェア更新装置(6)の制御部(14)に、
非稼働面更新指示を前記更新対象の電子制御装置へ送信させる更新指示送信手順と、
非稼働面の更新が完了された後に、面切り替え指示を前記更新対象の電子制御装置へ送信させる面切り替え指示送信手順と、
面切り替えが完了された後に、非稼働面の更新が正常に実施されたか否かを判定する更新正常判定手順と、
非稼働面の更新が正常に実施されなかったと前記更新正常判定手順により特定した場合に、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる復帰手順と、を実行させるソフトウェアの復帰プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラムに関する。
【背景技術】
【0002】
従来より、記憶領域を2つの面で持つ2面構成の電子制御装置(以下、ECU(Electronic Control Unit)と称する)を更新対象ECUとし、ソフトウェアの更新を制御するソフトウェア更新装置が供されている。ソフトウェア更新装置は、非稼働面更新指示を更新対象ECUへ送信する。更新対象ECUは、ソフトウェア更新装置から非稼働面更新指示を受信すると、ソフトウェアを非稼働面に書き込んで非稼働面を更新し、非稼働面の更新を完了すると、更新完了通知をソフトウェア更新装置へ送信する。ソフトウェア更新装置は、更新対象ECUから更新完了通知を受信すると、面切り替え指示を更新対象ECUへ送信する。更新対象ECUは、ソフトウェア更新装置から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をソフトウェア更新装置へ送信し、ECUリセットを行う。
【0003】
例えば特許文献1には、ソフトウェアの更新が完了しなかった場合の対処として、ソフトウェアの更新が完了しなかったと特定すると、リカバリ制御情報を取得し、その取得したリカバリ制御情報に基づいてソフトウェアの更新を完了させる構成が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-201986号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の手法では、ソフトウェアの更新が完了しなかった場合にリカバリ制御情報により適切に対処することができる。しかしながら、正常でないソフトウェアが書き込まれた場合であっても非稼働面の更新が完了する場合がある。その場合、更新対象ECUにおいて、非稼働面の更新を完了した後に稼働面と非稼働面とを切り替えてしまうと、復帰する手段がなく、正常でないソフトウェアの書き込みに対して適切に対処することができない。
【0006】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、非稼働面の更新を完了して稼働面と非稼働面とを切り替えた後でも、正常でないソフトウェアの書き込みに対して適切に対処することができるソフトウェア更新装置、ソフトウェア更新システム、ソフトウェアの復帰方法及びソフトウェアの復帰プログラムを提供することにある。
【課題を解決するための手段】
【0007】
請求項1に記載した発明によれば、記憶領域を2つ以上の面で持つ電子制御装置をソフトウェアの更新対象とし、ソフトウェアの更新を制御する。更新指示送信部(14a)は、非稼働面更新指示を前記更新対象の電子制御装置へ送信させる。面切り替え指示送信部(14b)は、非稼働面の更新が完了された後に、面切り替え指示を前記更新対象の電子制御装置へ送信させる。更新正常判定部(14c)は、面切り替えが完了された後に、非稼働面の更新が正常に実施されたか否かを判定する。復帰部(14d)は、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された場合に、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる。
【0008】
面切り替え指示を更新対象の電子制御装置へ送信した後に、非稼働面の更新が正常に実施されたか否かを判定し、非稼働面の更新が正常に実施されなかったと特定すると、更新対象の電子制御装置を、面切り替え指示を送信する前の状態へ復帰させるようにした。ソフトウェアの更新を完了して稼働面と非稼働面とを切り替えた後でも、面切り替え指示を送信する前の状態へ復帰させることで、正常に更新されなかった面を稼働面とせず、正常でないソフトウェアの書き込みに対して適切に対処することができる。
【図面の簡単な説明】
【0009】
図1】第1実施形態を示す機能ブロック図
図2】CGWの処理を示すフローチャート
図3】更新対象ECU及び更新非対象ECUを示す図
図4】シーケンス図
図5】シーケンス図
図6】シーケンス図
図7】更新対象ECU、更新非対象ECU及び影響範囲を示す図
図8】シーケンス図
図9】シーケンス図
図10】シーケンス図
図11】シーケンス図
図12】第2実施形態を示す機能ブロック図
【発明を実施するための形態】
【0010】
以下、幾つかの実施形態について図面を参照して説明する。後続する実施形態において、先行する実施形態で説明した内容に対応する部分には同一の参照符号を付し、重複する説明を省略することがある。
【0011】
(第1実施形態)
第1実施形態について図1から図11を参照して説明する。ソフトウェア更新システム1は、車両に搭載されている車両側システム2と、OTA(Over The Air)センターとして機能するサーバ3とが通信ネットワーク4を介してデータ通信可能に構成されている。車両側システム2は、サーバ3と通信ネットワーク4を介して無線接続するデータ通信機として機能するDCM(Data Communication Module)5と、OTAマスタとして機能するCGW(Central Gateway)6(ソフトウェア更新装置に相当する)と、当該CGW6と車載ネットワーク7~9を介してデータ通信可能に構成されている多数のECU10a~10c,11a~11c,12a~12cとを備える。車載ネットワーク7~9は、例えばCAN(Controller Area Network)(登録商標)である。車載ネットワーク7~9は、例えばEthernet(登録商標)、FLEXRAY(登録商標)、CXPI(Clock Extension Peripheral Interface)(登録商標)等であっても良い。CGW6に接続される車載ネットワーク7~9の本数は3本に限らず任意である。各車載ネットワーク7~9に接続されるECUの個数は3個に限らず任意である。
【0012】
ECU10a~10c,11a~11c,12a~12cは、それそれ制御対象毎に同一の車載ネットワーク7~9に接続されている。例えばECU10a~10cは駆動系の制御を行う装置であり、ECU11a~11cはADAS(Advanced Driving Assistant System)系の制御を行う装置であり、ECU12a~12cはマルチメディア系の制御を行う装置である。これらECU10a~10c,11a~11c,12a~12cは、それぞれソフトウェアの改修や機能向上等によりソフトウェアの更新対象である更新対象ECUとなり得る。尚、ソフトウェアとは、コンピュータに動作を行わせるための処理手順を命令する所謂プログラムに加え、プログラムを実行する上で参照されるファイル、データ、ライブラリ等を含む。又、更新対象ECUは、ターゲットECUと称する場合がある。
【0013】
ECU10a~10c,11a~11c,12a~12cの種別として、ソフトウェアの記憶領域の構成により、ソフトウェアの記憶領域を2面で持つ2面メモリを搭載する2面構成と、ソフトウェアの記憶領域を1面でしか持たない1面メモリを搭載する1面構成とがある。2面メモリはデュアルバンクメモリと称される場合があり、1面メモリはシングルバンクメモリと称される場合がある。尚、ECUに搭載されるメモリは1面メモリであるが、外付けメモリをソフトウェアの記憶領域として使用する構成は、2面構成と同等として扱うことができる。この場合、外付けメモリは、ECUに内蔵されていても良いし、外部に配置されていても良い。
【0014】
2面構成のECUは、記憶領域である2つの面をそれぞれ稼働面と非稼働面として切り替え可能であり、新旧2つのバージョンのソフトウェアを同時に格納することができる。2面構成のECUは、走行制御に関与するソフトウェア及び走行制御に関与しないソフトウェアの何れについても、走行可能状態であるか駐車状態であるかに関わらず新バージョンのソフトウェアを記憶領域の非稼働面に書き込むことで、ソフトウェアのインストールを行うことができる。一方、1面構成のECUは、稼働面と非稼働面とを切り替える概念がなく、新旧2つのバージョンのソフトウェアを同時に格納することができない。1面構成のECUは、走行制御に関与するソフトウェアについては、駐車状態でのみ新バージョンのソフトウェアを記憶領域に書き込むことで、ソフトウェアのインストールを行うことができる。例えば車両がエンジン自動車であれば、走行可能状態とはイグニッションがオンの状態であり、駐車状態とはイグニッションがオフの状態である。例えば車両が電気自動車であれば、走行可能状態とはEV(Electric Vehicle)システムがオンの状態であり、駐車状態とはEVシステムがオフの状態である。本実施形態では、ECU10a~10c,11a~11c,12a~12cが2面構成であることを前提とする。
【0015】
DCM5は、サーバ3と通信ネットワーク4を介して無線接続することで当該サーバ3から配信された更新パッケージを受信可能となる。サーバ3から配信される更新パッケージには、諸元データと、ソフトウェアとが含まれる。諸元データには、更新対象ECUを特定可能なデータとして例えば更新対象ECUの識別情報(ID)が含まれる。更に、諸元データには、更新データ関連情報、ハードウェア属性情報及びソフトウェア属性情報のうち少なくとも1つが含まれる。更新データ関連情報は、例えば更新プログラムバージョン、更新プログラムサイズロールバックプログラムバージョン、ロールバックプログラムサイズ、書き込みデータ種別等である。ハードウェア属性情報は、例えば電源制御情報等である。ソフトウェア属性情報は、例えばセキュリティアクセス鍵情報、書き換え方法、転送サイズ等である。即ち、諸元データには、更新対象ECUが一つであるか複数であるかを特定可能な情報が含まれ、更新対象ECUが複数の場合には、バージョンを整合させる必要があるか否かの情報も含まれる。ECUのバージョンを整合させる必要があるか否かの情報は所定の組織団体により予め決定されている。
【0016】
DCM5は、サーバ3から配信された更新パッケージを取得すると、その取得した更新パッケージをCGW6へ転送する。CGW6は、DCM5から更新パッケージが転送されると、その転送された更新パッケージから諸元データ及びソフトウェアを抽出し、その抽出した諸元データから更新対象ECUを特定する。
【0017】
CGW6は、更新対象ECUを特定すると、その抽出したソフトウェアを更新対象ECUへ配信すると共に非稼働面更新指示を更新対象ECUへ送信する。更新対象ECUは、CGW6から非稼働面更新指示を受信すると、CGW6から受信したソフトウェアを非稼働面に書き込んで非稼働面を更新し、非稼働面の更新を完了すると、更新完了通知をCGW6へ送信する。CGW6は、更新対象ECUから更新完了通知を受信すると、面切り替え指示を更新対象ECUへ送信する。更新対象ECUは、CGW6から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。サーバ3から通信ネットワーク4を介して取得されたソフトウェアが更新対象ECUに書き込まれる態様は所謂無線リプロと称される。
【0018】
又、車載ネットワーク7にはリプログツール13が着脱可能に接続される。リプログツール13は、車載ネットワーク7と接続されている状態でソフトウェアを更新対象ECUへ配信すると共に更新指示を更新対象ECUへ送信する。リプログツール13から通信ネットワーク4を介さずに取得されたソフトウェアが更新対象ECUに書き込まれる態様は所謂有線リプロと称される。本実施形態では、リプログツール13が車載ネットワーク7と接続される構成を例示しているが、リプログツール13が車載ネットワーク7以外の車載ネットワークと接続される構成でも良いし、リプログツール13がCGW6を介して車載ネットワーク7と接続される構成でも良い。
【0019】
CGW6は、制御部14と、データ通信部15と、CAN通信部16とを備える。制御部14は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)及びI/O(Input/Output)等を有するマイコンを主体として構成されている。制御部14が提供する機能は、実体的なメモリ装置に記録されているソフトウェア及びそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、或いはそれらの組み合わせにより提供することができる。例えば制御部14がハードウェアである電子回路により提供される場合、それは多数の論理回路を含むデジタル回路やアナログ回路により提供することができる。制御部14が非遷移的実体的記録媒体に格納されているプログラムを実行することで当該プログラムに対応する処理が実行され、プログラムに対応する方法が実行される。データ通信部15は、通信ネットワーク4との間でのデータ信号の送受信を制御する。CAN通信部16は、車載ネットワーク7~9との間でのCAN信号の入出力を制御する。
【0020】
制御部14は、更新指示送信部14aと、面切り替え指示送信部14bと、更新正常判定部14cと、復帰部14dと、エラー通知部14eとを備える。これらの各部14a~14eは、ソフトウェアの復帰方法を実現すると共に、ソフトウェアの復帰プログラムを実行する。
【0021】
更新指示送信部14aは、非稼働面更新指示を更新対象ECUへ送信させる。面切り替え指示送信部14bは、非稼働面の更新が完了された後に、面切り替え指示を更新対象ECUへ送信させる。
【0022】
更新正常判定部14cは、面切り替えが完了された後に、テスト通信フレームを更新対象ECUへ送信させ、更新対象ECUからのテスト通信フレームに対する応答状況に基づいて非稼働面の更新が正常に実施されたか否かを判定する。更新正常判定部14cは、テスト通信フレームを更新対象ECUへ送信させた後に、テスト通信フレームの送信後から所定時間内に更新対象ECUから肯定応答を受信したと判定すると、非稼働面の更新が正常に実施されたと特定する。更新正常判定部14cは、テスト通信フレームを更新対象ECUへ送信させた後に、テスト通信フレームの送信後から所定時間内に更新対象ECUから否定応答を受信したと判定すると、又は更新対象ECUから肯定応答及び否定応答の何れも受信せずに所定時間が経過したと判定すると、非稼働面の更新が正常に実施されなかったと特定する。
【0023】
復帰部14dは、非稼働面の更新が正常に実施されなかったと更新正常判定部14cにより特定されると、面切り替え指示を更新対象ECUへ再度送信させ、最初の面切り替え指示を更新対象ECUへ送信させる前の状態へ復帰させる。
【0024】
エラー通知送信部14eは、非稼働面の更新が正常に実施されなかったと更新正常判定部14cにより特定されると、その更新対象ECUを特定可能なエラー情報を含むエラー通知を例えばセンター情報表示装置(以下、CID(Center Information Display)と称する)やメータ装置(何れも図示せず)等へ送信する。CIDやメータ装置は、CGW6からエラー通知を受信すると、その受信したエラー通知により特定されるエラー情報を表示する。又、エラー通知送信部14eは、エラー情報を含むエラー通知を例えばDCM5から通信ネットワーク4を介してサーバ3へ送信させる。サーバ3は、DCM5からエラー通知を受信すると、その受信したエラー通知を予め車両システム2と対応付けて登録されているスマートフォン等の外部端末(図示せず)へ送信する。外部端末は、サーバ3からエラー通知を受信すると、その受信したエラー通知により特定されるエラー情報を表示する。又、サーバ3は、DCM5から通信ネットワーク4を介してエラー通知を受信すると、その受信したエラー通知により特定されるエラー情報をエラー履歴として保存しても良い。
【0025】
次に、上記した構成の作用について図2から図11を参照して説明する。
CGW6において、制御部14は、非稼働面更新指示の送信条件が成立すると、非稼働面更新指示をCAN通信部16から更新対象ECUへ送信させ(S1、更新指示送信手順に相当する)、更新対象ECUからの更新完了通知の受信を待機する。更新対象ECUは、CGW6から非稼働面更新指示を受信すると、CGW6から受信したソフトウェアを非稼働面に書き込んで非稼働面を更新し、非稼働面の更新を完了すると、更新完了通知をCGW6へ送信する。
【0026】
制御部14は、非稼働面更新指示の送信後から所定時間内に更新対象ECUからの更新完了通知をCAN通信部16により受信したと判定し、面切り替え指示の送信条件が成立すると、面切り替え指示をCAN通信部16から更新対象ECUへ送信させ(S2、面切り替え送信手順に相当する)、更新対象ECUからの面切り替え完了通知の受信を待機する。更新対象ECUは、CGW6から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。
【0027】
制御部14は、面切り替え指示の送信後から所定時間内に更新対象ECUからの面切り替え完了通知をCAN通信部16により受信したと判定すると、テスト通信フレームをCAN通信部16から更新対象ECUへ送信させ(S3)、更新対象ECUからの応答を待機する。制御部14は、更新対象ECUから肯定応答を受信したか否かを判定し(S4、更新正常判定手順に相当する)、更新対象ECUから否定応答を受信したか否かを判定し(S5、更新正常判定手順)、テスト通信フレームの送信後から所定時間が経過したか否かを判定する(S6、更新正常判定手順)。
【0028】
制御部14は、テスト通信フレームの送信後から所定時間内に更新対象ECUから肯定応答を受信したと判定すると(S4:YES)、非稼働面の更新が正常に実施されたと特定し、一連の処理を終了する。
【0029】
一方、制御部14は、テスト通信フレームの送信後から所定時間内に更新対象ECUから否定応答を受信したと判定すると(S5:YES)、又は更新対象ECUから肯定応答及び否定応答の何れも受信せずに所定時間が経過したと判定すると(S6:YES)、非稼働面の更新が正常に実施されなかったと特定する。制御部14は、更新対象ECUが複数であるか否かを判定する(S7)。
【0030】
制御部14は、更新対象ECUが複数でなく一つであると判定すると(S7:NO)、面切り替え指示をCAN通信部16から更新対象ECUへ再度送信させ(S8、復帰手順に相当する)、更新対象ECUからの面切り替え完了通知の受信を待機する。更新対象ECUは、CGW6から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。
【0031】
制御部14は、面切り替え指示の送信後から所定時間内に更新対象ECUからの面切り替え完了通知をCAN通信部16により受信したと判定すると、その更新対象ECUを特定可能なエラー情報を含むエラー通知を例えばCIDやメータ装置等へ送信させ、非稼働面の更新が正常に実施されなかった旨をユーザに通知させ(S9)、一連の処理を終了する。
【0032】
制御部14は、更新対象ECUが複数であると判定すると(S7:YES)、その複数の更新対象ECUについてバージョンを整合させる必要があるECUの有無を確認する(S10)。制御部14は、バージョンを整合させる必要があるECUの有無を確認すると、面切り替え指示をCAN通信部16から該当する更新対象ECUへ再度送信させ(S11、復帰手順に相当する)、該当する更新対象ECUからの面切り替え完了通知の受信を待機する。該当する更新対象ECUは、非稼働面の更新が正常に実施されなかった更新対象ECUと、当該更新対象ECUとバージョンを整合させる必要がある更新対象ECUとを含む。該当する更新対象ECUは、CGW6から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信する。尚、制御部14は、面切り替え指示をCAN通信部16から該当しない更新対象ECU、即ち、バージョンを整合させる必要がない更新対象ECUへ再度送信させない。
【0033】
制御部14は、面切り替え指示の送信後から所定時間内に該当する更新対象ECUからの面切り替え完了通知をCAN通信部16により受信したと判定すると、その該当する更新対象ECUを特定可能なエラー情報を含むエラー通知を例えばCIDやメータ装置等へ送信させ、非稼働面の更新が正常に実施されなかった旨をユーザに通知させ(S9)、一連の処理を終了する。
【0034】
具体的に、更新対象ECUが一つの場合及び複数の場合について図3から図11を参照して説明する。尚、図3以降では、更新パッケージを「更新PKG」と図示している。
【0035】
(1)更新対象ECUが一つの場合(図3から図6参照)
図3に示すように、例えば更新対象ECUがECU10cである場合について説明する。図4に示すように、更新対象ECU10cは、CGW6から非稼働面更新指示を受信すると、非稼働面を更新し、非稼働面の更新を完了すると、更新完了通知をCGW6へ送信する。更新対象ECU10cは、CGW6から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。更新対象ECU10cは、CGW6からテスト通信フレームを受信すると、動作状態を判定する。
【0036】
更新対象ECU10cは、動作状態が正常であると特定すると、非稼働面の更新が正常に実施されたと特定し、肯定応答をCGW6へ送信する。一方、更新対象ECU10cは、動作状態が正常でないと特定すると、非稼働面の更新が正常に実施されなかったと特定し、図5に示すように、否定応答をCGW6へ送信する、又は、図6に示すように、肯定応答及び否定応答の何れもCGW6へ送信しない。
【0037】
CGW6は、更新対象ECU10cから否定応答を受信すると、又は肯定応答及び否定応答の何れも受信せずに所定時間が経過すると、面切り替え指示を更新対象ECU10cへ再度送信する。更新対象ECU10cは、CGW6から面切り替え指示を再度受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。
【0038】
(2)更新対象ECUが複数の場合(図7から図11参照)
図7に示すように、例えばECU10a~ECU10c、ECU11a~ECU11c、ECU12a~ECU12cがそれぞれ同一の影響範囲であり、更新対象ECUがECU10b、ECU10c及びECU11bである場合について説明する。同一の影響範囲とは、例えば連携して制御を行うこと等によりバージョンを整合させる必要がある関係にあることを意味する。
【0039】
図8に示すように、ECU10b、ECU10c及びECU11bは、それぞれCGW6から非稼働面更新指示を受信すると、非稼働面を更新し、非稼働面の更新を完了すると、更新完了通知をCGW6へ送信する。ECU10b、ECU10c及びECU11bは、それぞれCGW6から面切り替え指示を受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。ECU10b、ECU10c及びECU11bは、それぞれCGW6からテスト通信フレームを受信すると、動作状態を判定する。
【0040】
ECU10b、ECU10c及びECU11bは、図9に示すように、それぞれ動作状態が正常であると特定すると、非稼働面の更新が正常に実施されたと特定し、肯定応答をCGW6へ送信する。一方、例えば更新対象ECU10cは、動作状態が正常でないと特定すると、非稼働面の更新が正常に実施されなかったと特定し、図10に示すように、否定応答をCGW6へ送信する、又は、図11に示すように、肯定応答及び否定応答の何れもCGW6へ送信しない。
【0041】
CGW6は、更新対象ECU10cから否定応答を受信すると、又は肯定応答及び否定応答の何れも受信せずに所定時間が経過すると、バージョンを整合させる必要があるECUの有無を確認し、この場合は、バージョンを整合させる必要があるECUとして更新対象ECU10bを特定する。CGW6は、面切り替え指示を更新対象ECU10b及び更新対象ECU10cへ再度送信する。CGW6は、面切り替え指示を更新対象ECU11bへ再度送信しない。更新対象ECU10b及び更新対象ECU10cは、それぞれCGW6から面切り替え指示を再度受信すると、稼働面と非稼働面とを切り替え、面切り替えを完了すると、面切り替え完了通知をCGW6へ送信し、ECUリセットを行う。
【0042】
以上に説明したように第1実施形態によれば、以下に示す作用効果を得ることができる。CGW6において、面切り替え指示を更新対象ECUへ送信した後に、非稼働面の更新が正常に実施されたか否かを判定し、非稼働面の更新が正常に実施されなかったと特定すると、更新対象ECUを、面切り替え指示を送信する前の状態へ復帰させるようにした。ソフトウェアの更新を完了して稼働面と非稼働面とを切り替えた後でも、面切り替え指示を送信する前の状態へ復帰させることで、正常に更新されなかった面を稼働面とせず、正常でないソフトウェアの書き込みに対して適切に対処することができる。
【0043】
テスト通信フレームを更新対象ECUへ送信し、更新対象ECUからのテスト通信フレームに対する応答状況に基づいて非稼働面の更新が正常に実施されたか否かを判定するようにした。テスト通信フレームに対する応答状況を判定するという簡単な構成で、非稼働面の更新が正常に実施されたか否かを判定することができる。
【0044】
更新対象ECUが一つの場合に、非稼働面の更新が正常に実施されなかったと特定すると、その特定した更新対象ECUのみを、面切り替え指示を送信する前の状態へ復帰させるようにした。非稼働面の更新が正常に実施されなかった更新対象ECUのみを、面切り替え指示を送信する前の状態へ適切に復帰させることができる。
【0045】
更新対象ECUが複数の場合に、非稼働面の更新が正常に実施されなかったと特定すると、その特定した更新対象ECUに加え、その特定した更新対象ECUとバージョンを整合させる必要がある更新対象ECUを、面切り替え指示を送信する前の状態へ復帰させるようにした。非稼働面の更新が正常に実施されなかった更新対象ECUに加え、その非稼働面の更新が正常に実施されなかった更新対象ECUとバージョンを整合させる必要がある更新対象ECUを、面切り替え指示を送信する前の状態へ適切に復帰させることができる。例えば連携して制御を行う関係にある複数の更新対象ECUにおいてバージョンの不整合による不具合の発生を未然に回避することができる。
【0046】
非稼働面の更新が正常に実施されなかった特定すると、エラー通知を例えばDCM5から通信ネットワーク4を介してサーバ3へ送信させるようにした。サーバ3において、エラー通知により特定されるエラー情報をエラー履歴として保存することができ、例えば該当するソフトウェアの配信を停止することでエラーの拡大を未然に回避する等して適切に対処することができる。
【0047】
(第2実施形態)
第2実施形態について図12を参照して説明する。第1実施形態では、CGW6は、更新対象ECUから否定応答を受信すると、又は肯定応答及び否定応答の何れも受信せずに所定時間が経過すると、非稼働面更新指示や最初の面切り替え指示を送信した車載ネットワークを同じ車載ネットワークを介して面切り替え指示を更新対象ECUへ再度送信する構成である。第2実施形態は、CGW6とECU10a~10c,11a~11c,12a~12cとの間の車載ネットワークが冗長に構成されている。第2実施形態では、CGW6は、更新対象ECUから否定応答を受信すると、又は肯定応答及び否定応答の何れも受信せずに所定時間が経過すると、非稼働面更新指示や最初の面切り替え指示を送信した車載ネットワークとは異なる車載ネットワークを介して面切り替え指示を更新対象ECUへ再度送信する構成である。
【0048】
図12において、ソフトウェア更新システム21は、車両側システム22と、サーバ3とが通信ネットワーク4を介してデータ通信可能に構成されている。車両側システム22において、CGW6は、車載ネットワーク7,23を介してECU10a~10cとデータ通信可能に接続されており、車載ネットワーク8,24を介してECU11a~11cとデータ通信可能に接続されており、車載ネットワーク9,25を介してECU12a~12とデータ通信可能に接続されている。
【0049】
この場合、CGW6は、例えばテスト通信フレームを車載ネットワーク7を介して更新対象ECU10bに送信した後に、更新対象ECU10bから肯定応答及び否定応答の何れも受信せずに所定時間が経過すると、非稼働面更新指示や最初の面切り替え指示を送信した車載ネットワーク7とは異なる車載ネットワーク23を介して面切り替え指示を更新対象ECUへ再度送信する。即ち、更新対象ECU10bにおいて非稼働面の更新が正常に実施されなかった場合に、更新対象ECU10bが車載ネットワーク7を介してCGW6とデータ通信不能になる場合があり得る。
【0050】
第2実施形態では、CGW6は、車載ネットワーク7,23が冗長に構成されているので、車載ネットワーク7を介して更新対象ECU10bとデータ通信不能になったとしても、面切り替え指示を車載ネットワーク23を介して更新対象ECU10bへ再度送信することができる。
【0051】
以上に説明したように第2実施形態によれば、CGW6において、面切り替え指示を更新対象ECUへ送信した後に、非稼働面の更新が正常に実施されたか否かを判定し、非稼働面の更新が正常に実施されなかったと特定すると、更新対象ECUを、面切り替え指示を送信する前の状態へ復帰させるようにした。第1実施形態と同様の作用効果を得ることができ、ソフトウェアの更新を完了して稼働面と非稼働面とを切り替えた後でも、正常でないソフトウェアの書き込みに対して適切に対処することができる。
【0052】
CGW6とECU10a~10c,11a~11c,12a~12cとの車載ネットワーク7~9,23~25を冗長に構成した。例えば更新対象ECU10bが車載ネットワーク7を介してCGW6とデータ通信不能になったとしても、CGW6が面切り替え指示を車載ネットワーク23を介して更新対象ECU10bへ再度送信することができ、正常でないソフトウェアの書き込みに対して適切に対処することができる。
【0053】
(その他の実施形態)
本開示は、実施例に準拠して記述されたが、当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0054】
本開示に記載の制御部及びその手法は、コンピュータソフトウェアに具体化された一つ乃至は複数の機能を実行するようにソフトウェアされたプロセッサ及びメモリを構成することにより提供された専用コンピュータにより実現されても良い。或いは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によりプロセッサを構成することにより提供された専用コンピュータにより実現されても良い。若しくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにソフトウェアされたプロセッサ及びメモリと一つ以上のハードウェア論理回路により構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより実現されても良い。又、コンピュータソフトウェアは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていても良い。
【0055】
本開示は、特許請求の範囲の記載に加え、以下の発明も含む。
[1]
記憶領域を2つ以上の面で持つ電子制御装置をソフトウェアの更新対象とし、ソフトウェアの更新を制御するソフトウェア更新装置(6)であって、
非稼働面更新指示を前記更新対象の電子制御装置へ送信させる更新指示送信部(14a)と、
非稼働面の更新が完了された後に、面切り替え指示を前記更新対象の電子制御装置へ送信させる面切り替え指示送信部(14b)と、
面切り替えが完了された後に、非稼働面の更新が正常に実施されたか否かを判定する更新正常判定部(14c)と、
非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された場合に、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させる復帰部(14d)と、を備えるソフトウェア更新装置。
【0056】
[2]
前記更新正常判定部は、テスト通信フレームを前記更新対象の電子制御装置へ送信させ、前記更新対象の電子制御装置からの前記テスト通信フレームに対する応答状況に基づいて非稼働面の更新が正常に実施されたか否かを判定する[1]に記載したソフトウェア更新装置。
【0057】
[3]
前記復帰部は、面切り替え指示を前記テスト通信フレームが伝送される車載ネットワークと同一の車載ネットワークを介して前記更新対象の電子制御装置へ再度送信させることで、前記更新対象の電子制御装置を最初の面切り替え指示が送信される前の状態へ復帰させる[2]に記載したソフトウェア更新装置。
【0058】
[4]
前記復帰部は、面切り替え指示を前記テスト通信フレームが伝送される車載ネットワークとは異なる車載ネットワークを介して前記更新対象の電子制御装置へ再度送信させることで、前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ再度復帰させる[2]に記載したソフトウェア更新装置。
【0059】
[5]
前記復帰部は、前記更新対象の電子制御装置が一つの場合に、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された前記更新対象の電子制御装置のみを面切り替え指示が送信される前の状態へ復帰させる[1]から[4]の何れか一項に記載したソフトウェア更新装置。
【0060】
[6]
前記復帰部は、前記更新対象の電子制御装置が複数の場合に、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された前記更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させると共に、当該更新対象の電子制御装置とバージョンを整合させる必要がある更新対象の電子制御装置も面切り替え指示が送信される前の状態へ復帰させる[1]から[4]の何れか一項に記載したソフトウェア更新装置。
【0061】
[7]
前記復帰部は、前記更新対象の電子制御装置が複数の場合に、非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された前記更新対象の電子制御装置をソフトウェアの更新を指示する前の状態へ復帰させるが、当該更新対象の電子制御装置とバージョンを整合させる必要がない更新対象の電子制御装置を面切り替え指示が送信される前の状態へ復帰させない[1]から[4]の何れか一項に記載したソフトウェア更新装置。
【0062】
[8]
非稼働面の更新が正常に実施されなかったと前記更新正常判定部により特定された場合に、エラー通知を外部に送信させるエラー通知送信部(14e)を備える[1]から[7]の何れか一項に記載したソフトウェア更新装置。
【符号の説明】
【0063】
図面中、1,21はソフトウェア更新システム、6はCGW(ソフトウェア更新装置)、10a~10c,11a~11c,12a~12cは電子制御装置、14は制御部、14aは更新指示送信部、14bは面切り替え指示送信部、14cは更新正常判定部、14dは復帰部、14eはエラー通知部である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12