(57)【特許請求の範囲】
【請求項１】
演算手段と記憶手段とを有する演算処理装置と、複数の信号入力手段を有し、前記演算処理装置において前記複数の信号入力手段の診断を行う電子制御システムであって、
前記演算処理装置は、
前記複数の信号入力手段の状態をそれぞれ共通化して定義し、管理更新する診断情報更新処理を行う状態管理部と、
前記複数の信号入力手段夫々に対応した条件判定が前記複数の信号入力手段の種類に応じて予め定義されている固有条件判定部と、
前記状態管理部からの判定問い合わせに応じて前記固有条件判定部で診断対象の信号入力手段に対応した条件判定を実行させる問い合せ切り替え部と、
前記複数の信号入力手段夫々に固有の状態情報を記憶する状態情報記憶部と、
前記状態管理部からの状態問い合わせに応じて前記状態情報記憶部に前記状態情報の読み出しと書き込みをさせる状態情報切り替え部と、
を有し、
前記問い合せ切り替え部は、共通の項目を有する複数のテーブルを備え、該複数のテーブル夫々に前記複数の信号入力手段夫々に対応した処理へのアドレスを保持し、
前記状態管理部は、前記複数のテーブル夫々から前記項目を共通の処理で呼び出すことを特徴とする電子制御システム。
【請求項２】
請求項１に記載の電子制御システムであって、前記各々の状態を出力する出力部を備え、前記出力部は、前記状態を所定周期で出力することを特徴とする電子制御システム。
【請求項３】
請求項１または請求項２に記載の電子制御システムであって、前記項目は、異常判定処理アドレス、異常判定継続処理アドレス、正常復帰判定処理アドレス、正常判定継続処理アドレスから構成されることを特徴とする電子制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力装置の状態を診断する電子制御システムに関する。
【背景技術】
【０００２】
自動車エンジン制御などの制御装置として、中央演算装置、ROM、RAM、入出力信号処理装置などを内蔵したマイクロコントローラ(以下マイコンと表記)が用いられている。マイコンに搭載されるソフトウエアは、制御対象が目的とする制御動作を行うように、一般的には、制御処理を行うアプリケーションプログラムと、入出力を行うデバイスドライバやオペレーティングシステム（OS）などによって構成されている。
【０００３】
このような制御装置は、車両の制御を行うことで車両乗員の安全性に直接関わる制御を行うことから、高い安全性を要求されている。このため、制御に関わる装置の故障診断を行い、故障が検出された場合には安全な状態へ遷移させるフェールセーフ処理が用いられている。
【０００４】
また、近年制御の高度化と規模の増大に伴い、ヨーレートセンサ等のセンサ類や、ブレーキ装置等の制動装置等のように、安全に関わる入出力装置の数が増大し、その診断ソフトウエアの開発工数が課題となっている。
【０００５】
制御ソフトウエア全般の開発効率向上を目的として、ソフトウエアを小さな単位の部品として構成しこれを再利用する手法や、これらを階層化し変更箇所を局所化する、などの手法が採用されており、さらに、これらのソフトウエアの部品を資産として蓄積し、開発対象の電子システムのネットワークの構成に応じてこれらの部品を組み合わせて開発する手法が採用されている（特許文献１)。
【０００６】
また、診断に関するソフトウエアを、オブジェクト指向技術を用いて再利用することにより開発工数を削減する手法が採用されている（特許文献２)。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−９７１０２号公報
【特許文献２】特開２００２−１４８３９号公報
【非特許文献】
【０００８】
【非特許文献１】日本信頼性学会編：信頼性ハンドブック，日科技連，ｐ．３１８
【非特許文献２】当麻喜弘編著：フォールトトレラントシステム論，電子情報通信学会，ｐ．１４９
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ソフトウエアの開発効率を向上するための一般的な手法においては、ソフトウエアを部品化し、実際の物理的なハードウエア部品と対応させることにより、ハードウエア部品の変更が要求された際の再利用性を向上させている。
【００１０】
しかしながら、入出力装置であるセンサやアクチュエータの故障には、部品の故障などにより発生する固定フォールトと、電気的雑音や、放射線同位元素からのα線などにより一時的に発生する過渡フォールトなどがあり、実際の診断には、上限値や下限値の閾値をチェックする単純なものから、複雑なアルゴリズムを用いて判断するもの、長期間の経年変化を学習によって補正しながら判断するもの、などハードウエア部品に固有な様々な方法がある。
【００１１】
また、複数の処理をひとつの共通部として纏めてソフトウエアの再利用性を向上させる技術に各種のフレームワークがあるが、特に自動車などの制御に必要なリアルタイム制御を実現するためには、演算、入出力処理などの各処理の内容が正しいこととともに、最適なタイミングで行われる必要があり、数マイクロ秒の遅延も許されない場合も多い。
【００１２】
また、製品搭載のマイクロコンピュータ(マイコン)の制約から、大きな遅延時間を余儀なくされる汎用フレームワークやJavaやC++などのオブジェクト指向技術に基づく複雑な処理を導入は困難である。
【００１３】
本発明の目的は、対象デバイスの故障診断を行うソフトウエアの再利用性を向上し、開発効率を向上することができる電子制御システムを提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決する本発明の電子制御システムは、演算手段と記憶手段とを有する演算処理装置と、複数の信号入力手段を有し、前記演算処理装置において前記信号入力手段の診断を行う電子制御システムであって、演算処理装置は、各信号入力手段に対応した条件判定を、各信号入力手段の種類に応じて準備する固有条件判定部と、固有条件判定部から、前記各信号入力手段に対応した条件判定の情報を呼び出す問い合せ切替え部と、各信号入力手段の状態を管理更新する状態管理部と、を有することを特徴としている。
【発明の効果】
【００１５】
本発明によれば、各部品で共通な処理を再利用することが可能となり、新規に診断処理を開発する際にも、診断対象の故障と検出方法の種類に対応した固有条件判定部のみ定められたインターフェースの内容を実現することに注力すれば良いため、開発効率が向上する。
【図面の簡単な説明】
【００１６】
【図１】ハードウエアの構成を示した図。
【図２】ソフトウエアの構成を示した図。
【図３】ソフトウエアの状態遷移を示した図。
【図４】変換テーブルの構造を示した図。
【図５】診断状態更新処理の実行手順を示した図。
【図６】状態管理部を構成するプログラムの一例を示した図。
【図７】問い合せ切り替え部をC言語を用いて記述した例を示す図。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について説明する。
診断対象となる電子制御システムの誤動作を引き起こす原因となる故障を分類すると、部品の故障などにより発生する固定フォールトと、電気的雑音や、宇宙線，半導体素子を構成する材料中の放射線同位元素からのα線などにより一時的に発生する過渡フォールトに分類される(非特許文献１)。
【００１８】
過渡フォールトは、文字通り過渡的、即ち一時的に発生するので、一旦フォールトが発生しても異なる時間に同一の処理を再度実行すれば、多くの場合にはフォールトが発生することなく無事処理を完了させることができる。このような方法を時間冗長と呼んでいる(非特許文献２)。
【００１９】
本実施の一形態における電子制御システムは、診断処理のうち過渡フォールトとして判定するための状態遷移の管理と更新を行う部分と、固定フォールトの可能性がある要因を抽出する各時点の診断判定を行う部分を分離し、これらの判定処理を行うための問い合わせを共通のインターフェースとして定めることにより、状態遷移の管理と更新を行う部分を共通部品として制御システムを構築したものである。過渡フォールトが発生した場合には、例えばセンサにおいては、その種類によらずに出力に同じ傾向のノイズが生じる。従って、このようなシステムにすることで、いずれのセンサにも同様の傾向で生じる過渡フォールトによるノイズを診断する処理を共通化できる。
【００２０】
(ハードウエア構成)
図１は、本実施の形態における電子制御システムの一例である自動車エンジン制御システムのハードウエアの構成を説明する図である。
【００２１】
電子制御システムのコントロールユニット（制御装置）201は、図１に示すように、マイクロコントローラ(CPU)202と、信号入力回路209と、アクチュエータ駆動回路210と、通信回路213とを有している。
【００２２】
コントロールユニット201は、加速度センサ211とヨーレートセンサ216から信号入力回路209を介して取得した外界の情報に基づき、駆動回路210を介してアクチュエータ 212を駆動する制御処理を行う。また、一部の信号については、通信回路213を介して通信線216から得た他の制御装置215からの入出力を用いて制御処理を行う。
【００２３】
コントロールユニット201のマイクロコントローラ202は、入力回路203と、演算装置204と、揮発性読み書きメモリ(RAM)205と、読み出し専用メモリ(ROM)206と、出力回路207と、通信制御装置208を有している。
【００２４】
加速度センサ211とヨーレートセンサ216は、コントロールユニット201に接続されるセンサの一例であり、温度や電流、その他の物理量を検知する他のセンサであってもよく、同様の効果を得ることが可能である。
【００２５】
(ソフトウエア構成)
図２は、図１の自動車エンジン制御システムのソフトウエアによる機能を説明する図である。
【００２６】
制御の方法を記述したソフトウエアは、コントロールユニット201のROM206、およびRAM205に搭載され、演算装置204において処理される。このような制御装置上に、図２に示す構成のソフトウエアを実装する。ソフトウエアは、OS(オペレーティングシステム)106から起動され、OSに登録されたタイミングで状態管理部101の処理を起動する。状態管理部101は例えば関数で記述され、ソフトウェアの実行時には例えば、10ms周期毎に起動される。図6は、図1の状態管理部101を構成するプログラムの一例を示す図である。
【００２７】
状態管理部101は、診断対象である複数の対象デバイス（信号入力手段）の状態をそれぞれ共通化して定義し、管理更新する診断情報更新処理を行う。そして、診断対象となるデバイスを特定するIDの通知と、異常であるかの問い合わせおよび正常であるかの問い合わせとを問い合わせ切り替え部102へ行う。さらに、状態管理部101は、問い合わせ切り替え部102から各対象デバイス（加速度センサ211、ヨーレートセンサ216）に対応した条件判定の情報を呼び出す。
【００２８】
これにより、状態管理部101が行う問い合わせ処理から、対象デバイスに依存する情報（判定条件等）についてのやり取りを省略することができる。つまり、種類の異なる複数の対象デバイスの診断に共通して必要となる状態管理処理を共通化することができる。
【００２９】
固有条件判定部103には、各対象デバイスの種類に対応した条件判定が、対象デバイスの種類に応じてあらかじめ定義がされている。例えば、対象デバイス毎に依存する異常判定の閾値の定義等である。状態管理部101は、固有条件判定部103によって対象デバイス毎に定義された条件判定を、問い合わせ切り替え部102を介して実行し判定処理を行う。
【００３０】
固有条件判定部103の処理動作は一例としては、電圧値をデジタル変換した結果を対象デバイスとして取り得る下限値から取り得る上限値の範囲の値であれば正常状態であると判定し範囲外であれば異常状態と判定する。状態管理部101は、判定処理によって得られた判定結果をもとに、それぞれの診断対象の現在の状態を更新する。それぞれの状態は、状態情報記憶部105に状態情報として記憶され、診断対象毎に準備される。状態管理部101は、状態情報切り替え部104に問い合わせることにより各対象デバイス固有の状態情報の取得と更新を行う。
【００３１】
そして、図２には記載されていない、車両制御用の各種アプリケーションプログラムが、各種デバイス毎に状態情報記憶部105に記憶された状態を読み出して、デバイスの故障状態に応じた制御処理を実現する。また、診断端末214から状態情報記憶部105に記憶された状態情報を出力することによって、ディーラー等において車両の故障状態を適切にモニタすることができる。ここで、状態情報の出力は、状態管理部101を実行する周期に同期させて行うことにより、各種デバイスの故障状態の経過を含めて詳細に把握することができる。
このようにして、各種デバイスの状態の読み出しと書き込みの処理を共通化することができる。
【００３２】
（ソフトウエアの処理詳細）
図３は、状態管理部で実行される診断情報更新処理ソフトウエアの状態遷移図である。
【００３３】
本実施の形態においては、診断対象の状態として、正常状態301、異常検知中状態303、異常状態306、正常復帰中309の4つの状態が定義されている。診断の最終的な目標は、センサ等が正常か異常かを判定することであるが、実際の制御システムにおける自己診断では、電気的ノイズや放射線などによる不測の事態による誤検知などがあるため、想定外の事象が検出されたからと言ってすぐに異常判定せずに、過渡フォールトと固定フォールトとを区別するために、事前に定義した一定の期間、異常検知動作を継続し、一定の期間継続して異常が検知されると固定フォールトと判定することが多い。
【００３４】
本実施の形態では、このように異常検知が継続したか否かを判定するための処理を、複数のデバイスの診断処理において共通化する。従って、各診断対象デバイスのいずれも、上記のように状態管理部において共通化して定義された状態間で状態遷移する。
【００３５】
この異常検知動作の継続を行うのが異常検知中状態303である。異常検知中状態303で引き続き一定の時間あるいは回数異常が検出された場合には、異常状態306として確定する。また、過渡故障からの復帰などを目的として正常復帰の状態を示したのが、正常復帰中状態309である。ここでも、正常復帰の条件が引き続き成立すると、正常状態301へと遷移する。
【００３６】
各状態における条件判定詳細を以下に示す。正常状態301にある診断対象は、異常初期検知302の処理により条件判定を行う。そして、条件が成立した場合には、異常検知中状態303へ遷移し、条件が不成立の場合には、正常状態継続311をする。
【００３７】
異常検知中状態303にある場合は、異常遷移検知305の判定により異常状態へ遷移する条件が成立していれば異常状態306へ遷移する。一方、正常復帰検知304の条件が成立していれば正常状態301へ遷移する。そして、異常検知継続312の条件が成立していれば引き続き異常検知中状態303に留まる。
【００３８】
異常状態306にある場合は、正常復帰判定307が成立すると正常復帰中状態309へ遷移し、異常状態継続判定313が成立すると異常状態に留まる。正常復帰中状態309にある場合は、正常遷移検知310の判定により正常状態へ復帰する条件が成立していれば正常状態301へ遷移する。再異常判定308の条件が成立していれば異常状態306へ遷移し、正常復帰継続314の条件が成立していれば引き続き正常復帰中状態309に留まる。
【００３９】
上記のうち、条件判定を行う処理である、異常初期検知302、正常復帰検知304、異常遷移検知305、正常復帰検知307、再異常判定308、正常遷移検知310、正常状態継続311の判定は、図4に示すテーブルから取得した処理部を状態管理部101が呼び出すことにより行う。
【００４０】
図4は、図２の問い合せ切り替え部102の構成を説明する図である。問い合せ切り替えは、処理を呼び出すテーブルを用いて実現する。
【００４１】
図4(a)は、そのテーブルの構造の定義であり、C言語の構造体などのデータ構造に各部品に対応した処理へのアドレスを保持することにより実現する。401は構造体全体の定義であり、その項目は、異常判定処理アドレス402、異常判定継続処理アドレス403、正常復帰判定処理アドレス404、正常判定継続処理アドレス405から構成される。これにより、状態管理部の処理を対象デバイス毎に共通化し、対象デバイス毎の具体的な判定条件については、個別に呼び出しを行うことができる。
【００４２】
図4(b)は、このデータ構造を用いて診断対象デバイスの一例である、加速度センサの診断を行う処理へのアドレスを登録した例である。
【００４３】
加速度センサー呼出しテーブル406には、加速度センサ211が正常状態からエラー状態へと遷移する条件を判定する処理（加速度センサー異常判定処理）の呼出し先407、加速度センサ211の異常検知状態を継続するか否かを判定する処理（加速度センサー異常判定継続処理）の呼出し先408、加速度センサ211の異常状態から正常状態への復帰の判定をする処理（加速度センサー正常復帰判定処理）の呼出し先409、加速度センサ211の正常復帰状態を継続するか否かを判定する処理（加速度センサー正常判定継続処理）の呼出し先410が登録されている。
【００４４】
図4(c)は、このデータ構造を用いてヨーレートセンサの診断を行う処理へのアドレスを登録した例である。
【００４５】
ヨーレートセンサー呼出しテーブル411には、ヨーレートセンサ216が正常状態からエラー状態へと遷移する条件を判定する処理（ヨーレートセンサー異常判定処理）の呼出し先412、ヨーレートセンサ216の異常検知状態を継続するか否かを判定する処理（ヨーレートセンサー異常判定継続処理）の呼出し先413、ヨーレートセンサ216の異常状態から正常状態への復帰の判定をする処理（ヨーレートセンサー正常復帰判定処理）の呼出し先414、ヨーレートセンサ216の正常復帰状態を継続するか否かを判定する処理（ヨーレートセンサー正常判定継続処理）の呼出し先415が登録されている。
図7に、問い合せ切り替え部102をC言語を用いて記述した例を示す。
【００４６】
図5は、診断処理情報更新を状態管理部101が実行する手順を説明するフローチャートである。
まず、加速度センサ211やヨーレートセンサ216の各対象デバイスの現在状態を取得して、「正常状態」、「異常検出中状態」、「異常状態」、「正常復帰検出中状態」のいずれであるかを評価する（501）。
【００４７】
対象デバイスの現在状態が、「正常状態」である場合には（502）、その対象デバイスの異常判定関数をテーブルから読出し（506）、その判定処理をする（510）。判定処理の結果が「異常検出」であれば、異常検出中状態に遷移してエラーカウンタを初期化する処理を行う（518）。これは、過渡フォールトと固定フォールトとの切り分けを行うための経過時間を計測するためのカウンタである。一方、判定処理510の結果が「検出せず」であれば、特に処理をせず、現在状態を維持する。
【００４８】
対象デバイスの現在状態が、「異常検出中状態」である場合には（503）、その対象デバイスの異常判定継続中関数をテーブルから読出し（507）、その関数を呼び出してエラーチェックを行う（511）。エラーチェックの判定処理（511）の結果が異常検出であれば、エラーカウンタを加算し（514）、エラーカウンタと事前に定義した閾値とを比較する（516）。そして、エラーカウンタの値が閾値以上（エラーカウンタ≧閾値）であれば、異常状態に遷移し（520）、エラーカウンタの値が閾値より小さければ（エラーカウンタ＜閾値）、特に処理をせず、現在状態を維持する。これにより、過渡フォールトと固定フォールトとの切り分けが可能になる。
【００４９】
また、エラーチェックの判定処理（511）の結果が、「異常検出せず」であれば、診断状態に遷移する（519）。
【００５０】
現在状態が、「異常状態」である場合には（504）、対象デバイスの正常復帰判定関数をテーブルから読出し（508）、その判定処理を呼出して復帰条件チェックを行う（512）。判定処理の結果が復帰条件検出の場合は、正常復帰検出中状態に遷移し、正常復帰カウンタを初期化する（521）。そして、復帰条件チェック（512）の判定処理の結果が復帰条件検出せずの場合は、特に処理をせず、現在状態を維持する。これにより、固定フォールトと判定される。
【００５１】
現在状態が、「正常復帰検出中状態」である場合には（505）、対象デバイスの正常遷移判定継続中関数をテーブルから読出し（509）、その関数を呼出して復帰条件チェックを行う（513）。ここでは、固定フォールトから復帰し、再度過渡フォールトであるか否かの判定を行う。判定処理の結果が正常復帰条件検出の場合は、正常復帰カウンタを加算し（515）、正常復帰カウンタと事前に定義した閾値とを比較する（517）。そして、正常復帰カウンタの値が閾値以上（正常復帰カウンタ≧閾値）であれば、正常状態に遷移し（523）、正常復帰カウンタの値が閾値より小さければ（正常復帰カウンタ＜閾値）、特に処理をせず、現在状態を維持する。上記の処理が完了すると、最後に現在状態と対応した判定結果を、診断結果として出力する（524）。そして、復帰条件チェック（513）の判定処理の結果が復帰条件検出せずの場合は、異常状態に遷移する(522)。これにより、再度固定フォールトと判定される。
【００５２】
前記構成を有する電子制御システムによれば、対象デバイス毎に特有の診断処理と、共通化が可能な処理、例えば過渡フォールトと固定フォールトとの区別を行う処理と、を分離し、過渡フォールトと固定フォールトとの区別を行う処理については対象デバイスに依存せずに状態管理を共通化させるので、過渡フォールトを検出するための処理等を対象デバイスに依存せず、再利用することができる。
【００５３】
前記構成を有する電子制御システムによれば、診断対象のハードウエア（対象デバイス）の数が増加した場合であっても、問い合わせ切り替え部102における診断問い合わせテーブルを追加し、ハードウエア固有の診断処理をすることにより新規ハードウエアの追加を実現できる。したがって、追加のための工数を削減できる。
【符号の説明】
【００５４】
１０１  状態管理部
１０２  問い合わせ切り替え部
１０３  固有条件判定部
１０４  状態情報切り替え部
１０５  状態情報記憶部
１０６  OS（オペレーティングシステム）
２１１  加速度センサ
２１６  ヨーレートセンサ
【図１】
0005559100.tif 000002
【図２】
0005559100.tif 000003
【図３】
0005559100.tif 000004
【図４】
0005559100.tif 000005
【図５】
0005559100.tif 000006
【図６】
0005559100.tif 000007
【図７】
0005559100.tif 000008