(57)【要約】【課題】エンコーダの逓倍回路に使用する三角関数のデータを生成する演算速度が速くローコストの関数発生回路を得る。【解決手段】偶数ビットをもつ第１レジスター１および第２レジスター２を備え、第１レジスター１および第２レジスター２をそれぞれ上位ビット側およびと下位ビット側に２分し、第１レジスター１の上位ビット側Ｒ1に円の半径の値を設定し、他のレジスターには０を設定した後、第１レジスター１の上位ビット側Ｒ1のデータを第２レジスター２の下位ビット側に加算し、第２レジスター２の上位ビット側Ｒ3のデータを第２レジスター２の下位ビット側から減じる動作をＲ1の値が０になるまで繰り返す。【選択図】図１
2005300253.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダから得られる出力信号の逓倍処理に用いる三角関数のデータを生成するための関数発生回路を備えた逓倍回路であって、
前記関数発生回路は、偶数ビットをもつ第１レジスターおよび第２レジスターを備え、前記第１レジスターおよび前記第２レジスターをそれぞれ上位ビット側と下位ビット側に２分し、前記第１レジスターの上位ビット側に円の半径の値を、下位ビット側に０を設定し、前記第２レジスターの上位ビット側および下位ビット側に０を設定した後、前記第１レジスターの上位ビット側のデータを前記第２レジスターの下位ビット側のデータに加算する第１の動作と、前記第２レジスターの上位ビット側のデータを前記第２レジスターの下位ビット側のデータから減じる第２の動作を繰り返すことにより、前記第１レジスターの上位ビット側にｃｏｓΦ、前記第２レジスターの上位ビット側にｓｉｎΦの値を生成するように構成したことを特徴とするエンコーダの逓倍回路。
【請求項２】
前記逓倍回路は、電源投入のイニシャル時に前記関数発生回路を動作させ、この関数発生回路で生成された前記三角関数のデータをＲＡＭに書き込み、通常動作時はこの三角関数のデータをテーブルとしてハードウェアーでトラッキング演算を行うように構成したことを特徴とする請求項１記載のエンコーダの逓倍回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＡ、ロボット等に使用するモータの位置検出を行うエンコーダの逓倍回路に関する。
【背景技術】
【０００２】
従来、エンコーダの逓倍回路としてトラッキング方式を用いたものがある。トラッキング方式は位相角Φとこれに対応した三角関数ｓｉｎΦおよびｃｏｓΦの値が書き込まれたメモリテーブルを準備し、このメモリテーブルの値と、移動体の位置に対応した検出器からのｓｉｎθおよびｃｏｓθの信号とから両信号間の位相差（θ−Φ）を検出し、トラッキング演算によって位相差が０となるようなメモリテーブル上の位相Φを求めることによって移動体の位置検出信号を得ている。
メモリに三角関数のデータを搭載する方法として電源投入時にＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）を用いた関数発生回路を動作させＲＡＭに書き込む方法がある。（例えば、特許文献１参照）。
図６はＤＤＡを用いた従来のエンコーダの関数発生回路のブロック図である。
図において、１−１、１−２、１−３はアップダウンカウンターで１−１はダウンカウント、１−２および１−３はアップカウントで使用する。１−１にはイニシャル時に三角形の斜辺の長さに相当する円の半径Ｒの値を設定する。カウンターの出力はＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）に入力する、カウンターのデータはクロックＣＡＬでＤ−ＦＦの出力と加算、若しくは減算し、オーバフロー、アンダーフローしたパルスを他方のカウンターに入力する。ＣＰはカウンター１−３に入力するＣＰをカウントした物が円周のデータΦになり各々のカウンターの出力がｃｏｓΦ、ｓｉｎΦとなる。このように従来のエンコーダの関数発生回路はＤＤＡを用いてｓｉｎΦおよびｃｏｓΦの三角関数のデータを生成していた。
また、図７は三角関数のテーブルとしてＲＯＭを用いた場合の従来の逓倍回路のブロック図である。
図において７１はＲＯＭで、予め三角関数のデータが書き込んであり、エンコーダに搭載されたＣＰＵがこのＲＯＭ７１からデータを読み出してトラッキング演算を行っていた。（例えば、特許文献２参照）。
【特許文献１】特開２００４−５３５１５号公報（図１）
【特許文献２】特開平４−３２８４１０号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のＤＤＡを用いたエンコーダの関数発生回路における三角関数の演算は速度が遅く、また、パルス列を扱う為にハードウエアーの量が増えるという問題があった。また、ＲＯＭテーブルを搭載するという方法は、コストアップになるという問題を有していた。
本発明はこのような問題点に鑑みてなされたものであり、簡単な回路で、高速動作に対応できる安価なエンコーダの関数発生回路を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載のエンコーダの逓倍回路に係る発明は、エンコーダから得られる出力信号の逓倍処理に用いる三角関数のデータを生成するための関数発生回路を備えた逓倍回路であって、前記関数発生回路は、偶数ビットをもつ第１レジスターおよび第２レジスターを備え、前記第１レジスターおよび前記第２レジスターをそれぞれ上位ビット側と下位ビット側に２分し、前記第１レジスターの上位ビット側に円の半径の値を、下位ビット側に０を設定し、前記第２レジスターの上位ビット側および下位ビット側に０を設定した後、前記第１レジスターの上位ビット側のデータを前記第２レジスターの下位ビット側のデータに加算する第１の動作と、前記第２レジスターの上位ビット側のデータを前記第２レジスターの下位ビット側のデータから減じる第２の動作を繰り返すことにより、前記第１レジスターの上位ビット側にｃｏｓΦ、前記第２レジスターの上位ビット側にｓｉｎΦの値を生成するように構成したことを特徴としている。
また、請求項２に記載のエンコーダの逓倍回路に係る発明は、請求項１に記載のエンコーダの逓倍回路において、前記逓倍回路は、電源投入のイニシャル時に前記関数発生回路を動作させ、この関数発生回路で生成された前記三角関数のデータをＲＡＭに書き込み、通常動作時はこの三角関数のデータをテーブルとしてハードウェアーでトラッキング演算を行うように構成したことを特徴としている。
【発明の効果】
【０００５】
請求項１に記載の発明によると、単純なレジスター同士の加減算でｓｉｎΦおよびｃｏｓΦの三角関数のデータを生成できるので、少ないハードウェアーで構成でき、小型でローコストのエンコーダの関数発生回路が実現できる。
また、請求項２に記載の発明によると、電源投入のイニシャル時に三角関数のデータをＲＡＭに書き込み、このデータをテーブルとしてエンコーダの逓倍処理を行っているので高速動作に対応すると共にＣＰＵを搭載しないことでトータルコストを低下させることができる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【０００７】
図１は、本発明のエンコーダの関数発生回路の構成を示すブロック図である。
図において１は第１レジスター、２は第２レジスター、３はカウンター、４および５はＡＬＵである。
第１レジスター１は上位の１２ビット（Ｒ1）と下位の１２ビット（Ｒ0）の２４ビットから構成され、第２レジスター２は上位の１２ビット（Ｒ3）と下位の１２ビット（Ｒ2）の２４ビットから構成されている。
本発明が従来技術と異なる点は従来技術ではＤＤＡを用いて関数発生回路を構成しているのに対し、本発明では第１レジスター１および第２レジスター２の２個の偶数ビットのレジスターを用いて関数発生回路を構成している点である。
次に動作について説明する。
図２は本発明の演算の動作を示すレジスターの状態図である。
演算の動作は次のようになる。
・  Ｒ1に半径データＲを設定する。
（２）Ｒ1を１／４０９６倍して、第２レジスター２の元のデータ（Ｒ3、Ｒ2）に加算し、Ｒ3を１／４０９６倍して、第１レジスター１の元のデータ（Ｒ1、Ｒ0）から減算する。
（３）演算パルスが入力される度に、Ｒ1が０になるまで（２）の演算を実行し、演算ごとに図示しないＲＡＭにＲ1、Ｒ2およびカウンター３のデータを書き込む。ここで、Ｒ1はｃｏｓΦ、Ｒ3はｓｉｎΦ、カウンターはΦの値となる。
次に、本発明の演算原理について説明する。
図３は本発明の演算の原理説明図である。また、図４は図３の三角形ＣＤＥを拡大したものである。
図３において三角形ＡＢＣの内角ＣＡＢはΦであり、このΦが微少分ΔΦ増大したときの（Φ＋ΔΦ）の三角関数は
ｓｉｎ（Φ＋ΔΦ）＝ｓｉｎΦ＋Δ・ｃｏｓΦ
ｃｏｓ（Φ＋ΔΦ）＝ｃｏｓΦ−Δ・ｓｉｎΦ
となる。ここで、Δは１／４０９６である。
三角形ＡＢＣと三角形ＣＥＤは相似形をしており、Ｄ点の座標｛ｃｏｓ（Φ＋ΔΦ）、ｓｉｎ（Φ＋ΔΦ）｝はＣ点の座標（ｃｏｓΦ、ｓｉｎΦ）に三角形ＡＢＣの微少データを加減算することにより得られる。これは、二つのレジスターの上位側のビットのデータを１／４０９６倍して、相対するレジスターのデータに加減算することになる。すなわち、上記（２）の演算を実行することに相当する。
次に、演算時間について説明する。
レジスターは１２ビット＋１２ビットのレジスターであるのでΔの移動量に相当する線分ＣＤは、円の半径をＲとしたとき、Ｒ／４０９６となる。１象限分の円の軌跡は（πＲ／２）で、（πＲ／２）／（Ｒ／４０９６）＝６４３４、すなわち、６４３４回の演算で１象限のｓｉｎΦとｃｏｓΦのデータを得ることが出来る。１度の加減算とデータの書き込みが２０ｎsecとしても１象限のデータを得るのに１２８μsecしかかからないので問題にならない。
なお、４象限分のデータを得るには１象限のデータから対応する角度のデータを求めるか、Ｒ1の値が０になった事を検出し加減算を切り換ることによって４象限分のデータを生成する。
【０００８】
このように、単純なレジスター同士の加減算でｓｉｎΦおよびｃｏｓΦの三角関数のデータを生成できるので少ないハードウェアーで構成でき小型でローコストのエンコーダの関数発生回路が実現できる。
【実施例２】
【０００９】
図５は、本発明のエンコーダの逓倍回路の構成を示すブロック図である。
図において５１はＲＡＭで、電源投入時に実施例１で示したエンコーダの関数発生回路からの出力信号Φout、ｓｉｎΦout、ｃｏｓΦoutをＲＡＭに書き込み三角関数のデータのテーブルを作成する。通常の逓倍動作時には図示しないセンサから検出した２相の位置検出信号ｓｉｎθ、ｃｏｓθと、ＲＡＭから読み出した三角関数のデータから、トラッキング演算によって移動体（図示せず）の位置検出信号を得ている。なお、トラッキング演算は公知であるので、その詳細な説明は省略する。
このように、本実施例では、電源投入のイニシャル時にＲＡＭに書き込んだ三角関数のデータをテーブルとしてトラッキング演算によるエンコーダの逓倍処理を行っているので高速動作に対応できる共にＣＰＵを搭載しないことでトータルコストを低下させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施例を示すエンコーダの関数発生回路のブロック図
【図２】本発明の演算の動作を示すレジスターの状態図
【図３】本発明の演算の原理説明図
【図４】本発明の図３に示した三角形ＣＤＥの拡大図
【図５】本発明の第２実施例を示すエンコーダの逓倍回路のブロック図
【図６】従来のエンコーダの関数発生回路のブロック図
【図７】従来のエンコーダの逓倍回路のブロック図
【符号の説明】
【００１１】
１  第１レジスター
２  第２レジスター
３  カウンター
４、５  ＡＬＵ
【図１】
2005300253.tif 000003
【図２】
2005300253.tif 000004
【図３】
2005300253.tif 000005
【図４】
2005300253.tif 000006
【図５】
2005300253.tif 000007
【図６】
2005300253.tif 000008
【図７】
2005300253.tif 000009