(57)【特許請求の範囲】
【請求項１】
ステッピングモータを駆動させるための各相の駆動パルスを発生させ、それら駆動パルスの所定のエッジにて割り込み処理を行うとともに、内蔵する複数のタイマに次回の割り込み処理を行うエッジタイミングをそれぞれセットするマイクロコンピュータと、前記駆動パルスについて正相および逆相の出力を生成するとともに、これら正相および逆相の出力を前記ステッピングモータに対して出力するモータ駆動回路とを備えるステッピングモータの制御装置であって、
前記マイクロコンピュータは、前記各相の駆動パルスのいずれか一つの相に対する駆動パルスのエッジにて行う割り込み処理において、当該駆動パルスのパルス時間を算出してこの算出したパルス時間を全ての相の駆動パルスのパルス時間として設定するとともに、該設定したパルス時間に基づいて前記各相のそれぞれについての次回の割り込み処理を行うエッジタイミングを算出し、これら算出した各相のエッジタイミングを前記複数のタイマに各別にセットすることを特徴とするステッピングモータの制御装置。
【請求項２】
ステッピングモータが正逆何れの方向に駆動されるかに応じて各駆動パルスのうちで先行する駆動パルスを判定し、該先行する駆動パルスの割り込み処理において前記パルス時間を算出するようにした請求項１に記載のステッピングモータの制御装置。
【請求項３】
ステッピングモータの駆動開始時において、初回サイクルにおける前記各相の駆動パルスのパルス時間を一括して設定すると共に、全ての駆動パルスについての次回のエッジタイミングを前記複数のタイマに各別にセットする請求項１または２に記載のステッピングモータの制御装置。
【請求項４】
前記複数のタイマは、前記駆動パルスの立ち下がり時刻及び立ち上がり時刻をそれぞれ同時にセットできるものである請求項１〜３の何れか一項に記載のステッピングモータの制御装置。
【請求項５】
ステッピングモータの駆動開始時において、それ以降必要となる制御サイクル数を設定し、その後の前記割り込み処理では、前記設定した制御サイクル数に達したかどうかで次回以降のステッピングモータ駆動の形態を判定する請求項１〜４の何れか一項に記載のステッピングモータの制御装置。
【請求項６】
請求項５に記載のステッピングモータの制御装置において、ステッピングモータの動作速度を多段に切り替えるものであり、速度切り替えのためのサイクル数を制御開始当初に設定し、その後の前記割り込み処理では、その速度切り替えのためのサイクル数に到達した時点でパルス時間を変更してモータ動作速度を切り替えるステッピングモータの制御装置。
【請求項７】
請求項６に記載のステッピングモータの制御装置において、ステッピングモータを目標位置まで駆動させる際、スローアップ・スローダウン制御を実施してステッピングモータの動作速度を多段に切り替えるステッピングモータの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ステッピングモータをパルス制御するためのステッピングモータの制御装置に関するものである。
【０００２】
【従来の技術】
従来より、一般的なステッピングモータのパルス制御方式としては、マイコン（マイクロコンピュータ）により実現されるデジタル制御と、ハードウエア回路により実現されるアナログ制御とがあり、そのうちデジタル制御は、アナログ制御のように専用回路を必要とすることがないため、コストを比較的低く抑えることができる。また、デジタル制御には割り込み周期制御やベース周期制御がある。
【０００３】
割り込み周期制御は、マイコンの時間割り込み機能、又は角度割り込み機能を使用した制御であり、同制御では、一定の時間周期又は一定の角度周期で割り込み処理が起動される。そして、その割り込み処理にてステッピングモータに対する駆動パルスが操作される。実際には、出力ポートの論理レベルがＨレベル又はＬレベルにセットされる。これにより、所定時間周期の駆動パルスが出力され、ステッピングモータが駆動される。また、ベース周期制御は、マイコンのベースルーチンで周期処理される制御であり、同制御では、ベースルーチン内の所定ステップに到達すると、当該ステップにて前記同様、駆動パルスが操作され、ステッピングモータが駆動される。
【０００４】
【発明が解決しようとする課題】
しかしながら、例えばエンジン制御用の電子制御装置（エンジンＥＣＵ）では、点火、燃料噴射等の主要制御での割り込み処理（や割込み禁止処理）によって周期処理の起動待ちが発生することがある。その際、その処理待ちは駆動パルスの制御待ちに繋がるため、パルス誤差として現れる。また、パルスの高周波数制御時など、誤差がパルス幅の割合に近くなると、励磁時間不足等を招き、結果として動作不良が発生する。一方、ベース周期処理でステッピングモータのパルス制御を実施する場合、一般のベース演算処理と同様に前記パルス制御にかかる処理が割り込み処理の間で実行されるため、演算負荷の高いエンジン高回転域では処理が重なって処理待ちが発生する。この処理待ちの間は駆動パルスが操作できないため、処理待ちがそのままパルス誤差として発生する。
【０００５】
本発明は、上記問題に着目してなされたものであって、その目的とするところは、駆動パルスの精度を確保し、ひいてはステッピングモータの制御性を向上させることができるステッピングモータの制御装置を提供することである。
【０００６】
【課題を解決するための手段】
請求項１に記載の発明では、マイクロコンピュータに内蔵した複数のタイマが用いられ、該タイマにセットした時刻、すなわち次回の割り込み処理を行うエッジタイミングによりステッピングモータへの相毎の駆動パルスが操作される。この場合、マイクロコンピュータのタイマ機能を用いて各相の駆動パルスが操作されるため、ソフトウエア処理の割り込み等で駆動パルスをその都度操作していた従来技術とは異なり、処理待ちに起因する制御誤差（パルス誤差）等の問題が解消される。また特に、マイクロコンピュータは、各相の駆動パルスの所定のエッジにて割り込み処理を行い、その際の各割り込み処理により、各々該当する駆動パルスの次回の割り込み処理を行う各相のエッジタイミングを前記複数のタイマに各別にセットする。なお、前記各相の駆動パルスのいずれか一つの相に対する駆動パルスのパルス時間を算出し、この算出したパルス時間を全ての相の駆動パルスのパルス時間として設定するとともに、該設定したパルス時間に基づいて前記各相のそれぞれについての前記エッジタイミングを算出する。これにより、各相の駆動パルスが複数の割り込み処理に振り分けられて操作されることとなるため、割り込み周期制御やベース周期制御にて一元的に駆動パルスを操作していた従来技術とは異なり、駆動パルスが個々に独立して操作されるようになる。従って、本発明によれば、駆動パルスの精度を確保することができ、ひいてはステッピングモータの制御性を向上させることができるようになる。
【０００８】
さらに、各駆動パルスのエッジにて行う割り込み処理に際し、全ての割り込み処理の度にパルス時間が設定されるのではなく、何れか一つの割り込みでパルス時間が設定され、それ以外の割り込みではタイマの時刻セットのみが行われる。従って、駆動パルスの立ち下げ及び立ち上げにかかるマイクロコンピュータの演算負荷を軽減することができる。
【０００９】
またこの場合、請求項２に記載したように、ステッピングモータが正逆何れの方向に駆動されるかに応じて各駆動パルスのうちで先行する駆動パルスを判定し、該先行する駆動パルスの割り込み処理において前記パルス時間を算出するようにした。すなわち、ステッピングモータが正転する場合と同ステッピングモータが逆転する場合とでは、先行する駆動パルスが変わり、これにより、パルス時間の設定をどの割り込み処理で行うかが変更される。この場合、ステッピングモータが何れの方向に回転するにしても、先行する駆動パルスのエッジタイミングで適正にパルス時間が設定できる。
【００１０】
また、請求項３に記載の発明では、ステッピングモータの駆動開始時において、初回サイクルにおける各相のパルス時間を一括して設定すると共に、全ての駆動パルスについての次回のエッジタイミングを前記複数のタイマに各別にセットする。この場合、ステッピングモータの初回動作時、並びにそれ以降の動作時において、これらの各タイマ機能を用いてステッピングモータが継続的に駆動できるようになる。
【００１１】
請求項４に記載の発明では、前記複数のタイマは、前記駆動パルスの立ち下がり時刻及び立ち上がり時刻をそれぞれ同時にセットできるものであるとした。これは、いわゆるダブルアクション方式のタイマを用いた構成を言い、これにより、駆動パルスの立ち下がり時刻及び立ち上がり時刻をそれぞれ個別にセットする場合に比べ、割り込みの回数を半減することができる。
【００１２】
また、請求項５に記載の発明では、ステッピングモータの駆動開始時において、それ以降必要となる制御サイクル数を設定し、その後の前記割り込み処理では、前記設定した制御サイクル数に達したかどうかで次回以降のステッピングモータ駆動の形態を判定する。この場合、ステッピングモータの駆動開始時にそれ以降のモータ駆動のスケジューリングを適切に行うことができ、以後の割り込み処理では、初期のスケジューリングに沿って駆動パルスが操作される。該割り込み処理では、例えば、ステッピングモータ駆動の中止、継続等がその都度判断される。
【００１３】
この場合、請求項６に記載したように、ステッピングモータの動作速度を多段に切り替える構成として、速度切り替えのためのサイクル数を予め設定し、その後の前記割り込み処理では、その速度切り替えのためのサイクル数に到達した時点でパルス時間を変更してモータ動作速度を切り替えると良い。これにより、所望の速度切り替えが実現できる。
【００１４】
特にステッピングモータを目標位置まで駆動させる際に、スローアップ・スローダウン制御を実施してステッピングモータの動作速度を多段に切り替える構成（請求項７）では、そのスローアップ・スローダウン制御が好適に実施できるようになる。
【００１５】
【発明の実施の形態】
以下、この発明を具体化した一実施の形態を図面に従って説明する。本実施の形態では、車載エンジンの電子スロットル制御装置として本発明を具体化しており、スロットルアクチュエータに組み込まれるステッピングモータを好適に制御する手法を提示する。
【００１６】
図１は、本制御装置の概要を示している。スロットルアクチュエータ１０は、エンジン吸気管に配設されたスロットル弁（図示略）を所望の開度に調整するものである。その駆動源たるステッピングモータ１１は２相ハイブリッド型構造をなし、モータコイル１２，１３を有する。同アクチュエータ１０では、エンジン制御ユニット（以下、エンジンＥＣＵという）２０から入力される駆動パルスにより、スロットル弁の閉じ側又は開き側にステッピングモータ１１の駆動が制御される。
【００１７】
エンジンＥＣＵ２０は、ＣＰＵ、メモリ等から成る周知のマイコン２１を備える。マイコン２１には、図示しないセンサ群よりエンジン回転数、アクセル開度、スロットル開度、変速機のシフト位置等に関する情報が随時取り込まれ、該マイコン２１は、これらの情報に基づいてステッピングモータ１１の駆動を制御する。この場合、マイコン２１は、ステッピングモータ１１を制御するためのＡ相及びＢ相のパルスを生成し出力する。詳しくは、マイコン２１は、２つのタイマ２２，２３を内蔵しており、これらタイマ２２，２３にセットした時刻に達した時、出力ポートＰ１，Ｐ２がＨレベル又はＬレベルに操作される。これにより、Ａ相及びＢ相のパルスが立ち上げ、或いは立ち下げられる。特に本実施の形態におけるタイマ２２，２３はそれぞれ、各パルスの立ち上がり時刻と立ち下がり時刻とを同時にセット可能な、いわゆるダブルアクション機能を備えている。
【００１８】
Ａ相及びＢ相のパルスは、モータ駆動回路２４に入力される。このモータ駆動回路２４では、Ａ相及びＢ相の各パルスについて正相と逆相の４出力（Ａ，／Ａ，Ｂ，／Ｂ）を生成し、これをステッピングモータ１１に対して出力する。
【００１９】
ここで、エンジンＥＣＵ２０（マイコン２１）が図２に示す順序でステッピングモータ１１への駆動パルスを操作することによりモータコイル１２，１３が順次励磁され、ステッピングモータ１１の回転が制御される。すなわち、図２に示すように、スロットル弁の閉じ方向にステッピングモータ１１を駆動する場合には、ステッピングモータ１１に対する各相の出力（Ａ，／Ａ，Ｂ，／Ｂ）を丸数字１→２→３→４の順に変化させる。また逆に、スロットル弁の開き方向にステッピングモータ１１を駆動する場合には、ステッピングモータ１１に対する各相の出力（Ａ，／Ａ，Ｂ，／Ｂ）を丸数字４→３→２→１の順に変化させる。
【００２０】
またこの場合、スロットル閉じ側の制御に関するパルス波形を図３（ａ）に示し、スロットル開き側の制御に関するパルス波形を図３（ｂ）に示す。なお、図中の丸数字は、前記図２と同意である。図３（ａ）では、前記図２で説明した通り、Ａ相及びＢ相のパルスが丸数字１→２→３→４の順に変化している。ここで、丸数字１〜４で示す４ステップ分を１サイクルとすると、その同一サイクル内の各ステップの時間（ステップ時間ＴＰ）が均一に制御される。また、図３（ｂ）では、Ａ相及びＢ相のパルスが丸数字４→３→２→１の順に変化している。この場合、図３（ａ）では、Ａ相パルスが先行する形を取るのに対し、図３（ｂ）では、Ｂ相パルスが先行する形を取るようになっている。
【００２１】
次に、ステッピングモータ１１による電子スロットル制御の概要について説明する。先ずはじめに、ステッピングモータ１１の駆動制御にかかる基本動作を図４を用いて説明する。なお、図４は、スロットル閉じ側の制御に関する動作を示す。
【００２２】
図４のｔ１のタイミングでは、Ａ相パルスの立ち上がりに同期して「第１の割り込み」が発生し、次回サイクル（ｔ２〜ｔ３）でのパルス時間ＴＰが算出されると共に、そのパルス時間ＴＰを用いてＡ相パルスの立ち下がり時刻と立ち上がり時刻とがタイマ２２にセットされる。すなわち、Ａ相パルスの立ち下がり時刻ｔａ１として、現在時刻（ｔ１の時刻）に、前回サイクルでのパルス時間ＴＰ（ｉ−１）と次回サイクルでのパルス時間ＴＰとを加算した時刻（現在時刻＋ＴＰ（ｉ−１）＋ＴＰ）がセットされる。また、Ａ相パルスの立ち上がり時刻ｔａ２として、前記立ち下がり時刻ｔａ１に、次回サイクルでのパルス時間ＴＰの２倍の時間を加算した時刻（ｔａ１＋ＴＰ×２）がセットされる。そして、タイマ２２への時刻セット後、セットした時刻に達すると、Ａ相パルスがＬレベル又はＨレベルに操作される。
【００２３】
また、ｔ２のタイミングでは、Ｂ相パルスの立ち上がりに同期して「第２の割り込み」が発生し、前記「第１の割り込み」で算出したパルス時間ＴＰを用いてＢ相パルスの立ち下がり時刻と立ち上がり時刻とがタイマ２３にセットされる。
すなわち、Ｂ相パルスの立ち下がり時刻ｔｂ１として、現在時刻（ｔ２の時刻）に、次回サイクルでのパルス時間ＴＰの２倍の時間を加算した時刻（現在時刻＋ＴＰ×２）がセットされる。また、Ｂ相パルスの立ち上がり時刻ｔｂ２として、前記立ち下がり時刻ｔｂ１に、次回サイクルでのパルス時間ＴＰの２倍の時間を加算した時刻（ｔｂ１＋ＴＰ×２）がセットされる。そして、タイマ２３への時刻セット後、セットした時刻に達すると、Ｂ相パルスがＬレベル又はＨレベルに操作される。
【００２４】
因みに、スロットル開き側の制御時には、前記図３（ｂ）で説明したように、図４とは逆にＢ相パルスが先行する。従って、Ｂ相パルスの立ち上がりに同期して、次回サイクルでのパルス時間ＴＰが算出されるようになっている。
【００２５】
また、上記図４の基本動作は、パルスエッジの割り込みにて次回サイクルのパルスセットを行う処理であり、未だ初回のパルスエッジをセットしていない場合には、マイコン２１によるベースルーチンにおいて図５に示す初回動作が実施される。
【００２６】
つまり、図５のｔ１１のタイミングでは、初回サイクル（ｔ１１〜ｔ１２）でのパルス時間ＴＰが算出されると共に、そのパルス時間ＴＰを用いてＡ相パルスの立ち下がり時刻と立ち上がり時刻とがタイマ２２にセットされる。また同時に、同じくパルス時間ＴＰを用いてＢ相パルスの立ち下がり時刻と立ち上がり時刻とがタイマ２３にセットされる。詳しくは、Ａ相パルスの立ち下がり時刻ｔａ１１として、現在時刻（ｔ１１の時刻）にパルス時間ＴＰを加算した時刻（現在時刻＋ＴＰ）がセットされる。また、Ｂ相パルスの立ち下がり時刻ｔｂ１１として、前記時刻ｔａ１１にパルス時間ＴＰを加算した時刻（ｔａ１１＋ＴＰ）がセットされる。Ａ相パルスの立ち上がり時刻ｔａ１２として、前記時刻ｔｂ１１にパルス時間ＴＰを加算した時刻（ｔｂ１１＋ＴＰ）がセットされる。Ｂ相パルスの立ち上がり時刻ｔｂ１２として、前記時刻ｔａ１２にパルス時間ＴＰを加算した時刻（ｔａ１２＋ＴＰ）がセットされる。
【００２７】
本実施の形態の電子スロットル制御では、いわゆるスローアップ・スローダウン制御を実施することとしており、その概要を図６を用いて説明する。図６では、ｔ２１のタイミングで目標スロットル開度が変化し、それに伴いスロットル弁を図の「現在位置」から「目標位置」へと変化させる場合を想定している。この場合、ステッピングモータ１１の駆動開始当初（制御の前半部分）においては動作速度を低速→中速→高速の順で上昇させるのに対し、目標位置への収束時（同制御の後半部分）においては動作速度を高速→中速→低速の順で下降させる。
【００２８】
詳しくは、図６のｔ２１のタイミングでは、目標位置に達するまでに必要なステッピングモータ１１の制御サイクル数を決定すると共に、動作速度を低速、中速及び高速の各制御域で切り替えるためのポイントＫ１，Ｋ２，Ｋ３，Ｋ４を決定する。そして、
・Ｋ１までは、ステッピングモータ１１を低速で駆動し（ｔ２１〜ｔ２２）、
・Ｋ２までは、ステッピングモータ１１を中速で駆動し（ｔ２２〜ｔ２３）、
・Ｋ３までは、ステッピングモータ１１を高速で駆動し（ｔ２３〜ｔ２４）、
・Ｋ４までは、ステッピングモータ１１を中速で駆動し（ｔ２４〜ｔ２５）、
・最後にステッピングモータ１１を低速で駆動する（ｔ２５〜ｔ２６）。
【００２９】
次いで、マイコン２１により実施されるスロットル制御について図７〜図９のフローチャートを参照しつつ説明する。先ずはじめに、ベースルーチンとして実施されるスロットル制御部分について、図７を用いて説明する。
【００３０】
図７において、先ずステップ１０１では、目標スロットル開度を設定する。この目標スロットル開度は、周知の通りエンジン回転数、アクセル開度、変速機のシフト位置等をパラメータとして設定される。
【００３１】
続くステップ１０２では、目標スロットル開度に対するフィードバック判定を行う。つまり、スロットル開度のセンサ検出値（実スロットル開度）と目標スロットル開度との偏差を算出すると共に、その偏差に基づいてステッピングモータ１１の現在位置からの制御サイクル数を決定する。そして、この制御サイクル数をサイクルカウンタＣａにセットする。またこのとき、ステッピングモータ１１をスロットル閉じ側、又はスロットル開き側の何れに制御するかを判定する。そして、スロットル閉じ側への制御であれば、閉じ側制御フラグＸＣＬに１をセットし、スロットル開き側への制御であれば、同フラグＸＣＬを０にリセットしておく。
【００３２】
その後、ステップ１０３では、目標スロットル開度が変化し、それによりステッピングモータ１１の駆動を要するか否かを判別する。また続くステップ１０４では、今回のステッピングモータ駆動が目標値変化後の初回であるか否かを判別する。そして、ステップ１０３，１０４が共にＹＥＳであることを条件にステップ１０５に進む。
【００３３】
ステップ１０５では、スローアップ・スローダウン制御のための制御パターンを設定する。すなわち、ステッピングモータ１１の現在位置（現スロットル開度）からの制御サイクル数に応じて低速、中速及び高速の制御域を適宜設定すると共に、各制御域を切り替えるためのポイントＫ１〜Ｋ４（前記図６参照）を設定する。なおこの場合、制御サイクル数がセットされる前記サイクルカウンタＣａは、ステッピングモータ１１の駆動に伴い順次カウントダウンされるカウンタであり、Ｋ１〜Ｋ４は、Ｋ１＞Ｋ２＞Ｋ３＞Ｋ４の関係で設定される。
【００３４】
その後、ステップ１０６では、Ａ相パルスの立ち下がり時刻及び立ち上がり時刻をタイマ２２にセットすると共に、Ｂ相パルスの立ち下がり時刻及び立ち上がり時刻をタイマ２３にセットする。このとき、低速域でステッピングモータ１１の駆動が開始されるよう、低速駆動用のパルス時間が用いられて初回サイクルでの各時刻がセットされる。
【００３５】
また、図８は、Ａ相パルスの割り込み処理を示すフローチャート、図９は、Ｂ相パルスの割り込み処理を示すフローチャートである。図８の処理は、Ａ相パルスの立ち上がりエッジ毎にマイコン２１により起動され、図９の処理は、Ｂ相パルスの立ち上がりエッジ毎にマイコン２１により起動される。
【００３６】
さて、図８のステップ２０１では、前記図７のベースルーチン（ステップ１０２）で操作した閉じ側制御フラグＸＣＬに基づき、今回ステッピングモータ１１がスロットル閉じ側に駆動されるか否かを判別する。この場合、ＸＣＬ＝１、すなわちステッピングモータ１１がスロットル閉じ側に制御されるのであれば、Ａ相パルスがＢ相パルスよりも先行すると判断されるから、本図８の処理内にてパルス時間ＴＰの設定を行う。すなわち、ステップ２０１がＹＥＳの場合には、ステップ２０２に進み、後述するパルス時間ＴＰの設定処理を含む一連の処理を実施する。また、ステップ２０１がＮＯの場合には、本図８の処理ではパルス時間ＴＰの設定を行う必要がないため、ステップ２１１に進み、Ａ相パルスの立ち下がり時刻及び立ち上がり時刻をタイマ２２にセットする処理だけを実施する。
【００３７】
以下、ステップ２０２以降の処理を詳述する。ステップ２０２では、サイクルカウンタＣａのカウントダウンを実施する。なおこの場合、カウントダウン後のＣａの値は、今回のスローアップ・スローダウン制御における残りサイクル数を表す。その後、ステップ２０３以降の処理では、サイクルカウンタＣａと前記図７のベースルーチン（ステップ１０５）で設定したＫ１〜Ｋ４とを逐次比較し、それにより、次回サイクルのパルス時間ＴＰとして、低速パルス時間ＴＰＬ、中速パルス時間ＴＰＭ及び高速パルス時間ＴＰＨの何れかを設定する。
【００３８】
つまり、
・ステップ２０３では、Ｃａ≦Ｋ４であるか否かを判別し、
・ステップ２０４では、Ｃａ＞Ｋ１であるか否かを判別し、
・ステップ２０５では、Ｃａ≦Ｋ３であるか否かを判別し、
・ステップ２０６では、Ｃａ＞Ｋ２であるか否かを判別する。
そして、ステップ２０３又はステップ２０４がＹＥＳの場合（Ｃａ≦Ｋ４又はＣａ＞Ｋ１の場合）ステップ２０７に進み、次回サイクルのパルス時間ＴＰとして低速パルス時間ＴＰＬを設定する。また、ステップ２０５又はステップ２０６がＹＥＳの場合（Ｃａ≦Ｋ３又はＣａ＞Ｋ２の場合）ステップ２０８に進み、次回サイクルのパルス時間ＴＰとして中速パルス時間ＴＰＭを設定する。更に、ステップ２０３〜２０６が何れもＮＯの場合ステップ２０９に進み、次回サイクルのパルス時間ＴＰとして高速パルス時間ＴＰＨを設定する。
【００３９】
最後に、ステップ２１０では、前記設定したパルス時間（ＴＰＬ、ＴＰＭ、ＴＰＨの何れか）を用い、Ａ相パルスの立ち下がり時刻及び立ち上がり時刻を算出すると共に、その時刻をタイマ２２にセットする。
【００４０】
一方、図９は、基本的には前記図８と同じ処理であり、ステップ番号を２００番台から３００番台に変更している。ここでは概略のみを説明する。図９において、スロットル閉じ側の制御を行う場合（ステップ３０１がＹＥＳの場合）にはステップ３１１に進み、タイマ２３への時刻セットのみを行う。すなわちステップ３０１がＹＥＳの場合には、前記図８のステップ２０２〜２０９でパルス時間ＴＰが設定されており、本図９ではこのＴＰ設定の処理を行わなくてよい。
【００４１】
また、スロットル開き側の制御を行う場合（ステップ３０１がＮＯの場合）にはステップ３０２に進み、前記ステップ２０２〜２０９と同様に、ステップ３０２〜３０９で次回サイクルでのパルス時間ＴＰを設定する。またその後、タイマ２３への時刻セットを行う（ステップ３１０）。
【００４２】
次いで、前記図７〜図９により操作されるＡ相パルス及びＢ相パルスの挙動を図１０のタイムチャートを用いて説明する。なお図１０は、スロットル閉じ側制御を示している。
【００４３】
先ず最初に、アクセルペダルが踏み込み操作される等して目標スロットル開度が変化するｔ３１のタイミングでは、前記図７のベースルーチンにより、初回サイクルのパルス時間が設定されると共に、Ａ相及びＢ相パルスのそれぞれの立ち下がり時刻及び立ち上がり時刻（エッジタイミング）がタイマ２２，２３に同時にセットされる。
【００４４】
その後、ｔ３２のタイミングでは、前記図８のＡ相割り込み処理が起動され、同処理にて次回サイクルのパルス時間が一括して設定されると共に、Ａ相パルスの立ち下がり時刻及び立ち上がり時刻（エッジタイミング）がタイマ２２にセットされる。更にその後、ｔ３３のタイミングでは、前記図９のＢ相割り込み処理が起動され、同処理にてＢ相パルスの立ち下がり時刻及び立ち上がり時刻（エッジタイミング）がタイマ２３にセットされる。なおｔ３３のタイミングでは、パルス時間の設定の処理は行われない。
【００４５】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
（イ）マイコン２１のタイマ機能を用い、タイマ２２，２３にセットした時刻によりステッピングモータ１１への相毎の駆動パルスを操作するので、ソフトウエア処理の割り込み等で駆動パルスをその都度操作していた従来技術とは異なり、処理待ちに起因する制御誤差（パルス誤差）等の問題が解消される。また特に、駆動パルス毎の割り込み処理により各相の駆動パルスを振り分けて操作するので、割り込み周期制御やベース周期制御にて一元的に駆動パルスを操作していた従来技術とは異なり、駆動パルスが個々に独立して操作される。従って、駆動パルスの精度を確保することができ、ひいてはステッピングモータ１１の制御性を向上させることができるようになる。
【００４６】
（ロ）各駆動パルスのエッジ毎に発生する割り込み（前記図８，図９の割り込み処理）に際し、全ての割り込みで毎回パルス時間ＴＰが設定されるのではなく、何れか一つの割り込みでパルス時間ＴＰが設定され、それ以外の割り込みではタイマ２２，２３の時刻セットのみが行われる。従って、駆動パルスの立ち下げ及び立ち上げにかかるマイコン２１の演算負荷を軽減することができる。
【００４７】
（ハ）先行する駆動パルスの割り込み処理でパルス時間設定の処理を受け持たせるよう、ステッピングモータ１１の駆動方向に応じて処理を切り替えた。この場合、ステッピングモータ１１が何れの方向に回転するにしても、先行する駆動パルスのエッジタイミングで適正にパルス時間ＴＰが設定できる。
【００４８】
（ニ）ステッピングモータ１１の駆動開始時はベースルーチンで初回サイクルのタイマ時刻セットを行い、その後、相毎の割り込み処理でタイマ時刻セットを行うようにした。これにより、ステッピングモータ１１の初回動作時並びにそれ以降において、タイマ機能を用いてステッピングモータ１１が継続的に駆動できるようになる。
【００４９】
（ホ）ダブルアクション方式のタイマ２２，２３を用いたので、駆動パルスの立ち下がり時刻及び立ち上がり時刻をそれぞれ個別にセットする場合に比べ、割り込みの回数を半減することができる。
【００５０】
（ヘ）ベースルーチンでモータ動作速度切り替えのためのサイクル数を予め設定し、その後の割り込み処理では、その動作速度切り替えのためのサイクル数に到達した時点でパルス時間ＴＰを変更してモータ動作速度を切り替える。これにより、所望の速度切り替えが実現でき、スロットルアクチュエータ１０のスローアップ・スローダウン制御を好適に実施することができる。従って、車載エンジンの電子スロットル制御が精度良く実施できるようになる。
【００５１】
なお本発明は、上記以外に次の形態にて具体化できる。
上記実施の形態では、ダブルアクション方式のタイマ２２，２３を用い、Ａ相パルス及びＢ相パルスを操作したが、これに代えて、タイマ２２，２３としてシングルアクション方式を採用する。このシングルアクション方式のタイマでは、立ち下がり又は立ち上がりの何れかの時刻のみがセットされる。図１１は、シングルアクション方式のタイマ２２，２３を用いた場合のＡ相パルス及びＢ相パルスの挙動を示す。なおこれについても、スロットル閉じ側制御の事例を示す。
【００５２】
図１１において、初回動作時のｔ４１のタイミングでは、ベースルーチンにより、初回サイクルのパルス時間が設定されると共に、Ａ相パルス及びＢ相パルスのそれぞれの立ち下がり時刻がタイマ２２，２３に同時にセットされる。またそれ以降、Ａ相パルスの立ち下がり及び立ち上がりの両エッジにてＡ相割り込み処理がそれぞれ起動される。また、Ｂ相パルスについても同様に、当該パルスの立ち下がり及び立ち上がりの両エッジにてＢ相割り込み処理がそれぞれ起動される。
【００５３】
ｔ４２以降について詳しくは、ｔ４２，ｔ４３の各タイミングでは、次回のＡ相パルス及びＢ相パルスの立ち上がり時刻がタイマ２２，２３にそれぞれセットされる。なお初回直後であれば、これらセット時刻は初回サイクルでのパルス時間を用いた時刻である。また、ｔ４４，ｔ４５の各タイミングでは、次回のＡ相パルス及びＢ相パルスの立ち下がり時刻がタイマ２２，２３にそれぞれセットされる。但し、ｔ４４のタイミングでは、次回サイクルのパルス時間が一括して設定される。以降同等に、Ａ相パルスの立ち上がりエッジの割り込みでのみ、パルス時間ＴＰが設定され、それ以外の割り込みではタイマ２２，２３の時刻セットのみが行われる。
【００５４】
上記実施の形態では、スロットルアクチュエータのスローアップ・スローダウン制御においてステッピングモータ１１の動作速度を多段に切り替える構成としたが、この構成を変更する。例えば、Ａ相パルス又はＢ相パルスの何れかの割り込み処理（先行するパルスの割り込み処理）において、ステッピングモータ１１の動作速度を前半部分は増加方向に徐変させ、後半部分では減少方向に徐変させる。つまり、上記割り込み処理においてパルス時間を一定時間ずつ増加又は減少させる。この場合、ベースルーチンでは、制御サイクル数（全サイクル数）に基づいて、動作速度が増加から減少へ転じる際のポイント（例えば、全サイクル数の１／２）を予め指定しておくと良い。
【００５５】
また、ステッピングモータ１１の動作速度を変更しない構成としても良い。ステッピングモータ１１の動作速度を変更せずとも、例えば、当該モータ１１の駆動開始時においてそれ以降必要となる制御サイクル数だけを設定し、その後の割り込み処理では前記設定した制御サイクル数に達したかどうかでステッピングモータ駆動の中止、継続等をその都度判断する。
【００５６】
本発明の具体例として、上記の通りスロットルアクチュエータに適用する他、排気バルブやＩＳＣ弁等を駆動するためのアクチュエータに適用しても良い。また、車両用ステッピングモータ以外への具体化も可能である。
【００５７】
ステッピングモータの励磁方式としては、上述した２相励磁方式の他、１相励磁方式、１−２相励磁方式などが適用できる。また、２相式ステッピングモータに代えて、３相式、４相式などのステッピングモータでも良い。
【図面の簡単な説明】
【図１】発明の実施の形態における電子スロットル制御装置の概要を示す構成図。
【図２】各相の励磁順序を示す図。
【図３】図２に対応するパルス波形を示す図。
【図４】ステッピングモータ制御の基本動作を示すタイムチャート。
【図５】ステッピングモータ制御の初回動作を示すタイムチャート。
【図６】スローアップ・スローダウン制御を説明するための図。
【図７】ベースルーチンを示すフローチャート。
【図８】Ａ相割り込み処理を示すフローチャート。
【図９】Ｂ相割り込み処理を示すフローチャート。
【図１０】各相のパルスの挙動を示すタイムチャート。
【図１１】シングルアクション方式のタイマを用いた場合において、各相のパルスの挙動を示すタイムチャート。
【符号の説明】
１１…ステッピングモータ、２０…エンジンＥＣＵ、２１…マイコン、２２，２３…タイマ。
【図１】
0004560956.tif 000002
【図２】
0004560956.tif 000003
【図３】
0004560956.tif 000004
【図４】
0004560956.tif 000005
【図５】
0004560956.tif 000006
【図６】
0004560956.tif 000007
【図７】
0004560956.tif 000008
【図８】
0004560956.tif 000009
【図９】
0004560956.tif 000010
【図１０】
0004560956.tif 000011
【図１１】
0004560956.tif 000012