(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-14
(45)【発行日】2025-04-22
(54)【発明の名称】車両の制御システム
(51)【国際特許分類】
G06F 8/65 20180101AFI20250415BHJP
B60R 16/02 20060101ALI20250415BHJP
【FI】
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2021051733
(22)【出願日】2021-03-25
【審査請求日】2024-02-08
(73)【特許権者】
【識別番号】301065892
【氏名又は名称】株式会社アドヴィックス
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】川嵜 剛
【審査官】西間木 祐紀
(56)【参考文献】
【文献】特開2018-120422(JP,A)
【文献】特開2019-185212(JP,A)
【文献】特開2005-202503(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両を制御する車両の制御システムであって、
第1機能を実行させる第1プログラムを記憶する第1記憶部と、前記第1機能のすべてを代替する代替機能、および第2機能を実行させる第2プログラムを記憶する第2記憶部と、を備え、
前記第1機能を実行できる場合には、前記第1機能および前記第2機能によって前記車両を制御する一方で、前記第1機能を実行できない場合には、前記代替機能および前記第2機能によって前記車両を制御するようになっており、
前記第1記憶部に記憶されている前記第1プログラムを書き換えて更新することができ、
前記車両の運転中に前記第1プログラムを書き換える場合には、前記代替機能および前記第2機能によって前記車両の制御を維持した状態で前記第1プログラムを書き換える
ものであり、
前記車両には、該車両の運転者による操作に基づいて当該車両を走行させる手動運転モードと、前記車両を自動走行させる自動運転モードと、が用意されており、
前記自動運転モードで前記車両が制御されている場合には、前記第1プログラムの書換えを禁止する
車両の制御システム。
【請求項2】
前記第1記憶部における前記第1プログラムの書換え中には、前記手動運転モードから前記自動運転モードに切り替えることを禁止する
請求項
1に記載の車両の制御システム。
【請求項3】
前記自動運転モードでの前記車両の制御中に前記第1記憶部における前記第1プログラムの書換えが要求された場合には、前記自動運転モードから前記手動運転モードに切り替え、その上で、前記第1プログラムを書き換える
請求項
1または請求項
2に記載の車両の制御システム。
【請求項4】
前記第1記憶部における前記第1プログラムの書換え中には、前記第2記憶部における前記第2プログラムの書換えを禁止する
請求項1~
3のいずれか一項に記載の車両の制御システム。
【請求項5】
前記第1機能および前記第2機能は、前記車両の制動に関する機能である
請求項1~
4のいずれか一項に記載の車両の制御システム。
【請求項6】
前記車両の通知装置を制御することができ、
前記第1機能または前記第2機能を実行できない場合には、前記通知装置を制御して異常を通知できるようになっており、
前記第1記憶部における前記第1プログラムの書換え中には、前記異常の通知を禁止する
請求項1~
5のいずれか一項に記載の車両の制御システム。
【請求項7】
前記車両の通知装置を制御することができ、
前記第1記憶部における前記第1プログラムの書換え中には、前記通知装置を制御して前記第1プログラムを書換え中であることを通知する
請求項1~
6のいずれか一項に記載の車両の制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両の制御システムに関する。
【背景技術】
【0002】
特許文献1には、車両を制御するプログラムを車両の運転中に書き換えて更新することのできる制御装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
プログラムの書換え中には、当該プログラムがCPUに実行されることによって実現できる機能が停止される。特許文献1に開示されているように車両の運転中にプログラムが書き換えられることのある制御装置では、プログラムの書換えに伴って機能を停止させる場合にも車両の制御を維持することが求められる。このため、制御装置では、書換えの対象になるプログラムと同一のプログラムを備える代替用の記憶部を搭載することがある。こうした制御装置では、記憶部におけるプログラムの書換えによって機能が停止されている場合には、代替用の記憶部のプログラムをCPUが実行することによって車両の制御が維持される。
【0005】
複数の記憶部がそれぞれ異なるプログラムを備えている場合には、いずれのプログラムが書き換えられる際でも制御を維持しようとすると、制御装置には各記憶部に対応する代替用の記憶部を設けることになる。このような場合には、制御装置が搭載する記憶部の分だけ代替用の記憶部が必要になるという問題があった。
【課題を解決するための手段】
【0006】
上記課題を解決するための車両の制御システムは、車両を制御する車両の制御システムであって、第1機能を実行させる第1プログラムを記憶する第1記憶部と、前記第1機能のすべてを代替する代替機能、および第2機能を実行させる第2プログラムを記憶する第2記憶部と、を備え、前記第1機能を実行できる場合には、前記第1機能および前記第2機能によって前記車両を制御する一方で、前記第1機能を実行できない場合には、前記代替機能および前記第2機能によって前記車両を制御するようになっており、前記第1記憶部に記憶されている前記第1プログラムを書き換えて更新することができ、前記車両の運転中に前記第1プログラムを書き換える場合には、前記代替機能および前記第2機能によって前記車両の制御を維持した状態で前記第1プログラムを書き換えることをその要旨とする。
【0007】
上記構成では、第1プログラムが実行されることによって実現される第1機能と、第2プログラムが実行されることによって実現される第2機能と、による車両の制御が行われる。また、第1プログラムの書換え中でも、代替機能および第2機能によって車両の制御を維持することができる。
【0008】
さらに、上記構成では、代替機能は、第2プログラムの実行によって実現される。第2プログラムは、第1機能とともに車両を制御するための第2機能を実現するプログラムである。すなわち、制御システムでは、第1プログラムの書換えに伴って停止される第1機能を代替するためだけのプログラムを記憶した記憶部を別途設けることなく、第1プログラムの書換え中に車両の制御を維持することができる。
【図面の簡単な説明】
【0009】
【
図1】車両の制御システムの一実施形態を示すブロック図。
【
図2】同制御システムにおける記憶部の記憶領域を示す模式図。
【
図3】同制御システムにおける記憶部の記憶領域を示す模式図。
【
図4】同制御システムがプログラムを書き換える際に実行する処理の流れを示すフローチャート。
【発明を実施するための形態】
【0010】
以下、車両の制御システムの一実施形態について、
図1~
図4を参照して説明する。
図1は、車両80と、制御システム10と、サーバ91と、を示す。制御システム10は、車両80に搭載されている車両の制御システムである。制御システム10とサーバ91との間では、ネットワーク92を介した無線通信によって情報の送受信が可能である。サーバ91は、制御システム10の機能を更新するためのプログラムを制御システム10に供給することができる。制御システム10は、サーバ91から受信したプログラムを用いて、自身のプログラムを書き換えて更新することができる。すなわち、制御システム10は、OTA(Over The Air)によるプログラムの更新に対応している。以下では、サーバ91から受信する新しいプログラムのことを更新プログラムという。なお、更新プログラムは、新しいプログラムそのものでもよいし、古いプログラムと新しいプログラムとの差分でもよい。
【0011】
〈車両〉
図1に示すように、車両80は、通信装置81を備えている。通信装置81は、制御システム10に接続されている。通信装置81は、ネットワーク92に接続することができる。通信装置81を介して制御システム10とサーバ91との間で情報を送受信することができる。
【0012】
車両80は、通知装置82を備えていてもよい。通知装置82は、車両80の運転者に対する通知を行うことができる。通知装置82は、たとえば、文字および図等を表示可能なディスプレイ装置である。通知装置82は、点灯または消灯が可能な表示灯でもよい。通知装置82は、音を出力可能なスピーカ装置でもよい。
【0013】
車両80は、制動装置70を備えている。制動装置70の一例は、液圧式の摩擦制動装置である。制動装置70は、車両80の各車輪に対応して設けられている制動機構を備えている。制動機構は、ホイールシリンダを備えている。制動機構は、ホイールシリンダ内の液圧であるWC圧に応じた摩擦制動力を車輪に付与することができる。
【0014】
制動装置70は、液圧発生装置71および制動アクチュエータ72を備えていてもよい。車両80は、運転者による操作が可能な制動操作部材83を備えている。液圧発生装置71は、制動操作部材83の操作に応じた液圧を発生させることができる。制動アクチュエータ72は、各制動機構におけるWC圧を個別に調整することができる。
【0015】
車両80は、各種センサを備えている。各種センサからの検出信号は、たとえば、制御システム10に入力される。
図1には、各種センサの一例として、制動操作部材83の操作量を検出することのできるブレーキセンサ84を図示している。
【0016】
車両80は、駆動装置および操舵装置を備えている。駆動装置は、車両80が備える車輪のうち駆動輪に駆動力を出力する動力源である。駆動装置の一例は、内燃機関である。駆動装置としては、モータジェネレータを採用することもできる。操舵装置は、車輪のうち操舵輪の角度を変えることができる。
【0017】
車両80には、手動運転モードおよび自動運転モードが用意されている。手動運転モードは、車両80の運転者による操作に基づいて車両80を走行させる運転モードである。自動運転モードは、車両80を自動走行させる運転モードである。
【0018】
〈制御システムの構成〉
図1に示すように、制御システム10は、複数の制御部を備えている。制御システム10では、各制御部が互いに通信可能に接続されている。制御システム10は、第1制御部11を備えている。制御システム10は、第2制御部21を備えている。制御システム10は、第3制御部31を備えていてもよい。第1制御部11、第2制御部21および第3制御部31は、制動装置70を制御する制動制御部を構成している。
図2に示すように、第1制御部11は、上流制御システム10Uを構成している。第2制御部21は、下流制御システム10Dを構成している。ここで、下流制御システム10Dは、上流制御システム10Uよりも高機能である。下流制御システム10Dは、上流制御システム10Uの機能を代替可能である。一方、上流制御システム10Uは、下流制御システム10Dの機能の一部しか代替できない。
【0019】
各制御部の構成について説明する。
図1に示すように、第1制御部11は、第1演算部12および第1記憶部13を備えている。第2制御部21は、第2演算部22、第2α記憶部23および第2β記憶部24を備えている。第3制御部31は、第3演算部32および第3記憶部33を備えている。
【0020】
各記憶部13、23、24、33は、DRAMおよびSRAM等の揮発性メモリを備えている。各記憶部13、23、24、33は、フラッシュメモリおよびEEPROM等の書換えが可能な不揮発性メモリを備えている。不揮発性メモリには、車両80を制御する機能を実現させるプログラムが記憶されている。
【0021】
各演算部12、22、32は、メモリに格納されたプログラムを実行することができる。たとえば、第1演算部12は、第1記憶部13の不揮発性メモリに記憶されているプログラムを読み出して実行することができる。第2演算部22は、第2α記憶部23および第2β記憶部24の不揮発性メモリに記憶されているプログラムを読み出して実行することができる。第3演算部32は、第3記憶部33の不揮発性メモリに記憶されているプログラムを読み出して実行することができる。第1演算部12、第2演算部22および第3演算部32の一例は、CPUである。第1演算部12、第2演算部22および第3演算部32としては、GPU等を採用することもできる。各演算部12、22、32は、複数のプロセッサコアによって構成されていてもよい。各演算部12、22、32は、一つのプロセッサコアによって構成されていてもよい。
【0022】
制御システム10は、統合制御部40を備えていてもよい。統合制御部40は、第1制御部11および第2制御部21を制御して車両80を制御させるプログラムを実行することができる。統合制御部40は、第1制御部11および第2制御部21のそれぞれに記憶されているプログラムを書き換えて更新するプログラムを実行することができる。統合制御部40は、第3制御部31を制御して車両80を制御させるプログラムを実行することもできる。統合制御部40は、第3制御部31に記憶されているプログラムを書き換えて更新するプログラムを実行することもできる。統合制御部40の機能は、複数の制御部のうち少なくとも一つの制御部が備えていてもよい。この場合には、統合制御部40を省略することもできる。たとえば、統合制御部40は、ROMおよびRAMを備えている。たとえば、統合制御部40は、ROMに記憶されているプログラムを実行することができるCPUを備えている。
【0023】
制御システム10は、その他の制御部を備えていてもよい。その他の制御部としては、駆動装置を制御する駆動制御部、操舵装置を制御する操舵制御部、および、自動運転モードを実行する自動運転制御部等を挙げることができる。駆動制御部、操舵制御部および自動運転制御部は、制御システム10とは別の制御システムに設けられていてもよい。自動運転制御部は、自動運転モードでは、各制御部を制御して車両80を自動走行させることができる。
【0024】
〈制御プログラム〉
図2を用いて、各記憶部13、23、24に記憶されているプログラムについて説明する。
図2では、記憶部における不揮発性メモリの記憶領域を模式的に示している。第1記憶部13には、第1プログラムPG1が記憶されている。第2α記憶部23には、第2プログラムPG2が記憶されている。第2β記憶部24には、第2α記憶部23に記憶されているプログラムと同様の第2プログラムPG2が記憶されている。あるいは、第2α記憶部23に記憶されている第2プログラムPG2、および、第2β記憶部24に記憶されている第2プログラムPG2のうち一方のプログラムが最新バージョンであり、他方のプログラムが一つ前のバージョンであってもよい。
【0025】
第1記憶部13に記憶されている第1プログラムPG1が実行されると、第1機能Aが実現される。第1機能Aは、制動操作部材83の操作に応じて液圧発生装置71を作動させる機能である。すなわち、第1機能Aは、車両80の制動に関する機能である。
【0026】
第2α記憶部23に記憶されている第2プログラムPG2が実行されると、代替機能A´および第2機能Bが実現される。代替機能A´は、第1機能Aに替わって液圧発生装置71を作動させることができる機能である。代替機能A´の一例は、第1機能Aと同一の機能である。代替機能A´は、第1機能Aのすべてを代替できるのであれば、必ずしも第1機能Aと同一でなくてもよい。第2機能Bは、制動アクチュエータ72を作動させる機能である。第2機能Bは、自動運転モードが実行されている場合に、制動アクチュエータ72を作動させて車両80を自動で制動させる機能を含んでいる。すなわち、代替機能A´および第2機能Bは、車両80の制動に関する機能である。第2機能Bは、第1機能Aまたは代替機能A´と比較して多くの機能を含んでいる。また、第2β記憶部24に記憶されている第2プログラムPG2の実行によっても、代替機能A´および第2機能Bを実現できる。
【0027】
第2プログラムPG2は、第1プログラムPG1と比較して規模の大きいプログラムである。第2プログラムPG2は、第1プログラムPG1と比較して記憶部の記憶領域を多く占有する。
【0028】
制御システム10では、第2α記憶部23が「前記第1機能のすべてを代替する代替機能、および第2機能を実行させる第2プログラムを記憶する第2記憶部」に対応する。第2β記憶部24も「前記第1機能のすべてを代替する代替機能、および第2機能を実行させる第2プログラムを記憶する第2記憶部」の一つである。
【0029】
〈制動装置の制御〉
図2を用いて、制御システム10による制動装置70の制御について説明する。制御システム10は、冗長構成によって制動装置70を制御することができる。制御システム10は、上流制御システム10Uによって実行される第1機能Aと、下流制御システム10Dによって実行される第2機能Bと、によって制動装置70を制御することができる。
【0030】
図2に示す例では、上流制御システム10Uを構成する第1制御部11において第1プログラムPG1が実行中である。これによって、第1機能Aが実行されている。さらに、下流制御システム10Dを構成する第2制御部21において第2プログラムPG2が実行中である。これによって、第2機能Bが実行されている。
【0031】
ここで、仮に上流制御システム10Uに異常が発生して第1機能Aを実行できない場合について説明する。制御システム10では、上流制御システム10Uに異常が発生した場合には、下流制御システム10Dにおける第2制御部21が代替機能A´を実行することによって第1機能Aを代替することができる。
【0032】
このように制御システム10は、第1機能Aを実行できる場合には、第1機能Aおよび第2機能Bによって車両80の制動装置70を制御する。一方で、制御システム10は、第1機能Aを実行できない場合には、代替機能A´および第2機能Bによって車両80の制動装置70を制御する。第1機能Aを実行できない場合に代替機能A´および第2機能Bによって制動装置70の制御を維持することを、下流制御システム10Dによる代替制御という。
【0033】
なお、
図2には、第2α記憶部23に記憶されている第2プログラムPG2が読み出されて実行されている例を示している。一方で、第2β記憶部24に記憶されている第2プログラムPG2は読み出されておらず、第2β記憶部24は待機中である。すなわち、第2制御部21では、第2β記憶部24に記憶されている第2プログラムPG2が実行されていない。
図2に示す例に対して、制御システム10では、第2β記憶部24に記憶されている第2プログラムPG2を実行して、第2α記憶部23を待機させることもできる。たとえば、第2β記憶部24に記憶されている第2プログラムPG2が最新バージョンのプログラムである場合には、当該第2プログラムPG2を実行してもよい。
【0034】
仮に下流制御システム10Dに異常が発生した場合について説明する。制御システム10では、下流制御システム10Dを構成する制御部のうち第2プログラムPG2を実行中である制御部に異常が発生した場合には、上流制御システム10Uによって実行される第1機能Aを必要に応じて用いることができる。これによって、車両80の安全性を確保することができる。
【0035】
〈通知処理〉
制御システム10は、
図1に示す通知装置82を制御する機能を備えていてもよい。通知装置82を制御することによって車両80の運転者等に通知をすることを通知処理という。たとえば、通知処理を行うためのプログラムは、統合制御部40が実行することができる。通知処理を行うためのプログラムは、第1制御部11、第2制御部21または第3制御部31が実行してもよい。
【0036】
通知処理の一例は、制御部に異常が生じていることを通知する異常通知処理である。たとえば、第1機能Aを実行できない場合には、上流制御システム10Uを構成する第1制御部11に異常が発生していることを通知できる。たとえば、第2機能Bを実行できない場合には、下流制御システム10Dを構成する第2制御部21に異常が発生していることを通知できる。また、たとえば、異常が発生している制御部がいずれの制御部であるかを特定できる情報を含まない異常通知を行うこともできる。
【0037】
異常通知処理では、たとえば、異常を示す表示灯が点灯されることによって異常が通知される。また、たとえば、異常を示す情報がディスプレイ装置に表示されることによって異常が通知される。また、たとえば、異常を示す通知音がスピーカ装置から出力されることによって異常が通知される。
【0038】
通知処理の一例は、制御部のプログラムを書換え中であることを通知する更新通知処理である。たとえば、第1プログラムPG1または第2プログラムPG2を書換え中であることを通知することができる。また、たとえば、書換え中であるプログラムを特定できる情報を含まない更新通知を行うこともできる。
【0039】
更新通知処理では、たとえば、プログラムを書換え中であることを示す表示灯が点灯されることによって更新が通知される。また、たとえば、プログラムを書換え中であることを示す情報がディスプレイ装置に表示されることによって更新が通知される。また、たとえば、プログラムを書換え中であることを示す通知音がスピーカ装置から出力されることによって更新が通知される。
【0040】
その他の通知処理としては、更新プログラムをサーバ91から受信したことを通知する処理を行ってもよい。また、プログラムの更新が完了したことを通知する処理を行うこともできる。また、プログラムの書換え中に通知する処理として、書換えに伴って停止する機能を通知する処理を行うこともできる。
【0041】
〈プログラムの更新〉
図3および
図4を用いて、制御プログラムを書き換えて更新する際の処理について説明する。ここでは、車両80の運転中に、第1記憶部13に記憶されている第1プログラムPG1を書き換える例を説明する。プログラムを書き換える際には、当該プログラムの実行によって実現される機能は停止される。すなわち、第1プログラムPG1を書き換える場合には、第1機能Aが停止される。
【0042】
制御システム10では、上流制御システム10Uにおける第1プログラムPG1を書き換える際には、
図3に示すように、下流制御システム10Dを構成する一つの制御部によって代替機能A´および第2機能Bを行う。
図3に示す例では、第2制御部21によって第2α記憶部23に記憶されている第2プログラムPG2が実行中である。すなわち、第2α記憶部23に記憶されている第2プログラムPG2の実行によって、代替機能A´および第2機能Bが行われている。
【0043】
このように制御システム10は、車両80の運転中に第1プログラムPG1を書き換える場合には、代替機能A´および第2機能Bによって車両80の制御を維持した状態で第1プログラムPG1を書き換えることができる。
【0044】
また、制御システム10では、下流制御システム10Dにおける第2プログラムPG2を書き換える際には、第2α記憶部23および第2β記憶部24のうち第2演算部22によってプログラムが読み出されていない方の記憶部を書換えの対象とする。具体的な例を挙げると、第2α記憶部23に最新バージョンの第2プログラムPG2が記憶されており、第2演算部22が当該第2プログラムPG2を読み出して実行中である場合には、第2β記憶部24が書換えの対象となる。すなわち、第2α記憶部23における第2プログラムPG2が実行中の場合には、待機中である第2β記憶部24が書換えの対象となる。このように、制御システム10では、第2プログラムPG2を記憶する二つの記憶部を第2制御部21が有することによって、車両80の制御を維持した状態で第2プログラムPG2を書き換えることができる。
【0045】
図4は、制御プログラムを書き換えて更新する際の処理の流れを示す。本処理ルーチンは、所定の周期毎に繰り返し実行される。
図4に示す処理を実行するためのプログラムである書換えプログラムは、たとえば、統合制御部40のROMに記憶されている。
図4に示す処理は、統合制御部40のCPUがROMに記憶された書換えプログラムを実行することによって実現できる。
【0046】
本処理ルーチンが開始されると、まずステップS101では、制御システム10は、サーバ91から更新プログラムを受信しているか否かを判定する。更新プログラムを受信していない場合には(S101:NO)、制御システム10は、本処理ルーチンを一旦終了する。一方で、更新プログラムを受信している場合には(S101:YES)、制御システム10は、処理をステップS102に移行する。
【0047】
ステップS102では、制御システム10は、上流制御システム10Uのプログラムが書換対象であるか否かを判定する。サーバ91から受信した更新プログラムが新しい第1プログラムPG1である場合には、上流制御システム10Uのプログラムが書換対象である。一方で、更新プログラムが新しい第2プログラムPG2である場合には、上流制御システム10Uのプログラムが書換対象ではなく、下流制御システム10Dのプログラムが書換対象である。上流制御システム10Uのプログラムが書換対象である場合には(S102:YES)、制御システム10は、処理をステップS103に移行する。
【0048】
ステップS103では、制御システム10は、車両80の運転モードが手動運転モードであるか否かを判定する。運転モードが手動運転モードではない場合、すなわち自動運転モードである場合には(S103:NO)、制御システム10は、本処理ルーチンを一旦終了する。
【0049】
一方で、運転モードが手動運転モードである場合、すなわち自動運転モードではない場合には(S103:YES)、制御システム10は、処理をステップS104に移行する。
【0050】
ステップS104では、制御システム10は、下流制御システム10Dにおけるプログラムの書換えを禁止する。この結果として、サーバ91から新しい第2プログラムPG2を受信したとしても、下流制御システム10Dにおけるプログラムの書換えが行われることがなくなる。下流制御システム10Dにおけるプログラムの書換えを禁止すると、制御システム10は、処理をステップS105に移行する。
【0051】
ステップS105では、制御システム10は、制動装置70の制御を下流制御システム10Dによる代替制御に移行する。具体的には、制御システム10は、第1機能Aを停止させる。さらに、制御システム10は、下流制御システム10Dを構成する第2制御部21によって代替機能A´および第2機能Bを実行させる。その後、制御システム10は、処理をステップS106に移行する。
【0052】
ステップS106では、制御システム10は、車両80の運転モードを手動運転モードから自動運転モードに切り替えることを禁止する。すなわち、手動運転モードが継続されるようになる。その後、制御システム10は、処理をステップS107に移行する。
【0053】
ステップS107では、制御システム10は、通知処理を最適化する。たとえば、制御システム10は、異常通知処理を禁止して更新通知処理を行う。制御システム10は、異常通知処理の禁止のみを行ってもよい。その後、制御システム10は、処理をステップS108に移行する。
【0054】
ステップS108では、制御システム10は、上流制御システム10Uにおけるプログラムの書換えを実行する。すなわち、第1制御部11における第1プログラムPG1を書き換える。その後、制御システム10は、本処理ルーチンを終了する。
【0055】
第1プログラムPG1の書換えが完了すると、制御システム10が再起動されるまで第1制御部11は、待機状態とされる。制御システム10が再起動されるまでは、下流制御システム10Dによる代替制御が継続される。制御システム10の再起動後には、第1プログラムPG1の更新が完了して新たな第1プログラムPG1が実行される。これに伴い、制御システム10は、代替制御を終了する。すなわち、第1機能Aおよび第2機能Bによって制動装置70が制御されるようになる。さらに、制御システム10の再起動後には、制御システム10は、下流制御システム10Dにおけるプログラムの書換え禁止を解除する。また、制御システム10は、自動運転モードへの切り替え禁止を解除する。さらに、制御システム10は、異常通知処理の禁止を解除する。また、制御システム10は、更新通知処理を終了する。
【0056】
ステップS102の処理において、下流制御システム10Dのプログラムが書換対象である場合には(S102:NO)、制御システム10は、処理をステップS109に移行する。
【0057】
ステップS109では、制御システム10は、下流制御システム10Dにおけるプログラムの書換えを実行する。すなわち、第2α記憶部23および第2β記憶部24のうち待機中である方の記憶部における第2プログラムPG2を書き換える。その後、制御システム10は、本処理ルーチンを終了する。第2プログラムPG2の書換えが完了すると、書換えの対象である記憶部は、制御システム10が再起動されるまで待機状態とされる。制御システム10の再起動後には、第2プログラムPG2の更新が完了して新たな第2プログラムPG2が実行される。これに伴い、制御システム10は、第2α記憶部23および第2β記憶部24のうち古い第2プログラムPG2を備える方の記憶部を待機させる。
【0058】
〈作用および効果〉
本実施形態の作用および効果について説明する。
制御システム10では、第1プログラムPG1が実行されることによって実現される第1機能Aと、第2プログラムPG2が実行されることによって実現される第2機能Bと、による車両80の制御が行われる。また、第1プログラムPG1の書換え中でも、代替機能A´および第2機能Bによって車両80の制御を維持することができる。
【0059】
さらに、制御システム10では、代替機能A´は、第2プログラムPG2の実行によって実現される。第2プログラムPG2は、第1機能Aとともに車両80の制動装置70を制御するための第2機能Bを実現するプログラムである。すなわち、制御システム10では、第1プログラムPG1の書換えに伴って停止される第1機能Aを代替するためだけのプログラムを記憶した記憶部を別途設けることなく、第1プログラムPG1の書換え中に車両80の制御を維持することができる。
【0060】
車両80のように自動運転モードが用意されているような車両では、車両を制御する機能が多重化されるようになっている。機能の多重化に伴って、プログラムが記憶された記憶部が多く搭載されることがある。制御システム10によれば、すべての記憶部に対してそれぞれの機能を代替するためだけのプログラムを記憶した記憶部を必ずしも設けなくても、プログラムの書換え中に車両80の制御を維持することができる。制御システム10では、すべての記憶部に対してそれぞれの機能を代替するためだけのプログラムを記憶した記憶部を設けるような場合と比較して、記憶部を削減することができる。
【0061】
制御システム10のように上流制御システム10Uおよび下流制御システム10Dによる制御を行う構成では、下流制御システム10Dによる代替制御の実行中は、冗長性が低くなる。ここで、代替制御の実行中における車両80の運転モードが手動運転モードであれば、運転者による操作によって冗長性を確保することができる。一方で、自動運転モードで車両80が制御されている場合には運転者による操作が期待できない。このため、自動運転モードで車両80が制御されている場合に代替制御が実行されると、冗長性が確保できなくなる。
【0062】
この点、制御システム10によれば、自動運転モードで車両80が制御されている場合には、
図4に示す処理ルーチンが終了される(S103:NO)。すなわち、第1プログラムPG1の書換えが禁止される。さらに、制御システム10では、第1記憶部13における第1プログラムPG1の書換え中には、手動運転モードから自動運転モードに切り替えることが禁止される(S106)。すなわち、車両80の運転モードが自動運転モードである場合には、第1プログラムPG1の書換えが行われることがなく、書換えに伴う代替制御が行われることがない。これによって、冗長性の低下を避けることができる。
【0063】
制御システム10では、第1機能Aは、たとえば、制動操作部材83の操作に応じて液圧発生装置71を作動させる機能である。第2機能Bは、たとえば、車両80の走行状態に応じて各車輪に発生させる制動力を個別に調整するように制動アクチュエータ72を作動させる機能である。第1機能Aは、第2機能Bと比較すると複雑ではない。このため、第1機能Aを代替できる代替機能A´を実現することのできる第2プログラムPG2の規模が大きくなることを軽減できる。
【0064】
プログラムの書換え中には、当該プログラムを実行することによって実現される機能が停止される。この場合の停止は、異常の発生によるものではないため、プログラムの書換えに伴って異常が通知されることは好ましくない。そこで、制御システム10では、第1記憶部13における第1プログラムPG1の書換え中には、異常の通知が禁止される(S107)。これによって、誤った異常通知が行われることを抑制できる。
【0065】
制御システム10によれば、第1記憶部13における第1プログラムPG1の書換え中には、通知装置82を制御して第1プログラムPG1を書換え中であることを通知することができる(S107)。
【0066】
制御システム10では、第2α記憶部23および第2β記憶部24を備える第2制御部21によって下流制御システム10Dを構成している。このため、第2α記憶部23および第2β記憶部24のうち一方の記憶部における第2プログラムPG2を書換え中であっても、他方の記憶部に記憶されている第2プログラムPG2を第2演算部22が実行することによって車両80の制御を継続することができる。
【0067】
(変更例)
本実施形態は、以下のように変更して実施することができる。本実施形態および以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0068】
・
図4に示すステップS103の処理において、車両80の運転モードが自動運転モードである場合に(S103:NO)、自動運転モードから手動運転モードへの切り替えを要求して、その後に処理ルーチンを一旦終了するようにしてもよい。この処理による要求によって運転モードが手動運転モードに切り替わると、ステップS103の処理が再び実行される場合にはステップS104以降に処理が進められるようになる。この結果として、上流制御システム10Uの書換えを実行することができるようになる。すなわち、第1プログラムPG1を書き換えることができる。
【0069】
上記処理によれば、自動運転モードでの車両80の制御中に第1記憶部13における第1プログラムPG1の書換えが要求された場合には、自動運転モードから手動運転モードに切り替え、その上で、第1プログラムPG1を書き換えることができる。
【0070】
・制御システム10における各制御部は、自身の状態を示す信号を他の制御部に対して送信してもよい。状態を示す信号の一例は、制御部におけるプログラムを書換え中であることを示す信号である。状態を示す信号の一例は、制御部がプログラムを実行中であることを示す信号である。状態を示す信号の一例は、制御部が待機中であることを示す信号である。状態を示す信号の一例は、制御部が正常に動作していることを示す信号である。当該信号が送信されていない場合には、制御部に異常が発生していると判断することができる。状態を示す信号の一例として、制御部に異常が発生していることを示す信号を送信してもよい。
【0071】
・制御システム10における各制御部は、統合制御部40によって制御されるのではなく、各制御部が他の制御部に対して送信する信号に基づいて各制御部による判断で制御システムの状態を切り換えてもよい。たとえば、第1制御部11に異常が発生していることが第2制御部21に伝わった場合に、下流制御システム10Dによる代替制御を行うようにしてもよい。
【0072】
・上記実施形態では、下流制御システム10Dにおける第2プログラムPG2の書換え中でも下流制御システム10Dの機能を維持できるように、第2プログラムPG2を記憶する二つの記憶部を備えている第2制御部21を例示した。制御システムとしては、第2制御部21が一つの記憶部を有するものであってもよい。制御システムがこうした構成であっても、上記実施形態と同様に、第1プログラムPG1の書換え中に代替制御によって車両80の制御を維持することができる。ただし、上記構成のように第2制御部21が一つの記憶部しか有していない場合では、第2制御部21の第2プログラムPG2を書き換える際には、下流制御システム10Dの機能が維持できなくなる。すなわち、代替機能A´が実行できなくなる。このため、代替制御が必要な状況では、第2制御部21における第2プログラムPG2の書換えを禁止することが望ましい。たとえば、第1制御部11における第1プログラムPG1の書換えによって上流制御システム10Uの第1機能Aが停止する場合には、第2プログラムPG2の書換えを禁止するとよい。
【0073】
・上記実施形態では、下流制御システム10Dを構成する第2制御部21によって代替機能A´を実行する例を示した。たとえば、代替機能A´を実現できる第2プログラムPG2が第3記憶部33にも記憶されている場合には、第2制御部21および第3制御部31によって下流制御システム10Dを構成することもできる。この構成では、第2制御部21が備える記憶部は一つでもよい。この構成では、次のように下流制御システム10Dにおいて代替機能A´が実行される。たとえば、第1制御部11における第1プログラムPG1の書換えによって上流制御システム10Uの第1機能Aが停止する場合には、第2制御部21および第3制御部31のうちいずれか一方の制御部が第2プログラムPG2を実行することができる。たとえば、下流制御システム10Dを構成する第2制御部21および第3制御部31のうち一方の制御部においてプログラムを書換え中である場合、すなわち一方の制御部で代替機能A´を実行できない場合には、他方の制御部が代替機能A´を実行する。
【0074】
・上記実施形態では、第1制御部11が第1記憶部13を備え、第2制御部21が第2α記憶部23および第2β記憶部24を備えている例を示した。これに限らず、制御システムは、
図5に示す構成でもよい。
【0075】
図5に示す制御システム110は、第1記憶部113、第2記憶部123および第3記憶部133を有する制御部111を備えている。制御部111は、さらに演算部112を備えている。第1記憶部113には、第1プログラムPG1が記憶されている。第2記憶部123および第3記憶部133には、第2プログラムPG2が記憶されている。
【0076】
演算部112は、第1プログラムPG1および第2プログラムPG2を実行することができる。演算部112は、第1機能Aを実行できる場合には、第1機能Aおよび第2機能Bによって車両を制御する一方で、第1機能Aを実行できない場合には、代替機能A´および第2機能Bによって車両を制御することができる。演算部112は、第1記憶部113に記憶されている第1プログラムPG1を書き換えて更新することができる。演算部112は、第2記憶部123および第3記憶部133に記憶されている第2プログラムPG2を書き換えて更新することができる。演算部112は、車両の運転中に第1プログラムPG1を書き換える場合には、代替機能A´および第2機能Bによって車両の制御を維持した状態で第1プログラムPG1を書き換えることができる。
【0077】
制御システム110では、第2記憶部123が「前記第1機能のすべてを代替する代替機能、および第2機能を実行させる第2プログラムを記憶する第2記憶部」に対応する。第3記憶部133も「前記第1機能のすべてを代替する代替機能、および第2機能を実行させる第2プログラムを記憶する第2記憶部」に対応する。
【0078】
こうした制御システム110においても、上記実施形態における制御システム10と同様に、第1プログラムPG1の書換え中に代替制御によって車両80の制御を維持することができる。また、第2記憶部123および第3記憶部133のうち一方の記憶部における第2プログラムPG2を書換え中であっても、他方の記憶部に記憶されている第2プログラムPG2の実行によって車両の制御を継続することができる。
【0079】
・上記実施形態における制御システムの構成は一例である。車両80の運転中にプログラムを書き換えることができる制御システムであれば、構成の変更が可能である。たとえば、記憶部および演算部を備える各制御部は、一つ以上のハードウェア回路によって構成されていてもよい。ハードウェア回路の一例は、FPGA(Field Programmable Gate Array)である。また、各制御部は、各種処理のうち一部の処理をコンピュータプログラムに従って実行するプロセッサと、各種処理のうち残りの処理を実行するハードウェア回路と、を備えていてもよい。
【0080】
・演算部は、プロセッサコアに加えて専用のメモリ等をさらに備えていてもよい。
・上記実施形態では、制御システム10による制動装置70の制御を例示したが、これに限らない。第1機能Aおよび第2機能Bは、車両80を制御する機能であればよく、車両80の制動に関する機能でなくてもよい。
【0081】
・上記実施形態では、車両80の運転中にプログラムを書き換える例を説明した。制御システム10では、車両80のスタートスイッチがオフにされるタイミングでプログラムを書き換えることも可能である。
【符号の説明】
【0082】
10…制御システム
10U…上流制御システム
10D…下流制御システム
11…第1制御部
12…第1演算部
13…第1記憶部
21…第2制御部
22…第2演算部
23…第2α記憶部
24…第2β記憶部
31…第3制御部
32…第3演算部
33…第3記憶部
70…制動装置
71…液圧発生装置
72…制動アクチュエータ
80…車両
82…通知装置
91…サーバ
92…ネットワーク