(57)【要約】【課題】マイコン１０とＩＣ２０との間で高速通信を行う場合であっても、極力簡素な構成にて、通信信号へのノイズ重畳を検出できるようにするとともに、ノイズの重畳が検出されたときに、制御対象機器に対する制御を安全に継続することが可能な制御システムを提供する。【解決手段】ＩＣ２０におけるＭＳＣコントローラ２２の通信部２３が、マイコン１０から受信したデータフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれるデータフレーム信号のレベル変化を監視する。そして、レベル変化を検出した場合には、データフレーム信号へノイズが重畳していることを検出する。ノイズの重畳が検出されると、変換部２７は、受信したデータフレーム信号に基づく駆動データではなく、フェールセーフ用データに基づく駆動データを生成して、駆動回路３０〜３２に出力する。【選択図】図１
2015102910.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機器（３３〜３５）を制御するための制御システム（１００）であって、
駆動制御データを含むデータフレーム信号を生成し、シリアル信号として出力する制御部（１０）と、
前記制御部から出力された前記データフレーム信号を受信して、パラレル信号に変換することにより、前記制御対象機器の駆動制御信号を生成する駆動制御信号生成部（２０）と、を備え、
前記駆動制御信号生成部は、フェールセーフ用データを保存する保存手段（２９）を有し、受信した前記データフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれる前記データフレーム信号のレベル変化を監視し、レベル変化を検出した場合には、前記データフレーム信号にノイズが重畳しているとみなし、受信した前記データフレーム信号に基づく駆動制御信号ではなく、前記フェールセーフ用データに基づく駆動制御信号を生成することを特徴とする制御システム。
【請求項２】
前記制御対象機器として、複数の機器が設けられ、
前記制御部は、１通信周期において、複数の機器のための駆動制御データをそれぞれ含む複数の前記データフレーム信号を出力し、
前記駆動制御信号生成部は、複数の前記データフレーム信号のいずれかにおいてノイズの重畳が検出された場合、前記１通信周期に含まれるすべての前記データフレーム信号について、受信した前記データフレーム信号に基づく駆動制御信号ではなく、前記フェールセーフ用データに基づく駆動制御信号を生成することを特徴とする請求項１に記載の制御システム。
【請求項３】
前記制御対象機器として、複数の機器が設けられ、
前記制御部は、１通信周期において、複数の機器のための駆動制御データをそれぞれ含む複数の前記データフレーム信号を出力し、
前記駆動制御信号生成部は、複数の前記データフレーム信号の少なくとも１つにおいてノイズの重畳が検出された場合、ノイズの重畳が検出された前記データフレーム信号について、受信した前記データフレーム信号に基づく駆動制御信号ではなく、前記フェールセーフ用データに基づく駆動制御信号を生成することを特徴とする請求項１に記載の制御システム。
【請求項４】
前記駆動制御信号生成部は、前記１通信周期における、複数の前記データフレーム信号のそれぞれの開始位置及び終了位置に関する情報を保有しており、かつ、受信した信号のビット数に相当する値をカウントする第１カウント手段（２６）を有し、複数の前記データフレーム信号のいずれかにおいてノイズの重畳が検出されたとき、保有している開始位置と終了位置に関する情報及び前記第１カウント手段によりカウントされた値に基づいて、ノイズの重畳が検出された前記データフレーム信号を特定することを特徴とする請求項３に記載の制御システム。
【請求項５】
前記駆動制御信号生成部により保有される複数の前記データフレーム信号のそれぞれの開始位置と終了位置に関する情報は、前記制御部から与えられて、前記駆動制御信号生成部に保有されることを特徴とする請求項４に記載の制御システム。
【請求項６】
複数の前記データフレーム信号は、それぞれ、各データフレーム信号の先頭に、フレームの先頭を表す先頭情報を含んでおり、
前記駆動制御信号生成部は、複数の前記データフレーム信号のいずれかにおいてノイズの重畳が検出されたとき、前記先頭情報に基づいて、ノイズの重畳が検出された前記データフレーム信号を特定することを特徴とする請求項３に記載の制御システム。
【請求項７】
前記駆動制御信号生成部は、前記先頭情報に基づいて、フレーム数をカウントする第２カウント手段（ＦＣＮ）を有し、当該第２カウント手段がカウントするフレーム数に基づいて、ノイズの重畳が検出された前記データフレーム信号を特定することを特徴とする請求項６に記載の制御システム。
【請求項８】
前記保存手段により保存される前記フェールセーフ用データは、前記制御部から与えられることを特徴とする請求項１乃至７のいずれか１項に記載の制御システム。
【請求項９】
前記駆動制御信号生成部は、ノイズの重畳が検出されるごとに、ノイズ重畳の検出に関する履歴情報を記憶することを特徴とする請求項１乃至８のいずれか１項に記載の制御システム。
【請求項１０】
前記履歴情報は、ノイズの重畳を検出した累計回数、ノイズの重畳を連続して検出した連続回数、その連続回数の最大値の少なくとも１つであることを特徴とする請求項９に記載の制御システム。
【請求項１１】
前記駆動制御信号生成部は、前記履歴情報が所定の閾値を超えた場合に、その旨を前記制御部へ通知することを特徴とする請求項９又は１０に記載の制御システム。
【請求項１２】
前記閾値は、前記制御部によって設定されることを特徴とする請求項１１に記載の制御システム。
【請求項１３】
前記駆動制御信号生成部の他に、前記制御対象機器に対して駆動制御信号を出力可能な待機系が設けられ、
前記制御部は、前記通知を受けた場合、前記待機系を作動させて、前記制御対象機器に駆動制御信号を出力することを特徴とする請求項１２に記載の制御システム。
【請求項１４】
前記駆動制御信号生成部は、前記制御部からの要求に応じて、前記履歴情報を前記制御部へ出力することを特徴とする請求項９乃至１３のいずれか１項に記載の制御システム。
【請求項１５】
制御対象機器（３３〜３５）を制御するための制御方法であって、
制御部（１０）において、駆動制御データを含むデータフレーム信号を生成し、シリアル信号として出力する出力ステップと、
駆動制御信号生成部（２０）において、前記データフレーム信号を受信して、パラレル信号に変換することにより、前記制御対象機器の駆動制御信号を生成する生成ステップと、を備え、
前記生成ステップは、受信した前記データフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれる前記データフレーム信号のレベル変化を監視する監視ステップを有し、レベル変化が検出された場合に、前記データフレーム信号にノイズが重畳しているとみなし、受信した前記データフレーム信号に基づく駆動制御信号ではなく、保存しているフェールセーフ用データに基づく駆動制御信号を生成することを特徴とする制御方法。
【請求項１６】
前記制御対象機器として、複数の機器が設けられ、
前記出力ステップでは、１通信周期において、複数の機器のための駆動制御データをそれぞれ含む複数の前記データフレーム信号が出力され、
前記監視ステップにより、複数の前記データフレーム信号のいずれかにおいてノイズの重畳が検出された場合、前記生成ステップでは、前記１通信周期に含まれるすべての前記データフレーム信号について、受信した前記データフレーム信号に基づく駆動制御信号ではなく、前記フェールセーフ用データに基づく駆動制御信号が生成されることを特徴とする請求項１５に記載の制御方法。
【請求項１７】
前記制御対象機器として、複数の機器が設けられ、
前記出力ステップでは、１通信周期において、複数の機器のための駆動制御データをそれぞれ含む複数の前記データフレーム信号が出力され、
前記監視ステップにより、複数の前記データフレーム信号の少なくとも１つにおいてノイズの重畳が検出された場合、前記生成ステップでは、ノイズの重畳が検出された前記データフレーム信号について、受信した前記データフレーム信号に基づく駆動制御信号ではなく、前記フェールセーフ用データに基づく駆動制御信号が生成されることを特徴とする請求項１５に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象機器を制御するための制御システム及び制御方法に関する。
【背景技術】
【０００２】
例えば、特許文献１には、計算装置（マイクロコンピュータ）と、当該計算装置とシリアル多線バスを介して接続された周辺構成素子とを有する制御装置が開示されている。この周辺構成素子は、計算装置から出力されたシリアルデータを、ＵＡＲＴインターフェースにより、出力段に対する相応の信号に変換して出力する。
【０００３】
このように、計算装置と周辺構成素子との間をシリアル多線バスを介して接続するようにすると、計算装置と周辺構成素子との間で信号線や接続端子の数を少なくすることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９−５０７３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、特許文献１の制御装置では、計算装置から周辺構成素子への通信を高速に行えるようにするため、シリアル多線バスとしてマイクロセカンドバスを採用している。このマイクロセカンドバスは、例えば数μｓ周期で最大数十Ｍｂｐｓでの通信を行うことも可能なものである。このように、通信速度が高速になり、その通信信号の周波数が高くなると、通信信号はノイズの影響を受けやすくなるので、ノイズへの対策はより重要になる。
【０００６】
しかしながら、特許文献１の制御装置では、通信信号にノイズが重畳したことを検出することや、ノイズの重畳が検出されたときの対処方法についてはなんら考慮されていない。
【０００７】
ノイズ重畳による通信エラーの発生を検出しようとした場合、一般的には、チェックサム、パリティチェック、ＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）などの手法を用いることが考えられる。
【０００８】
ただし、極短い周期で大量のデータを通信する場合、計算装置及び周辺構成素子において、ソフトウェアにより上述した手法に従って誤り検出符号を算出したり、その誤り検出符号を用いて通信信号の異常の有無を判定したりすることは、時間的な制約から困難である。また、上述した手法に従い、ハードウエアにて対応しようとした場合、計算装置及び周辺構成素子の構成が複雑になり、開発コストや製造コストが増大するという問題が生じる。
【０００９】
さらに、伝送されたデータにノイズが重畳したときの対処として、例えば、ノイズの重畳が検出された時点で、そのデータに基づく制御対象機器の制御を停止してしまうと、却って不具合が生じることもありえる。
【００１０】
本発明は、上述した点に鑑みてなされたものであり、制御部と駆動制御信号生成部との間で高速通信を行う場合であっても、極力簡素な構成にて、ノイズ重畳を検出できるようにするとともに、ノイズの重畳が検出されたときに、制御対象機器に対する制御を安全に継続することが可能な制御システム及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した目的を達成するために、本発明による制御システム（１００）は、
駆動制御データを含むデータフレーム信号を生成し、シリアル信号として出力する制御部（１０）と、
制御部から出力されたデータフレーム信号を受信して、パラレル信号に変換することにより、制御対象機器の駆動制御信号を生成する駆動制御信号生成部（２０）と、を備え、
駆動制御信号生成部は、フェールセーフ用データを保存する保存手段（２９）を有し、受信したデータフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれるデータフレーム信号のレベル変化を監視し、レベル変化を検出した場合には、データフレーム信号にノイズが重畳しているとみなし、受信したデータフレーム信号に基づく駆動制御信号ではなく、フェールセーフ用データに基づく駆動制御信号を生成することを特徴とする
このように、本発明による制御システムでは、駆動制御信号生成部が、受信したデータフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれるデータフレーム信号のレベル変化を監視する。そして、レベル変化を検出した場合には、データフレーム信号にノイズが重畳しているとみなし、データフレーム信号へのノイズの重畳を検出する。従って、データフレーム信号へのノイズの重畳を、駆動制御信号生成部における構成のみで検出することができ、ノイズ重畳を検出するために必要となる構成を簡素化することができる。
【００１２】
また、本発明による制御システムでは、ノイズの重畳が検出されたとき、受信したデータフレーム信号に基づく駆動制御信号ではなく、フェールセーフ用データに基づく駆動制御信号を生成する。このため、ノイズの重畳により異常となったデータフレーム信号に基づく駆動制御信号が、制御対象機器の制御に用いられることがない。さらに、この場合の駆動制御信号は、フェールセーフ用データに基づいて生成されるので、制御対象機器の制御を安全に継続することができる。
【００１３】
また、本発明による制御方法は、
制御部（１０）において、駆動制御データを含むデータフレーム信号を生成し、シリアル信号として出力する出力ステップと、
駆動制御信号生成部（２０）において、データフレーム信号を受信して、パラレル信号に変換することにより、制御対象機器の駆動制御信号を生成する生成ステップと、を備え、
生成ステップは、受信したデータフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれるデータフレーム信号のレベル変化を監視する監視ステップを有し、レベル変化が検出された場合に、データフレーム信号にノイズが重畳しているとみなし、受信したデータフレーム信号に基づく駆動制御信号ではなく、保存しているフェールセーフ用データに基づく駆動制御信号を生成することを特徴とする。
【００１４】
この制御方法により、データフレーム信号へのノイズの重畳の検出や、その検出時の対処について、上述した制御システムと同様の作用効果を奏することができる。
【００１５】
なお、上記括弧内の参照番号は、本発明の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら本発明の範囲を制限することを意図したものではない。
【００１６】
また、上述した特徴以外の、各請求項に記載した本発明の特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る制御システムの概略的な構成を示す構成図である。
【図２】高周波ノイズの重畳により、データフレーム信号が異常となった様子の一例を示した図である。
【図３】図２に示したノイズ重畳部分を拡大して示した図である。
【図４】第１実施形態において、ノイズの重畳が検出されたときに、１通信周期に含まれるデータフレーム信号の中で、ノイズが重畳したデータフレーム信号を特定するための手法について説明するための説明図である。
【図５】第２実施形態において、ノイズの重畳が検出されたときに、１通信周期に含まれるデータフレーム信号の中で、ノイズが重畳したデータフレーム信号を特定するための手法について説明するための説明図である。
【発明を実施するための形態】
【００１８】
（第１実施形態）
以下、本発明の第１実施形態に係る制御システム及び制御方法について、図面を参照しつつ説明する。本実施形態では、制御システムが、車両のエンジンの運転状態を制御するために適用された例について説明する。しかし、本発明による制御システムの制御対象は、エンジンに限られる訳ではなく、その他の機器や装置などを制御対象としても良い。
【００１９】
図１は、本実施形態による制御システム１００の概略的な構成を示す構成図である。図１に示すように、制御システム１００は、制御部としてのマイコン１０と、駆動制御信号生成部としての拡張ＩＣ２０とを有する。
【００２０】
マイコン１０は、エンジン（図示せず）の運転状態を検出するために、図示しない入出力部を介して、各種のセンサの検出信号を取り込む。例えば、マイコン１０は、アクセルペダルの操作量を検出するアクセルペダルセンサ、吸気管に設けられたスロットルバルブの開度を検出するスロットル開度センサ、エンジンの所定クランク角毎にクランク角信号を出力するクランク角センサ、エンジンの吸入空気量を検出するエアフローセンサ、エンジン冷却水の温度を検出する冷却水温センサ、排気中の酸素濃度を検出する酸素濃度センサなどから検出信号を取り込む。
【００２１】
マイコン１０は、公知のように、ＣＰＵ、ＲＯＭ、ＲＡＭなどの構成を有する。そして、ＣＰＵが、ＲＯＭに記憶された各種の演算プログラムを実行することで、現在のエンジンの運転状態に基づき、そのエンジンの運転状態を所望の状態になるように制御するための制御データを演算する。例えば、マイコン１０は、上記各種センサ等から各々検出信号を入力し、それらの検出信号に基づき、制御データとして、点火時期を示す点火データ、燃料噴射時期及びその量を指示する噴射データ、スロットル開度を制御するための駆動データ、燃料ポンプの回転数を制御するための駆動データなどを演算する。
【００２２】
また、マイコン１０は、設定値を含むコマンドデータを出力することにより、拡張ＩＣ２０のＭＳＣコントローラ２２に設けられた、設定部（ＣＮＦＧ）２４、２９に設定値を書き込んだり、書き換えたりすることが可能である。例えば、設定部２４は、１通信周期に含まれるビット数、その１通信周期における各データフレーム信号の開始、終了ビット位置、ノイズ重畳と判定する判定閾値などの各種の設定値を保持している。また、設定部２９は、設定部２４と同様の設定値に加えて、ノイズ重畳と判定されたときに、受信したデータに代えて、後述する各駆動回路３０〜３２へ出力する駆動データを生成するためのフェールセーフ用データも設定値として保持している。このフェールセーフ用データとして、例えば、車両が退避走行を行えるようにエンジンを制御するためのデータが設定される。従って、フェールセーフ用データに基づく駆動データが出力される場合、必ずしも運転者が意図するようなエンジン出力を望めないが、少なくとも車両を退避走行させるためのエンジン出力を発生させることができる。
【００２３】
マイコン１０は、例えば起動時の初期処理として、あるいはソフトのバージョンアップ時などに、上述した各種の設定値を含むコマンドデータを出力して、設定部２４、２９に設定値を書き込む。これにより、マイコン１０から拡張ＩＣ２０へ送信するフレーム構成に変更が合った場合などでも、フレキシブルに対応することが可能となる。ただし、これらの設定値は、マイコン１０が書き込んだり、書き換えたりせず、製造段階において、予め書き込まれていても良い。
【００２４】
マイコン１０及び拡張ＩＣ２０は、それぞれマイクロセカンドチャネル（ＭＳＣ）コントローラ１１、２２を有し、これらＭＳＣコントローラ１１、２２を介して、相互に通信可能に接続されている。ＭＳＣコントローラ１１、２２は、高速にシリアル通信を行うための通信インターフェースであり、例えば複数のデータフレーム信号を数μｓ以内の時間で送信することが可能なものである。
【００２５】
ＭＳＣコントローラ１１は、マイコン１０において演算された制御データやコマンドデータに基づき、データフレーム信号を生成し、ダウンストリーム（ＤＳ）用の送信ラインを用いて、拡張ＩＣ２０のＭＳＣコントローラ２２に送信する。この通信は、クロック同期方式にて行われる。逆に、拡張ＩＣ２０において、例えばノイズ重畳の検出履歴が所定の閾値に達した場合に、ＭＳＣコントローラ２２は、ノイズ重畳の検出履歴を含むデータフレーム信号を生成し、アップストリーム（ＵＳ）用の送信ラインを用いて、マイコン１０のＭＳＣコントローラ１１に送信する。この通信は、非同期方式にて行われる。
【００２６】
ＭＳＣコントローラ１１は、送信すべきデータの種類に応じた数のデータフレーム信号を１通信周期において送信する。例えば、１通信周期において、エンジンの気筒数分の点火データを含むデータフレーム信号、噴射量及び噴射時期を指示する噴射データ（直噴エンジンであれば、気筒数分の噴射データ）を含むデータフレーム信号、スロットルバルブモータの駆動データを含むデータフレーム信号、燃料ポンプモータの駆動データを含むデータフレーム信号などが送信される。
【００２７】
ただし、データフレーム信号は、送信すべきデータの種類毎に区分されていなくても良い。すなわち、１つのデータフレーム信号に、複数の種類の制御データが含まれていても良い。それぞれのデータフレーム信号に、いずれの種類の制御データが含まれているかが事前に定められ、設定部２４，２９にその情報が保持されていれば、各制御データが別個のデータフレーム信号に区分されていなくとも、ＭＳＣコントローラ２２において、各制御データを識別して取得することが可能なためである。
【００２８】
さらに、ＭＳＣコントローラ１１からＭＳＣコントローラ２２へは、クロック送信ラインを介して、クロック信号ＣＬＫ_Ｃが与えられる。このクロック信号ＣＬＫ_Ｃは、ＭＳＣコントローラ２２が、マイコン１０において演算された制御データを、データフレーム信号に載せる際に、各データの単位長さ（ビット）を規定するために用いられるものである。このクロック信号ＣＬＫ_ＣをＭＳＣコントローラ２２に与えることにより、ＭＳＣコントローラ２２では、受信したデータフレーム信号から１ビットごとの信号を得ることができ、データフレーム信号に載せられた各種の制御データを復号することができるようになる。さらに、ＭＳＣコントローラ２２が、そのクロック信号ＣＬＫ_Ｃを用いて、ノイズ重畳の検出履歴を示すデータの単位長さを規定しつつデータフレーム信号に載せることにより、ＭＳＣコントローラ１１において、そのようなデータを復号することができるようになる。
【００２９】
拡張ＩＣ２０は、逓倍回路２１を備えている。この逓倍回路２１は、マイコン１０からのクロック信号ＣＬＫ_Ｃの周波数を、２逓倍以上の所定倍の周波数に変換して出力するものである。逓倍回路２１から出力されるクロック信号ＣＬＫ_Ｍは、ＭＳＣコントローラ２２の通信部２３に入力される。
【００３０】
ＭＳＣコントローラ２２は、通信部２３と、変換部２７とを備えている。通信部２３は、上述した設定値を保持する設定部２４、レベル変動カウンタ部（ＬＣＮ）２５、及びクロックカウンタ部（ＣＣＮ）２６を有する。
【００３１】
レベル変動カウンタ部２５は、受信したデータフレーム信号に対して、１ビット単位で、その１ビットの範囲に含まれるデータフレーム信号のレベル変化の回数をカウントする。受信したデータフレーム信号にノイズが重畳しておらず、正常なデータフレーム信号である場合、１ビットの範囲に含まれるデータフレーム信号のレベル変化の回数は、１以下となる。つまり、直前のビットに対して今回のビットのレベルが変化する場合（Ｌｏｗ→Ｈｉｇｈ、Ｈｉｇｈ→Ｌｏｗ）、レベル変動カウンタ部２５のカウント値は１となる。また、直前のビットに対して今回のビットのレベルが変化しない場合（Ｌｏｗ→Ｌｏｗ、Ｈｉｇｈ→Ｈｉｇｈ）、レベル変動カウンタ部２５のカウント値はゼロとなる。従って、レベル変動カウンタ部２５のカウント値が２以上となった場合、受信したデータフレーム信号に高周波ノイズが重畳して、１ビットの範囲内でレベル変動を生じている可能性が高いといえる。従って、レベル変動カウンタ部２５のカウント値から、データフレーム信号にノイズが重畳したことを検出することができる。なお、レベル変動カウンタ部２５のカウント値がいくつになったらノイズ重畳とみなすかは、設定部２４に設定される判定閾値によって決定される。
【００３２】
クロックカウンタ部２６は、１通信周期において、最初のデータフレーム信号の受信が開始されてからのクロック信号ＣＬＫ_Ｃのクロック数をカウントする。このため、クロックカウンタ部２６のカウント値から、最初のデータフレーム信号の受信が開始されてからの、１通信周期におけるビット位置を定めることができる。
【００３３】
上述した構成を備える通信部２３は、マイコン１０のＭＳＣコントローラ１１との間で、データフレーム信号やクロック信号ＣＬＫ_Ｃの送受信を行う。受信されたデータフレーム信号は、変換部２７に出力される。さらに、通信部２３は、受信したデータフレーム信号にノイズが重畳しているか否かを監視し、ノイズの重畳を検出した場合には、変換部２７に対して、１通信周期に含まれるデータフレーム信号の中で、ノイズ重畳が検出されたデータフレーム信号を特定する情報であるフェールフラグ信号ＦＦ（ｎ）を出力する。通信部２３における、ノイズ重畳の検出手法及びノイズ重畳が検出されたデータフレーム信号を特定する手法については、後に詳細に説明する。
【００３４】
また、通信部２３は、ノイズの重畳が検出されるごとに、その履歴情報を記憶する。通信部２３は、履歴情報として、例えば、ノイズの重畳を検出した累計回数、ノイズの重畳を連続して検出した連続回数、その連続回数の最大値の少なくとも１つを記憶する。なお、ノイズの重畳の連続検出回数に関しては、データフレーム信号における各ビットを単位としてカウントしても良いし、データフレーム信号を単位としてカウントしても良いし、さらには、通信周期を単位としてカウントしても良い。
【００３５】
そして、通信部２３は、履歴情報として記憶した値が、設定部２４に設定値の１つとして保持された所定の閾値を超えた場合、その履歴情報を、マイコン１０に向けて送信する。これにより、マイコン１０において、ノイズの重畳による通信エラーの発生状況を認識することができ、また、システムの異常が生じた場合に、その原因解明にも利用可能となる。なお、ノイズ重畳の検出履歴情報に関しては、マイコン１０からの要求に応じて、拡張ＩＣ２０がマイコン１０に送信するようにしても良い。
【００３６】
変換部２７は、バッファ２８を有している。このバッファ２８は、通信部２３から出力されたデータフレーム信号を一時的に保存するものである。そして、すべてのデータフレーム信号を受信した後、バッファ２８に保存されているデータフレーム信号を用いて、制御データごとにシリアル−パラレル変換を行って、後述する各駆動回路３０〜３２に出力する駆動データを生成する。ただし、通信部２３から、フェールフラグ信号ＦＦ（ｎ）により、データフレーム信号にノイズが重畳していることが通知された場合、受信したデータフレーム信号に基づく駆動データではなく、設定部２９に保持されているフェールセーフ用データに基づく駆動データを駆動回路３０〜３２に出力する。
【００３７】
例えば、点火データに関するフェールセーフ用データとして、点火信号を出力すべきクランク角度が設定部２９に保持される。一方、変換部２７は、外部において算出されたクラング角度を受信し、もしくは、クランク角センサからの信号を取り込んで、クランク角度を算出する。そして、点火データを含むデータフレーム信号にノイズが重畳していることが通知された場合、変換部２７は、クランク角度が、設定部２９に保持されているクランク角度に一致したとき、駆動データとして、点火信号を出力させるための点火データを駆動回路３０に出力する。
【００３８】
また、噴射データに関するフェールセーフ用データとして、例えば燃料噴射を開始すべきクランク角度と、燃料噴射時間とが設定部２９に保持される。そして、噴射データを含むデータフレーム信号にノイズが重畳していることが通知された場合、変換部２７は、クランク角度が、設定部２９に保持されているクランク角度に一致したとき、燃料噴射を開始し、それが燃料噴射時間だけ継続されるように駆動データとしての噴射データを駆動回路３１に出力する。
【００３９】
スロットルバルブモータの駆動データに関するフェールセーフ用データとして、例えばストッロルバルブを所定の一定開度とするためのデータが保持される。また、燃料ポンプモータの駆動データに関するフェールセーフ用データとして、例えば燃料ポンプモータを所定の一定回転数で回転させるためのデータが保持される。そして、スロットルバルブモータの駆動データを含むデータフレーム信号、あるいは燃料ポンプモータの駆動データを含むデータフレーム信号にノイズが重畳していることが通知された場合、変換部２７は、該当するフェールセーフ用データに基づいて駆動回路に対する駆動データを生成する。この結果、駆動回路からフェールセーフ用データに基づく駆動制御信号が出力された場合、スロットルバルブは一定開度となるように駆動され、燃料ポンプモータは一定回転数となるように駆動される。
【００４０】
ここで、変換部２７は、フェールフラグ信号ＦＦ（ｎ）により特定されるノイズの重畳が検出されたデータフレーム信号についてのみ、フェールセーフ用データに基づく駆動制御信号を生成することが好ましい。これにより、ノイズの重畳が検出されなかったデータフレーム信号については、そのまま、駆動対象機器の制御に用いられることになる。そのため、正常に受信したデータフレーム信号を無駄にせず、制御を行うことができる。
【００４１】
拡張ＩＣ２０は、変換部２７から与えられた駆動データに基づき、制御対象機器のアクチュエータ３３〜３５に対して、駆動制御信号を出力する駆動回路３０〜３２を有する。例えば、駆動回路３０は、点火データに基づいて、点火装置のアクチュエータ３３に対して点火信号を出力する。この点火信号の出力により、点火装置は、点火プラグにより火花を発生させる。また、駆動回路３１は、噴射データに基づいて、燃料噴射装置のアクチュエータ３４に対して噴射信号を出力する。この噴射信号の出力により、燃料噴射装置において、燃料噴射弁が開弁され、エンジンに燃料が噴射される。さらに、駆動回路３２は、例えば、ストッロルバルブのアクチュエータ３５に駆動制御信号を出力する。この駆動制御信号により、スロットルバルブの開度が所望の開度となるようにスロットルバルブが制御される。その他にも、燃料ポンプのアクチュエータに駆動制御信号を出力する駆動回路などが設けられ、その駆動制御信号により、燃料ポンプの回転数が所望の回転数となるように制御されたりする。
【００４２】
次に、図２及び図３を参照しつつ、通信部２３における、データフレーム信号にノイズが重畳した場合の検出手法について説明する。
【００４３】
図２に示すように、マイコン１０から拡張ＩＣ２０へ送信されるデータフレーム信号に高周波ノイズが重畳した場合、データフレーム信号が異常となる。その異常となったデータフレーム信号に基づく駆動制御信号を用いて制御対象機器を制御すると、意図しない制御が行われる虞がある。そのため、本実施形態では、高周波ノイズの重畳によるデータフレーム信号の異常を検出する。
【００４４】
図３は、図２に示したノイズ重畳部分を拡大して示したものであり、具体的な検出手法を、この図３を参照して説明する。まず、通信部２３は、マイコン１０から与えられたクロック信号ＣＬＫ_Ｃの立ち上がりで、レベル変動カウンタ部２５をリセットする。これにより、レベル変動カウンタ部２５のカウント値は、クロック信号ＣＬＫ_Ｃの各周期が始まるごとに、ゼロにリセットされることになる。
【００４５】
そして、通信部２３は、逓倍回路２１によってクロック信号ＣＬＫ_Ｃよりも周波数が高められたクロック信号ＣＬＫ_Ｍの立ち上がり及び立下りのタイミングにて、受信したデータフレーム信号をサンプリングする。サンプリングしたデータフレーム信号のレベルが、直前にサンプリングしたデータフレーム信号のレベルと異なっている場合、通信部２３は、レベル変動カウンタ部２５のカウント値を１だけ大きくする。
【００４６】
クロック信号ＣＬＫ_Ｃの１周期は、データフレーム信号の１ビットに対応している。このため、高周波ノイズが重畳することなく、データフレーム信号の通信が行われた場合、上述したように、受信したデータフレーム信号において、１ビットの範囲において、信号レベルが変化する回数は１以下となる。しかし、図３に示すように、データフレーム信号に高周波ノイズが重畳した場合には、データフレーム信号の信号レベルは、１ビットの範囲内において、２回以上変化する場合がある。図３には、高周波ノイズの重畳により、データフレーム信号の信号レベルが３回変化した例を示している。このような理由から、通信部２３は、レベル変動カウンタ部２５のカウント値に基づき、受信したデータフレームにノイズが重畳したことを検出することができる。
【００４７】
このように、本実施形態による制御システムでは、データフレーム信号へのノイズの重畳を、拡張ＩＣ２０における通信部２３だけで検出することができ、ノイズ重畳を検出するために必要となる構成を簡素化することができる。
【００４８】
ただし、クロック信号ＣＬＫ_Ｃの立ち上がりから所定の時間が経過するまでの期間は、データフレーム信号に含まれる各ビットの信号レベルに応じて、データフレーム信号のレベル変化が生じる期間であり、そのレベルが不安定となる。そのため、クロック信号ＣＬＫ_Ｃの立ち上がりから所定期間は、マスク期間とされる。このマスク期間中は、データフレーム信号の信号レベルが変化したか否かの判定が中止される。従って、図３に示すように、マスク期間中に、データフレーム信号のレベル変化が生じても、レベル変動カウンタ部２５のカウント値が増加されることはない。
【００４９】
次に、図４を参照して、通信部２３がノイズの重畳を検出した場合に、１通信周期に含まれるデータフレーム信号の中で、ノイズ重畳が検出されたデータフレーム信号を特定するための手法について説明する。
【００５０】
上述したように、通信部２３は、１通信周期において、最初のデータフレーム信号（フレーム１）の受信が開始されてからのクロック信号ＣＬＫ_Ｃのクロック数をカウントするクロックカウンタ部２６を有している。このクロックカウンタ部２６は、図４に示すように、１通信周期が終了すると、カウント値がゼロにリセットされる。そのため、次の通信周期において、最初のデータフレーム信号（フレーム１）の通信の開始によって、クロックカウンタ部２６のカウント値がゼロから徐々に増加する。
【００５１】
なお、１通信周期の最初のデータフレーム信号であるか否かは、各種の手法によって識別することが可能である。例えば、規定のビット数分、信号レベルがＬｏｗである状態が継続し、その後、データフレーム信号の通信が開始されたときに、そのデータフレーム信号を１通信周期の最初のデータフレーム信号と識別することができる。また、最初のデータフレーム信号の先頭に、最初のデータフレーム信号を示す識別コードを付与して、その識別コードに基づいて、最初のデータフレーム信号であることを識別しても良い。
【００５２】
通信部２３の設定部２４は、上述したように、１通信周期に含まれるビット数、その１通信周期における各データフレーム信号の開始、終了ビット位置を保持している。このため、ノイズの重畳が検出されたときのクロックカウンタ部２６のカウント値を、設定部２４が保持する１通信周期における各データフレーム信号の開始、終了ビット位置に当て嵌めることにより、ノイズの重畳が検出されたデータフレーム信号を特定することができる。例えば、図４には、ノイズの重畳が検出されたデータフレーム信号として、最初のデータフレーム信号（フレーム１）と３番目のデータフレーム信号（フレーム３）とが特定された例を示している。
【００５３】
ノイズの重畳が検出されたデータフレーム信号が特定されると、通信部２３は、フェールフラグ信号ＦＦ（ｎ）を用いて、ノイズ重畳が検出されたデータフレーム信号を変換部２７に通知する。そのため、通信部２３は、１通信周期に含まれるデータフレーム信号の数に対応する数のフェールフラグ信号ＦＦ（ｎ）を出力するように構成されている。そして、通信部２３は、ノイズの重畳を検出したのが最初のデータフレーム信号（フレーム１）であると特定した場合、その最初のデータフレーム信号に対応するフェールフラグ信号ＦＦ（１）をオンする。また、ノイズの重畳を検出したのが２番目のデータフレーム信号（フレーム２）であると特定した場合、その２番目のデータフレーム信号に対応するフェールフラグ信号ＦＦ（２）をオンする。さらに、ノイズの重畳を検出したのが３番目のデータフレーム信号（フレーム３）であると特定した場合、その３番目のデータフレーム信号（フレーム３）に対応するフェールフラグ信号ＦＦ（３）をオンする。そして、各フェールフラグ信号ＦＦ（ｎ）は、変換部２７が、各駆動回路３０〜３２へ駆動データを出力するときにクリアされ、すべてオフされる。
【００５４】
なお、図４においては、１通信周期に、３個のデータフレーム信号が含まれ、フェールフラグ信号ＦＦ（ｎ）の数も３とした例を示しているが、データフレーム信号及びフェールフラグ信号ＦＦ（ｎ）の数は３に限られる訳ではない。
【００５５】
そして、フェールフラグ信号ＦＦ（ｎ）を変換部２７に出力することにより、変換部２７は、１通信周期に含まれる複数のデータフレーム信号の中で、ノイズの重畳が検出されたデータフレーム信号を認識することができるようになる。そのため、変換部２７は、ノイズの重畳が検出されたデータフレーム信号に関してのみ、代替的に、フェールセーフ用データに基づく駆動制御信号を生成することができる。
【００５６】
このように、本実施形態による制御システムでは、ノイズの重畳が検出されたとき、受信したデータフレーム信号に基づく駆動制御信号ではなく、フェールセーフ用データに基づく駆動制御信号が生成される。このため、ノイズの重畳により異常となったデータフレーム信号に基づく駆動制御信号が、制御対象機器の制御に用いられることがない。さらに、この場合の駆動制御信号は、フェールセーフ用データに基づいて生成されるので、制御対象機器の制御を安全に継続することができる。
【００５７】
（第２実施形態）
次に、本発明の第２実施形態に係る制御システム及び制御方法について、図５を参照して説明する。なお、本実施形態に係る制御システムは、上述した第１実施形態に係る制御システムと、ほぼ同様に構成されるので、構成に関する説明は省略する。
【００５８】
本実施形態に係る制御システムと、第１実施形態に係る制御システムとの相違点は、ノイズ重畳が検出されたデータフレーム信号を特定するための手法にある。そのため、以下に、第２実施形態の制御システムにおける、ノイズ重畳が検出されたデータフレーム信号を特定するための手法について説明する。
【００５９】
本実施形態においては、１通信周期に含まれる各データフレーム信号が、それぞれの先頭にフレームの先頭を表す先頭情報を有するとともに、それぞれの後尾にフレームの後尾を表す後尾情報を有していることが前提となる。ただし、後尾情報は省略されても良い。
【００６０】
そして、本実施形態では、図５に示すように、第１実施形態のクロックカウンタ部２６に代えて、先頭情報及び後尾情報に基づいて、フレーム数をカウントするフレームカウンタ部ＦＣＮを用いる。このフレームカウンタ部ＦＣＮは、クロックカウンタ部２６と同様に、１通信周期が終了すると、カウント値がゼロにリセットされる。その状態で、通信部２３において、最初のデータフレーム信号（フレーム１）の先頭情報が検出されると、通信部２３が、フレームカウンタ部ＦＣＮのカウント値を１だけ増加する。その後、フレーム１の後尾情報が検出された後に、フレーム２の先頭情報が検出されたとき、フレームカウンタ部ＦＣＮのカウント値が２に増加される。以降、同様に、順番に現フレームの後尾情報と次フレームの先頭情報が検出されたことを条件として、フレームカウンタ部ＦＣＮのカウント値が１ずつ増やされる。
【００６１】
従って、レベル変動カウンタ部２５のカウント値が所定値（例えば、２）以上となり、ノイズの重畳が検出されたときに、フレームカウンタ部ＦＣＮのカウント値を参照することにより、いずれのデータフレーム信号においてノイズが重畳したのかを特定することができる。
【００６２】
以上、本発明の好ましい実施形態について説明したが、本発明は上述した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々、変形して実施することが可能である。
【００６３】
例えば、上述した各実施形態では、フェールフラグ信号ＦＦ（ｎ）により特定されるノイズの重畳が検出されたデータフレーム信号についてのみ、フェールセーフ用データに基づく駆動制御信号が生成される例について説明した。
【００６４】
しかしながら、変換部２７は、１通信周期に属する複数のデータフレーム信号のいずれかにおいてノイズの重畳が検出された場合、その１通信周期に属するすべてのデータフレーム信号について、受信したデータフレーム信号に基づく駆動制御信号ではなく、フェールセーフ用データに基づく駆動制御信号を生成しても良い。この場合、通信部２３において、ノイズが重畳したデータフレーム信号を特定する必要が無いので、クロックカウンタ部２６やフレームカウンタ部ＦＣＮを省略できるなど、通信部２３の構成を簡略化することが可能になる。
【００６５】
また、上述した実施形態では、ノイズ重畳の検出履歴が所定の閾値を超えた場合に、ノイズ重畳の検出履歴情報を、マイコン１０に送信するようにした。この場合、マイコン１０がシステムに対するフェールセーフ処理を実行するようにしても良い。例えば、拡張ＩＣ２０の他に、駆動回路３０〜３２に駆動データを出力可能な予備の制御系を設けておく。この予備の制御系は、拡張ＩＣ２０が正常に動作している間は、なんら動作せず、単に待機状態を維持する。しかし、マイコン１０が、検出履歴情報に基づき、マイコン１０と拡張ＩＣ２０間の通信がノイズの影響によって正常に行い得ない状況になったと判定すると、マイコン１０は予備の制御系を動作させる。これにより、正常な駆動データを出力しえない拡張ＩＣ２０に代わり、予備の制御系によって、駆動回路３０〜３２に駆動データを出力させることが可能となる。
【符号の説明】
【００６６】
１０…マイコン、１１…ＭＳＣコントローラ、２０…拡張ＩＣ、２１…逓倍回路、２２…ＭＳＣコントローラ、２３…通信部、２４…設定部、２５…レベルカウンタ部、２６…クロックカウンタ部、２７…変換部、２８…バッファ、２９…設定部、３０−３２…駆動回路、３３−３５…アクチュエータ
【図１】
2015102910.tif 000003
【図２】
2015102910.tif 000004
【図３】
2015102910.tif 000005
【図４】
2015102910.tif 000006
【図５】
2015102910.tif 000007