(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-06
(45)【発行日】2025-01-15
(54)【発明の名称】車載システムおよび制御装置
(51)【国際特許分類】
G06F 8/65 20180101AFI20250107BHJP
【FI】
G06F8/65
(21)【出願番号】P 2022059407
(22)【出願日】2022-03-31
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】塩原 和義
(72)【発明者】
【氏名】三宅 優樹
(72)【発明者】
【氏名】藤元 貴之
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2019-159399(JP,A)
【文献】特開2015-005041(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
ソフトウェアを記憶する記憶領域として設定された複数の記憶領域のうちのいずれかの記憶領域を起動用記憶領域として設定し、前記起動用記憶領域に記憶された前記ソフトウェアを用いて起動可能な制御装置を複数含むことによって構成される車載システムであって、
複数の前記制御装置は、マスタ制御装置とスレイブ制御装置とを含み、
前記マスタ制御装置は、前記スレイブ制御装置において、前記起動用記憶領域と異なる記憶領域に記憶されるソフトウェアが更新された場合に、前記スレイブ制御装置に対して更新された前記ソフトウェアが記憶される記憶領域を前記起動用記憶領域に設定する切替指示を実行し、
前記スレイブ制御装置は、前記切替指示を受けた場合には、次回の起動時に前記起動用記憶領域の設定を実施するとともに、起動毎に前記起動用記憶領域に記憶された前記ソフトウェアの識別情報が複数の前記制御装置間で整合しているか否かを判定するための整合判定処理の実行を前記マスタ制御装置に要求し、
前記マスタ制御装置は、前記スレイブ制御装置から前記整合判定処理の実行の要求を受けたときに前記整合判定処理を実行
し、
前記マスタ制御装置は、前記整合判定処理の完了後に完了通知を前記スレイブ制御装置に送信し、
前記スレイブ制御装置は、前記完了通知を用いて前記整合判定処理の実行を要求するか否かを決定する、車載システム。
【請求項2】
前記マスタ制御装置は、前記起動用記憶領域に記憶された前記ソフトウェアの識別情報が複数の前記制御装置間で整合していないと判定される場合には、前記ソフトウェアにより実現される機能の実行を禁止する、請求項1に記載の車載システム。
【請求項3】
前記スレイブ制御装置は、
起動時に前記整合判定処理の実行可否の判定を前記マスタ制御装置に要求し、
前記マスタ制御装置からの前記実行可否の判定結果と前記完了通知とを用いて前記整合判定処理の実行を要求するか否かを決定する、請求項
1に記載の車載システム。
【請求項4】
前記スレイブ制御装置は、第1制御装置と第2制御装置とを含み、
前記マスタ制御装置は、前記第1制御装置から前記実行可否の判定要求を受ける場合には、前記第1制御装置からの前記判定要求よりも前に前記第2制御装置からの前記判定要求を受けていないときに前記整合判定処理の実行が可能であることを示す判定結果を前記第1制御装置に送信する、請求項
3に記載の車載システム。
【請求項5】
前記マスタ制御装置は、前記第1制御装置から前記実行可否の判定が要求された後に前記第2制御装置から前記実行可否の判定が要求されるときに前記判定結果を前記第2制御装置に送信することを禁止する、請求項
4に記載の車載システム。
【請求項6】
前記マスタ制御装置は、起動時に実行される前記整合判定処理の第1完了通知と、前記スレイブ制御装置から前記整合判定処理の実行が要求されたときに実行される前記整合判定処理の第2完了通知とを前記スレイブ制御装置に送信し、
前記スレイブ制御装置は、前記第1完了通知を受信した場合および前記第2完了通知を受信した場合は、前記整合判定処理の実行の要求を停止し、前記第1完了通知を受信しない場合は、前記整合判定処理の実行を要求する、請求項1~
5のいずれかに記載の車載システム。
【請求項7】
ソフトウェアを記憶する記憶領域として設定された複数の記憶領域のうちのいずれかの記憶領域を起動用記憶領域として設定し、前記起動用記憶領域に記憶されたソフトウェアを用いて起動可能な複数の制御装置のうちのいずれかの制御装置であって、
前記制御装置は、他の制御装置において、前記起動用記憶領域と異なる記憶領域に記憶されるソフトウェアが更新された場合に、前記他の制御装置に対して、更新された前記ソフトウェアが記憶される記憶領域を前記起動用記憶領域に設定する切替指示を実行し、
前記他の制御装置において前記切替指示を受けると、次回の起動時に前記起動用記憶領域の設定が実施されるとともに、起動毎に前記起動用記憶領域に記憶された前記ソフトウェアの識別情報が前記複数の制御装置間で整合しているか否かを判定するための整合判定処理の実行が前記制御装置に要求され、
前記制御装置は、前記他の制御装置から前記整合判定処理の実行の要求を受けたときに前記整合判定処理を実行
し、
前記制御装置は、前記整合判定処理の完了後に完了通知を前記他の制御装置に送信し、
前記他の制御装置は、前記完了通知を用いて前記整合判定処理の実行を要求するか否かを決定する、制御装置。
【請求項8】
ソフトウェアを記憶する記憶領域として設定された複数の記憶領域のうちのいずれかの記憶領域を起動用記憶領域として設定し、前記起動用記憶領域に記憶されたソフトウェアを用いて起動可能な複数の制御装置のうちのいずれかの制御装置であって、
前記制御装置は、前記起動用記憶領域と異なる記憶領域に記憶されるソフトウェアが更新された場合に、更新された前記ソフトウェアが記憶される記憶領域が前記起動用記憶領域に設定する切替指示を受けると、次回の起動時に前記起動用記憶領域の設定を実施するとともに、起動毎に前記起動用記憶領域に記憶された前記ソフトウェアの識別情報が前記複数の制御装置間で整合しているか否かを判定するための整合判定処理の実行を前記複数の制御装置のうちのいずれかのマスタ制御装置に要求し、
前記マスタ制御装置において前記制御装置から前記整合判定処理の実行の要求を受けたときに前記整合判定処理が実行され
、
前記マスタ制御装置における前記整合判定処理の完了後に完了通知が前記制御装置に送信され、
前記制御装置は、前記完了通知を用いて前記整合判定処理の実行を要求するか否かを決定する、制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ソフトウェアの更新が可能な制御装置を含む車載システムに関する。
【背景技術】
【0002】
車両には、複数のアクチュエータとその各々を制御する複数の制御装置とによって構成される車載システムが搭載される。これらの複数の制御装置の機能としては、ソフトウェアによって実現される場合がある。ソフトウェアによって実現されることにより、市場に出た後においても更新プログラムの提供を受けることで機能の修正や追加等が可能となる。また、自動運転等の各種運転支援のような複数の制御装置間で連携して行なわれる機能の修正や追加に対しては、対象となる全ての制御装置のソフトウェアの更新が求められ、各々の制御装置における更新が適切に行なわれたかについての確認が求められる。
【0003】
たとえば、特開2020-123253号公報(特許文献1)には、車載システムの起動時に応じて、各ECUの記憶部に格納されたリストの識別情報を比較し、リストに記録されているソフトウェアの識別情報の組み合わせを用いて複数のECUの各々のソフトウェアの組み合わせが整合しているか否かを判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
更新後のソフトウェアの実行は、複数のECUにおいて更新前のソフトウェアから一斉に切り替えるために次回の車載システムの起動時に行なわれる場合がある。その場合、ソフトウェアの更新が適切に行なわれたかについての確認も次回の車載システムの起動時に行なわれることとなる。
【0006】
しかしながら、複数の制御装置のうちのいずれかにおいて次回の車載システムの起動時までの間に電源の瞬断等の何らかの不具合によって一部の制御装置のみが再起動すると、再起動した一部の制御装置においてのみ更新後のソフトウェアが実行されることとなり、複数の制御装置におけるソフトウェアの識別情報の組み合わせが不整合な状態が少なくとも次回の車載システムの起動時まで継続することとなり、機能の修正や追加が適切に実施できない場合がある。
【0007】
本開示は、上述した課題を解決するためになされたものであって、その目的は、複数の制御装置においてソフトウェアの識別情報の組み合わせの不整合を早期に検出する車載システムおよび制御装置を提供することである。
【課題を解決するための手段】
【0008】
本開示のある局面に係る車載システムは、ソフトウェアを記憶する記憶領域として設定された複数の記憶領域のうちのいずれかの記憶領域を起動用記憶領域として設定し、起動用記憶領域に記憶されたソフトウェアを用いて起動可能な制御装置を複数含むことによって構成される車載システムである。複数の制御装置は、マスタ制御装置とスレイブ制御装置とを含む。マスタ制御装置は、スレイブ制御装置において、起動用記憶領域と異なる記憶領域に記憶されるソフトウェアが更新された場合に、スレイブ制御装置に対して更新されたソフトウェアが記憶される記憶領域を起動用記憶領域に設定する切替指示を実行する。スレイブ制御装置は、切替指示を受けた場合には、次回の起動時に起動用記憶領域の設定を実施するとともに、起動毎に起動用記憶領域に記憶されたソフトウェアの識別情報が複数の制御装置間で整合しているか否かを判定するための整合判定処理の実行をマスタ制御装置に要求する。マスタ制御装置は、スレイブ制御装置から整合判定処理の実行の要求を受けたときに整合判定処理を実行する。
【0009】
このようにすると、スレイブ制御装置の起動毎にマスタ制御装置に対して整合判定処理の実行が要求され、マスタ制御装置において整合判定処理が実行される。そのため、更新されたソフトウェアを記憶する記憶領域が次回の起動時に起動用記憶領域として設定される場合において、不具合等によりスレイブ制御装置のみが再起動した場合でも再起動時に整合判定処理の実行がマスタ制御装置に要求される。これにより、複数の制御装置においてソフトウェアの識別情報の組み合わせの不整合を早期に検出することができる。
【0010】
ある実施の形態においては、マスタ制御装置は、起動用記憶領域に記憶されたソフトウェアの識別情報が複数の制御装置間で整合していないと判定される場合には、ソフトウェアにより実現される機能の実行を禁止する。
【0011】
このようにすると、複数の制御装置においてソフトウェアの識別情報の組み合わせが整合していない状態でソフトウェアにより実現される機能が実行されることを抑制することができる。
【0012】
さらにある実施の形態においては、マスタ制御装置は、整合判定処理の完了後に完了通知をスレイブ制御装置に送信する。スレイブ制御装置は、完了通知を用いて整合判定処理の実行を要求するか否かを決定する。
【0013】
このようにすると、たとえば、マスタ制御装置に対して整合判定処理の実行の要求が複数ある場合に、不必要に整合判定処理が実行されることを抑制することができる。
【0014】
さらにある実施の形態においては、スレイブ制御装置は、起動時に整合判定処理の実行可否の判定をマスタ制御装置に要求する。スレイブ制御装置は、マスタ制御装置からの実行可否の判定結果と完了通知とを用いて整合判定処理の実行を要求するか否かを決定する。
【0015】
このようにすると、整合判定処理の実行を要求する前に、実行の可否の判定を要求することで、不必要に整合判定処理の実行を要求することを抑制することができる。
【0016】
さらにある実施の形態においては、スレイブ制御装置は、第1制御装置と第2制御装置とを含む。マスタ制御装置は、第1制御装置から実行可否の判定要求を受ける場合には、第1制御装置からの判定要求よりも前に第2制御装置からの判定要求を受けていないときに整合判定処理の実行が可能であることを示す判定結果を第1制御装置に送信する。
【0017】
このようにすると、マスタ制御装置は、第2制御装置よりも先に判定要求を受けた第1制御装置に対して整合判定処理の実行が可能であることを示す判定結果を送信することにより第1制御装置からの要求に応じて整合判定処理を実行することができる。
【0018】
さらにある実施の形態においては、マスタ制御装置は、第1制御装置から実行可否の判定が要求された後に第2制御装置から実行可否の判定が要求されるときに判定結果を第2制御装置に送信することを禁止する。
【0019】
このようにすると、第1制御装置と第2制御装置の両方から整合判定処理の実行が要求されることを抑制することができる。
【0020】
さらにある実施の形態においては、マスタ制御装置は、起動時に実行される整合判定処理の第1完了通知と、スレイブ制御装置から整合判定処理の実行が要求されたときに実行される整合判定処理の第2完了通知とをスレイブ制御装置に送信する。スレイブ制御装置は、第1完了通知を受信した場合および第2完了通知を受信した場合は、整合判定処理の実行の要求を停止し、第1完了通知を受信しない場合は、整合判定処理の実行を要求する。
【0021】
このようにすると、スレイブ制御装置が不必要に整合判定処理の実行を要求することを抑制することができる。
【0022】
本開示の他の局面に係る制御装置は、ソフトウェアを記憶する記憶領域として設定された複数の記憶領域のうちのいずれかの記憶領域を起動用記憶領域として設定し、起動用記憶領域に記憶されたソフトウェアを用いて起動可能な複数の制御装置のうちのいずれかの制御装置である。制御装置は、他の制御装置において、起動用記憶領域と異なる記憶領域に記憶されるソフトウェアが更新された場合に、他の制御装置に対して、更新されたソフトウェアが記憶される記憶領域を起動用記憶領域に設定する切替指示を実行する。他の制御装置において切替指示を受けると、次回の起動時に起動用記憶領域の設定が実施されるとともに、起動毎に起動用記憶領域に記憶されたソフトウェアの識別情報が複数の制御装置間で整合しているか否かを判定するための整合判定処理の実行が制御装置に要求される。制御装置は、他の制御装置から整合判定処理の実行の要求を受けたときに整合判定処理を実行する。
【0023】
本開示のさらに他の局面に係る制御装置は、ソフトウェアを記憶する記憶領域として設定された複数の記憶領域のうちのいずれかの記憶領域を起動用記憶領域として設定し、起動用記憶領域に記憶されたソフトウェアを用いて起動可能な複数の制御装置のうちのいずれかの制御装置である。制御装置は、起動用記憶領域と異なる記憶領域に記憶されるソフトウェアが更新された場合に、更新されたソフトウェアが記憶される記憶領域が起動用記憶領域に設定する切替指示を受けると、次回の起動時に起動用記憶領域の設定を実施するとともに、起動毎に起動用記憶領域に記憶されたソフトウェアの識別情報が複数の制御装置間で整合しているか否かを判定するための整合判定処理の実行を複数の制御装置のうちのいずれかのマスタ制御装置に要求する。マスタ制御装置において制御装置から整合判定処理の実行の要求を受けたときに整合判定処理が実行される。
【発明の効果】
【0024】
本開示によると、複数の制御装置においてソフトウェアの識別情報の組み合わせの不整合を早期に検出する車載システムおよび制御装置を提供することができる。
【図面の簡単な説明】
【0025】
【
図1】通信システムの構成の一例を説明するための図である。
【
図2】本実施の形態における電動車両の構成の一例を概略的に示す図である。
【
図3】マスタECUとスレイブECUとで行なわれる動作の一例を説明するための図である。
【
図4】マスタECUとスレイブECUとで実行品番の組み合わせが不整合の状態になる場合の動作の一例を説明するための図である。
【
図5】マスタECUで実行される処理の一例を示すフローチャートである。
【
図6】マスタECUで実行される他の処理の一例を示すフローチャートである。
【
図7】スレイブECUで実行される処理の一例を示すフローチャートである。
【
図8】マスタECUの動作の一例とスレイブECUの動作の一例とを説明するための図である。
【
図9】変形例における電動車両の構成の一例を概略的に示す図である。
【
図10】変形例におけるマスタECUと複数のスレイブECUとで行なわれる動作の一例を説明するための図である。
【
図11】変形例においてマスタECUで実行される処理の一例を示すフローチャートである。
【
図12】変形例においてマスタECUで実行される他の処理の一例を示すフローチャートである。
【
図13】変形例において第1スレイブECUおよび第2スレイブECUの各々で実行される他の処理の一例を示すフローチャートである。
【
図14】変形例におけるマスタECUの動作の一例と各スレイブECUの動作の一例とを説明するための図である。
【発明を実施するための形態】
【0026】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0027】
図1は、通信システム1の構成の一例を説明するための図である。
図1に示すうように、通信システム1は、管理サーバ7と、通信ネットワーク6と、管理サーバ7と通信ネットワーク6を経由して通信可能な電動車両100とを含む。
【0028】
管理サーバ7は、たとえば、CPU(Central Control Unit)と、各種メモリと、通信インターフェースとを含むコンピュータである。管理サーバ7には、複数の車両に各種ソフトウェアの更新情報を提供したり、複数の車両の各々に記憶される各種ソフトウェアの更新状況を管理したりする。
図1には、複数の車両のうちの一つである電動車両100が一例として示されている。以下の説明においては、管理サーバ7と電動車両100との間で授受される情報等について説明するが、管理サーバ7と他の車両との間で授受される情報も同様であり、その詳細な説明は繰り返さない。
【0029】
管理サーバ7の記憶装置(図示せず)には、たとえば、電動車両100を識別するため固有の情報である識別情報(以下、車両IDと記載する)が予め記憶される。電動車両100に記憶される各種ソフトウェアは、たとえば、電動車両100に搭載される複数のECU(Electronic Control Unit)にそれぞれ記憶される制御プログラムを含む。管理サーバ7は、電動車両100のECU単位で各種ソフトウェアのバージョン情報を含む識別情報を管理する。管理サーバ7の記憶装置には、後述するように電動車両100に含まれるマスタECUのソフトウェアのバージョン情報と、スレイブECUのソフトウェアのバージョン情報とが車両IDに対応付けて記憶される。管理サーバ7は、ソフトウェアのバージョン情報を固有の品番を用いて管理する。管理サーバ7は、更新情報を電動車両100に提供した場合には、提供した更新情報に対応する品番を用いて電動車両100における各種ソフトウェアの更新状況を管理する。
【0030】
管理サーバ7は、たとえば、新しい品番(新バージョン)のソフトウェアが準備されると、電動車両100に対して制御プログラムの更新を要求したり、電動車両100からの要求に応じて新しい品番のソフトウェアを電動車両100に提供したりする。
【0031】
次に、本実施の形態における電動車両100の具体的な構成について
図2を参照しつつ説明する。
図2は、本実施の形態における電動車両100の構成の一例を概略的に示す図である。
図2に示すように、電動車両100は、マスタECU200と、スレイブECU210と、駆動装置220と、DCM(Data Communication Module)230と、ADS(Autonomous Driving System)240と、通信バス250とを含む。マスタECU200と、スレイブECU210と、ADS240とは、通信バス250を経由して通信可能に接続される。
【0032】
マスタECU200は、後述する更新された品番のソフトウェアへの切り替えをスレイブECU210に対して指示したり、自身を含む各ECUのソフトウェアの更新状況を管理したりするECUである。マスタECU200が「マスタ制御装置」に対応する。
【0033】
マスタECU200は、CPU201とメモリ202とを含む。CPU201がメモリ202に格納されたプログラムを実行することによりマスタECU200の制御対象(たとえば、DCM230等)に対して各種制御が実行される。メモリ202は、第1記憶領域202Aと、第2記憶領域202Bとを含む。第1記憶領域202Aおよび第2記憶領域202BのいずれにもマスタECU200を起動させるための制御プログラムが記憶される。マスタECU200は、第1記憶領域202Aおよび第2記憶領域202Bのいずれか一方を起動用記憶領域に設定し、起動時においては、設定された起動用記憶領域に記憶された制御プログラムを実行して起動する。マスタECU200は、DCM230を経由して管理サーバ7から更新情報の提供を受けた場合には、起動用記憶領域として設定された記憶領域以外の記憶領域(以下、更新用記憶領域と記載する場合がある)に更新情報を用いて更新された制御プログラムを記憶させる。マスタECU200は、更新用記憶領域に更新されたプログラムが記憶される場合には、更新用記憶領域を次回の起動時における起動用記憶領域として設定するとともに、後述するスレイブECU210に対しても更新用記憶領域を次回の起動時における起動用記憶領域に設定するように指示する。
【0034】
そのため、電動車両100がIGオフ(電源オフ)された後に、ユーザによる起動操作等によりIGオン状態(電源オン状態)になると、マスタECU200およびスレイブECU210の各々において、起動用記憶領域に記憶された更新後の制御プログラムを実行して起動する。なお、起動時まで起動用記憶領域に設定されていた記憶領域は、更新用記憶領域として設定される。以下、起動用記憶領域を変更して新たに設定することを起動用記憶領域の切り替えと称する場合がある。
【0035】
マスタECU200は、スレイブECU210に記憶された更新後の制御プログラムの品番(以下、更新品番と記載する)を管理サーバ7またはスレイブECU210から取得し、メモリ202に記憶する。さらに、マスタECU200は、後述するようにスレイブECU210から実行中の制御プログラムの品番(以下、実行品番と記載する)を取得し、メモリ202に記憶する。
【0036】
DCM230は、管理サーバ7と無線通信可能に構成される車載の通信モジュールである。DCM230は、マスタECU200からの制御信号に応じて管理サーバ7との間で双方向のデータ通信が可能に構成される。DCM230は、マスタECU200に接続される。マスタECU200は、DCM230を介して、電動車両100に関する情報や各種要求等を管理サーバ7に送信したり、各種ソフトウェアの更新情報を管理サーバ7から受信したりする。
【0037】
スレイブECU210は、CPU211とメモリ212とを含む。スレイブECU210が「スレイブ制御装置」に対応する。CPU211がメモリ212に格納されたプログラムを実行することによりスレイブECU210の制御対象(たとえば、駆動装置220等)に対して各種制御が実行される。メモリ212は、第3記憶領域212Aと、第4記憶領域212Bとを含む。第3記憶領域212Aおよび第4記憶領域212BのいずれにもスレイブECU210を起動させるための制御プログラムが記憶される。スレイブECU210は、第3記憶領域212Aおよび第4記憶領域212Bのうちのいずれか一方を起動用記憶領域に設定し、起動時においては、設定された起動用記憶領域に記憶された制御プログラムを実行して起動する。スレイブECU210は、DCM230を経由して管理サーバ7から更新情報の提供を受けた場合であって、かつ、マスタECU200から起動用記憶領域の切り替えの指示を受けた場合には、更新用記憶領域を次回の起動時における起動用記憶領域として設定する。
【0038】
駆動装置220は、スレイブECU210に接続されており、スレイブECU210からの制御信号に応じて電動車両100を駆動させる駆動動作を行なう。駆動装置220は、たとえば、モータジェネレータと、蓄電装置と、PCU(Power Control Unit)(いずれも図示せず)とを含む。蓄電装置は、たとえば、ニッケル水素電池や、液体または固体の電解質を有するリチウムイオン電池等の二次電池、あるいは、キャパシタ等の直流電源を含む。PCUは、蓄電装置の直流電力を交流電力に変換してモータジェネレータに供給したり、あるいは、モータジェネレータにおいて発電された交流電力を直流電力に変換して蓄電装置に供給したりする。モータジェネレータは、電動車両100の駆動源であって、かつ、発電源であり、駆動輪を回転駆動させたり、あるいは、駆動輪の回転によって発電したりする。なお、駆動装置220は、駆動源あるいは発電源として内燃機関をさらに含むようにしてもよい。
【0039】
ADS240は、電動車両100の自動運転を実施可能に構成される。具体的には、ADS240は、マスタECU200およびスレイブECU210や各種センサから電動車両100の状態を示す情報(周囲環境)を取得し、取得された情報や目的地等を用いて走行計画を作成する。ADS240は、作成された走行計画に従って電動車両100を走行させるための各種制御要求を駆動装置220を含む各種アクチュエータを制御するマスタECU200およびスレイブECU210に出力する。
【0040】
なお、本実施の形態においてADS240は、電動車両100に内蔵されるものとして説明するが、たとえば、電動車両100のルーフトップ等の予め定められた位置に取り付け可能であって、かつ、電動車両100から取り外し可能な自動運転キットによって構成されてもよい。
【0041】
電動車両100においては、ADS240からの制御要求に従った自動運転の実施が可能な自動運転モードと、ユーザによる各種操作(アクセル操作、ブレーキ操作、ステアリング操作)に応じた運転の実施が可能な手動運転モードとのうちのいずれかによって運転が行なわれる。なお、上述のように、マスタECU200がDCM230を制御対象とし、スレイブECU210が駆動装置220を制御対象とする場合を一例として説明したが、電動車両100に搭載されるその他のアクチュエータは、マスタECU200およびスレイブECU210にのうちの少なくともいずれかによって制御されるものとする。
【0042】
以上のような構成を有する電動車両100において、マスタECU200およびスレイブECU210の各々の機能は、上述したようにソフトウェアを実行することによって実現される。そして、マスタECU200およびスレイブECU210の各々に記憶されたソフトウェアは、管理サーバ7から受信する更新情報を用いて更新されることにより、既存の機能を修正したり、新たな機能を追加したりすることができる。これらの更新されたソフトウェアによる機能を適切に実行するために、マスタECU200は、たとえば、IGオン後に、マスタECU200およびスレイブECU210において実行されるソフトウェアの実行品番の組み合わせが整合しているか否かを確認する整合判定処理(以下、バージョン整合チェック(VMC)と記載する場合がある)を実行する。
【0043】
マスタECU200は、たとえば、マスタECU200とスレイブECU210とにおける実行品番の組み合わせが、予め定められた組み合わせである場合に、実行品番の組み合わせが整合していると判定する。予め定められた組み合わせは、たとえば、更新前後の品番の組み合わせを含む。マスタECU200は、たとえば、実行品番の組み合わせが更新品番の組み合わせと一致する場合に、起動用記憶領域の切替が適切に行なわれたことを確認することができる。
【0044】
図3は、マスタECU200とスレイブECU210とで行なわれる動作の一例を説明するための図である。
図3には、マスタECU200とスレイブECU210の動作履歴が示される。
【0045】
たとえば、電動車両100のシステムを起動するための起動操作がユーザにより行なわれると、
図3の(A)に示すように、電動車両100は、IGオン状態になる。IGオン状態になると、マスタECU200およびスレイブECU210の各々に電源電力が供給されることで、マスタECU200およびスレイブECU210が起動する。
【0046】
このとき、スレイブECU210が、たとえば、
図3の(B)に示すように、起動後に実行品番をマスタECU200に送信する場合を想定する。スレイブECU210は、たとえば、起動後に起動用記憶領域に記憶されるソフトウェアの品番を実行品番としてマスタECU200に送信する。なお、起動用記憶領域に記憶されるソフトウェアの品番と取得方法としては公知の技術を用いればよくその詳細な説明は行なわない。
【0047】
マスタECU200は、
図3の(C)に示すように、IGオン状態となった後、スレイブECU210からの実行品番の初回受信によりVMCを実行する。これにより、マスタECU200は、マスタECU200において実行中のソフトウェアの第1実行品番と、受信したスレイブECU210において実行中のソフトウェアの第2実行品番との組み合わせが予め定められた組み合わせであるか否かによって実行品番の組み合わせが整合しているか否かを判定することができる。
【0048】
マスタECU200は、たとえば、予め定められた組み合わせについての構成情報を管理サーバ7から取得していてもよいし、あるいは、管理サーバ7から受信する更新情報を用いて更新前後の品番の組み合わせを構成情報として取得してもよい。
【0049】
しかしながら、マスタECU200からスレイブECU210に対して次回の起動時に起動用記憶領域の切替の指示が行なわれた後であって、IGオフ状態になるまでの間に、スレイブECU210に電力を供給する電源の瞬断等の何らかの不具合の発生によって再起動する場合、スレイブECU210においてのみ起動用記憶領域の切替が行なわれる場合がある。
【0050】
たとえば、
図3の(D)に示すように、スレイブECU210において何らかの不具合が発生することによってリセットされた場合には、
図3の(E)に示すように、スレイブECU210が再起動することとなる。このとき、
図3の(F)に示すように実行品番がマスタECU200に送信されても、マスタECU200においてVMCが実行されない。そのため、次にマスタECU200の起動時までマスタECU200の実行品番が更新前の品番となり、スレイブECU210の実行品番が更新後の品番となるため、マスタECU200とスレイブECU210とで実行品番の組み合わせが不整合の状態となる期間が生じることとなる。
【0051】
図4は、マスタECU200とスレイブECU210とで実行品番の組み合わせが不整合の状態になる場合の動作の一例を説明するための図である。
図4に示すように、マスタECU200は、制御部201Aと、切替部201Bとを含む。制御部201Aは、更新用記憶領域に更新されたソフトウェアが記憶された場合に、
図4の(A)に示すように、スレイブECU210とマスタECU200内の切替部201Bに切替指示を送信する。切替部201BとスレイブECU210とは、制御部201Aからの切替指示を受信すると、
図4の(B)および(C)に示すように、起動用記憶領域の切替処理をそれぞれ実行し、更新用記憶領域を次回の起動時(
図4の(G)に示すIGオン時に対応)の起動用記憶領域に設定する。
【0052】
しかしながら、その後に
図4の(D)に示すように、スレイブECU210において、電源の瞬断が生じると、スレイブECU210のみ再起動する。その結果、スレイブECU210は、更新されたソフトウェアを用いて起動することとなるため、
図4の(F)に示すIGオフ状態となるタイミングまでの期間においては、マスタECU200の実行品番は、更新前のソフトウェアの品番となり、スレイブECU210の実行品番は、更新後のソフトウェアの品番となるため、実行品番の組み合わせが不整合の状態となる期間が生じることとなる。
【0053】
そこで、本実施の形態においては、スレイブECU210が、スレイブECU210の起動時に、起動用記憶領域に記憶されたソフトウェアの識別情報(すなわち、実行品番)がマスタECU200とスレイブECU210との間で整合しているか否かを判定するための整合判定処理の実行をマスタECU200に要求するものとする。マスタECU200は、マスタECU200の起動時およびスレイブECU210から整合判定処理の実行の要求を受けたときの各々において整合判定処理(VMC)を実行するものとする。
【0054】
このようにすると、スレイブECU210の起動時にマスタECU200に対して整合判定処理の実行が要求され、マスタECU200において整合判定処理が実行される。そのため、更新用記憶領域が次回の起動時の起動用記憶領域として設定される場合において、不具合等によりスレイブECU210のみが再起動した場合でも再起動時に整合判定処理の実行がマスタECU200に要求される。これにより、マスタECU200とスレイブECU210とにおいて実行品番の組み合わせの不整合を早期に検出することができる。
【0055】
以下、マスタECU200で実行される処理の一例について
図5を参照しつつ説明する。
図5は、マスタECU200で実行される処理の一例を示すフローチャートである。このフローチャートに示される一連の処理は、マスタECU200により、所定の処理周期毎に繰り返し実行される。
【0056】
ステップ(以下、ステップをSと記載する)100にて、マスタECU200は、初期チェックが未実施であるか否かを判定する。マスタECU200は、たとえば、初期チェックが実施済であるか否かを示すフラグの状態に基づいて初期チェックが未実施であるか否かを判定する。マスタECU200は、たとえば、当該フラグがオフ状態である場合に初期チェックが未実施であると判定する。マスタECU200は、たとえば、起動直後に当該フラグをオフ状態に設定してもよいし、あるいは、IGオフ状態になるときに当該フラグをオフ状態に設定してもよい。マスタECU200は、初期チェックが未実施であると判定される場合(S100にてYES)、処理はS102に移される。
【0057】
S102にて、マスタECU200は、実行品番を全て取得したか否かを判定する。マスタECU200は、たとえば、第1実行品番と第2実行品番とを取得した場合に実行品番を全て取得したと判定する。マスタECU200は、たとえば、メモリ202の起動用記憶領域に記憶されるソフトウェアの品番を第1実行品番として取得する。マスタECU200は、たとえば、スレイブECU210から第2実行品番を取得する。実行品番を全て取得したと判定される場合(S102にてYES)、処理はS104に移される。
【0058】
S104にて、マスタECU200は、整合判定処理を実行する。マスタECU200は、第1実行品番と第2実行品番との組み合わせが予め定められた組み合わせであるか否かを判定する。マスタECU200は、たとえば、第1実行品番と第2実行品番との組み合わせと、メモリ202に記憶される予め定められた組み合わせとを比較して一致するか否かを判定する。予め定められた組み合わせの取得方法については上述したとおりであるため、その詳細な説明は繰り返さない。その後処理はS108に移される。なお、実行品番を全て取得していないと判定される場合(S102にてNO)、処理はS106に移される。
【0059】
S106にて、マスタECU200は、実行品番の受信待ち時間が予め定められた時間T1よりも長いか否かを判定する。受信待ち時間は、たとえば、初期チェックが未実施であると判定された時点からの経過である。予め定められた時間T1は、たとえば、実験等により適合される。実行品番の受信待ち時間が予め定められた時間T1よりも長いと判定される場合(S106にてYES)、処理はS116に移される。なお、実行品番の受信待ち時間が予め定められた時間T1以下であると判定される場合(S106にてNO)、処理はS102に戻される。
【0060】
S108にて、マスタECU200は、第1実行品番と第2実行品番とが整合するか否かを判定する。マスタECU200は、たとえば、第1実行品番と第2実行品番との組み合わせが更新前のソフトウェアの品番の組み合わせや更新後のソフトウェアの品番の組み合わせ等の予め定められた組み合わせである場合に、第1実行品番と第2実行品番とが整合すると判定する。第1実行品番と第2実行品番とが整合すると判定される場合(S108にてYES)、処理はS110に移される。なお、第1実行品番と第2実行品番とが整合しないと判定される場合(S108にてNO)、処理はS116に移される。
【0061】
S110にて、マスタECU200は、スレイブECU210に対して整合判定処理が完了したことを示す情報(以下、完了通知と記載する)を送信する。その後処理はS112に移される。
【0062】
S112にて、マスタECU200は、初期チェックが実施済であるか否かを示すフラグの状態をオン状態に設定する。その後処理はS114に移される。
【0063】
S114にて、マスタECU200は、自動運転を許可状態に設定する。自動運転が許可状態に設定される場合には、ADS240を用いた電動車両100の自動運転の実施が可能となる。そのため、電動車両100において、自動運転モードが選択される場合には、ADS240を用いた自動運転が実施されることとなる。
【0064】
S116にて、マスタECU200は、自動運転を不許可状態に設定する。自動運転が不許可状態に設定される場合には、自動運転モードが選択中であると手動運転モードに切り替えられる。また、手動運転モードの選択中において、自動運転モードを選択する操作が行なわれても自動運転モードの選択が拒否される。
【0065】
次に、マスタECU200で実行される他の処理の一例について
図6を参照しつつ説明する。
図6は、マスタECU200で実行される他の処理の一例を示すフローチャートである。このフローチャートに示される一連の処理は、マスタECU200により、所定の処理周期毎に繰り返し実行される。
【0066】
S150にて、マスタECU200は、初期チェックが実施済であるか否かを判定する。初期チェックが実施済であるか否かの判定方法については、上述したとおりであるため、その詳細な説明は繰り返さない。初期チェックが実施済であると判定される場合(S150にてYES)、処理はS152に移される。
【0067】
S152にて、マスタECU200は、スレイブECU210からVMC要求を受信するか否かを判定する。「VMC要求」は、整合判定処理の実行要求を含む。スレイブECU210からVMC要求を受信すると判定される場合(S152にてYES)、処理はS154に移される。なお、VMC要求を受信しないと判定される場合(S152にてNO)、処理はS152に戻される。
【0068】
S154にて、マスタECU200は、整合判定処理を実行する。整合判定処理については、上述したとおりであるため、その詳細な説明は繰り返さない。その後処理はS156に移される。
【0069】
S156にて、マスタECU200は、第1実行品番と第2実行品番とが整合するか否かを判定する。判定方法については、上述したとおりであるため、その詳細な説明は繰り返さない。第1実行品番と第2実行品番とが整合すると判定される場合(S156にてYES)、処理はS158に移される。
【0070】
S158にて、マスタECU200は、スレイブECU210に対して完了通知を送信する。完了通知については、上述したとおりであるため、その詳細な説明は繰り返さない。
【0071】
S160にて、マスタECU200は、自動運転を許可状態に設定する。自動運転の許可状態における電動車両100の動作については上述したとおりであるため、その詳細な説明は繰り返さない。その後処理はS152に戻される。なお、第1実行品番と第2実行品番とが整合しないと判定される場合(S156にてNO)、処理はS162に移される。
【0072】
S162にて、マスタECU200は、自動運転を不許可状態に設定する。自動運転の不許可状態における電動車両100の動作については上述したとおりであるため、その詳細な説明は繰り返さない。その後処理は終了される。なお、初期チェックが実施済でないと判定される場合(S150にてNO)、この処理は終了される。
【0073】
次に、スレイブECU210で実行される処理の一例について
図7を参照しつつ説明する。
図7は、スレイブECU210で実行される処理の一例を示すフローチャートである。このフローチャートに示される一連の処理は、スレイブECU210により、所定の処理周期毎に繰り返し実行される。
【0074】
S200にて、スレイブECU210は、起動時であるか否かを判定する。スレイブECU210は、たとえば、スレイブECU210を起動するための起動処理が実行中である場合にスレイブECU210の起動時であると判定する。スレイブECU210の起動時であると判定される場合(S200にてYES)、処理はS202に移される。
【0075】
S202にて、スレイブECU210は、マスタECU200に対して第2実行品番を送信する。第2実行品番については、上述したとおりであるため、その詳細な説明は繰り返さない。その後処理はS204に移される。
【0076】
S204にて、スレイブECU210は、VMC要求を送信する。VMC要求については、上述したとおりであるため、その詳細な説明は繰り返さない。スレイブECU210は予め定められた時間が経過する毎に断続的にVMC要求を送信してもよいし、あるいは、継続してVMC要求を送信してもよい。
【0077】
S206にて、スレイブECU210は、マスタECU200から完了通知を受信したか否かを判定する。完了通知については上述したとおりであるため、その詳細な説明は繰り返さない。完了通知を受信したと判定される場合(S206にてYES)、処理はS208に移される。
【0078】
S208にて、スレイブECU210は、VMC要求の送信を停止する。なお、マスタECU200から完了通知を受信しない場合には(S206にてNO)、処理はS210に移される。
【0079】
S210にて、スレイブECU210は、完了通知の受信待ち時間が予め定められた時間T2よりも長いか否かを判定する。完了通知の受信待ち時間は、たとえば、VMC要求が送信された時点からの経過時間である。予め定められた時間T2は、たとえば、実験等により適合される。完了通知の受信待ち時間が予め定められた時間T2よりも長いと判定される場合(S210にてYES)、処理はS208に移される。なお、完了通知の受信待ち時間が予め定められた時間T2以下であると判定される場合(S210にてNO)、処理はS206に戻される。また、スレイブECU210の起動時でないと判定される場合(S200にてNO)、この処理は終了される。
【0080】
以上のような構造およびフローチャートに基づくマスタECU200とスレイブECU210との動作の一例について
図8を参照しつつ説明する。
【0081】
図8は、マスタECU200の動作の一例とスレイブECU210の動作の一例とを説明するための図である。
図8には、マスタECU200とスレイブECU210との動作履歴が示される。
【0082】
たとえば、電動車両100のシステムを起動するための起動操作がユーザにより行なわれると、
図8(A)に示すように、電動車両100は、IGオン状態になる。IGオン状態になると、マスタECU200およびスレイブECU210の各々に電源電力が供給されることで、マスタECU200およびスレイブECU210が起動する。
【0083】
スレイブECU210が起動時であると判定されると(S200にてYES)、
図8の(B-1)に示すように第2実行品番がマスタECU200に送信されるとともに(S202)、
図8の(B-2)に示すように、VMC要求がマスタECU200に送信される(S204)。
【0084】
マスタECU200においては、初期チェックが未実施であると判定される場合(S100にてYES)、実行品番を全て受信したか否かが判定される(S102)。第1実行品番が取得されるとともにスレイブECU210から第2実行品番を受信した場合に実行品番を全て受信したと判定され(S102にてYES)、
図8の(C-1)に示すように、VMCが実行される(S104)。VMCが実行され、第1実行品番と第2実行品番とが整合すると判定される場合には(S108にてYES)、
図8の(C-2)に示すように、完了通知がスレイブECU210に送信される(S110)。その後に初期チェックが実施済であるか否かを示すフラグがオン状態に設定され(S112)、自動運転が許可されることとなる(S114)。スレイブECU210において完了通知を受信すると(S206にてYES)、VMC要求の送信が停止される(S208)。
【0085】
たとえば、
図8の(D)に示すように、スレイブECU210において何らかの不具合によってリセットされる場合を想定する。これにより、
図8の(E)に示すように、スレイブECU210が再起動した場合には、起動時であると判定されるときに(S200にてYES)、
図8の(F-1)に示すように第2実行品番がマスタECU200に送信される(S202)。そして、
図8の(F-2)に示すように、VMC要求がマスタECU200に送信される(S204)。
【0086】
マスタECU200において、初期チェックが実施済であると判定される場合においては(S150にてYES)、スレイブECU210からVMC要求を受信すると(S152にてYES)、
図8の(G-1)に示すようにVMCが実行される(S154)。VMCが実行され、第1実行品番と第2実行品番とが整合すると判定される場合には(S156にてYES)、
図8の(G-2)に示すように、完了通知がスレイブECU210に送信される(S158)。その後に自動運転が許可されることとなる(S160)。スレイブECU210において完了通知を受信すると(S206にてYES)、VMC要求の送信が停止される(S208)。
【0087】
このように、スレイブECU210においては、起動する毎に第2実行品番とVMC要求とが送信される。また、マスタECU200においては、初期チェックが未実施である場合には、スレイブECU210から第2実行品番を受信することによってVMCが実行される。さらに、マスタECU200においては、初期チェックが実施済である場合には、スレイブECU210からVMC要求を受信することによってVMCが実行される。
【0088】
そのため、たとえば、マスタECU200とスレイブECU210の更新用記憶領域に更新されたソフトウェアが記憶され、更新用記憶領域が次回の起動時の起動用記憶領域として設定されている場合において、IGオフ状態になる前に、スレイブECU210において何らかの不具合が発生することによって再起動し、スレイブECU210が更新後のソフトウェアを用いて起動される場合でも、スレイブECU210からマスタECU200へのVMC要求によって、速やかにVMCが実行される。VMCの実行によって第1実行品番と第2実行品番とが整合しないと判定される場合(S156にてNO)、自動運転が不許可状態になるなどして(S162)、スレイブECU210のみにおいて更新されたソフトウェアを用いた機能の実行が抑制される。
【0089】
以上のように、本実施の形態に係る車載システムによると、スレイブECU210の起動毎にマスタECU200に対してVMCの実行が要求され、マスタECU200においてVMCが実行される。そのため、更新用記憶領域が次回の起動時の起動用記憶領域として設定される場合において、不具合等によりスレイブECU210のみが再起動した場合でも再起動時にVMC要求がマスタECU200に送信される。これにより、マスタECU200およびスレイブECU210において実行品番の組み合わせの不整合を早期に検出することができる。したがって、複数の制御装置においてソフトウェアの識別情報の組み合わせの不整合を早期に検出する車載システムおよび制御装置を提供することができる。
【0090】
さらに、VMCの実行によって第1実行品番と第2実行品番とが整合していないと判定される場合には、起動用記憶領域に記憶されたソフトウェアにより実現される機能(たとえば、ADS240を用いた自動運転)の実行が不許可状態(禁止状態)になる。このようにすると、第1実行品番と第2実行品番とが整合していない状態で自動運転等の機能が実行されることを抑制することができる。
【0091】
以下、変形例について記載する。
【0092】
上述の実施の形態では、電動車両100に搭載される複数のECUがマスタECU200とスレイブECU210とを含む構成を一例として説明したが、複数のECUは、マスタECU200と複数のスレイブECUとを含む構成であってもよい。この変形例では、たとえば、電動車両100に搭載される複数のECUが、マスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとを含む構成を一例として説明する。
【0093】
図9は、変形例における電動車両100の構成の一例を概略的に示す図である。
図9に示す電動車両100は、
図2に示す電動車両100の構成と比較して、スレイブECU210に代えて第1スレイブECU210Aを含む点と、第2スレイブECU210Bをさらに含む点で異なる。それ以外の構成については同様の構成であり同じ参照符号が付してある。そのため、その詳細な説明は繰り返さない。
【0094】
第1スレイブECU210Aは、たとえば、
図2のスレイブECU210と同様の構成を有しており、また、第2スレイブECU210Bは、第1スレイブECU210Aと比較してセンサ類の検出対象、制御対象(たとえば、ステアリングシステムやブレーキシステムなど)および制御動作が異なる。それ以外の構成については、スレイブECU210と同様の構成を有しているものとする。そのため、第1スレイブECU210Aおよび第2スレイブECU210Bの各々についての詳細な説明は繰り返さない。
【0095】
スレイブECUを複数含む構成であっても、スレイブECUが単数である場合と同様の問題が生じる場合がある。
【0096】
図10は、変形例におけるマスタECU200と複数のスレイブECUとで行なわれる動作の一例を説明するための図である。
図10には、マスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとの動作履歴が示される。
【0097】
たとえば、電動車両100のシステムを起動するための起動操作がユーザにより行なわれると、
図10の(A)に示すように、電動車両100は、IGオン状態になる。IGオン状態になると、マスタECU200、第1スレイブECU210Aおよび第2スレイブECU210Bの各々に電源電力が供給されることで、マスタECU200および第1スレイブECU210Aおよび第2スレイブECU210Bが起動する。
【0098】
このとき、第1スレイブECU210Aが、たとえば、
図10の(B)に示すように、起動後に第1スレイブECU210Aのメモリの起動用記憶領域に記憶されるソフトウェアの品番を実行品番としてマスタECU200に送信する場合を想定する。
【0099】
さらに、第2スレイブECU210Bが、第1スレイブECU210Aと同様に、たとえば、
図10の(C)に示すように、起動後に第2スレイブECU210Bのメモリの起動用記憶領域に記憶されるソフトウェアの品番を実行品番としてマスタECU200に送信する場合を想定する。
【0100】
マスタECU200は、
図10の(D)に示すように、IGオン状態となった後、第1スレイブECU210Aおよび第2スレイブECU210Bの各々からの実行品番の受信によりVMCを実行する。これにより、マスタECU200は、マスタECU200において実行中のソフトウェアの第1実行品番と、受信した第1スレイブECU210Aにおいて実行中のソフトウェアの第2実行品番と、受信した第2スレイブ各ECUにおいて実行中のソフトウェアの第3実行品番との組み合わせが予め定められた組み合わせであるか否かによって実行品番の組み合わせが整合しているか否かを判定することができる。実行品番の予め定められた組み合わせについては、上述の実施の形態における2つの実行品番の予め定められた組み合わせと同様に取得される。そのため、その詳細な説明は繰り返さない。
【0101】
しかしながら、この場合も上述の実施の形態と同様に、マスタECU200から第1スレイブECU210Aおよび第2スレイブECU210Bの各々に対して次回の起動時に起動用記憶領域の切替の指示が行なわれた後であって、IGオフ状態になるまでの間に、第1スレイブECU210Aおよび第2スレイブECU210BのうちのいずれかのスレイブECUにおいて電源の瞬断等の何らかの不具合の発生によって再起動する場合、当該スレイブECUにおいてのみ起動用記憶領域の切替が行なわれる場合がある。
【0102】
たとえば、
図10の(E)に示すように、第1スレイブECU210Aにおいて何らかの不具合が発生することによってリセットされた場合には、第1スレイブECU210Aが再起動することとなる。このとき、
図10の(F)に示すように実行品番がマスタECU200に送信されても、マスタECU200においてVMCが実行されない。そのため、次にマスタECU200および第2スレイブECU210Bの起動時までマスタECU200および第2ECU210Bの実行品番が更新前の品番となり、第1スレイブECU210Aの実行品番が更新後の品番となるため、マスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとで実行品番の組み合わせが不整合の状態となる期間が生じることとなる。これは、第2スレイブECU210Bにおいて何らかの不具合が発生する場合も同様に、実行品番の組み合わせが不整合の状態となる期間が生じ得る。
【0103】
そこで、本変形例においては、第1スレイブECU210Aおよび第2スレイブECU210Bが、それぞれの起動時に、起動用記憶領域に記憶されたソフトウェアの識別情報(すなわち、実行品番)がマスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとの間で整合しているか否かを判定するための整合判定処理の実行をマスタECU200に要求するものとする。マスタECU200は、マスタECU200の起動時および第1スレイブECU210Aまたは第2スレイブECU210Bから整合判定処理の実行の要求を受けたときの各々において整合判定処理(VMC)を実行するものとする。
【0104】
このようにすると、第1スレイブECU210Aまたは第2スレイブECU210Bの起動時にマスタECU200に対して整合判定処理の実行が要求され、マスタECU200において整合判定処理が実行される。そのため、更新用記憶領域が次回の起動時の起動用記憶領域として設定される場合において、不具合等により第1スレイブECU210Aまたは第2スレイブECU210Bが再起動した場合でも再起動時に整合判定処理の実行がマスタECU200に要求される。これにより、マスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとにおいて実行品番の組み合わせの不整合を早期に検出することができる。
【0105】
以下、変形例においてマスタECU200で実行される処理の一例について
図11を参照しつつ説明する。
図11は、変形例においてマスタECU200で実行される処理の一例を示すフローチャートである。このフローチャートに示される一連の処理は、マスタECU200により、所定の処理周期毎に繰り返し実行される。
【0106】
図11のフローチャートは、
図5のフローチャートと比較して、S102、S104、S106、S108およびS110の処理に代えてS300、S302、S304、S306およびS308の処理を実行する点で異なる。
図11のフローチャートにおいて、
図5のフローチャートと同じ処理について同じステップ番号が付与されており、処理内容についても以下に説明する場合を除き、同様である。そのため、その詳細な説明は繰り返さない。
【0107】
マスタECU200において初期チェックが未実施であると判定される場合(S100にてYES)、処理はS300に移される。
【0108】
S300にて、マスタECU200は、実行品番を全て取得したか否かを判定する。マスタECU200は、たとえば、第1実行品番と第2実行品番と第3実行品番とを取得した場合に実行品番を全て取得したと判定する。マスタECU200は、たとえば、メモリ212の起動用記憶領域に記憶されるソフトウェアの品番を第1実行品番として取得する。マスタECU200は、たとえば、第1スレイブECU210Aから第2実行品番を取得する。さらに、マスタECU200は、たとえば、第2スレイブECU210Bから第3実行品番を取得する。実行品番を全て受信したと判定される場合(S300にてYES)、処理はS302に移される。
【0109】
S302にて、マスタECU200は、整合判定処理を実行する。マスタECU200は、第1実行品番と第2実行品番と第3実行品番との組み合わせが予め定められた組み合わせであるか否かを判定する。その後処理はS308に移される。なお、実行品番を全て取得していないと判定される場合(S300にてNO)、処理はS304に移される。
【0110】
S304にて、マスタECU200は、実行品番の受信待ち時間が予め定められた時間T1よりも長いか否かを判定する。受信待ち時間および予め定められた時間T1については、上述したとおりであるため、その詳細な説明は繰り返さない。実行品番の受信待ち時間が予め定められた時間T1よりも長いと判定される場合(S304にてYES)、処理はS116に移される。なお、実行品番の受信待ち時間が予め定められた時間T1以下であると判定される場合(S304にてNO)、処理はS300に戻される。
【0111】
S306にて、マスタECU200は、第1実行品番と第2実行品番と第3実行品番とが整合するか否かを判定する。マスタECU200は、たとえば、第1実行品番と第2実行品番と第3実行品番との組み合わせが更新前のソフトウェアの品番の組み合わせや更新後のソフトウェアの品番の組み合わせ等の予め定められた組み合わせである場合に、第1実行品番と第2実行品番と第3事項品番とが整合すると判定する。第1実行品番と第2実行品番と第3実行品番とが整合すると判定される場合(S306にてYES)、処理はS308に移される。なお、第1実行品番と第2実行品番と第3実行品番とが整合しないと判定される場合(S306にてNO)、処理はS116に移される。
【0112】
S308にて、マスタECU200は、マスタ起動時の整合判定処理の完了通知(以下、マスタ起動時の完了通知と記載する)を送信する。マスタECU200は、第1スレイブECU210Aおよび第2スレイブECU210Bの各々に対してマスタ起動時の完了通知を送信する。その後処理はS112に移される。
【0113】
次に、変形例においてマスタECU200で実行される他の処理の一例について
図12を参照しつつ説明する。
図12は、変形例においてマスタECU200で実行される他の処理の一例を示すフローチャートである。このフローチャートに示される一連の処理は、マスタECU200により、所定の処理周期毎に繰り返し実行される。
【0114】
図12のフローチャートは、
図6のフローチャートと比較して、S152、S154、S156、S158の処理に代えてS400、S402、S404、S406、S408、S410、S412、S414およびS416の処理を実行する点で異なる。
図12のフローチャートにおいて、
図6のフローチャートと同じ処理について同じステップ番号が付与されており、処理内容についても以下に説明する場合を除き、同様である。そのため、その詳細な説明は繰り返さない。
【0115】
マスタECU200において初期チェックが実施済みであると判定される場合(S150にてYES)、処理はS400に移される。
【0116】
S400にて、マスタECU200は、VMC状態確認(n)(nは、1または2)を受信するか否かを判定する。マスタECU200は、たとえば、第1スレイブECU210AからVMC状態確認(1)を受信する場合、あるいは、第2スレイブECU210BからVMC状態確認(2)を受信する場合に、VMC状態確認(n)を受信したと判定する。VMC状態確認(1)およびVMC状態確認(2)の詳細については後述する。VMC状態確認(n)を受信したと判定される場合(S400にてYES)、処理はS402に移される。なお、VMC状態確認(n)を受信しないと判定される場合(S400にてNO)、処理はS400に戻される。
【0117】
S402にて、マスタECU200は、VMC状態確認(m)(mは、n以外の1または2)を受信するか否かを判定する。マスタECU200は、S400にてVMC状態確認(1)を受信した場合には、VMC状態確認(2)を受信するか否かを判定する。あるいは、マスタECU200は、S400にてVMC状態確認(2)を受信した場合には、VMC状態確認(1)を受信するか否かを判定する。VMC状態確認(m)を受信したと判定される場合(S402にてYES)、処理はS404に移される。なお、VMC状態確認(m)を受信しないと判定される場合(S402にてNO)、処理はS406に移される。
【0118】
S404にて、マスタECU200は、VMCの実行が可能であることを示す通知であるVMC可能(m)の送信を不許可とする。マスタECU200は、たとえば、S400にてVMC状態確認(1)を受信した場合には、第2スレイブECU210Bに対するVMC可能(2)の送信を不許可とする。また、マスタECU200は、たとえば、S400にてVMC状態確認(2)を受信した場合には、第1スレイブECU210Aに対するVMC可能(1)の送信を不許可とする。その後処理はS406に移される。
【0119】
S406にて、マスタECU200は、VMC可能(n)を送信する。マスタECU200は、たとえば、S400にてVMC状態確認(1)を受信した場合には、第1スレイブECU210Aに対してVMC可能(1)を送信する。VMC可能(1)は、第1スレイブECU210Aの要求によるVMCが実行可能であることを示す情報を含む。また、マスタECU200は、たとえば、S400にてVMC状態確認(2)を受信した場合には、第2スレイブECU210Bに対してVMC可能(2)を送信する。VMC可能(2)は、第2スレイブECU210Bの要求によるVMCが実行可能であることを示す情報を含む。その後処理はS408に移される。
【0120】
S408にて、マスタECU200は、VMC要求(n)を受信するか否かを判定する。マスタECU200は、たとえば、S400にてVMC状態確認(1)を受信した場合には、第1スレイブECU210AからのVMC要求(1)を受信するときにVMC要求(n)を受信したと判定する。VMC要求(1)は、送信元を第1スレイブECU210Aとした、マスタECU200に対するVMCの実行要求を含む。また、マスタECU200は、たとえば、S400にてVMC状態確認(2)を受信した場合には、第2スレイブECU210BからのVMC要求(2)を受信するときにVMC要求(n)を受信したと判定する。VMC要求(2)は、送信元を第2スレイブECU210Bとした、マスタECU200に対するVMCの実行要求を含む。VMC要求(n)を受信したと判定される場合(S408にてYES)、処理はS410に移される。
【0121】
S410にて、マスタECU200は、整合判定処理を実行する。整合判定処理については、S302の処理と同様であるため、その詳細な説明は繰り返さない。その後処理はS414に移される。なお、VMC要求(n)を受信していないと判定される場合(S408にてNO)、処理はS412に移される。
【0122】
S412にて、マスタECU200は、VMC要求(m)を受信したか否かを判定する。マスタECU200は、たとえば、S400にてVMC状態確認(1)を受信した場合には、VMC要求(2)を受信したときにVMC要求(m)を受信したと判定する。マスタECU200は、たとえば、S400にてVMC状態確認(2)を受信した場合には、VMC要求(1)を受信したときにVMC要求(m)を受信したと判定する。VMC要求(m)を受信したと判定される場合(S412にてYES)、処理はS408に戻される。なお、VMC要求(m)を受信していないと判定される場合(S412にてNO)、処理はS408に戻される。
【0123】
S414にて、マスタECU200は、第1実行品番と第2実行品番と第3実行品番とが整合しているか否かを判定する。判定方法については、上述したとおりであるため、その詳細な説明は繰り返さない。第1実行品番と第2実行品番と第3実行品番とが整合していると判定される場合(S414にてYES)、処理はS416に移される。なお、第1実行品番と第2実行品番と第3実行品番とが整合していないと判定される場合(S414にてNO)、処理はS162に移される。
【0124】
S416にて、マスタECU200は、完了通知を送信する。マスタECU200は、第1スレイブECU210Aおよび第2スレイブECU210Bの各々に完了通知を送信する。その後処理はS418に移される。
【0125】
S418にて、マスタECU200は、VMC可能(m)の送信を許可する。マスタECU200は、たとえば、S404にて送信を不許可としてVMC可能(m)の送信を許可する。その後処理はS160に移される。
【0126】
次に、第1スレイブECU210Aおよび第2スレイブECU210Bの各々で実行される処理の一例について
図13を参照しつつ説明する。
図13は、変形例において第1スレイブECU210Aおよび第2スレイブECU210Bの各々で実行される他の処理の一例を示すフローチャートである。なお、
図13に示すフローチャートに示す「n」は、実行主体を示す値である。たとえば、n=1の場合は、
図13のフローチャートは、第1スレイブECU210Aを実行主体とする処理を示す。また、n=2の場合は、
図13のフローチャートは、第2スレイブECU210Bを実行主体とする処理を示す。以下の説明においては、
図13のフローチャートに示す処理の実行主体が第1スレイブECU210Aである場合を一例として説明する。第2スレイブECU210Bを実行主体とする場合も同様であるため、その詳細な説明は繰り返さない。
【0127】
S500にて、第1スレイブECU210Aは、起動時であるか否かを判定する。判定方法は、上述のS200の処理における判定方法と同様であるため、その詳細な説明は繰り返さない。起動時であると判定される場合(S500にてYES)、処理はS502に移される。なお、起動時でないと判定される場合(S500にてNO)、この処理は終了される。
【0128】
S502にて、第1スレイブECU210Aは、第2実行品番を実行品番(n)としてマスタECU200に送信する。その後処理はS504に移される。
【0129】
S504にて、第1スレイブECU210Aは、VMC状態確認(1)をVMC状態確認(n)としてマスタECU200に送信する。その後処理はS506に移される。
【0130】
S506にて、第1スレイブECU210Aは、マスタ起動時の完了通知を受信したか否かを判定する。マスタ起動時の完了通知を受信したと判定される場合(S506にてYES)、処理はS508に移される。
【0131】
S508にて、第1スレイブECU210Aは、VMC状態確認(1)およびVMC要求(1)の送信を停止する。第1スレイブECU210Aは、たととえば、VMC状態確認(1)が送信中である場合には、VMC状態確認(1)の送信を停止する。また、第1スレイブECU210Aは、たとえば、VMC状態確認(1)およびVMC要求(1)が送信中である場合には、VMC状態確認(1)およびVMC要求(1)の送信を停止する。なお、マスタ起動時の完了通知を受信していないと判定される場合(S506にてNO)、処理はS510に移される。
【0132】
S510にて、第1スレイブECU210Aは、マスタECU200からのVMC可能(n)を受信するか否かを判定する。第1スレイブECU210Aは、マスタECU200からVMC可能(1)を受信すると、VMC可能(n)を受信したと判定する。VMC可能(n)を受信したと判定される場合(S510にてYES)、処理はS512に移される。なお、VMC可能(1)を受信していないと判定される場合(S510にてNO)、処理はS506に戻される。
【0133】
S512にて、第1スレイブECU210Aは、VMC要求(n)をマスタECU200に送信する。第1スレイブECU210Aは、VMC要求(1)をVMC要求(n)としてマスタECU200に送信する。その後処理は、S514に移される。
【0134】
S514にて、第1スレイブECU210Aは、マスタECU200から完了通知を受信したか否かを判定する。完了通知を受信したと判定される場合(S514にてYES)、処理はS508に移される。なお、完了通知を受信していないと判定される場合(S514にてNO)、処理はS516に移される。
【0135】
S516にて、第1スレイブECU210Aは、完了通知の受信待ち時間が予め定められた時間T2よりも長いか否かを判定する。完了通知の受信待ち時間および予め定められた時間T2については、上述したとおりであるため、その詳細な説明は繰り返さない。完了通知の受信待ち時間が予め定められた時間T2よりも長いと判定される場合(S516にてYES)、処理はS508に移される。なお、完了通知の受信待ち時間が予め定められた時間T2以下であると判定される場合(S516にてNO)、処理はS514に戻される。
【0136】
以上のようなフローチャートに基づく本変形例におけるマスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとの動作の一例について
図14を参照しつつ説明する。
【0137】
図14は、変形例におけるマスタECU200の動作の一例と各スレイブECUの動作の一例とを説明するための図である。
図14には、マスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとの動作履歴が示される。
【0138】
たとえば、電動車両100のシステムを起動するための起動操作がユーザにより行なわれると、
図14の(A)に示すように、電動車両100は、IGオン状態になる。IGオン状態になると、マスタECU200、第1スレイブECU210Aおよび第2スレイブECU210Bの各々に電源電力が供給されることで、マスタECU200、第1スレイブECU210Aおよび第2スレイブECU210Bが起動する。
【0139】
第1スレイブECU210Aが起動時であると判定されると(S500にてYES)、
図14の(B-1)に示すように、第2実行品番がマスタECU200に送信されるとともに(S502)、
図14の(B-2)に示すように、VMC状態確認(1)がマスタECU200に送信される(S504)。
【0140】
同様に、第2スレイブECU210Bが起動時であると判定されると(S500にてYES)、
図14の(C-1)に示すように、第3実行品番がマスタECU200に送信されるとともに(S502)、
図14の(C-2)に示すように、VMC状態確認(2)がマスタECU200に送信される(S504)。
【0141】
マスタECU200においては、初期チェックが未実施であると判定される場合(S100にてYES)、実行品番を全て受信したか否かが判定される(S300)。第1実行品番が取得されるとともに第1スレイブECU210Aから第2実行品番を受信し、第2スレイブECU210Bから第3実行品番を受信した場合に実行品番を全て受信したと判定され(S300にてYES)、
図14の(D-1)に示すように、VMCが実行される(S302)。VMCが実行され、第1実行品番と第2実行品番と第3実行品番とが整合すると判定される場合には(S306にてYES)、マスタ起動時の完了通知が第1スレイブECU210Aおよび第2スレイブECU210Bの各々に送信される(S308)。その後に初期チェックが実施済であるか否かを示すフラグがオン状態に設定され(S112)、自動運転が許可されることとなる(S114)。
【0142】
第1スレイブECU210Aにおいて、マスタ起動時の完了通知を受信すると(S506にてYES)、VMC状態確認(1)の送信が停止される(S508)。さらに、第2スレイブECU210Bにおいて、マスタ起動時の完了通知を受信すると(S506にてYES)、VMC状態確認(2)の送信が停止される(S508)。
【0143】
たとえば、
図14の(E)に示すように、第1スレイブECU210Aにおいて何らかの不具合によってリセットされる。これにより、第1スレイブECU210Aが再起動した場合には、起動時であると判定されるときに(S500にてYES)、
図14の(F-1)に示すように、第2実行品番がマスタECU200に送信される(S502)。そして、
図14の(F-2)に示すように、VMC状態確認(1)がマスタECU200に送信される(S504)。
【0144】
マスタECU200は、初期チェックが実施済であると判定される場合においては(S150にてYES)、第1スレイブECU210AからVMC状態確認(1)を受信する。そして、VMC状態確認(2)を受信しない場合(S402にてNO)、
図14の(I)に示すように、VMC可能(1)が第1スレイブECU210Aに送信される(S406)。
【0145】
第1スレイブECU210Aにおいて、マスタ起動時の完了通知を受信せずに(S506にてNO)、VMC可能(1)を受信する場合には(S510にてYES)、
図14の(J)に示すように、VMC要求(1)がマスタECU200に送信される(S512)。
【0146】
マスタECU200において、VMC要求(1)が受信されると(S408にてYES)、
図14の(K)に示すように、VMCが実行される(S410)。VMCが実行されると、第1実行品番と第2実行品番と第3実行品番とが整合するか否かが判定される。
【0147】
VMCの実行中において、
図14の(G)に示すように、たとえば、第2スレイブECU210Bにおいて何らかの不具合によってリセットされ、第2スレイブECU210Bが再起動した場合には、起動時であると判定されるときに(S500にてYES)、
図14の(H-1)に示すように、第3実行品番がマスタECU200に送信されるとともに(S502)、
図14の(H-2)に示すように、VMC状態確認(2)がマスタECU200に送信される(S504)。
【0148】
マスタECU200において、第1実行品番と第2実行品番と第3実行品番とが整合していると判定される場合(S414にてYES)、
図14の(L-1)に示すように、完了通知が第1スレイブECU210Aに送信されるとともに、
図14の(L-2)に示すように、完了通知が第2スレイブECU210Bに送信される(S416)。そして、VMC可能(2)の送信の許可状態が維持されるとともに(S418)、自動運転が許可されることとなる(S160)。
【0149】
第1スレイブECU210Aにおいて完了通知を受信すると(S514にてYES)、VMC状態確認(1)およびVMC要求(1)の送信が停止される(S508)。
【0150】
一方、第2スレイブECU210BからマスタECU200へのVMC状態確認(2)の送信が継続されているため、VMC状態確認(2)を受信したと判定され(S400にてYES)、VMC状態確認(1)を受信しない場合(S402にてNO)、
図14の(M)に示すように、VMC可能(2)が第2スレイブECU210Bに送信される(S406)。
【0151】
第2スレイブECU210Bにおいて、マスタ起動時の完了通知を受信せずに(S506にてNO)、VMC可能(2)を受信する場合には(S510にてYES)、
図14の(N)に示すように、VMC要求(2)がマスタECU200に送信される(S512)。
【0152】
マスタECU200において、VMC要求(2)が受信されると(S408にてYES)、
図14の(O)に示すように、VMCが実行される(S410)。VMCが実行されると、第1実行品番と第2実行品番と第3実行品番とが整合するか否かが判定される。
【0153】
マスタECU200において、第1実行品番と第2実行品番と第3実行品番とが整合していると判定される場合(S414にてYES)、
図14の(P-1)に示すように、完了通知が第1スレイブECU210Aに送信されるとともに、
図14の(P-2)に示すように、完了通知が第2スレイブECU210Bに送信される(S416)。そして、VMC可能(1)の送信の許可状態が維持されるとともに(S418)、自動運転が許可されることとなる(S160)。
【0154】
第2スレイブECU210Bにおいて完了通知を受信すると(S514にてYES)、VMC状態確認(2)およびVMC要求(2)の送信が停止される(S508)。
【0155】
このように、第1スレイブECU210Aにおいては、起動する毎に第2実行品番とVMC状態確認(1)とが送信され、VMCの実行が可能であれば、VMC要求(1)が送信される。さらに、第2スレイブECU210Bにおいては、起動する毎に第3実行品番とVMC状態確認(2)とが総員され、VMCの実行が可能であれば、VMC要求(2)が送信される。
【0156】
また、マスタECU200においては、初期チェックが未実施である場合には、第2実行品番と第3実行品番とを受信することによってVMCが実行される。さらに、マスタECU200においては、初期チェックが実施済である場合には、VMC状態確認(1)とVMC可能(1)との送受信の後にVMC要求(1)を受信することによってVMCが実行される。あるいは、マスタECU200においては、初期チェックが実施済である場合には、VMC状態確認(2)VMC可能(2)との送受信の後にVMC要求(2)を受信することによってVMCが実行される。
【0157】
そのため、たとえば、マスタECU200と第1スレイブECU210Aと第2スレイブECU210Bとの更新用記憶領域に更新されたソフトウェアが記憶され、更新用記憶領域が次回の起動時の起動用記憶領域として設定されている場合において、IGオフ状態になる前に、第1スレイブECU210Aと第2スレイブECU210Bとのうちの少なくともいずれにおいて何らかの不具合が発生することによって再起動し、更新後のソフトウェアを用いて起動される場合でも、第1スレイブECU210Aまたは第2スレイブECU210BからのVMC要求によって速やかにVMCが実行される。VMCの実行によって第1実行品番と第2実行品番と第3実行品番とが整合しないと判定される場合(S414にてNO)、自動運転が不許可状態になるなどして(S162)、第1スレイブECU210Aまたは第2スレイブECU210Bのみにおいて更新されたソフトウェアを用いた機能の実行が抑制される。
【0158】
以上のようにして、本変形例に係る車載システムによると、2以上のスレイブECUを含む場合においても、複数の制御装置においてソフトウェアの識別情報の組み合わせの不整合を早期に検出することができる。
【0159】
なお、初期チェックが実施済である場合において(S150にてYES)、第1スレイブECU210Aおよび第2スレイブECU210Bの両方が何らかの不具合が発生したことにより異なるタイミングで再起動し、VMC状態確認(1)を受信した直後に、VMC状態確認(2)を受信した場合を想定する。この場合、次に完了通知が送信されるまで、VMC可能(2)の送信が不許可となるためVMC状態確認(2)の受信に応じたVMC可能(2)の送信が抑制されることとなる。このようにすると、第1スレイブECU210Aと第2スレイブECU210Bの両方とから並行してVMCの実行が要求されることを抑制することができる。
【0160】
なお、本変形例においては、第1スレイブECU210AからのVMC要求(1)に対するVMCの完了通知を受信した場合に、第2スレイブECU210BからのVMC状態確認(2)の送信が継続される場合には、マスタECU200からVMC可能(2)とVMC要求(2)との送受信によりVMCが実行されるものとして説明したが、たとえば、完了通知の通知内容(たとえば、実行品番が整合している、あるいは、整合していない等の内容)を用いてVMCの実行の要否を判定してもよい。たとえば、完了通知の通知内容が、実行品番が整合している旨の内容である場合にはVMCを重複して実行しないと判定されたり、あるいは、完了通知の通知内容が、実行品番が整合していない旨の内容である場合にはVMCを再実行すると判定されたりする。このようにすると、不必要にVMCが実行されることを抑制することができる。
【0161】
さらに本変形例においては、初期チェックが実施済である場合において、第1スレイブECU210Aおよび第2スレイブECU210Bのうちのいずれか一方からのVMC要求に応じてVMCが実行される場合であって、かつ、他方からVMC要求に応じてVMCが実行される場合を一例として説明したが、一方からのVMC要求に応じてVMCが実行される場合には、他方からVMC要求を受信してもVMCを実行しないようにしてもよい。このようにすると、不必要にVMCが実行されることを抑制することができる。
【0162】
さらに本変形例においては、初期チェックが実施済である場合において、第1スレイブECU210Aおよび第2スレイブECU210Bのうちのいずれか一方からのVMC要求に応じてVMCが実行される場合であって、完了通知を受信した後に他方からのVMC要求に応じたVMCが実行される場合を一例として説明したが、完了通知を一定時間受信しない場合に、他方からのVMC要求に応じたVMCが実行されるようにしてもよい。
【0163】
なお、上記した変形例は、その全部または一部を適宜組み合わせて実施してもよい。
【0164】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0165】
1 通信システム、6 通信ネットワーク、7 管理サーバ、100 電動車両、200 マスタECU、201 CPU、201A 制御部、201B 切替部、202,212 メモリ、202A 第1記憶領域、202B 第2記憶領域、210 スレイブECU、210A 第1スレイブECU、210B 第2スレイブECU、212A 第3記憶領域、212B 第4記憶領域、220 駆動装置、250 通信バス。