(57)【特許請求の範囲】
【請求項１】
相互に監視を実施する複数の制御装置が接続されたフェイルセーフシステムにおいて、
いずれかの制御装置である第一の制御装置は、
前記第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、前記第一の制御装置の故障時に前記第一の制御装置のバックアップに用いる代替制御プログラムとを格納し、
前記代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域に前記第一の制御装置からアップロードし、
前記第二の制御装置は、
前記第一の制御装置を監視し、
前記第一の制御装置が故障したと前記第二の制御装置が判断した場合、前記第二の制御装置の記憶部に格納された前記代替制御プログラムを実行し、
前記複数の制御装置のそれぞれは前記第一の制御装置として、故障時の制御に用いる前記代替制御プログラムを、前記第二の制御装置としての他の制御装置の記憶部の空き領域にアップロードすることを特徴としたフェイルセーフシステム。
【請求項２】
相互に監視を実施する３台以上の前記制御装置が接続された請求項１に記載のフェイルセーフシステム。
【請求項３】
前記第一の制御装置は、前記代替制御プログラムのプログラム容量を他の制御装置に伝達し、前記他の制御装置が前記代替制御プログラムを受け入れる能力があるかどうか問い合わせ、
能力が無いと回答された場合は別の制御装置に問い合わせ、
能力があると回答した制御装置を第二の制御装置として当該制御装置の記憶部の空き領域に前記代替制御プログラムをアップロードする請求項１または２に記載のフェイルセーフシステム。
【請求項４】
複数の制御装置が接続されたフェイルセーフシステムにおいて、
いずれかの制御装置である第一の制御装置は、
前記第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、故障時の制御に用いる代替制御プログラムとを格納し、
前記代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域にアップロードし、
前記第二の制御装置は、
前記第一の制御装置を監視し、
前記第一の制御装置が故障した場合、前記第二の制御装置の記憶部に格納された前記代替制御プログラムを実行し、
前記第一の制御装置は、前記代替制御プログラムのプログラム容量に加えて実行の際に使用するＲＡＭ容量、処理負荷の少なくとも一つを他の制御装置に伝達し、前記他の制御装置が前記代替制御プログラムを受け入れる能力があるかどうか問い合わせ、
能力が無いと回答された場合は別の制御装置に問い合わせ、
能力があると回答した制御装置を第二の制御装置として当該制御装置の記憶部の空き領域に前記代替制御プログラムをアップロードすることを特徴としたフェイルセーフシステム。
【請求項５】
複数の制御装置が接続されたフェイルセーフシステムにおいて、
いずれかの制御装置である第一の制御装置は、
前記第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、故障時の制御に用いる代替制御プログラムとを格納し、
前記代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域にアップロードし、
前記第二の制御装置は、
前記第一の制御装置を監視し、
前記第一の制御装置が故障した場合、前記第二の制御装置の記憶部に格納された前記代替制御プログラムを実行し、
前記第一の制御装置は、他の制御装置に前記代替制御プログラムを受け入れる能力があるかどうか問い合わせ、
能力が無いと回答された場合は別の制御装置に問い合わせ、
全ての制御装置から能力が無いと回答された場合は、前記代替制御プログラムを分割し、
分割した代替制御プログラム毎に、前記他の制御装置に前記分割した代替制御プログラムを受け入れる能力があるかどうか問い合わせを繰り返し、能力があると回答した制御装置を第二の制御装置として当該制御装置の記憶部の空き領域に前記分割した代替制御プログラムをアップロードすることを特徴としたフェイルセーフシステム。
【請求項６】
複数の制御装置が接続されたフェイルセーフシステムにおいて、
いずれかの制御装置である第一の制御装置は、
前記第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、故障時の制御に用いる代替制御プログラムとを格納し、
前記代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域にアップロードし、
前記第二の制御装置は、
前記第一の制御装置を監視し、
前記第一の制御装置が故障した場合、前記第二の制御装置の記憶部に格納された前記代替制御プログラムを実行し、
前記第二の制御装置は、制御状態の変化によって当該制御装置の記憶部の空き領域、ＲＡＭの空き領域、計算機の平均負荷または計算機のピーク負荷のうち少なくともひとつが変化し、当該制御装置の記憶部に格納した前記第一の制御装置の前記代替制御プログラムを受け入れる能力がなくなると予測した場合に、前記第一の制御装置に受け入れる能力がなくなると通知し、
前記第一の制御装置は、受け入れる能力がなくなると通知された場合に別の制御装置に前記代替制御プログラムを受け入れる能力があるかどうか問い合わせを繰り返し、能力があると回答した制御装置の記憶部の空き領域に前記代替制御プログラムをアップロードすることを特徴としたフェイルセーフシステム。
【請求項７】
複数の制御装置が接続されたフェイルセーフシステムにおいて、
いずれかの制御装置である第一の制御装置は、
前記第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、故障時の制御に用いる代替制御プログラムとを格納し、
前記代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域にアップロードし、
前記第二の制御装置は、
前記第一の制御装置を監視し、
前記第一の制御装置が故障した場合、前記第二の制御装置の記憶部に格納された前記代替制御プログラムを実行し、
前記第一の制御装置は、
他の制御装置に前記代替制御プログラムを受け入れる能力があるかどうか問い合わせて、能力があると回答され、
前記制御装置が異常検出をした場合、
前記制御装置が特定期間内に特定回数異常検出をした場合、
前記制御装置が異常確定をした場合、
の少なくとも一つの場合に、前記他の制御装置を第二の制御装置として当該制御装置の記憶部の空き領域に前記代替制御プログラムをアップロードすることを特徴としたフェイルセーフシステム。
【請求項８】
前記第一の制御装置としての前記複数の制御装置のそれぞれは、起動時に、容量の大きな前記代替制御プログラムを有する前記制御装置の順に前記代替制御プログラムのアップロードを開始する請求項１から６のいずれか一項に記載のフェイルセーフシステム。
【請求項９】
前記第一の制御装置は、通信線を介して入力装置と出力装置に接続され、前記入力装置から受信した入力情報に基づいて演算処理し出力情報を前記出力装置に送信して外部機器を制御する請求項１から８のいずれか一項に記載のフェイルセーフシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、フェイルセーフシステムに関する。
【背景技術】
【０００２】
車両には、エンジン制御、トランスミッション制御、ブレーキ制御、走行制御等車両を走行させるために必要な制御装置が搭載されている。これら複数の制御装置は互いに通信線を介してデータ交換できるように構成され、車両全体として安定した制御を実現する車両統合制御システムが採用されている。
【０００３】
車載制御機器毎のセンサ、スイッチ等の入力装置を独立させて通信線を介して接続し、車載制御機器毎のアクチュエータ、モータドライバ等の出力装置を独立させて通信線を介して接続し、車載制御機器毎の制御装置と通信線を介して接続することによって、エンジン制御、トランスミッション制御、ブレーキ制御、走行制御等の統合制御を実施する制御システムが提案されている。このような統合制御装置にはフェイルセーフシステムが設けられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２２１０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、各制御装置の動作を監視するマネージャ制御部を設け、車両の走行に必要ないずれかの制御装置が故障した場合、優先度の低い他の制御装置を故障した制御装置の代用として機能させるフェイルセーフシステムが開示されている。マネージャ制御部は、優先度の低い他の制御装置に、故障した制御装置の仕様を簡略化した代替制御プログラムである基本プログラムを、ダウンロードさせて代用の制御装置として機能させている。これにより、車両は最低限の走行性能を確保することができる。
【０００６】
このフェイルセーフシステムでは、車両の走行に必要な制御装置いずれかが故障した場合、故障が発生した制御装置の代用を、どの制御装置に務めさせるかは、マネージャ制御部が優先順位をあらかじめ定めている。また、代用を務める制御装置にダウンロードさせる代替制御プログラムである各基本プログラムは、マネージャ制御部が格納している。しかしながら、特許文献１の技術には、以下のような課題がある。
【０００７】
マネージャ制御部が必要不可欠であり、制御システムのコストアップの要因となる。加えて、マネージャ制御部は各制御装置の代替制御プログラムである各基本プログラムを保管するための記憶容量を有している必要があり、制御システムのコストアップの要因となる。
【０００８】
そこで、本願はマネージャ制御部によらず、制御装置の故障時の代替制御の実施を可能とするフェイルセーフシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願に係るフェイルセーフシステムは、
相互に監視を実施する複数の制御装置が接続されたフェイルセーフシステムにおいて、
いずれかの制御装置である第一の制御装置は、
前記第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、前記第一の制御装置の故障時に前記第一の制御装置のバックアップに用いる代替制御プログラムとを格納し、
前記代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域に前記第一の制御装置からアップロードし、
前記第二の制御装置は、
前記第一の制御装置を監視し、
前記第一の制御装置が故障したと前記第二の制御装置が判断した場合、前記第二の制御装置の記憶部に格納された前記代替制御プログラムを実行し、
前記複数の制御装置のそれぞれは前記第一の制御装置として、故障時の制御に用いる前記代替制御プログラムを、前記第二の制御装置としての他の制御装置の記憶部の空き領域にアップロードすることを特徴としたものである。
【発明の効果】
【００１０】
制御装置が、自身の代替制御プログラムを実行する他の制御装置を決定し、代替制御プログラムをアップロードすることで、他の制御装置による当該制御装置の監視と、当該制御装置の故障時に他の制御装置による代替制御の実施を可能とした。これにより、マネージャ制御部を削減することができ、フェイルセーフシステムのコストを低減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るフェイルセーフシステムの構成を示す図である。
【図２】実施の形態１に係る制御装置のハードウェアの構成を示す図である。
【図３】実施の形態１に係る各制御装置の記憶部の構成を示す図である。
【図４】実施の形態１に係る制御装置の全体の処理を示すフローチャートである。
【図５】実施の形態１に係る制御装置の起動処理を示すフローチャートである。
【図６】実施の形態１に係る制御装置の制御処理を示すフローチャートである。
【図７】実施の形態１に係る制御装置のダウンロード処理を示すフローチャートである。
【図８】実施の形態１に係る制御装置のアップロード処理を示すフローチャートである。
【図９】実施の形態１に係る制御装置のアップロード処理の詳細を示すフローチャートである。
【図１０】実施の形態２に係る制御装置のアップロード処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本願に係る車両用制御装置の実施の形態について、図面を参照して説明する。本実施例は、主には車両システムにおける車両制御システム、および車両制御装置について説明しており、車両システムにおける実施に好適であるが、車両システム以外への適用を妨げるものではない。
【００１３】
１．実施の形態１
図１は、実施の形態１に係るフェイルセーフシステム１００の構成を示すブロック図である。車両に搭載された複数の制御装置１、２、３、４、５、６と、車載機器を夫々動作させる複数のアクチュエータ１２、２２、３２、４２と、制御に用いる状態量を夫々検出する複数のセンサ１１、２１、３１、４１が示されている。複数のセンサ１１、２１、３１、４１、複数のアクチュエータ１２、２２、３２、４２と、複数の制御装置１、２、３、４、５、６は、相互に情報を交換できる通信ライン６０によって接続されている。
【００１４】
＜１−１．制御装置＞
図２は、実施の形態１に係る制御装置１から６のハードウェアの構成を示す図である。実施の形態１では、制御装置１から６は、エンジン制御、トランスミッション制御、走行制御、ナビゲーション制御、計器表示制御、ドアロック制御、ステアリング制御、ブレーキ制御、オーディオ制御、ビデオ制御、衝突予防制御、車間距離制御、ヘッドライト制御、パワーウィンドウ制御、自動走行制御などの車載機器を制御する制御装置である。制御装置１から６の各機能は、制御装置１から６が備えた処理回路により実現される。具体的には、制御装置１から６は、図２に示すように、処理回路として、ＣＰＵ（Central Processing Unit）等の演算処理装置９０（コンピュータ）、演算処理装置９０とデータのやり取りをする記憶装置９１、演算処理装置９０に外部の信号を入力する入力回路９２、及び演算処理装置９０から外部に信号を出力する出力回路９３等を備えている。
【００１５】
演算処理装置９０として、ＡＳＩＣ（Application Specific Integrated Circuit）、ＩＣ（Integrated Circuit）、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）、各種の論理回路、及び各種の信号処理回路等が備えられてもよい。また、演算処理装置９０として、同じ種類のものまたは異なる種類のものが複数備えられ、各処理が分担して実行されてもよい。記憶装置９１として、演算処理装置９０からデータを読み出し及び書き込みが可能に構成されたＲＡＭ（Random Access Memory）、演算処理装置９０からデータを読み出し可能に構成されたＲＯＭ（Read Only Memory）、フラッシュメモリ等が備えられている。入力回路９２は、各種のセンサ及びスイッチが接続され、これらセンサ及びスイッチの出力信号を演算処理装置９０に入力するＡ／Ｄ変換器等を備えている。出力回路９３は、電気負荷が接続され、これら電気負荷に演算処理装置９０からの制御信号を変換して出力する駆動回路等を備えている。
【００１６】
制御装置１から６が備える各機能は、演算処理装置９０が、ＲＯＭ等の記憶装置９１に記憶されたソフトウェア（プログラム）を実行し、記憶装置９１、入力回路９２、及び出力回路９３等の制御装置１から６の他のハードウェアと協働することにより実現される。なお、制御装置３が用いる閾値、判定値等の設定データは、ソフトウェア（プログラム）の一部として、ＲＯＭ等の記憶装置９１に記憶されている。
【００１７】
＜１−２．各制御装置の機能＞
図１の制御装置１、２、３、４、５、６の構成要素の機能について説明する。図１の制御装置１、２、３、４、５、６の内部に記載された１ｂ、２ｂ、３ｂ、４ｂ、５ｂ、６ｂで示された通信部と、通信ライン６０で結ばれたセンサ１１、２１、３１、４１およびアクチュエータ１２、２２、３２、４２は、それぞれソフトウェアのモジュールで構成されるものであってもよいが、ソフトウェアとハードウェアの組み合わせによって構成されるものであってもよい。また、演算処理装置９０と記憶装置９１とは一体としてマイコン１ａ、２ａ、３ａ、４ａ、５ａとして記載されているが、マイコンの内部回路は、図２に準ずる構成となっている。これらは別体のＣＰＵ、ＲＯＭおよびＲＡＭからなる構成であってもよい。入力回路９２と出力回路９３は、通信部１ｂ、２ｂ、３ｂ、４ｂ、５ｂ、６ｂがこれに相当する。しかし、通信ライン６０によって接続される、センサ１１、２１、３１、４１、５１とアクチュエータ１２、２２、３２、４２に備わるインターフェース回路を、図２の入力回路９２と出力回路９３とみなしてもよい。
【００１８】
図１において、車両の走行に最低限必要な制御装置１(例えばエンジンを制御するＥＣＵ)は、処理速度が２５[ＭＩＰＳ]で記憶容量が３２０[ＫＢ]のマイコン１ａを備え、通信部１ｂを介して所定の通信処理を実行できるように構成されている。また車両の走行に最低限必要なセンサ(例えばクランク角センサ等)１１は、内蔵する通信部１１ａを介して通信ライン６０に直接接続され、同様に車両の走行に最低限必要なアクチュエータ(例えばインジェクタ等)１２が、内蔵する通信部１２ａを介して通信ライン６０に直接接続されている。
【００１９】
従って、センサ１１から制御装置１への信号入力、及び制御装置１からアクチュエータ１２への信号出力は、通信ライン６０を介して行われる。
【００２０】
制御装置２(例えば、トランスミッションＥＣＵ)は、処理速度が２５[ＭＩＰＳ]で記憶容量が３２０[ＫＢ]のマイコン2ａを備え、通信部２ｂを介して所定の通信処理を実行できるように構成されている。またセンサ(例えば回転数センサ、車速センサ等)２１は、内蔵する通信部２１ａを介して通信ライン６０に直接接続され、アクチュエータ(例えば、ライン圧ソレノイド等)２２が、内蔵する通信部２２ａを介して通信ライン６０に直接接続されている。従って、センサ２１から制御装置２への信号入力、及び制御装置２からアクチュエータ２２への信号出力は、通信ライン６０を介して行われる。
【００２１】
制御装置３(例えば走行制御ＥＣＵ)は、処理速度が１５[ＭＰＩＳ]で記憶容量が１２８[ＫＢ]のマイコン３ａを備え、通信部３ｂを介して所定の通信処理を実行できるように構成されている。またセンサ(例えばマスタシリンダ圧センサ等)３１は、内蔵する通信部３１ａを介して通信ライン６０に直接接続され、アクチュエータ(例えば、ブレーキアクチュエータ等)３２が、内蔵する通信部３２ａを介して通信ライン６０に直接接続されている。
【００２２】
従って、センサ３１から制御装置３への信号入力、及び制御装置３からアクチュエータ３２への信号出力は、通信ライン６０を介して行われる。
【００２３】
制御装置４(例えばナビＥＣＵ)は、処理速度が２５[ＭＰＩＳ]で記憶容量が４００[ＫＢ]のマイコン４ａを備え、通信部４ｂを介して所定の通信処理を実行できるように構成されている。またセンサ(例えば、位置情報を検出するための各種センサ等)４１は、内蔵する通信部４１ａを介して通信ライン６０に直接接続され、アクチュエータ(例えば、車両の現在位置を表示させる表示装置等)４２が、内蔵する通信部４２ａを介して通信ライン６０に直接接続されている。
【００２４】
制御装置４は、センサ４１から制御装置４への信号入力、及び制御装置４からアクチュエータ４２への信号出力は、通信ライン６０を介して行われ、さらに、位置情報を演算に用いる車速等の情報を、通信ラインを介して取得する。
【００２５】
制御装置５(例えば第一ボデーＥＣＵ)は、処理速度が３[ＭＩＰＳ]で記憶容量が６４[ＫＢ]のマイコン５ａを備え、通信部５ｂを介して所定の通信処理を実行できるように構成されている。制御装置５は、例えば、インストルメントパネル内に収容された速度メータ等の各種計器類を制御するものとして構成され、これら計器類を動作させるための各種アクチュエータが接続されている。
【００２６】
制御装置５は、通信ライン６０を介して送信された車速、水温等を表すデータに基づいて、各アクチュエータを駆動制御する。
【００２７】
制御装置６(例えば第二ボデーＥＣＵ)は、処理速度が１[ＭＩＰＳ]で記憶容量が１６[ＫＢ]のマイコン６ａを備え、通信部６ｂを介して所定の通信処理を実行できるように構成されている。制御装置６は、例えばパワーウィンドウの開閉、ドアの施開錠を制御するものとして構成され、駆動モータの回転数センサ、パワーウィンドウスイッチ、ドアロックスイッチ等のセンサ、スイッチ類が接続されると共に、パワーウィンドウモータ、ドアロックモータ等を動作させるための各種アクチュエータが接続されている。
【００２８】
制御装置６は、通信ライン６０を介して送信された車速を表すデータに基づき、当該車速が一定以上になったことを検出すると、ドアロックモータを駆動することによりドアを自動的に施錠する。
【００２９】
上記制御装置１〜６及び各センサ１１、２１、３１、４１は車両を最適に制御するために、上記内蔵された各通信部及び通信ライン６０を介して、互いのデータを送受信できるように構成されている。
【００３０】
＜１−３．フェイルセーフ＞
次に、本実施例のフェイルセーフシステム１００において実行される処理について説明する。本実施例のフェイルセーフシステム１００は、上述した各制御装置１から６のいずれかの故障が原因して車両の走行が不能になることを防止するものであり、いずれの制御装置が故障しても、故障していない少なくとも１つ以上の他の制御装置により、最低限の処理を代行することにより、少なくとも救援を求められる場所まで車両を走行させることを可能にするものである。
【００３１】
これを実現するために、各制御装置１から６は当該制御装置が故障して格納されていた制御プログラムが実行できなくなった場合においても、実行されるべき制御プログラム(以下、代替制御プログラム)を、夫々格納している。この代替制御プログラムは、いずれかの制御装置が故障した場合、故障していない少なくとも１つ以上の他の制御装置により実行されるプログラムであり、通常の車両制御における補正処理等の細かな処理を実現する部分(ダイアグノーシス含む)が省略されている。このため、当該代替制御プログラムは、そのプログラムが簡略された分、小規模(小容量)に構成されている。具体例として、制御装置１、制御装置２について説明する。
【００３２】
制御装置１(エンジンを制御するエンジンＥＣＵ)の代替制御プログラム１ｇとして、例えば燃料噴射量及び点火時期を固定した基本噴射／点火機能を実現する代替制御プログラム１ｇを格納している。従って、代替制御プログラム１ｇにおいては、通常時に実行する制御プログラム１ｆに見られるような、燃料噴射量及び点火時期を最適に補正する部分は省略されている。代替制御プログラム１ｇの実行により、インジェクタに対して一定噴射量での燃焼噴射処理の実行が指令され、イグナイタに対して一定の点火時期での点火処理の実行が指令される。この結果、代替制御プログラム１ｇの実行により、少なくとも車両の走行に必要な最低限のエンジントルクが確保される。
【００３３】
また制御装置２(トランスミッションＥＣＵ)の代替制御プログラム２ｇとして、例えば変速機の変速段を固定した固定変速機能を実現する代替制御プログラム２ｇを格納している。従って、代替制御プログラム２ｇにおいては、通常時に実行する制御プログラム２ｆに見られるような、細かな変速制御を実行する部分は省略されている。当該変速段は定速のものに固定されており、代替制御プログラム２ｇの実行により、所定の車軸トルクが得られるようになっている。この結果、代替制御プログラム２ｇの実行により、限られた出力ながら車両を走行させることができるようになっている。また、上記制御装置１の代替制御プログラム１ｇが機能している場合に、重ねて制御装置２の代替制御プログラム２ｇが機能する場合であっても、所謂エンジンストップを防止しつつ車両を走行させることができるようになっている。
【００３４】
＜１−４．代替制御プログラム＞
図３は、実施の形態１に係る各制御装置１、２、３、４、５、６の記憶部１ｅ、２ｅ、３ｅ、４ｅ、５ｅ、６ｅの構成を示す図である。制御プログラム１ｆ、２ｆ、３ｆ、４ｆ、５ｆと、代替制御プログラム１ｇ、２ｇ、３ｇ、４ｇ、５ｇ、６ｇ、および、空き領域１ｈ、２ｈ、３ｈ、４ｈ、５ｈ、６ｈが記載されている。代表して制御装置１について説明すると、通信部１ｂ、ＣＰＵ１ｃ、ＲＡＭ１ｄとフラッシュメモリからなる記憶部１ｅを備え、記憶部１ｅの内部には、制御プログラム１ｆと代替制御プログラム１ｇが格納され、空き領域１ｈが確保されている。
【００３５】
（ａ）  フェイルセーフシステム１００は、
複数の制御装置１から６が接続されたフェイルセーフシステム１００であって、
制御装置１から６のいずれかの制御装置である第一の制御装置は、
第一の制御装置の記憶部に、通常の制御に用いる制御プログラムと、故障時の制御に用いる代替制御プログラムとを格納し、
代替制御プログラムを、他のいずれかの制御装置である第二の制御装置の記憶部の空き領域にアップロードし、
第二の制御装置は、
第一の制御装置を監視し、
第一の制御装置が故障した場合、第二の制御装置の記憶部に格納された代替制御プログラムを実行するものである。
【００３６】
例えば、制御装置１が制御装置に２の記憶部２ｅの空き領域２ｈに、代替制御プログラム１ｇをアップロードする場合を考える。その場合、制御装置１がその代替制御プログラム１ｇをアップローした制御装置２に監視され、制御装置１が故障した場合は、制御装置２が、記憶部２ｅの空き領域２ｈに格納した代替制御プログラム１ｇを実行して、制御装置１の代用を務めることとなる。このとき、制御装置１の代用を務める制御装置２は、自らの制御プログラム２ｆを実行しつつ、制御装置１の代替制御プログラム１ｇを自らの記憶部２ｅ上にて追加的に実行することとなる。このように、制御装置１から６が、自身の代替制御プログラム１ｇから６ｇを実行する他の制御装置を決定し、代替制御プログラム１ｇから６ｇをアップロードすることで、自身の監視と自身の故障時の代替制御の実施を可能とした。これにより、マネージャ制御部の削減による制御システムのコストを削減することができる。また、他の制御装置の代替制御プログラムを、受け入れる能力がある制御装置がその記憶装置の空き領域にダウンロードするので、代替プログラムを実行する制御装置が本来の自身の制御を継続して実行することができる。
【００３７】
ここで、代替制御プログラムを他の制御装置にアップロードする制御装置を、最低限走行に必要な制御装置に限定することもできる。例えば、エンジンＥＣＵとトランスミッションＥＣＵについてのみ、代替制御プログラムを、他の制御装置にダウンロードすることとしてもよい。少なくとも救援を求めることのできる場所まで、車両を走行させることができればよいからである。なお、アップロード、ダウンロードは表裏一体の呼称であって、主体が他の記憶領域へデータを書き込む（格納する）ことをアップロード、主体が自身の記憶領域へデータを読み込む（格納する）ことをダウンロードと称する。
【００３８】
＜１−５．全制御装置の代替制御プログラムのアップロード＞
図３には、制御装置１から６の間の代替制御プログラム１ｇから６ｇのアップロードの状況の一例を示している。図３では、制御装置１の代替制御プログラム１ｇは、制御装置２の記憶部２ｅの空き領域２ｈにアップロードされている（矢印５１）。制御装置２の代替制御プログラム２ｇは、制御装置１の記憶部１ｅの空き領域１ｈにアップロードされている（矢印５２）。制御装置３の代替制御プログラム３ｇは、制御装置２の記憶部２ｅの空き領域２ｈにアップロードされている（矢印５３）。制御装置４の代替制御プログラム４ｇは、制御装置３の記憶部３ｅの空き領域３ｈにアップロードされている（矢印５４）。制御装置５の代替制御プログラム５ｇは、制御装置４の記憶部４ｅの空き領域４ｈにアップロードされている（矢印５５）。制御装置６の代替制御プログラム６ｇは、制御装置５の記憶部５ｅの空き領域５ｈにアップロードされている（矢印５６）。代替制御プログラムをアップロードされた制御装置（他の制御装置の代替制御プログラムを自身の記憶部へダウンロードした制御装置）は、アップロード元の制御装置を監視する使命を与えられ、アップロード元の制御装置が故障していると判断した時は、記憶部の空き領域にアップロードされた代替制御プログラムを実行して、アップロード元の故障した制御装置の代替えとして機能することとなる。
【００３９】
（ｂ）  このフェイルセーフシステム１００は、
複数の制御装置１から６それぞれは、故障時の制御に用いる代替制御プログラム１ｇから６ｇを、他の制御装置の記憶部の空き領域にアップロードするものである。
【００４０】
フェイルセーフシステム１００を構成する全ての制御装置１から６が、代替制御プログラム１ｇから６ｇを他の制御装置１から６の記憶部１ｅから６ｅの空き領域１ｈから６ｈに格納させるためには、空き領域１ｈから６ｈの合計容量が、各制御装置１から６の代替制御プログラム１ｇから６ｇの合計容量より大きくなくてはならないので、全体としての空き領域を充分確保する必要がある。
【００４１】
これによって、マネージャ制御部を不要としつつ、すべての制御装置１から６の故障時の対応が完成する。マネージャ制御部を必要としないのでコストを低減できる。また、各代替制御プログラム１ｇから６ｇを格納するために、各制御装置１から６の記憶部１ｅから６ｅの空き領域１ｈから６ｈのみを使用しているので、代替制御プログラム１ｇから６ｇを実行する制御装置１から６が各々の制御プログラム１ｆから６ｆを継続して実行することができる。
【００４２】
＜１−６．アップロード前の問い合わせ＞
上記代替制御プログラム１ｇから６ｇのアップロード先を特定するため、各制御装置１から６は通信ライン６０を用いて、定期的に自身の計算資源を開示し、相互に共有してもよい。計算資源として、最も重要な指標がアップロードしようとする代替制御プログラムの容量と、アップロードしようとする相手の記憶部の空き領域の容量との関係である。各制御装置１から６の計算資源は共有されているので、各制御装置１から６は、自己の代替制御プログラム１ｇから６ｇのアップロードを許可されやすい、空き領域の大きい制御装置の順に、アップロードが可能かどうか問い合わせる。その際、自己の代替制御プログラムの容量を伝達して、受け入れる能力があるかどうかを問い合わせる。
【００４３】
問い合わせを受けた制御装置は、自己の計算資源を確認し、例えばすでに他の制御装置の代替制御プログラムのアップロードの申し入れを受け入れており、記憶部の空き領域が不足している等の理由によって、受け入れる能力が無い場合はその旨回答する。問い合わせた側の制御装置は、次の候補の制御装置に、自己の代替制御プログラムの容量を伝達し、自己の代替制御プログラムを受け入れる能力があるかどうかを問い合わせる。問い合わせた側の制御装置は、能力があると回答した制御装置の記憶部の空き領域に、自己の代替制御プログラムをアップロードする。
【００４４】
（ｃ）  このフェイルセーフシステム１００は、
制御装置１から６が、代替制御プログラム１ｇから６ｇを他の制御装置にアップロードする前に、代替制御プログラムのプログラム容量を他の制御装置に伝達し、他の制御装置が代替制御プログラムを受け入れる能力があるかどうか問い合わせ、
能力が無いと回答された場合は別の制御装置に問い合わせ、
能力があると回答した制御装置の記憶部の空き領域に代替制御プログラムをアップロードするものである。
【００４５】
代替制御プログラム１ｇから６ｇをアップロードする前に、相手の制御装置に、代替制御プログラムの容量を知らせて、アップロードを受け入れる能力があるかどうかを問い合わせることにより、相手の制御装置の実情に合わせてアップロード可能な制御装置を探すことができる。これによって、アップロードの失敗を防ぎ、比較的短い時間で適切にアップロードを進めることができる。
【００４６】
＜１−７．必要な計算資源の提示＞
さらに、上記代替制御プログラム１ｇから６ｇのアップロード先を特定するため、各制御装置１から６は通信ライン６０を用いて、定期的に自身の計算資源を開示し相互に共有しているが、この計算資源を、記憶部の空き領域以外に、各制御装置の平均負荷、ピーク負荷、ＲＡＭメモリの空き領域を含めるものとすることもできる。他の制御装置の計算資源を参照することによって、自身の代替制御プログラムをアップロードする候補の制御装置を絞り込むことができる。そして、代替制御プログラムのアップロード前に、代替制御プログラムのプログラム容量に加えて、代替制御プログラムが必要とする実行負荷、実行速度、実行時に必要なＲＡＭ容量を相手の制御装置に伝達し、相手の制御装置が代替制御プログラムを受け入れる能力があるかどうか問い合わせてもよい。
【００４７】
（ｄ）  このフェイルセーフシステム１００は、
制御装置１から６が、制御装置１から６の代替制御プログラム１ｇから６ｇを他の制御装置にアップロードする前に、代替制御プログラムのプログラム容量に加えて実行の際に使用するＲＡＭ容量、処理負荷の少なくとも一つを他の制御装置に伝達し、他の制御装置が代替制御プログラムを受け入れる能力があるかどうか問い合わせ、
能力が無いと回答された場合は別の制御装置に問い合わせ、
能力があると回答した制御装置の記憶部の空き領域に代替制御プログラムをアップロードするものである。
【００４８】
具体的には、例えば制御装置５は、共有された各制御装置１から４および６の計算資源から、自身が故障した際の代替制御プログラム５ｇを実行する他の制御装置として、制御装置３を候補として選定する。この場合、制御装置５は、制御装置３に対して、代替制御プログラム５ｇのプログラム容量に加えて実行の際に使用するＲＡＭ容量、処理負荷の少なくとも一つを制御装置３に伝達し、代替制御プログラム５ｇを受け入れる能力があるかどうか問い合わせる。
【００４９】
制御装置３は、現在の計算資源状態と、例えば、ナビゲーションシステムに従い、自動走行中である場合に、これからの走行環境から処理負荷増が想定され、これにより制御装置５の代替制御プログラム５ｇの実行が困難であると判断した場合、制御装置３は制御装置５に受け入れる能力が無い旨を、通信ライン６０を介して伝達する。
【００５０】
制御装置５が、制御装置３から受け入れる能力が無い旨回答された場合、制御装置５は、次の候補の制御装置に、代替制御プログラム５ｇのプログラム容量に加えて実行の際に使用するＲＡＭ容量、処理負荷、実行速度の少なくとも一つを伝え、自己の代替制御プログラム５ｇを受け入れる能力があるかどうかを問い合わせる。制御装置５は、能力があると回答した制御装置４の記憶部の空き領域に、自己の代替制御プログラム５ｇをアップロードする。
【００５１】
以上、自己の代替制御プログラムをアップロードする先を探す手順の一例を説明した。このように、代替制御プログラム１ｇから６ｇをアップロードする前に、相手の制御装置に、代替制御プログラムのプログラム容量に加えて実行の際に使用するＲＡＭ容量、処理負荷の少なくとも一つを伝え、アップロードを受け入れる能力があるかどうかを問い合わせることにより、相手の制御装置の実情に合わせて、より精度よく、アップロード可能な制御装置を探すことができる。これによって、アップロードの失敗を防ぎ、比較的短い時間で適切にアップロードを進めることができる。
【００５２】
＜１−８．代替制御プログラムの分割＞
制御装置１から６が代替制御プログラム１ｇから６ｇをアップロードする前に、候補とした制御装置に、順次、代替制御プログラムのアップロードを受け入れる能力があるかどうかを問い合わせた結果、どの制御装置からも能力があるとの回答を得られなかった場合を考える。フェイルセーフシステム１００を構成する全ての制御装置１から６の、記憶部１ｅから６ｅの空き領域１ｈから６ｈの合計容量が、各制御装置１から６の代替制御プログラム１ｇから６ｇの合計容量より大きい場合であっても、各代替制御プログラム１ｇから６ｇが、各制御装置１から６の記憶部１ｅから６ｅの空き領域１ｈから６ｈに格納される組み合わせ、各制御装置１から６のＲＡＭ、ＲＯＭ使用量と処理負荷の動的変化によって、そのような事態が発生する場合がある。その場合に、代替制御プログラムを分割してアップロードを受け入れる能力のある制御装置を探す。
【００５３】
（ｅ）  このフェイルセーフシステム１００は、
制御装置１から６が、制御装置１から６の代替制御プログラム１ｇから６ｇを他の制御装置にアップロードする前に、他の制御装置に代替制御プログラムを受け入れる能力があるかどうか問い合わせ、
能力が無いと回答された場合は別の制御装置に問い合わせ、
全ての制御装置から能力が無いと回答された場合は、代替制御プログラムを分割し、
分割した代替制御プログラム毎に、他の制御装置に分割した代替制御プログラムを受け入れる能力があるかどうか問い合わせを繰り返し、能力があると回答した制御装置の記憶部の空き領域に分割した代替制御プログラムをアップロードするものである。
【００５４】
具体的には、例えば制御装置１が、代替制御プログラム１ｇのアップロードを受け入れる能力が無い旨を他のすべての制御装置から伝達された場合を考える。その場合、制御装置１は自身の代替制御プログラム１ｇを少なくとも２つ以上に分割し、分割した代替制御プログラム毎に、これを受け入れる能力のある制御装置を探すこととなる。制御装置１が、アップロードを受け入れる候補の制御装置として、制御装置２、制御装置４を選定した場合を考える。制御装置１は、制御装置２、制御装置４に対して、分割した代替制御プログラムの受け入れ能力があるか否かを、通信ライン６０を介して問い合わせる。制御装置２、制御装置４は、現在の計算資源の状態と、予想される計算資源の状況を検討して、受け入れ可能であれば受け入れる能力がある旨を、通信ライン６０を介して伝達する。
【００５５】
制御装置２、制御装置４から、分割された代替プログラムを受け入れる能力がある旨回答を受けた制御装置１は、制御装置２、及び制御装置４に対して、自身の分割された代替制御プログラムを、通信ライン６０を介してアップロードする。
【００５６】
このように、アップロードする代替制御プログラムを分割して、対象制御装置に受け入れ能力があるかどうか問い合わせることによって、記憶部１ｅから６ｅに細切れに残った空き領域１ｈから６ｈを利用して、代替制御プログラムを分割してアップロードすることができる。これによって、記憶部１ｅから６ｅの空き領域１ｈから６ｈの効率的な利用をすることができる。記憶部の過大な空き領域を確保しなくても、代替制御プログラムの他の制御装置の記憶部への格納が達成できるので、全体の記憶部の容量を適正化でき、コスト低減に寄与する。
【００５７】
＜１−９．計算資源の変化＞
ここで、過去に代替プログラムを受け入れる能力がある旨回答して、記憶部の空き領域に他の制御装置の代替制御プログラムを格納しているにも関わらず、計算資源の動的変化により、代替プログラムを受け入れる能力が無くなると予測できる場合について考える。
【００５８】
例えば、走行制御に係る制御装置３が、ナビゲーションシステムに従い、自動走行を開始する場合に、これからの走行環境から処理負荷増が想定される場合がある。
【００５９】
制御装置３は、制御状態の変化によって記憶部３ｅの空き領域３ｈ、ＲＡＭの空き領域、計算機の平均負荷または計算機のピーク負荷のうち少なくともひとつが増加または減少し、記憶部に格納した制御装置４の代替制御プログラム４ｇを受け入れる能力がなくなると予測した場合に、制御装置４に受け入れる能力がなくなると通知する。この場合、受け入れる能力が無くなる旨を、伝達された制御装置４は、新たに候補を探し、代替制御プログラム４ｇを受け入れる能力がある制御装置を見つけることとなる。
【００６０】
（ｆ）  このフェイルセーフシステム１００は、
制御装置１から６が、制御状態の変化によって記憶部の空き領域、ＲＡＭの空き領域、計算機の平均負荷または計算機のピーク負荷のうち少なくともひとつが変化し、記憶部に格納した他の制御装置の代替制御プログラムを受け入れる能力がなくなると予測した場合に、他の制御装置に受け入れる能力がなくなると通知し、
他の制御装置は、受け入れる能力がなくなると通知された場合に別の制御装置に代替制御プログラムを受け入れる能力があるかどうか問い合わせを繰り返し、能力があると回答した制御装置の記憶部の空き領域に代替制御プログラムをアップロードするものである。
【００６１】
これにより、各制御装置１から６の動的な変化に対応して、代替制御プログラムの実行可能性を確認しつつ、代替制御プログラムを受け入れる能力がある他の制御装置を確保することができるので、フェイルセーフシステムの信頼性が向上する。なお、受け入れる能力がなくなると通知された制御装置が、あらたな制御装置の記憶部の空き領域に代替制御プログラムのアップロードを完了してバックアップ体制が確立するまで、元の、当該代替制御プログラムを受け入れていた制御装置は、バックアップ体制を維持することとしてもよい。
【００６２】
＜１−１０．入出力装置の独立＞
実施の形態１で説明したフェイルセーフシステム１００は、制御装置１から６が故障した場合でも、その装置の代替制御プログラム１ｇから６ｇを別の制御装置が実行して、故障した制御装置の代役を果たすものである。このように、制御装置が変更されても、当該制御を維持できるのは、入力装置であるセンサ１１、２１、３１、４１と出力装置であるアクチュエータ１２、２２、３２、４２が独立して存在し、通信ライン６０で接続されているからである。
【００６３】
（ｇ）  このフェイルセーフシステム１００は、
制御装置１から６は、通信ライン６０を介してセンサ１１、２１、３１、４１とアクチュエータ１２、２２、３２、４２に接続され、センサ１１、２１、３１、４１から受信した入力情報に基づいて演算処理し出力情報をアクチュエータ１２、２２、３２、４２に送信して外部機器を制御するものである。
【００６４】
これにより、制御装置１から６が変更されても、当該制御を継続することができ、代替制御プログラム１ｇから６ｇが、どの制御装置上で実行されても信頼性の高いバックアップ制御が実行できる。
【００６５】
＜１−１１．アップロードの順序＞
また、実施の形態１で説明したフェイルセーフシステム１００は、電源起動時に各制御装置１から６が情報交換し、各制御装置１から６の代替制御プログラム１ｇから６ｇの容量の大きい順に番号を振って、番号順に、即ち代替制御プログラム１ｇから６ｇの容量の大きい順に、代替制御をアップロードする制御装置を選択していくこととしてもよい。そうすれば、初めに容量の大きい代替制御プログラムが格納される、大きな空き領域を見つけることができるからである。アップロードされる順が後半になると、大きな空き領域の領域は少なくなるが、アップロードすべき代替制御プログラムの容量も小さくなるので問題はない。
【００６６】
（ｈ）  このフェイルセーフシステム１００は、
制御装置１から６が、起動時に、容量の大きな代替制御プログラムを有する制御装置の順に代替制御プログラムのアップロードを開始するものである。
【００６７】
このようにすることで、各制御装置１から６の記憶部１ｅから６ｅの空き領域１ｈから６ｈを有効に利用することができ、適切な記憶部１ｅから６ｅの容量で、すべての制御装置１から６の代替制御プログラム１ｇから６ｇのアップロードを実施することができる。過大な記憶部の容量が不要となりコスト削減に貢献する。
【００６８】
＜１−１２．フローチャート＞
以上の実施の形態１のフェイルセーフシステム１００の動作について、フローチャートで説明する。
【００６９】
図４は、実施の形態１に係る制御装置１から６の全体の処理を示すフローチャートである。図５は、実施の形態１に係る制御装置１から６の起動処理を示すフローチャートである。図６は、実施の形態１に係る制御装置１から６の制御処理を示すフローチャートである。図７は、実施の形態１に係る制御装置１から６のダウンロード処理を示すフローチャートである。図８は、実施の形態１に係る制御装置１から６のアップロード処理を示すフローチャートである。図９は、実施の形態１に係る制御装置１から６のアップロード処理の詳細を示すフローチャートである。
【００７０】
＜１−１３．メイン処理＞
図４は、各制御装置１から６が、制御装置毎に個別に処理するメイン処理の全体の構成を示すフローチャートである。制御装置１から６の機能に応じて、実施間隔が異なる場合もあるが、ここでは、例えば図４の処理が５ｍｓ毎に実行されることとする。処理の実行は、一定時間間隔でなく、外部の信号入力タイミング毎に実行されてもよい。
【００７１】
ステップＳ１０１から処理が開始され、ステップＳ２００で起動処理が実行され、ステップＳ３００で制御処理が実行され、ステップＳ４００でダウンロード処理が実行され、ステップＳ５００でアップロード処理が実行され、ステップＳ１０９で処理が終了する。
【００７２】
ステップＳ２００の起動処理は、フェイルセーフシステム１００が起動直後かどうかを判定し、起動直後の処理を実行する。ステップＳ２００の起動処理の内容は図５のステップＳ２０１からステップＳ２０９で説明している。
【００７３】
ステップＳ３００の制御処理では、制御装置１から６の本来の機能である制御装置毎に特有の制御処理を実行する。また、他の制御装置の代替制御プログラムを、記録部の空き領域にダウンロードしている場合は、前記他の制御装置を監視し、故障している場合はその代替制御プログラムを実行する。ステップＳ３００の制御処理の処理内容は、図６のステップＳ３０１からステップＳ３１９で説明している。
【００７４】
ステップＳ４００のダウンロード処理では、他の制御装置から、その代替制御プログラムのダウンロード要請（他の制御装置から見るとアップロードする許可）を受けているかどうか確認し、受け入れ能力の有無を返信し、必要に応じて他の制御装置の代替制御プログラムをダウンロードする（他の制御装置のアップロードを許す）。ステップＳ４００の処理内容、は図７のステップＳ４０１からステップＳ４１９で説明している。
【００７５】
ステップＳ５００のアップロード処理では、自身の代替制御プログラムをアップロードする制御装置の候補を選定し、アップロードを受け入れる能力があるかどうかを問合せ、アップロードする処理を示している。ステップＳ５００の処理内容は、図８のステップＳ５０１からステップＳ５０９で説明している。
【００７６】
＜１−１４．起動処理＞
図５は、起動処理を示すフローチャートである。図５のステップＳ２０１は、図４のステップＳ２００から呼び出される処理である。ステップＳ２０１から処理を開始し、ステップＳ２０２で、フェイルセーフシステム１００が起動直後かどうかを判定する。起動直後でない場合はステップＳ２０９へ進んで処理を終了する。起動直後である場合は、ステップＳ２０３で、ダウンロード完了フラグ（以下ＤＬ完了フラグと記載）、アップロード完了フラグ（以下ＵＰ完了フラグと記載）、アップロードＮＧフラグ（以下ＵＬ−ＮＧフラグと記載）をクリアする。
【００７７】
ＤＬ完了フラグは、他の制御装置の代替制御プログラムを、自身の記憶部の空き領域にダウンロード完了していることを示すフラグである。ＵＬ完了フラグは、自身の代替制御プログラムを、他の制御装置の記憶部の空き領域にアップロード完了していることを示すフラグである。ＵＬ−ＮＧフラグは、他の制御装置に、自身の代替制御プログラムを、アップロードしようとして、他の制御装置に受け入れる能力があるかどうか問い合わせた結果、すべての制御装置から能力が無い旨回答を受けて、アップロードできなかったことを示すフラグである。次にステップＳ２０４に進む。
【００７８】
ステップＳ２０４で自身の制御装置番号を取得する。フェイルセーフシステムに含まれる、制御装置が、自身の代替制御プログラムの容量を提示しあい、容量が大きい順に制御装置番号が決定する。次にステップＳ２０５に進む。
【００７９】
ステップＳ２０５では、自身の制御装置番号が１であるかどうかを確認する。自身の制御装置番号が１でない場合は、ステップＳ２０９で処理を終了する。自身の制御装置番号が１の場合は、ステップＳ２０６へ進む。ステップＳ２０６では、制御装置番号カウンタ（以下ＣＵ−Ｎカウンタと記載）に１をセットする。ＣＵ−Ｎカウンタは、制御装置毎に代替制御プログラムを他の制御装置にアップロードする順番を示すカウンタであり、ＣＵ−Ｎカウンタの数字と自身の制御装置番号が一致した制御装置が、代替制御プログラムのダウンロードを試みる。起動直後は、最初に制御装置番号が１である制御装置が、代替制御プログラムを他の制御装置にアップロードする。ステップＳ２０６の後ステップＳ２０９で処理を終了する。
【００８０】
＜１−１５．制御処理＞
図６は、制御処理を示すフローチャートである。図６のステップＳ３０１は、図４のステップＳ３００から呼び出される処理である。ステップＳ３０１から処理を開始し、ステップＳ３０２で、完了フラグが１であるかどうかを確認する。ＤＬ完了フラグが１でない場合は、ステップＳ３１０へ進む。ＤＬ完了フラグが１の場合は、ステップＳ３０３へ進んで、現在の制御装置の計算資源と将来の計算資源の予測から、現在ダウンロード済みの他の制御装置の代替制御プログラムについて、受け入れ能力が無くなると予測するかどうか判定をする。
【００８１】
受け入れ能力が無くなる予測がされない場合は、ステップＳ３０８へ進む。受け入れ能力が無くなると予測する場合は、ステップＳ３０４へ進んで、当該制御装置へ、受け入れ能力が無くなる旨通知した結果、当該制御装置が別の制御装置に、代替制御プログラムをアップロード完了した通知を受けているかどうか（通知したＣＵが別ＣＵへＵＬ済？と記載）確認する。当該通知を受けていなければ、ステップＳ３０７で、当該制御装置に受け入れ能力が無くなる旨通知し、ステップＳ３０８へ進む。
【００８２】
当該制御装置から、別の制御装置に、代替制御プログラムをアップロード完了した通知を受けている場合は、ステップＳ３０５で自身の記憶部に格納された当該制御装置の代替制御プログラムを消去し、ステップＳ３０６でＤＬ完了フラグをクリアする。これにより、記憶部には将来の計算資源の予測から算定した余裕の範囲で、新たに別の制御装置の代替制御プログラムを受け入れる準備が整う。その後ステップＳ３１０へ進む。
【００８３】
ここで、当該制御装置は受け入れていた代替制御プログラムが、別の制御装置にアップロードされたことを確認した場合は、ステップＳ３０５で自身の記憶部から代替制御プログラムを消去することとしているが、消去しないこととしてもよい。当該制御装置の受け入れ能力が無くなると予測した理由が、記憶部の空き領域の問題ではなく、ＲＡＭ容量、処理負荷、実行速度に関して問題となると予測した場合は、ステップＳ３０５で代替制御プログラムを消去しなくてもよい。記憶部の空き領域に余裕がある場合は、代替制御プログラムを消去せず残しておくことに利点がある。当該制御装置に受け入れ能力が復活した場合、代替制御プログラムアップロード完了状態で待機できるからである。代替制御プログラムをアップロードして代替制御プログラム実行待機中の別の制御装置に、受け入れ能力の問題が新たに発生した場合、代替制御プログラムの再アップロードに費やする時間なしに、速やかに対応を交代して代替制御プログラム実行待機中とすることができるので有意である。
【００８４】
ステップＳ３０８で、代替制御プログラムを自身の記憶部へダウンロードした他の制御装置（代替制御プログラムをアップロードした制御装置）の故障判定を行う。故障していなければ、ステップＳ３１０へ進む。故障している場合は、自身の記憶部の当該制御装置の代替制御プログラムを実行する。これによって、当該制御装置は故障しても、限定された内容で、当該制御装置の代理として機能することができる。その後、ステップＳ３１０へ進む。
【００８５】
ステップＳ３１０では、自身の制御プログラムを実行する。センサから入力した入力情報に基づいて処理を行い、出力情報をアクチュエータに出力し機器を制御する。その後ステップＳ３１１へ進む。ステップＳ３１１で、自己の計算資源に係る情報を他の制御装置に伝える。すべての制御装置の計算資源データを共有することで、代替制御プログラムをアップロードする候補を迅速に探すことができるからである。その後ステップＳ３０９で処理を終了する。
【００８６】
＜１−１６．ダウンロード処理＞
図７は、ダウンロード処理を示すフローチャートである。図７のステップＳ４０１は、図４のステップＳ４００から呼び出される処理である。ステップＳ４０１から処理を開始し、ステップＳ４０２で、他の制御装置から代替制御プログラムの受け入れ能力有無の問い合わせが来ているかどうか（受入能力有無問合せ有、と記載）確認する。
【００８７】
問い合わせが来ていない場合は、ステップＳ４１９にて処理を終了する。問い合わせが来ている場合は、ステップＳ４０３で、受入能力有無問合せとともに伝達されている、発信元の代替制御プログラムの容量等の情報と、自身の計算資源とを比較し、受け入れる能力の有無を確認する。
【００８８】
ステップＳ４０４でその結果を確認し、受け入れる能力が無い場合はステップＳ４０８で受け入れる能力が無い旨、当該制御装置に返信して、ステップＳ４１９で処理を終了する。受け入れる能力がある場合はステップＳ４０５で受け入れる能力がある旨返信してステップＳ４０６へ進む。
【００８９】
ステップＳ４０６で、当該制御装置から代替制御プログラムのダウンロード要請があったかどうか確認する。ダウンロード要請がある場合は、ステップＳ４０７で当該制御装置の代替制御プログラムを記憶部の空き領域にダウンロードし、ステップＳ４１９で処理を終了する。ダウンロード要請が来ていなければ、ステップＳ４１９にて処理を終了する。ダウンロード処理は次回へまわされる。
【００９０】
＜１−１７．アップロード処理＞
図８は、アップロード処理を示すフローチャートである。図８のステップＳ５０１は、図４のステップＳ５００から呼び出される処理である。ステップＳ５０１から処理を開始し、ステップＳ５０２で、制御装置番号カウンタ（ＣＵ−ＮＣ）が自身の制御装置番号と一致するかどうか確認する。一致しなければ、自身の代替制御プログラムの他の制御装置へのアップロードの順番ではないので、ステップＳ５０９で処理を終了する。ＣＮ−ＵＣが自身の制御装置番号と一致した場合はステップＳ５０３へ進む。
【００９１】
ステップＳ５０３で、ＵＬ完了フラグが１であるかどうか確認する。ＵＬ完了フラグが１で無ければ、自身の代替制御プログラムの他の制御装置へのアップロードがまだなされていないので、ステップＳ６００で代替制御プログラムアップロード処理を実施する。このようにすることで、代替制御プログラムのアップロード処理が、起動後、できるだけ早い機会に実行され、各制御装置のバックアップ体制が迅速に整うこととなる。ステップＳ６００の代替制御プログラムアップロード処理の内容は、図９のステップＳ６０１からステップＳ６２９で説明している。
【００９２】
ステップＳ５０３でＵＬ完了フラグが１の場合、ステップＳ５０４へ進む。ステップＳ５０４では、代替制御プログラムをアップロードした制御装置から、予測により受け入れ能力が無くなる旨連絡が来ているかどうか確認する。連絡が来ていれば、別の制御装置の記憶部に再度代替制御プログラムをアップロードする必要があるので、ステップＳ６００へ進んで、代替制御プログラムアップロード処理を実行する。予測により受け入れ能力が無くなる旨連絡が来ていなければ、ステップＳ５０６へ進む。
【００９３】
ステップＳ６００で代替制御プログラムアップロード処理を実行した後、ステップＳ５０６で制御装置番号カウンタ（ＣＵ−ＮＣ）を加算する。加算した結果、フェイルセーフシステムの同等の制御装置の数を超えた場合は１へ戻す。これにより、アップロード処理の判断を次の制御装置番号の制御装置に引き渡すこととなる。ステップＳ５０６の後、ステップＳ５０９で処理を終了する。
【００９４】
＜１−１８．アップロード処理の詳細＞
図９は、アップロード処理の詳細を示すフローチャートである。図９のステップＳ６０１は、図８のステップＳ６００から呼び出される処理である。ステップＳ６０１で処理を開始しステップＳ６０２で他の制御装置から受信した計算機資源データから、全制御装置の計算機資源データを確認し、自身の代替制御プログラムを受け入れる能力があるかどうか問い合わせる制御装置の候補を決定する。次にステップＳ６０３で候補の制御装置に順次受け入れる能力があるかどうか問い合わせる。次にステップＳ６０４で、能力があるという制御装置ｍがあったかどうか確認する。
【００９５】
能力がある制御装置ｍがあった場合はステップＳ６０５で制御装置ｍへ、自身の代替制御プログラムをアップロードする。ステップＳ６０６でアップロード後、制御装置ｍのＤＬ完了フラグをセットし、アップロードした制御装置の制御装置番号を制御装置ｍに記憶させる。ＤＬ完了フラグがセットされているということは、制御装置ｍに、代替制御プログラムをアップロードした制御装置の監視義務が発生することを示す。次にステップＳ６０７で、ＵＬ−ＮＧフラグをクリアし、ステップＳ６０８でＵＬ完了フラグに１をセットする。その後ステップＳ６２９で処理を終了する。ステップＳ６０４で、能力があるという制御装置が見つからなかった場合、ステップＳ６１０でアップロードすべき代替制御プログラムを分割する。分割数は２以上であればよいが、ここでは、前半と後半に二分割することとする。ステップＳ６１１で、分割した後半部について、後半部の代替制御プログラムの容量等のデータを送付した上で、受け入れる能力があるかどうか、他の制御装置の候補に順次問い合わせる。
【００９６】
ステップＳ６１２で受け入れる能力がある旨回答した制御装置ｎがあったかどうか判断する。分割しても、受け入れる能力のある制御装置が無ければ、ステップＳ６２１へ進んで、ＵＬ−ＮＧフラグをセットする。ＵＬ−ＮＧフラグがセットされているということは、代替制御プログラムのアップロードが不可能だったということであり、問題点としてピックアップされる。次に、ステップＳ６２２でＵＬ完了フラグをクリアし、ステップＳ６２９で処理を終了する。
【００９７】
ステップＳ６１２で、受け入れる能力のある制御装置ｎがあった場合は、ステップＳ６１３で、制御装置ｎの記憶部の空き領域に、代替制御プログラムの分割した後半部をアップロードする。その後ステップＳ６１４へ進む。
【００９８】
ステップＳ６１４では、分割した前半部について、同様に前半部の代替制御プログラムの容量等のデータを送付した上で、受け入れる能力があるかどうか、他の制御装置の候補に順次問い合わせる。ステップＳ６１５で、受け入れる能力がある旨回答した制御装置ｋがあったかどうか判断する。分割した前半部について、受け入れる能力のある制御装置が無ければ、ステップＳ６２１へ進む。
【００９９】
ステップＳ６１５で、受け入れる能力がある旨回答した制御装置ｋがあった場合、ステップＳ６１６へ進んで、制御装置ｋの記憶部の空き領域に、代替制御プログラムの分割した前半部をアップロードする。その後ステップＳ６１７へ進む。ステップＳ６１７では、制御装置ｎの代替制御プログラムの後半部を書き込んだ先頭アドレス情報を、制御装置ｋへ記憶させる。制御装置ｋで代替プログラムを実行するとき、前半部分の実行の後、後半部分の実行をする時、前半分から後半部へ代替プログラムをスムーズに実行させるためである。その後ステップＳ６１８へ進む。
【０１００】
ステップＳ６１８では、制御装置ｋのＤＬ完了フラグをセットする。ＤＬ完了フラグがセットされていることで、制御装置ｋには、代替プログラムをダウンロードした制御装置を監視する義務が発生することを意味する。次に、ステップＳ６１９でＤＬ−ＮＧフラグをクリアし、ステップＳ６２０でＵＬ完了フラグをセットして、ステップＳ６２９で処理を終わる。
【０１０１】
ここで、制御装置から別の制御装置へ問合せを送信して、別の制御装置から回答を得るまで、時間がかかる。また、記憶部の空き領域にプログラムを書き込むにも時間がかかる。よって、これらの実行は制御周期ごとの処理とは別に、実行させることとしてもよい。
【０１０２】
２．実施の形態２
実施の形態１では、車両システムの起動後可及的速やかに、各制御装置が、代替制御プログラムを他の制御装置の記憶部の空き領域に展開し、バックアップ体制を完成し維持するシステムについて述べてきた。
【０１０３】
＜２−１．異常判定後のアップロード＞
実施の形態２では、常に、代替制御プログラムを他の制御装置の記憶部の空き領域に展開するのではなく、必要の都度、必要となった制御装置の代替制御プログラムを他の制御装置の記憶部の空き領域に展開する、フェイルセーフシステムについて説明する。
【０１０４】
図１０は、実施の形態２に係る制御装置のアップロード処理を示すフローチャートである。図１０のフローチャートは、図８のフローチャートのうち、ステップＳ５２１を追加した点のみが異なる。ステップＳ５０３で、ＵＬ完了フラグがセットされていない時、すなわち、未だ代替制御プログラムを他の制御装置にアップロードしていない時、第一の実施例に係る図８では、速やかに代替制御プログラムのアップロードを実行している。
【０１０５】
図１０では、ステップＳ５０３で、ＵＬ完了フラグがセットされていない場合、ステップＳ５２１で、制御装置の異常発生カウンタが、特定の値ｆより大きい場合のみ、ステップＳ６００で代替制御プログラムのアップロードを実行する。
【０１０６】
ステップＳ５０３でＵＬ完了フラグがセットされている場合に、ステップＳ５０４に進み、ステップＳ５０４で、代替制御プログラムをアップロードした制御装置から、予測により受け入れ能力が無くなる旨連絡が来ているかどうか確認する。連絡が来ていれば、別の制御装置の記憶部に再度代替制御プログラムをアップロードする必要があるので、ステップＳ６００へ進んで、代替制御プログラムアップロード処理を実行する。この部分は、実施の形態１の図７と同じである。
【０１０７】
以上より、実施の形態２では、代替制御プログラムのアップロードを急がず、制御装置の異常発生カウンタが、特定の値ｆより大きい状態になってから、代替制御プログラムのアップロードを実行する。このように、必要になってから、代替制御プログラムのアップロードを行うことによって、制御装置に異常が発生していない場合、代替制御プログラムのアップロードを行わないことによって、他の制御装置の記憶部の空き領域を消費せずに済む。言い換えれば、一度にたくさんの制御装置の異常が発生しない状況下では、制御装置の記憶部の空き領域を多く確保する必要がなくなることになる。すなわち、記憶部の容量を削減しても問題が無いので、記憶部の容量削減によりコスト削減、装置の小型化、軽量化に寄与することができる。
【０１０８】
なお、ここで制御装置の異常判定とは、制御装置が機能不全になる恐れの少ない異常の場合であって、例えば制御装置の内部電源回路の出力電圧が、標準電圧範囲より外れており、故障判定電圧範囲には入っていない状態、等のグレーゾーンの判定の場合である。
【０１０９】
図１０では、制御装置の異常発生カウンタが、特定の値ｆより大きい状態、を代替制御プログラムのアップロードのトリガとしたが、制御装置が初めて異常を検出した場合、制御装置が異常判定を繰り返して異常を確定した場合、をトリガとすることもできる。以上、どのような場合においても、他の制御装置に問合せて、受け入れる能力があるという回答を受けた上でないと、アップロードできないことは言うまでもない。上記の条件、および、実施の形態１の車両システムの起動後可及的速やかに代替制御プログラムのアップロードを行う場合を含めると、以下のような要件となる。
【０１１０】
（ｉ）  このフェイルセーフシステム１００は、
制御装置１から６が、
他の制御装置に前記代替制御プログラムを受け入れる能力があるかどうか問い合わせて、能力があると回答された場合、
能力があると回答され、かつ、制御装置が異常検出をした場合、
能力があると回答され、かつ、制御装置が特定期間内に特定回数異常検出をした場合、
能力があると回答され、かつ、制御装置が異常確定をした場合、
の少なくとも一つの場合に、他の制御装置の記憶部の空き領域に代替制御プログラムをアップロードするものである。
【０１１１】
これにより、制御装置１から６が異常判定を経てから、代替制御プログラム１ｇから６ｇの他制御装置へのアップロードを開始することによって、制御装置１から６の記憶部１ｅから６ｅの空き領域１ｈから６ｈを過大に設定する必要が無く、コストダウンに寄与することもできる。また、代替制御プログラム１ｇから６ｇの他制御装置へのアップロードを開始するタイミングを、異常状態の初回発生時から、特定回数発生時、あるいは異常確定まで、重大性に応じて最適に設定することもできる。
【０１１２】
本願は、様々な例示的な実施の形態及び実施例が記載されているが、１つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも１つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【符号の説明】
【０１１３】
１、２、３、４、５、６  制御装置、１ｅ、２ｅ、３ｅ、４ｅ、５ｅ、６ｅ  記憶部、１ｆ、２ｆ、３ｆ、４ｆ、５ｆ、６ｆ  制御プログラム、１ｇ、２ｇ、３ｇ、４ｇ、５ｇ、６ｇ  代替制御プログラム、１ｈ、２ｈ、３ｈ、４ｈ、５ｈ、６ｈ  空き領域、１１、２１、３１、４１  センサ、１２、２２、３２、４２  アクチュエータ、６０  通信ライン、１００  フェイルセーフシステム
【図１】
0006945672.tif 000002
【図２】
0006945672.tif 000003
【図３】
0006945672.tif 000004
【図４】
0006945672.tif 000005
【図５】
0006945672.tif 000006
【図６】
0006945672.tif 000007
【図７】
0006945672.tif 000008
【図８】
0006945672.tif 000009
【図９】
0006945672.tif 000010
【図１０】
0006945672.tif 000011