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

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

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

<>
  • 特許-制御装置、制御方法および記録媒体 図1
  • 特許-制御装置、制御方法および記録媒体 図2
  • 特許-制御装置、制御方法および記録媒体 図3
  • 特許-制御装置、制御方法および記録媒体 図4
  • 特許-制御装置、制御方法および記録媒体 図5
  • 特許-制御装置、制御方法および記録媒体 図6
  • 特許-制御装置、制御方法および記録媒体 図7
  • 特許-制御装置、制御方法および記録媒体 図8
  • 特許-制御装置、制御方法および記録媒体 図9
  • 特許-制御装置、制御方法および記録媒体 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】制御装置、制御方法および記録媒体
(51)【国際特許分類】
   G06F 8/65 20180101AFI20241022BHJP
【FI】
G06F8/65
【請求項の数】 17
(21)【出願番号】P 2022100399
(22)【出願日】2022-06-22
(65)【公開番号】P2024001623
(43)【公開日】2024-01-10
【審査請求日】2024-01-25
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】塩原 和義
(72)【発明者】
【氏名】渋谷 知樹
(72)【発明者】
【氏名】藤元 貴之
(72)【発明者】
【氏名】三宅 優樹
【審査官】久々宇 篤志
(56)【参考文献】
【文献】特開2019-159399(JP,A)
【文献】特開2020-123253(JP,A)
【文献】特開2007-092621(JP,A)
【文献】特開2020-166583(JP,A)
【文献】特開2006-347333(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
車両のシステムを構成する制御装置であって、
所定の処理を実行するための第1ソフトウェアを記憶する記憶部と、
前記第1ソフトウェアを実行する制御部とを備え、
前記所定の処理は、前記システムを構成する他の制御装置と連携して前記車両の第1機能を実現する第1処理を含み、
前記制御装置および前記他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されており、
前記制御部は、前記制御装置の起動時において、前記第1ソフトウェアを実行する前に、前記他の制御装置が記憶する前記第1処理を実行するためのプログラムを含む第2ソフトウェアに関する情報を前記他の制御装置から受信して、前記第1ソフトウェアと前記第2ソフトウェアとの整合性を確認する確認処理を含む起動チェック処理を実行し、
前記制御部は、前記第1ソフトウェアの実行開始後において、前記他の制御装置から前記第2ソフトウェアに関する情報を受信した場合、前記第1処理の実行を停止または不許可とする、制御装置。
【請求項2】
前記第2ソフトウェアに関する情報は、前記第2ソフトウェアのバージョン情報であり、
前記制御部は、前記起動チェック処理において、前記第1ソフトウェアのバージョンと前記第2ソフトウェアのバージョンとの組み合わせに基づいて前記整合性を確認する、請求項1に記載の制御装置。
【請求項3】
前記制御部は、
前記確認処理の結果が整合であった場合、前記第1処理の実行を許可とし、
前記確認処理の結果が不整合であった場合、前記第1処理の実行を不許可とする、請求項1に記載の制御装置。
【請求項4】
前記制御部は、前記起動チェック処理において、前記起動チェック処理を開始してから予め定められた時間内に前記第2ソフトウェアに関する情報を受信できなかった場合、前記第1処理の実行を不許可とする、請求項3に記載の制御装置。
【請求項5】
前記制御部は、前記起動チェック処理において、前記確認処理の結果を示す情報を含む信号を前記他の制御装置に送信する、請求項4に記載の制御装置。
【請求項6】
前記所定の処理は、前記制御装置が単独で前記車両の第2機能を実現する第2処理をさらに含み、
前記制御部は、
前記確認処理の結果が整合であった場合、前記第1処理および前記第2処理の実行を許可とし、
前記確認処理の結果が不整合であった場合、前記第1処理の実行を不許可とし、かつ、前記第2処理の実行を許可とし、
前記起動チェック処理を開始してから予め定められた時間内に前記第2ソフトウェアに関する情報を受信できなかった場合、前記第1処理および前記第2処理の実行を不許可とする、請求項1から請求項5のいずれか1項に記載の制御装置。
【請求項7】
車両のシステムを構成する制御装置であって、
所定の処理を実行するためのソフトウェアを記憶する記憶部と、
前記ソフトウェアを実行する制御部とを備え、
前記所定の処理は、前記車両に搭載された他の制御装置と連携して前記車両の機能を実現する第1処理を含み、
前記制御装置および前記他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されており、
前記制御部は、前記制御装置の起動時に、前記ソフトウェアを実行する前に起動チェック処理を実行し、
前記制御部は、前記起動チェック処理において、
前記ソフトウェアに関する情報を前記他の制御装置に送信し、
前記他の制御装置によって前記ソフトウェアに関する情報を用いて行なわれた、前記制御装置と前記他の制御装置との間でのソフトウェアの整合性を確認する確認処理の結果を示す第1信号を受信し、
前記第1信号に基づいて、前記第1処理の実行可否を判定し、
前記制御部は、前記ソフトウェアの実行開始後において、前記制御装置と前記他の制御装置との間でのソフトウェアが不整合となった可能性があることを示す第2信号を前記他の制御装置から受信した場合、前記第1処理の実行を停止または不許可とする、制御装置。
【請求項8】
前記制御部は、前記起動チェック処理において、前記ソフトウェアに関する情報を所定周期毎に前記他の制御装置に送信する、請求項7に記載の制御装置。
【請求項9】
前記制御部は、前記起動チェック処理において、前記第1信号を受信すると、前記ソフトウェアに関する情報の送信を停止する、請求項8に記載の制御装置。
【請求項10】
前記ソフトウェアに関する情報は、前記ソフトウェアのバージョン情報を含む、請求項7に記載の制御装置。
【請求項11】
前記制御部は、
前記第1信号が、前記確認処理の結果が整合であったことを示す場合、前記第1処理の実行を許可とし、
前記第1信号が、前記確認処理の結果が不整合であったことを示す場合、前記第1処理の実行を不許可とする、請求項7に記載の制御装置。
【請求項12】
前記制御部は、前記起動チェック処理において、前記ソフトウェアに関する情報を送信してから予め定められた時間内に前記第1信号を受信できなかった場合、前記第1処理の実行を不許可とする、請求項11に記載の制御装置。
【請求項13】
前記所定の処理は、前記制御装置が単独で前記車両の第2機能を実現する第2処理をさらに含み、
前記制御部は、
前記第1信号が、前記確認処理の結果が整合であったことを示す場合、前記第1処理および前記第2処理の実行を許可とし、
前記第1信号が、前記確認処理の結果が不整合であったことを示す場合、前記第1処理の実行を不許可とし、かつ、前記第2処理の実行を許可とし、
前記ソフトウェアに関する情報を送信してから予め定められた時間内に前記第1信号を受信できなかった場合、前記第1処理および前記第2処理の実行を不許可とする、請求項7から請求項12のいずれか1項に記載の制御装置。
【請求項14】
車両のシステムを構成し、所定の処理を実行するための第1ソフトウェアが実装された制御装置の制御方法であって、
前記所定の処理は、前記システムを構成する他の制御装置と連携して前記車両の機能を実現する第1処理を含み、
前記制御装置および前記他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されており、
前記制御方法は、
前記制御装置の起動時において、前記第1ソフトウェアを実行する前に、前記他の制御装置が記憶する前記第1処理を実行するためのプログラムを含む第2ソフトウェアに関する情報を前記他の制御装置から受信して、前記第1ソフトウェアと前記第2ソフトウェアとの整合性を確認する確認処理を含む起動チェック処理を実行するステップと、
前記第1ソフトウェアの実行開始後において、前記他の制御装置から前記第2ソフトウェアに関する情報を受信した場合、前記第1処理の実行を停止または不許可とするステップとを含む、制御方法。
【請求項15】
請求項14に記載の制御方法を実行するためのプログラムを記録した、記録媒体。
【請求項16】
車両のシステムを構成し、所定の処理を実行するためのソフトウェアが実装された制御装置の制御方法であって、
前記所定の処理は、前記車両に搭載された他の制御装置と連携して前記車両の機能を実現する第1処理を含み、
前記制御装置および前記他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されており、
前記制御方法は、
前記制御装置の起動時に、前記ソフトウェアを実行する前に起動チェック処理を実行するステップを含み、
前記起動チェック処理を実行するステップは、
前記ソフトウェアに関する情報を前記他の制御装置に送信するステップと、
前記他の制御装置によって前記ソフトウェアに関する情報を用いて行なわれた、前記制御装置と前記他の制御装置との間でのソフトウェアの整合性を確認する確認処理の結果を示す第1信号を受信するステップと、
前記第1信号に基づいて、前記第1処理の実行可否を判定するステップとを含み、
前記制御方法は、前記ソフトウェアの実行開始後において、前記制御装置と前記他の制御装置との間でのソフトウェアが不整合となった可能性があることを示す第2信号を前記他の制御装置から受信した場合、前記第1処理の実行を停止または不許可とするステップをさらに含む、制御方法。
【請求項17】
請求項16に記載の制御方法を実行するためのプログラムを記録した、記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両のシステムを構成する制御装置、その制御方法および制御方法を実行するためのプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
車両には、複数のアクチュエータとその各々を制御する複数の制御装置とによって構成される車載システムが搭載される。複数の制御装置の各々には、ソフトウェアが実装されており、複数の制御装置の各々がソフトウェアを実行してアクチュエータを制御することにより、車両の各機能が実現される。車両が市場に供給された後には、たとえばOTA(Over The Air)により更新プログラムの提供を受け、ソフトウェアが更新される。これによって、車両が備える機能の修正や機能の追加等が行なわれる。たとえば、自動運転等の各種運転支援のような複数の制御装置間で連携して行なわれる機能の修正や追加に対しては、対象となる全ての制御装置のソフトウェアの更新が求められ、各々の制御装置における更新が適切に行なわれたかについての確認が求められる。
【0003】
たとえば、特開2019-159399号公報(特許文献1)には、車両の電源がオンされたことを契機として、複数の車載機のうちのいずれか1つである特定の車載機が、他の車載機が有するソフトウェアバージョンを取得し、自身のソフトウェアのバージョンと、取得されたソフトウェアバージョンとを比較し、ソフトウェアバージョンの整合性を判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-159399号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
更新後のソフトウェアの実行は、たとえば、複数のECUにおいて更新前のソフトウェアから一斉に切り替えるために次回の車載システムの起動時に行なわれる場合がある。その場合、ソフトウェアの更新が適切に行なわれたかについての確認も次回の車載システムの起動時に行なわれることとなる。
【0006】
しかしながら、複数の制御装置のうちのいずれかにおいて次回の車載システムの起動時までの間に電源の瞬断等の何らかの不具合によって一部の制御装置のみが再起動すると、再起動した一部の制御装置においてのみ更新後のソフトウェアが実行されることになる。この場合、少なくとも次回の車載システムの起動時まで、複数の制御装置間において、バージョンの不一致等、ソフトウェアの不整合が生じてしまう。ソフトウェアの不整合が生じた状態であると、複数の制御装置間で連携して行なわれる処理を適切に実行できない可能性がある。
【0007】
本開示は、上記課題を解決するためになされたものであり、本開示の目的は、ソフトウェアの不整合が生じた状態において、複数の制御装置間で連携して行なわれる処理の実行を抑制することである。
【課題を解決するための手段】
【0008】
(1)本開示のある局面に係る制御装置は、車両のシステムを構成する制御装置であって、所定の処理を実行するための第1ソフトウェアを記憶する記憶部と、第1ソフトウェアを実行する制御部とを備える。所定の処理は、車両のシステムを構成する他の制御装置と連携して車両の第1機能を実現する第1処理を含む。制御装置および他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されている。制御部は、制御装置の起動時において、第1ソフトウェアを実行する前に、他の制御装置が記憶する第1処理を実行するためのプログラムを含む第2ソフトウェアに関する情報を他の制御装置から受信して、第1ソフトウェアと第2ソフトウェアとの整合性を確認する確認処理を含む起動チェック処理を実行する。制御部は、第1ソフトウェアの実行開始後において、他の制御装置から第2ソフトウェアに関する情報を受信した場合、第1処理の実行を停止または不許可とする。
【0009】
上記構成によれば、制御装置は、起動時に起動チェック処理を実行し、確認処理によって、第1ソフトウェアと第2ソフトウェアとの整合性を確認する。制御装置および他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されているので、起動チェック処理で整合性を確認することができれば、それ以降、起動している限りソフトウェアの整合性が保たれた状態であるといえる。しかしながら、第1ソフトウェアの実行開始後において、他の制御装置から第2ソフトウェアに関する情報を受信した場合、他の制御装置が再起動したことが想定される。再起動に伴って、他の装置が第2ソフトウェアを更新している場合あり得る。すなわち、第1ソフトウェアと第2ソフトウェアとが整合していない可能性がある。制御部は、第1ソフトウェアの実行開始後において、他の制御装置から第2ソフトウェアに関する情報を受信した場合、第1処理の実行を停止または不許可とすることにより、第1処理が実行されている場合には、第1処理が停止され、第1処理が実行されていない場合には、以降第1処理が実行されない。よって、第1ソフトウェアと第2ソフトウェアとが不整合な状態で第1処理が実行されることを抑制することができる。
【0010】
(2)ある実施の形態においては、第2ソフトウェアに関する情報は、第2ソフトウェアのバージョン情報である。制御部は、起動チェック処理において、第1ソフトウェアのバージョンと第2ソフトウェアのバージョンとの組み合わせに基づいて整合性を確認する。
【0011】
上記構成によれば、ソフトウェアのバージョンによってソフトウェアの整合性が確認されるので、精度よくソフトウェアの整合性を確認することができる。
【0012】
(3)ある実施の形態においては、制御部は、確認処理の結果が整合であった場合、第1処理の実行を許可とし、確認処理の結果が不整合であった場合、第1処理の実行を不許可とする。
【0013】
上記構成によれば、ソフトウェアのバージョンに不整合が生じた状態で第1処理が実行されることを抑制することができる。
【0014】
(4)ある実施の形態においては、制御部は、起動チェック処理において、起動チェック処理を開始してから予め定められた時間内に第2ソフトウェアに関する情報を受信できなかった場合、第1処理の実行を不許可とする。
【0015】
起動チェック処理を開始してから予め定められた時間内に第2ソフトウェアに関する情報を受信できなかった場合には、システムに何らかの異常が生じていることが想定される。この場合には、第1処理の実行を不許可とすることにより、異常が生じた状態で第1処理が実行されることを抑制することができる。
【0016】
(5)ある実施の形態においては、制御部は、起動チェック処理において、確認処理の結果を示す情報を含む信号を他の制御装置に送信する。
【0017】
たとえば、他の制御装置は、制御装置からの確認処理の結果を示す情報に基づいて、第1処理の実行可否を判定する。制御装置から他の制御装置に、確認処理の結果を示す情報を含む信号が送信されることにより、他の制御装置は第1処理の実行可否を判定することができる。
【0018】
(6)ある実施の形態においては、所定の処理は、制御装置が単独で車両の第2機能を実現する第2処理をさらに含む。制御部は、確認処理の結果が整合であった場合、第1処理および第2処理の実行を許可とし、確認処理の結果が不整合であった場合、第1処理の実行を不許可とし、かつ、第2処理の実行を許可とし、起動チェック処理を開始してから時間内に第2ソフトウェアに関する情報を受信できなかった場合、第1処理および第2処理の実行を不許可とする。
【0019】
上記構成によれば、確認処理の結果が不整合である場合、他の制御装置と連携する第1処理は不許可とされる一方で、制御装置が単独で行なう第2処理については許可される。確認処理の結果が不整合であっても、処理可能な第2処理の実行は許可することにより、過度に処理の実行を制限することを抑制することができる。なお、起動チェック処理を開始してから時間内に第2ソフトウェアに関する情報を受信できなかったような、システムに異常が生じ定することが想定される場合には、第1処理および第2処理を不許可とすることにより、不適切な処理が実行されることを抑制することができる。
【0020】
(7)本開示の他の局面に係る制御装置は、車両のシステムを構成する制御装置であって、所定の処理を実行するためのソフトウェアを記憶する記憶部と、ソフトウェアを実行する制御部とを備える。所定の処理は、車両に搭載された他の制御装置と連携して車両の機能を実現する第1処理を含む。制御装置および他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されている。制御部は、制御装置の起動時に、ソフトウェアを実行する前に起動チェック処理を実行する。制御部は、起動チェック処理において、ソフトウェアに関する情報を他の制御装置に送信し、他の制御装置によってソフトウェアに関する情報を用いて行なわれた、制御装置と他の制御装置との間でのソフトウェアの整合性を確認する確認処理の結果を示す第1信号を受信し、第1信号に基づいて、第1処理の実行可否を判定する。制御部は、ソフトウェアの実行開始後において、制御装置と他の制御装置との間でのソフトウェアが不整合となった可能性があることを示す第2信号を他の制御装置から受信した場合、第1処理の実行を停止または不許可とする。
【0021】
上記構成によれば、制御装置の制御部は、起動時に起動チェック処理を実行して、ソフトウェアに関する情報を他の制御装置に送信し、その応答として、確認処理の結果を示す第1信号を他の制御装置から受信する。そして、制御部は、第1信号に基づいてソフトウェアとの整合性を確認し、第1処理の実行可否を適切に判定することができる。そして、ソフトウェアの実行開始後において、制御装置と他の制御装置との間でのソフトウェアが不整合となった可能性があることを示す第2信号を他の制御装置から受信した場合、第1処理の実行を停止または不許可とする。これによって、ソフトウェアの不整合が生じた状態で第1処理が実行されることを抑制することができる。
【0022】
(8)ある実施の形態においては、制御部は、起動チェック処理において、ソフトウェアに関する情報を所定周期毎に他の制御装置に送信する。
【0023】
ソフトウェアに関する情報を一度送信するような構成であると、たとえば、一時的な通信異常が生じたような場合に、ソフトウェアに関する情報が他の制御装置に取得されない可能性がある。上記構成によれば、一時的な通信異常が生じたような場合に、他の制御装置のソフトウェアに関する情報を取得させられる可能性を高めることができる。
【0024】
(9)ある実施の形態においては、制御部は、起動チェック処理において、第1信号を受信すると、ソフトウェアに関する情報の送信を停止する。
【0025】
上記構成によれば、第1信号の受信後にソフトウェアに関する情報の送信が停止されるので、以降にソフトウェアに関する情報が送信されるケースとしては、たとえば、制御装置が再起動した場合が考えられる。制御装置は、起動時にソフトウェアを更新するように構成されている。よって、他の制御装置に、第1信号を送信した後にソフトウェアに関する情報を受信した場合、ソフトウェアの不整合が生じている可能性を認識させることができる。
【0026】
(10)ある実施の形態においては、ソフトウェアに関する情報は、ソフトウェアのバージョン情報を含む。
【0027】
上記構成によれば、ソフトウェアのバージョンによってソフトウェアの整合性が確認されるので、精度よくソフトウェアの整合性を確認することができる。
【0028】
(11)ある実施の形態においては、制御部は、第1信号が、確認処理の結果が整合であったことを示す場合、第1処理の実行を許可とし、第1信号が、確認処理の結果が不整合であったことを示す場合、第1処理の実行を不許可とする。
【0029】
上記構成によれば、ソフトウェアのバージョンに不整合が生じた状態で第1処理が実行されることを抑制することができる。
【0030】
(12)ある実施の形態においては、制御部は、起動チェック処理において、ソフトウェアに関する情報を送信してから予め定められた時間内に第1信号を受信できなかった場合、第1処理の実行を不許可とする。
【0031】
ソフトウェアに関する情報を送信してから予め定められた時間内に第1信号を受信できなかった場合には、システムに何らかの異常が生じていることが想定される。この場合には、第1処理の実行を不許可とすることにより、異常が生じた状態で第1処理が実行されることを抑制することができる。
【0032】
(13)ある実施の形態においては、所定の処理は、制御装置が単独で車両の第2機能を実現する第2処理をさらに含む。制御部は、第1信号が、確認処理の結果が整合であったことを示す場合、第1処理および第2処理の実行を許可とし、第1信号が、確認処理の結果が不整合であったことを示す場合、第1処理の実行を不許可とし、かつ、第2処理の実行を許可とし、ソフトウェアに関する情報を送信してから時間内に第1信号を受信できなかった場合、第1処理および第2処理の実行を不許可とする。
【0033】
上記構成によれば、確認処理の結果が不整合である場合、他の制御装置と連携する第1処理は不許可とされる一方で、制御装置が単独で行なう第2処理については許可される。確認処理の結果が不整合であっても、処理可能な第2処理の実行は許可することにより、過度に処理の実行を制限することを抑制することができる。なお、ソフトウェアに関する情報を送信してから時間内に第1信号を受信できなかったような、システムに異常が生じ定することが想定される場合には、第1処理および第2処理を不許可とすることにより、不適切な処理が実行されることを抑制することができる。
【0034】
(14)本開示の他の局面に係る制御方法は、車両のシステムを構成し、所定の処理を実行するための第1ソフトウェアが実装された制御装置の制御方法である。所定の処理は、システムを構成する他の制御装置と連携して車両の機能を実現する第1処理を含む。制御装置および他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されている。制御方法は、制御装置の起動時において、第1ソフトウェアを実行する前に、他の制御装置が記憶する第1処理を実行するためのプログラムを含む第2ソフトウェアに関する情報を他の制御装置から受信して、第1ソフトウェアと第2ソフトウェアとの整合性を確認する確認処理を含む起動チェック処理を実行するステップと、第1ソフトウェアの実行開始後において、他の制御装置から第2ソフトウェアに関する情報を受信した場合、第1処理の実行を停止または不許可とするステップとを含む。
【0035】
(15)本開示の他の局面に係る記録媒体は、上記(14)に記載の制御方法を実行するためのプログラムを記録する。
【0036】
(16)本開示の他の局面に係る制御方法は、車両のシステムを構成し、所定の処理を実行するためのソフトウェアが実装された制御装置の制御方法である。所定の処理は、車両に搭載された他の制御装置と連携して車両の機能を実現する第1処理を含む。制御装置および他の制御装置は、ソフトウェアの更新がある場合、起動時にソフトウェアを更新するように構成されている。制御方法は、制御装置の起動時に、ソフトウェアを実行する前に起動チェック処理を実行するステップを含む。起動チェック処理を実行するステップは、ソフトウェアに関する情報を他の制御装置に送信するステップと、他の制御装置によってソフトウェアに関する情報を用いて行なわれた、制御装置と他の制御装置との間でのソフトウェアの整合性を確認する確認処理の結果を示す第1信号を受信するステップと、第1信号に基づいて、第1処理の実行可否を判定するステップとを含む。制御方法は、ソフトウェアの実行開始後において、制御装置と他の制御装置との間でのソフトウェアが不整合となった可能性があることを示す第2信号を他の制御装置から受信した場合、第1処理の実行を停止または不許可とするステップをさらに含む。
【0037】
(17)本開示の他の局面に係る記録媒体は、上記(16)に記載の制御方法を実行するためのプログラムを記録する。
【発明の効果】
【0038】
本開示によると、ソフトウェアの不整合が生じた状態において、複数の制御装置間で連携して行なわれる処理の実行を抑制することができる。
【図面の簡単な説明】
【0039】
図1】通信システムの構成の一例を説明するための図である。
図2】実施の形態における電動車両の構成の一例を概略的に示す図である。
図3】ソフトウェアの品番(バージョン)の組み合わせ情報を説明するための図である。
図4】代表ECUと連携ECUとで行なわれる動作の一例を説明するための図である。
図5】バージョンチェックの結果に応じて許可される機能を説明するための図である。
図6】代表ECUと連携ECUとで行なわれる動作の他の例を説明するための図である。
図7】代表ECUにより実行される起動チェック処理の手順を示すフローチャートである。
図8】通常処理の実行中に代表ECUにより実行される処理の手順を示すフローチャートである。
図9】連携ECUにより実行される起動チェック処理の手順を示すフローチャートである。
図10】通常処理の実行中に連携ECUにより実行される処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0040】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0041】
図1は、通信システム1の構成の一例を説明するための図である。通信システム1は、通信ネットワーク6と、管理サーバ7と、電動車両100とを含む。電動車両100は、通信ネットワーク6を介して、管理サーバ7と通信可能に構成される。
【0042】
管理サーバ7は、たとえば、CPU(Central Control Unit)と、各種メモリと、通信インターフェースとを含むコンピュータである。管理サーバ7には、複数の車両に各種ソフトウェアの更新情報を提供したり、複数の車両の各々に記憶される各種ソフトウェアの更新状況を管理したりする。図1には、複数の車両のうちの1つである電動車両100が一例として示されている。以下の説明においては、管理サーバ7と電動車両100との間で授受される情報等について説明するが、管理サーバ7と他の車両との間で授受される情報も同様であり、その詳細な説明は繰り返さない。
【0043】
管理サーバ7の記憶装置(図示せず)には、たとえば、電動車両100を識別するための固有の情報である識別情報(以下、「車両ID」とも称する)が予め記憶されている。電動車両100に記憶される各種ソフトウェアは、たとえば、電動車両100に搭載される複数のECU(Electronic Control Unit)にそれぞれ記憶される制御プログラムを含む。管理サーバ7は、電動車両100のECU単位で各種ソフトウェアのバージョン情報を含む識別情報を管理する。管理サーバ7の記憶装置には、後述するように電動車両100に含まれる代表ECUのソフトウェアのバージョン情報と、他のECUのソフトウェアのバージョン情報とが車両IDに対応付けて記憶される。管理サーバ7は、ソフトウェアのバージョン情報を固有の品番を用いて管理する。管理サーバ7は、更新情報を電動車両100に提供した場合には、提供した更新情報に対応する品番を用いて電動車両100における各種ソフトウェアの更新状況を管理する。
【0044】
管理サーバ7は、たとえば、新しい品番(新バージョン)のソフトウェアが準備されると、電動車両100に対してソフトウェアの更新を要求したり、電動車両100からの要求に応じて新しい品番のソフトウェアを電動車両100に提供したりする。
【0045】
次に、本実施の形態における電動車両100の具体的な構成について図2を参照しつつ説明する。図2は、本実施の形態における電動車両100の構成の一例を概略的に示す図である。図2に示すように、電動車両100は、代表ECU200と、連携ECU210,220と、DCM(Data Communication Module)230と、ADS(Autonomous Driving System)240と、通信バス250と、駆動装置260とを含む。代表ECU200と、連携ECU210,220と、ADS240とは、通信バス250を介して通信可能に接続される。
【0046】
代表ECU200は、後述する更新された品番のソフトウェアへの切り替えを連携ECU210,220に対して指示したり、自身を含む各ECUのソフトウェアの更新状況を管理したりするECUである。
【0047】
代表ECU200は、CPU201とメモリ202とを含む。CPU201がメモリ202に格納されたプログラムを実行することにより代表ECU200の制御対象(たとえば、DCM230等)に対して各種制御が実行される。メモリ202は、第1記憶領域202Aと、第2記憶領域202Bとを含む。第1記憶領域202Aおよび第2記憶領域202Bのいずれにも代表ECU200を起動させるための制御プログラムが記憶される。代表ECU200は、第1記憶領域202Aおよび第2記憶領域202Bのいずれか一方を起動用記憶領域(たとえば第1記憶領域202A)に設定し、起動時においては、設定された起動用記憶領域に記憶された制御プログラムを実行して起動する。代表ECU200は、DCM230を経由して管理サーバ7から更新情報の提供を受けた場合には、起動用記憶領域として設定された記憶領域以外の記憶領域である更新用記憶領域(たとえば第2記憶領域202B)に更新情報を用いて更新された制御プログラムを記憶させる。代表ECU200は、更新用記憶領域(たとえば第2記憶領域202B)に更新されたプログラムが記憶される場合には、更新用記憶領域を次回の起動時における起動用記憶領域として設定するとともに、後述する連携ECU210に対しても更新用記憶領域を次回の起動時における起動用記憶領域に設定するように指示する。
【0048】
そのため、電動車両100がIGオフ(電源オフ)された後に、ユーザによる起動操作等によりIGオン状態(電源オン状態)になると、代表ECU200および連携ECU210,220の各々は、起動用記憶領域に記憶された更新後の制御プログラムを実行して起動する。なお、起動時まで起動用記憶領域に設定されていた記憶領域は、更新用記憶領域として設定される。以下では、起動用記憶領域を変更して新たに設定することを起動用記憶領域の切り替えと称する場合がある。
【0049】
代表ECU200は、連携ECU210,220に記憶された更新後のソフトウェアの品番(バージョン)を管理サーバ7または連携ECU210,220から取得し、メモリ202に記憶する。
【0050】
DCM230は、管理サーバ7と無線通信可能に構成される車載の通信モジュールである。DCM230は、代表ECU200からの制御信号に応じて管理サーバ7との間で双方向のデータ通信が可能に構成される。DCM230は、代表ECU200に接続される。代表ECU200は、DCM230を介して、電動車両100に関する情報や各種要求等を管理サーバ7に送信したり、各種ソフトウェアの更新情報を管理サーバ7から受信したりする。
【0051】
連携ECU210は、CPU211とメモリ212とを含む。CPU211がメモリ212に格納されたプログラムを実行することにより連携ECU210の制御対象(たとえば、駆動装置260等)に対して各種制御が実行される。メモリ212は、第3記憶領域212Aと、第4記憶領域212Bとを含む。第3記憶領域212Aおよび第4記憶領域212Bのいずれにも連携ECU210を起動させるための制御プログラムが記憶される。連携ECU210は、第3記憶領域212Aおよび第4記憶領域212Bのうちのいずれか一方を起動用記憶領域に設定し、起動時においては、設定された起動用記憶領域に記憶された制御プログラムを実行して起動する。連携ECU210は、DCM230および代表ECU200を経由して管理サーバ7から更新情報の提供を受けた場合であって、かつ、代表ECU200から起動用記憶領域の切り替えの指示を受けた場合には、更新用記憶領域を次回の起動時における起動用記憶領域として設定する。
【0052】
連携ECU220は、連携ECU210と比較して、センサ類の検出対象、制御対象(たとえば、ステアリングシステムやブレーキシステムなど)および制御動作が異なる。連携ECU220のそれ以外の構成は、連携ECU210と同様の構成を有している。そのため、連携ECU220の詳細な説明は繰り返さない。なお、以下においては、連携ECU210と連携ECU220とを特に区別しない場合には、両者を総称して、単に「連携ECU」と称する場合がある。
【0053】
駆動装置260は、連携ECU210に接続されており、連携ECU210からの制御信号に応じて電動車両100を駆動させる駆動動作を行なう。駆動装置260は、たとえば、モータジェネレータと、蓄電装置と、PCU(Power Control Unit)とを含む(いずれも図示せず)。蓄電装置は、たとえば、ニッケル水素電池、液体または固体の電解質を有するリチウムイオン電池等の二次電池、または、キャパシタ等の直流電源を含む。PCUは、蓄電装置の直流電力を交流電力に変換してモータジェネレータに供給したり、モータジェネレータにおいて発電された交流電力を直流電力に変換して蓄電装置に供給したりする。モータジェネレータは、電動車両100の駆動源であって、かつ、発電源であり、駆動輪を回転駆動させたり、あるいは、駆動輪の回転によって発電したりする。なお、駆動装置260は、駆動源あるいは発電源として内燃機関をさらに含むようにしてもよい。
【0054】
ADS240は、電動車両100の自動運転を実施可能に構成される。具体的には、ADS240は、代表ECU200、連携ECU210,220および各種センサから電動車両100の状態を示す情報(周囲環境)を取得し、取得された情報や目的地等を用いて走行計画を作成する。ADS240は、作成された走行計画に従って電動車両100を走行させるための各種制御要求を、駆動装置260を含む各種アクチュエータを制御する代表ECU200および連携ECU210,220に出力する。
【0055】
なお、本実施の形態においてADS240は、電動車両100に内蔵されるものとして説明するが、たとえば、電動車両100のルーフトップ等の予め定められた位置に取り付け可能であって、かつ、電動車両100から取り外し可能な自動運転キットによって構成されてもよい。
【0056】
電動車両100においては、ADS240からの制御要求に従った自動運転の実施が可能な自動運転モードと、ユーザによる各種操作(アクセル操作、ブレーキ操作、ステアリング操作)に応じた運転の実施が可能な手動運転モードとのうちのいずれかによって運転が行なわれる。なお、電動車両100に搭載される各種のアクチュエータは、代表ECU200および連携ECU210,220にのうちの少なくともいずれかによって制御される。なお、本実施の形態では、電動車両100に搭載される複数のECUが代表ECU200と連携ECU210,220とを含む構成を一例として説明したが、複数のECUに含まれる連携ECUの数は適宜変更することができる。複数のECUに含まれる連携ECUの数は、1つであってもよいし、3つ以上であってもよい。
【0057】
以上のような構成を有する電動車両100において、代表ECU200および連携ECU210,220がソフトウェアを実行することによって、電動車両100が備える各種の機能が実現される。電動車両100が備える機能は、たとえば、代表ECU200および連携ECU210,220が連携して処理を実行することによって実現される機能(以下「システム機能」とも称する)と、代表ECU200および連携ECU210,220の各々が、他のECUと連携せずに単独で処理を実行することによって実現される機能(以下「単独機能」とも称する)と含む。
【0058】
ここで、代表ECU200および連携ECU210,220の各々に記憶されたソフトウェアは、管理サーバ7から受信する更新情報を用いて更新されることにより、既存の機能を修正したり、新たな機能を追加したりすることができる。これらの更新されたソフトウェアによる機能(特にシステム機能)を適切に実行するために、代表ECU200は、たとえば、IGオン後に、代表ECU200および連携ECU210,220において実行されるソフトウェアの品番(バージョン)の組み合わせが整合しているか否かを確認する「起動チェック処理」を実行する。代表ECU200および連携ECU210,220では、IGオンにより起動すると、まず起動チェック処理が実行され、起動チェック処理の完了後に、各機能を実現するためのソフトウェアが実行される。
【0059】
代表ECU200は、たとえば、代表ECU200と連携ECU210,220とにおけるソフトウェアの品番(バージョン)の組み合わせが、予め定められた組み合わせである場合に、品番の組み合わせが整合していると判定する。代表ECU200は、代表ECU200と連携ECU210,220とにおけるソフトウェアの品番の組み合わせ情報を管理サーバ7から取得し、メモリ212に記憶している。
【0060】
図3は、ソフトウェアの品番(バージョン)の組み合わせ情報を説明するための図である。組み合わせ情報には、代表ECU200と連携ECU210,220とにおける更新前後のバージョンの組み合わせが含まれている。代表ECU200は、DCM230を介して、更新情報とともに組み合わせ情報を管理サーバ7から取得し、組み合わせ情報をメモリ202に記憶する。
【0061】
たとえば、更新前のバージョンの組み合わせでは、代表ECU200のソフトウェアのバージョンはA00001であり、連携ECU210のソフトウェアのバージョンはB00001であり、連携ECU220のソフトウェアのバージョンはC00001である。たとえば、更新後のバージョンの組み合わせでは、代表ECU200のソフトウェアのバージョンはA00002であり、連携ECU210のソフトウェアのバージョンはB00002であり、連携ECU220のソフトウェアのバージョンはC00002である。
【0062】
電動車両100が備える機能には、上述のとおり、システム機能と単独機能とが含まれる。システム機能を適切に実現するためには、代表ECU200と連携ECU210,220との間で、ソフトウェアの品番(バージョン)が整合していることが重要である。
【0063】
起動チェック処理において、代表ECU200は、起動用記憶領域に記憶されたソフトウェアを実行する前に、連携ECU210,220の各々から、起動用記憶領域に記憶されたソフトウェアの品番情報(バージョン情報)を取得する。連携ECU210,220の各々は、起動用記憶領域に記憶されたソフトウェアを実行する前に、起動用記憶領域に記憶されたソフトウェアの品番情報(バージョン情報)を代表ECU200に送信する。代表ECU200は、自身の起動用記憶領域に記憶されたソフトウェアの品番と、取得されたバージョン情報により特定される品番とを、組み合わせ情報に照会させる。代表ECU200は、組み合わせが一致する場合、各ECU(代表ECU200および連携ECU210,220)において起動用記憶領域の切り替えが適切に行なわれたと判定する。
【0064】
代表ECU200は、組み合わせが一致している場合には、システム機能を実現するための処理(以下「システム処理」とも称する)、および、単独機能を実現するための処理(以下「単独処理」とも称する)の実行を許可する。代表ECU200は、組み合わせが一致していない場合には、単独処理の実行を許可するが、システム処理は許可しない。図4を参照しながら、具体的に説明する。なお、システム処理は、本開示に係る「第1処理」の一例に相当する。単独処理は、本開示に係る「第2処理」の一例に相当する。
【0065】
図4は、代表ECU200と連携ECU210,220とで行なわれる動作の一例を説明するための図である。図4には、代表ECU200と連携ECUとの動作シーケンスが示されている。
【0066】
S1において、電動車両100のシステムを起動するための起動操作がユーザにより行なわれ、電動車両100がIGオン状態になる。IGオン状態になると、代表ECU200および連携ECU210,220の各々に電源電力が供給され、代表ECU200および連携ECU210,220が起動する。このとき、ソフトウェアの更新がある場合には、各ECUにおいて起動用記憶領域の切り替えが行なわれる。
【0067】
S10およびS20において、代表ECU200および連携ECU210,220の各々が起動チェック処理を開始する。代表ECU200および連携ECU210,220の各々において、起動チェック処理は、電動車両100がIGオフ状態になるまでの間において、起動時にのみ一度実行される。
【0068】
S21において、起動チェック処理を開始すると、連携ECU210,220の各々は、起動用記憶領域に記憶されるソフトウェアの品番(バージョン)を示す品番情報(バージョン情報)を代表ECU200に送信する。連携ECU210,220の各々は、予め定められた周期毎に、バージョン情報を代表ECU200に送信する。なお、起動用記憶領域に記憶されるソフトウェアの品番(バージョン)の取得方法には公知の技術を採用することができ、その詳細な説明は行なわない。
【0069】
S11において、代表ECU200は、IGオン状態となった後、連携ECU210,220の各々からのバージョン情報の初回受信により、バージョンチェックを実行する。バージョンチェックにおいて、代表ECU200は、自身(代表ECU200)の起動用記憶領域に記憶されるソフトウェアの品番(バージョン)と、連携ECU210,220の各々から受信したバージョン情報により特定される品番(バージョン)との組み合わせが予め定められた組み合わせであるか否かによって、バージョンの組み合わせが整合しているか否かを判定する。より具体的には、代表ECU200は、自身の起動用記憶領域に記憶されたソフトウェアのバージョンと、取得したバージョン情報により特定されるバージョンとを組み合わせ情報(図3)に照会させることにより、バージョンの組み合わせの整合性を判断する。たとえば、代表ECU200は、自身の起動用記憶領域に記憶されたソフトウェアのバージョンがA00002であり、連携ECU210から受信したバージョン情報により特定されるバージョンがB00002であり、連携ECU220から受信したバージョン情報により特定されるバージョンがC00002である場合、整合性ありと判定する。たとえば、代表ECU200は、自身の起動用記憶領域に記憶されたソフトウェアのバージョンがA00002であるにもかかわらず、連携ECU210から受信したバージョン情報により特定されるバージョンがB00001であったり、連携ECU220から受信したバージョン情報により特定されるバージョンがC00001であったりする場合、整合性なし(不整合)と判定する。また、代表ECU200は、S10の起動チェック処理を開始してから、予め定められた時間を経過したにもかかわらず、連携ECU210,220の少なくとも一方からバージョン情報を受信していない場合(タイムアウトした場合)、異常と判定する。なお、バージョンチェックは、本開示に係る「確認処理」の一例に相当する。
【0070】
S12において、代表ECU200は、バージョンチェックの結果(タイムアウトを含む)に基づいた起動信号を生成する。起動信号は、第1起動信号、第2起動信号および第3起動信号のいずれかを含む。代表ECU200は、バージョンチェックにおいて整合性ありと判定した場合、整合を示す情報を含む第1起動信号を生成する。代表ECU200は、バージョンチェックにおいて整合性なしと判定した場合、不整合を示す情報を含む第2起動信号を生成する。代表ECU200は、バージョンチェックにおいて異常と判定した場合、異常を示す情報を含む第3起動信号を生成する。代表ECU200は、生成された起動信号を連携ECU210,220に送信する。
【0071】
S22において、連携ECU210,220の各々は、起動信号を受信すると、バージョン情報の送信を停止する。これ以降、連携ECU210,220の各々から代表ECU200にバージョン情報は送られない。
【0072】
S13およびS23において、代表ECU200および連携ECU210,220の各々は、起動処理を開始する。具体的には、代表ECU200は、バージョンチェックの結果に基づいて、起動処理を開始する。連携ECU210,220の各々は、起動信号に基づいて、起動処理を開始する。バージョンチェックの結果および起動信号に関連付けて、許可される機能が予め定められている。
【0073】
図5は、バージョンチェックの結果に応じて許可される機能を説明するための図である。図5には、バージョンチェックの結果と、結果に応じて許可される機能(第1~第3機能)との対応関係が示されている。
【0074】
第1機能は、代表ECU200および連携ECU210,220が連携して処理を実行することによって実現される機能(システム機能)であり、たとえば、アダプティブクルーズコントロール機能である。第2機能は、システム機能であり、たとえば、プリクラッシュセーフティ(自動ブレーキ)機能である。第3機能は、連携ECU210が、他のECUと連携せずに単独で処理を実行することによって実現される機能(単独機能)であり、たとえば、駐車支援機能である。なお、本実施の形態では、上記の電動車両100の機能として第1~第3機能を例示しているが、電動車両100の機能はこれに限られるものではない。たとえば、代表ECU200が、他のECUと連携せずに単独で処理を実行することによって実現される機能、および、連携ECU220が、他のECUと連携せずに単独で処理を実行することによって実現される機能が含まれてもよい。
【0075】
(1)バージョンチェックの結果が整合であった場合には、代表ECU200は、第1~第3機能のすべてを許可状態に設定する。第1起動信号を受信すると、連携ECU210,220の各々は、第1~第3機能のすべてを許可状態に設定する。第1起動信号には、第1~第3機能のすべてを許可状態に設定することの指令が含まれており、連携ECU210,220の各々は、第1起動信号に従って第1~第3機能のすべてを許可状態に設定する。あるいは、連携ECU210,220の各々は、第1起動信号に含まれる整合を示す情報に基づいて、第1~第3機能のすべてを許可状態に設定してもよい。
【0076】
(2)バージョンチェックの結果が不整合であった場合には、代表ECU200は、第1機能および第2機能を不許可状態に設定し、かつ、第3機能を許可状態に設定する。すなわち、代表ECU200は、システム機能を不許可状態に設定する一方で、単独機能を許可状態に設定する。システム機能は、代表ECU200および連携ECU210,220が連携して処理を実行することによって実現される機能であるので、ソフトウェアに不整合が生じている状態では適切に実行されない可能性がある。一方、単独機能は、他のECUと連携せずに単独で処理を実行することによって実現される機能であるので、ソフトウェアに不整合が生じていても適切に実行することができる。よって、第1機能および第2機能は不許可とされ、第3機能は許可とされる。第2起動信号を受信すると、連携ECU210,220の各々は、第1機能および第2機能を不許可状態に設定し、かつ、第3機能を許可状態に設定する。第2起動信号には、第1機能および第2機能を不許可状態に設定し、かつ、第3機能を許可状態に設定することの指令が含まれており、連携ECU210,220の各々は、第2起動信号に従って第1機能および第2機能を不許可状態に設定し、かつ、第3機能を許可状態に設定する。あるいは、連携ECU210,220の各々は、第2起動信号に含まれる不整合を示す情報に基づいて、第1機能および第2機能を不許可状態に設定し、かつ、第3機能を許可状態に設定してもよい。
【0077】
(3)バージョンチェックの結果が異常であった場合には、代表ECU200は、第1~第3機能のすべてを不許可状態に設定する。第3起動信号を受信すると、連携ECU210,220の各々は、第1~第3機能のすべてを不許可状態に設定する。第3起動信号には、第1~第3機能のすべてを不許可状態に設定することの指令が含まれており、連携ECU210,220の各々は、第3起動信号に従って第1~第3機能のすべてを不許可状態に設定する。あるいは、連携ECU210,220の各々は、第3起動信号に含まれる異常を示す情報に基づいて、第1~第3機能のすべてを不許可状態に設定してもよい。
【0078】
再び、図4を参照し、S14およびS24において、代表ECU200および連携ECU210,220の各々は、許可された機能の実行を含む処理(以下「通常処理」とも称する)を開始する。代表ECU200および連携ECU210,220の各々は、不許可とされた機能を実行するための処理を開始しない。したがって、バージョンチェックの結果が不整合または異常であった場合には、システム機能を実行するための処理は開始されない。
【0079】
上記のようにして、電動車両100がIGオン状態となった後、代表ECU200および連携ECU210,220の各々において処理が開始される。
【0080】
ここで、処理の実行中において、連携ECUに電力を供給する電源の瞬断等の何らかの不具合の発生によって、連携ECUが再起動する場合がある。この場合、再起動した連携ECUは、起動用記憶領域の切り替えを行なう可能性がある。そうすると、起動チェック処理において整合性が確認されたにもかかわらず、その後に不整合の状態が生じ得る。そこで、再起動した連携ECUが起動チェック処理を開始してバージョン情報を送信することに着目し、代表ECU200は、起動処理後にバージョン情報を受信した場合には、システム処理を停止または不許可とする処理を実行する。以下では、連携ECU210が再起動したことを想定する。
【0081】
S25において、連携ECU210に電力を供給する電源の瞬断等の何らかの不具合の発生によって、連携ECU210が再起動する。
【0082】
S26において、連携ECU210が起動チェック処理を開始する。
そして、S27において、起動チェック処理を開始した連携ECU210は、起動用記憶領域に記憶されるソフトウェアの品番を示す品番情報(バージョン情報)を代表ECU200に送信する。連携ECU210は、予め定められた周期毎に、バージョン情報を代表ECU200に送信する。
【0083】
S15において、代表ECU200は、連携ECU210からバージョン情報を取得する。通常処理の実行開始後(実行中)にバージョン情報を受信すると、代表ECU200は、当該バージョン情報の送信元である連携ECU210に不正な再起動があったと判定する。そして、代表ECU200は、バージョンチェックを行なうことなく、異常信号を連携ECU210,220に送信する。異常信号は、第3起動信号に相当する信号である。すなわち、異常信号は、異常を示す情報を少なくとも含む。異常信号は、さらに、第1~第3機能のすべてを不許可状態に設定することの指令を含んでもよい。なお、代表ECU200は、第3起動信号を送信するように構成されてもよい。
【0084】
S28において、連携ECU210は、異常信号を受信すると、バージョン情報の送信を停止する。なお、連携ECU220は、異常信号を受信すると、S28およびS29の処理をスキップしてS30の処理を実行する。
【0085】
S29において、連携ECU210は、異常信号に基づいて、起動処理を開始する。この際の処理は、S23における第3起動信号を受信した場合の起動処理と同様である。
【0086】
S16およびS30において、代表ECU200および連携ECU210,220の各々は、システム処理を停止または不許可とする。具体的には、代表ECU200および連携ECU220は、システム処理を実行していた場合には、システム処理を停止させるためのシーケンスを実行し、システム処理を停止させる。代表ECU200および連携ECU220は、システム処理を実行していなかった場合には、以降においてシステム処理を開始させない。なお、代表ECU200および連携ECU220は、単独処理については引き続き継続して実行する。連携ECU210は、システム処理を開始せず、単独機能を実行するための処理を開始する。
【0087】
図4では、連携ECUが再起動した場合について説明したが、代表ECU200が再起動する場合も起こり得る。
【0088】
図6は、代表ECU200と連携ECU210,220とで行なわれる動作の他の例を説明するための図である。図6には、代表ECU200と連携ECU210との動作シーケンスが示されている。図4では、連携ECU210が再起動する例について説明したが、図6では、代表ECU200が再起動する例について説明する。図6は、図4のシーケンスに対して、S14およびS24以降の処理を変更したものである。そのため、S14およびS24以降の処理について説明する。
【0089】
S40において、代表ECU200に電力を供給する電源の瞬断等の何らかの不具合の発生によって、代表ECU200が再起動する。
【0090】
S41において、代表ECU200が起動チェック処理を開始する。
S42において、代表ECU200は、連携ECU210,220からバージョン情報が送信されてくるのを待つ。しかしながら、連携ECU210,220は再起動していないため、連携ECU210,220の各々は、バージョン情報を送信しない。したがって、起動チェック処理を開始してから、バージョン情報を送信しないまま予め定められた時間が経過する(タイムアウトする)。
【0091】
S43において、代表ECU200は、起動チェック処理を開始してから、バージョン情報を送信しないまま予め定められた時間が経過したことを検知し、異常と判定する。そして、代表ECU200は、異常信号を連携ECU210,220に送信する。
【0092】
S44において、代表ECU200は、システム処理を開始せず、単独機能を実行するための処理を開始する。
【0093】
S30において、連携ECU210,220は、システム処理を実行していた場合には、システム処理を停止させるためのシーケンスを実行し、システム処理を停止させる。連携ECU210,220は、システム処理を実行していなかった場合には、以降においてシステム処理を開始させない。なお、連携ECU210,220は、単独処理については引き続き継続して実行する。
【0094】
図7は、代表ECU200により実行される起動チェック処理の手順を示すフローチャートである。図7のフローチャートの処理は、代表ECU200の起動とともに開始される。図7および後述の図8のフローチャートの各ステップは、代表ECU200によるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が代表ECU200内に作製されたハードウェア(電気回路)によって実現されてもよい。
【0095】
S50において、代表ECU200は、起動チェック処理を開始し、連携ECU210,220からバージョン情報を受信する。
【0096】
S51において、代表ECU200は、対象となる全てのECUからバージョン情報を受信したか否かを判定する。本実施の形態では、対象となるECUは、連携ECU210,220である。代表ECU200は、連携ECU210,220の少なくともいずれか一方からバージョン情報を受信していない場合(S51においてNO)、処理をS52に進める。代表ECU200は、連携ECU210,220の両方からバージョン情報を受信した場合(S51においてYES)、処理をS54に進める。
【0097】
S52において、代表ECU200は、起動チェック処理を開始してから予め定められた第1時間が経過したか否かを判定する。代表ECU200は、第1時間が経過していない場合(S52においてNO)、処理をS50に返す。代表ECU200は、第1時間が経過した場合(S52においてYES)、タイムアウトを決定し、処理をS53に進める。
【0098】
S53において、代表ECU200は、何らかの異常が生じていると判定し、システム処理の実行を不許可とすることを決定する。さらに、代表ECU200は、単独処理の実行を不許可とすることを決定する。そして、代表ECU200は、異常を示す情報を含む第3起動信号を生成し、処理をS58に進める。代表ECU200は、システム処理および単独処理の実行を不許可とすることの指令を第3起動信号に含めてもよい。
【0099】
S54において、代表ECU200は、メモリ202から組み合わせ情報を読み出す。代表ECU200は、自身の起動用記憶領域に記憶されるソフトウェアの品番(バージョン)と、S50で連携ECU210,220の各々から受信したバージョン情報により特定される品番(バージョン)とを、組み合わせ情報に照会させることにより、組み合わせの整合性を判定する。
【0100】
S55において、代表ECU200は、S54における比較の結果、全てのバージョンが整合したか否かを判定する。代表ECU200は、全て整合したと判定した場合(S55においてYES)、処理をS56に進める。代表ECU200は、不整合があったと判定した場合(S55においてNO)、処理をS57に進める。なお、S52,S54およびS55の処理が、バージョンチェックに相当する。
【0101】
S56において、代表ECU200は、ソフトウェア整合と判定し、システム処理の実行を許可することを決定する。そして、代表ECU200は、整合を示す情報を含む第1起動信号を生成し、処理をS58に進める。代表ECU200は、システム処理および単独処理の実行を許可とすることの指令を第1起動信号に含めてもよい。
【0102】
S57において、代表EU200は、ソフトウェア不整合と判定し、システム処理の実行を不許可とすることを決定する。なお、代表ECU200は、単独処理の実行は許可することを決定する。代表ECU200は、不整合を示す情報を含む第2起動信号を生成し、処理をS58に進める。代表ECU200は、システム処理の実行を不許可とし、かつ、単独処理の実行を許可とすることの指令を第2起動信号に含めてもよい。
【0103】
S58において、代表EU200は、起動信号(第1起動信号、第2起動信号または第3起動信号)を連携ECU210,220に送信する。
【0104】
図8は、通常処理の実行中に代表ECU200により実行される処理の手順を示すフローチャートである。図8のフローチャートの処理は、通常処理(システム処理または単独処理)と並列に実行され、制御周期毎にメインルーチンから呼び出され、繰り返し実行される。
【0105】
S60において、代表ECU200は、連携ECU210,220からバージョン情報を受信したか否かを判定する。代表ECU200は、バージョン情報を受信していないと判定した場合(S60においてNO)、処理をメインルーチンに返す。代表ECU200は、バージョン情報を受信したと判定した場合(S60においてYES)、処理をS61に進める。
【0106】
S61において、代表ECU200は、バージョン情報の送信元の連携ECUが再起動したと判定し、システム処理の実行を停止または不許可とすることを決定する。さらに、代表ECU200は、単独処理の実行を禁止することを決定する。そして、代表ECU200は、異常信号を生成し、処理をS63に進める。
【0107】
S62において、代表ECU200は、異常信号を連携ECU210,220に送信する。
【0108】
図9は、連携ECUにより実行される起動チェック処理の手順を示すフローチャートである。図9のフローチャートの処理は、連携ECUの起動とともに開始される。図9および後述の図10のフローチャートの各ステップは、連携ECUによるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が連携ECU内に作製されたハードウェア(電気回路)によって実現されてもよい。
【0109】
S70において、連携ECUは、起動チェック処理を開始し、代表ECU200にバージョン情報を送信する。
【0110】
S71において、連携ECUは、代表ECU200から起動信号を受信したか否かを判定する。連携ECUは、代表ECU200から起動信号を受信していないと判定した場合(S71においてNO)、処理をS72に進める。連携ECUは、代表ECU200から起動信号を受信したと判定した場合(S71においてYES)、処理をS74に進める。
【0111】
S72において、連携ECUは、起動チェック処理を開始してから予め定められた第2時間が経過したか否かを判定する。第2時間は、たとえば、上述の第1時間以上の時間に設定することができる。連携ECUは、第2時間が経過していない場合(S72においてNO)、処理をS70に返す。連携ECUは、第2時間が経過した場合(S72においてYES)、タイムアウトを決定し、処理をS73に進める。
【0112】
S73において、連携ECUは、何らかの異常が生じていると判定し、システム処理の実行を禁止することを決定する。さらに連携ECUは、単独処理の実行を禁止することを決定する。
【0113】
S74において、連携ECUは、S71で受信した起動信号が第1起動信号であるか否かを判定する。連携ECUは、第1起動信号を受信したと判定した場合(S74においてYES)、処理をS75に進める。連携ECUは、第1起動信号を受信していないと判定した場合(S74においてNO)、処理をS76に進める。
【0114】
S75において、連携ECUは、第1起動信号に基づき、システム処理の実行を許可することを決定する。また、連携ECUは、第1起動信号に基づき、単独処理の実行を許可することを決定する。
【0115】
S76において、連携ECUは、S71で受信した起動信号が第2起動信号であるか否かを判定する。連携ECUは、第2起動信号を受信したと判定した場合(S76においてYES)、処理をS77に進める。連携ECUは、第2起動信号を受信していないと判定した場合(S76においてNO)、処理をS73に進める。
【0116】
S77において、連携ECUは、第2起動信号に基づき、システム処理の実行を禁止することを決定する。また、連携ECUは、第1起動信号に基づき、単独処理の実行は許可することを決定する。
【0117】
図10は、通常処理の実行中に連携ECUにより実行される処理の手順を示すフローチャートである。図10のフローチャートの処理は、通常処理(システム処理または単独処理)と並列に実行され、制御周期毎にメインルーチンから呼び出され、繰り返し実行される。
【0118】
S80において、連携ECUは、代表ECU200から異常信号を受信したか否かを判定する。連携ECUは、異常信号を受信していないと判定した場合(S80においてNO)、処理をメインルーチンに返す。連携ECUは、異常信号を受信したと判定した場合(S80においてYES)、処理をS81に進める。
【0119】
S81において、連携ECUは、システム処理の実行を禁止することを決定する。さらに、連携ECUは、単独処理の実行を禁止することを決定する。
【0120】
以上のように、電動車両100がIGオン状態になり、代表ECU200および連携ECU210,220が起動すると、代表ECU200および連携ECU210,220の各々において、各種の機能を実現するためのソフトウェアを実行する前に起動チェック処理が一度実行される。そして、起動チェック処理の後に、起動チェック処理の結果に基づいて各種の処理(システム処理および単独処理)の実行可否が決定され、通常処理が開始される。通常処理の開始後には、代表ECU200および連携ECUのいずれかに再起動があった場合には、代表ECU200から異常信号が送信され、システム処理が停止される。連携ECUが再起動した場合には、代表ECU200が通常処理中にバージョン情報を受信したことに起因して、代表ECU200から連携ECUに異常信号が送信される。代表ECU200が再起動した場合には、代表ECU200がバージョン情報を受信せずにタイムアウトすることに起因して、代表ECU200から連携ECUに異常信号が送信される。このように、ソフトウェアを実行する前に起動チェック処理が実行された後に、再起動等によってソフトウェアの不整合が生じ得る場合には、異常信号が送信されて、代表ECU200および連携ECUにおいてシステム処理が不許可とされるので、ソフトウェアの不整合が生じた状態において、システム処理が実行されることを抑制することができる。
【0121】
また、起動チェック処理を起動時に一度実行されるようにしたことによって、再起動等が起こらなければ、起動処理後に連携ECUから代表ECU200にバージョン情報が送られることはない。したがって、代表ECU200は、処理実行時に連携ECUからバージョン情報を受信した場合には、バージョンチェックを行なうことなく異常と判定することができる。よって、定期的にバージョン情報を受信してバージョンチェックを実行するような場合に比べ、演算資源を抑制することが可能となる。
【0122】
また、ソフトウェアの不整合が生じている場合には、システム処理を不許可とする一方で、単独処理は許可とされる。ソフトウェアの不整合が生じている場合であっても、処理可能な単独処理の実行は許可することにより、過度に処理の実行を制限することを抑制することができる。
【0123】
また、代表ECU200が起動チェック処理を開始してから第1時間内にバージョン情報を受信できなかった場合や、連携ECUがバージョン情報を送信してから第2時間内に起動信号を受信できなかった場合、何らかの異常が生じていることが想定される。この場合には、システム処理および単独処理の実行を不許可とすることにより、異常が生じた状態でシステム処理および単独処理が実行されることを抑制することができる。
【0124】
[変形例]
実施の形態では、連携ECUは、起動チェック処理において、代表ECU200にバージョン情報を定期的に送信した。しかしながら、連携ECUは、起動チェック処理において、起動したことを示す信号を代表ECU200に送信し、代表ECU200からの求めに応じてバージョン情報を送信するように構成されてもよい。
【0125】
電動車両100がIGオン状態になると、代表ECU200および連携ECU210,220の各々に電源電力が供給され、代表ECU200および連携ECU210,220が起動する。そして、代表ECU200および連携ECU210,220の各々が起動チェック処理を開始する。
【0126】
起動チェック処理を開始すると、連携ECU210,220の各々は、起動したことを示す信号を代表ECU200に送信する。代表ECU200は、起動チェック処理時に起動したことを示す信号を受信すると、その信号の送信元の連携ECUに対して、バージョン情報の送信要求を送信する。
【0127】
連携ECU210,220の各々は、バージョン情報の送信要求を受信すると、バージョン情報を代表ECU200に送信する。代表ECU200は、バージョン情報を用いて、実施の形態で説明したバージョンチェックを実行する。なお、連携ECU210,220の各々は、起動チェック処理の開始後、代表CU200から起動信号を受信するまで、起動処理を開始しない。以降の処理は、実施の形態と同様であるため、繰り返し説明しない。
【0128】
また、代表ECU200は、通常処理を開始して以降、少なくともいずれかの連携ECUから起動したことを示す信号を受信すると、何らかの異常が生じていると判定し、異常信号を連携ECU210,220に送信する。以降の処理は、実施の形態と同様であるため、繰り返し説明しない。
【0129】
以上のように、変形例の構成においても、実施の形態と同様の効果を奏することができる。
【0130】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0131】
1 通信システム、6 通信ネットワーク、7 管理サーバ、100 電動車両、200 代表ECU、201 CPU、202 メモリ、202A 第1記憶領域、202B 第2記憶領域、210,220 連携ECU、212 メモリ、212A 第3記憶領域、212B 第4記憶領域、250 通信バス、260 駆動装置。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10