(57)【特許請求の範囲】
【請求項１】
車両を制御する機能を実行する車両制御装置であって、
前記車両制御装置を構成するハードウェアの故障を検出する故障検出部と、
前記ハードウェアの故障が前記車両制御装置の機能に影響を与える度合いを示す機能故障レベルを算出する機能故障判定部と、
前記機能故障レベルに応じたフェールセーフ動作を実施するフェールセーフ制御部と、
を備え、
前記機能故障判定部は、
前記ハードウェアの種類および数に依拠することなく、故障している前記ハードウェアの組合せによって、前記機能故障レベルを判定し、
前記フェールセーフ制御部は、
前記機能故障判定部が判定した前記機能故障レベルに対応する前記フェールセーフ動作を特定し、そのフェールセーフ動作を実施する
ことを特徴とする車両制御装置。
【請求項２】
前記フェールセーフ制御部は、
前記機能故障判定部が判定した前記機能故障レベルと前記フェールセーフ動作との間の対応関係を記述するテーブルを参照することにより、前記機能故障レベルに対応する前記フェールセーフ動作を特定し、そのフェールセーフ動作を実施する
ことを特徴とする請求項１記載の車両制御装置。
【請求項３】
故障している前記ハードウェアの組合せと、その組合せによって定まる前記機能故障レベルとの対応関係を記述した機能故障レベル判定テーブルを備え、
前記機能故障判定部は、
前記故障検出部が故障している旨を検出した前記ハードウェアの組合せを用いて前記機能故障レベル判定テーブルを照会することにより、前記機能故障レベルを判定する
ことを特徴とする請求項１記載の車両制御装置。
【請求項４】
前記機能故障判定部は、
重要度の高い前記ハードウェアが故障した場合における前記組合せは、重要度がより低い前記ハードウェアが故障した場合における前記組合せよりも、前記機能故障レベルが高いと判定する
ことを特徴とする請求項１記載の車両制御装置。
【請求項５】
前記故障検出部は、
前記ハードウェアの動作状態を示す数値を取得し、その数値が所定範囲を逸脱している場合は、前記ハードウェアが故障していると判断する
ことを特徴とする請求項１記載の車両制御装置。
【請求項６】
前記車両制御装置は、車内ネットワークに接続するインターフェースを備え、
前記機能故障判定部は、
前記車内ネットワークに接続する車両制御装置のうち正常動作していないものの組合せによって、前記車内ネットワークに接続する複数の車両制御装置によって構成される車両制御システムのシステム機能故障レベルを判定し、
前記フェールセーフ制御部は、
前記システム機能故障レベルに応じたフェールセーフ動作を実施する
ことを特徴とする請求項１記載の車両制御装置。
【請求項７】
前記車内ネットワークに接続する車両制御装置のうち正常動作していないものの組合せと、その組合せによって定まる前記システム機能故障レベルとの対応関係を記述した組合せ機能故障レベル判定テーブルを備え、
前記機能故障判定部は、
正常動作していない前記車両制御装置の組合せを用いて前記組合せ機能故障レベル判定テーブルを照会することにより、前記システム機能故障レベルを判定する
ことを特徴とする請求項６記載の車両制御装置。
【請求項８】
前記車内ネットワークに接続する車両制御装置が正常動作していない旨を示す機能故障情報を前記車内ネットワークから受信する受信部を備え、
前記機能故障判定部は、
前記受信部が受信した前記機能故障情報を用いて、前記システム機能故障レベルを判定する
ことを特徴とする請求項６記載の車両制御装置。
【請求項９】
請求項１記載の複数の車両制御装置と、
前記複数の車両制御装置を接続する車内ネットワークと、
を有し、
いずれかの前記車両制御装置は、
前記機能故障レベルを記述した機能故障情報を他の前記車両制御装置に送信し、
前記機能故障情報を受信した前記車両制御装置は、
前記機能故障情報が記述している機能故障レベルに応じたフェールセーフ動作を実施する
ことを特徴とする車両制御システム。
【請求項１０】
請求項６記載の複数の車両制御装置と、
前記複数の車両制御装置を接続する車内ネットワークと、
を有し、
前記車両制御装置は、
前記車内ネットワークに接続する車両制御装置が正常動作していない旨を示す機能故障情報を前記車内ネットワークから受信する受信部を備え、
いずれかの前記車両制御装置は、
前記機能故障レベルを記述した機能故障情報を他の前記車両制御装置に送信し、
前記機能故障情報を受信した前記車両制御装置は、
前記受信部が受信した前記機能故障情報を用いて、前記システム機能故障レベルを判定し、
前記システム機能故障レベルに応じたフェールセーフ動作を実施する
ことを特徴とする車両制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両制御装置に関するものである。
【背景技術】
【０００２】
近年の多くの車両制御システムは、電子化された車両制御機器を操作するＥＣＵ、すなわち電子制御装置（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と、複数のＥＣＵ間の通信を可能にする車載ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）から構成される。この車載ＬＡＮの１つとして広く利用されているネットワークに、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）がある。
【０００３】
車両制御システムは、環境負荷低減や安全に対する要求の増加にともない、システムの高機能化、分散化、複雑化が進んでいる。同様に、センサやアクチュエータなどが故障したときに車両制御システムを安全な状態に遷移させるフェールセーフ（ＦＳ）制御も、分散化、複雑化している。例えば、車両を制御するアクチュエータを制御するＥＣＵは、アクチュエータの挙動をセンサで測定し、その測定結果に基づき故障の有無を判定する。故障の有無を判定したＥＣＵまたはその判定結果を受け取ったＥＣＵは、これらの故障判定結果に応じてフェールセーフ制御を実施する。
【０００４】
車両制御システムでは、車種、製品の仕向地、ユーザが自動車を購入する際の機能選択などに応じて、システム構成、ＥＣＵに接続するアクチュエータやセンサが異なる。ＥＣＵは、アクチュエータやセンサの故障情報、所定時間内に故障した回数等に基づき、実行すべきフェールセーフ制御の種類を判別し、制御を実行する。
【０００５】
したがって、車種、製品の仕向地、ユーザが自動車を購入する際の機能選択によって、アクチュエータ、センサ、診断装置が変更される度に、フェールセーフ制御を実施するフェールセーフソフトウェアを新規開発する必要がある。そのため、フェールセーフソフトウェアを効率的に開発したいという要求がある。
【０００６】
下記特許文献１に記載されている技術では、診断プログラムをオブジェクト指向設計することにより、アクチュエータやセンサなどの構成要素が変更されても、対応するオブジェクトのみを変更すればよいようにすることを図っている。
【０００７】
下記非特許文献１に記載されている技術では、マイコンに依存する機能単位、センサやアクチュエータの制御処理単位などのまとまりを単位として、ソフトウェアをモジュール化している。これにより、マイコンなどのハードウェア（ＨＷ）が変更されても、対象となるモジュールを修正するだけで、他のモジュールを修正することなくハードウェア変更に対応できるようにすることが期待できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−１４８３９号公報
【非特許文献】
【０００９】
【非特許文献１】ＡＵＴＯＳＡＲ＿ＥＸＰ＿ＬａｙｅｒｅｄＳｏｆｔｗａｒｅＡｒｃｈｉｔｅｃｔｕｒｅ，http://www.autosar.org/index.php?p=3&up=1&uup=2&uuup=0（２０１１年６月３日取得）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記特許文献１に記載されている技術では、オブジェクト単位で診断プログラムを変更することができるようにしている。しかし、車種や製品仕向地などの組合せによって故障判定の内容は個別に異なるため、センサなどの個別の構成要素が故障しているか否かの判定結果を受け取って全体的な故障を最終的に判定する故障判定ロジックも、結果的に個別開発する必要がある場合が多いと考えられる。そのため、構成要素毎の診断モジュールをオブジェクト単位で変更することができるとしても、全体を取り纏める故障判定ロジックは個別開発する必要があると考えられる。
【００１１】
上記非特許文献１に記載されている技術では、センサなどの個別の構成要素単位でプログラムをモジュール化しているが、全体的な故障の有無を判定する故障判定ロジックはモジュール化されていない。そのため、特許文献１と同様に故障判定ロジックを個別開発する必要があると考えられる。
【００１２】
本発明は、上記のような課題を解決するためになされたものであり、車両制御装置の構成要素が故障しているか否かの判定結果を基礎として、車両制御装置が全体として故障しているか否かを判定する故障判定ロジックを、容易に再利用することができるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る車両制御装置は、車両制御装置を構成するハードウェアのうち故障しているものの組合せに基づき、車両制御装置の機能故障レベルを判定し、その機能故障レベルに応じたフェールセーフ機能を実施する。
【発明の効果】
【００１４】
本発明に係る車両制御装置は、故障しているハードウェアの組合せによって機能故障レベルを判定するので、故障判定ロジックを個々のハードウェアの仕様から独立させることができる。これにより、故障判定ロジックを容易に再利用することができる。
【図面の簡単な説明】
【００１５】
【図１】ブレーキ支援装置１の構成図である。
【図２】テーブルサイズ管理テーブル１０８０１０の例を示す図である。
【図３】ＨＷ故障情報管理テーブル１０８０２０の例を示す図である。
【図４】機能故障レベル管理テーブル１０８０３０の例を示す図である。
【図５】機能故障レベル判定テーブル１０８０４０の例を示す図である。
【図６】ＦＳ管理テーブル１０８０５０の例を示す図である。
【図７】故障判定実行部１０４の動作フローを示す図である。
【図８】ＨＷ故障検出部１０５の動作フローを示す図である。
【図９】機能故障判定部１０６の動作フローを示す図である。
【図１０】機能故障判定部１０６がステップＳ１０６００４で実施する機能故障レベル判定処理の動作フローを示す図である。
【図１１】ＦＳ制御部１０７の動作フローを示す図である。
【図１２】ＦＳ制御部１０７がステップＳ１０７００４で実施するフリーラン実行処理の動作フローを示す図である。
【図１３】実施形態２に係る車両制御システム１０００のネットワーク構成図である。
【図１４】横滑り防止装置２の構成図である。
【図１５】実施形態２におけるブレーキ支援装置１の構成図である。
【図１６】テーブルサイズ管理テーブル２１００１０の例を示す図である。
【図１７】ＨＷ故障情報管理テーブル２１００２０の例を示す図である。
【図１８】機能故障レベル判定テーブル２１００３０の例を示す図である。
【図１９】機能故障レベル管理テーブル２１００４０の例を示す図である。
【図２０】組合せ機能故障レベル判定テーブル２１００５０の例を示す図である。
【図２１】組合せ機能故障レベル管理テーブル２１００６０の例を示す図である。
【図２２】ＦＳ管理テーブル２１００７０の例を示す図である。
【図２３】送信データＣＡＮ  ＩＤテーブル２１００８０の例を示すである。
【図２４】横滑り防止装置２が備える故障判定実行部２０４の動作フローを示す図である。
【図２５】ＨＷ故障検出部２０５の動作フローを示す図である。
【図２６】機能故障判定部２０６の動作フローを示す図である。
【図２７】ステップＳ２０６０００における機能故障判定部２０６の動作フローを示す図である。
【図２８】機能故障判定部２０６がステップＳ２０６１０４で実施する機能故障レベル判定処理の動作フローを示す図である。
【図２９】ステップＳ２０６００１における機能故障判定部２０６の動作フローを示す図である。
【図３０】ステップＳ２０６３０４における機能故障判定部２０６の動作フローを示す図である。
【図３１】ＦＳ制御部２０７の動作フローを示す図である。
【図３２】ステップＳ２０７００３におけるＦＳ制御部２０７の動作フローを示す図である。
【図３３】ステップＳ２０７００５におけるＦＳ制御部２０７の動作フローを示す図である。
【図３４】ステップＳ２０７００７におけるＦＳ制御部２０７の動作フローを示す図である。
【図３５】送信処理部２０８のＣＡＮ送信処理の動作フローを示す図である。
【図３６】受信処理部２０９の動作フローを示す図である
【図３７】ステップＳ２０９０００における受信処理部２０９の動作フローを示す図である。
【図３８】実施形態２におけるＦＳ管理テーブル１０８０５０の例を示す図である。
【図３９】送信データＣＡＮ  ＩＤテーブル１０８０６０の例を示すである。
【図４０】ＦＳ制御部１０７の動作フローを示す図である。
【図４１】ステップＳ１０７２０３におけるＦＳ制御部１０７の動作フローを示す図である。
【発明を実施するための形態】
【００１６】
＜実施の形態１＞
図１は、本発明に係るブレーキ支援装置１の構成図である。ブレーキ支援装置１は、車両が備えるブレーキを制御する車両制御装置であり、演算装置１０１、メモリ１０２、入出力回路１０９、レゾルバ１１０、レゾルバ用診断装置１１１、ブレーキ支援装置用モータ１１２を備える。
【００１７】
演算装置１０１は、メモリ１０２が格納しているプログラムを実行するプロセッサ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。同等の機能を、回路デバイスなどのハードウェアを用いて構成することもできる。
【００１８】
メモリ１０２は、プログラム領域１０３とデータ記憶領域１０８を有する。プログラム領域１０３は、故障判定実行部１０４、ＨＷ（ハードウェア）故障検出部１０５、機能故障判定部１０６、ＦＳ（フェールセーフ）制御部１０７を格納する。これらプログラムの機能については後述する。データ記憶領域１０８は、後述の図２で説明するテーブルサイズ管理テーブル１０８０１０、図３で説明するＨＷ故障情報管理テーブル１０８０２０、図４で説明する機能故障レベル管理テーブル１０８０３０、図５で説明する機能故障レベル判定テーブル１０８０４０、図６で説明するＦＳ管理テーブル１０８０５０を格納する。
【００１９】
レゾルバ１１０は、センサ値としてモータの回転角を取得する装置である。レゾルバ用診断装置１１１は、レゾルバ１１０の動作を監視し、レゾルバ１１０が正常に動作しているかを判断する装置である。
【００２０】
図２は、テーブルサイズ管理テーブル１０８０１０の例を示す図である。テーブルサイズ管理テーブル１０８０１０は、プログラム処理上の便宜のため後述の各テーブルが有するレコード数を保持するテーブルであり、名称フィールド１０８０１１、Ｌｅｎｇｔｈフィールド１０８０１２を有する。
【００２１】
名称フィールド１０８０１１は、後述するＨＷ故障情報管理テーブル１０８０２０、機能故障レベル管理テーブル１０８０３０、機能故障レベル判定テーブル１０８０４０それぞれの主キー項目名称を保持する。Ｌｅｎｇｔｈフィールド１０８０１２は、上記３テーブルがそれぞれ有するレコード数を保持する。
【００２２】
図３は、ＨＷ故障情報管理テーブル１０８０２０の例を示す図である。ＨＷ故障情報管理テーブル１０８０２０は、ブレーキ支援装置１を構成するハードウェアがそれぞれ正常動作しているか否かを管理するテーブルであり、ＨＷ＿ＩＤフィールド１０８０２１、名称フィールド１０８０２２、ＨＷ動作状態値フィールド１０８０２３、故障判定条件フィールド１０８０２４、上限閾値フィールド１０８０２５、下限閾値フィールド１０８０２６、ＨＷ故障検出回数フィールド１０８０２７、故障確定判定閾値フィールド１０８０２８、ＨＷ故障確定フラグフィールド１０８０２９を有する。
【００２３】
ＨＷ＿ＩＤフィールド１０８０２１は、ブレーキ支援装置１を構成するハードウェアの識別子を保持する。ここでは故障診断にとって重要なレゾルバ１１０とレゾルバ用診断装置１１１のみを例示したが、これに限られるものではない。名称フィールド１０８０２２は、ＨＷ＿ＩＤフィールド１０８０２１が識別するハードウェアの名称を保持する。ＨＷ動作状態値フィールド１０８０２３は、ＨＷ＿ＩＤフィールド１０８０２１が識別するハードウェアが正常動作しているか否かを示す数値を保持する。この数値が上限閾値フィールド１０８０２５と下限閾値フィールド１０８０２６の間の範囲内にある場合はそのハードウェアは正常動作しており、この範囲を逸脱している場合は動作異常が生じていると判定されることになる。ＨＷ故障検出回数フィールド１０８０２７は、ＨＷ動作状態値フィールド１０８０２３の値が上記範囲を逸脱した回数を保持する。この回数が故障確定判定閾値フィールド１０８０２８の値以上になると、ブレーキ支援装置１は故障していると判定されることになる。ＨＷ故障確定フラグフィールド１０８０２９は、上記判定基準にしたがってブレーキ支援装置１が故障していると判定された場合は「１」を保持し、そうでない場合は「０」を保持する。
【００２４】
図４は、機能故障レベル管理テーブル１０８０３０の例を示す図である。機能故障レベル管理テーブル１０８０３０は、車両制御システムが備える機能毎に、故障程度（機能故障レベル）を表す数値を管理するテーブルである。車両制御システムが備える機能とは、各車両制御装置のことである。ここではブレーキ支援装置１のみを例示しているので、車両制御システムが備える機能は１つのみとなる。
【００２５】
機能故障レベル管理テーブル１０８０３０は、Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド１０８０３１、名称フィールド１０８０３２、機能故障レベルフィールド１０８０３３を有する。
【００２６】
Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド１０８０３１は、車両制御システムが備える機能の識別子を保持する。名称フィールド１０８０３２は、Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド１０８０３１が識別する機能の名称を保持する。機能故障レベルフィールド１０８０３３は、Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド１０８０３１が識別する機能の現在の機能故障レベルを保持する。当該機能が故障していなければ「０」を保持し、故障していればその故障レベルに応じた値を保持する。
【００２７】
図５は、機能故障レベル判定テーブル１０８０４０の例を示す図である。機能故障レベル判定テーブル１０８０４０は、ブレーキ支援装置１を構成するハードウェアのいずれが故障したかの組合せに基づき、ブレーキ支援装置１の機能故障レベルを定義するテーブルである。機能故障レベル判定テーブル１０８０４０は、Ｉｎｄｅｘフィールド１０８０４１、機能故障レベルフィールド１０８０４２、ＨＷ故障確定フラグ組合せフィールド１０８０４３を有する。ＨＷ故障確定フラグ組合せフィールド１０８０４３はさらに、ブレーキ支援装置１が備えるハードウェアの個数に等しいサブフィールドを有する。ここでは、レゾルバ１１０とレゾルバ用診断装置１１１に対応する、第１ＨＷ＿ＩＤフィールド１０８０４４と第２ＨＷ＿ＩＤフィールド１０８０４５を有する。
【００２８】
Ｉｎｄｅｘフィールド１０８０４１は、レコードを識別するための番号である。機能故障レベルフィールド１０８０４２は、機能故障レベルの数値を保持する。ＨＷ故障確定フラグ組合せフィールド１０８０４３は、ブレーキ支援装置１が備えるハードウェアが故障している場合は「１」、故障していない場合は「０」を、ハードウェア毎に保持する。ブレーキ支援装置１はハードウェアを２つ（レゾルバ１１０とレゾルバ用診断装置１１１）備えるので、本フィールドはこれに対応する２つのサブフィールドを有する。第１ＨＷ＿ＩＤフィールド１０８０４４は、レゾルバ１１０が故障しているか否かを示す値を保持する。第２ＨＷ＿ＩＤフィールド１０８０４５は、レゾルバ用診断装置１１１が故障しているか否かを示す値を保持する。
【００２９】
図６は、ＦＳ管理テーブル１０８０５０の例を示す図である。ＦＳ管理テーブル１０８０５０は、ブレーキ支援装置１の機能故障レベルに対応するフェールセーフ機能を記述した関数の格納先アドレスを保持するテーブルである。ＦＳ管理テーブル１０８０５０は、機能故障レベルフィールド１０８０５１、名称フィールド１０８０５２、ＦＳ実行先テーブルアドレスフィールド１０８０５３を有する。
【００３０】
機能故障レベルフィールド１０８０５１は、ブレーキ支援装置１の機能故障レベルの数値を保持する。名称フィールド１０８０５２は、フェールセーフ機能の名称を保持する。ＦＳ実行先テーブルアドレスフィールド１０８０５３は、機能故障レベルの値に対応するフェールセーフ機能を記述した関数の格納先アドレスを保持する。
【００３１】
図７は、故障判定実行部１０４の動作フローを示す図である。以下、図７の各ステップについて説明する。
（図７：ステップＳ１０４０００）
故障判定実行部１０４は、後述の図８で説明するＨＷ故障検出部１０５を呼び出す。ＨＷ故障検出部１０５は、ブレーキ支援装置１が備えるＨＷの故障を検出する。
【００３２】
（図７：ステップＳ１０４００１）
故障判定実行部１０４は、後述の図９で説明する機能故障判定部１０６を呼び出す。機能故障判定部１０６は、ブレーキ支援装置１全体としての故障程度（ブレーキ支援装置１の機能故障レベル）を判定する。
【００３３】
（図７：ステップＳ１０４００２）
故障判定実行部１０４は、後述の図１１で説明するＦＳ制御部１０７を呼び出す。ＦＳ制御部１０７は、ブレーキ支援装置１に機能故障が発生した場合、機能故障レベルに応じたＦＳを実行する。
【００３４】
図８は、ＨＷ故障検出部１０５の動作フローを示す図である。以下、図８の各ステップについて説明する。
（図８：ステップＳ１０５０００）
ＨＷ故障検出部１０５は、ＨＷ故障情報管理テーブル１０８０２０内のレコードをカウントするための変数ｉに１を代入する。
【００３５】
（図８：ステップＳ１０５００１）
ＨＷ故障検出部１０５は、入出力回路１０９を介して、変数ｉと等しいＨＷ＿ＩＤを有するハードウェア（ここでは、レゾルバ１１０またはレゾルバ用診断装置１１１）の動作状態値を取得する。ＨＷ故障検出部１０５は、ＨＷ＿ＩＤフィールド１０８０２１が変数ｉと等しいＨＷ故障情報管理テーブル１０８０２０内のレコードを取得する。ＨＷ故障検出部１０５は、同レコードのＨＷ動作状態値フィールド１０８０２３に、入出力回路１０９を介して取得した動作状態値を書き込む。
【００３６】
（図８：ステップＳ１０５００２〜Ｓ１０５００３）
ＨＷ故障検出部１０５は、ステップＳ１０５００１でハードウェアの動作状態値を書き込んだレコードの上限閾値フィールド１０８０２５と下限閾値フィールド１０８０２６を参照し、ステップＳ１０５００１で取得した動作状態値がこれら閾値の範囲内にあるか否かを判定する。閾値の範囲内にあればステップＳ１０５００４に進み、閾値の範囲を逸脱していればステップＳ１０５００７にスキップする。
【００３７】
（図８：ステップＳ１０５００４）
ＨＷ故障検出部１０５は、ステップＳ１０５００１でハードウェアの動作状態値を書き込んだレコードのＨＷ故障検出回数フィールド１０８０２７に１を加える。
【００３８】
（図８：ステップＳ１０５００５）
ＨＷ故障検出部１０５は、ステップＳ１０５００１でハードウェアの動作状態値を書き込んだレコードのＨＷ故障検出回数フィールド１０８０２７が、同じレコードのＨＷ故障確定判定閾値フィールド１０８０２８を超えているか否かを判定する。超えている場合はステップＳ１０５００６に進み、超えていない場合はステップＳ１０５００７にスキップする。
【００３９】
（図８：ステップＳ１０５００６）
ＨＷ故障検出部１０５は、ステップＳ１０５００１でハードウェアの動作状態値を書き込んだレコードのＨＷ故障確定フラグフィールド１０８０２９に１を書きこむ。
【００４０】
（図８：ステップＳ１０５００７）
ＨＷ故障検出部１０５は、変数ｉに１を加える。
【００４１】
（図８：ステップＳ１０５００８）
ＨＷ故障検出部１０５は、テーブルサイズ管理テーブル１０８０１０から、名称フィールド１０８０１１が「ＨＷ＿ＩＤ」であるレコードのＬｅｎｇｔｈフィールド１０８０１２を取得する。変数ｉがＬｅｎｇｔｈフィールド１０８０１２を超えていれば本処理を終了し、超えていなければステップＳ１０５００１に戻る。
【００４２】
図９は、機能故障判定部１０６の動作フローを示す図である。以下、図９の各ステップについて説明する。
（図９：ステップＳ１０６０００）
機能故障判定部１０６は、ＨＷ故障情報管理テーブル１０８０２０内のレコードをカウントするための変数ｉに１を代入する。
【００４３】
（図９：ステップＳ１０６００１）
機能故障判定部１０６は、ＨＷ＿ＩＤフィールド１０８０２１が変数ｉと等しいＨＷ故障情報管理テーブル１０８０２０内のレコードから、ＨＷ故障確定フラグフィールド１０８０２９を取得する。
【００４４】
（図９：ステップＳ１０６００２）
機能故障判定部１０６は、変数ｉに１を加える。
【００４５】
（図９：ステップＳ１０６００３）
機能故障判定部１０６は、テーブルサイズ管理テーブル１０８０１０から、名称フィールド１０８０１１が「ＨＷ＿ＩＤ」であるレコードのＬｅｎｇｔｈフィールド１０８０１２を取得する。変数ｉがＬｅｎｇｔｈフィールド１０８０１２を超えていればステップＳ１０６００４へ進み、超えていなければステップＳ１０６００１に戻る。
【００４６】
（図９：ステップＳ１０６００４）
機能故障判定部１０６は、後述の図１０で説明する機能故障レベル判定処理を実施し、本処理を終了する。
【００４７】
図１０は、機能故障判定部１０６がステップＳ１０６００４で実施する機能故障レベル判定処理の動作フローを示す図である。以下、図１０の各ステップについて説明する
（図１０：ステップＳ１０６１００〜Ｓ１０６１０１）
機能故障判定部１０６は、機能故障レベル判定テーブル１０８０４０内のレコードをカウントするための変数ｉとｊに１を代入する。
【００４８】
（図１０：ステップＳ１０６１０２）
機能故障判定部１０６は、Ｉｎｄｅｘフィールド１０８０４１が変数ｉに等しい機能故障レベル判定テーブル１０８０４０内のレコードを取得する。さらに機能故障判定部１０６は、同レコードのＨＷ故障確定フラグ組合せフィールド１０８０４３内のｊ番目のサブフィールドを取得する。機能故障判定部１０６は、Ｗ故障情報管理テーブル１０８０２０内の変数ｊに等しいＨＷ＿ＩＤフィールド１０８０２１を有するレコードからＨＷ故障確定フラグフィールド１０８０２９を取得し、ＨＷ故障確定フラグ組合せフィールド１０８０４３内のｊ番目のサブフィールドに一致するか否かを判定する。一致していればステップＳ１０６１０３に進み、一致していなければステップＳ１０６１０６にスキップする。
【００４９】
（図１０：ステップＳ１０６１０３）
機能故障判定部１０６は、変数ｊに１を加える。
【００５０】
（図１０：ステップＳ１０６１０４）
機能故障判定部１０６は、テーブルサイズ管理テーブル１０８０１０から、名称フィールド１０８０１１が「ＨＷ＿ＩＤ」であるレコードのＬｅｎｇｔｈフィールド１０８０１２を取得する。変数ｊがＬｅｎｇｔｈフィールド１０８０１２を超えていればステップＳ１０６１０５へ進み、超えていなければステップＳ１０６００２に戻る。
【００５１】
（図１０：ステップＳ１０６１０４：補足）
本ステップは、ＨＷ故障確定フラグ組合せフィールド１０８０４３内のサブフィールドを順に取得するためのものである。ＨＷ故障確定フラグ組合せフィールド１０８０４３内のサブフィールドの個数はブレーキ支援装置１が備えるハードウェアの個数と一致するので、テーブルサイズ管理テーブル１０８０１０から取得することができる。
【００５２】
（図１０：ステップＳ１０６１０２〜Ｓ１０６１０４：補足）
これらのステップは、ブレーキ支援装置１が備えるレゾルバ１１０とレゾルバ用診断装置１１１が故障しているか否かの組合せに一致する、機能故障レベル判定テーブル１０８０４０内のレコードを特定するためのものである。
【００５３】
（図１０：ステップＳ１０６１０５）
機能故障判定部１０６は、機能故障レベル管理テーブル１０８０３０の機能故障レベルフィールド１０８０３３に、ステップＳ１０６１０２で取得したレコードの機能故障レベルフィールド１０８０４２の値を書きこむ。
【００５４】
（図１０：ステップＳ１０６１０６）
機能故障判定部１０６は、変数ｉに１を加える。
【００５５】
（図１０：ステップＳ１０６１０７）
機能故障判定部１０６は、テーブルサイズ管理テーブル１０８０１０から、名称フィールド１０８０１１が「ＦＳ＿Ｉｎｄｅｘ」であるレコードのＬｅｎｇｔｈフィールド１０８０１２を取得する。変数ｉがＬｅｎｇｔｈフィールド１０８０１２を超えていれば本処理を終了し、超えていなければステップＳ１０６１０１に戻る。
【００５６】
図１１は、ＦＳ制御部１０７の動作フローを示す図である。以下、図１１の各ステップについて説明する。
（図１１：ステップＳ１０７０００）
ＦＳ制御部１０７は、機能故障レベル管理テーブル１０８０３０の機能故障レベルフィールド１０８０３３を参照する。
【００５７】
（図１１：ステップＳ１０７００１）
ＦＳ制御部１０７は、ステップＳ１０７０００で取得した機能故障レベルフィールド１０８０３３が０であるか否かを判定する。０であれば本処理を終了し、０でなければステップＳ１０７００２に進む。
【００５８】
（図１１：ステップＳ１０７００２）
ＦＳ制御部１０７は、ステップＳ１０７０００で取得した機能故障レベルフィールド１０８０３３が１であるか否かを判定する。１であればステップＳ１０７００４に進み、１でなければステップＳ１０７００３に進む。
【００５９】
（図１１：ステップＳ１０７００３）
ＦＳ制御部１０７は、ステップＳ１０７０００で取得した機能故障レベルフィールド１０８０３３が２であるか否かを判定する。２であればステップＳ１０７００４に進み、２でなければ本処理を終了する。
【００６０】
（図１１：ステップＳ１０７００４）
ＦＳ制御部１０７は、ステップＳ１０７００１〜Ｓ１０７００３で特定した機能故障レベルの値に対応する処理をＦＳ管理テーブル１０８０５０から取得し、その処理を実行する。本実施形態１では、フリーラン実行処理を呼び出すことになる。
【００６１】
図１２は、ＦＳ制御部１０７がステップＳ１０７００４で実施するフリーラン実行処理の動作フローを示す図である。以下、図１２の各ステップについて説明する。
（図１２：ステップＳ１０７１００）
ＦＳ制御部１０７は、ブレーキ支援装置用モータ１１２を停止させ、フリーランを実行する。
【００６２】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係るブレーキ支援装置１は、故障したハードウェアの組合せによって機能故障レベルを判定し、これに対応するフェールセーフ処理を実施する。機能故障レベルは、ハードウェアの故障状態を抽象化した数値であり、ブレーキ支援装置１が備えるハードウェア構成に依存しない。そのため、ＨＷの種類や数が変更されたとしても、ＦＳ制御部１０７を修正する必要がなく、ＦＳ制御部１０７の故障判定ロジックを容易に再利用することができる。
【００６３】
＜実施の形態２＞
本発明の実施形態２では、ブレーキ支援装置１と横滑り防止装置２が車内ネットワークに接続し、実施形態１で説明した機能故障レベルをネットワーク経由で送受信し、これを用いてＦＳ制御を実施する例を説明する。
【００６４】
図１３は、本実施形態２に係る車両制御システム１０００のネットワーク構成図である。車両制御システム１０００は、車両を制御する１以上のＥＣＵをネットワークで接続した構成を有する。各ＥＣＵは車両の各部を制御するとともに、必要に応じて他のＥＣＵと通信する。例えば、ブレーキ支援装置１が故障したとき、ブレーキ支援装置１は実施形態１で説明した機能故障レベルを記述する機能故障レベル情報をＣＡＮ４に送信する。他のＥＣＵはその機能故障レベル情報を受信し、その値に応じてＦＳを実施する。
【００６５】
図１４は、横滑り防止装置２の構成図である。横滑り防止装置２は、演算装置２０１、メモリ２０２、入出力回路２１１、ＣＡＮ４、加速度センサ２１４、加速度センサ用診断装置２１５、横滑り防止装置用モータ２１６を備える。
【００６６】
演算装置２０１は、メモリ２０２が格納しているプログラムを実行するプロセッサである。同等の機能を、回路デバイスなどのハードウェアを用いて構成することもできる。
【００６７】
メモリ２０２は、プログラム領域２０３とデータ記憶領域２１０を有する。プログラム領域２０３は、故障判定実行部２０４、ＨＷ故障検出部２０５、機能故障判定部２０６、ＦＳ制御部２０７、送信処理部２０８、受信処理部２０９を格納する。これらプログラムの機能については後述する。データ記憶領域２１０は、後述の図１６で説明するテーブルサイズ管理テーブル２１００１０、図１７で説明するＨＷ故障情報管理テーブル２１００２０、図１８で説明する機能故障レベル判定テーブル２１００３０、図１９で説明する機能故障レベル管理テーブル２１００４０、図２０で説明する組合せ機能故障レベル判定テーブル２１００５０、図２１で説明する組合せ機能故障レベル管理テーブル２１００６０、図２２で説明するＦＳ管理テーブル２１００７０、図２３で説明する送信データＣＡＮ  ＩＤテーブル２１００８０を格納する。
【００６８】
ＣＡＮコントローラ２１２は、信号入出力回路２１３を備える。信号入出力回路２１３は、ＣＡＮ４から受け取った通信信号をデジタル変換するなどの必要な処理を適宜実行する。
【００６９】
図１５は、本実施形態２におけるブレーキ支援装置１の構成図である。本実施形態２において、ブレーキ支援装置１は、実施形態１で説明した構成に加え、ＣＡＮコントローラ１１５を備える。
【００７０】
プログラム領域１０３は、実施形態１で説明した各機能部に加え、送信処理部１１３と受信処理部１１４を格納する。データ記憶領域１０８は、実施形態１で説明した各テーブルに加え、図３９で説明する送信データＣＡＮ  ＩＤテーブル１０８０６０を格納する。
【００７１】
ＣＡＮコントローラ１１５の構成は、横滑り防止装置２が備えるＣＡＮコントローラ２１２と同様である。
【００７２】
図１６は、テーブルサイズ管理テーブル２１００１０の例を示す図である。テーブルサイズ管理テーブル２１００１０は、プログラム処理上の便宜のため後述の各テーブルが有するレコード数を保持するテーブルであり、名称フィールド２１００１１、Ｌｅｎｇｔｈフィールド２１００１２を有する。
【００７３】
名称フィールド２１００１１は、後述するＨＷ故障情報管理テーブル２１００２０、機能故障レベル判定テーブル２１００３０、機能故障レベル管理テーブル２１００４０、組合せ機能故障レベル判定テーブル２１００５０それぞれの主キー項目名称を保持する。Ｌｅｎｇｔｈフィールド２１００１２は、上記４テーブルがそれぞれ有するレコード数を保持する。
【００７４】
図１７は、ＨＷ故障情報管理テーブル２１００２０の例を示す図である。ＨＷ故障情報管理テーブル２１００２０は、横滑り防止装置２を構成するハードウェアがそれぞれ正常動作しているか否かを管理するテーブルであり、ＨＷ＿ＩＤフィールド２１００２１、名称フィールド２１００２２、ＨＷ動作状態値フィールド２１００２３、故障判定条件フィールド２１００２４、上限閾値フィールド２１００２５、下限閾値フィールド２１００２６、ＨＷ故障検出回数フィールド２１００２７、故障確定判定閾値フィールド２１００２８、ＨＷ故障確定フラグフィールド２１００２９を有する。本テーブルの構成は、ＨＷ故障情報管理テーブル１０８０２０と同様である。
【００７５】
図１８は、機能故障レベル判定テーブル２１００３０の例を示す図である。機能故障レベル判定テーブル２１００３０は、横滑り防止装置２を構成するハードウェアのいずれが故障したかの組合せに基づき、横滑り防止装置２の機能故障レベルを定義するテーブルである。
【００７６】
機能故障レベル判定テーブル２１００３０は、Ｉｎｄｅｘフィールド２１００３１、機能故障レベルフィールド２１００３２、ＨＷ故障確定フラグ組合せフィールド２１００３３を有する。ＨＷ故障確定フラグ組合せフィールド２１００３３はさらに、第１ＨＷ＿ＩＤフィールド２１００３４、第２ＨＷ＿ＩＤフィールド２１００３５を有する。本テーブルの構成は、機能故障レベル判定テーブル１０８０４０と同様である。
【００７７】
図１９は、機能故障レベル管理テーブル２１００４０の例を示す図である。機能故障レベル管理テーブル２１００４０は、車両制御システム１０００が備える機能毎に、機能故障レベルを表す数値を管理するテーブルである。本実施形態２における車両制御システム１０００が備える機能は、ブレーキ支援装置１と横滑り防止装置２の２つであるので、本テーブルは２つのレコードを有する。
【００７８】
機能故障レベル管理テーブル２１００４０は、Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド２１００４１、名称フィールド２１００４２、機能故障レベルフィールド２１００４３を有する。本テーブルの構成は、機能故障レベル管理テーブル１０８０３０と同様である。
【００７９】
図２０は、組合せ機能故障レベル判定テーブル２１００５０の例を示す図である。組合せ機能故障レベル判定テーブル２１００５０は、車両制御システム１０００が備える機能のいずれが故障したかの組合せに基づき、車両制御システム１０００の機能故障レベルを定義するテーブルである。
【００８０】
組合せ機能故障レベル判定テーブル２１００５０は、Ｉｎｄｅｘフィールド２１００５１、機能故障レベルフィールド２１００５２、機能故障レベル組合せフィールド２１００５３を有する。機能故障レベル組合せフィールド２１００５３はさらに、第１Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド２１００５４、第２Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド２１００５５を有する。
【００８１】
Ｉｎｄｅｘフィールド２１００５１は、レコードを識別するための番号である。機能故障レベルフィールド２１００５２は、機能故障レベルの数値を保持する。機能故障レベル組合せフィールド２１００５３は、車両制御システム１０００が備える機能が故障している場合は「１」、故障していない場合は「０」を、機能毎に保持する。車両制御システム１０００は機能を２つ（ブレーキ支援装置１と横滑り防止装置２）備えるので、本フィールドはこれに対応する２つのサブフィールドを有する。第１Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド２１００５４は、ブレーキ支援装置１が故障しているか否かを示す値を保持する。第２Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド２１００５５は、横滑り防止装置２が故障しているか否かを示す値を保持する。
【００８２】
図２１は、組合せ機能故障レベル管理テーブル２１００６０の例を示す図である。組合せ機能故障レベル管理テーブル２１００６０は、車両制御システム１０００の機能故障レベルを保持する機能故障レベルフィールド２１００６１を有する。
【００８３】
図２２は、ＦＳ管理テーブル２１００７０の例を示す図である。ＦＳ管理テーブル２１００７０は、車両制御システム１０００の機能故障レベルに対応するフェールセーフ機能を記述した関数の格納先アドレスを保持するテーブルである。ＦＳ管理テーブル２１００７０は、機能故障レベルフィールド２１００７１、名称フィールド２１００７２、ＦＳ実行先テーブルアドレスフィールド２１００７３を有する。本テーブルの構成は、ＦＳ管理テーブル１０８０５０と同様である。
【００８４】
図２３は、送信データＣＡＮ  ＩＤテーブル２１００８０の例を示すである。送信データＣＡＮ  ＩＤテーブル２１００８０は、横滑り防止装置２がＣＡＮ４から受信したデータを格納するＣＡＮコントローラ２１２上のアドレスを保持するテーブルであり、ＣＡＮ＿ＩＤフィールド２１００８１、アドレスフィールド２１００８２を有する。
【００８５】
ＣＡＮ＿ＩＤフィールド２１００８１は、横滑り防止装置２がＣＡＮ４から受信するデータのＣＡＮ  ＩＤを保持する。アドレスフィールド２１００８２は、ＣＡＮ＿ＩＤフィールド２１００８１が指定するＣＡＮ  ＩＤを有する通信データを格納するアドレスを保持する。
【００８６】
図２４は、横滑り防止装置２が備える故障判定実行部２０４の動作フローを示す図である。以下、図２４の各ステップについて説明する。
（図２４：ステップＳ２０４０００）
故障判定実行部２０４は、後述の図２５で説明するＨＷ故障検出部２０５を呼び出す。ＨＷ故障検出部２０５は、横滑り防止装置２が備えるＨＷの故障を検出する。
【００８７】
（図２４：ステップＳ２０４００１）
故障判定実行部２０４は、後述の図２６で説明する機能故障判定部２０６を呼び出す。機能故障判定部２０６は、横滑り防止装置２単体の機能故障レベルを判定する。
【００８８】
（図２４：ステップＳ２０４００２）
故障判定実行部２０４は、後述の図３１で説明するＦＳ制御部２０７を呼び出す。ＦＳ制御部２０７は、車両制御システム１０００に機能故障が発生した場合、機能故障レベルに応じたＦＳを実行する。
【００８９】
図２５は、ＨＷ故障検出部２０５の動作フローを示す図である。ＨＷ故障検出部２０５の動作は、ＨＷ故障情報管理テーブル１０８０２０に代えてＨＷ故障情報管理テーブル２１００２０を用いる点を除き、図８で説明した動作と同様である。
【００９０】
図２６は、機能故障判定部２０６の動作フローを示す図である。本実施形態２では、車両制御システム１０００が備える機能毎に機能故障レベルを判定した後、故障している機能の組合せによって車両制御システム１０００全体としての機能故障レベルを判定するため、判定処理は２段階になっている。以下、図２６の各ステップについて説明する。
【００９１】
（図２６：ステップＳ２０６０００）
機能故障判定部２０６は、後述の図２７で説明する機能故障判定処理を呼び出す。本ステップは、横滑り防止装置２単体の機能故障レベルを判定する処理である。
【００９２】
（図２６：ステップＳ２０６００１）
機能故障判定部２０６は、後述の図２９で説明する組合せ機能故障レベル判定処理を呼び出す。本ステップは、車両制御システム１０００全体の機能故障レベルを判定する処理である。
【００９３】
図２７は、ステップＳ２０６０００における機能故障判定部２０６の動作フローを示す図である。本動作フローは、ＨＷ故障情報管理テーブル１０８０２０に代えてＨＷ故障情報管理テーブル２１００２０を用いる点を除き、図９で説明した動作と同様である。なおステップＳ２０６１０４では、後述の図２８で説明する機能故障レベル判定処理を呼び出す。
【００９４】
図２８は、機能故障判定部２０６がステップＳ２０６１０４で実施する機能故障レベル判定処理の動作フローを示す図である。本動作フローは、横滑り防止装置２が備えるハードウェアのうち故障しているものの組合せによって、横滑り防止装置２担体の機能故障レベルを判定する処理である。
【００９５】
図２８の動作フローは、テーブルサイズ管理テーブル１０８０１０、機能故障レベル管理テーブル１０８０３０、機能故障レベル判定テーブル１０８０４０に代えて、テーブルサイズ管理テーブル２１００１０、機能故障レベル管理テーブル２１００４０、機能故障レベル判定テーブル２１００３０を用いる点を除き、図１０で説明した動作と同様である。
【００９６】
図２９は、ステップＳ２０６００１における機能故障判定部２０６の動作フローを示す図である。以下、図２９の各ステップについて説明する。
（図２９：ステップＳ２０６３００）
機能故障判定部２０６は、機能故障レベル管理テーブル２１００４０内のレコードをカウントするための変数ｉに１を代入する。
【００９７】
（図２９：ステップＳ２０６３０１）
機能故障判定部２０６は、Ｆｕｎｃｔｉｏｎ＿ＩＤフィールド２１００４１が変数ｉと等しい機能故障レベル管理テーブル２１００４０内のレコードから、機能故障レベルフィールド２１００４３を取得する。
【００９８】
（図２９：ステップＳ２０６３０２）
機能故障判定部２０６は、変数ｉに１を加える。
【００９９】
（図２９：ステップＳ２０６３０３）
機能故障判定部２０６は、テーブルサイズ管理テーブル２１００１０から、名称フィールド２１００１１が「組合せ機能故障レベル判定テーブル＿Ｉｎｄｅｘ」であるレコードのＬｅｎｇｔｈフィールド２１００１２を取得する。変数ｉがＬｅｎｇｔｈフィールド２１００１２を超えていればステップＳ２０６３０４へ進み、超えていなければステップＳ２０６３０１に戻る。
【０１００】
（図２９：ステップＳ２０６３０４）
機能故障判定部２０６は、後述の図３０で説明する組合せ機能故障レベル判定処理を実施し、本処理を終了する。
【０１０１】
図３０は、ステップＳ２０６３０４における機能故障判定部２０６の動作フローを示す図である。本動作フローは、車両制御システム１０００内の故障しているＥＣＵの組合せに基づき、車両制御システム１０００全体としての機能故障レベルを判定するためのものである。
【０１０２】
図３０の動作フローは、テーブルサイズ管理テーブル１０８０１０、ＨＷ故障情報管理テーブル１０８０２０、機能故障レベル判定テーブル１０８０４０に代えて、テーブルサイズ管理テーブル２１００１０、機能故障レベル管理テーブル２１００４０、組合せ機能故障レベル判定テーブル２１００５０を用いる点を除き、図１０で説明した動作と同様である。
【０１０３】
図３１は、ＦＳ制御部２０７の動作フローを示す図である。本動作フローは、横滑り防止装置２が、ＦＳ管理テーブル２１０７０の記述にしたがって、車両制御システム１０００全体としての機能故障レベルに応じたフェールセーフ動作を実施するためのものである。以下、図３１の各ステップについて説明する。
【０１０４】
（図３１：ステップＳ２０７０００）
ＦＳ制御部２０７は、組合せ機能故障レベル情報管理テーブル２１００６０の機能故障レベルフィールド２１００６１を参照する
【０１０５】
（図３１：ステップＳ２０７００１）
ＦＳ制御部２０７は、ステップＳ２０７０００で取得した機能故障レベルフィールド２１００６１が０であるか否かを判定する。０であれば本処理を終了し、０でなければステップＳ２０７００２に進む。
【０１０６】
（図３１：ステップＳ２０７００２）
ＦＳ制御部２０７は、ステップＳ２０７０００で取得した機能故障レベルフィールド２１００６１が１であるか否かを判定する。１であればステップＳ２０７００３に進み、１でなければステップＳ２０７００４に進む。
【０１０７】
（図３１：ステップＳ２０７００３）
ＦＳ制御部２０７は、後述の図３２で説明する機能故障情報送信実行処理を開始する。
【０１０８】
（図３１：ステップＳ２０７００４）
ＦＳ制御部２０７は、ステップＳ２０７０００で取得した機能故障レベルフィールド２１００６１が２であるか否かを判定する。２であればステップＳ２０７００５に進み、２でなければステップＳ２０７００６に進む。
【０１０９】
（図３１：ステップＳ２０７００５）
ＦＳ制御部２０７は、後述の図３３で説明するフリーラン実行処理を開始する。
【０１１０】
（図３１：ステップＳ２０７００６）
ＦＳ制御部２０７は、ステップＳ２０７０００で取得した機能故障レベルフィールド２１００６１が３であるか否かを判定する。３であればステップＳ２０７００７に進み、３でなければ本処理を終了する。
【０１１１】
（図３１：ステップＳ２０７００７）
ＦＳ制御部２０７は、後述の図３４で説明するブレーキ補助実行処理を開始する。
【０１１２】
図３２は、ステップＳ２０７００３におけるＦＳ制御部２０７の動作フローを示す図である。以下、図３２の各ステップについて説明する。
（図３２：ステップＳ２０７１００）
ＦＳ制御部２０７は、後述の図３５で説明する送信処理部を呼び出す。
【０１１３】
図３３は、ステップＳ２０７００５におけるＦＳ制御部２０７の動作フローを示す図である。以下、図３３の各ステップについて説明する。
（図３３：ステップＳ２０７２００）
ＦＳ制御部２０７は、後述の図３５で説明する送信処理部を呼び出す。
【０１１４】
（図３３：ステップＳ２０７２０１）
ＦＳ制御部２０７は、横滑り防止装置用モータ２１６を停止させ、フリーランを実行する。
【０１１５】
図３４は、ステップＳ２０７００７におけるＦＳ制御部２０７の動作フローを示す図である。以下、図３４の各ステップについて説明する。
（図３４：ステップＳ２０７３００）
ＦＳ制御部２０７は、ブレーキ力を担う他の機能が故障したと判断し、横滑り防止装置２のブレーキ力を増加させる。
【０１１６】
図３５は、送信処理部２０８のＣＡＮ送信処理の動作フローを示す図である。以下、図３５の各ステップについて説明する。
（図３５：ステップＳ２０８０００）
送信処理部２０８は、引数として受け取ったＣＡＮ  ＩＤに基づいて送信するメールボックスを特定し、送信したいデータをＣＡＮコントローラ２１２のメールボックスに保存する。
【０１１７】
（図３５：ステップＳ２０８００１）
送信処理部２０８は、保存したメールボックスに対応する送信要求ビットを有効にする。ＣＡＮコントローラ２１２は、送信要求ビットが有効になっているメールボックス内のデータをＣＡＮ４へ送信する。
【０１１８】
図３６は、受信処理部２０９の動作フローを示す図である。横滑り防止装置２は、自身の機能故障レベルを自ら判定する場合もあるし、他のＥＣＵが横滑り防止装置２の機能故障レベルを判定して横滑り防止装置２に通知する場合もある。本動作フローでは、後者の例を説明する。なお、ブレーキ支援装置１の機能故障レベルを、本動作フローと同様の手順で受信することもできるが、説明は省略する。
【０１１９】
（図３６：ステップＳ２０９０００）
受信処理部２０９は、後述の図３７で説明する受信処理部２０９のＣＡＮ受信処理を呼び出し、ＣＡＮ４から受信したデータを取得する。
【０１２０】
（図３６：ステップＳ２０９００１）
受信処理部２０９は、受信データがあるか否かを判定する。受信データがある場合はステップＳ２０９００２へ進み、受信データがない場合は本動作フローを終了する。
【０１２１】
（図３６：ステップＳ２０９００２）
受信処理部２０９は、受信データしたデータが横滑り防止装置２の機能故障レベル情報であるか否かを判定する。受信データが機能故障レベル情報である場合はステップＳ２０９００３へ進み、機能故障レベル情報ではない場合は本動作フローを終了する。
【０１２２】
（図３６：ステップＳ２０９００３）
受信処理部２０９は、機能故障レベル管理テーブル２１００４０に、横滑り防止装置２の機能故障レベルとして、受信データを書き込む。
【０１２３】
図３７は、ステップＳ２０９０００における受信処理部２０９の動作フローを示す図である。本動作フローは、所定の周期（例えば１０ｍｓ）毎に呼び出される。以下、図３７の各ステップについて説明する。
【０１２４】
（図３７：ステップＳ２０９１００）
受信処理部２０９は、ＣＡＮ４からデータを受信したメールボックスを特定し、受信データをＣＡＮコントローラ２１２のメールボックスから読み出す。
【０１２５】
（図３７：ステップＳ２０９１０１）
受信処理部２０９は、ステップＳ２０９１００で読み出したデータをデータ記憶領域２１０のバッファに格納する。本ステップでデータを格納するバッファは、本動作フローを起動する際に引数として指定される。
【０１２６】
以上、横滑り防止装置２の動作について説明した。以下では、ブレーキ支援装置１の動作を説明する。
【０１２７】
図３８は、本実施形態２におけるＦＳ管理テーブル１０８０５０の例を示す図である。本テーブルの構成は、実施形態１と同様である。図３８に示すデータ例によれば、ブレーキ支援装置１は、自身に機能故障レベルが発生すると、その旨を記述した機能故障情報をＣＡＮ４に送信する処理を、フェールセーフとして実施する。
【０１２８】
図３９は、送信データＣＡＮ  ＩＤテーブル１０８０６０の例を示すである。送信データＣＡＮ  ＩＤテーブル１０８０６０は、ブレーキ支援装置１がＣＡＮ４から受信したデータを格納するＣＡＮコントローラ１１５上のアドレスを保持するテーブルであり、ＣＡＮ＿ＩＤフィールド１０８０６１、アドレスフィールド１０８０６２を有する。送信データＣＡＮ  ＩＤテーブル２１００８０と同様である。
【０１２９】
図４０は、ＦＳ制御部１０７の動作フローを示す図である。以下、図４０の各ステップについて説明する。
（図４０：ステップＳ１０７２００）
ＦＳ制御部１０７は、機能故障レベル管理テーブル１０８０３０の機能故障レベルフィールド１０８０３３を参照する。
【０１３０】
（図４０：ステップＳ１０７２０１）
ＦＳ制御部１０７は、ステップＳ１０７２００で取得した機能故障レベルフィールド１０８０３３が０であるか否かを判定する。０であれば本処理を終了し、０でなければステップＳ１０７２０２に進む。
【０１３１】
（図４０：ステップＳ１０７２０２）
ＦＳ制御部１０７は、ステップＳ１０７２００で取得した機能故障レベルフィールド１０８０３３が１であるかを判定する。１であればステップＳ１０７２０３に進み、１でなければ本処理を終了する。
【０１３２】
（図４０：ステップＳ１０７２０３）
ＦＳ制御部１０７は、後述の図４１で説明する機能故障情報送信処理を開始する。
【０１３３】
図４１は、ステップＳ１０７２０３におけるＦＳ制御部１０７の動作フローを示す図である。以下、図４１の各ステップについて説明する。
（図４１：ステップＳ１０７３００）
ＦＳ制御部１０７は、送信処理部１１３を呼び出す。
【０１３４】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係る横滑り防止装置２は、車両制御システム１０００を構成する機能（各ＥＣＵ）の機能故障レベルの組み合わせによって、車両制御システム１０００全体としての機能故障レベルを判定し、これに応じたフェールセーフ機能を実施することができる。車両制御システム１０００全体としての機能故障レベルを判定する基準は、故障している機能（各ＥＣＵ）の組合せであるため、実施形態１と同様に、車両制御システム１０００を構成するＥＣＵの種類や数が変更されたとしても、ＦＳ制御部２０７を修正する必要がなく、ＦＳ制御部２０７の故障判定ロジックを容易に再利用することができる。
【０１３５】
また、本実施形態２において、車両制御システム１０００に新しく機能（ＥＣＵ）を追加するときは、機能故障レベル管理テーブル２１００４０と組合せ機能故障レベル判定テーブル２１００５０のデータ項目を修正するだけで、機能追加に対応することができる。
【０１３６】
また、本実施形態２に係る横滑り防止装置２は、自身の機能故障レベルまたはブレーキ支援装置１の機能故障レベルをＣＡＮ４から受信し、これに基づき車両制御システム１０００全体としての機能故障レベルを判定して、フェールセーフを実施することができる。自信の機能故障レベルをＣＡＮ４から受信する場合は、横滑り防止装置２はＨＷ故障検出部２０５を備えていなくともよい。
【０１３７】
＜実施の形態３＞
以上の実施形態１〜２において、各ＥＣＵが備えるハードウェアが故障しているか否かを示すフラグ（ＨＷ故障確定フラグ１０８０２９など）を０から１に変更する過程のみを説明したが、１から０に変更することもできる。例えば、ＨＷ故障確定フラグ１０８０２９が１となった後に、故障が検出されない期間が所定時間継続した場合は、ＨＷ故障確定フラグ１０８０２９を０に変更（リセット）してもよい。
【０１３８】
実施形態２において、車両制御システム１０００を構成するＥＣＵとして、横滑り防止装置とブレーキ支援装置１のみを例示したが、その他のＥＣＵを設けることもできる。また、各実施形態において各ＥＣＵが実施するフェールセーフ機能は例示であり、その他のフェールセーフ機能を実施することもできる。
【符号の説明】
【０１３９】
１：ブレーキ支援装置、１０１：演算装置、１０２：メモリ、１０３：プログラム領域、１０４：故障判定実行部、１０５：ＨＷ故障検出部、１０６：機能故障判定部、１０７：ＦＳ制御部、１０８：データ記憶領域、１０８０１０：テーブルサイズ管理テーブル、１０８０２０：ＨＷ故障情報管理テーブル、１０８０３０：機能故障レベル管理テーブル、１０８０４０：機能故障レベル判定テーブル、１０８０５０：ＦＳ管理テーブル、１０８０６０：送信データＣＡＮ  ＩＤテーブル、１０９：入出力回路、１１０：レゾルバ、１１１：レゾルバ用診断装置、１１２：ブレーキ支援装置用モータ、１１３：送信処理部、１１４：受信処理部、１１５：ＣＡＮコントローラ、１１６：信号入出力回路、２：横滑り防止装置、２０１：演算装置、２０２：メモリ、２０３：プログラム領域、２０４：故障判定実行部、２０５：ＨＷ故障検出部、２０６：機能故障判定部、２０７：ＦＳ制御部、２０８：送信処理部、２０９：受信処理部、２１０：データ記憶領域、２１００１０：テーブルサイズ管理テーブル、２１００２０：ＨＷ故障情報管理テーブル、２１００３０：機能故障レベル判定テーブル、２１００４０：機能故障レベル管理テーブル、２１００５０：組合せ機能故障レベル判定テーブル、２１００６０：組合せ機能故障レベル管理テーブル、２１００７０：ＦＳ管理テーブル、２１００８０：送信データＣＡＮ  ＩＤテーブル、２１１：入出力回路、２１２：ＣＡＮコントローラ、２１３：信号入出力回路、２１４：加速度センサ、２１５：加速度センサ用診断装置、２１６：横滑り防止装置用モータ、４：ＣＡＮ、１０００：車両制御システム。
【図１】
0005518810.tif 000002
【図２】
0005518810.tif 000003
【図３】
0005518810.tif 000004
【図４】
0005518810.tif 000005
【図５】
0005518810.tif 000006
【図６】
0005518810.tif 000007
【図７】
0005518810.tif 000008
【図８】
0005518810.tif 000009
【図９】
0005518810.tif 000010
【図１０】
0005518810.tif 000011
【図１１】
0005518810.tif 000012
【図１２】
0005518810.tif 000013
【図１３】
0005518810.tif 000014
【図１４】
0005518810.tif 000015
【図１５】
0005518810.tif 000016
【図１６】
0005518810.tif 000017
【図１７】
0005518810.tif 000018
【図１８】
0005518810.tif 000019
【図１９】
0005518810.tif 000020
【図２０】
0005518810.tif 000021
【図２１】
0005518810.tif 000022
【図２２】
0005518810.tif 000023
【図２３】
0005518810.tif 000024
【図２４】
0005518810.tif 000025
【図２５】
0005518810.tif 000026
【図２６】
0005518810.tif 000027
【図２７】
0005518810.tif 000028
【図２８】
0005518810.tif 000029
【図２９】
0005518810.tif 000030
【図３０】
0005518810.tif 000031
【図３１】
0005518810.tif 000032
【図３２】
0005518810.tif 000033
【図３３】
0005518810.tif 000034
【図３４】
0005518810.tif 000035
【図３５】
0005518810.tif 000036
【図３６】
0005518810.tif 000037
【図３７】
0005518810.tif 000038
【図３８】
0005518810.tif 000039
【図３９】
0005518810.tif 000040
【図４０】
0005518810.tif 000041
【図４１】
0005518810.tif 000042