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

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

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

特許7605176制御システム、更新制御方法、および、更新制御プログラム
<>
  • 特許-制御システム、更新制御方法、および、更新制御プログラム 図1
  • 特許-制御システム、更新制御方法、および、更新制御プログラム 図2
  • 特許-制御システム、更新制御方法、および、更新制御プログラム 図3
  • 特許-制御システム、更新制御方法、および、更新制御プログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】制御システム、更新制御方法、および、更新制御プログラム
(51)【国際特許分類】
   G06F 8/656 20180101AFI20241217BHJP
   B60R 16/02 20060101ALI20241217BHJP
【FI】
G06F8/656
B60R16/02 660U
【請求項の数】 7
(21)【出願番号】P 2022070246
(22)【出願日】2022-04-21
(65)【公開番号】P2023160124
(43)【公開日】2023-11-02
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】藤元 貴之
(72)【発明者】
【氏名】三宅 優樹
(72)【発明者】
【氏名】渋谷 知樹
(72)【発明者】
【氏名】塩原 和義
【審査官】松平 英
(56)【参考文献】
【文献】特開2021-124829(JP,A)
【文献】国際公開第2021/075361(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
G06F 8/60-8/77
G06F 9/44-9/445
G06F 9/451
B60R 16/00-17/02
(57)【特許請求の範囲】
【請求項1】
無線通信でソフトウェアを更新可能な制御システムであって、
制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、前記記憶部に記憶された特定ソフトウェアを実行して前記特定処理を実行する制御部とを備える複数の特定制御装置と、
前記特定処理を実行する前記特定制御装置を切替える切替制御装置とを含み、
前記特定制御装置は、3つ以上であり、他の前記特定制御装置と協調して前記特定処理を実行し、
前記切替制御装置は、複数の前記特定制御装置のうち前記特定処理を実行している複数の前記特定制御装置の前記記憶部に記憶されている前記特定ソフトウェアのいずれかを更新する場合に、更新を開始する前に、前記特定処理を実行する前記特定制御装置を、前記特定処理を実行していない他の前記特定制御装置に切替え、
前記特定制御装置の前記制御部は、前記特定処理を実行する前記特定制御装置が他の前記特定制御装置に切替えられているときに、前記記憶部に記憶されている前記特定ソフトウェアを更新する、制御システム。
【請求項2】
前記特定制御装置の前記制御部は、
前記記憶部に記憶されている前記特定ソフトウェアの更新前後で前記特定処理に互換性があるか否かを判断し、
互換性がないと判断した場合、いずれの前記特定制御装置においても前記特定処理が実行されていないときに、前記特定ソフトウェアを更新し、
互換性があると判断した場合、前記特定処理を実行する前記特定制御装置が他の前記特定制御装置に切替えられているときに、前記特定ソフトウェアを更新する、請求項1に記載の制御システム。
【請求項3】
前記制御システムは、車両に搭載され、
所定条件は、前記特定ソフトウェアを更新可能な前記車両の走行状況が、前記特定ソフトウェアの更新に要する所定期間以上、継続する走行状況であることを示す条件であり、
前記特定制御装置の前記制御部は、
前記所定条件が成立しているか否かを判断し、
前記所定条件が成立している場合に、前記特定ソフトウェアを更新する、請求項1に記載の制御システム。
【請求項4】
前記所定条件は、前記所定期間、前記車両が高速道路を走行している状況が継続し、かつ、前記所定期間、前記車両の走行計画に変更が無い状況が継続し、かつ、前記所定期間、前記車両から所定距離以内に他車両が存在しない状況が継続するとの条件である、請求項に記載の制御システム。
【請求項5】
前記所定条件は、前記所定期間、前記車両が一般道路を走行している状況が継続し、かつ、前記所定期間、前記車両が停車している状況が継続するとの条件である、請求項に記載の制御システム。
【請求項6】
無線通信でソフトウェアを更新可能な制御システムにおける更新制御方法であって、
前記制御システムは、
制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、前記記憶部に記憶された特定ソフトウェアを実行して前記特定処理を実行する制御部とを備える複数の特定制御装置と、
前記特定処理を実行する前記特定制御装置を切替える切替制御装置とを含み、
前記特定制御装置は、3つ以上であり、他の前記特定制御装置と協調して前記特定処理を実行し、
前記更新制御方法は、
前記切替制御装置が、複数の前記特定制御装置のうち前記特定処理を実行している複数の前記特定制御装置の前記記憶部に記憶されている前記特定ソフトウェアのいずれかを更新する場合に、更新を開始する前に、前記特定処理を実行する前記特定制御装置を、前記特定処理を実行していない他の前記特定制御装置に切替えるステップと、
前記特定制御装置の前記制御部が、前記特定処理を実行する前記特定制御装置が他の前記特定制御装置に切替えられているときに、前記記憶部に記憶されている前記特定ソフトウェアを更新するステップとを含む、更新制御方法。
【請求項7】
無線通信でソフトウェアを更新可能な制御システムにおいて実行される更新制御プログラムであって、
前記制御システムは、
制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、前記記憶部に記憶された特定ソフトウェアを実行して前記特定処理を実行する制御部とを備える複数の特定制御装置と、
前記特定処理を実行する前記特定制御装置を切替える切替制御装置とを含み、
前記特定制御装置は、3つ以上であり、他の前記特定制御装置と協調して前記特定処理を実行し、
前記更新制御プログラムは、
複数の前記特定制御装置のうち前記特定処理を実行している複数の前記特定制御装置の前記記憶部に記憶されている前記特定ソフトウェアのいずれかを更新する場合に、更新を開始する前に、前記特定処理を実行する前記特定制御装置を、前記特定処理を実行してない他の前記特定制御装置に切替えるステップを、前記切替制御装置に実行させ、
前記特定処理を実行する前記特定制御装置が他の前記特定制御装置に切替えられているときに、前記記憶部に記憶されている前記特定ソフトウェアを更新するステップを、前記特定制御装置の前記制御部に実行させる、更新制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、制御システム、更新制御方法、および、更新制御プログラムに関し、特に、無線通信でソフトウェアを更新可能な制御システム、その制御システムにおける更新制御方法、および、その制御システムにおいて実行される更新制御プログラムに関する。
【背景技術】
【0002】
近年、車両を制御するためのソフトウェアを更新する場合に、更新サーバと車両との間で更新のためのデータを無線通信するOTA(Over the Air)という技術が知られている。この技術を用いて、車両の自動運転機能または運転支援機能に関するソフトウェアを更新する前に、自動運転機能または運転支援機能の一部または全部の作動について制限を開始し、更新が完了した後に、この制限を解除する車両があった(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-167646号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の車両の制御システムにおいては、ソフトウェアの更新を行うときに、車両の機能が制限されるため、車両の制御に影響するといった問題があった。
【0005】
この開示は、このような課題を解決するためになされたものであって、その目的は、制御システムのソフトウェアの更新を行うときに制御システムにおける制御への影響を抑制することが可能な制御システム、更新制御方法、および、更新制御プログラムを提供することである。
【課題を解決するための手段】
【0006】
この開示に係る制御システムは、無線通信でソフトウェアを更新可能な制御システムであって、制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、記憶部に記憶された特定ソフトウェアを実行して特定処理を実行する制御部とを備える複数の特定制御装置と、特定処理を実行する特定制御装置を切替える切替制御装置とを含む。切替制御装置は、複数の特定制御装置のうち特定処理を実行している特定制御装置の記憶部に記憶されている特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行する特定制御装置を他の特定制御装置に切替える。特定制御装置の制御部は、特定処理を実行する特定制御装置が他の特定制御装置に切替えられているときに、記憶部に記憶されている特定ソフトウェアを更新する。
【0007】
このような構成によれば、制御対象を制御する特定処理を実行している特定制御装置の特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行する特定制御装置が他の特定制御装置に切替えられ、特定処理を実行する特定制御装置が他の特定制御装置に切替えられているときに、特定ソフトウェアが更新される。その結果、制御システムのソフトウェアの更新を行うときに制御システムにおける制御への影響を抑制することが可能な制御システムを提供することができる。
【0008】
特定制御装置は、3つ以上であり、他の特定制御装置と協調して特定処理を実行するようにしてもよい。切替制御装置は、特定処理を実行している複数の特定制御装置の記憶部に記憶されている特定ソフトウェアのいずれかを更新するときに、特定処理を実行する特定制御装置を、特定処理を実行していない他の特定制御装置に切替えるようにしてもよい。
【0009】
このような構成によれば、特定制御装置が他の特定制御装置と協調して特定処理を実行するような冗長構成が必要な場合であっても、冗長構成を維持しながら、制御システムにおける制御への影響を抑制しつつ、特定制御装置のソフトウェアを更新することができる。
【0010】
特定制御装置の制御部は、記憶部に記憶されている特定ソフトウェアの更新前後で前記特定処理に互換性があるか否かを判断し、互換性がないと判断した場合、いずれの特定制御装置においても特定処理が実行されていないときに、特定ソフトウェアを更新し、互換性があると判断した場合、特定処理を実行する特定制御装置が他の特定制御装置に切替えられているときに、特定ソフトウェアを更新するようにしてもよい。
【0011】
このような構成によれば、特定ソフトウェアの更新前後で特定処理に互換性がない場合は、いずれの特定制御装置においても特定処理が実行されていないときに、特定ソフトウェアが更新され、互換性がある場合は、特定処理を実行する特定制御装置が他の特定制御装置に切替えられているときに、特定ソフトウェアが更新される。このため、特定処理が実行されている状況において、互換性がない特定ソフトウェアの実行による特定処理と、互換性がある特定ソフトウェアの実行による特定処理とが混在しないようにすることができる。その結果、互換性がないことにより特定処理が正常に動作しなくなることを防止できる。
【0012】
制御システムは、車両に搭載されるようにしてもよい。所定条件は、特定ソフトウェアを更新可能な車両の走行状況が、特定ソフトウェアの更新に要する所定期間以上、継続する走行状況であることを示す条件であり、特定制御装置の制御部は、所定条件が成立しているか否かを判断し、所定条件が成立している場合に、特定ソフトウェアを更新するようにしてもよい。
【0013】
このような構成によれば、特定ソフトウェアを更新可能な車両の走行状況が、特定ソフトウェアの更新に要する所定期間以上、継続する走行状況であることを示す所定条件が成立している場合に、特定ソフトウェアが更新される。その結果、特定処理がいずれかの特定制御装置で実行中であっても、適切なタイミングで特定制御装置の特定ソフトウェアを更新することができる。
【0014】
所定条件は、所定期間、車両が高速道路を走行している状況が継続し、かつ、所定期間、車両の走行計画に変更が無い状況が継続し、かつ、所定期間、車両から所定距離以内に他車両が存在しない状況が継続するとの条件であるようにしてもよい。
【0015】
所定条件は、所定期間、車両が一般道路を走行している状況が継続し、かつ、所定期間、車両が停車している状況が継続するとの条件であるようにしてもよい。
【0016】
この開示の他の局面によれば、更新制御方法は、無線通信でソフトウェアを更新可能な制御システムにおける更新制御方法である。制御システムは、制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、記憶部に記憶された特定ソフトウェアを実行して特定処理を実行する制御部とを備える複数の特定制御装置と、特定処理を実行する特定制御装置を切替える切替制御装置とを含む。更新制御方法は、切替制御装置が、複数の特定制御装置のうち特定処理を実行している特定制御装置の記憶部に記憶されている特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行する特定制御装置を他の特定制御装置に切替えるステップと、特定制御装置の制御部が、特定処理を実行する特定制御装置が他の特定制御装置に切替えられているときに、記憶部に記憶されている特定ソフトウェアを更新するステップとを含む。
【0017】
このような構成によれば、制御システムのソフトウェアの更新を行うときに制御システムにおける制御への影響を抑制することが可能な更新制御方法を提供することができる。
【0018】
この開示のさらに他の局面によれば、更新制御プログラムは、無線通信でソフトウェアを更新可能な制御システムにおいて実行される更新制御プログラムである。制御システムは、制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、記憶部に記憶された特定ソフトウェアを実行して特定処理を実行する制御部とを備える複数の特定制御装置と、特定処理を実行する特定制御装置を切替える切替制御装置とを含む。更新制御プログラムは、複数の特定制御装置のうち特定処理を実行している特定制御装置の記憶部に記憶されている特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行する特定制御装置を他の特定制御装置に切替えるステップを、切替制御装置に実行させ、特定処理を実行する特定制御装置が他の特定制御装置に切替えられているときに、記憶部に記憶されている特定ソフトウェアを更新するステップを、特定制御装置の制御部に実行させる。
【0019】
このような構成によれば、制御システムのソフトウェアの更新を行うときに制御システムにおける制御への影響を抑制することが可能な更新制御プログラムを提供することができる。
【発明の効果】
【0020】
この開示によれば、制御システムのソフトウェアの更新を行うときに制御システムにおける制御への影響を抑制することが可能な、制御システム、更新制御方法、および、更新制御プログラムを提供することができる。
【図面の簡単な説明】
【0021】
図1】この実施の形態に係る車両を制御するためのソフトウェアを更新するためのOTAシステムの構成の概略を示すブロック図である。
図2】この実施の形態の自動運転ECUにおける特定ソフトウェアの更新の流れを示す第1のフローチャートである。
図3】この実施の形態の自動運転ECUにおける特定ソフトウェアの更新の流れを示す第2のフローチャートである。
図4】この実施の形態の更新条件成立判定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照しつつ、この開示の実施の形態は説明される。以下の説明では、同一の部品には同一の符号が付されている。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返されない。
【0023】
図1は、この実施の形態に係る車両を制御するためのソフトウェアを更新するためのOTAシステムの構成の概略を示すブロック図である。図1を参照して、OTAシステムは、複数の車両100と更新サーバ200とを含む。
【0024】
車両100は、自動運転ECU(Electronic Control Unit)110と、ナビゲーションシステム120と、各種センサ130と、パワートレーンシステム140と、ステアリングシステム150と、ブレーキシステム160と、DCM(Data Communication Module)190とを含む。自動運転ECU110、ナビゲーションシステム120、各種センサ130、パワートレーンシステム140、ステアリングシステム150、ブレーキシステム160、および、DCM190は、CAN(Controller Area Network)等の車載の通信ネットワーク180を介して互いに通信可能に構成されている。
【0025】
DCM190は、更新サーバ200などの外部装置とインターネット等の通信ネットワーク900を経由して無線で通信可能なデバイスであり、外部装置との間で所定の情報を送受信する。
【0026】
パワートレーンシステム140は、モータジェネレータまたはエンジンなどの駆動源と、駆動源からの動力を車輪に伝達するトランスミッションと、駆動源およびトランスミッションを制御するECUとを含む。パワートレーンシステム140のECUは、アクセルペダルの操作量を示す信号およびシフトレバーの操作内容を示す信号、または、自動運転ECU110からの制御信号にしたがって、シフトレンジを切替え、要求された駆動力を発生するよう駆動源を制御する。
【0027】
ステアリングシステム150は、車輪を操舵する操舵装置と、操舵装置を制御するECUとを含み、ステアリングホイールの操作量を示す信号、または、自動運転ECU110からの制御信号にしたがって、要求された車輪の舵角となるよう操舵装置を制御する。
【0028】
ブレーキシステム160は、車輪を制動する制動装置と、制動装置を制御するECUとを含み、ブレーキペダルの操作量を示す信号、または、自動運転ECU110からの制御信号にしたがって、要求された制動力を発生するよう制動装置を制御する。
【0029】
各種センサ130は、車両100の外部状況を検出するように構成されたセンサを含むとともに、車両100の走行状態に応じた情報ならびに操舵操作、アクセル操作およびブレーキ操作を検出するように構成されたセンサ(いずれも図示せず)を含む。具体的には、各種センサ130は、たとえば、カメラ、レーダー(Radar)、ライダー(LIDAR:Laser Imaging Detection and Ranging)、車速センサ、加速度センサ、ヨーレートセンサ(いずれも図示せず)を含み得る。
【0030】
ナビゲーションシステム120は、GPS(Global Positioning System)受信機と、地図情報データベースと交通情報受信機とプロセッサとを含む。GPS受信機は、人工衛星からの電波に基づいて車両100の位置を特定する。ナビゲーションシステム120は、GPS受信機によって特定された、地図情報データベース上の車両100の位置情報および交通情報受信機によって受信された道路交通情報を、自動運転ECU110に送信する。道路交通情報は、たとえば、FM多重放送等によって提供されている道路交通情報(たとえばVICS(登録商標)情報)、および/または、プローブ車両あるいはプローブセンタから収集した道路交通情報である。この道路交通情報は、少なくとも渋滞情報を含み、その他、道路規制情報や駐車場情報等も含み得る。
【0031】
自動運転ECU110は、SoC(System-on-a-Chip)111と、複数のMCU(Micro Controller Unit)とを含む。この実施の形態においては、自動運転ECU110は、MCUとして、3つのMCU116A~116C(図面では、それぞれ、MCU_A、MCU_BおよびMCU_Cと記載)を含む。SoC111は、CPU112とメモリ113とを含む。MCU116A~116Cは、それぞれ、CPU117A~117Cとメモリ118A~118Cとを含む。
【0032】
メモリ113,118A~118Cは、それぞれ、RAM(Random Access Memory)、ROM(Read Only Memory)およびフラッシュメモリなどを含み、SoC111およびMCU116A~116Cで実行されるプログラム等のソフトウェアおよび処理対象のデータ等を記憶する。
【0033】
CPU112,117A~117Cは、それぞれ、メモリ113,118A~118Cに記憶されたプログラムにしたがって、SoC111およびMCU116A~116Cに入力されたデータまたはメモリ113,118A~118Cに記憶されたデータを処理して、処理結果のデータを、SoC111およびMCU116A~116Cの外部に出力させたり、メモリ113,118A~118Cに記憶させたりする。
【0034】
自動運転ECU110は、現在地から、指定された目的地まで、車両100が自動で走行するよう制御する。具体的には、SoC111は、各種センサ130およびナビゲーションシステム120からの情報を用いて、現在地から目的地までのルートプランを作成し、車両100の周辺の他車両、人、動物および障害物などの物標を認識し、周辺の物標およびルートプランに応じた車両100の動きを特定し、特定した車両100の動きをMCU116A~116Cに伝達する。MCU116A~116Cは、伝達された車両100の動きを実現するような、駆動、操舵および制動の制御量を算出し、算出した制御量を示す制御信号を、パワートレーンシステム140、ステアリングシステム150、および、ブレーキシステム160に送信する。
【0035】
更新サーバ200は、車両100を制御するためのソフトウェアを更新するためのサーバである。更新サーバ200は、プロセッサ210と、メモリ220と、入力部230と、出力部240と、補助記憶装置260と、通信部290とを含む。
【0036】
メモリ220は、RAM(Random Access Memory)、ROM(Read Only Memory)およびフラッシュメモリなどを含み、更新サーバ200で実行されるプログラム等のソフトウェアおよび処理対象のデータ等を記憶する。
【0037】
補助記憶装置260は、HDD(Hard Disk Drive)、SSD(Solid State Drive)およびリムーバブルメディアドライブなどを含み、メモリ220を補助して、更新サーバ200で実行されるプログラム等のソフトウェアおよび処理対象のデータ等を記憶し、メモリ220と比較して大容量のデータを記憶する。
【0038】
入力部230は、キーボードおよびマウス等の入力デバイスを含み、ユーザによって入力デバイスから入力された情報をプロセッサ210に送信する。
【0039】
出力部240は、ディスプレイおよびスピーカ等の出力デバイスを含み、プロセッサ210から受信した情報を出力デバイスに出力する。
【0040】
通信部290は、車両100などの外部装置とインターネット等の通信ネットワーク900を経由して通信可能なデバイスであり、外部装置との間で所定の情報を送受信する。
【0041】
プロセッサ210は、メモリ220または補助記憶装置260に記憶されたプログラムにしたがって、入力部230もしくは通信部290からのデータまたはメモリ220もしくは補助記憶装置260に記憶されたデータを処理して、出力部240または通信部290に出力させたり、メモリ220または補助記憶装置260に記憶させたりする。
【0042】
この実施の形態においては、車両100を制御するためのソフトウェアを更新する場合に、更新サーバ200と車両100との間で更新のためのデータをOTA技術にしたがって送受信する。このOTA技術を用いて、車両の先進運転支援システム(ADAS:Advanced Driver-Assistance Systems)による運転支援機能または自動運転機能に関するソフトウェアを更新するときに、運転支援機能または自動運転機能の一部または全部の作動について制限を開始し、更新が完了した後に、この制限を解除する車両100があった。
【0043】
しかし、この車両100の制御システムにおいては、ソフトウェアの更新を行うときに、車両100の機能が制限されるため、車両100の制御に影響するといった問題があった。
【0044】
そこで、SoC111は、複数のMCU116A~116Cのうち、制御対象(パワートレーンシステム140、ステアリングシステム150およびブレーキシステム160)を制御する特定処理を実行しているMCU(以下、MCU116という)のメモリ(以下、メモリ118という)に記憶されている特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行するMCU116を他の特定制御装置に切替える。MCU116のCPU(以下、CPU117という)は、特定処理を実行するMCU116が他のMCUに切替えられているときに、メモリ118に記憶されている特定ソフトウェアを更新する。
【0045】
これにより、制御対象を制御する特定処理を実行しているMCU116の特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行するMCU116が他の特定制御装置MCU116に切替えられ、特定処理を実行するMCU116が他のMCU116に切替えられているときに、特定ソフトウェアが更新される。その結果、自動運転ECU110のソフトウェアの更新を行うときに自動運転ECU110における制御への影響を抑制することができる。
【0046】
図2は、この実施の形態の自動運転ECU110における特定ソフトウェアの更新の流れを示す第1のフローチャートである。図3は、この実施の形態の自動運転ECU110における特定ソフトウェアの更新の流れを示す第2のフローチャートである。特定ソフトウェアは、制御対象(ここでは、パワートレーンシステム140、ステアリングシステム150およびブレーキシステム160)を制御する特定処理(ここでは、車両100の自動運転のための処理)を実行するためのソフトウェアである。
【0047】
SoC111のCPU112は、この特定ソフトウェアの更新前後で特定処理に互換性があるか否かを判断し、互換性がないと判断した場合、いずれのMCU116A~116Cにおいても特定処理が実行されていないときに、特定ソフトウェアを更新し、互換性があると判断した場合、図2および図3で説明するように、特定処理を実行するMCU116が他のMCU116に切替えられているときに、特定ソフトウェアを更新する。
【0048】
たとえば、互換性がないと判断する場合は、特定ソフトウェアに新機能が追加された場合であってもよいし、特定ソフトウェアの性能が向上された場合であってもよい。また、特定ソフトウェアに新機能が追加された場合、または、特定ソフトウェアの性能が向上された場合であっても、特定ソフトウェアによる制御指示値が同等であれば、互換性があると判断するようにしてもよい。特定ソフトウェアに新機能は追加されていないが制御指示値が同等でなくなった場合は、互換性がないと判断するようにしてもよい。
【0049】
図2および図3を参照して、まず、SoC111のCPU112は、自動運転ECU110のSoC111およびMCU116A~116C(MCU116A~116Cのソフトウェアの少なくとも一部は共通)の更新された特定ソフトウェアのデータを、更新サーバ200からOTAでダウンロードする処理が完了したときに、OTAでのダウンロードが完了した旨の情報と、更新された特定ソフトウェアのデータとを、MCU116A~116Cに送信するとともに、OTAでのダウンロードが完了した旨の情報を、自動運転ECU110と協調して動作する他ECUに送信する(ステップS111)。
【0050】
メモリ113,118A~118Cに含まれるフラッシュメモリは、デュアルバンクフラッシュメモリであり、プログラムを記憶するための2つの記憶領域(2つのバンク)が含まれる。2つの記憶領域のうち、現在、実行されている特定ソフトウェアが記憶されている一方の記憶領域(一方のバンク)のことを、以下「アクティブ面」といい、他方の記憶領域(他方のバンク)のことを、以下「書込み面」という。SoC111のCPU112は、ダウンロードされた更新された特定ソフトウェアのデータを、メモリ113に含まれるフラッシュメモリの中の書込み面に書込む。MCU116A~116Cは、それぞれ、更新された特定ソフトウェアのデータを受信した場合、ダウンロードされた更新された特定ソフトウェアのデータを、メモリ118A~118Cに含まれるフラッシュメモリの中の書込み面に書込む。
【0051】
次に、SoC111のCPU112は、特定ソフトウェアを切替えるタイミングを確認する要求を、MCU116Cに送信する(ステップS112)。MCU116A~116Cで実行される特定ソフトウェアは、1つのメインのMCU116と、他の1つのサブのMCU116とが協調して実行されるソフトウェアである。ここでは、メインのMCU116は、MCU116Cであり、サブのMCU116は、MCU116Bである。
【0052】
MCU116CのCPU117Cは、旧バージョンの特定ソフトウェアを、メインのMCU116として実行している。MCU116BのCPU117Bは、旧バージョンの特定ソフトウェアを、サブのMCU116として実行している。メインのMCU116であるMCU116CのCPU117Cは、特定ソフトウェアを切替えるタイミングを確認する要求を受信すると、更新条件成立判定処理を実行する(ステップS120)。
【0053】
図4は、この実施の形態の更新条件成立判定処理の流れを示すフローチャートである。図4を参照して、MCU116CのCPU117Cは、現在走行中の道路の種別が高速道路(たとえば、高速自動車国道,自動車専用道路)であるか、高速道路以外の一般道路であるか判断する(ステップS121)。現在走行中の道路が高速道路であると判断した場合、MCU116CのCPU117Cは、今後、所定期間、高速道路の走行が継続する予定であるか否かを、ナビゲーションシステム120からの予定経路のデータを用いて判断する(ステップS122)。なお、所定期間は、SoC111およびMCU116A~116Cの特定ソフトウェアの更新に要する期間以上の期間である。特定ソフトウェアの更新に要する期間は、実機またはシミュレーションで予め特定される。予め特定された特定ソフトウェアの更新の要する期間に基づいて、所定期間が予め定められる。
【0054】
所定期間、高速道路の走行が継続する(ステップS122でYES)と判断した場合、MCU116CのCPU117Cは、今後、所定期間、走行計画が変更される予定が無いか否かを判断する(ステップS123)。たとえば、ナビゲーションシステム120において走行計画を変更するための処理が、現在、開始されていない場合、走行計画が、所定期間、変更される予定が無いと判断される。
【0055】
所定期間、走行計画が変更される予定が無い(ステップS123でYES)と判断した場合、MCU116CのCPU117Cは、今後、所定期間、車両100から所定距離以内に他車両が無い見込みであるか否かを判断する(ステップS124)。たとえば、車両100の各種センサ130からの情報を用いて特定された、周辺の他車両の位置、近付いてくる速度、および、離れていく速度などを用いて、所定期間、車両100から所定距離以内に他車両が無い見込みであるか否かが判断される。
【0056】
一方、ステップS121において現在走行中の道路が一般道路であると判断した場合、MCU116CのCPU117Cは、赤信号で停車している状況、または、踏切の手前で停車している状況で、今後、所定期間、車両100が停車する予定であるか否かを判断する(ステップS125)。たとえば、信号または踏切が通行可能な状態になるまでの期間は、ナビゲーションシステム120で取得される道路交通情報に基づいて特定されたり、信号または踏切のシステムと通信することによって特定されたりする。
【0057】
所定期間、車両100から所定距離以内に他車両が無い見込みである(ステップS124でYES)と判断した場合、または、所定期間、車両100が停車する予定である(ステップS125でYES)と判断した場合、MCU116CのCPU117Cは、特定ソフトウェアの更新を許可する(ステップS126)。その後、MCU116CのCPU117Cは、実行する処理をこの更新条件成立判定処理の呼出元の処理に戻す。
【0058】
所定期間が経過するまで、高速道路の走行が継続しない(ステップS122でNO)と判断した場合、所定期間が経過するまでに、走行計画が変更される予定が有る(ステップS123でNO)と判断した場合、所定期間が経過するまでに、車両100から所定距離以内に他車両が入ってくる見込みがある(ステップS124でNO)と判断した場合、または、所定期間が経過するまでに、車両100が停車から走行を開始する予定である(ステップS125でNO)と判断した場合、MCU116CのCPU117Cは、特定ソフトウェアの更新を禁止する(ステップS127)。その後、MCU116CのCPU117Cは、実行する処理をこの更新条件成立判定処理の呼出元の処理に戻す。
【0059】
図2に戻って、図4のステップS126で特定ソフトウェアの更新が許可された場合、MCU116CのCPU117Cは、OTAでの特定ソフトウェアの更新における制御面の切替が可能である旨の情報をSoC111に送信する(ステップS131)。制御面の切替とは、アクティブ面と書込み面とを切替えることをいう。
【0060】
次に、SoC111のCPU112は、SoC111の制御面を切替えるためのリセットの開始前である旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS132)。これに応じて、MCU116A~116Cおよび他ECUは、SoC111の関連の通信の異常を検出しないように、このような通信の処理にマスクを掛ける(ステップS133)。MCU116A~116Cは、このような通信の処理以外の制御を継続するフラグをオンにする(ステップS134)。MCU116A~116Cおよび他ECUは、準備が完了した旨の情報をSoC111に送信する(ステップS135)。
【0061】
次に、SoC111のCPU112は、SoC111の制御面を切替えるためのリセットを開始する旨の情報を、MCU116A~116Cおよび他ECUに送信し(ステップS136)、制御面を切替えるためのリセットを実行する(ステップS137)。リセット後、SoC111が再起動されると、書込み面がアクティブ面に切替えられる。SoC111のCPU112は、制御面を切替えるためのリセットが完了すると、完了した旨の情報をMCU116A~116Cおよび他ECUに送信する(ステップS138)。
【0062】
次に、SoC111のCPU112は、MCU116Aの制御面を切替えるためのリセットの開始前である旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS142)。これに応じて、SoC111、MCU116B,116Cおよび他ECUは、MCU116Aの関連の通信の異常を検出しないように、このような通信の処理にマスクを掛ける(ステップS143)。MCU116B,116Cは、このような通信の処理以外の制御を継続するフラグをオンにする(ステップS144)。MCU116A~116Cおよび他ECUは、準備が完了した旨の情報をSoC111に送信する(ステップS145)。
【0063】
次に、SoC111のCPU112は、MCU116Aの制御面を切替えるためのリセットを開始する旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS146)。MCU116AのCPU117Aは、制御面を切替えるためのリセットを実行する(ステップS147)。リセット後、MCU116Aが再起動されると、書込み面がアクティブ面に切替えられる。MCU116AのCPU117Aは、制御面を切替えるためのリセットが完了すると、完了した旨の情報をSoC111、MCU116B,116Cおよび他ECUに送信する(ステップS148)。その後、SoC111のCPU112、MCU116AのCPU117A、および、他ECUは、互いに、それぞれの特定ソフトウェアのバージョンが整合しているかのチェックを実行する(ステップS149)。
【0064】
次に、SoC111のCPU112は、MCU116Aの更新後の特定ソフトウェアで用いられる現在の自動運転のルートを保存するための要求を、MCU116Aに送信する(ステップS151)。MCU116AのCPU117Aは、更新後の特定ソフトウェアで用いられる現在の自動運転のルートを保存する(ステップS152)。MCU116AのCPU117Aは、更新後の特定ソフトウェアで用いられる現在の自動運転のルートが保存されたことの確認が完了した旨の情報をSoC111に送信する(ステップS153)。
【0065】
図3に進んで、SoC111のCPU112は、MCU116Bの制御面を切替えるためのリセットの開始前である旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS162)。これに応じて、SoC111のCPU112、MCU116A,116CのCPU117A,117Cおよび他ECUは、MCU116Bの関連の通信の異常を検出しないように、このような通信の処理にマスクを掛ける(ステップS163)。SoC111のCPU112およびMCU116A,116CのCPU117A,117Cは、このような通信の処理以外の制御を継続するフラグをオンにする(ステップS164)。MCU116A~116CのCPU117A~117Cおよび他ECUは、準備が完了した旨の情報をSoC111に送信する(ステップS165)。
【0066】
次に、SoC111のCPU112は、MCU116Bの制御面を切替えるためのリセットを開始する旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS166)。MCU116BのCPU117Bは、制御面を切替えるためのリセットを実行する(ステップS167)。これにより、MCU116Bが実行していた更新前の特定ソフトウェアのサブのMCU116としての動作が終了する。これに伴い、MCU116AのCPU117Aは、特定ソフトウェアを実行するサブのMCU116Bが動作しなくなったことを検出して、特定ソフトウェアのサブのMCU116としての動作を開始する。リセット後、MCU116Bが再起動されると、書込み面がアクティブ面に切替えられる。MCU116BのCPU117Bは、制御面を切替えるためのリセットが完了すると、完了した旨の情報をSoC111、MCU116A,116Cおよび他ECUに送信する(ステップS168)。その後、SoC111のCPU112、MCU116A,116BのCPU117A,117B、および、他ECUは、互いに、それぞれの特定ソフトウェアのバージョンが整合しているかのチェックを実行する(ステップS169)。
【0067】
次に、SoC111のCPU112は、MCU116Bの更新後の特定ソフトウェアで用いられる現在の自動運転のルートを保存するための要求を、MCU116Bに送信する(ステップS171)。MCU116BのCPU117Bは、更新後の特定ソフトウェアで用いられる現在の自動運転のルートを保存する(ステップS172)。MCU116BのCPU117Bは、更新後の特定ソフトウェアで用いられる現在の自動運転のルートが保存されたことの確認が完了した旨の情報をSoC111に送信する(ステップS173)。
【0068】
次に、SoC111のCPU112は、特定ソフトウェアを実行するメインのMCU116を、MCU116CからMCU116Aに切替える要求を、MCU116A~116Cおよび他ECUに送信する(ステップS174)。MCU116A~116CのCPU117A~117Cおよび他ECUは、特定ソフトウェアを実行するメインのMCU116をMCU116Aとするための設定が完了した旨の情報を、SoC111に送信する(ステップS175)。その後、MCU116AのCPU117Aは、更新後の特定ソフトウェアを実行するメインのMCU116としての動作を開始する。また、MCU116BのCPU117Bは、更新後の特定ソフトウェアを実行するサブのMCU116としての動作を開始する。
【0069】
次に、SoC111のCPU112は、MCU116Cの制御面を切替えるためのリセットの開始前である旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS182)。これに応じて、SoC111のCPU112、MCU116A,116BのCPU117A,117Bおよび他ECUは、MCU116Cの関連の通信の異常を検出しないように、このような通信の処理にマスクを掛ける(ステップS183)。SoC111のCPU112およびMCU116A,116BのCPU117A,117Bは、このような通信の処理以外の制御を継続するフラグをオンにする(ステップS184)。MCU116A~116CのCPU117A~117Cおよび他ECUは、準備が完了した旨の情報をSoC111に送信する(ステップS185)。
【0070】
次に、SoC111のCPU112は、MCU116Cの制御面を切替えるためのリセットを開始する旨の情報を、MCU116A~116Cおよび他ECUに送信する(ステップS186)。MCU116CのCPU117Cは、制御面を切替えるためのリセットを実行する(ステップS187)。リセット後、MCU116Cが再起動されると、書込み面がアクティブ面に切替えられる。MCU116CのCPU117Cは、制御面を切替えるためのリセットが完了すると、完了した旨の情報をSoC111、MCU116A,116Bおよび他ECUに送信する(ステップS188)。その後、SoC111のCPU112、MCU116A~116CのCPU117A~117C、および、他ECUは、互いに、それぞれの特定ソフトウェアのバージョンが整合しているかのチェックを実行する(ステップS189)。
【0071】
次に、SoC111のCPU112は、特定ソフトウェアを実行するメインのMCU116を、MCU116AからMCU116Cに切替える要求を、MCU116A~116Cおよび他ECUに送信する(ステップS194)。MCU116A~116CのCPU117A~117Cおよび他ECUは、特定ソフトウェアを実行するメインのMCU116をMCU116Cとするための設定が完了した旨の情報を、SoC111に送信する(ステップS195)。その後、MCU116CのCPU117Cは、更新後の特定ソフトウェアを実行するメインのMCU116としての動作を開始する。また、MCU116BのCPU117Bは、更新後の特定ソフトウェアを実行するサブのMCU116としての動作を継続する。
【0072】
[変形例]
(1) 前述した実施の形態においては、OTAでソフトウェアを更新可能な制御システムが自動運転ECU110であることとしたが、これに限定されず、車両100における他の制御システム、たとえば、駆動制御ECUであってもよいし、ADAS機能の処理を実行するECUであってもよい。
【0073】
(2) 前述した実施の形態においては、特定処理が、車両100の自動運転のための処理であることとした。しかし、これに限定されず、特定処理は、車両100の自動駐車のための処理であってもよいし、ADASによる運転支援のための処理であってもよい。
【0074】
(3) 前述した実施の形態においては、制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶する記憶部と、記憶部に記憶された特定ソフトウェアを実行して特定処理を実行する制御部とを備える複数の特定制御装置が、自動運転ECU110に含まれるMCU116A~116Cであることとしたが、これに限定されず、車両100における他の制御装置、たとえば、他のECUに含まれる他のMCUの組であってもよい。
【0075】
(4) 前述した実施の形態においては、特定制御装置であるMCU116A~116Cが、3つの組であることとした。しかし、これに限定されず、特定制御装置は、2つの組であってもよいし、4つ以上の組であってもよい。
【0076】
(5) 前述した実施の形態においては、特定処理を実行する特定制御装置を切替える切替制御装置が、自動運転ECU110に含まれるSoC111であることとしたが、これに限定されず、車両100における他の制御装置、たとえば、ソフトウェアの更新制御の専用のECUに含まれるSoCであってもよい。
【0077】
(6) 前述した実施の形態においては、メモリ118A~118Cにデュアルバンクのフラッシュメモリが含まれ、現在の実行対象の特定ソフトウェアが記憶されている一方の記憶領域(一方のバンク、アクティブ面)を、更新された特定ソフトウェアが記憶されている他方の記憶領域(他方のバンク、書込み面)に切替えることで、特定ソフトウェアが更新されるようにした。しかし、これに限定されず、メモリ118A~118Cにシングルバンクのフラッシュメモリが含まれ、現在の実行対象の特定ソフトウェアが記憶されている記憶領域の特定ソフトウェアが、更新後の特定ソフトウェアに書替えられることで、特定ソフトウェアが更新されるようにしてもよい。
【0078】
(7) 前述した実施の形態においては、図2および図3で示したように、特定ソフトウェアの更新において、途中で中断される場合は示していない。しかし、これに限定されず、特定ソフトウェアの更新において、途中においても図4で示した更新条件成立判定処理を実行するようにして、途中において更新条件が成立しなくなった場合に、MCU116A~116Cの特定ソフトウェアを更新前の特定ソフトウェアに戻すようにしてもよい。また、途中において更新エラーが発生した場合に、MCU116A~116Cの特定ソフトウェアを更新前の特定ソフトウェアに戻すようにしてもよい。
【0079】
(8) 前述した実施の形態を、無線通信でソフトウェアを更新可能な制御システムの開示と捉えることができ、無線通信でソフトウェアを更新可能な制御システムにおける更新制御方法の開示と捉えることができ、無線通信でソフトウェアを更新可能な制御システムにおいて実行される更新制御プログラムの開示と捉えることができる。
【0080】
[まとめ]
(1) 図1で示したように、自動運転ECU110は、OTAでソフトウェアを更新可能な制御システムであって、制御対象を制御する特定処理を実行するための特定ソフトウェアを記憶するメモリ118A~118Cと、メモリ118A~118Cに記憶された特定ソフトウェアを実行して特定処理を実行するCPU117A~117Cとを備える複数のMCU116A~116Cと、特定処理を実行するMCU116A~116Cを切替えるSoC111とを含む。図2および図3で示したように、SoC111は、複数のMCU116A~116Cのうち特定処理を実行しているMCU116のメモリ118に記憶されている特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行するMCU116を他のMCU116に切替える(たとえば、ステップS175)。MCU116のCPU117は、特定処理を実行するMCU116が他のMCU116に切替えられているときに、メモリ118に記憶されている特定ソフトウェアを更新する(たとえば、ステップS187)。
【0081】
これにより、制御対象を制御する特定処理を実行しているMCU116の特定ソフトウェアを更新する場合に、更新を開始する前に、特定処理を実行するMCU116が他のMCU116に切替えられ、特定処理を実行するMCU116が他のMCU116に切替えられているときに、特定ソフトウェアが更新される。その結果、自動運転ECU110のソフトウェアの更新を行うときに自動運転ECU110における制御への影響を抑制することができる。
【0082】
(2) 図1で示したように、MCU116A~116Cは、3つ以上であり、他のMCU116と協調して特定処理を実行する。図2および図3で示したように、SoC111は、特定処理を実行している複数のMCU116A~116Cのメモリ118A~118Cに記憶されている特定ソフトウェアのいずれかを更新するときに、特定処理を実行するMCU116を、特定処理を実行していない他のMCU116に切替える。
【0083】
これにより、MCU116が他のMCU116と協調して特定処理を実行するような冗長構成が必要な場合であっても、冗長構成を維持しながら、制御システムにおける制御への影響を抑制しつつ、MCU116のソフトウェアを更新することができる。
【0084】
(3) MCU116A~116CのCPU117A~117Cは、メモリ118A~118Cに記憶されている特定ソフトウェアの更新前後で特定処理に互換性があるか否かを判断し、互換性がないと判断した場合、いずれのMCU116A~116Cにおいても特定処理が実行されていないときに、特定ソフトウェアを更新するようにしてもよい。図2および図3で示したように、互換性があると判断した場合、特定処理を実行するMCU116が他のMCU116に切替えられているときに、特定ソフトウェアを更新する。
【0085】
これにより、特定ソフトウェアの更新前後で特定処理に互換性がない場合は、いずれのMCU116においても特定処理が実行されていないときに、特定ソフトウェアが更新され、互換性がある場合は、特定処理を実行するMCU116が他のMCU116に切替えられているときに、特定ソフトウェアが更新される。このため、特定処理が実行されている状況において、互換性がない特定ソフトウェアの実行による特定処理と、互換性がある特定ソフトウェアの実行による特定処理とが混在しないようにすることができる。その結果、互換性がないことにより特定処理が正常に動作しなくなることを防止できる。
【0086】
(4) 図1で示したように、自動運転ECU110は、車両100に搭載される。図4で示したように、所定条件は、特定ソフトウェアを更新可能な車両100の走行状況が、特定ソフトウェアの更新に要する所定期間以上、継続する走行状況であることを示す条件である。図2から図4で示したように、MCU116のCPU117は、所定条件が成立しているか否かを判断し、所定条件が成立している場合に、特定ソフトウェアを更新する。
【0087】
これにより、特定ソフトウェアを更新可能な車両100の走行状況が、特定ソフトウェアの更新に要する所定期間以上、継続する走行状況であることを示す所定条件が成立している場合に、特定ソフトウェアが更新される。その結果、特定処理がいずれかのMCU116で実行中であっても、適切なタイミングでMCU116の特定ソフトウェアを更新することができる。
【0088】
(5) 図4で示したように、所定条件は、所定期間、車両100が高速道路を走行している状況が継続し、かつ、所定期間、車両100の走行計画に変更が無い状況が継続し、かつ、所定期間、車両100から所定距離以内に他車両が存在しない状況が継続するとの条件である。
【0089】
(6) 図4で示したように、所定条件は、所定期間、車両100が一般道路を走行している状況が継続し、かつ、所定期間、車両100が停車している状況が継続するとの条件である。
【0090】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0091】
100 車両、110 自動運転ECU、111 SoC、112,117,117A~117C CPU、113,118,118A~118C,220 メモリ、116,116A~116C MCU、120 ナビゲーションシステム、130 各種センサ、140 パワートレーンシステム、150 ステアリングシステム、160 ブレーキシステム、180,900 通信ネットワーク、200 更新サーバ、210 プロセッサ、230 入力部、240 出力部、260 補助記憶装置、290 通信部。
図1
図2
図3
図4