(57)【要約】【課題】安全な車両システムを効率的に開発することを目的とする。【解決手段】一実施形態に係る基盤プログラムは、車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視するためのコンピュータに車両監視方法を実行させる。車両監視方法は、制御系及びセンサの少なくとも一方から所定の入力データを受け付ける受付ステップと、基盤プログラムとは独立した外部プログラムに、制御系が正常であるか否かを判定させるために、入力データに基づく値を入力変数として該外部プログラムを呼び出す呼出ステップと、呼出ステップに応じて外部プログラムから返された判定結果が制御系の異常を示す場合に、制御系及びアクチュエータの少なくとも一方に所定の制御データを出力する出力ステップとを含む。【選択図】図１
2017182547.tif 000002
【特許請求の範囲】
【請求項１】
車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視するためのコンピュータに車両監視方法を実行させる基盤プログラムであって、
前記車両監視方法が、
前記制御系及び前記センサの少なくとも一方から所定の入力データを受け付ける受付ステップと、
前記基盤プログラムとは独立した外部プログラムに、前記制御系が正常であるか否かを判定させるために、前記入力データに基づく値を入力変数として該外部プログラムを呼び出す呼出ステップと、
前記呼出ステップに応じて前記外部プログラムから返された判定結果が前記制御系の異常を示す場合に、前記制御系及び前記アクチュエータの少なくとも一方に所定の制御データを出力する出力ステップと
を含む、
基盤プログラム。
【請求項２】
前記コンピュータが前記制御系から独立している、
請求項１に記載の基盤プログラム。
【請求項３】
前記車両監視方法が、前記車両の他のアクチュエータを制御する他の制御系の動作を監視する他のコンピュータに前記入力データを渡す多重化ステップをさらに含み、
前記他のコンピュータが、前記多重化ステップにおいて渡された前記入力データを保存する、
請求項１又は２に記載の基盤プログラム。
【請求項４】
車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視する車両監視システムであって、
前記制御系及び前記センサの少なくとも一方から所定の入力データを受け付ける受付部と、
前記制御系が正常であるか否かを前記入力データに基づいて判定する判定部と、
前記制御系が異常であると前記判定部により判定された場合に、前記制御系及び前記アクチュエータの少なくとも一方に所定の制御データを出力する出力部と
を備え、
前記判定部が、基盤プログラムと、該基盤プログラムとは独立した外部プログラムがコンピュータ上で実行されることで実現するものであり、
前記基盤プログラムが前記入力データに基づく値を入力変数として前記外部プログラムを呼び出すことで、前記判定が実行される、
車両監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、車両の機能の安全を図るために用いられる基盤プログラム及び車両監視システムに関する。
【背景技術】
【０００２】
従来から、車両の機能の安全を図るための様々な仕組みが知られている。例えば下記特許文献１には、既存のソフトウェアを再利用しつつ新たな機能安全要求にも対応可能な車両制御装置が知られている。この車両制御装置は、入力に対して、機能安全規格に対応した出力を行う第１制御手段と、第１制御手段のソフトウェアを管理し、機能安全規格に対応した第１プラットホームと、入力に対して、機能安全規格に非対応の出力を行う第２制御手段と、第２制御手段のソフトウェアを管理し、機能安全規格に非対応の第２プラットホームと、第１制御手段の出力と第２制御手段の出力とを比較結合して制御対象に出力する比較結合手段とを備える。第１プラットホームと第２プラットホームとは、少なくとも、第１プラットホームによる第１制御手段のソフトウェアの管理と第２プラットホームによる第２制御手段のソフトウェアの管理とに関して独立するものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５５４９６６５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
車両に搭載される機能は年々高度になってきており、それを実現するための車載システムの開発規模は大幅に増大している。また、安全性又はセキュリティに関する新たな基準への対応が求められることも多い。これらのような背景から、安全な車両システムを効率的に開発することが望まれており、その要求に応えるためのフレームワークが求められている。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る基盤プログラムは、車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視するためのコンピュータに車両監視方法を実行させる基盤プログラムであって、車両監視方法が、制御系及びセンサの少なくとも一方から所定の入力データを受け付ける受付ステップと、基盤プログラムとは独立した外部プログラムに、制御系が正常であるか否かを判定させるために、入力データに基づく値を入力変数として該外部プログラムを呼び出す呼出ステップと、呼出ステップに応じて外部プログラムから返された判定結果が制御系の異常を示す場合に、制御系及びアクチュエータの少なくとも一方に所定の制御データを出力する出力ステップとを含む。
【０００６】
本発明の一側面に係る車両監視システムは、車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視する車両監視システムであって、制御系及びセンサの少なくとも一方から所定の入力データを受け付ける受付部と、制御系が正常であるか否かを入力データに基づいて判定する判定部と、制御系が異常であると判定部により判定された場合に、制御系及びアクチュエータの少なくとも一方に所定の制御データを出力する出力部とを備え、判定部が、基盤プログラムと、該基盤プログラムとは独立した外部プログラムがコンピュータ上で実行されることで実現するものであり、基盤プログラムが入力データに基づく値を入力変数として外部プログラムを呼び出すことで、判定が実行される。
【０００７】
このような側面においては、制御系と、その制御系が正常であるか否かの判定処理との間に基盤プログラムが介在する。制御系の動作を検証する際の具体的な基準又は手法は個々の制御系で異なり得る。個々の制御系に依存する判定ロジックを外部プログラムとして切り出し、制御系と判定ロジックとをつなぐ部分を基盤プログラムとして共通化することで、安全な車両システムを効率的に開発することが可能になる。
【発明の効果】
【０００８】
本発明の一側面によれば、安全な車両システムを効率的に開発することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る基盤プログラムの構成を示す図である。
【図２】第１実施形態に係る制御系及び監視系の機能構成を示す図である。
【図３】第１実施形態に係る診断処理の例を示すシーケンス図である。
【図４】第１実施形態に係る診断処理の例を示すシーケンス図である。
【図５】第１実施形態に係る診断処理の例を示すシーケンス図である。
【図６】第１実施形態に係る診断処理の詳細の例を示すシーケンス図である。
【図７】第１実施形態に係る停止処理の例を示すシーケンス図である。
【図８】第１実施形態に係る復旧処理の例を示すシーケンス図である。
【図９】第２実施形態に係る２系統の機能構成を示す図である。
【図１０】第２実施形態に係る診断及び二重監視の処理の例を示すシーケンス図である。
【図１１】第２実施形態に係る切替処理の例を示すシーケンス図である。
【図１２】変形例に係る制御系及び監視系の機能構成を示す図である。
【図１３】変形例に係る２系統の機能構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００１１】
図１は、後述する第１及び第２実施形態に係る基盤プログラムＰ１の構成を示す。基盤プログラムＰ１は、車両の走行を制御するコンピュータ・システム（以下ではこれを「制御系」という）の監視をコンピュータに実行させるためのフレームワークである。フレームワークとは、汎用的又は基本的な、ソフトウェアの半完成品のことである。車両とは、陸上を走行する有人又は無人の移動体であり、例えば自動車である。
【００１２】
基盤プログラムＰ１は、メインモジュールＰ１０、監視モジュールＰ１１、診断モジュールＰ１２、及び処理モジュールＰ１３を備える。メインモジュールＰ１０は、制御系の監視を統括的に制御する部分である。監視モジュールＰ１１は、制御系及びセンサの少なくとも一方から所定の入力データを受け付ける機能を有する。診断モジュールＰ１２は、その入力データに基づく判定処理を外部プログラムＰ２と連携して実行する機能を有する。処理モジュールＰ１３は判定結果に基づいて、制御系及びアクチュエータの少なくとも一方に所定の制御データを出力する機能を有する。
【００１３】
基盤プログラムＰ１は、判定用の外部プログラムＰ２（以下では単に「外部プログラム」という）とは独立したプログラムである。これは、制御系の動作に関する具体的な判定処理又は判定基準がメーカ又は車種により異なることを考慮した仕組みである。予め定められた、基盤プログラムＰ１（より具体的には診断モジュールＰ１２）と外部プログラムＰ２との間のインタフェース（関数、入力変数、及び出力変数）に従いさえすれば、開発者は外部プログラムＰ２の内部ロジックを自由に設計することができる。また、基盤プログラムＰ１は、制御系のプログラムとも独立する。基盤プログラムＰ１と制御系プログラムとの間のインタフェースも予め定められる。このように各プログラムの独立性を高めることで、開発の自由度及びシステムの保守性が向上するので、安全な車両システムを効率的に開発することが可能になる。
【００１４】
基盤プログラムＰ１は、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、基盤プログラムＰ１は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００１５】
基盤プログラムＰ１がＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）にインストールされて実行されることで、監視系が実現する。監視系は、制御系の動作を監視するコンピュータ・システム（すなわち、車両監視システム）である。本実施形態では、一つのＥＣＵ１に制御系プログラム及び基盤プログラムＰ１の双方がインストールされる。ＥＣＵ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信回路を有するコンピュータである。ＥＣＵ１では、ＲＯＭに記憶されているプログラムがＣＡＮ通信回路を介してＲＡＭにロードされ、ＣＰＵがそのプログラムを実行することで各種の機能が実現される。ＥＣＵ１は複数の電子制御ユニットで構成されてもよい。
【００１６】
制御系プログラム、基盤プログラムＰ１、及び外部プログラムＰ２はいずれも、ランタイム環境（ＲＴＥ：Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ）上で実行されるアプリケーション・プログラムである。
【００１７】
（第１実施形態）
図２は、第１実施形態に係る制御系及び監視系の機能構成を示す。
【００１８】
制御系１０はセンサ３からの入力に基づいてアクチュエータ４を制御する。制御系１０は機能的構成要素として入力部１１、制御部１２、及び出力部１３を備える。これらの機能要素はランタイム環境を介してデータの受け渡しを行う。入力部１１は、センサ３からデータを取得する機能要素である。入力部１１は、取得したデータそのもの、又は取得したデータをフィルタ機能により加工して得られるデータをランタイム環境経由で制御部１２に出力する。制御部１２は、入力部１１からのデータに基づいてアクチュエータ４への指示を決定する機能要素である。制御部１２は入力されたデータを所定のメモリに保存すると共に、決定した指示を示すデータをランタイム環境経由で出力部１３に出力する。出力部１３は、制御部１２から入力された指示に基づいてアクチュエータ４に指示信号を出力することで該アクチュエータ４を制御する機能要素である。これら三つの機能要素はいずれも、自身が正常であるか否かを検査してその結果をランタイム環境経由で監視系２０に出力する自己監視機能と、自己の内部状態をランタイム環境経由で監視系２０に通知する機能とを有する。自己監視における検査項目、及び内部状態の詳細は何ら限定されないが、例えば、機能要素の実行経路及び実行時間がその例として挙げられる。
【００１９】
なお、センサ３及びアクチュエータ４の種類は何ら限定されない。センサ３の例として車速センサ、加速度センサ、及びヨーレートセンサが挙げられる。アクチュエータ４の例としてはスロットルアクチュエータ、ブレーキアクチュエータ、及び操舵アクチュエータが挙げられる。センサ３及びアクチュエータ４の種類が限定されないことに応じて、制御系１０の各機能要素の具体的な機能及び構成も限定されない。
【００２０】
監視系２０は機能的構成要素として監視部２１、診断部２２、及び処理部２３を備える。これらの機能要素はランタイム環境を介してデータの受け渡しを行う。
【００２１】
監視部２１は、制御系１０（すなわち、入力部１１、制御部１２、及び出力部１３）からのデータを受け付ける機能要素（受付部）である。監視部２１は基盤プログラムＰ１の監視モジュールＰ１１がＥＣＵ１上で実行されることで実現される。監視部２１は制御系１０の各機能要素から出力された自己監視の結果又は内部状態の通知を取得すると、そのデータをランタイム環境経由で診断部２２に出力する。また、監視部２１は制御系１０の各機能要素に対してポーリングによる死活監視を行うことで、制御系１０が正常に動作しているか否かを検査し、その検査結果をランタイム環境経由で診断部２２に出力する。
【００２２】
診断部２２は、監視部２１から入力されたデータに基づいて制御系１０が正常であるか否かを判定し、その判定結果をランタイム環境経由で処理部２３に出力する機能要素（判定部）である。診断部２２は基盤プログラムＰ１の診断モジュールＰ１２と外部プログラムＰ２との双方がＥＣＵ１上で実行されることで実現される。診断モジュールＰ１２は、外部プログラムＰ２（外部プロシージャ）を呼び出す際に、監視部２１からの入力データに基づく値を入力変数として外部プログラムＰ２に渡す。入力変数として外部プログラムＰ２に渡される値は、入力データの一部または全体であってもよいし、入力データの少なくとも一部を加工して得られる値であってもよい。外部プログラムＰ２はその呼出しに応じて具体的な判定処理を実行し、判定結果を診断モジュールＰ１２に返す。診断モジュールＰ１２はその判定結果を処理部２３に出力する。
【００２３】
処理部２３は、診断部２２から入力された判定結果に基づいて所定の制御データ（指示信号）を制御系１０に出力する機能要素（出力部）である。処理部２３は基盤プログラムＰ１の処理モジュールＰ１３がＥＣＵ１上で実行されることで実現される。判定結果が異常を示す場合には、処理部２３は停止指示の信号を入力部１１、制御部１２、及び出力部１３に出力することで制御系１０を停止させる。制御系１０が停止している状態において、正常を示す判定結果が入力された場合には、処理部２３は復旧指示の信号を入力部１１、制御部１２、及び出力部１３に出力することで制御系１０を再稼働させる。
【００２４】
次に、図３〜図８を参照しながら、監視系２０の動作を説明するとともに本実施形態に係る車両監視方法について説明する。なお、図３〜図８では便宜上ランタイム環境（ＲＴＥ）を一本の線で表現する。
【００２５】
図３は、制御系１０から入力された内部状態の通知に基づく診断の例を示す。この図では制御部１２についての処理を示すが、入力部１１及び出力部１３についても同様の処理が実行される。制御部１２は、ランタイム環境（ＲＴＥ）からの呼出し（ステップＳ１１）に応じてセンサ情報を入力部１１から取得して保存し（ステップＳ１２）、保存した情報をデータ更新通知としてランタイム環境に出力する（ステップＳ１３）。ランタイム環境はその情報を更新通知として監視部２１に出力する（ステップＳ１４）。監視部２１はその更新通知を受け付けると（受付ステップ）、その更新通知をランタイム環境経由で診断部２２に出力する（ステップＳ１５）。診断部２２はその更新通知で示されるデータを用いて制御部１２の状態を判定する（ステップＳ１６）。診断部２２の判定（すなわち、制御部１２が正常であると判定されるか異常であると判定されるか）は外部プログラムＰ２に依存する。
【００２６】
図４は、ポーリングによる死活監視の例を示す。この図では制御部１２についての処理を示すが、入力部１１及び出力部１３についても同様の処理が実行される。監視部２１は死活監視用のタイマを起動した上で（ステップＳ２１）、制御部１２の状態を監視するための信号（図４における「状態監視」）を定期的にランタイム環境に出力し、ランタイム環境はその信号を制御部１２に出力する（ステップＳ２２）。状態監視の信号は非同期の信号である。
【００２７】
制御部１２がその信号を受け付けた場合には、制御部１２はその問合せに応じて応答信号をランタイム環境に出力する（ステップＳ２３）。なお、このステップＳ２３における「応答（１）」は、ステップＳ２２における「状態監視（１）」という信号に対応する。ランタイム環境はその応答（応答信号を受け付けたことを示す結果）を保存する（ステップＳ２４）。その後、監視部２１はタイマで設定された時刻に状態監視の信号に対応する結果をランタイム環境に問い合わせ（ステップＳ２５）、ランタイム環境はこの問合せに応じて、保存している応答をその結果として監視部２１に出力する（ステップＳ２６）。監視部２１はその結果を取得すると（受付ステップ）、その結果をランタイム環境経由で診断部２２に出力する（ステップＳ２７）。診断部２２はその結果を用いて制御部１２の状態を判定する（ステップＳ２８）。診断部２２の判定は外部プログラムＰ２に依存する。
【００２８】
制御部１２が何らかの原因で状態監視の信号を受け付けることができなかった場合には、応答信号をランタイム環境に出力することもできず、したがってランタイム環境は応答を保存することができない。すなわち、図４におけるステップＳ２３，Ｓ２４が実行されない。この状況下で、監視部２１がタイマで設定された時刻に状態監視の信号に対応する結果をランタイム環境に問い合わせた場合にも（ステップＳ２５）、ランタイム環境はこの問合せに応じた結果を監視部２１に返す（ステップＳ２６）。しかし、この結果は、制御部１２からの応答信号を受け付けなかったことを示すものである。この場合にも、監視部２１はその結果を受け付けると（受付ステップ）、その結果をランタイム環境経由で診断部２２に出力する（ステップＳ２７）。診断部２２はその結果を用いて制御部１２の状態を判定する（ステップＳ２８）。診断部２２の判定は外部プログラムＰ２に依存する。
【００２９】
図５は、制御系１０から入力された自己監視の結果に基づく診断の例を示す。この図では制御部１２についての処理を示すが、入力部１１及び出力部１３についても同様の処理が実行される。制御部１２は所定のタイミングで（例えば定期的に）自己監視を実行し（ステップＳ３１）、エラーが発生したと判定した場合にはエラー通知をランタイム環境に出力する（ステップＳ３２）。ランタイム環境はそのエラー通知を監視部２１に出力する（ステップＳ３３）。監視部２１はそのエラー通知を受け付けると（受付ステップ）、その通知をランタイム環境経由で診断部２２に出力する（ステップＳ３４）。診断部２２はそのエラー通知に基づいて制御部１２の状態を判定する（ステップＳ３５）。診断部２２の判定は外部プログラムＰ２に依存する。
【００３０】
図６は診断の詳細を示し、より具体的には上記のステップＳ１６，Ｓ２８，Ｓ３５の詳細を示す。監視部２１からランタイム環境経由で判定用のデータ（更新通知、状態監視の結果、又はエラー通知）を取得すると（ステップＳ４１）、診断部２２はそのデータに基づいて制御系１０の機能要素（入力部１１、制御部１２、又は出力部１３）の状態を判定する（ステップＳ４２）。この判定処理は、基盤プログラムＰ１の診断モジュールＰ１２が、入力されたデータに基づく値を入力変数として外部プログラムＰ２（外部プロシージャ）を呼び出すことで行われる（呼出ステップ）。外部プログラムＰ２の出力変数である判定結果が正常（ＯＫ）を示す場合には（ステップＳ４３において「ＯＫ」）、監視系２０はこの時点で処理を終了し、したがって処理部２３は作動しない。一方、判定結果が異常を示す場合には（ステップＳ４３において「ＮＧ」）、診断部２２はその結果をランタイム環境経由で処理部２３に出力する（ステップＳ４４）。処理部２３はその判定結果に応じて安全のための処理を実行する（ステップＳ４５）。
【００３１】
ただし、上記ステップＳ４３において判定結果が正常（ＯＫ）であった場合に監視系２０が後続の処理を行う場合もある。例えば、制御系が停止している状況下で正常（ＯＫ）という判定結果が得られた場合には、後述する復旧処理（図８参照）が行われる。
【００３２】
図７は、監視系２０による制御系１０の停止の例を示し、より具体的には上記のステップＳ４５の詳細を示す。異常（ＮＧ）を示す判定結果が診断部２２からランタイム環境経由で入力されると（ステップＳ５１）、処理部２３は制御系１０の各機能要素（すなわち、入力部１１、制御部１２、及び出力部１３）について停止指示をランタイム環境に出力し、ランタイム環境はその信号を各機能要素に出力する（ステップＳ５２、出力ステップ）。停止指示を受けた入力部１１、制御部１２、及び出力部１３はそれぞれ停止状態に遷移する（ステップＳ５３）。出力部１３は自らを停止する前にアクチュエータ４に停止信号を出力し（ステップＳ５４）、アクチュエータはその信号に応じて停止する（ステップＳ５５）。
【００３３】
図８は、監視系２０による復旧の例を示す。例えば、上記ステップＳ４３において制御系１０が正常であると判定され、その判定結果が診断部２２からランタイム環境経由で入力されたとする（ステップＳ６１）。この場合、処理部２３は制御系１０の各機能要素（すなわち、入力部１１、制御部１２、及び出力部１３）について復旧指示をランタイム環境に出力し、ランタイム環境はその信号を各機能要素に出力する（ステップＳ６２、出力ステップ）。復旧指示を受けた入力部１１、制御部１２、及び出力部１３は再起動し（有効化）、これにより制御系１０が復帰する（ステップＳ６３）。
【００３４】
なお、監視部２１はセンサ３から直接にデータを受け付けてもよいし、制御系１０及びセンサ３の双方からデータを受け付けてもよい。また、処理部２３は制御系１０に制御データ（指示信号）を出力するのではなく、アクチュエータ４に制御データ（指示信号）を出力することでアクチュエータ４を直接に停止又は有効化してもよい。あるいは、処理部２３は制御系１０及びアクチュエータ４の双方に制御データ（指示信号）を出力してもよい。
【００３５】
（第２実施形態）
図９は、第２実施形態に係る制御系及び監視系の機能構成を示す。第１実施形態と異なる点は、制御系及び監視系がそれぞれ多重化される点である。本実施形態では２系統（すなわち、制御系と監視系とのセットの個数が２であること）、すなわち二重化の例を示す。しかし、多重化はその例に限定されるものではなく、３以上の系統（すなわち、制御系と監視系とのセットの個数を３以上にすること）により多重化が実現されてもよい。個々の系統内の機能、構成、及び動作は第１実施形態と同じであり、２系統間の監視系の連携が、第１実施形態にはない点である。以下では、第２実施形態で特有の事項について特に説明し、第１実施形態と同一又は同等の点については説明を省略する。
【００３６】
本実施形態では、第１制御系１１０及び第１監視系１２０を備える第１系統１００と、第２制御系２１０及び第２監視系２２０を備える第２系統２００とが存在するものとする。本実施形態では、第１系統１００が正常系として機能し、第２系統２００が、第１系統１００に障害が発生した際に稼働する待機系として機能するものとする。第１制御系１１０及び第１監視系１２０はＥＣＵ１０１上で実現される。第２制御系２１０及び第２監視系２２０はＥＣＵ２０１上で実現される。ＥＣＵ１０１及びＥＣＵ２０１は互いに独立した電子機器である。
【００３７】
第１制御系１１０は機能的構成要素として第１入力部１１１、第１制御部１１２、及び第１出力部１１３を備える。これらの機能要素はランタイム環境を介してデータの受け渡しを行う。第１入力部１１１、第１制御部１１２、及び第１出力部１１３の機能はそれぞれ、第１実施形態における入力部１１、制御部１２、及び出力部１３の機能と同一又は同等である。第１センサ１０３及び第１アクチュエータ１０４は第１実施形態におけるセンサ３及びアクチュエータ４と同一又は同等である。
【００３８】
第１監視系１２０は機能的構成要素として第１監視部（入力部）１２１、第１診断部（判定部）１２２、及び第１処理部（出力部）１２３を備える。これらの機能要素はランタイム環境を介してデータの受け渡しを行う。第１監視部１２１、第１診断部１２２、及び第１処理部１２３の機能はそれぞれ、第１実施形態における監視部２１、診断部２２、及び処理部２３の機能と同一又は同等である。
【００３９】
第２制御系２１０は機能的構成要素として第２入力部２１１、第２制御部２１２、及び第２出力部２１３を備える。これらの機能要素はランタイム環境を介してデータの受け渡しを行う。第２入力部２１１、第２制御部２１２、及び第２出力部２１３の機能はそれぞれ、第１実施形態における入力部１１、制御部１２、及び出力部１３の機能と同一又は同等である。第２センサ２０３及び第２アクチュエータ２０４は第１実施形態におけるセンサ３及びアクチュエータ４と同一又は同等である。本実施形態では、第２制御系２１０は、第１制御系１１０に障害が発生した際に初めて稼働するものとする。
【００４０】
第２監視系２２０は機能的構成要素として第２監視部（入力部）２２１、第２診断部（判定部）２２２、及び第２処理部（出力部）２２３を備える。これらの機能要素はランタイム環境を介してデータの受け渡しを行う。第２監視部２２１、第２診断部２２２、及び第２処理部２２３の機能はそれぞれ、第１実施形態における監視部２１、診断部２２、及び処理部２３の機能と同一又は同等である。
【００４１】
本実施形態において、第１監視系１２０は第２監視系２２０と連携する。具体的には、第１監視系１２０は第１制御系１１０に関するデータを第２監視系２２０に渡すことで、そのデータを第２監視系２２０にも保存させる。その上で、第１監視系１２０が第１制御系１１０を停止させる場合には、第１監視系１２０は第２監視系２２０に向けて異常通知を出力し、第２監視系２２０はその通知に応じて第２制御系２１０を作動させる。これらの処理により、第１系統１００（より具体的には第１制御系１１０）の障害発生直前までの処理を円滑に引き継いだ形で第２系統２００（より具体的には第２制御系２１０）を作動させることができる。
【００４２】
次に、図１０及び図１１を参照しながら、第１監視系１２０及び第２監視系２２０の動作を説明するとともに本実施形態に係る車両監視方法について説明する。なお、図１０及び図１１では便宜上ランタイム環境（ＲＴＥ）を一本の線で表現する。
【００４３】
図１０は、第１制御系１１０から入力された内部状態の通知に基づく診断及び二重監視の例を示す。この図では第１制御部１１２についての処理を示すが、第１入力部１１１及び第１出力部１１３についても同様の処理が実行される。第１制御部１１２は、ランタイム環境（ＲＴＥ）からの呼出し（ステップＳ７１）に応じてセンサ情報を第１入力部１１１から取得して保存し（ステップＳ７２）、保存した情報をデータ更新通知としてランタイム環境に出力する（ステップＳ７３）。ランタイム環境はその情報を更新通知として第１監視部１２１に出力する（ステップＳ７４）。第１監視部１２１はその更新通知を受け付けると（受付ステップ）、その更新通知をランタイム環境経由で第１診断部１２２に出力する（ステップＳ７５）。第１診断部１２２はその更新通知で示されるデータを用いて第１制御部１１２の状態を判定する（ステップＳ７６）。この判定処理において、基盤プログラムＰ１の診断モジュールＰ１２は外部プログラムＰ２を呼び出すことでその外部プログラムＰ２に具体的な判定処理を実行させる（呼出ステップ）。したがって、第１診断部１２２の判定は外部プログラムＰ２に依存する。
【００４４】
さらに第１診断部１２２は、その更新通知をランタイム環境に出力し（ステップＳ７７）、ランタイム環境はその通知を第２監視部２２１に出力する（ステップＳ７８、多重化ステップ）。第２監視部２２１はその更新通知をランタイム環境経由で第２診断部２２２に出力する（ステップＳ７９）。第２制御部２１２はその更新通知に基づいて第１制御部１１２に関するデータを更新及び保存する（ステップＳ８０）。
【００４５】
第１診断部１２２は、ポーリングによる死活監視（図４参照）、及び自己監視に基づく診断（図５参照）においても、第１制御系１１０（第１入力部１１１、第１制御部１１２、又は第１出力部１１３）の状態を判定するとともに、第１監視部１２１から取得したデータをランタイム環境経由で第２監視部２２１に出力する。第２監視部２２１はそのデータをランタイム環境経由で第２診断部２２２に出力し、第２制御部２１２はそのデータに基づいて第１制御系１１０（第１入力部１１１、第１制御部１１２、又は第１出力部１１３）に関するデータを更新及び保存する。
【００４６】
図１１は、第１制御系１１０から第２制御系２１０への切替えの例を示す。異常（ＮＧ）を示す判定結果が第１診断部１２２からランタイム環境経由で入力されると、第１処理部１２３は第１制御系１１０の各機能要素（すなわち、第１入力部１１１、第１制御部１１２、及び第１出力部１１３）について停止指示をランタイム環境に出力し（出力ステップ）、ランタイム環境はその信号を各機能要素に出力する（ステップＳ８１）。停止指示を受けた第１入力部１１１、第１制御部１１２、及び第１出力部１１３はそれぞれ停止状態に遷移する。これら一連の処理は第１実施形態と同じである（図７参照）。
【００４７】
第１処理部１２３はさらに、第１制御系１１０に異常が発生したことを示す異常通知をランタイム環境に出力し（ステップＳ８２）、ランタイム環境はその異常通知を第２監視部２２１に出力する（ステップＳ８３）。この異常通知は第２監視部２２１から第２診断部２２２を経由して第２処理部２２３へと流れる（ステップＳ８４）。なお、機能要素間の入出力にはランタイム環境が介在する。第２処理部２２３はその異常通知に応じて、第２制御系２１０の各機能要素（すなわち、第２入力部２１１、第２制御部２１２、及び第２出力部２１３）について起動指示をランタイム環境に出力し、ランタイム環境はその信号を各機能要素に出力する（ステップＳ８５）。必要に応じて、この起動指示は、第１制御系１１０の対応する機能要素の最後の状態を引き継いで起動させるためのデータを含む。第２入力部２１１、第２制御部２１２、及び第２出力部２１３はその起動指示に応じて起動し、これにより第２制御系２１０が第１制御系１１０を引き継いだ形で稼働し始める。
【００４８】
なお、第１系統１００および第２系統２００の双方において、監視部はセンサから直接にデータを受け付けてもよいし、制御系及びセンサの双方からデータを受け付けてもよい。また、処理部は制御系に制御データ（指示信号）を出力するのではなく、アクチュエータに制御データ（指示信号）を出力することでアクチュエータを直接に停止又は有効化してもよい。あるいは、処理部は制御系及びアクチュエータの双方に制御データ（指示信号）を出力してもよい。このような変形も第１実施形態と同様である。
【００４９】
以上説明したように、本発明の一側面に係る基盤プログラムは、車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視するためのコンピュータに車両監視方法を実行させる基盤プログラムであって、車両監視方法が、制御系及びセンサの少なくとも一方から所定の入力データを受け付ける受付ステップと、基盤プログラムとは独立した外部プログラムに、制御系が正常であるか否かを判定させるために、入力データに基づく値を入力変数として該外部プログラムを呼び出す呼出ステップと、呼出ステップに応じて外部プログラムから返された判定結果が制御系の異常を示す場合に、制御系及びアクチュエータの少なくとも一方に所定の制御データを出力する出力ステップとを含む。
【００５０】
本発明の一側面に係る車両監視システムは、車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視する車両監視システムであって、制御系及びセンサの少なくとも一方から所定の入力データを受け付ける受付部と、制御系が正常であるか否かを入力データに基づいて判定する判定部と、制御系が異常であると判定部により判定された場合に、制御系及びアクチュエータの少なくとも一方に所定の制御データを出力する出力部とを備え、判定部が、基盤プログラムと、該基盤プログラムとは独立した外部プログラムがコンピュータ上で実行されることで実現するものであり、基盤プログラムが入力データに基づく値を入力変数として外部プログラムを呼び出すことで、判定が実行される。
【００５１】
このような側面においては、制御系と、その制御系が正常であるか否かの判定処理との間に基盤プログラムが介在する。制御系の動作を検証する際の具体的な基準又は手法は個々の制御系で異なり得る。個々の制御系に依存する判定ロジックを外部プログラムとして切り出し、制御系と判定ロジックとをつなぐ部分を基盤プログラムとして共通化することで、安全な車両システムを効率的に開発することが可能になる。
【００５２】
他の側面に係る基盤プログラムでは、車両監視方法が、車両の他のアクチュエータを制御する他の制御系の動作を監視する他のコンピュータに入力データを渡す多重化ステップをさらに含み、他のコンピュータが、多重化ステップにおいて渡された入力データを保存してもよい。車両監視システムを多重化させた場合に、ある一つの車両監視システム（ある一つのコンピュータ）で得られた入力データを他の車両監視システム（他のコンピュータ）に渡すことで、車両の監視を一方の車両監視システムから他の車両監視システムに円滑に引き継がせることが可能になる。
【００５３】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００５４】
上記各実施形態では、制御系を監視する手法として、内部状態の通知と、死活監視と、自己監視機能とを例示した。しかし、車両監視システムはこれら３種類から任意に選択される一つまたは二つの手法のみを用いて制御系を監視してもよい。
【００５５】
少なくとも一つのプロセッサにより実行される車両監視方法の処理手順は上記実施形態での例に限定されない。例えば、監視系は上述したステップ（処理）の一部を省略してもよいし、別の順序で各ステップを実行してもよい。また、上述したステップのうちの任意の２以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、監視系は上記の各ステップに加えて他のステップを実行してもよい。
【００５６】
監視系の処理部は、制御系又はアクチュエータに指示信号を出力することに加えて、所定の通知部（例えばモニタ、表示器、またはスピーカ）に判定結果を出力してもよい。この場合には、その判定結果、又は該判定結果に基づいて生成された情報が通知部から出力される。この通知によりユーザは車両の状態を知ることができる。
【００５７】
上記第２実施形態では第１系統１００が正常系であり及び第２系統２００が待機系であったが、車両の制御及び監視における複数系統の関係はこれに限定されない。例えばそれら複数系統が対等の立場で並列して動作してもよい。
【００５８】
上記実施形態では一つのＥＣＵ上で制御系及び監視系が実現されたが、制御系のＥＣＵと監視系のＥＣＵとが互いに独立したものであってもよい。例えば図１２に示すように、第１実施形態における制御系１０がＥＣＵ１上で実現され、監視系２０が、ＥＣＵ１とは独立したＥＣＵ２上で実現されてもよい。あるいは図１３に示すように、２系統のそれぞれにおいて制御系および監視系が別々のＥＣＵ上で実現されてもよい。この変形例では、第１制御系１１０はＥＣＵ１０１上で実現され、第１監視系１２０はＥＣＵ１０２上で実現される。第２制御系２１０はＥＣＵ２０１上で実現され、第２監視系２２０はＥＣＵ２０２上で実現される。ＥＣＵ１０１、ＥＣＵ１０２、ＥＣＵ２０１、及びＥＣＵ２０２は互いに独立した電子機器である。
【００５９】
すなわち、他の側面に係る基盤プログラムでは、コンピュータが制御系から独立してもよい。制御系を監視するコンピュータを該制御系から独立させることで、双方のシステムの開発の自由度及び保守性を向上させることができる。
【００６０】
上記実施形態では一つの監視系が一つの制御系を監視したが、一つの監視系が複数の制御系を監視してもよいし、複数の監視系が一つの制御系を監視してもよい。
【００６１】
上記実施形態では制御系が入力部、制御部、及び出力部を備え、監視系が監視部、診断部、及び処理部を備えたが、監視系及び制御系のそれぞれについて、機能要素の構成及び個数はこれに限定されるものではない。
【符号の説明】
【００６２】
１，２…ＥＣＵ、３…センサ、４…アクチュエータ、１０…制御系、１１…入力部、１２…制御部、１３…出力部、２０…監視系、２１…監視部、２２…診断部、２３…処理部、１００…第１系統、１０１，１０２…ＥＣＵ、１０３…第１センサ、１０４…第１アクチュエータ、１１０…第１制御系、１１１…第１入力部、１１２…第１制御部、１１３…第１出力部、１２０…第１監視系、１２１…第１監視部、１２２…第１診断部、１２３…第１処理部、２００…第２系統、２０１，２０２…ＥＣＵ、２０３…第２センサ、２０４…第２アクチュエータ、２１０…第２制御系、２１１…第２入力部、２１２…第２制御部、２１３…第２出力部、２２０…第２監視系、２２１…第２監視部、２２２…第２診断部、２２３…第２処理部、Ｐ１…基盤プログラム、Ｐ１０…メインモジュール、Ｐ１１…監視モジュール、Ｐ１２…診断モジュール、Ｐ１３…処理モジュール、Ｐ２…外部プログラム。
【図１】
2017182547.tif 000003
【図２】
2017182547.tif 000004
【図３】
2017182547.tif 000005
【図４】
2017182547.tif 000006
【図５】
2017182547.tif 000007
【図６】
2017182547.tif 000008
【図７】
2017182547.tif 000009
【図８】
2017182547.tif 000010
【図９】
2017182547.tif 000011
【図１０】
2017182547.tif 000012
【図１１】
2017182547.tif 000013
【図１２】
2017182547.tif 000014
【図１３】
2017182547.tif 000015
【手続補正書】
【提出日】平成28年7月26日(2016.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視するためのコンピュータに車両監視方法を実行させる基盤プログラムであって、
前記車両監視方法が、
前記制御系及び前記センサの少なくとも一方から、該センサのデータ、または該センサのデータをフィルタ機能により加工して得られるデータを受け付ける受付ステップと、
前記基盤プログラムとは独立した外部プログラムに、前記制御系が正常であるか否かを判定させるために、前記受付ステップにおいて受け付けられたデータを入力変数として該外部プログラムを呼び出す呼出ステップと、
前記呼出ステップに応じて前記外部プログラムから返された判定結果が前記制御系の異常を示す場合には、前記制御系及び前記アクチュエータの少なくとも一方に停止指示を出力し、前記判定結果が前記制御系の正常を示す場合には、前記制御系及び前記アクチュエータの少なくとも一方に復旧指示を出力する出力ステップと
を含む、
基盤プログラム。
【請求項２】
前記コンピュータが前記制御系から独立している、
請求項１に記載の基盤プログラム。
【請求項３】
前記車両監視方法が、前記車両の他のアクチュエータを制御する他の制御系の動作を監視する他のコンピュータに前記受付ステップにおいて受け付けられたデータを渡す多重化ステップをさらに含み、
前記他のコンピュータが、前記多重化ステップにおいて渡された前記データを保存する、
請求項１又は２に記載の基盤プログラム。
【請求項４】
車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視する車両監視システムであって、
前記制御系及び前記センサの少なくとも一方から、該センサのデータ、または該センサのデータをフィルタ機能により加工して得られるデータを受け付ける受付部と、
前記制御系が正常であるか否かを前記受付部により受け付けられたデータに基づいて判定する判定部と、
前記制御系が異常であると前記判定部により判定された場合には、前記制御系及び前記アクチュエータの少なくとも一方に停止指示を出力し、前記制御系が正常であると前記判定部により判定された場合には、前記制御系及び前記アクチュエータの少なくとも一方に復旧指示を出力する出力部と
を備え、
前記判定部が、基盤プログラムと、該基盤プログラムとは独立した外部プログラムがコンピュータ上で実行されることで実現するものであり、
前記基盤プログラムが前記受付部により受け付けられたデータを入力変数として前記外部プログラムを呼び出すことで、前記判定が実行される、
車両監視システム。
【手続補正書】
【提出日】平成28年11月4日(2016.11.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視するためのコンピュータに車両監視方法を実行させる基盤プログラムであって、
前記車両監視方法が、
前記制御系及び前記センサの少なくとも一方から該センサのデータを受け付ける受付ステップと、
前記基盤プログラムとは独立した外部プログラムに、前記制御系が正常であるか否かを判定させるために、前記受付ステップにおいて受け付けられた前記センサのデータを入力変数として該外部プログラムを呼び出す呼出ステップと、
前記呼出ステップに応じて前記外部プログラムから返された判定結果が前記制御系の異常を示す場合には、前記制御系及び前記アクチュエータの少なくとも一方に停止指示を出力し、前記制御系及び前記アクチュエータの少なくとも一方が停止している状態において前記判定結果が前記制御系の正常を示す場合には、前記制御系及び前記アクチュエータの少なくとも一方に復旧指示を出力する出力ステップと
を含む、
基盤プログラム。
【請求項２】
前記コンピュータが前記制御系から独立している、
請求項１に記載の基盤プログラム。
【請求項３】
前記車両監視方法が、前記車両の他のアクチュエータを制御する他の制御系の動作を監視する他のコンピュータに前記受付ステップにおいて受け付けられた前記センサのデータを渡す多重化ステップをさらに含み、
前記他のコンピュータが、前記多重化ステップにおいて渡された前記データを保存する、
請求項１又は２に記載の基盤プログラム。
【請求項４】
車両のアクチュエータをセンサからの入力に基づいて制御する制御系を監視する車両監視システムであって、
前記制御系及び前記センサの少なくとも一方から該センサのデータを受け付ける受付部と、
前記制御系が正常であるか否かを前記受付部により受け付けられた前記センサのデータに基づいて判定する判定部と、
前記制御系が異常であると前記判定部により判定された場合には、前記制御系及び前記アクチュエータの少なくとも一方に停止指示を出力し、前記制御系及び前記アクチュエータの少なくとも一方が停止している状態において前記制御系が正常であると前記判定部により判定された場合には、前記制御系及び前記アクチュエータの少なくとも一方に復旧指示を出力する出力部と
を備え、
前記判定部が、基盤プログラムと、該基盤プログラムとは独立した外部プログラムがコンピュータ上で実行されることで実現するものであり、
前記基盤プログラムが前記受付部により受け付けられた前記センサのデータを入力変数として前記外部プログラムを呼び出すことで、前記判定が実行される、
車両監視システム。