(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024046296
(43)【公開日】2024-04-03
(54)【発明の名称】制御システム及びソフトウェア更新方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20240327BHJP
B60R 16/02 20060101ALI20240327BHJP
【FI】
G06F8/65
B60R16/02 660U
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022151600
(22)【出願日】2022-09-22
(71)【出願人】
【識別番号】301065892
【氏名又は名称】株式会社アドヴィックス
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】太田 利信
(72)【発明者】
【氏名】金 光華
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376AE01
5B376CA43
5B376CA46
5B376CA57
5B376CA61
5B376CA76
5B376FA11
5B376GA08
(57)【要約】
【課題】第1ECUの記憶装置のソフトウェアを更新したことにより、第1ECUと他のECUとの間でデータの送受信を正常に行えなくなることを抑制すること。
【解決手段】制御システム15は、情報処理装置30と複数のECUとを備えている。情報処理装置30は、複数のECUのうちの第1ECU向けの更新用ソフトウェアを情報処理装置30が取得した場合、第1ECUのソフトウェアを更新した際に第1ECUと他のECUとの間で不整合が発生するか否かを判定する。そして、情報処理装置30は、第1ECUと他のECUとの間で不整合が発生すると判定した場合には、更新用ソフトウェアを第1ECUに送信しない。
【選択図】
図1
【特許請求の範囲】
【請求項1】
車両の外部から無線通信で当該車両に送信された更新用ソフトウェアを取得する情報処理装置と、車内ネットワークを介して前記情報処理装置と通信可能に構成された複数の電子制御装置と、を備え、
前記複数の電子制御装置は、実行装置と、当該実行装置が実行するソフトウェアを記憶する記憶装置と、をそれぞれ備え、
前記情報処理装置は、
前記複数の電子制御装置のうちの第1電子制御装置向けの更新用ソフトウェアを前記情報処理装置が取得した場合、
前記第1電子制御装置の前記記憶装置のソフトウェアを前記更新用ソフトウェアに更新した際に前記複数の電子制御装置のうちの前記第1電子制御装置とは別の他の電子制御装置と前記第1電子制御装置との間で不整合が発生するか否かを判定し、
前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生しないと判定した場合には、前記第1電子制御装置の前記記憶装置のソフトウェアの更新を許可して前記更新用ソフトウェアを前記第1電子制御装置に送信し、
前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生すると判定した場合には、前記更新用ソフトウェアを前記第1電子制御装置に送信しない
制御システム。
【請求項2】
前記情報処理装置は、
前記第1電子制御装置向けの更新用ソフトウェアである第1更新用ソフトウェアと、前記複数の電子制御装置のうちの第2電子制御装置向けの更新用ソフトウェアである第2更新用ソフトウェアとの何れをも取得した場合、
前記第1電子制御装置の前記記憶装置のソフトウェアを前記第1更新用ソフトウェアに更新し、且つ前記第2電子制御装置の前記記憶装置のソフトウェアを前記第2更新用ソフトウェアに更新した際に前記第1電子制御装置と前記第2電子制御装置との間で不整合が発生するか否かを判定し、
前記第1電子制御装置と前記第2電子制御装置との間で不整合が発生しないと判定した場合には、ソフトウェアの更新を許可し、前記第1更新用ソフトウェアを前記第1電子制御装置に送信し、前記第2更新用ソフトウェアを前記第2電子制御装置に送信し、
前記第1電子制御装置と前記第2電子制御装置との間で不整合が発生すると判定した場合には、前記第1更新用ソフトウェアを前記第1電子制御装置に送信せず、且つ前記第2更新用ソフトウェアを前記第2電子制御装置に送信しない
請求項1に記載の制御システム。
【請求項3】
前記第1電子制御装置の前記記憶装置のソフトウェア、及び前記第2電子制御装置の前記記憶装置のソフトウェアの双方を更新する場合、
前記第1電子制御装置及び前記第2電子制御装置の各々は、前記第1電子制御装置の前記記憶装置のソフトウェアの更新、及び前記第2電子制御装置の前記記憶装置のソフトウェアの更新の双方が完了した後に再起動する
請求項2に記載の制御システム。
【請求項4】
前記情報処理装置は、
前記第1電子制御装置の前記記憶装置のソフトウェアを前記更新用ソフトウェアに更新した際には前記第1電子制御装置から前記車内ネットワークに送信されるデータの大きさが前記他の電子制御装置から前記車内ネットワークに送信されるデータの大きさと一致しなくなる場合には、前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生すると判定する
請求項1~請求項3のうち何れか一項に記載の制御システム。
【請求項5】
車両に設けられた電子制御装置が備える記憶装置のソフトウェアを更新させるソフトウェア更新方法であって、
前記車両は、車外から無線通信で当該車両に送信された更新用ソフトウェアを取得する情報処理装置と、前記情報処理装置とは車内ネットワークを介して通信可能に構成された複数の前記電子制御装置と、を備えるものであり、
前記情報処理装置が、前記複数の電子制御装置のうちの第1電子制御装置向けの前記更新用ソフトウェアを取得するステップと、
前記情報処理装置が、前記第1電子制御装置の前記記憶装置のソフトウェアを前記更新用ソフトウェアに更新した際に前記複数の電子制御装置のうちの前記第1電子制御装置とは別の他の電子制御装置と前記第1電子制御装置との間で不整合が発生するか否かを判定するステップと、
前記情報処理装置が、前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生しないと判定した場合に、前記更新用ソフトウェアを、前記車内ネットワークを介して前記第1電子制御装置に送信するステップと、
前記情報処理装置が、前記第1電子制御装置と前記他の電子制御装置との間で不整合が発生すると判定した場合には前記更新用ソフトウェアを前記第1電子制御装置に送信しないステップと、
前記第1電子制御装置の実行装置が、前記車内ネットワークを介して前記更新用ソフトウェアを受信した場合に、前記記憶装置のソフトウェアを当該更新用ソフトウェアに書き換えるステップと、を有する
ソフトウェア更新方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に設けられている制御システム及びソフトウェア更新方法に関する。
【背景技術】
【0002】
特許文献1は、車載の電子制御装置が備える記憶装置のソフトウェアを更新するシステムを開示している。当該システムは、車外のデータセンタから無線通信で車両に送信された更新用ソフトウェアを取得する情報処理装置と、情報処理装置と通信する電子制御装置とを備えている。電子制御装置の記憶装置のソフトウェアを更新する場合、情報処理装置は、更新用ソフトウェアを電子制御装置に送信する。電子制御装置は、記憶装置のソフトウェアを当該更新用ソフトウェアに書き換えることによってソフトウェアを更新する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両には、複数の電子制御装置が設けられている。例えば複数の電子制御装置のうち、第1電子制御装置の記憶装置のソフトウェアのみを更新した場合を考える。この場合、ソフトウェアが更新されていない他の電子制御装置と、第1電子制御装置との間で不整合が発生するおそれがある。このような不整合が発生すると、第1電子制御装置と他の電子制御装置との間でデータの送受信を正常に行えなくなるおそれがある。
【課題を解決するための手段】
【0005】
上記課題を解決するための制御システムは、車両の外部から無線通信で当該車両に送信された更新用ソフトウェアを取得する情報処理装置と、車内ネットワークを介して前記情報処理装置と通信可能に構成された複数の電子制御装置と、を備えている。前記複数の電子制御装置は、実行装置と、当該実行装置が実行するソフトウェアを記憶する記憶装置と、をそれぞれ備えている。前記情報処理装置は、前記複数の電子制御装置のうちの第1電子制御装置向けの更新用ソフトウェアを前記情報処理装置が取得した場合、前記第1電子制御装置の前記記憶装置のソフトウェアを前記更新用ソフトウェアに更新した際に前記複数の電子制御装置のうちの前記第1電子制御装置とは別の他の電子制御装置と前記第1電子制御装置との間で不整合が発生するか否かを判定し、前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生しないと判定した場合には、前記第1電子制御装置の前記記憶装置のソフトウェアの更新を許可して前記更新用ソフトウェアを前記第1電子制御装置に送信し、前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生すると判定した場合には、前記更新用ソフトウェアを前記第1電子制御装置に送信しない。
【0006】
上記制御システムは、第1電子制御装置の記憶装置のソフトウェアを更新用ソフトウェアに更新した際に第1電子制御装置と他の電子制御装置との間で不整合が発生すると判定した場合には、第1電子制御装置の記憶装置のソフトウェアを更新させない。
【0007】
その一方で、上記制御システムは、第1電子制御装置の記憶装置のソフトウェアを更新用ソフトウェアに更新しても第1電子制御装置と他の電子制御装置との間で不整合が発生しないと判定した場合には、第1電子制御装置の記憶装置のソフトウェアの更新を許可する。すなわち、情報処理装置が更新用ソフトウェアを第1電子制御装置に送信する。すると、第1電子制御装置の実行装置は、記憶装置のソフトウェアを更新用ソフトウェアに書き換える。
【0008】
したがって、上記制御システムは、第1電子制御装置の記憶装置のソフトウェアを更新したことにより、第1電子制御装置と他の電子制御装置との間でデータの送受信を正常に行えなくなることを抑制できる。
【0009】
上記課題を解決するためのソフトウェア更新方法は、車両に設けられた電子制御装置が備える記憶装置のソフトウェアを更新させる方法である。前記車両は、車外から無線通信で当該車両に送信された更新用ソフトウェアを取得する情報処理装置と、前記情報処理装置とは車内ネットワークを介して通信可能に構成された複数の前記電子制御装置と、を備えるものである。当該ソフトウェア更新方法は、前記情報処理装置が、前記複数の電子制御装置のうちの第1電子制御装置向けの前記更新用ソフトウェアを取得するステップと、前記情報処理装置が、前記第1電子制御装置の前記記憶装置のソフトウェアを前記更新用ソフトウェアに更新した際に前記複数の電子制御装置のうちの前記第1電子制御装置とは別の他の電子制御装置と前記第1電子制御装置との間で不整合が発生するか否かを判定するステップと、前記情報処理装置が、前記他の電子制御装置と前記第1電子制御装置との間で不整合が発生しないと判定した場合に、前記更新用ソフトウェアを、前記車内ネットワークを介して前記第1電子制御装置に送信するステップと、前記情報処理装置が、前記第1電子制御装置と前記他の電子制御装置との間で不整合が発生すると判定した場合には前記更新用ソフトウェアを前記第1電子制御装置に送信しないステップと、前記第1電子制御装置の実行装置が、前記車内ネットワークを介して前記更新用ソフトウェアを受信した場合に、前記記憶装置のソフトウェアを当該更新用ソフトウェアに書き換えるステップと、を有する。
【0010】
上記ソフトウェア更新方法では、上記複数のステップが実行されることにより、上記制御システムと同等の作用及び効果を得ることができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態の制御システムを備える車両と、車両の外部に設けられているデータセンタとを示す概略構成図である。
【
図2】
図2は、同制御システムの情報処理装置で実行される処理の流れを示すフローチャートである。
【
図3】
図3において、(A)及び(B)は、電子制御装置から送信されるデータの大きさを示す模式図である。
【
図4】
図4は、
図2に示した一連の処理が同情報処理装置で実行される際に、同制御システムの電子制御装置で実行される処理の流れを示すフローチャートである。
【
図5】
図5は、同情報処理装置で実行される処理の流れを示すフローチャートである。
【
図6】
図6は、
図5に示した一連の処理が同情報処理装置で実行される際に、同電子制御装置で実行される処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、制御システム及びソフトウェア更新方法の一実施形態を
図1~
図6に従って説明する。本明細書では、電子制御装置を「ECU」と記載する。「ECU」は「Electronic Control Unit」の略記である。
【0013】
図1は、車両10と、車両10の外部に設けられているデータセンタ100とを図示している。
<データセンタ>
データセンタ100は、車外ネットワーク200を介して車両10と各種の情報の送受信ができるように構成されている。すなわち、データセンタ100は、無線通信によって車両10と各種情報の送受信を行う。
【0014】
詳しくは後述するが、車両10は複数のECUを備えている。複数のECUのうちの何れかのECUの記憶装置のソフトウェアを更新するための更新用ソフトウェアが用意できた場合、データセンタ100は、車外ネットワーク200を介して当該更新用ソフトウェアを車両10に送信する。なお、車両10に設けられている複数のECUのうち、ソフトウェアを更新するECUを「更新対象ECU」という。
【0015】
<車両>
車両10は、制御システム15とアクチュエータとを備えている。車両10は、アクチュエータとして、第1アクチュエータ11と第2アクチュエータ12とを備えている。第1アクチュエータ11及び第2アクチュエータ12は、車両10で発生する制動力を調整すべく作動する。
【0016】
<制御システム>
制御システム15は、通信装置20と情報処理装置30とを備えている。通信装置20は、データセンタ100との情報を送受信するための車両側のインターフェースである。
【0017】
情報処理装置30は、ローカルネットワーク41を介して通信装置20と通信できるように構成されている。ローカルネットワーク41は、情報処理装置30と通信装置20との間のみで情報の送受信を行うためのネットワークである。
【0018】
情報処理装置30は、データセンタ100から無線通信によって車両10に送信された更新用ソフトウェアを取得する。具体的には、情報処理装置30は、実行装置31と、記憶装置32と、格納装置33とを備えている。例えば、実行装置31はCPUであり、記憶装置32は不揮発性のメモリであり、格納装置33は揮発性のメモリである。記憶装置32は、実行装置31によって実行されるソフトウェアを記憶している。格納装置33は、通信装置20からローカルネットワーク41を介して送信された情報を一時的に格納する。すなわち、データセンタ100が、更新対象ECUを特定する情報及び更新用ソフトウェアを車両10に送信すると、通信装置20が、データセンタ100が送信した情報を受信する。そして、通信装置20は、受信した情報を、ローカルネットワーク41を介して情報処理装置30に送信する。すると、情報処理装置30の実行装置31は、ローカルネットワーク41を介して受信した情報、すなわち更新対象ECUを特定する情報及び更新用ソフトウェアを格納装置33に記憶させる。
【0019】
制御システム15は、グローバルネットワーク42と、複数のECUとを備えている。グローバルネットワーク42は、情報処理装置30と複数のECUとを通信可能に接続する車内ネットワークである。例えば、グローバルネットワーク42はCANバスである。CANは「Controller Area Network」の略記である。
【0020】
複数のECUは、第1制動ECU60と、第2制動ECU70とを含んでいる。第1制動ECU60及び第2制動ECU70は、車両10で発生する制動力を調整するECUである。第1制動ECU60は、第1アクチュエータ11を作動させる。第2制動ECU70は、第2アクチュエータ12を作動させる。なお、複数のECUは、制動ECU60以外の他のECU50も含んでいる。
【0021】
制御システム15は、第1制動ECU60と第2制動ECU70との間のみで情報の送受信を行うためのローカルネットワーク43を備えている。そのため、制御システム15では、第1制動ECU60と第2制動ECU70との間で情報の送受信を行う場合、グローバルネットワーク42を使うこともできるし、ローカルネットワーク43を使うこともできる。
【0022】
<ECU>
複数のECUは、実行装置と記憶装置とをそれぞれ備えている。例えば、実行装置はCPUであり、記憶装置62は不揮発性のメモリである。記憶装置には、実行装置が実行するソフトウェアが記憶される。
【0023】
詳しくは、第1制動ECU60の実行装置61は、記憶装置62のソフトウェアを実行することによって第1アクチュエータ11を制御する。第2制動ECU70の実行装置71は、記憶装置72のソフトウェアを実行することによって第2アクチュエータ12を制御する。
【0024】
本実施形態では、第1アクチュエータ11の作動に第2アクチュエータ12の作動を協調させることによって、車両10で発生する制動力を調整することがある。この場合、第1制動ECU60と第2制動ECU70との間では相互にデータの送受信を行いつつ、第1制動ECU60が第1アクチュエータ11を作動させるとともに、第2制動ECU70が第2アクチュエータ12を作動させる。
【0025】
<1つのECUにおいて記憶装置のソフトウェアを更新する場合>
複数のECUのうちの1つのECUのみで記憶装置のソフトウェアを更新する場合について説明する。ここでは、第1制動ECU60の記憶装置62のソフトウェアを更新する場合について説明する。この場合、第1制動ECU60が更新対象ECUであるため、第1制動ECU60が「第1電子制御装置」に対応する。
【0026】
図2を参照し、第1制動ECU60の記憶装置62のソフトウェアを更新する際に情報処理装置30で実行される処理ルーチンを説明する。
ステップS11において、情報処理装置30の実行装置31は、第1制動ECU60向けの更新用ソフトウェアを、通信装置20を介して取得する。ここでは、第1制動ECU60向けの更新用ソフトウェアが、「第1電子制御装置向けの更新用ソフトウェア」に対応する。次のステップS13において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアを上記の更新用ソフトウェアに更新してよいか否かを判定する第1判定処理を実行する。第1判定処理において、実行装置31は、記憶装置62のソフトウェアを上記の更新用ソフトウェアに更新した際に複数のECUのうちの第1制動ECU60以外の他のECUと第1制動ECU60との間で不整合が発生するか否かを判定する。
【0027】
図3を参照し、第1判定処理の一例を説明する。実行装置31は、更新用ソフトウェアを解析することにより、記憶装置62のソフトウェアを当該更新用ソフトウェアに更新した場合に第1制動ECU60からグローバルネットワーク42に送信される第1仮定データD2の大きさを取得する。このとき、実行装置31は、第1仮定データD2の大きさとして、第1仮定データD2のID数及びビット数のうちの少なくとも一方を取得する。また、実行装置31は、他のECUからグローバルネットワーク42に送信される基準データD1の大きさを取得する。このとき、実行装置31は、基準データD1の大きさとして、基準データD1のID数及びビット数のうちの少なくとも一方を取得する。
【0028】
例えば、
図3(B)は第1仮定データD2の大きさ(例えば、ビット数)を示し、
図3(A)は基準データD1の大きさ(例えば、ビット数)を示している。
図3に示す例では、第1仮定データD2の大きさは、基準データD1の大きさと異なっている。この場合、第1制動ECU60のソフトウェアを更新してしまうと、第1制動ECU60が送信したデータを他のECUが正しく認識できないおそれがある。また、他のECUが送信したデータを第1制動ECU60が正しく認識できないおそれがある。そのため、第1仮定データD2の大きさが基準データD1の大きさと同じである場合、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアを更新した際に他のECUと第1制動ECU60との間で不整合が発生すると判定する。
【0029】
一方、第1仮定データD2の大きさが基準データD1の大きさと同じである場合、第1制動ECU60が送信したデータを他のECUが正しく認識できる。また、他のECUが送信したデータを第1制動ECU60が正しく認識できる。そのため、第1仮定データD2の大きさが基準データD1の大きさと同じである場合、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアを更新した際に他のECUと第1制動ECU60との間で不整合が発生しないと判定する。
【0030】
図2に戻り、実行装置31は、第1判定処理を実行すると、処理をステップS15に移行する。ステップS15において、実行装置31は、第1判定処理において他のECUと第1制動ECU60との間で不整合が発生すると判定した場合(S15:YES)、処理をステップS17に移行する。一方、実行装置31は、第1判定処理において他のECUと第1制動ECU60との間で不整合が発生しないと判定した場合(S15:NO)、処理をステップS21に移行する。
【0031】
ステップS17において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアの更新を禁止する。この場合、実行装置31は、第1制動ECU60向けの更新用ソフトウェアを第1制動ECU60に送信しない。続いてステップS19において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアを更新しない旨を、通信装置20からデータセンタ100に送信させる。その後、実行装置31は本処理ルーチンを終了する。
【0032】
ステップS21において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアの更新を許可する旨を第1制動ECU60に通知する。
なお、上記のような通知をECUが受信した場合、当該ECUでは、その実行装置の制御モードが通常モードから更新モードに移行する。通常モードとは、車両10を走行させる際の実行装置の制御モードである。更新モードは、ソフトウェアを更新する際の実行装置の制御モードである。当該ECUでは、実行装置の制御モードが更新モードに切り替わると、その旨の通知が情報処理装置30に送信される。
【0033】
ステップS23において、実行装置31は、第1制動ECU60の実行装置61の制御モードが更新モードに移行したか否かを判定する。実行装置31は、上記の通知を第1制動ECU60から受信した場合、制御モードが更新モードに移行したと判定する(S23:YES)。そして、実行装置31は処理をステップS25に移行する。一方、実行装置31は、上記の通知を第1制動ECU60から受信していない場合、制御モードが更新モードに移行していないと判定する(S23:NO)。この場合、実行装置31は、上記の通知を第1制動ECU60から受信するまでステップS23の判定を繰り返し実行する。
【0034】
ステップS25において、実行装置31は、第1制動ECU60向けの更新用ソフトウェアを、グローバルネットワーク42を介して第1制動ECU60に送信する。続いてステップS27において、実行装置31は、第1制動ECU60において記憶装置62のソフトウェアの更新が完了したか否かを判定する。実行装置31は、ソフトウェアの更新が完了したと判定した場合(S27:YES)、処理をステップS29に移行する。一方、実行装置31は、ソフトウェアの更新が完了していないと判定した場合(S27:NO)、ソフトウェアの更新が完了したと判定できるまでステップS27の判定を繰り返し実行する。
【0035】
ステップS29において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアを更新した旨を、通信装置20からデータセンタ100に送信させる。その後、実行装置31は本処理ルーチンを終了する。
【0036】
図4を参照し、更新対象ECUの記憶装置のソフトウェアを更新する際に更新対象ECUの実行装置が実行する処理ルーチンを説明する。ここでは、更新対象ECUが第1制動ECU60である場合を例に挙げて説明する。
【0037】
ステップS41において、第1制動ECU60の実行装置61は、記憶装置62のソフトウェアを更新することが情報処理装置30に許可されたか否かを判定する。例えば、
図2に示したステップS21で情報処理装置30から送信された通知を第1制動ECU60が受信した場合は、ソフトウェアの更新が許可されたと見なす。一方、上記通知を第1制動ECU60が受信していない場合は、ソフトウェアの更新が許可されていないと見なす。実行装置61は、ソフトウェアの更新が許可されたと判定した場合(S41:YES)、処理をステップS43に移行する。一方、実行装置61は、ソフトウェアの更新が許可されていないと判定した場合(S41:NO)、本処理ルーチンを終了する。
【0038】
ステップS43において、実行装置61は、自身の制御モードを通常モードから更新モードに移行する。具体的には、実行装置61は、自身をリセットし、制御モードを通常モードから更新モードに変更して再起動する。そして、実行装置61は、制御モードが更新モードに移行した旨の通知を、グローバルネットワーク42を介して情報処理装置30に送信する。なお、第1制動ECU60の実行装置31の通常モードとは、第1アクチュエータ11を制御するための制御モードである。
【0039】
次のステップS45において、実行装置61は、記憶装置62に記憶されていた更新前のソフトウェアを削除する。そしてステップS47において、実行装置61は、情報処理装置30から受信した更新用ソフトウェアを記憶装置62に書き込む。すなわち、ステップS45及びステップS47において、実行装置61は、記憶装置62のソフトウェアを更新用ソフトウェアに書き換える。その後、実行装置61は処理をステップS49に移行する。ステップS49において、実行装置61は、記憶装置62のソフトウェアの更新が完了した旨を情報処理装置30に通知する。
【0040】
ステップS51において、実行装置61は、自身の制御モードを更新モードから通常モードに移行する。具体的には、実行装置61は、自身をリセットし、制御モードを更新モードから通常モードに変更して再起動する。その後、実行装置61は本処理ルーチンを終了する。
【0041】
<複数のECUにおいて記憶装置のソフトウェアを更新する場合>
複数のECUのうちの2つのECUの記憶装置のソフトウェアを更新する場合について説明する。ここでは、第1制動ECU60の記憶装置62のソフトウェアと、第2制動ECU70の記憶装置72のソフトウェアとを更新する場合について説明する。この場合、第1制動ECU60及び第2制動ECU70の双方が更新対象ECUであるため、第1制動ECU60が「第1電子制御装置」に対応し、第2制動ECU70が「第2電子制御装置」に対応する。
【0042】
図5を参照し、第1制動ECU60の記憶装置62のソフトウェア及び第2制動ECU70の記憶装置72のソフトウェアを更新する際に情報処理装置30で実行される処理ルーチンを説明する。
【0043】
ステップS71において、情報処理装置30の実行装置31は、第1更新用ソフトウェア及び第2更新用ソフトウェアを、通信装置20を介して取得する。第1更新用ソフトウェアは、第1制動ECU60向けの更新用ソフトウェアである。第2更新用ソフトウェアは、第2制動ECU70向けの更新用ソフトウェアである。
【0044】
ステップS73において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアの更新、及び、第2制動ECU70の記憶装置72のソフトウェアの更新を行ってよいか否かを判定する第2判定処理を実行する。第2判定処理において、実行装置31は、記憶装置62のソフトウェアを第1更新用ソフトウェアに更新し、且つ記憶装置72のソフトウェアを第2更新用ソフトウェアに更新した際に第1制動ECU60と第2制動ECU70との間で不整合が発生するか否かを判定する。
【0045】
例えば、実行装置31は、第1更新用ソフトウェアを解析することにより、記憶装置62のソフトウェアを当該第1更新用ソフトウェアに更新した場合に第1制動ECU60とローカルネットワーク43との間で送受信される第1仮定データの大きさを取得する。このとき、実行装置31は、第1仮定データの大きさとして、第1仮定データのID数及びビット数のうちの少なくとも一方を取得する。また、実行装置31は、第2更新用ソフトウェアを解析することにより、記憶装置72のソフトウェアを当該第2更新用ソフトウェアに更新した場合に第2制動ECU70とローカルネットワーク43との間で送受信される第2仮定データの大きさを取得する。このとき、実行装置31は、第1仮定データの大きさとして、第1仮定データのID数及びビット数のうちの少なくとも一方を取得する。第1仮定データの大きさが第2仮定データの大きさと同じである場合、すなわち双方の送信データの大きさと受信データの大きさとが互いに等しい場合、双方の制動ECU60,70でソフトウェアを更新しても、第1制動ECU60が送信したデータを第2制動ECU70が正確に認識できる。また、第2制動ECU70が送信したデータを第1制動ECU60が正確に認識できる。そのため、第1仮定データの大きさが第2仮定データの大きさと同じである場合、実行装置31は、第1制動ECU60と第2制動ECU70との間で不整合が発生しないと判定する。
【0046】
一方、第1仮定データの大きさが第2仮定データの大きさと異なっている場合、双方の制動ECU60,70でソフトウェアを更新すると、第1制動ECU60が送信したデータを第2制動ECU70が正確に認識できないおそれがある。また、第2制動ECU70が送信したデータを第1制動ECU60が正確に認識できないおそれがある。そのため、第1仮定データの大きさが第2仮定データの大きさと異なる場合、実行装置31は、第1制動ECU60と第2制動ECU70との間で不整合が発生すると判定する。
【0047】
ステップS75において、実行装置31は、第2判定処理において第1制動ECU60と第2制動ECU70との間で不整合が発生すると判定した場合(S75:YES)、処理をステップS77に移行する。一方、実行装置31は、第2判定処理において第1制動ECU60と第2制動ECU70との間で不整合が発生しないと判定した場合(S75:NO)、処理をステップS81に移行する。
【0048】
ステップS77において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアの更新を禁止し、第2制動ECU70の記憶装置72のソフトウェアの更新を禁止する。この場合、実行装置31は、第1更新用ソフトウェアを第1制動ECU60に送信しない。同様に、実行装置31は、第2更新用ソフトウェアを第2制動ECU70に送信しない。続いてステップS79において、実行装置31は、第1制動ECU60及び第2制動ECU70の何れにおいても記憶装置のソフトウェアを更新しない旨を、通信装置20からデータセンタ100に送信させる。その後、実行装置31は本処理ルーチンを終了する。
【0049】
ステップS81において、実行装置31は、第1制動ECU60の記憶装置62のソフトウェアの更新を許可する旨を第1制動ECU60に通知する。また、実行装置31は、第2制動ECU70の記憶装置72のソフトウェアの更新を許可する旨を第2制動ECU70に通知する。そしてステップS83において、実行装置31は、更新数Nとして1を設定する。
【0050】
ステップS85において、実行装置31は、第N制動ECUの実行装置の制御モードが更新モードに移行したか否かを判定する。例えば更新数Nが1である場合、実行装置31は、第1制動ECU60の実行装置61の制御モードが更新モードに移行したか否かを判定する。ここでの判定方法は、
図2に示したステップS23と同様である。そのため、ここでは判定方法の詳細を割愛する。
【0051】
実行装置31は、第N制動ECUの実行装置の制御モードが更新モードに移行したと判定した場合(S85:YES)、処理をステップS87に移行する。一方、実行装置31は、第N制動ECUの実行装置の制御モードが更新モードに移行していないと判定した場合(S85:NO)、制御モードが更新モードに移行したと判定できるまでステップS85の判定を繰り返し実行する。
【0052】
ステップS87において、実行装置31は、第N更新用ソフトウェアを、グローバルネットワーク42を介して第N制動ECUに送信する。例えば更新数Nが1である場合、実行装置31は、第1更新用ソフトウェアを第1制動ECUに送信する。続いてステップS89において、実行装置31は、第N制動ECUの記憶装置のソフトウェアの更新が完了したか否かを判定する。実行装置31は、ソフトウェアの更新が完了したと判定した場合(S89:YES)、処理をステップS91に移行する。一方、実行装置31は、ソフトウェアの更新が完了していないと判定した場合(S89:NO)、ソフトウェアの更新が完了したと判定できるまでステップS89の判定を繰り返し実行する。
【0053】
ステップS91において、実行装置31は、更新数Nを1だけインクリメントする。そしてステップS93において、実行装置31は、更新数Nが更新対象数Mよりも大きいか否かを判定する。更新対象数Mは、更新対象ECUの数である。本実施形態では、更新対象ECUは、第1制動ECU60と第2制動ECU70との2つである。そのため、更新対象数Mとして2が設定されている。実行装置31は、更新数Nが更新対象数Mよりも大きい場合(S93:YES)、処理をステップS95に移行する。一方、実行装置31は、更新数Nが更新対象数M以下である場合(S93:NO)、処理をステップS85に移行する。
【0054】
ステップS95において、実行装置31は、第1制動ECU60及び第2制動ECU70の双方で記憶装置のソフトウェアを更新した旨を、通信装置20からデータセンタ100に送信させる。その後、実行装置31は本処理ルーチンを終了する。
【0055】
図6を参照し、第1制動ECU60及び第2制動ECU70の双方で実行装置が実行する処理ルーチンについて説明する。
ステップS41Aにおいて、実行装置61,71は、記憶装置62,72のソフトウェアを更新することが情報処理装置30に許可されたか否かを判定する。例えば、
図5に示したステップS81で情報処理装置30から送信された通知を制動ECU60,70が受信した場合は、ソフトウェアの更新が許可されたと見なす。一方、上記通知を制動ECU60,70が受信していない場合は、ソフトウェアの更新が許可されていないと見なす。実行装置61,71は、ソフトウェアの更新が許可されたと判定した場合(S41A:YES)、処理をステップS43Aに移行する。一方、実行装置61,71は、ソフトウェアの更新が許可されていないと判定した場合(S41A:NO)、本処理ルーチンを一旦終了する。
【0056】
ステップS43Aにおいて、実行装置61,71は、自身の制御モードを通常モードから更新モードに移行する。制御モードの移行方法は、
図4に示したステップS43と同様である。そのため、ここでは移行方法の詳細な説明を割愛する。
【0057】
次のステップS45Aにおいて、実行装置61,71は、記憶装置62,72に記憶されていた更新前のソフトウェアを削除する。そしてステップS47Aにおいて、実行装置61,71は、情報処理装置30から受信した更新用ソフトウェアを記憶装置62,72に書き込む。具体的には、第1制動ECU60の実行装置61は、第1更新用ソフトウェアを記憶装置62に書き込む。また、第2制動ECU70の実行装置71は、第2更新用ソフトウェアを記憶装置72に書き込む。すなわち、ステップS45A及びステップS47Aにおいて、実行装置61,71は、記憶装置62,72のソフトウェアを更新用ソフトウェアに書き換える。その後、実行装置61,71は処理をステップS49Aに移行する。
【0058】
ステップS49Aにおいて、実行装置61,71は、記憶装置62,72のソフトウェアの更新が完了した旨の通知をグローバルネットワーク42に送信する。具体的には、第1制動ECU60の実行装置61は、記憶装置62のソフトウェアの更新が完了した旨の通知を、情報処理装置30及び第2制動ECU70に送信する。第2制動ECU70の実行装置71は、記憶装置72のソフトウェアの更新が完了した旨の通知を、情報処理装置30及び第1制動ECU60に送信する。
【0059】
ステップS50Aにおいて、実行装置61,71は、複数の制動ECU60,70のうち、自身ではないほうの制動ECUでソフトウェアの更新が完了した旨の通知を受信したか否かを判定する。具体的には、第1制動ECU60の実行装置61は、第2制動ECU70でソフトウェアの更新が完了した旨の通知を受信したか否かを判定する。第2制動ECU70の実行装置71は、第1制動ECU60でソフトウェアの更新が完了した旨の通知を受信したか否かを判定する。実行装置61,71は、複数の制動ECU60,70のうち、自身ではないほうの制動ECUでソフトウェアの更新が完了した旨の通知を受信した場合(S50A:YES)、処理をステップS51Aに移行する。一方、実行装置61,71は、上記の通知を受信していない場合(S50A:NO)、上記の通知を受信するまでステップS50Aの判定を繰り返し実行する。
【0060】
ステップS51Aにおいて、実行装置61,71は、自身の制御モードを更新モードから通常モードに移行する。制御モードの移行方法は、
図4に示したステップS51と同様である。そのため、ここでは移行方法の詳細な説明を割愛する。その後、実行装置61,71は本処理ルーチンを終了する。
【0061】
<本実施形態の作用及び効果>
(1)制御システム15が備える複数のECUのうち、1つのECUが更新対象ECUである場合を考える。この場合、通信装置20は、更新対象ECU向けの更新用ソフトウェアを、データセンタ100から車外ネットワーク200を介して受信する。すると、情報処理装置30は、通信装置20から更新用ソフトウェアを取得し、当該更新用ソフトウェアを格納装置33に記憶させる。
【0062】
情報処理装置30において、実行装置31は、更新対象ECUの記憶装置のソフトウェアを更新用ソフトウェアに更新した際に更新対象ECUと他のECUとの間で不整合が発生するか否かを判定する。更新対象ECUと他のECUとの間で不整合が発生している状態で制御システム15を動作させると、更新対象ECUと他のECUとの間でデータの送受信を正常に行えなくなるおそれがある。
【0063】
この点、制御システム15は、更新対象ECUの記憶装置のソフトウェアを更新した際には更新対象ECUと他のECUとの間で不整合が発生すると実行装置31が判定した場合には、更新対象ECUの記憶装置のソフトウェアを更新させない。
【0064】
その一方で、制御システム15は、更新対象ECUの記憶装置のソフトウェアを更新しても更新対象ECUと他のECUとの間で不整合が発生しないと判定した場合には、更新対象ECUの記憶装置のソフトウェアの更新を許可する。この場合、情報処理装置30の実行装置31は、更新用ソフトウェアを、グローバルネットワーク42を介して更新対象ECUに送信する。すると、更新対象ECUの実行装置は、記憶装置のソフトウェアを更新用ソフトウェアに書き換える。この場合、更新対象ECUでソフトウェアを更新した後でも更新対象ECUと他のECUとの間でデータの送受信が正常に行われる。そのため、制御システム15は、車両10を適切に制御できる。
【0065】
したがって、制御システム15は、更新対象ECUの記憶装置のソフトウェアを更新したことにより、更新対象ECUと他のECUとの間でデータの送受信を正常に行えなくなることを抑制できる。
【0066】
(2)次に、制御システム15が備える複数のECUのうち、2つのECUが更新対象ECUである場合を考える。ここでは、2つの更新対象ECUのうちの1つを第1ECUとし、残りを第2ECUとして説明する。
【0067】
この場合、通信装置20は、第1ECU向けの更新用ソフトウェア及び第2ECU向けの更新用ソフトウェアを、データセンタ100から車外ネットワーク200を介して受信する。すると、情報処理装置30は、通信装置20から2つの更新用ソフトウェアを取得し、当該2つの更新用ソフトウェアを格納装置33に記憶させる。
【0068】
情報処理装置30において、実行装置31は、第1ECUの記憶装置のソフトウェアを更新し、且つ第2ECUの記憶装置のソフトウェアを更新した際に第1ECUと第2ECUとの間で不整合が発生するか否かを判定する。第1ECUと第2ECUとの間で不整合が発生している状態で制御システム15を動作させると、第1ECUと第2ECUとの間でデータの送受信を正常に行えなくなってしまう。この場合、第1ECUと第2ECUとでの協調制御が正常に行えなくなるおそれがある。
【0069】
この点、制御システム15は、第1ECUと第2ECUとの双方でソフトウェアを更新した際には第1ECUと第2ECUとの間で不整合が発生すると実行装置31が判定した場合には、第1ECU及び第2ECUの双方でソフトウェアを更新させない。
【0070】
その一方で、制御システム15は、第1ECUと第2ECUとの双方でソフトウェアを更新しても第1ECUと第2ECUとの間で不整合が発生しないと判定した場合には、第1ECU及び第2ECUの何れにおいてもソフトウェアの更新を許可する。この場合、情報処理装置30の実行装置31は、第1ECU向けの更新用ソフトウェアを、グローバルネットワーク42を介して第1ECUに送信する。すると、第1ECUの実行装置は、記憶装置のソフトウェアを更新用ソフトウェアに書き換える。また、情報処理装置30の実行装置31は、第2ECU向けの更新用ソフトウェアを、グローバルネットワーク42を介して第2ECUに送信する。すると、第2ECUの実行装置は、記憶装置のソフトウェアを更新用ソフトウェアに書き換える。この場合、第1ECU及び第2ECUの双方でソフトウェアを更新した後でも第1ECUと第2ECUとの間でデータの送受信が正常に行われる。そのため、制御システム15において、第1ECUと第2ECUとでの協調制御を正常に行うことができる。
【0071】
なお、第1ECU及び第2ECUの双方において、ソフトウェアが更新されると、実行装置が再起動される。本実施形態では、第1ECU及び第2ECUの双方でソフトウェアが更新されてから、第1ECU及び第2ECUの双方で実行装置が再起動される。
【0072】
(変更例)
上記実施形態は、以下のように変更して実施することができる。上記実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0073】
・車両10が停止しており、且つ乗員が車両10に搭乗していない状況下で第1ECU及び第2ECUの双方のソフトウェアを更新する場合、第1ECU及び第2ECUでの実行装置の再起動を同時期に行わなくてもよい。例えば、第1ECUでソフトウェアの更新が完了した場合には、第2ECUでのソフトウェアの更新が完了していなくても、第1ECUの実行装置を再起動させてもよい。同様に、第2ECUでソフトウェアの更新が完了した場合には、第1ECUでのソフトウェアの更新が完了していなくても、第2ECUの実行装置を再起動させてもよい。
【0074】
・上記実施形態では、更新対象ECUが、車両10で発生する制動力を調整する制動ECUである場合について説明したが、これに限らない。グローバルネットワーク42を介して情報処理装置30と通信できるECUであれば、制動ECU以外のECUを更新対象ECUとしてもよい。例えば、エンジンや走行用モータなどの車両10の動力源を制御する駆動ECUを、更新対象ECUとしてもよいし、車輪の舵角を調整するアクチュエータを制御するECUを更新対象ECUとしてもよい。また、ADASECUを更新対象ECUとしてもよい。「ADAS」とは「先進運転支援システム」である。
【0075】
・第1判定処理では、第1ECU向けの更新用ソフトウェアのバージョンと、他のECUの記憶装置に記憶されているソフトウェアのバージョンとを比較することによって、第1ECUと他のECUとの間で不整合が発生するか否かを判定してもよい。例えば、他のECUの記憶装置に記憶されているソフトウェアのバージョンが、第1ECU向けの更新用ソフトウェアのバージョンに対応するバージョンではない場合は、不整合が発生すると判定するとよい。一方、他のECUの記憶装置に記憶されているソフトウェアのバージョンが、第1ECU向けの更新用ソフトウェアのバージョンに対応するバージョンである場合は、不整合が発生しないと判定するとよい。
【0076】
・第2判定処理では、第1ECU向けの更新用ソフトウェアのバージョンと、第2ECU向けの更新用ソフトウェアのバージョンとを比較することによって、第1ECUと第2ECUとの間で不整合が発生するか否かを判定してもよい。例えば、第1ECU向けの更新用ソフトウェアのバージョンが、第2ECU向けの更新用ソフトウェアのバージョンに対応するバージョンではない場合は、不整合が発生すると判定するとよい。一方、第1ECU向けの更新用ソフトウェアのバージョンが、第2ECU向けの更新用ソフトウェアのバージョンに対応するバージョンである場合は、不整合が発生しないと判定するとよい。
【0077】
・制御システムを構成する情報処理装置30及びECUは、CPUとROMとを備えて、ソフトウェア処理を実行するものに限らない。すなわち、情報処理装置30及びECUは、以下(a)~(c)の何れかの構成であればよい。
【0078】
(a)コンピュータプログラムに従って各種処理を実行する一つ以上のプロセッサを備えていること。プロセッサは、CPU並びに、RAM及びROMなどのメモリを含んでいる。メモリは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。メモリ、すなわちコンピュータ可読媒体は、汎用又は専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含んでいる。
【0079】
(b)各種処理を実行する一つ以上の専用のハードウェア回路を備えていること。専用のハードウェア回路としては、例えば、特定用途向け集積回路、すなわちASIC又はFPGAを挙げることができる。なお、ASICは、「Application Specific Integrated Circuit」の略記であり、FPGAは、「Field Programmable Gate Array」の略記である。
【0080】
(c)各種処理の一部をコンピュータプログラムに従って実行するプロセッサと、各種処理のうちの残りの処理を実行する専用のハードウェア回路とを備えていること。
<他の技術的思想>
上記複数の実施形態及び変更例から把握できる技術的思想を付記として記載する。
【0081】
(付記1)前記情報処理装置は、前記第1電子制御装置向けの更新用ソフトウェアのバージョンと、前記他の電子制御装置の前記記憶装置のソフトウェアのバージョンとの関係を基に、前記第1電子制御装置と前記他の電子制御装置との間で不整合が発生するか否かを判定してもよい。
【0082】
(付記2)前記情報処理装置は、
前記第1電子制御装置の前記記憶装置のソフトウェアを前記第1更新用ソフトウェアに更新した際に当該第1電子制御装置から前記車内ネットワークに送信されるデータの大きさが、前記第2電子制御装置の前記記憶装置のソフトウェアを前記第2更新用ソフトウェアに更新した際に当該第2電子制御装置から前記車内ネットワークに送信されるデータの大きさと一致しない場合には、前記第1電子制御装置と前記第2電子制御装置との間で不整合が発生すると判定することが好ましい。
【0083】
(付記3)前記情報処理装置は、前記第1更新用ソフトウェアのバージョンと、前記第2更新用ソフトウェアのバージョンとの関係を基に、前記第1電子制御装置と前記第2電子制御装置との間で不整合が発生するか否かを判定してもよい。
【符号の説明】
【0084】
10…車両
15…制御システム
30…情報処理装置
42…グローバルネットワーク(車内ネットワークの一例)
50,60,70…ECU(電子制御装置)
61,71…実行装置
62,72…記憶装置