(57)【要約】【課題】  オフセットの影響を受けず、かつ製造コストが低いエンコーダ位置検出回路を提供する。【解決手段】  インクリメンタルエンコーダから９０度の位相差で出力されるＡ相信号及びＢ相信号を時分割して被比較電圧とし、基準電圧ＶＲＴと基準電圧ＶＲＢとの間に直列に接続された抵抗間の電圧を比較電圧とするチョッパ型コンパレータを備えるＡＤ変換部２と、ＡＤ変換部２から出力されるデータを基にＡ相信号及びＢ相信号のオフセット誤差をそれぞれ補正した後、Ａ相信号を反転させた反転Ａ相信号とＢ相信号を反転させた反転Ｂ相信号とを生成し、Ａ相信号、反転Ａ相信号、Ｂ相信号及び反転Ｂ相信号に基づいて、インクリメンタルエンコーダの１周期を逓倍した逓倍信号を１サイクルで生成する演算部３と、ＡＤ変換手段及び演算手段へ動作クロックを供給するクロックジェネレータ１とを有する。【選択図】  図１
2006138822.tif 000002
【特許請求の範囲】
【請求項１】
インクリメンタルエンコーダから９０度の位相差で出力されるＡ相信号及びＢ相信号を時分割して被比較電圧とし、基準電圧ＶＲＴと基準電圧ＶＲＢとの間に直列に接続された抵抗間の電圧を比較電圧とするチョッパ型コンパレータを備えるＡＤ変換手段と、
前記ＡＤ変換手段から出力されるデータを基に前記Ａ相信号及び前記Ｂ相信号のオフセット誤差をそれぞれ補正した後、前記Ａ相信号を反転させた反転Ａ相信号と前記Ｂ相信号を反転させた反転Ｂ相信号とを生成し、前記Ａ相信号、前記反転Ａ相信号、前記Ｂ相信号及び前記反転Ｂ相信号に基づいて、前記インクリメンタルエンコーダの１周期を逓倍した逓倍信号を１サイクルで生成する演算手段と、
前記ＡＤ変換手段及び前記演算手段へ動作クロックを供給するクロックジェネレータとを有することを特徴とするエンコーダ位置検出回路。
【請求項２】
前記Ａ相信号と１サイクル前のＡ相信号又は前記Ｂ相信号と１サイクル前のＢ相信号との相加平均を算出することにより、前記Ａ相信号のサンプリング時間と前記Ｂ相信号のサンプリング時間とを仮想的に一致させることを特徴とする請求項１記載のエンコーダ位置検出回路。
【請求項３】
前記基準電圧ＶＲＴと前記基準電圧ＶＲＢとの間には、２以上の抵抗が直列に接続されていることを特徴とする請求項１又は２記載のエンコーダ位置検出回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、角度、位置検出に使用されるエンコーダの出力信号処理回路を内蔵した半導体集積回路に関し、特に、モータなどの位置検出を要する機械全般に関する。
【背景技術】
【０００２】
移動体（回転子、ベルト）を備える機械（モータやベルト搬送装置など）は、移動体の位置を検出するためのエンコーダを備える必要がある。従来技術によるエンコーダの一例として特許文献１に開示される「エンコーダ」が挙げられる。
エンコーダを備えた装置は、エンコーダから出力される９０度の位相差信号を基に逓倍信号を生成し、これに基づいて移動体の駆動源を制御することによって移動体の移動速度を所望の速度に制御することが可能となる。
【０００３】
９０度位相差信号から逓倍信号を生成する回路の従来例を図１５に示す。
Ａ相入力（Ａ信号）、Ｂ相入力（Ｂ信号）に対して、ＯＰ−ＡＭＰ（オペアンプ）を用いた反転増幅器でＡ相の反転信号ＡＢ及びＢ相の反転信号ＢＢを生成する。さらに、ＡＢ及びＢＢをさらに反転させてＡ’信号（＝Ａ信号）とＢ’信号（＝Ｂ信号）とを生成する。
次いで、Ａ’信号とＡＢ信号とをコンパレータに入力し、Ａ−ＡＢの比較結果であるＡＯＵＴ０を生成する。同様に、Ｂ−ＢＢの比較結果であるＡＯＵＴ１、Ａ−ＢＢの比較結果であるＡＯＵＴ２、ＡＢ−ＢＢの比較結果であるＡＯＵＴ３をそれぞれコンパレータで生成する。
そして、ＡＯＵＴ０とＡＯＵＴ１とのエクスクルーシブオアをとってＥＸＯＵＴ０を生成し、ＡＯＵＴ２とＡＯＵＴ３とのエクスクルーシブオアをとってＥＸＯＵＴ１を生成する。さらに、ＥＸＯＵＴ０とＥＸＯＵＴ１とのエクスクルーシブオアをとることによって、逓倍化されたＥＸＯＵＴ信号を生成する。この回路の信号波形を図１６に示す。
【０００４】
この回路を半導体集積回路に内蔵しようとした場合、ＯＰ−ＡＭＰが大きな面積を占めるためにチップサイズが大きくなってコストアップの要因となる。また、ＯＰ−ＡＭＰやコンパレータの持つオフセット（プラス側のスレッショルドとマイナス側のスレッショルドとの不一致）の影響が問題となる。
【０００５】
ＯＰ−ＡＭＰの使用によりコストアップするという問題を解決するための従来技術として、特許文献２に開示される「エンコーダ装置」がある。
特許文献２に開示される発明は、連続した一定ピッチのインクリメンタル相信号が信号トラックに記録されると共に所定位置を示す原点相信号が記録された移動体と、上記信号トラックのインクリメンタル相信号を読み取って位相差を有する複数の出力信号を得る第１のセンサと、上記原点相信号を読み取る第２のセンサと、上記第１のセンサの出力信号からｍ倍（ｍ≧２）のパルス数にすると共に９０°の位相差を有する２個のインクリメンタル信号を出力する逓倍回路と、この逓倍回路のインクリメンタル出力信号を形成するための信号と上記第２のセンサから得た原点相信号から上記インクリメンタル信号の周期に対して１．５倍未満のパルス幅を有する原点信号に変換する周期変換手段とを有するエンコーダ装置である。
【０００６】
上記特許文献２に開示される発明は、図１９（ａ）、（ｂ）に示すように、エンコーダ出力を差動化することで、図１５に示した構成におけるＯＰ−ＡＭＰを不要としている。
【０００７】
しかしながら、実際のエンコード出力は、Ａ相、Ｂ相に個々にオフセットが発生することがあり得る。図１７に、Ａ相、Ｂ相にオフセットが発生した部分の信号波形を示す。図１８に、オフセットが発生した部分の信号波形を拡大して示す。図示するように、Ａ相とＢ相との間にオフセットがあると、Ａ、Ｂ相間の比較を行うことによって１周期の逓倍されたタイミングは正確では無くなってしまう。
このオフセットの影響を改善する従来技術として、特許文献３に開示される「回転位置検出器及び回転速度検出装置」がある。
特許文献３に開示される発明は、直交性を有する２相信号を用いて位置検出を行う位置検出器を備え、この位置検出器から出力される２相のアナログ信号をデジタル信号に変換する手段と、その２相のデジタル信号の各相の振幅を同一にし、各相のオフセット誤差を除去し、各相の位相差を９０度に調整する演算処理を行う手段とを具備した回転位置検出器であって、位置検出器の各相の振幅を同一にし、各相のオフセットを除去した後、各相信号の和と差の演算を行い、生成される２つの信号を用いて各相の位相差を９０度にする手段を備えた回転位置検出器である。
【特許文献１】特開平１１−３２５９７３号公報
【特許文献２】特許第２５５８２８７号公報
【特許文献３】特開２００１−２９６１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献３に開示される発明は、図２０（ａ）、（ｂ）に示すように、ＡＤ変換後にデジタル演算処理でＡ相、Ｂ相のオフセット調整を行う方式をとっている。このため、ＡＤ変換器を二つ要する回路構成となり、チップサイズが大きくなって製造コストが高騰してしまう。
【０００９】
このように、従来は、オフセットの影響を受けないエンコーダ位置検出回路を低い製造コストで提供することはできなかった。
【００１０】
本発明はかかる問題に鑑みてなされたものであり、オフセットの影響を受けず、かつ製造コストが低いエンコーダ位置検出回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上記目的を達成するために、インクリメンタルエンコーダから９０度の位相差で出力されるＡ相信号及びＢ相信号を時分割して被比較電圧とし、基準電圧ＶＲＴと基準電圧ＶＲＢとの間に直列に接続された抵抗間の電圧を比較電圧とするチョッパ型コンパレータを備えるＡＤ変換手段と、ＡＤ変換手段から出力されるデータを基にＡ相信号及びＢ相信号のオフセット誤差をそれぞれ補正した後、Ａ相信号を反転させた反転Ａ相信号とＢ相信号を反転させた反転Ｂ相信号とを生成し、Ａ相信号、反転Ａ相信号、Ｂ相信号及び反転Ｂ相信号に基づいて、インクリメンタルエンコーダの１周期を逓倍した逓倍信号を１サイクルで生成する演算手段と、ＡＤ変換手段及び演算手段へ動作クロックを供給するクロックジェネレータとを有することを特徴とするエンコーダ位置検出回路を提供するものである。
【００１２】
本発明においては、Ａ相信号と１サイクル前のＡ相信号又はＢ相信号と１サイクル前のＢ相信号との相加平均を算出することにより、Ａ相信号のサンプリング時間とＢ相信号のサンプリング時間とを仮想的に一致させることが好ましい。また、基準電圧ＶＲＴと基準電圧ＶＲＢとの間には、２以上の抵抗が直列に接続されていることが好ましい。
【発明の効果】
【００１３】
本発明によれば、オフセットの影響を受けず、かつ製造コストが低いエンコーダ位置検出回路を提供できる。
【発明を実施するための最良の形態】
【００１４】
〔第１の実施形態〕
本発明を好適に実施した第１の実施形態について説明する。図１に本実施形態に係るエンコーダ位置検出回路の構成を示す。このエンコーダ位置検出回路は、クロックジェネレータ（ＣＬＫＧＥＮ）１、ＡＤ変換部２及び演算部３を有する。
クロックジェネレータ１は、クロック信号を生成し、ＡＤ変換部２及び演算部３へ出力する。ＡＤ変換部２は、クロックジェネレータ１から入力されるクロック信号に応じて作動し、ＡＩＮ及びＢＩＮから入力されるアナログ信号をデジタル信号に変換する。演算部３は、ＡＤ変換部３が出力するデジタル信号に所定の演算処理を施して、逓倍信号としてモータ制御部４へと出力する。
【００１５】
ＣＬＫＩＮからクロックジェネレータ１に入力されるクロック信号がマスタークロックである。エンコーダからのＡ相信号及びＢ相信号は、ＡＩＮ及びＢＩＮにそれぞれ入力される。ＶＲＴ及びＶＲＢは、ＡＤ変換部２の基準電圧の入力端子である。
【００１６】
図２に、ＡＤ変換部２の構成を示す。ＶＲＴとＶＲＢとの間には、複数の抵抗素子が直列に接続されており、各抵抗素子の両端の電圧が比較電圧となっている。比較対象の電圧（被比較電圧）は、クロックジェネレータ１から入力されるＩＮＳＥＬ及びＩＮＳＥＬＢ信号に応じてスイッチを切り替えることでＡＩＮ又はＢＩＮから入力され、ＩＮＡ信号となる。
抵抗分割された基準電圧と、ＩＮＡ信号とを比較する回路は、チョッパ型コンパレータで構成される。チョッパ型コンパレータのスイッチの切り替えは、クロックジェネレータ１から入力されるＩＮＣＫ信号及びＣＰＣＫ信号に応じて行われる。チョッパ型コンパレータにおける比較結果であるＨＤ０〜ＨＤ１４の各信号は、エンコード部へ入力される。
【００１７】
図３に、エンコード部の構成を示す。ＨＤ０〜ＨＤ１４の各信号をインバータで反転させた後、クロックジェネレータ１から入力されるＣＬＫ信号の立ち上がりタイミングでラッチする。ラッチ後、３入力のＡＮＤ回路で隣のビットとのアンドをとる。これにより、ノイズなどの影響で異常な比較結果が得られることの無いようにしている。３入力ＡＮＤの比較結果であるＥＮＮ０〜ＥＮＮ１４の各信号は、エンコード回路へ入力される。
【００１８】
図４にエンコード回路の構成を示す。図示するように、エンコード回路は、１５ビットの入力を４ビットに変換する回路である。
【００１９】
図５に、ＡＤ変換部２の動作タイミングを示す。
ＡＩＮ、ＢＩＮはＡ相、Ｂ相の信号入力である。ＣＬＫＩＮは、マスタークロック入力である。ＩＮＳＥＬ及びＩＮＳＥＬＢは、ＣＬＫＩＮから２分周された信号である。ＩＮＳＥＬ及びＩＮＳＥＬＢは、スイッチ切り替え時の信号の衝突を防止するためにノンオーバラップ信号となっている。ＩＮＳＥＬ＝１の時にＡＩＮ入力とＩＮＡとが接続され、ＩＮＳＥＬＢ＝１の時にＢＩＮとＩＮＡとが接続される。ＩＮＣＫ及びＣＰＣＫは、チョッパ型コンパレータのスイッチ信号であり、ＩＮＣＫ＝１の期間がサンプリング期間、ＣＰＣＫ＝１の期間が基準電圧との比較期間である。ＨＤ０〜ＨＤ１４は、チョッパ型コンパレータの出力信号であり、ＩＮＣＫ＝１の期間はインバータの入出力が接続されるため、ＬＳＩの中間電位となり、ＣＰＣＫ＝１の期間に比較結果が出力される。図５において、（１）の期間はＡ相入力のサンプリング期間である。また、（２）の期間はＡ相の比較出力期間である。また、（３）の期間はＢ相入力のサンプリング期間である。また、（４）の期間はＢ相の比較出力期間である。ＨＤ［１４：０］は、ＨＤ０〜ＨＤ１４をバス表記（ＨＤ１４をＭＳＢ、ＨＤ０をＬＳＢとする１５ビット表記）した信号である。ＨＤ＿Ｂ［１４：０］は、ＨＤ［１４：０］の反転信号である。ＣＬＫは、クロックジェネレータ１からのクロック入力であり、このクロックの立ち上がり時にＨＤ＿Ｂ信号をラッチしている。ＥＮＩＮ［１４：０］は、隣接ビットとの３入力ＡＮＤ出力信号であり、エンコード回路へ入力される信号である。ＥＮＯＵＴ［３：０］は、エンコード回路からの出力信号である。
【００２０】
図示するように、（１）、（２）の期間でサンプリングが行われ、ＣＬＫの半サイクル後にデジタルコード化される。
【００２１】
図６に、演算部３の構成を示す。演算部３は、平均検出回路３１、反転回路３２、補正処理回路３３及び逓倍信号出力回路３４を有する。
【００２２】
ＣＬＫはＡＤ変換部２へ入力されるものと同じものであり、クロックジェネレータ１から入力される。ＥＮＯＵＴ［３：０］は、ＡＤ変換部２の出力信号である。ＡＢＳＥＬは、図１０に示すように、ＥＮＯＵＴのデータが、Ａ相、Ｂ相どちらの変換データであるかを１サイクルごとに示す信号であり、クロックジェネレータ１において生成される。
【００２３】
ＡＤＡＴＡは、ＡＳＥＬ＝１の時にＣＬＫの立ち上がりでＥＮＯＵＴをラッチした信号であり、Ａ相の変換データをラッチしたものである。ＢＤＡＴＡは、ＡＳＥＬ＝０の時にＣＬＫの立ち上がりでＥＮＯＵＴをラッチした信号であり、Ｂ相の変換データをラッチしたものである。
【００２４】
ＢＦＡＤ及びＢＦＢＤは、それぞれＡ相、Ｂ相の１サイクル前のデータがラッチされる。
【００２５】
平均検出回路３１は、ＡＤＡＴＡ、ＢＤＡＴＡ、ＢＦＡＤ及びＢＦＢＤ信号を基に、Ａ相及びＢ相のそれぞれについて最小値及び最大値を検出し、その最小値及び最大値から平均値を算出する回路である。平均検出回路は、Ａ相の平均値としてＡＡＶＥＲＥＧを、Ｂ相の平均値としてＢＡＶＥＲＥＧを出力する。なお、平均検出回路３１の構成については後段で詳細に説明する。
【００２６】
反転回路３２は、Ａ／Ｄ変換部２から入力されるＥＯＵＴを平均検出回路３１から入力されるＡＡＶＲＥＧで反転させてＸＤＡＴＡとして出力する。
反転処理回路は次のような処理を行う
assign XDATA=AAVEREG-(ENOUT-AAVEREG);
【００２７】
補正処理回路３３は、Ａ相信号とＢ相信号とのずれを補正するための回路であり、次のような処理を行う。
assign ABDIFF=AAVEREG-BAVEREG;
assign BDATAX=ENOUT+ABDIFF
assign XBDATA=AAVEREG-(BDATAX-AAVEREG);
【００２８】
ＸＡＤＡＴＡは、ＥＮＯＵＴからＡＡＶＥＲＥＧを引いた値をＡＡＶＥＲＥＧから減じた結果であり、後段のフリップフロップ（ＦＦ）でＡＤＡＴＡＢとしてラッチされる。ＢＤＡＴＡＸは、ＡＡＶＥＲＥＧとＢＡＶＥＲＥＧとの差分をＥＮＯＵＴに加算した結果であり、後段のＦＦでＢＤＡＴＡ２としてラッチされる。ＸＢＤＡＴＡは、ＢＤＡＴＡＸをＡＡＶＥＲＥＧで反転させた計算結果であり、後段のＦＦにおいてＢＤＡＴＡＢとしてラッチされる。
Ｂ相のデータをＡＡＶＥＲＥＧとＢＡＶＥＲＥＧとの差分で補正することで、図１４に示すように、Ｂ相のデータをＡ相の平均値を中心とする信号へ補正できる。
【００２９】
逓倍信号出力回路３４は、エンコーダの１周期を逓倍した信号を出力する回路であり、次のような処理を行う。
assign AOUT0=(ADATA>=ADATAB)?1b'1:1'B0;
assign AOUT1=(BDATA>=BDATAB)?1'b1:1'B0;
assign AOUT2=(ADATA>=BDATAB)?1'b1:1'B0;
assign AOUT3=(ADATA>=BDATA2)?1'b1:1'B0:
assign EXOUT0=AOUT0^AOUT1;
assign EXOUT1=AOUT2^AOUT3;
assign EXOUT=EXOUT=EXOUT0^EXOUT1;
【００３０】
逓倍信号ＡＯＵＴ、ＥＸＯＵＴは、ＡＤＡＴＡ、ＡＤＡＴＡＢ、ＢＤＡＴＡ２、ＢＤＡＴＡＢを基にして、図６中に示す論理式によって算出される。
【００３１】
図７に、平均検出回路３１の構成を示す。また、図８に平均検出回路の動作タイミングを示す。
【００３２】
平均検出回路３１は、Ａ相カウンタ３１１、Ｂ相カウンタ３１２、Ａ相フラグ判定部３１３、Ｂ相フラグ判定部３１４、Ａ相最大値・最小値袖手粒３１５、Ｂ相最大値・最小値抽出部３１６、Ａ相最大値・最小値選択部３１７、Ｂ相最大値・最小値選択部３１８及び平均値出力部３１９を有する。
【００３３】
Ａ相カウンタ３１１は、Ａ相の入力データとバッファされているＡ相のデータとを比較し、バッファされているデータよりも入力データの方が大きい状態が所定サイクル連続したか否かを判断する。
Ａ相カウンタ３１１は、次のような処理を行う。
always @(posedge CLK)begin
if (aict==2'b11 | BFAD>ADATA)aint<=2'b00;
else if(BFAD<ADATA)aict<=aint+1;
else aict<=aict;
end
assign AUPFLG=(aict==2'b10);
always @(posedge CLK)begin
if(aict2==2'b11 | BFAD<ADATA)aict2<=2'b00;
else if(BFAD>ADATA)aict2<=aict2+1;
else aict2<=aict2;
end
assign ADOWNFLG=(aict2==2'b10);
【００３４】
Ｂ相カウンタ３１２は、Ｂ相の入力データとバッファされているＢ相のデータとを比較し、バッファされているデータよりも入力データの方が大きい状態が所定サイクル連続したか否かを判断する。
Ｂ相カウンタ３１２は、次のような処理を行う。
always @(posedge CLK)begin
if (aict==2'b11 | BFBD>BDATA)aint<=2'b00;
else if(BFBD<BDATA)bict<=bint+1;
else bict<=bict;
end
assign BUPFLG=(bict==2'b10);
always @(posedge CLK)begin
if(bict2==2'b11 | BFBD<BDATA)bict2<=2'b00;
else if(BFBD>BDATA)bict2<=bict2+1;
else bict2<=bict2;
end
assign BDOWNFLG=(bict2==2'b10);
【００３５】
ＡＵＰＦＬＧは、ＡＤＡＴＡがＢＦＡＤよりも大きい場合にＯＮする信号で、ＡＤＯＷＮＦＬＧは、ＡＤＡＴＡがＢＦＡＤよりも小さい場合にＯＮする信号である。ＢＵＰＦＬＧは、ＢＤＡＴＡがＢＦＢＤよりも大きい場合にＯＮする信号で、ＢＤＯＷＮＦＬＧは、ＢＤＡＴＡがＢＦＢＤよりも小さい場合にＯＮする信号である。
ＡＤＡＴＡ（又はＢＤＡＴＡ）がＢＦＡＤ（又はＢＦＢＤ）よりも２サイクル続けて大きい（又は小さい）場合に、ＡＤＡＴＡ（又はＢＤＡＴＡ）がＢＦＡＤ（又はＢＦＢＤ）よりも大きい（又は小さい）と判断する。例えば、ＡＤＡＴＡが１サイクルの間ＢＦＡＤを上回っても、次のサイクルでＢＦＡＤを下回ったらＡＵＰＦＬＧはＯＮしない。このようにすることで、ノイズなどの影響を無くすためにヒステリシスを入れた場合と同様の効果が得られる。なお、上記の回数は任意に変更可能であることは言うまでもない。
【００３６】
Ａ相フラグ判定部３１３は、ＡＵＰＦＬＧ又はＡＤＯＷＮＦＬＧがＯＮになっているか否かを判断する。
Ａ相フラグ判定部３１３は、次のような動作を行う。
always @(posedge CLK)begin
if (ADOWNFLG)   AUPREG<=1'b0;
else if(AUPREG==1'b1)AUPREG<=1'b1;
else AUPREG<=AUPREG;
end
always @(posedge CLK)begin
if(AUPFLG)   ADNREG<=1'b0;
else if (ADOWNFLG=1'b1)ADNREG<=1b1;
else ADNREG<=ADNREG;
end
【００３７】
ＡＵＰＲＥＧは、ＡＵＰＦＬＧがＯＮするとＯＮとなり、ＡＤＯＷＮＦＬＧがＯＮしたらＯＦＦする信号である。ＡＤＮＲＥＧは、ＡＵＰＲＥＧとは逆に、ＡＤＯＷＮＦＬＧがＯＮしたらＯＮとなり、ＡＵＰＦＬＧがＯＮしたらＯＦＦする信号である。
【００３８】
Ｂ相フラグ判定部３１４は、ＢＵＰＦＬＧ又はＢＤＯＷＮＦＬＧがＯＮになっているか否かを判断する。
Ｂ相フラグ判定部３１４は、次のような動作を行う。
always @(posedge CLK)begin
if (BDOWNFLG)   BUPREG<=1'b0;
else if(BUPREG==1'b1)BUPREG<=1'b1;
else BUPREG<=BUPREG;
end
always @(posedge CLK)begin
if(BUPFLG)   BDNREG<=1'b0;
else if (BDOWNFLG=1'b1)BDNREG<=1b1;
else BDNREG<=BDNREG;
end
【００３９】
ＢＵＰＲＥＧは、ＢＵＰＦＬＧがＯＮするとＯＮとなり、ＢＤＯＷＮＦＬＧがＯＮしたらＯＦＦする信号である。ＢＤＮＲＥＧは、ＢＵＰＲＥＧとは逆に、ＢＤＯＷＮＦＬＧがＯＮしたらＯＮとなり、ＢＵＰＦＬＧがＯＮしたらＯＦＦする信号である。
【００４０】
Ａ相最大値・最小値抽出部３１５は、Ａ相信号の変化を監視して最大値及び最小値を抽出する。Ａ相信号最大値・最小値抽出部３１５は、次のような処理を行う。
always @(posedge CLK)begin
if (ADOWNFLG) AMAX<=4'b0111;
else if(AMAX<=ADATA)AMAX<=ADATA;
else AMAX<=AMAX;
end
always @(posedge CLK)begin
if(AUPFLG) AMIN<=4'b0111;
else if(AMIN>=ADATA)AMIN<=ADATA;
else AMIN<=AMIN;
end
【００４１】
ＡＭＡＸは、ＡＤＮＲＥＧがＯＮの間は中間値（ここでは演算部３が４ｂｉｔの構成だるため“７”）であり、ＡＤＮＲＥＧがＯＦＦの間はＡＤＡＴＡがＡＭＡＸよりも大きければＡＤＡＴＡが取り込まれる。この動作によってＡＤＡＴＡの最大値が検出される。一方、ＡＭＩＮは、ＡＵＰＲＥＧがＯＮの間は中間値であり、ＡＵＰＲＥＧがＯＦＦの間はＡＤＡＴＡがＡＭＩＮよりも小さければＡＤＡＴＡが取り込まれる。この動作によってＡＤＡＴＡの最小値が検出される。
【００４２】
Ｂ相最大値・最小値抽出部３１６は、Ｂ相信号の変化を監視して最大値及び最小値を抽出する。Ｂ相信号最大値・最小値抽出部３１６は、次のような処理を行う。
always @(posedge CLK)begin
if (BDOWNFLG) BMAX<=4'b0111;
else if(BMAX<=BDATA)BMAX<=BDATA;
else BMAX<=BMAX;
end
always @(posedge CLK)begin
if(BUPFLG) BMIN<=4'b0111;
else if(BMIN>=BDATA)BMIN<=BDATA;
else BMIN<=BMIN;
end
【００４３】
ＢＭＡＸ及びＢＭＩＮは、ＡＭＡＸ及びＡＭＩＮと同様にして出力値が決定され、上記同様にＢＤＡＴＡの最大値及び最小値を検出する。
【００４４】
Ａ相最大値・最小値選択部３１７は、Ａ相信号の最大値及び最小値を所定のタイミングでラッチする。Ａ相最大値・最小値選択部３１７は、次のような処理を行う。
assign aulat=adownfig & !adwreg;
assign adnlat=aupflg & !aupreg;
always @(posedge CLK)begin
if(auplat)  AMAX2<=AMAX;
else AMAX2<=AMAX2;
end
always @(posedge CLK)begin
if(adnlat)AMIN2<=AMIN;
else AMIN<=AMIN2;
end
assign ALAT=auplat||adnlat;
【００４５】
ＡＭＡＸ２は、ＡＤＯＷＮＦＬＧ＆！ＡＤＮＲＥＧの論理式の結果ａｕｐｌａｔが正の場合のＣＬＫの立ち上がりでラッチされる。ＡＤＯＷＮＦＬＧ＆！ＡＤＮＲＥＧの論理式の結果ａｕｐｌａｔが正とは、ＡＤＡＴＡが減少し始めた時の最初の１サイクルでＯＮされる信号である。
ＡＭＩＮ２は、ＡＵＰＦＬＧ＆！ＡＵＰＲＥＧの論理式の結果ａｄｎｌａｔが正の場合のＣＬＫの立ち上がりでラッチされる。ＡＵＰＦＬＧ＆！ＡＵＰＲＥＧの論理式の結果ａｄｎｌａｔが正とは、ＡＤＡＴＡが増加し始めた時の最初の１サイクルでＯＮされる信号である。
【００４６】
Ｂ相最大値・最小値選択部３１８は、Ｂ相信号の最大値及び最小値を所定のタイミングでラッチする。Ｂ相最大値・最小値選択部３１８は、次のような処理を行う。
assign bulat=bdownfig & !bdnreg;
assign bdnlat=bupflg & !bupreg;
always @(posedge CLK)begin
if(buplat)  BMAX2<=BMAX;
else BMAX2<=BMAX2;
end
always @(posedge CLK)begin
if(bdnlat)BMIN2<=BMIN;
else BMIN<=BMIN2;
end
assign BLAT=buplat||bdnlat;
【００４７】
ＢＭＡＸ２は、ＢＤＯＷＮＦＬＧ＆！ＢＤＮＲＥＧの論理式の結果ｂｕｐｌａｔが正の場合のＣＬＫの立ち上がりでラッチされる。ＢＤＯＷＮＦＬＧ＆！ＢＤＮＲＥＧの論理式の結果ｂｕｐｌａｔが正とは、ＢＤＡＴＡが減少し始めた時の最初の１サイクルでＯＮされる信号である。
ＢＭＩＮ２は、ＢＵＰＦＬＧ＆！ＢＵＰＲＥＧの論理式の結果ｂｄｎｌａｔが正の場合のＣＬＫの立ち上がりでラッチされる。ＢＵＰＦＬＧ＆！ＢＵＰＲＥＧの論理式の結果ｂｄｎｌａｔが正とは、ＢＤＡＴＡが増加し始めた時の最初の１サイクルでＯＮされる信号である。
【００４８】
なお、ＡＬＡＴは、ａｕｐｌａｔとａｄｎｌａｔとの論理和信号、ＢＬＡＴはｂｕｐｌａｔとｂｄｎｌａｔとの論理和信号である。
【００４９】
平均値出力部３１９は、Ａ相信号の平均値及びＢ相信号の平均値を出力する。平均値出力部３１９は、次のような処理を行う。
assign aave=(AMAX2-AMIN2)/2+AMIN2;
assign bave=(BMAX2-BMIN2)/2+BMIN2;
always @(posedge CLKS)begin
if(ALAT)AAVEREG<=aave;
else AAVEREG<=AAVEREG;
end
always @(posedge CLK)begin
if(BLAT)BAVEREG<=bave;
else BAVEREG<=BAVEREG<=BAVEREG;
end
【００５０】
ＡＡＶＥＲＥＧは、ＡＭＡＸ２、ＡＭＩＮ２の平均値がＡＬＡＴでＯＮでＣＬＫの立ち上がりでラッチされる。ＢＡＶＥＲＥＧは、ＢＭＡＸ２、ＢＭＩＮ２の平均値がＢＬＡＴがＯＮでＣＬＫの立ち上がりでラッチされる。
【００５１】
このような回路構成とすることにより、図９に示すように、ＡＩＮの変化に対応してＡＭＡＸ２、ＡＭＩＮ２及びＡＡＶＥＲＥＧが追従できる。
【００５２】
図１１に、Ａ相とＢ相との間にオフセットがあった場合の演算回路の動作を示す。ここではオフセットの値が“２”の場合を示すが、ＢＤＡＴＡがオフセット（ＡＢＤＩＦＦ）分加算されてＢＤＡＴＡ２となり、Ａ相とのオフセット調整がされている。ここではＢＤＡＴＡをＡＡＶＥＲＥＧで補正する方式を示しているが、ＡＤＡＴＡをＢＡＶＥＲＥＧで補正しても同様の効果が得られる。
【００５３】
図１２に、ＢＤＡＴＡ２にオフセット調整を行わない回路構成での信号波形を示す。この場合には、オフセット調整を行う場合（図１１に示す波形）と比較して１周期の逓倍誤差が大きくなる。
【００５４】
図１３に、ＡＤ変換部２の出力及び演算部３の入力が５ビットである場合の信号波形を示す。図１１に示す４ビットの場合と比較して、逓倍誤差はさらに減少する。このように、ＡＤ変換部２の出力及び演算部３の入力ビット数を大きくすることで、逓倍の精度を高めることができる。
【００５５】
本実施形態にかかるエンコーダ位置検回路は、Ａ／Ｄ変換にチョッパ型のコンパレータを用い、かつＡ相、Ｂ相の信号を一つのＡ／Ｄ変換回路で時分割でＡ／Ｄ変換するため、チップサイズの縮小できる。これにより製造コストを低減できる。しかも、オフセットの影響を受けることなく逓倍信号を出力できる。
【００５６】
〔第２の実施形態〕
本発明を好適に実施した第２の実施形態について説明する。
エンコーダ位置検出回路の構成は第１の実施形態と同様である。ただし、本実施形態においては、演算部３の構成が第１の実施形態と相違する。
【００５７】
図２１に、本実施形態における演算部３の構成を示す。本実施形態において、演算部３は、平均検出回路３１、反転回路３２、補正処理回路３３’及び逓倍信号出力回路３４’を有する。
【００５８】
平均値検出回路３１及び反転回路３２は、第１の実施形態の演算部３のものと同様である。
【００５９】
補正処理回路３３’は、Ａ相信号とＢ相信号とのずれを補正するための回路であり、次のような処理を行う。
assign ABDIFF=AAVEREG-BAVEREG;
assign BDATAX=(ENOUT+BFBD)/2+ABDIFF
assign XBDATA=AAVEREG-(BDATAX-AAVEREG);
【００６０】
逓倍信号出力回路３４’は、エンコーダの１周期を逓倍した信号を出力する回路であり、次のような処理を行う。
assign AOUT0=(ADATA>=ADATAB)?1b'1:1'B0;
assign AOUT1=(BDATA2>=BDATAB)?1'b1:1'B0;
assign AOUT2=(BFAD>=BDATAB)?1'b1:1'B0;
assign AOUT3=(BFAD>=BDATA2)?1'b1:1'B0:
assign EXOUT0=AOUT0^AOUT1;
assign EXOUT1=AOUT2^AOUT3;
assign EXOUT=EXOUT=EXOUT0^EXOUT1;
【００６１】
本実施形態においては、演算部３は、逓倍用信号を生成する比較データにＡ相、Ｂ相の時間差を補正する構成としている。
補正は、Ｂ相データについて１サイクル前のデータとの相加平均をとり、その結果を比較用のＢ相データとしている。また、Ａ相データについては、Ｂ相データと同期させるために１サイクル前のデータであるＢＦＡＤを比較用のＡ相データとしている。
【００６２】
ＡＤ変換部２におけるＡＤ変換は、Ａ相、Ｂ相を時分割して行われる。この方法は、Ａ相、Ｂ相のアナログ入力に対してサンプリングクロックが高速の場合には、Ａ相、Ｂ相のサンプリング時間差による影響は微小であるが、アナログ入力に対してサンプリングクロックが高速で無い場合には、サンプリングの時間差を考慮する必要がある。
【００６３】
サンプリングを同時に行うためには、Ａ相及びＢ相の各々用にサンプリングホールドアンプを設ければ良いが、これを設けると回路の製造コストが増大する。
【００６４】
図２２に、アナログ入力に対してサンプリングクロックが十分大きくない場合の、第１の実施形態に係るエンコーダ検出回路の信号波形を示す。Ａ相、Ｂ相のサンプリング誤差を明確にするためにＡ相、Ｂ相は同一波形を入力しているが、ＡＤＡＴＡとＢＤＡＴＡ２とではデータが一致していない。
【００６５】
図２３に、アナログ入力に対してサンプリングクロックが十分大きくない場合の本実施形態に係るエンコーダ検出回路の信号波形絵を示す。図示するように、本実施形態では、上記演算を行うことにより、Ａ相、Ｂ相データのサンプリング時間差が補正される。図２４（ａ）にアナログ入力信号を、図２４（ｂ）に本実施形態にかかるエンコーダ検出回路が備える演算部３の出力信号を、図２４（ｃ）に第１の実施形態にかかるエンコーダ検出回路が備える演算部３の出力信号を示す。図示するように、本実施形態では、第１の実施形態と比較してＡ相とＢ相との誤差が低減する。
【００６６】
本実施形態にかかるエンコーダ位置検回路は、Ａ／Ｄ変換にチョッパ型のコンパレータを用い、かつＡ相、Ｂ相の信号を一つのＡ／Ｄ変換回路で時分割でＡ／Ｄ変換するため、チップサイズの縮小できる。これにより製造コストを低減できる。しかも、オフセットの影響を受けることなく逓倍信号を出力できる。
【００６７】
また、特許文献３に開示される発明には、デジタル演算処理で行うＡ相、Ｂ相の位相調整に１２ステップを要するため、エンコーダ出力が高速の場合には対応できないという問題があるが、本実施形態にかかるエンコーダ検出装置は、Ａ相、Ｂ相の時分割によるサンプリング誤差を補正する回路構成としているため、サンプリングクロックに対してエンコーダの周波数が高くなっても誤差の影響が小さい。すなわち、エンコーダ出力が高速の場合にも対応可能である。
【００６８】
なお、上記各実施形態は本発明の好適な実施の一例であり、本発明はこれらに限定されることなく様々な変形が可能である。
【図面の簡単な説明】
【００６９】
【図１】本発明を好適に実施した第１の実施形態にかかるエンコーダ位置検出回路の構成を示す図である。
【図２】ＡＤ変換部の内部構成及びクロックジェネレータとの接続状態を示す図である。
【図３】エンコーダ回路の構成を示す図である。
【図４】エンコード回路の構成を示す図である。
【図５】ＡＤ変換部の動作タイミングを示す図である。
【図６】演算部の構成を示す図である。
【図７】平均検出回路の構成を示す図である。
【図８】平均検出回路の動作タイミングを示す図である。
【図９】（ａ）は平均検出回路に入力されるＡ相信号を表す図であり、（ｂ）はＡ相信号を基に平均検出回路の内部で変換される値を示す図である。
【図１０】演算部の動作タイミングを示す図である。
【図１１】演算部の動作タイミングを示す図である。
【図１２】Ｂ相信号にオフセット補正を施さない場合の演算部の動作タイミングを示す図である。
【図１３】演算部が５ｂｉｔの演算を行う構成の場合の動作タイミングを示す図である。
【図１４】（ａ）はＢ相信号を基に平均検出回路の内部で変換される値を示す図であり、（ｂ）は、Ａ相信号とＡ相信号の平均値及びＢ相信号の平均値との関係を示す図である。
【図１５】従来技術によるエンコーダ検出装置の構成を示す図である。
【図１６】従来技術によるエンコーダ検出装置の信号波形を示す図である。
【図１７】Ａ相信号、Ｂ相信号にオフセットが発生した状態を示す図である。
【図１８】Ａ相信号、Ｂ相信号にオフセットが発生した状態を示す図である。
【図１９】特許文献２に開示される発明の構成及び動作を示す図である。
【図２０】特許文献３に開示される発明の構成及び動作を示す図である。
【図２１】本発明を好適に実施した第２の実施形態にかかるエンコーダ検出装置が備える演算部の構成を示す図である。
【図２２】第１の実施形態にかかるエンコーダ検出装置が備える演算部の動作タイミングを示す図である。
【図２３】第２の実施形態にかかるエンコーダ検出装置が備える演算部の動作タイミングを示す図である。
【図２４】（ａ）はアナログ入力信号を示す図であり、（ｂ）は第２の実施形態に係る演算部の出力を示す図であり、（ｃ）は、第１の実施形態にかかる演算部の出力を示す図である。
【符号の説明】
【００７０】
１    クロックジェネレータ
２    ＡＤ変換部
３    演算部
４    モータ制御部
３１    平均検出回路
３２    反転回路
３３、３３’    補正処理回路
３４、３４’    逓倍信号出力回路
３１１    Ａ相カウンタ
３１２    Ｂ相カウンタ
３１３    Ａ相フラグ判定部
３１４    Ｂ相フラグ判定部
３１５    Ａ相最大値・最小値抽出部
３１６    Ｂ相最大値・最小値抽出部
３１７    Ａ相最大値・最小値選択部
３１８    Ｂ相最大値・最小値選択部
３１９    平均値出力部
【図１】
2006138822.tif 000003
【図２】
2006138822.tif 000004
【図３】
2006138822.tif 000005
【図４】
2006138822.tif 000006
【図５】
2006138822.tif 000007
【図６】
2006138822.tif 000008
【図７】
2006138822.tif 000009
【図８】
2006138822.tif 000010
【図９】
2006138822.tif 000011
【図１０】
2006138822.tif 000012
【図１１】
2006138822.tif 000013
【図１２】
2006138822.tif 000014
【図１３】
2006138822.tif 000015
【図１４】
2006138822.tif 000016
【図１５】
2006138822.tif 000017
【図１６】
2006138822.tif 000018
【図１７】
2006138822.tif 000019
【図１８】
2006138822.tif 000020
【図１９】
2006138822.tif 000021
【図２０】
2006138822.tif 000022
【図２１】
2006138822.tif 000023
【図２２】
2006138822.tif 000024
【図２３】
2006138822.tif 000025
【図２４】
2006138822.tif 000026