(57)【要約】【課題】パルス入力信号が入力される入力回路に対するソフトウエア処理の開始タイミングの遅れに起因した不適切な信号処理の発生を防止できる信号処理装置を提供する。【解決手段】パルス入力信号の有効エッジの発生に基づく割込み要求に応じて所定処理を開始する際の開始時刻を取得し(ステップＳＴ１)、パルス入力信号の信号レベルを取得し(ステップＳＴ２)、パルス入力信号の有効エッジの発生時刻（キャプチャ値）を取得し(ステップＳＴ３)、開始時刻と有効エッジの発生時刻(キャプチャ値)との時間関係を判断し（ステップＳＴ４）、その関係に応じた処理を選択的に実行する（ステップＳＴ５、ＳＴ６又はＳＴ８）。【選択図】図３
2008002410.tif 000002
【特許請求の範囲】
【請求項１】
パルス入力信号の有効エッジの発生に基づく割込み要求に応じて所定処理を開始する際の開始時刻を取得する開始時刻取得手段と、
前記所定処理の開始時刻を取得した後に、前記パルス入力信号の有効エッジの発生時刻を取得するエッジ発生時刻取得手段と、
前記所定処理の開始時刻と前記有効エッジの発生時刻との時間関係に応じた処理を選択的に実行する処理手段と、
を有することを特徴とする信号処理装置。
【請求項２】
前記パルス入力信号から予め設定された有効エッジを検出すると共にこの有効エッジの発生時刻を記憶するインプットキャプチャ機能をもつ入力回路を有し、
前記エッジ発生時刻取得手段は、前記入力回路に記憶された前記有効エッジの発生時刻を読み出す、ことを特徴とする請求項１に記載の信号処理装置
【請求項３】
前記処理手段は、前記所定処理の開始時刻を取得した後前記有効エッジの発生時刻を取得する前に前記パルス入力信号の信号レベルを取得し、前記所定処理の開始時刻よりも前記有効エッジの発生時刻が後である場合に、前記パルス入力信号の信号レベルを再度取得する処理を実行する、ことを特徴とする請求項１又は２に記載の信号処理装置。
【請求項４】
前記処理手段は、前記パルス入力信号の信号レベルを再度取得したのちに、前記パルス入力信号の有効エッジの発生に基づく割込みの発生を禁止する処理を実行する、ことを特徴とする請求項３に記載の信号処理装置。
【請求項５】
前記開始時刻取得手段及び前記エッジ発生時刻取得手段は、共通のタイマから前記所定処理の開始時刻と前記有効エッジの発生時刻とを取得する、ことを特徴とする請求項１ないし４のいずれかに記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、エンジンの電子制御装置等に適用される信号処理装置に関する。
【背景技術】
【０００２】
例えば、エンジン制御の分野においては、クランク軸に設けられたクランク軸センサからのパルス状のパルス入力信号を、いわゆるインプットキャプチャ機能を備える入力回路で受け、このパルス入力信号のエッジや信号レベルを検出して、パルス入力信号のパルス間隔や周期を計測する処理や、パルス入力信号のエッジの発生に同期した処理をソフトウエアにより実行することが行われている。
ここで、インプットキャプチャ機能とは、有効エッジの発生を検出すると共に、有効エッジが発生した際の時刻（タイマ値）をラッチ（記録）できる機能をいう。すなわち、信号の立ち上がり及び／又は立下りで割込み信号を発生させるとともに、タイマと連動して割込み信号の発生時刻を記録できる機能である。このインプットキャプチャ機能を利用することにより、パルス幅やパルス周期を正確に計測できると共に、信号の立ち上がり及び／又は立下りに同期させた割込み処理を実行することができる。尚、インプットキャプチャ機能については、例えば、特許文献１等を参照。
【特許文献１】特開２００４−２３９７７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記したインプットキャプチャ機能を利用したソフトウエア処理においては、有効エッジが発生した直後にその有効エッジに対応する信号レベルを読み取れば、その有効エッジの向きが立ち上がりなのか、あるいは、立下りなのかを判断することができる。
しかしながら、種々の要因(例えば、より優先順位の高い処理が実行されている等)により、有効エッジの発生時（ハードウエア処理による割込み信号の発生時）とソフトウエア処理による信号レベルの読み取り時との間にタイムラグ（時間差）が発生することがある。タイムラグが発生すると、その間に新たな有効エッジが発生する可能性があり、信号レベルを読み取る前に新たな有効エッジが発生した場合には、誤った信号レベルを取得してしまうことになる。この誤った信号レベル情報を利用してソフトウエア処理を実行すると、エラー等が発生する可能性がある。
また、図１に示すように、一定期間だけ割り込み処理をマスキングしたのち、マスキングを解除したような場合にも、同様の問題が発生する。具体的には、エンジン制御では、スタータ起動の際に発生するノイズ等の影響を除去するため、一定期間割り込み処理をさせないマスキング処理を実行するが、図１に示すように、有効エッジ発生時刻Ｔ１を取得したのちに、マスキングが解除されてソフトウエアによる割込み処理Ｐ１により信号レベルを読み取った場合に、その信号レベルが新たな有効エッジ発生時刻Ｔ２以前の値か、それとも、新たな有効エッジ発生時刻Ｔ２以降の値のいずれであるかを確定することができなかった。このため、誤った信号レベル情報を使用する可能性があった。
【０００４】
本発明は、上記の事情に鑑みて成されたものであり、その目的とするところは、パルス入力信号が入力される入力回路に対するソフトウエア処理の処理の開始タイミングの遅れに起因した不適切な信号処理の発生を防止できる信号処理装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係る信号処理装置は、パルス入力信号の有効エッジの発生に基づく割込み要求に応じて所定処理を開始する際の開始時刻を取得する開始時刻取得手段と、所定処理の開始時刻を取得した後に、パルス入力信号の有効エッジの発生時刻を取得するエッジ発生時刻取得手段と、所定処理の開始時刻と有効エッジの発生時刻との時間関係に応じた処理を選択的に実行する処理手段とを有することを特徴としている。
この構成によれば、所定処理の開始時刻と有効エッジの発生時刻との時間関係に応じた処理が選択的に実行されるので、有効エッジの発生に対して所定処理の開始タイミングが遅れることに起因する不具合の発生を抑制又は防止できる。
【０００６】
上記構成において、パルス入力信号から予め設定された有効エッジを検出すると共にこの有効エッジの発生時刻を記憶するインプットキャプチャ機能をもつ入力回路を有し、エッジ発生時刻取得手段は、入力回路に記憶された有効エッジの発生時刻を読み出す、構成を採用できる。
また、上記構成において、処理手段は、所定処理の開始時刻を取得した後有効エッジの発生時刻を取得する前にパルス入力信号の信号レベルを取得し、所定処理の開始時刻よりも有効エッジの発生時刻が後である場合に、パルス入力信号の信号レベルを再度取得する処理を実行する、構成を採用できる。
さらに、上記構成において、処理手段は、パルス入力信号の信号レベルを再度取得したのちに、パルス入力信号の有効エッジの発生に基づく割込みの発生を禁止する処理を実行する、構成を採用できる。
また、上記構成において、開始時刻取得手段及びエッジ発生時刻取得手段は、共通のタイマから所定処理の開始時刻と有効エッジの発生時刻とを取得する、構成を採用できる。
【発明の効果】
【０００７】
本発明によれば、パルス入力信号が入力される入力回路に対するソフトウエア処理の開始タイミングの遅れに起因した不適切な信号処理の発生を防止できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図２は、本発明の一実施形態に係る信号処理装置のハードウエア構成を示す図である。
この信号処理装置は、マイクロコンピュータ（以下、マイコン）１００、マイコン１００に接続されたＲＡＭ（ランダムアクセスメモリ）１１０、入力回路としてのマイコン周辺回路１０等から構成されており、例えば、エンジンの電子制御装置に適用され、後述するパルス検出処理を実行する他、燃料噴射制御部や点火制御等を実行する。
【０００９】
マイコン１００は、ＲＯＭ１２０に記憶された各種ソフトウエアをＲＡＭ１１０に読み出し、このソフトウエアを実行する。なお、マイコン１００の具体的な処理については後述する。また、本発明の開始時刻取得手段、エッジ発生時刻取得手段、処理手段等は、マイコン１００、ＲＯＭ１２０及びＲＡＭ１２０に記憶された所要のソフトウエア等により構成される。
【００１０】
マイコン周辺回路１０は、図２に示すように、有効エッジ検出回路２０、フリーランタイマ３０、キャプチャレジスタ４０、割込みフラグレジスタ５０、割込みコントローラ６０、入力ポート７０等から構成されている。このマイコン周辺回路１０は、いわゆるインプットキャプチャ機能を備えており、後述するように、パルス入力信号の有効エッジの発生を有効エッジ検出回路２０で検出すると共に有効エッジが発生した際の時刻（タイマ値）をキャプチャレジスタ４０でラッチ（記録）できるように形成されている。パルス入力信号は、例えば、エンジンのクランク軸に設けられたクランク軸センサ、車速センサ等からのパルス状の信号で構成される。
【００１１】
有効エッジ検出回路２０は、パルス入力信号が入力されて、その有効エッジ（立ち上がり及び／又は立下り）を検出し、検出信号をキャプチャレジスタ４０及び割込みフラグレジスタ５０へ出力する。尚、有効エッジ検出回路２０において有効と判断される有効エッジは、マイコン１００のソフトウエア処理により設定される。
【００１２】
フリーランタイマ３０は、例えば、１６ビットからなり、時間の経過と共にカウントアップしていき、オーバフローすると初期値に戻ってカウントアップを繰り返すように形成されている。
【００１３】
キャプチャレジスタ４０は、有効エッジ検出回路２０から有効エッジの検出信号が入力されると、フリーランタイマ３０のカウントするタイマ値（時刻）をラッチしてこれを記録する。尚、キャプチャレジスタ４０に記録されたタイマ値は、有効エッジ検出回路２０から有効エッジの検出信号が入力される毎に更新される。
【００１４】
割込みフラグレジスタ５０は、有効エッジ検出回路２０から有効エッジの検出信号が入力されると、割込みフラグをオン（０から１に）する。この割込みフラグは、マイコン１００のソフトウエア処理によりクリア（オフ）される。
【００１５】
割込みコントローラ６０は、割込みフラグレジスタ５０の割込みフラグがオンすると、各種の割込み要求信号ＩＲ０〜ＩＲＮを発生させて、これをマイコン１００へ出力する。尚、割込み要求信号ＩＲ０〜ＩＲＮは、マイコン１００のソフトウエア処理による設定（割り込みマスク）に応じて発生する。
【００１６】
入力ポート７０は、パルス入力信号が入力されて、その信号レベルを検出する。尚、入力ポート７０の検出した信号レベルは、マイコン１００のソフトウエア処理により読み出される。
【００１７】
次に、マイコン１００による割込み処理の一例を図３に示すフローチャートを参照して説明する。
入力パルス信号の有効エッジの発生により割り込みが発生し、割込みコントローラ６０から割込み信号がマイコン１００に入力されると、マイコン１００は割込み信号の優先度や他の処理の状況に応じて、図３に示す割込み処理ルーチンを開始する。したがって、図３に示す割込み処理ルーチンは、入力パルス信号の有効エッジの発生に完全に同期して実行されるわけではない。
【００１８】
図３に示す割込み処理ルーチンでは、マイコン１００は、先ず、フリーランタイマ３０からタイマ値を読み出して処理開始時刻を取得する(ステップＳＴ１)。
ここで、ステップＳＴ１の処理においては、図４（Ａ）に示すように、有効エッジが発生してキャプチャレジスタ４０にタイマ値（キャプチャ値）ＣＰがラッチされた直後に処理開始時刻Ｔｎが（１）に示すタイミングでフリーランタイマ３０から読み出される場合もあるし、図４（Ｂ）に示すように、フリーランタイマ３０から（１）のタイミングで処理開始時刻Ｔｎを読み出した直後に有効エッジが発生してキャプチャレジスタ４０にタイマ値（キャプチャ値）ＣＰがラッチされる場合もある。
【００１９】
次いで、入力ポート７０にアクセスしてパルス入力信号の信号レベルを取得する(ステップＳＴ２)。パルス入力信号の信号レベルを取得する理由は、対応する有効エッジが立ち上がりか立ち下がりかを判断する等のためである。
例えば、図４（Ａ）に示すケースでは、（２）のタイミングで信号レベルが読み出される（この場合には“Ｈ”レベル）。また、図４（Ｂ）に示すケースにおいても同様に（２）のタイミングで信号レベルが読み出される（この場合には“Ｌ”レベル）。
【００２０】
次いで、キャプチャレジスタ４０からキャプチャ値（有効エッジ発生時刻）ＣＰを読み出す（ステップＳＴ３）。
図４（Ａ）に示すケースにおいて、（３）のタイミングで読み出されたキャプチャ値ＣＰは、（２）のタイミングで取得した信号レベル（“Ｈ”レベル）と整合している。
一方、図４（Ｂ）に示すケースにおいては、（２）のタイミングから（３）のタイミングの間に新たな有効エッジが発生しており、（３）のタイミングで読み出されたキャプチャ値ＣＰは、２）のタイミングで取得した信号レベル（“Ｌ”レベル）と整合していない。また、この場合、（２）のタイミングから（３）のタイミングの間に新たな有効エッジが発生して、割り込みフラグレジスタの割込みフラグがオンした状態となっている。
【００２１】
次いで、フリーランタイマ３０から取得した処理開始時刻Ｔｎとキャプチャレジスタ４０から取得したキャプチャ値（有効エッジ発生時刻）ＣＰの値を比較し(ステップＳＴ４)、処理開始時刻Ｔｎのほうが大きい（時間的に先）の場合には、図４（Ａ）のケース、すなわち、キャプチャ値ＣＰと信号レベルとが整合が取れている場合と判断し、取得したキャプチャ値ＣＰ、信号レベル等を使用して所定の信号処理(ソフトウエア処理)を実行する(ステップＳＴ７)。
【００２２】
一方、ステップＳＴ４において、処理開始時刻Ｔｎのほうが小さい（時間的に後）の場合には、図４（Ｂ）のケース、すなわち、キャプチャ値ＣＰと信号レベルとの整合が取れていない場合と判断する。この場合には、図４（Ｂ）に示す（４）のタイミングで、再び、入力ポート７０にアクセスしてパルス入力信号の信号レベルを取得する(ステップＳＴ５)。これにより、ステップＳＴ３において取得したキャプチャ値ＣＰと整合するパルス入力信号の信号レベルが新たに獲得できる。
この状態においては、図４（Ｂ）に示したように、（２）と（３）の間で有効エッジが発生したことから、割込みフラグレジスタ５０の割込みフラグはオンしたままの状態となっており、不要な割り込み処理が発生する可能性がある。このため、ソフトウエア処理により割込みフラグレジスタ５０の割込みフラグをクリア(オフ)し(ステップＳＴ６)、その後、取得したキャプチャ値ＣＰ、新たに取得した信号レベル等を使用して所定の信号処理(ソフトウエア処理)を実行する(ステップＳＴ７)。
【００２３】
以上のように、本実施形態によれば、マイコン１００は、処理開始時刻Ｔｎ、信号レベル、キャプチャ値（有効エッジ発生時刻）ＣＰの順でマイコン周辺回路１０からデータを取得して、処理開始時刻Ｔｎと有効エッジ発生時刻ＣＰとの時間関係に応じて、パルス入力信号の信号レベルを再度取得する処理を実行するため、キャプチャ値（有効エッジ発生時刻）ＣＰと整合した信号レベルを確実に取得することができ、ソフトウエア処理（割込み処理）の開始タイミングの遅れに起因した不適切な信号処理が発生するのを防止できる。
【００２４】
上記実施形態では、本発明の信号処理装置をエンジン制御に用いる場合について説明したが、これに限定されるわけではなく、他の電子制御装置に対しても適用可能である。
【図面の簡単な説明】
【００２５】
【図１】マスキングの解除の後に発生する問題を説明するための図である。
【図２】本発明の一実施形態に係る信号処理装置のハードウエア構成を示す図である。
【図３】マイコンによる割込み処理の一例を示すフローチャートである。
【図４】（Ａ）は開始時刻がキャプチャ値の示す時刻よりも先の場合を説明するための図、（Ｂ）は開始時刻がキャプチャ値の示す時刻よりも後の場合を説明するための図である。
【符号の説明】
【００２６】
１０…マイコン周辺回路（入力回路）
２０…有効エッジ検出回路
３０…フリーランタイマ
４０…キャプチャレジスタ
５０…割込みフラグレジスタ
６０…割込みコントローラ
７０…入力ポート
１００…マイコン
１１０…ＲＡＭ
１２０…ＲＯＭ
【図１】
2008002410.tif 000003
【図２】
2008002410.tif 000004
【図３】
2008002410.tif 000005
【図４】
2008002410.tif 000006