(57)【要約】      （修正有）【課題】検出処理に長い時間を要するシステムにおいても、回転位置を見失うことがないロバストな回転位置検出装置を提供する。【解決手段】２値変化する信号を出力する複数の回転位置信号出力手段と、前記回転位置信号出力手段の変化検出時に、前記複数の記回転位置信号出力手段のそれぞれの出力状態の履歴を記録する信号状態履歴保持手段と、前記回転位置信号出力手段の変化検出時に、回転位置のカウント処理を行う回転位置カウント処理手段とを備え、前記回転位置カウント処理の処理回数をｎとし、前記回転位置カウント処理において、前記複数の回転位置信号出力手段のそれぞれに関して、ｎ番目、（ｎ−１）番目における前記信号状態履歴保持手段の出力状態の変化を検出し、前記出力状態の変化が２つ以上検出された場合、前記回転位置カウント処理手段は、（ｎ−２）番目以前の信号状態履歴も利用して、回転位置をカウントする処理を行うことを特徴とする。【選択図】図１
2017223477.tif 000002
【特許請求の範囲】
【請求項１】
軸の回転に応じて２値変化する信号を出力する複数の回転位置信号出力手段と、
前記回転位置信号出力手段の変化検出時に、前記複数の記回転位置信号出力手段のそれぞれの出力状態の履歴を記録する信号状態履歴保持手段と、
前記回転位置信号出力手段の変化検出時に、回転位置のカウント処理を行う回転位置カウント処理手段と、を備え、
前記回転位置カウント処理の処理回数をｎとし、前記回転位置カウント処理において、前記複数の回転位置信号出力手段のそれぞれに関して、ｎ番目、（ｎ−１）番目における前記信号状態履歴保持手段の出力状態の変化を検出し、前記出力状態の変化が２つ以上検出された場合、前記回転位置カウント処理手段は、（ｎ−２）番目以前の信号状態履歴も利用して、回転位置をカウントする処理を行うことを特徴とする回転位置検出装置。
【請求項２】
前記回転位置カウント処理の処理回数をｎとし、前記回転位置カウント処理において、前記複数の回転位置信号出力手段のそれぞれに関して、ｎ番目、（ｎ−１）番目における前記信号状態履歴保持手段の出力状態の変化を検出し、前記出力状態の変化が２つ以上検出された場合、過去の前記回転位置カウント処理手段の実行中に、前記回転位置信号出力手段の信号状態が変化し、かつ前記変化を検出できなかったとみなし、（ｎ−２）番目の信号状態を元に、前記回転位置カウント処理手段においての位置カウントに対し補正すべき補正値を決定し、回転位置カウントを修正することを特徴とする請求項１に記載の回転位置検出装置。
【請求項３】
前記信号状態履歴保持手段において保持されている２値信号の過去３回分の信号履歴パターンを２進数の数とみなし、予め用意された過去３回分の信号履歴パターンと対応する回転位置カウント量を網羅したテーブルと照らし合わせて、前記回転位置カウント処理手段においてカウントの足し引き量を決定することを特徴とした請求項１又は請求項２に記載の回転位置検出装置。
【請求項４】
前記回転位置信号出力手段は２つの２値信号によって構成され、前記信号状態履歴保持手段は過去３回分の２つの２値信号結果からなる６ｂｉｔ履歴数を作成し、前記テーブルは前記６ｂｉｔ履歴数の表現できる６４パターンに対応することを特徴とする請求項３に記載の回転位置検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転体に取り付けられた回転位置検出装置に関し、位置検出処理をソフトウェア処理によって実行する装置に関する。
【背景技術】
【０００２】
従来より、回転体に回転に応じて２つ以上の２値信号を出力するセンサを取り付け、その信号出力によって絶対回転量を特定する回転位置検出装置が普及している。これらの回転位置検出装置は原理的に最低２つの信号があれば回転方向を特定でき、且つ２値化パルスの変化の回数によって回転量が分かるため、回転位置を特定することができる。
【０００３】
特許文献１における発明においても、２つの２値化信号出力を用いて絶対位置を特定する機構が備わっている。特許文献１でも用いられている一般的な２つの２値化信号を用いた場合の位置検出処理を示す表を図７に示す。図７においてｎは２値化信号の変化があったタイミングを表し、ＥＮＣ１（ｎ）、ＥＮＣ２（ｎ）は現在の２つの信号のＨ／Ｌ状態、ＥＮＣ１（ｎ−１）、ＥＮＣ２（ｎ−１）は１つ前の変化時の２つの信号のＨ／Ｌ状態を表す。タイミングｎの時に１つ前のタイミングでの２つの信号のＨ／Ｌ状態から、どちらか片方の信号変化が発生し、それがどちらの信号の変化であるかによって、位置の±カウントを決定し、現在位置を更新するというアルゴリズムになっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−８４５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の従来技術では、位置のカウント処理を行っている期間にさらに重複して位置信号の変化が起こった場合、絶対位置を見失うという課題がある。位置のカウント処理がハードウェア化されたロジック回路などによってナノセックオーダーの処理時間で済む場合は実用上問題ないが、リソースの問題で、位置カウント処理をソフトウェアなどで実現する場合、その処理時間制約によって上述の課題が発生する場合がある。
【０００６】
そこで、本発明の目的は、２つ以上の２値化信号を用いた回転位置検出装置において位置検出処理の必要時間が多く要し、上述の課題が発生する可能性があるシステムにおいても、実用上、回転位置を見失うことがないロバストな回転位置検出装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明に係る回転位置検出装置は、
軸の回転に応じて２値変化する信号を出力する複数の回転位置信号出力手段と、前記回転位置信号出力手段の変化検出時に、前記複数の記回転位置信号出力手段のそれぞれの出力状態の履歴を記録する信号状態履歴保持手段と、前記回転位置信号出力手段の変化検出時に、回転位置のカウント処理を行う回転位置カウント処理手段とを備え、前記回転位置カウント処理の処理回数をｎとし、前記回転位置カウント処理において、前記複数の回転位置信号出力手段のそれぞれに関して、ｎ番目、（ｎ−１）番目における前記信号状態履歴保持手段の出力状態の変化を検出し、前記出力状態の変化が２つ以上検出された場合、前記回転位置カウント処理手段は、（ｎ−２）番目以前の信号状態履歴も利用して、回転位置をカウントする処理を行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、位置検出処理の必要時間が大きく、位置のカウント処理を行っている期間にさらに重複して位置信号の変化が起こった場合でも、実用上、回転位置を見失わない回転位置検出装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明における位置検出センサを含んだモータユニットを示す図
【図２】本発明におけるシステム概要を示す図
【図３】本発明の実施例における正弦波発生装置の説明に関する図
【図４】本発明の実施例におけるモータと位置検出信号の関係を示す図
【図５】本発明の実施例における処理の流れを示すフローチャート
【図６】本発明の実施例における処理の一部を説明するための図
【図７】一般的な２相回転位置検出装置のアルゴリズムを示す図
【図８】本発明における２相回転位置検出装置のアルゴリズムを示す図
【図９】本発明における２相回転位置検出装置のアルゴリズムを示す図
【図１０】本発明の実施例１における回転位置検出装置の挙動を説明するための図
【図１１】本発明の実施例２における回転位置検出装置の挙動を説明するための図
【発明を実施するための形態】
【００１０】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【００１１】
図１は本発明の実施形態にかかわるモータユニット１００の外観図である。
【００１２】
モータユニット１００はステッピングモータ１０１を備え、ロータ軸１０２にスリット回転板１０５を備えている。スリット回転板１０５は明領域と暗領域の比率が５０：５０で設計されている。メカ的に設計された位置にｃｈ１フォトインタラプタ１０３、ｃｈ２フォトインタラプタ１０４が取り付けられ、ロータの回転に伴ってスリット回転板１０５がＰＩの出力信号を変化させる。
【００１３】
図２は駆動用の電気回路を含めた、本実施例におけるシステム構成図である。
【００１４】
１０１〜１０５の説明は、図１での説明と重複するので割愛する。コンパレータ１０６はｃｈ１フォトインタラプタ１０３、ｃｈ２フォトインタラプタ１０４のアナログ信号を入力し、設定された閾値電圧によって２値化された信号を後段に出力する。本実施例では、モータを回転ムラなく一定回転させた時、コンパレータ１０６の出力のＨＬ比率が５０：５０となるように閾値が予め調整されているものとする。以後、ｃｈ１フォトインタラプタ１０３の信号を２値化した信号をＥＮＣ１信号、ｃｈ２フォトインタラプタ１０４の信号を２値化した信号をＥＮＣ２信号と称する。
【００１５】
エンコーダ回路１０７はＥＮＣ１信号、ＥＮＣ２信号の信号タイミング取得、信号による位置カウント、信号周期カウントを行う。ＥＮＣ１信号の立ち上がり、立下り、ＥＮＣ２信号の立ち上がり、立下りの４種の信号種別は区別でき、それぞれの信号入力タイミング時にＣＰＵ１０８に割り込み処理をかけることができる。この時ＣＰＵ１０８は割り込み要因の４つの信号種別は判別できる。ＣＰＵ１０８は予め保存されているプログラムを実行する機能を備え、またバス１１０を介してエンコーダ１０７、正弦波信号発生器１０９、ＰＷＭ発生器１１１とアクセスできる。正弦波発生器１０９は正弦波１周期に対して５１２分解能のテーブル値を備え、このテーブル値に対応するＰＷＭ値をＰＷＭ発生器１１１に送り、ＰＷＭ発生器１１１から出力されるＰＷＭ信号をモータドライバ１１２で増幅させてステッピングモータ１０１に伝える。この正弦波発生装置１０９からステッピングモータ１０１への信号伝達、及びＥＮＣ１、ＥＮＣ２信号の出力に関して、図３〜図４を用いて詳細に述べる。
【００１６】
図３は正弦波テーブルの詳細を示す図である。
【００１７】
正弦波の０度位相にテーブル０、正弦波の１８０度位相にテーブル２５６が相当する。テーブル０にはＰＷＭ  ＤＵＴＹ５０％の値が格納され実質的にコイルへの通電が０Ｖとなる設定であり、その後のテーブルには位相に応じてＰＷＭ出力のＤＵＴＹ比率の値が格納されている。図３では、ＤＵＴＹ比率の値が１００％になると＋Ｖｃｃの値を出力することになるので、随時正弦波のゲインを変更できるようにテーブル値のピークは１００％より小さな値になるように設定している。
【００１８】
以上の図３を用いて述べた考え方により、ＰＷＭ信号によってモータのコイルに対して実効的に正弦波状の電圧信号を印加することができる。以後、説明の簡便化のため、コイルにかけている電圧は正弦波であるとして扱う。
【００１９】
ここで一旦、図２の説明に戻る。図２のＡ相用コイル１１３、Ｂ相用コイル１１４には、モータドライバから発せられる正弦波信号を受けて、後段のステータＡ＋１１５、ステータＡ−１１６、ステータＢ＋１１７、ステータＢ−１１８に対して４種類の位相の異なる正弦波電圧を発生させる。Ａ相、Ｂ相電圧波形とステータ印加電圧、ロータの停止位置、およびその時の回転板位置に関する詳細を、図４を用いて説明する。
【００２０】
図４（ａ）は本実施例におけるステッピングモータ１０１の内部構造を示した模式図である。
【００２１】
ロータマグネット１１９が自由に回転できるようになっており、その周囲に物理角１８度毎にステータが設置されている。ステータＡ＋１１５、ステータＡ−１１６、ステータＢ＋１１７、ステータＢ−１１８は図４（ａ）の通りに配置されている。ステータＡ＋１１５、ステータＢ＋１１７はコイルに印加された電圧が正弦波形の正の領域にあるときにＮ極磁力を発生し、ステータＡ−１１６、ステータＢ−１１８はコイルに印加された電圧が正弦波形の正の領域にあるときにＳ極磁力を発生する。図３の正弦波形の正の領域にＮ極、負の領域にＳ極と書かれているが、これはステータＡ＋１１５、ステータＢ＋１１７に対する発生磁力を示していることになる。ステータＡ−１１６、ステータＢ−１１８に関しては逆になる。
【００２２】
以上より図３（ａ）に示す信号をＡ相用コイル、Ｂ相用コイルにそれぞれかけると、図１、図４に示す正転方向にロータ１１９が回転する。図３（ｂ）に示す信号をＡ相用コイル、Ｂ相用コイルにそれぞれかけると、図１、図４に示す正転方向とは逆の逆転方向にロータ１１９が回転する。正転時はテーブルを正方向に進めて波形信号を生成し、逆転時はテーブルを逆方向に進めて波形信号を生成する。またＡ相とＢ相の出力は正転時にＡ相がＳｉｎ波、Ｂ相がＣｏｓ波となる、Ｂ相が９０度先行した波形が出力される。よって逆転時はＢ相が９０度遅れる波形が出力される。
【００２３】
図４（ｂ）においては、ステータとフォトインタラプタのメカ的な配置関係、およびロータマグネット１１９の着磁位相とスリット回転板１０５の位置関係を示している。図４（ｂ）では基準位置関係からスリット回転板が逆転方向にα度ずれた位置に固定された場合を示している。ロータマグネット１１９の着磁位相に対して、一般的にスリット回転板１０５の明暗位相がランダムに取り付けられているので、このα度の値は個別にランダムな値となるが、一度設置された後は変化しない。
【００２４】
図４（ｃ）のグラフは、回転位置を図４（ｂ）の状態から正転方向にθ度回転させた場合のＥＮＣ１出力変化、ＥＮＣ２出力変化を表したものである。この時、ＥＮＣ１出力は回転開始からα度遅れて出力変化が起こり、その後１８度回転するごとにＥＮＣ１、ＥＮＣ２の出力変化が起こる。
【００２５】
図５は本実施例における処理の流れを示すフローチャートである。以後はこの図５の処理の流れを追って説明を行う。
【００２６】
まずステップＳ５０１の処理から開始となり、このタイミングはシステムの開始・初期化のタイミングを意図している。
【００２７】
ステップＳ５０２においては、ＣＰＵ１０８が予め保持されているプログラム処理に沿って、変数の初期化処理を行う。
【００２８】
本実施例の処理のために用意された変数はとしては以下の６つとなる。
ＥＮＣのＨｉｇｈ／Ｌｏｗ変化履歴を記録する変数としてＥＮＣ＿ＰＲＧＳ＿ＨＩＳ。
ＥＮＣ１のＨ／Ｌステート保存用変数としてＥＮＣ１＿ＳＴＡＴＥ。
ＥＮＣ２のＨ／Ｌステート保存用変数としてＥＮＣ２＿ＳＴＡＴＥ。
ＥＮＣ信号変化割り込み時に最終的に位置カウントに足し引きする数としてＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＶＡＬ。
ＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＶＡＬを特定するためのインデックス値としてＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＩＤＸ。
ＥＮＣによる２−２相分解能絶対位置としてＥＮＣ＿ＣＮＴ。
【００２９】
ステップＳ５０２においては、ＥＮＣ＿ＣＮＴ以外の変数は０で初期化し、ＥＮＣ＿ＣＮＴは適当な位置特定手段によって特定した位置を元に適当な値で初期化されるものとする。
【００３０】
続くステップＳ５０３においては、ＥＮＣ＿ＰＲＧＳ＿ＨＩＳの更新処理を行う。ステップＳ５０３で行われる処理を、ステップＳ５０９〜Ｓ５１７によって詳細に説明する。
【００３１】
ステップＳ５０９からＥＮＣ＿ＰＲＧＳ＿ＨＩＳの更新処理が始まり、続くステップＳ５１０においては、ＥＮＣ１のＨ／Ｌ状態を検知し、Ｈだった場合はステップＳ５１１に進み、ＥＮＣ１＿ＳＴＡＴＥに１を格納する。Ｌだった場合はステップＳ５１２に進み、ＥＮＣ１＿ＳＴＡＴＥに０を格納する。
【００３２】
ステップＳ５１３においては、ＥＮＣ２のＨ／Ｌ状態を検知し、Ｈだった場合はステップＳ５１４に進み、ＥＮＣ２＿ＳＴＡＴＥに１を格納する。Ｌだった場合はステップＳ５１５に進み、ＥＮＣ２＿ＳＴＡＴＥに０を格納する。
【００３３】
続くステップＳ５１６では、ＥＮＣ＿ＰＲＧＳ＿ＨＩＳを左２ビットシフトした値、ＥＮＣ１＿ＳＴＡＴＥを左１ビットシフトした値、ＥＮＣ２＿ＳＴＡＴＥの３つの値の論理和をとった値を、ＥＮＣ＿ＰＲＧＳ＿ＨＩＳに格納する。この場合のシフト演算では、シフト時に挿入される値は０であるとする。
【００３４】
次に、ここまでの処理を図６で説明する。
【００３５】
図６では、Ａ相、Ｂ相で示される駆動用の正弦波信号がステッピングモータ１０１に加えられ、ＥＮＣ１、ＥＮＣ２がモータの回転に伴って変化しているものとする。この時、ＥＮＣ１、ＥＮＣ２の変化タイミング毎に変化するそれぞれの信号のＨ／Ｌ状態をＥＮＣ１Ｓｔａｔｅ、ＥＮＣ２Ｓｔａｔｅとする。ＥＮＣ１Ｓｔａｔｅ、ＥＮＣ２ＳｔａｔｅがそれぞれＨ／Ｌのときに、値を１／０と置き換えたものをＥＮＣ１ＤｉｇｉＳｔａｔｅ、ＥＮＣ２ＤｉｇｉＳｔａｔｅとする。
【００３６】
このようにステップＳ５０９〜Ｓ５１７の処理は、ＥＮＣ１、ＥＮＣ２の変化がある毎に、ＥＮＣ＿ＰＩ＿ＰＲＧＳ＿ＨＩＳを左２ビットシフトさせた後の下位２ビットに、ＥＮＣ１ＤｉｇｉＳｔａｔｅ、ＥＮＣ２ＤｉｇｉＳｔａｔｅの情報を格納している形になる。
【００３７】
ここで図５の説明に戻る。続くステップＳ５１７でＥＮＣ＿ＰＲＧＳ＿ＨＩＳの更新処理は終了し、ステップＳ５０４に移る。
【００３８】
ステップＳ５０４ではＥＮＣ１、ＥＮＣ２のどちらかのＨ／Ｌ変化割り込みの検知待ちを行う。変化割り込みが検知できるまでステップＳ５０４にとどまるものとし、検知されるとステップＳ５０５に進む。ステップＳ５０５においては、ステップＳ５０３と同様のＥＮＣ＿ＰＩ＿ＰＲＧＳ＿ＨＩＳの更新処理を行う。
【００３９】
続くステップＳ５０６では、ＥＮＣ＿ＰＩ＿ＰＲＧＳ＿ＨＩＳの上位２６ビットを０マスクした後の値を、ＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＩＤＸに格納する。図６においてこの処理を説明する。図６のＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＩＤＸは、上位２６ビットが０となり、ＥＮＣの履歴情報は下位の６ビットのみが残ることになる。図６中の現在のタイミングにおいてのＥＮＣ１、ＥＮＣ２の状態をｎ番目とすると、ｎ番目、ｎ−１番目、ｎ−２番目のＥＮＣ状態の履歴のみが残ることになる。ここで図５の説明に戻る。
【００４０】
続くステップＳ５０７においては、図８の表において、ＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＩＤＸ＝ＩＤＸとなるＩＤＸに対応する±ＣＮＴ値を特定し、この±ＣＮＴ値をＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＶＡＬに格納する。図８に示す表の情報は、予めＣＰＵ１０８に付随するメモリ領域に格納されているものとする。
【００４１】
続くステップＳ５０８では、ＥＮＣ＿ＣＮＴにＥＮＣ＿ＡＤＤ＿ＣＮＴ＿ＶＡＬを足し込み、その後ステップＳ５０３に処理を移す。
【００４２】
以上の処理で本発明の主要な構成、アルゴリズムの説明とするが、以下の実施例１〜３において、ＥＮＣの変化割り込み処理時間内に他のＥＮＣ変化が起こり、後に発生したＥＮＣ変化を検知できない場合の具体例を挙げる。
【実施例１】
【００４３】
この実施例においては、駆動回転後、一時停止したのち再度回転を始める際に、回転停止位置がちょうどＥＮＣ１の変化する位置と非常に近い場合を挙げる。本実施例の概要を示す図を図１０に示す。
【００４４】
図１０のＡ相、Ｂ相は、ステッピングモータ１０１に与えているＡ相用、Ｂ相用の駆動波形を表す。タイミング１００１まで回転動作を行い、タイミング１００２まで駆動波形の進みを止めて停止し、その後タイミング１００２から駆動波形の進みを開始し、タイミング１００１と同じ方向への回転を行っている。この時、タイミング１００１の直前にＥＮＣ１のＨ→Ｌ変化１００３が発生したものとする。そしてタイミング１００２での駆動再開時において、ロータ１０２がわずかに振動することから微小量逆回転する動作が発生し、この時ＥＮＣ１がＬ→Ｈ変化を起こしてしまう。微小量の逆回転であるので、すぐにＥＮＣ１はタイミング１００５でＨ→Ｌ変化を起こして正常な状態に戻る。しかしタイミング１００４で発生したＥＮＣ１のＬ→Ｈ変化時に起因する割り込み処理内で行われる位置カウント処理が終了するまでに、タイミング１００５のＥＮＣ１のＨ→Ｌ変化が発生し、タイミング１００５での位置カウント処理は行われないものとする。
【００４５】
ここで図１０の高速位置カウント処理結果１００７と、低速位置カウント処理結果１００８で示す各値を比較する。高速位置カウント処理結果１００７はハードウェアを使ったナノセックオーダークラスの処理時間で位置エンコードを行っている想定で、モータ駆動のシステムで発生しうるＥＮＣの変化がどれだけ高速であろうと対応できる想定の位置カウント処理結果である。低速位置カウント処理結果１００８はソフトウェアを使った処理で位置エンコードを行っている想定で、本実施例を使っての位置カウント処理結果である。
【００４６】
まず高速位置カウント処理結果１００７を見ると、ＥＮＣ１、ＥＮＣ２のＨ／Ｌ状態は常に正しく検知されており、タイミング１００４におけるＥＮＣ２のＨ→Ｌ変化、タイミング１００５のＬ→Ｈ変化、共に正しく検知できている。この時、位置Ｃｎｔはタイミング１００４までは３、タイミング１００４後に２と変化して逆回転が検知され、すぐさまタイミング１００５で３へと戻っている。
【００４７】
一方、低速位置カウント処理結果１００８を見ると、タイミング１００４におけるＥＮＣ２のＨ→Ｌ変化は検知できるが、タイミング１００５のＬ→Ｈ変化は検知できない。この時、位置Ｃｎｔはタイミング１００４までは３、タイミング１００４後に２と変化して逆回転が検知され、その後のタイミング１００５では２のままとなる。位置Ｃｎｔ１０１０で示すように位置Ｃｎｔが２となり、高速位置カウント処理結果１００７の結果の場合と異なってしまう。
【００４８】
この後のタイミング１００６での処理においては、ＥＮＣ１、ＥＮＣ２の状態がともにＨ→Ｌに変化したものと検出される。図７の表で示した一般的な２値ＥＮＣカウント処理においては、このような変化は想定外でこの時点で絶対回転位置を見失ってしまう。しかし本実施例の処理に照らし合わせると、枠１００９で示すＥＮＣ１、ＥＮＣ２の過去３つの状態履歴情報を使って、絶対位置の情報を、もう一度正常復帰させることができる。以下具体的に示す。
【００４９】
枠１００９で示す３つの過去情報を図５のフローチャートの処理に照らし合わせると、ＥＮＣ＿ＰＲＧＳ＿ＨＩＳは２進数で０１１１００、１０進数で２８となる。ＥＮＣ＿ＰＲＧＳ＿ＨＩＳ＝２８を図８の表のＩＤＸ値照らし合わせると±Ｃｎｔ値は＋２となる。タイミング１００６での位置カウント処理において位置Ｃｎｔは、位置Ｃｎｔ１０１０に示す「２」に＋２を加え、位置カウント１０１１に示す「４」となる。この値は、高速位置カウント処理結果１００７における位置Ｃｎｔと同じ値になっており、正常復帰しているのが確認できる。
【実施例２】
【００５０】
この実施例においては、正常回転動作中に駆動波形が急反転の指示を出し、反転指令後に意図しないスリップ状態が発生する場合を挙げる。
【００５１】
本実施例の概要を示す図を図１１に示す。
【００５２】
本実施例では図１１（ａ）に示すようにモータユニット１００にレンズ１２０が取り付けられたアプリケーションを想定する。図１１（ａ）のＡ相、Ｂ相は、ステッピングモータ１０１に与えているＡ相用、Ｂ相用の駆動波形を表す。タイミング１１０４まで正転方向回転動作を行い、タイミング１００４から停止インターバルを置かずに急遽、反転方向の駆動波形を印加する。この時タイミング１００４からタイミング１００５までは、反転方向の駆動波形が出ているにも関わらず、慣性によって正転方向へ回転するものとする。
【００５３】
レンズ１２０の立場でみるとタイミング１１０４までは、図１１（ａ）の状態１１０１のように繰り出し方向に移動する。しかしタイミング１１０４〜１１０５までは、図１１（ａ）の状態１１０２のように繰り込み方向の駆動指令パルスが来ているにも関わらず正転方向に微小区間スリップする。その後タイミング１００５からは図１１（ａ）の状態１１０３のように繰り込み方向の駆動指令パルス通りの移動を行う。
【００５４】
上述の動きの中で、図１１（ｂ）におけるＥＮＣ１、ＥＮＣ２の挙動を確認する。タイミング１００６におけるＥＮＣ２のＨ→Ｌ変化までは、正回転動作を行っており、この時ＥＮＣ１がＥＮＣ２に対して９０度先行した位相関係になっている。この後、タイミング１１０４において駆動波形が反転する。この後、タイミング１１０７〜１１１１までのＥＮＣ１、ＥＮＣ２の変化では、ＥＮＣ１がＥＮＣ２に対して９０度先行した位相関係になっており、駆動波形指令に対してスリップを起こしていることが分かる。続くタイミング１１１２に置いてＥＮＣ１がＨ→Ｌ変化を起こしているが、タイミング１１１１からタイミング１１１２までの時間が短く、タイミング１１１１での位置カウント処理が行われている間にタイミング１１１２の処理が起こったものとする。すなわちＣＰＵ１０８の処理ではタイミング１１１２でのＥＮＣ１のＨ→Ｌ変化は検知できなかったものとする。
【００５５】
ここで図１１の高速位置カウント処理結果１０１４と、低速位置カウント処理結果１０１５で示す各値を比較する。高速位置カウント処理結果１０１４はハードウェアを使ったナノセックオーダークラスの処理時間で位置エンコードを行っている想定で、モータ駆動のシステムで発生しうるＥＮＣの変化がどれだけ高速であろうと対応できる想定の位置カウント処理結果である。低速位置カウント処理結果１０１５はソフトウェアを使った処理で位置エンコードを行っている想定で、本実施例を使っての位置カウント処理結果である。
【００５６】
まず高速位置カウント処理結果１０１４を見ると、ＥＮＣ１、ＥＮＣ２のＨ／Ｌ状態は常に正しく検知されており、タイミング１０１１におけるＥＮＣ１のＬ→Ｈ変化、タイミング１０１２のＨ→Ｌ変化、共に正しく検知できている。この時、位置Ｃｎｔはタイミング１０１１までは８、タイミング１０１２後に９へ変化して、すぐさま短時間の逆転動作で８へと戻っている。
【００５７】
一方、低速位置カウント処理結果１０１５を見ると、タイミング１０１１におけるＥＮＣ１のＬ→Ｈ変化は検知できるが、タイミング１０１２のＨ→Ｌ変化は検知できない。
【００５８】
この時、位置Ｃｎｔはタイミング１０１１までは８、タイミング１０１１後に９と変化して、その後のタイミング１０１２では９のままとなる。位置Ｃｎｔ１０１７で示すように位置Ｃｎｔが９となり、高速位置カウント処理結果１０１４の結果の場合と異なってしまう。
【００５９】
この後のタイミング１０１３での処理においては、ＥＮＣ１ではＨ→Ｌに変化、ＥＮＣ１ではＬ→Ｈに変化したものとして、２つの信号変化が起こったものとして検出される。図７の表で示した一般的な２値ＥＮＣカウント処理においては、このような変化は想定外でこの時点で絶対回転位置を見失ってしまう。しかし本実施例の処理に照らし合わせると、枠１０１６で示すＥＮＣ１、ＥＮＣ２の過去３つの状態履歴情報を使って、絶対位置の情報を、もう一度正常復帰させることができる。以下具体的に示す。
【００６０】
枠１０１６で示す３つの過去情報を図５のフローチャートの処理に照らし合わせると、ＥＮＣ＿ＰＲＧＳ＿ＨＩＳは２進数で００１００１、１０進数で９となる。ＥＮＣ＿ＰＲＧＳ＿ＨＩＳ＝９を図８の表のＩＤＸ値照らし合わせると±Ｃｎｔ値は−２となる。タイミング１０１３での位置カウント処理において位置Ｃｎｔは、位置Ｃｎｔ１０１７に示す「９」に−２を加え、位置カウント１０１８に示す「７」となる。この値は、高速位置カウント処理結果１０１５における位置Ｃｎｔと同じ値になっており、正常復帰しているのが確認できる。
【００６１】
以上の実施例の処理を実施することにより、２値化出力信号を２チャンネル以上用いた位置検出装置において、位置検出処理の必要時間が大きく、位置のカウント処理を行っている期間にさらに重複して位置信号の変化が起こった場合でも、実用上、回転位置を見失わない処理を提供することができる。
【００６２】
また、本実施例の図８の表では、簡便のためＩＤＸ値と±Ｃｎｔ値のみを示したが、過去３回分のＥＮＣ１、ＥＮＣ２の状態と照らし合わせた形に成形した表を図９に示す。この表に従って±Ｃｎｔ値を決定すれば、ＥＮＣの変化時の割り込み時間が数秒かかる等の非現実的な場合等を除き、位置を見失わない回転位置カウント処理が可能である。
【００６３】
本件の実施例では、ステッピングモータを使った構成としたがＤＣモータ等、その他のモータの位置検知処理に対しても本実施例の処理は同様に適用できる。
【００６４】
また、本実施例における位置検知センサとしてＰＩ（フォトインタラプタ）とプロペラという構成を用いたが、ホールセンサと磁石、その他２値出力を出すセンサを２つ以上用いる構成であれば本実施例は同様に適用可能である。
【符号の説明】
【００６５】
１００  モータ駆動ユニット、１０１  ステッピングモータ、１０２  ロータ軸、
１０３  ｃｈ１フォトインタラプタ、１０４  ｃｈ２フォトインタラプタ、
１０５  スリット回転板、１０６  コンパレータ、１０７  エンコーダ回路、
１０８  ＣＰＵ、１０９  正弦波発生器、１１０  バス、１１１  ＰＷＭ発生器、
１１２  モータドライバ、１１３  Ａ相用コイル、１１４  Ｂ相用コイル、
１１５  ステータＡ＋、１６  ステータＡ−、１１７  ステータＢ＋、
１１８  ステータＢ−、１１９  ロータマグネット、１２０  レンズ
【図１】
2017223477.tif 000003
【図２】
2017223477.tif 000004
【図３】
2017223477.tif 000005
【図４】
2017223477.tif 000006
【図５】
2017223477.tif 000007
【図６】
2017223477.tif 000008
【図７】
2017223477.tif 000009
【図８】
2017223477.tif 000010
【図９】
2017223477.tif 000011
【図１０】
2017223477.tif 000012
【図１１】
2017223477.tif 000013