(57)【特許請求の範囲】
【請求項１】
多数の電子自動車コンポーネントを有する自動車用のフォールト・レジリエントの自動車制御システムであって、各電子自動車コンポーネントが該電子自動車コンポーネントの動作を制御するローカル・コントローラを有する、前記の自動車制御システムにおいて、
前記電子自動車コンポーネントに電気的に結合したマスタ制御ユニットであって、該ユニットが、前記電子自動車コンポーネント間のデータ・フローを管理し、かつ前記ローカル・コントローラの内の１つ以上が故障した場合に前記ローカル・コントローラの制御タスクを実行するコンピュータ・プロセッサを有する、前記のマスタ制御ユニットと、
前記マスタ制御ユニットに電気的に結合した二次制御ユニットであって、該ユニットが、前記マスタ制御ユニットが故障した場合に前記電子自動車コンポーネント間のデータ・フローを管理するコンピュータ・プロセッサを有する、前記の二次制御ユニットと、
から成るフォールト・レジリエント自動車制御システム。
【請求項２】
請求項１記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、前記マスタ制御ユニットの前記コンピュータ・プロセッサ上で実行するオープン・プラットフォームのマルチタスキング・オペレーティング・システムを有すること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項３】
請求項１記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、前記電子自動車コンポーネントの前記ローカル・コントローラの故障についてモニタすること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項４】
請求項１記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、メモリを有し、かつ該メモリ内に優先順位テーブルを保持し、該優先順位テーブルは、前記電子自動車コンポーネントの対応する各１つに優先順位等級を関連付け、前記マスタ制御ユニットは、前記優先順位テーブル内の前記電子自動車コンポーネントの前記優先順位等級にしたがう順序で１つ以上の故障したローカル・コントローラのタスクを取り扱うこと、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項５】
請求項１記載のフォールト・レジリエントの自動車制御システムにおいて、前記電子自動車コンポーネントは、さらに、ローカル・コントローラなしで構成した非インテリジェント・コンポーネントを含み、前記マスタ制御ユニットは、前記非インテリジェント・コンポーネントのためのデータ処理および制御機能を実行すること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項６】
請求項１記載のフォールト・レジリエントの自動車制御システムにおいて、前記二次制御ユニットは、前記二次制御ユニットの前記コンピュータ・プロセッサ上で実行するオープン・プラットフォームのマルチタスキング・オペレーティング・システムを有すること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項７】
請求項１記載のフォールト・レジリエント自動車制御システムであって、さらに、
一次バスおよびサポート・バスを有するデュアルバス・データ構造と、
前記電子自動車コンポーネントと、前記マスタ制御ユニットと前記二次制御ユニットとを相互接続する前記の一次バスと、
１つ以上の他のデバイスとインターフェースするための前記二次制御ユニットに接続した前記のサポート・バスと、
を含むこと、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項８】
請求項１記載のフォールト・レジリエント自動車制御システムにおいて、
前記マスタ制御ユニットは、前記電子自動車コンポーネントおよび前記二次制御ユニット間での一次バスを介するデータ・フローを管理し、
前記二次制御ユニットが前記一次バス上の前記電子自動車コンポーネントの内の１つの不許可の制御を得ようと試行する場合、前記マスタ制御ユニットは、前記一次バス上の前記二次制御ユニットから発される通信をディスエーブルするように構成したこと、
を特徴とするフォールト・レジリエント自動車制御システム。
【請求項９】
請求項１記載の自動車制御システムを含む自動車。
【請求項１０】
データ通信ネットワークにより相互接続した多数の電子自動車コンポーネントを有する自動車用のフォールト・レジリエントの自動車制御システムであって、各電子自動車コンポーネントが１つ以上のタスクを実行するよう構成したローカル・コントローラを有する、前記の自動車制御システムにおいて、
前記電子自動車コンポーネントの各々に常駐するスイッチング・ロジックであって、該スイッチング・ロジックが、（１）前記ローカル・コントローラが適切に機能しているときには前記電子自動車コンポーネントの前記ローカル・コントローラと、（２）前記ローカル・コントローラが適切に機能していないときに、前記ローカル・コントローラを迂回するデータ通信ネットワーク、の内の一方にデータをルーティングする、前記のスイッチング・ロジックと、
前記電子自動車コンポーネントに前記データ通信ネットワークを介して電気的に結合したマスタ制御ユニットであって、該ユニットが、前記ローカル・コントローラの前記タスクを実行するコンピュータ・プロセッサを有する、前記のマスタ制御ユニットと、
前記電子自動車コンポーネントの内の１つのもののローカル・コントローラが故障した場合に、前記スイッチング・ロジックが、前記マスタ制御ユニットに前記データ通信ネットワークを介してデータをルーティングして前記故障したローカル・コントローラをバイパスし、そして前記マスタ制御ユニットが前記故障したローカル・コントローラの前記タスクを実行すること、
から成るフォールト・レジリエント自動車制御システム。
【請求項１１】
請求項１０記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、前記コンピュータ・プロセッサ上で実行するオープン・プラットフォームのマルチタスキング・オペレーティング・システムを有すること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項１２】
請求項１０記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、前記電子自動車コンポーネント間のデータ通信を容易にすること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項１３】
請求項１０記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、ルーティング・テーブルを保持し、該ルーティング・テーブルを前記マスタ制御ユニットが用いて、１つの電子自動車コンポーネントが検出するデータを１つ以上の他の電子自動車コンポーネントにルーティングすること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項１４】
請求項１０記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、メモリを有し、かつ該メモリ内に優先順位テーブルを保持し、該優先順位テーブルは、前記電子自動車コンポーネントの対応する各１つに優先順位等級を関連付け、前記マスタ制御ユニットは、前記優先順位テーブル内の前記電子自動車コンポーネントの前記優先順位等級にしたがう順序で１つ以上の故障したローカル・コントローラのタスクを取り扱うこと、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項１５】
請求項１０記載のフォールト・レジリエント自動車制御システムを含む自動車。
【請求項１６】
データ通信ネットワークにより相互接続した多数の電子自動車コンポーネントを有する自動車用のフォールト・レジリエントの自動車制御システムであって、各電子自動車コンポーネントが１つ以上のタスクを実行するよう構成したローカル・コントローラを有する、前記の自動車制御システムにおいて、
前記電子自動車コンポーネントの各々に常駐するスイッチング・ロジックであって、該スイッチング・ロジックが、（１）前記ローカル・コントローラが適切に機能しているときには前記電子自動車コンポーネントの前記ローカル・コントローラと、（２）前記ローカル・コントローラが適切に機能していないときに、前記ローカル・コントローラを迂回するデータ通信ネットワーク、の内の一方にデータをルーティングする、前記のスイッチング・ロジックと、
前記電子自動車コンポーネントに前記データ通信ネットワークを介して電気的に結合したマスタ制御ユニットであって、該ユニットが、前記電子自動車コンポーネント間でのデータ・フローを管理し、かつ前記電子自動車コンポーネントの前記ローカル・コントローラの前記タスクを実行するコンピュータ・プロセッサを有する、前記のマスタ制御ユニットと、
前記マスタ制御ユニットに電気的に結合した二次制御ユニットであって、該ユニットが、前記電子自動車コンポーネント間のデータ・フローを管理するコンピュータ・プロセッサを有する、前記の二次制御ユニットと、
前記電子自動車コンポーネントの内の１つのもののローカル・コントローラが故障した場合に、前記スイッチング・ロジックが、前記マスタ制御ユニットに前記データ通信ネットワークを介してデータをルーティングし、そして前記マスタ制御ユニットが前記故障したローカル・コントローラの前記タスクを実行すること、
前記マスタ制御ユニットが故障した場合に、前記二次制御ユニットが前記電子自動車コンポーネント間の前記データ・フローを管理すること、
から成るフォールト・レジリエント自動車制御システム。
【請求項１７】
請求項１６記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、前記コンピュータ・プロセッサ上で実行するオープン・プラットフォームのマルチタスキング・オペレーティング・システムを有すること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項１８】
請求項１６記載のフォールト・レジリエントの自動車制御システムにおいて、前記マスタ制御ユニットは、メモリを有し、かつ該メモリ内に優先順位テーブルを保持し、該優先順位テーブルは、前記電子自動車コンポーネントの対応する各１つに優先順位等級を関連付け、前記マスタ制御ユニットは、前記優先順位テーブル内の前記電子自動車コンポーネントの前記優先順位等級にしたがう順序で１つ以上の故障したローカル・コントローラのタスクを取り扱うこと、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項１９】
請求項１６記載のフォールト・レジリエントの自動車制御システムにおいて、前記二次制御ユニットは、前記コンピュータ・プロセッサ上で実行するオープン・プラットフォームのマルチタスキング・オペレーティング・システムを有すること、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項２０】
請求項１６記載のフォールト・レジリエントの自動車制御システムにおいて、前記二次制御ユニットは、前記マスタ制御ユニットに対し前記データ通信ネットワークを介して結合し、さらにまた、前記データ通信ネットワークとは独立のサポート・バスを含み、該サポート・バスは、１つ以上の他のデバイスとインターフェースするための前記二次制御ユニットに接続したこと、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項２１】
請求項１６記載のフォールト・レジリエントの自動車制御システムにおいて、前記二次制御ユニットが前記データ通信ネットワーク上の前記電子自動車コンポーネントの内の１つの不許可の制御を得ようと試行する場合、前記マスタ制御ユニットは、前記データ通信ネットワーク上の前記二次制御ユニットから発される通信をディスエーブルするように構成したこと、を特徴とするフォールト・レジリエント自動車制御システム。
【請求項２２】
請求項１６記載のフォールト・レジリエント自動車制御システムを含む自動車。
【請求項２３】
電子自動車コンポーネントであって、データを発生するセンサと、該データを使用して電子自動車コンポーネントの動作を制御するコントローラと、前記センサと前記コントローラとにインターフェースして、（１）前記コントローラが適切に機能しているときには前記コントローラと、（２）前記コントローラが適切に機能していないときに、前記コントローラを迂回する外部データ・バスと、の内の一方に対し選択的にデータをルーティングするスイッチング・ロジックと、を有する電子自動車コンポーネント。
【請求項２４】
請求項２３記載の前記スイッチング・ロジックを含む電子自動車コンポーネント。
【請求項２５】
請求項２４記載の電子自動車コンポーネントを含む自動車。
【請求項２６】
自動車制御システムを動作させる方法であって、マスタ制御ユニットが、ローカル電子コントローラ間のデータ通信を管理し、
関連する自動車コンポーネントを制御するのに使用する複数のローカル電子コントローラを前記マスタ制御ユニットからモニタするステップと、
前記電子コントローラの内の１つが故障した場合には、前記関連する自動車コンポーネントを前記マスタ制御ユニットからリモートで制御するステップと、
前記マスタ制御ユニットを二次制御ユニットからモニタするステップと、
前記マスタ制御ユニットが故障した場合に、前記ローカル電子コントローラ間の前記データ通信を前記二次制御ユニットから管理するステップと、
から成る自動車制御システム動作方法。
【請求項２７】
請求項２６記載の方法のステップを実行するためのコンピュータ実行可能な命令を有するコンピュータ読み取り可能媒体。
【請求項２８】
請求項２６記載の方法のステップを実行するよう構成されたコンピュータ。
【発明の詳細な説明】
技術分野
本発明は、自動車のコンピュータ制御システムに関するものである。
発明の背景
最近の自動車は、通常、多数の独立した電子コンポーネントを装備している。例えば、最近のほとんどの自動車は、電子式エンジン制御システム、コンピュータ化アンチロック・ブレーキング・システム（ＡＢＳ）、車両セーフティ・システム、ライティング制御システム、気候制御サブシステム、およびサウンド・システムを有している。エンジン制御システムは、通常、燃料経済性を最大にしそして有害放出物を最小限にするため電子コントローラを用いている。アンチロック・ブレーキング・システムは、電子センサおよびマイクロプロセッサを使用することにより、スキッディングを防止しながら自動車を最適なレートで減速する。車両セーフティ・システムは、クラッシュの間にトリガされて１つ以上のエアバッグを展開させるクラッシュ応答コントローラを有している。
最近の自動車モデルの中には、ナビゲーション・システムを装備したものがあり、これは、グローバル・ポジショニング・システム（ＧＰＳ）受信機を用いて、衛星ネットワークから位置決め信号を受けるようになっている。ナビゲーション・システムは、地球表面上の車両を、経度、緯度、標高に関して位置付ける座標を計算する。セルラ通信システムもまた、ドライバあるいは搭乗者が電話コールをその車両から取引できるようにするため、自動車に導入されてきている。また、最新のモデルの自動車は、診断システムも備えるように構成されており、この診断システムは、自動車のエンジン、空気、ヒーティングのシステム並びにその他のコンポーネントの性能を解析する（OBDに対しては1996以降，OBD Iに対しては1993以降）。
これら種々の電子コンポーネントは有用であると判っているが、それらの全てが完全に分離していて互いに独立しているという欠点がある。一般に、これらサブシステムは、異なった製造業者が供給を行っている。これら本質的に異なるコンポーネントは、所有の専用のプロセッサあるいはＡＳＩＣ（アプリケーション・スペシフィック集積回路）を用いていることが多く、これらは、互いに異なったシステム・アーキテクチャを有し、そして互いに互換性のない所有のソフトウェアを実行している。これらコンポーネントは、互いの通信は限定されているかあるいは全くない。
これらコンポーネントを一体化させるある種の進歩がなされている。代表的には、種々の提案は、分散したコンポーネントの各々を、CAN（Controller Area Network）プロトコル・バスのようなデータ・バスに接続することを要求している。設計者等は、このバスを介する通信を容易にするため、種々の異なったマルチプレクシング・プロトコルおよびトークン・パス・プロトコルの理論を打ち立てている。これらプロトコルに関するこれ以上の情報については、読者は、自動車エンジニア協会（Society of Automotive Engineers（SAE））からの刊行物に見られる以下の論文を参照されたい。Inoue et al.,"Multiplex Systems for Automotive Integrated Control,"Multiplex Technology Applications in Vehicle Electrical Systems,SP-954,No.930002,copyright 1993;Azuma et al.,"Development of a Class C Multiplex Control IC."Multiplex Technology Applications in Vehicle Electrical Systems. SP-954,No.930003,copyright 1993;Mathony et al."Network Architecture for CAN,"Multiplex Technology Applications in Vehicle Electrical Systems,SP-954,No.930004,copyright 1993;Szydolowski,"A Gateway for CAN Specification 2.0 Non-Passive Devices,"Multiplex Technology Applications in Vehicle Electrical Systems,SP-954,No.930005,copyright 1993;Neumann et al.,"Open Systems and Interface for Distributed Electronics in Cars（OSEK）,"Automotive Multiplexing Technology,SP-1070,No.950291,copyright 1995;and Emaus,"Aspects and Issues of Multiple Vehicle Networks,"Automotive Multiplexing Technology,SP-1070,No.950293,copyright 1995.
これらは、分散したシステム内の電子コンポーネントを通信リンクを介して相互接続することにおけるある程度の進展となっているが、主たるシステム・バスおよびバス・インターフェースに関する一般的に受け入れられた標準がない。加えて、分散アーキテクチャにおいてでも、電子コンポーネントは、復元不可能な故障に対し個々に弱さがある。１つのコンポーネントが故障したコントローラのような電子的故障を受けると、このコンポーネントは、完全に使い物にならなくなるか、もしくは安全を保つ程度にまで減じるか、さもなければ、最適以下の状態で実行するユニットになってしまう。
本発明者は、これらの問題を解決するフォールト・レジリエントのシステム（fault-resilient system）を開発した。
発明の摘要
本発明は、多様で別個の自動車コンポーネントを一体化させそしてコンポーネント故障に耐えるフォールト・レジリエントの自動車制御システムに関係している。
本発明の１形態によれば、フォールト・レジリエントの自動車制御システムは、電子自動車コンポーネントに対しデータ通信バスを介して電気的に結合したマスタ制御ユニット（ＭＣＵ）を含む。マスタ制御ユニットは、電子自動車コンポーネント間でのデータ通信バスを介するデータ・フローを管理するようプログラムしたコンピュータ・プロセッサを有する。ＭＣＵは、バス通信の初期化を定めそれを同期化する。
本発明の１形態によれば、ＭＣＵは、ルーティング・テーブルを保持して、コンポーネント間の資源および情報の共有を容易にする。ルーティング・テーブルは、初期化の間に構築して、１つの電子コンポーネントで取得したデータをいかにして１つ以上のコンポーネントにルーティングするかを定める。動作中は、ＭＣＵは、ソースの電子コンポーネントからからデータを収集し、そしてこのデータを、ルーティング・テーブルにしたがって宛先の電子コンポーネントにルーティングする。このデータ共有の１つの例として、自動車が減速しているときにアンチロック・ブレーキング・システムが収集したデータは、自動トランスミッション・システムにルーティングしてダウンシフトすべきかどうか判定する際に使用することができる。
本発明の別の形態によれば、ＭＣＵのコンピュータ・プロセッサは、電子コンポーネントにおけるローカル・コントローラが実行するのと同じ機能を実行するようプログラムする。初期化の間、ローカル・コントローラ全てに対するドライバ・ソフトウェアをＭＣＵにダウンロードしそれに記憶させる。ローカル・コントローラが故障した場合には、マスタ制御ユニットは、その故障したコントローラに対するドライバ・ソフトウェアを実行して、この故障ローカル・コントローラに代わって電子自動車コンポーネントをリモートに制御する。
スイッチング・ロジックは、電子コンポーネントの各々において設ける。スイッチング・ロジックは、ローカル・コントローラが適切に機能しているとみなすときはローカル・コントローラへ、そしてそのコントローラが適切に機能していないときは、データ通信バスを介してコントローラを迂回してＭＣＵへ、選択的にデータをルーティングする。
本発明のさらに別の形態によれば、フォールト・レジリエントの自動車制御システムは、マスタ制御ユニットに対しデータ通信ネットワークを介して電気的に結合した二次制御ユニット（ＳＣＵ）を有する。二次制御ユニットは、エンタテイメント・システムまたはセルラ通信システムのような多くのユーザ・ベースのコンポーネントをサポートするコンピュータ・プロセッサを有する。このＳＣＵコンピュータ・プロセッサもまた、電子自動車コンポーネント間のデータ・フローを管理するＭＣＵのデータ通信のバックアップ・コピーでプログラムする。通常動作中、ＳＣＵは、データ通信バス上のＭＣＵの支配下にありかつこれによる制御を受ける。しかし、マスタ制御ユニットが故障した場合、二次制御ユニットは、データ通信バスの制御を引き受け、そして電子自動車コンポーネント間のデータ・フローを管理する。
したがって、フォールト・レジリエントの自動車制御システムは、コンポーネント全てに対しまたＭＣＵ自体に対しフォールト・トレランスを提供する。
本発明の別の形態によれば、マスタ制御ユニットおよび二次制御ユニットは、汎用コンピュータであって、オープン・プラットフォームのマルチタスキング・オペレーティング・システムを走らせるものである。オープン・アーキテクチャは、新たな自動車コンポーネントの追加あるいは古いコンポーネントの再構成に対して、とても大きなフレキシビリティを提供する。
【図面の簡単な説明】
図面全体を通して、同じコンポーネントおよび特徴を参照するのに同じ参照番号を使用する。
図１は、本発明の１つの例示的形態による自動車内に実装したフォールト・レジリエント自動車制御システムの概略図である。
図２は、自動車制御システム内に用いるマスタ制御ユニットのブロック図である。
図３は、自動車制御システム内に用いる例示的な電子コンポーネントのブロック図である。
図４は、自動車制御システム内に用いる二次制御ユニットのブロック図である。
図５は、自動車制御システムの初期化および実行を示す状態図である。
図６は、自動車制御システムのブロック図であって、通常動作の間のマスタ制御ユニットと、二次制御ユニットと、多数の電子コンポーネントとの間のマスタ／スレーブ関係を示す図。
図７は、図６と同様のブロック図であって、１つの電子コンポーネントの故障を示す図。
図８は、図６と同様のブロック図であって、マスタ制御ユニットの故障を示す図。
好ましい実施形態の詳細な説明
図１は、自動車制御システム２０を示しており、これは、本発明の１つの例示的実現例にしたがって自動車２２内に構成したものである。自動車制御システム２０は、マスタ制御ユニット（ＭＣＵ）２４と、二次制御ユニット（ＳＣＵ）２６とを有している。一次データ通信バス２８と二次サポート・バス３０とから成るデュアルバス構造は、制御システム２０内のデータ通信のためのインフラストラクチャを提供する。一次バス２８は、自動車製造業者により現在用いらておりあるいは考慮されている任意の車両バス設計、例えばCAN，ABUS，VAN，J1850，K-BUS，P-BUS，I-BUS，USB，P1394等を使って実現することができる。サポート・バス３０は、任意の標準のコンピュータ・データ・バス、例えばPCI，USB，P1394等として実現することができる。
マスタ制御ユニット２４と二次制御ユニット２６とは、一次車両バス２８を通して相互接続している。加えて、種々の電子式の自動車コンポーネントは、一次バス２８を介してマスタ制御ユニット２４に接続している。この例においては、電子コンポーネントは、アンチロック・ブレーキング・システム（ＡＢＳ）３２、電子ステアリング・システム３４、およびエンジン制御システム３６を含んでいる。しかし、その他のコンポーネントも、同様に一次車両バス２８に接続することができ、例えば、セキュリティ／アラーム・システム、診断システム、ライティング制御システム、燃料噴射システム、自動トランスミッション・システム等がある。加えて、図１に示した電子コンポーネントは、これらの各々がそれ自身のローカル・コントローラ（通常、マイクロプロセッサとして具体化）を有するという点で、インテリジェント・コンポーネントである。この自動車は、さらに、非インテリジェントのコンポーネントも含むことができ、それらは、図６−図８を参照して後述するローカル処理能力を有していない。
図１は、サポート・バス３０に接続した多数のデバイスを示している。これらデバイスは、気候制御システム３８、オーディオ・システム４０、グローバル・ポジショニング・システム（ＧＰＳ）アンテナ４４を備えたナビゲーション・システム４２、そしてセルラ通信システム４６を含んでいる。ドア・ロック／ウィンドウ・コントロール４８もまた、サポート・バス３０に接続している。また、ＳＣＵ２６は、多数のクライアント５０に対するサーバとして構成している。これらクライアント５０は、例えば、マルチメディア・エンタテイメントを提供する可視ディスプレイ・スクリーンおよびオーディオ・サウンド・カードを有する、小さなハンドヘルドまたはラップトップのゲーム・コンピュータとすることができる。ＳＣＵ２６は、乗員の楽しみのため、クライアント５０に対するムービーおよびゲームの形態の車中娯楽を供する。
一般的には、自動車制御システム２０の通常の動作の間は、マスタ制御ユニット２４は、一次車両バス２８のマスタである。全ての電子コンポーネント並びに二次制御ユニット２６は、マスタ制御ユニット２４に対するスレーブである。マスタ制御ユニット２４は、電子コンポーネント３２−３６間のデータ・フローを管理し、そして資源および情報の共有を容易にする。加えて、マスタ制御ユニット２４は、インテリジェント・電子コンポーネントに対し、これらのいずれかが故障した場合のバックアップを提供し、そしてまた、非インテリジェント電子コンポーネントのデータ処理および制御の機能を実行する。
図２は、マスタ制御ユニット２４をより詳細に示している。これは、コンピュータ・プロセッサ６０，揮発性メモリ６２（例えば、ＲＡＭ），不揮発性メモリ６４（例えば、ＲＯＭ、フラッシュ）を有している。マスタ制御ユニット２４はまた、バス・インターフェース６６も有していて、一次バス２８に対するアクセスを提供する。マスタ制御ユニット２４は、オープン・プラットフォームのオペレーティング・システム６８を走らせ、これは、不揮発性メモリ６４に記憶したものとして示している。ランタイムの間は、オペレーティング・システム６８は、揮発性メモリ６２にロードされて、プロセッサ６０上で実行される。オープン・プラットフォーム・オペレーティング・システム６８は、好ましくは、リアルタイムで、マルチタスキングのオペレーティング・システムであって、“プラグ・アンド・プレイ”システム・コンフィギュレーションをサポートし、また高い安定性、セキュリティ、および効率を提供する能力をもつものである。１つの好ましいオペレーティング・システムは、マイクロソフト社から販売されているWindows（登録商標）ブランドのオペレーティング・システム、例えば、Windows CE（登録商標），Windows NT（登録商標）のオペレーティング・システムである。
オペレーティング・システム６８は、ネットワーク管理能力を有していて、これにより、マスタ制御ユニット２４は、電子コンポーネント３２−３６および二次制御ユニット２６間での一次バス２８を介してのデータ・フローを管理できるようになる。マスタ制御ユニット２４は、ネットワーク通信／登録サブシステムを初期化し、そしてコンポーネント・コンフィギュレーションを取り扱う。動作中、マスタ制御ユニット２４は、好ましくは、データ・フローを、決定論的方法で制御し、電子コンポーネントから予め定めたデータのみを受け入れる。これは、マスタ制御ユニットが、一次車両バス２８上に接続した個々の電子コンポーネントを、予測されないあるいは不許可のコマンドから保護する点で有利である。加えて、そのネットワーキング能力により、マスタ制御ユニット２４は、一次バス２８に対する電子コンポーネントの削除または追加をモニタできるようになる。
ＭＣＵ２４は、一次バス２８に接続した電子コンポーネント全てに対するドライバ・ソフトウェア（全体を番号７０で参照）を含んでいる。電子コンポーネントは、ＭＣＵ２４に対し、初期化の間にあるいはこれらがそのバスに追加されるときに、登録する。これらコンポーネントのソフトウェア・コード７０は、ＭＣＵメモリ内にダイナミック・リンク・ライブラリ（ＤＬＬ）形態で既に存在させておくことができ、そしてこのライブラリは、コンポーネントを登録する際にＭＣＵシステムにリンクすることができる。１つ以上のコンポーネントのソフトウェア・コードがＤＬＬ内に存在しない場合、この登録（registration）の一部には、そのコンポーネントを走らせるのに使用するソフトウェア・コードを一次バス２８を介してマスタ制御ユニット２４にダウンロードすることが含まれる。図２は、不揮発性メモリ６４内に記憶されたインテリジェント電子コンポーネント（すなわち、ローカル・コントローラを備えたコンポーネント）のローカル・コントローラLC(1),LC(2),...LC(N)のためのドライバ・ソフトウェア７０を示している。図２はまた、不揮発性メモリ６４内に記憶した、全体を番号７２で参照する非インテリジェント・コンポーネントNIC(1),NIC(2),...,NIC(M)（すなわち、ローカル・コントローラを備えていないコンポーネント）のための実行可能なコードを示している。
インテリジェント・コンポーネントのローカル・コントローラが故障した場合、ＭＣＵ２４は、そのコンポーネントの制御を引き受け、そしてその故障したコンポーネントに対し、最も高い実行優先順位を割り当てて、中断のない実行を確保する。例えば、ＡＢＳ内のプロセッサが故障した場合、ＭＣＵ２４は、そのローカル・コントローラ・ドライバ、例えばドライバLC(1)を走らせて、アンチロック・ブレーキング・システムに対するその故障したプロセッサの機能を実行する。その故障コンポーネントには、スイッチング・ロジックを設けて、制御をＭＣＵに移す。いったんＭＣＵ２４があるコンポーネントの制御を引き受けると、ＭＣＵ２４は、そのデータ・フロー管理機能を資源利用可能ベース（resource available basis）で実行する。
オペレーティング・システム６８は、リアルタイムで、決定論的なオペレーティング・システムであって、多数のクリティカルなコンポーネントを同時にサポートできる処理パワーを有するものである。多数のコンポーネントが故障する場合には、ＭＣＵ２４は、優先順位テーブル７４を用い、このテーブルは、故障したデバイスを実行するための順序付けたランキングを指定している。優先順位テーブル７４は、初期化中、コンポーネントをＭＣＵ２４に登録する際に構築する。登録の間、ＭＣＵ２４は、優先順位等級を電子自動車コンポーネントに割り当て、そして不揮発性メモリ６４内のテーブルにこの関連を記憶させる。優先順位等級は、テーブルのデータ構造を通して、ドライバ・ソフトウェア７０および実行可能コード７２に対する識別子と関連付ける。優先順位は、自動車製造業者が、ＭＣＵ２４にどのコンポーネントを登録するかに基づいて予め定める。ここで、優先順位テーブル７４は、代替的には、各始動サイクルでのスクラッチから再構築し、そして揮発性メモリ６２内に保持するようにすることもできる。
優先順位テーブル７４は、いったん構築すると、２以上のコンポーネントが故障する場合における動作の優先順位を確立する。優先順位テーブル７４は、処理資源を、最も高い優先順位等級のコンポーネントに対し最初に、そして次に低い優先順位等級のコンポーネントへと、不釣り合いな形式で割り当てる。例えば、アンチロック・ブレーキング・システムに対するドライバ・ソフトウェアには、最も高い優先順位等級を割り当てて、それが故障した場合には、たとえ他のコンポーネント（例えば、セキュリティ・システム）もその時に故障した場合でも、ブレーキング・システムを取り扱うのに十分な資源をＭＣＵ２４が有するよう確保する。１実現例においては、コンポーネントには、利用可能な最も高い優先順位が与えられることを意味する“クリティカル”等級、クリティカル・コンポーネントが同時に故障した場合にそれより低い等級を与えることができることを意味する“通常”等級、または、それより高い優先順位の全てのコンポーネントを取り扱った後にのみＭＣＵ資源を受けることになることを意味する“最低”等級を割り当てる。
また、ＭＣＵ２４は、揮発性メモリ６２内にルーティング・テーブル７６を保持する。ルーティング・テーブル７６は、初期化の間に構築して、どのデータを活性の電子コンポーネント間でパスし共有するかを定める。例えば、このテーブルがデータ構造を定めることができ、このデータ構造は、ある一定のデータの生成元の電子コンポーネントの識別子を含むソース・フィールドと、その一定のデータをＭＣＵ２４がルーティングすべき先の１以上のコンポーネントのリストを含む宛先フィールドと、を有する。例えば、車輪速度に関するＡＢＳ３２（すなわち、ソース・コンポーネント）が収集したデータは、自動トランスミッション制御システムと燃料噴射制御システム（すなわち、宛先コンポーネント）にルーティングすることができる。これらソース・フィールドおよび宛先フィールドは、テーブル７６内で相関させる。動作中、ＭＣＵ２４は、ソース・フィールドにおいて識別された電子コンポーネント（例えば、ＡＢＳ）からデータを収集し、テーブル７６をインデックスして対応する宛先フィールドを見つけ、そしてそのデータを対応する宛先フィールド内にリストされた電子コンポーネント（例えば、自動トランスミッション制御システムまたは燃料噴射システム）にルーティングする。このルーティング・テーブルにより、ＭＣＵ２４は、コンポーネント間のデータの共有を容易にすることができる。
図３は、インテリジェント電子自動車コンポーネントの例示的構成を示しており、全体を番号８０で参照している。この自動車コンポーネント８０は、一般に、機械デバイス８２（例えば、ブレーキ、エンジン、トランスミッション等）から成っていて、これは電子制御式アクチュエータ８４を通して制御する。ローカル・コントローラ８６は、ドライバ８８を通して結合して、電子的コマンド信号を送り、これが、そのアクチュエータをしたがって機械装置８２を制御する。このローカル・コントローラ８６は、マイクロプロセッサ、デジタル信号プロセッサ、専用ＡＳＩＣ（アプリケーション・スペシフイック集積回路）等として実装できる。センサ９０は、機械装置８２をモニタし、そして動作を表すデータを発生して、ローカル・コントローラ８６にフィードバック情報を供給する。ローカル・コントローラ８６はまた、一次車両バス２８に対するインターフェースも有している。この電子自動車コンポーネントの構成は、通例のものであって当該分野においては知られている。
本発明の１つの形態は、既存の電子自動車コンポーネント８０を変更してこれがスイッチング・ロジック９２を含むようにすることである。図３の例示においては、ローカル・コントローラ８６とドライバ８８およびセンサ９０との間をインターフェースしている。スイッチング・ロジック９２はまた、一次バス２８に対するそれ自身の接続も有しており、これは、ローカル・コントローラ８６をバイパスする。スイッチング・ロジック９２は、センサ９０から受けたデータを、選択的に、ローカル・コントローラ８６かあるいは一次バス２８に直接にルーティングする。スイッチング・ロジック９２は、コントローラが適切に機能しているときには、そのデータをローカル・コントローラ８６に向ける。しかし、コントローラが適切に機能していない場合には、スイッチング・ロジック９２は、データ・フローをバス２８にルーティングして、その故障したローカル・コントローラ８６を迂回し、これにより、ＭＣＵ２４が一次バス２８を介してそのコンポーネントを制御できるようにする。
図４は、二次制御ユニット２６をより詳細に示している。二次制御ユニット２６は、好ましくは、多数のアプリケーションをサポートする能力をもつ汎用コンピュータである。このＳＣＵ２６は、プロセッサ１００（例えば、日立のＳＨ３、またはインテルのPentium（登録商標）マイクロプロセッサ）、揮発性メモリ１０２（例えば、ＲＡＭ）、不揮発性メモリ１０４（例えば、ＲＯＭ、フラッシュ、ハードディスク等）を有している。ＳＣＵ２６は、一次車両バス２８に対するアクセスを提供する一次バス・インターフェース１０６と、サポート・バス３０に対するアクセスを提供するサポート・バス・インターフェース１０８を有している。
ＳＣＵ２６は、多数のアプリケーションをサポートするオープン・プラットフォーム・オペレーティング・システム１１０を走らせる。オープン・プラットフォーム・オペレーティング・システムとオープン・コンピュータ・システム・アーキテクチャを使用すれば、各種のソフトウェア・アプリケーションおよびハードウェア周辺装置を、ＳＣＵ２６によりサポート・バス３０上でサポートすることができる。これは、ソフトウェア・アプリケーションが特別に設計された埋込形システムに対し専用のものとする必要がなくなる点で有利である。オープン・ハードウェア・アーキテクチャは、好ましくは、グラフィカル・ユーザインターフェースを用いるマルチタスキング・オペレーティング・システムを走らせる。１つの好ましいオペレーティング・システムは、マイクロソフト社が販売しているWindows（登録商標）ブランドのオペレーティング・システム、例えばWindows 95(登録商標)，Windows NT（登録商標）あるいはWindows（登録商標）のその他の派生物である。マルチタスキング・オペレーティング・システムは、多数のアプリケーションの同時実行を可能にする。
ＳＣＵ２６はまた、ＣＤ ＲＯＭドライブ、ＰＣカード・ドライブ、またはフロッピー・ディスク・ドライブのような少なくとも１つの記憶ドライブも含み、これらは、携帯可能な記憶メディアの使用を可能にする。ＣＤ ＲＯＭドライブは、アプリケーションに関係したＣＤ並びに音楽、ビデオ、ゲームあるいはその他のタイプのエンタテイメントＣＤが可能とする。ＳＣＵ２６は、自動車のダッシュボードに搭載するように構成しまたサイズを決める。二次制御ユニット２６の１つの適当な構成の詳細な説明は、Richard D.Beckert,Mark M.Moeller,and William Wongの名で１９９５年１１月２９日に出願された“車両コンピュータ・システム”と題する米国特許出願08/564,586に記述されている。この出願は、マイクロソフト社に譲渡されており、ここにこの言及をもって含めるものとする。
二次制御ユニット２６は、車両バス２８上のマスタ制御ユニット２４に対してスレーブであるが、サポート・バス３０にダッシュボードあるいはその他の適当な位置で接続されたクライアント５０およびその他の電子コンポーネント３８−４８に対してはマスタである。ＳＣＵ２６は、ゲーム、音楽、ムービーまたはその他の形態のエンタテイメントを供する等のため、クライアント５０に対するサーバとして機能することができる。
ＳＣＵ２６は、ＭＣＵ２４が走らせる実行可能コード１１２のアップ・ツー・デートのコピーを保持して、各コンポーネント間のデータ・フローを管理する。ＭＣＵコード１１２は、初期化の間にＳＣＵ２６にダウンロードし、そして不揮発性メモリ８４に記憶させる。ＭＣＵ２４が故障した場合には、二次制御ユニット２６は、ＭＣＵコード１１２を実行して、車両バス２８上のデータ・フロー管理のマスタ責任を引き受ける。
図５は、自動車制御システムの状態図を示している。セットアップは、自動車への給電のターンオンによりトリガされる。状態１２０においては、マスタ制御ユニット２４は、初期化手順を走らせて、オペレーティング・システムをブートし、そしてインテリジェント・コンポーネントのためのドライバ・ソフトウェア７０全てと非インテリジェント・コンポーネントのための実行可能コード７２を、不揮発性メモリから揮発性メモリへロードする。これらソフトウェア・プログラムは、先の登録を通してＭＣＵ２４にとって予め知っているコンポーネントに対応している。状態１２２では、ＭＣＵ２４は、ダイナミック・コンフィギュレーション手順を走らせ、これは、一次車両バスに対し新たなコンポーネントが付加されたかあるいは古いコンポーネントが取り除かれたかどうかをチェックする。ＭＣＵ２４は、既存のコンポーネントをポールし、そして新たなコンポーネントに対する要求を送出する。依然として取り付けられていて機能しているコンポーネントは、ＭＣＵ２４に応答する。新たなコンポーネントも、ＭＣＵ２４に応答しそして続いて登録をする。もちろん、取り除かれたコンポーネントは、このポール信号には応答しない。
いったん、コンポーネントを識別し考慮に入れると、ＭＣＵ２４は、優先順位テーブル７４を構築し、そしてこれを不揮発性メモリ１０４に記憶させる。ＭＣＵ２４はまた、既存の活性のコンポーネントに基づいてルーティング・テーブル７６も構築する。
状態１２４では、ＭＣＵ２４は、そのコードのコピーを一次バス２８を介してＳＣＵ２６にダウンロードする。この初期化シーケンスに続いて、ＭＣＵは、その通常動作状態１２６に入る。ＭＣＵが故障する場合、制御は、ＳＣＵ２６にシフトして戻す（ＭＣＵ故障の矢印で示す）。ＭＣＵが後で回復すると、制御はＭＣＵ２４に戻す（レディの矢印で示す）。
また、状態１２６では、ＭＣＵ２４は、任意の電子コンポーネントの故障を継続してモニタする。ＭＣＵ２４は、コンポーネント故障を検出すると、ＭＣＵ２４は、ルーティング・テーブルおよび優先順位テーブルをダイナミックに再構成し、そして故障したコンポーネントの制御を引き受ける（これは状態１２２へ戻るコンポーネント故障の矢印で示す）。
図６−図８は、自動車制御システムが実装するフォールト・トレラント制御戦略を示している。図６は、制御システム２０を、一次バス２８に接続したＭＣＵ２４と、２つのインテリジェント電子コンポーネント８０（１），８０（２）と、２つの非インテリジェント・コンポーネント１３０（１），１３０（２）とを有するものとして示している。このシステムはさらに、一次バス２８とサポート・バス３０の両方に接続したＳＣＵ２６と、サポート・バス３０に接続した２つのクライアント５０およびオーディオ・システム４０を含む。
通常動作の間、マスタ制御ユニット２４は、一次バス２８と二次制御ユニット２６に対するマスタである。マスタ制御ユニット２４は、一次バス２８を介するデータ・フローを管理し、そして非インテリジェント・コンポーネント１３０（１），１３０（２）に対するデータ処理および制御機能を実行する。ＭＣＵ２４は、インテリジェント・コンポーネント８０（１），８０（２）を継続してモニタして、ローカル・コントローラ８６（１），８６（２）が適切に機能しているかどうか検出を行う。ＭＣＵ２４とＳＣＵ２６は、通常の環境においては互いに協力してあるいは独立して動作するが、ただし、ＳＣＵ２６は、ＭＣＵ２４について、その故障の徴候を規則的なインターバルでチェックする。
ＭＣＵ２４は、一次バス２８上での全てのデータ通信を制御するため、ＭＣＵ２４はまた、これがオープン・システムであるため、電子コンポーネント特にＳＣＵ２６が送るメッセージの継続したモニタを通して一次バス２８のセキュリティおよび保全性も維持する。万一ＳＣＵ２６が汚染（corrupt）されて一次バス２８上の任意の電子コンポーネントについての不許可の制御を得ようと試行する場合、ＭＣＵ２４は、ＳＣＵ２６からの通信を、この状態をコンフィギュレーション・テーブルおよびルーティング・テーブルにおいてアラートすることにより、ディスエーブルする。このアクションは、ＳＣＵ２６を左遷して、メッセージを受けるだけで一次バス２８を介してメッセージを送信できない受動デバイスにする。次に、ＭＣＵ２４は、図５に記述したプロセス状態１２２，１２４を通って、代理の二次制御ユニットとして指名する別の候補を選択するよう試行する。
図７は、ローカル・コントローラ８６（１）が故障する場合を示している。ローカル・コントローラ８６（１）が故障した場合、スイッチング・ロジック９２（１）は、データ・フローをローカル・コントローラ８６（１）から直接一次バス２８へそらす。マスタ制御ユニット２４は、ＭＣＵ２４に記憶したコンポーネント・ドライバ８６（１）’を使って、コンポーネント８０（１）の制御を引き受ける。ＭＣＵ２４は、最も高い実行優先順位を割り当てて、この故障したコンポーネントの中断のない実行を確保する。例えば、ＡＢＳ内のマイクロプロセッサが故障すると、ＭＣＵ２４は、このＡＢＳマイクロプロセッサの機能を引き受け、そしてＡＢＳコンポーネントに対し中断のないサービスを提供する。ＭＣＵ２４は、資源利用可能ベースで各コンポーネント間のデータ・フローの管理を続行する。
図８は、ＭＣＵ２４が故障した場合を示している。ＳＣＵ２６は、ＭＣＵ２４が故障したときを、継続的なモニタにより、あるいは代替的には、ＭＣＵ２４がその故障の直前に発生するマスク不可能な割込みを通して検出する。ＭＣＵが故障すると、ＳＣＵ２６は、ＭＣＵ２４の基本的なデータ・フロー管理および制御機能、並びに非インテリジェント・コンポーネント１３０（１），１３０（２）に対する処理機能を引き受ける。ＳＣＵ２６は、ＭＣＵコード２６’のローカル・コピーを走らせて、一次バス２８およびこれに接続されたコンポーネント８０（１），８０（２），１３０（１），１３０（２）の代理マスタとなる。しかし、この実現例においては、ＳＣＵ２６は、車両バス上のコンポーネントのどの故障したローカル・コントローラの機能をも引き受けない。一次バス２８上のコンポーネントに対する中断なきサービスを確保するには、ＳＣＵ２６は、故障したＭＣＵ２４の基本データ・フロー管理および制御機能の実行に最も高い優先順位を割り当て、そしてその他の全ての機能は、資源利用可能ベースで実行する。
フォールト・レジリエントのこの自動車制御システムは、多くの利点を提供する。これは、電子コンポーネントを一体化させ、そしてそれらの間のデータ共有および通信を容易にする。また、このシステムは、コンポーネントのいずれもまたマスタ制御ユニットが一時にサービスの喪失なしで故障することができる点で、シングル・ポイントのフォールト・トレラントを提供する。本システムは、システム・コンポーネントを車両にインストールするときに、とても大きなフレキシビリティを与える。各々のコンポーネントまたはバスは、十分なシステム機能を提供するアップグレード特徴としてインストールすることができる。新たなコンポーネントをインストールするとき、このコンポーネントのためのドライバは、単にＭＣＵにロードすることにより、故障時のバックアップを可能にする。
以上、本発明について、構造および方法の特徴に関して多少なりとも具体的に記述した。しかし、理解されるべきであるが、本発明は、記述したこの特定の特徴に限定されるものではなく、それは、ここに開示した手段は、本発明を実施に移すときの例示的形態を構成しているからである。したがって、本発明について、均等論およびその他の適用可能な訴訟原理にしたがって適切に解釈される添付の請求の範囲の適切な範囲内のその形態または変更のいずれにおいても、その保護を請求する。
【図１】
0004091126.tif 000002
【図２】
0004091126.tif 000003
【図４】
0004091126.tif 000004
【図３】
0004091126.tif 000005
【図５】
0004091126.tif 000006
【図６】
0004091126.tif 000007
【図７】
0004091126.tif 000008
【図８】
0004091126.tif 000009