(57)【特許請求の範囲】
【請求項１】
入力値と出力値との対応関係を保持する配列要素から成るルックアップテーブルを生成するための方法であって、
前記配列要素のアドレスと前記入力値との対応関係を定義するステップと、
前記入力値に対応付けられる前記アドレスを有する前記配列要素に前記出力値を格納するステップと、
前記入力値と前記出力値とが一対一に対応するように、所定範囲の値を有する前記入力値に対応する前記出力値に所定の定数を加算するステップと、
を備えるルックアップテーブル生成方法。
【請求項２】
請求項１に記載のルックアップテーブル生成方法であって、
前記加算によって増加した前記出力値の分解能を低下させるステップを更に備える、ルックアップテーブル生成方法。
【請求項３】
第一の入力値と第一の出力値との対応関係を保持する第一の配列要素を参照するステップと、
前記第一の出力値を第二の入力値に対応付けるステップと、
前記第一の入力値を第二の出力値に対応付けるステップと、
前記第二の入力値と前記第二の出力値との対応関係を保持する第二の配列要素のアドレスと前記第二の入力値との対応関係を定義するステップと、
前記第二の入力値に対応付けられる前記アドレスを有する前記第二の配列要素に前記第二の出力値を格納するステップと、
を備えるルックアップテーブル生成方法。
【請求項４】
請求項３に記載のルックアップテーブル生成方法であって、
前記第二の入力値と前記第二の出力値とが一対一に対応するように前記第二の入力値と前記第二の出力値との対応関係を定義するステップを更に備えるルックアップテーブル生成方法。
【請求項５】
請求項３又は請求項４に記載のルックアップテーブル生成方法であって、
前記第一の出力値の分解能が前記第一の入力値の分解能よりも高い場合に、前記第二の入力値の分解能及び前記第二の出力値の分解能がそれぞれ前記第一の入力値の分解能及び
前記第一の出力値の分解能に等しくなるように前記第二の入力値及び前記第二の出力値を補間処理によって演算するステップを更に備えるルックアップテーブル生成方法。
【請求項６】
請求項３乃至請求項５のうち何れか１項に記載のルックアップテーブル生成方法であって、
前記第一の入力値は、回転体の回転角であり、
前記第一の出力値は、前記回転角に対応する電圧である、ルックアップテーブル生成方法。
【請求項７】
請求項３乃至請求項５のうち何れか１項に記載のルックアップテーブル生成方法であって、
前記第一の入力値は、スケールの長さであり、
前記第一の出力値は、前記長さに対応する電圧である、ルックアップテーブル生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はルックアップテーブル生成方法、角度センサ、及びスケールに関する。
【背景技術】
【０００２】
外部磁界を検出するための磁気センサとして、巨大磁気抵抗効果素子や磁気トンネル効果素子等の磁気抵抗効果素子が利用されている。磁気抵抗効果素子は、磁化方向が特定の方向に設定されていて、外部磁界の変位に対して磁化状態（例えば、磁化方向や磁化の強さ）が影響を受けないように構成された磁化固定層（ピン磁性層）と、外部磁界の変化によって磁化状態が変位する磁化自由層（フリー磁性層）とを備えている。磁気抵抗効果素子に外部磁界が作用すると、磁化自由層の磁化状態が変動し、磁化状態が固定されている磁化固定層の磁化状態と、磁化状態が変動する磁化自由層との間に磁化状態の変位差が発生する。この磁化状態の変位差は、磁気抵抗効果素子の磁気抵抗の変化として現れる。磁気抵抗効果素子の応用例として、例えば、回転動作する回転体の回転角を検出する角度センサが知られている。
【０００３】
この種の角度センサにおいては、二つの磁気センサのそれぞれから出力される正弦波信号ｓｉｎθと余弦波信号ｃｏｓθとから逆正接Ａｒｃｔａｎθを算出し、回転体の回転角θを求めることができる。より詳細には、逆正接Ａｒｃｔａｎθに対応する回転角θを格納する配列要素を一次元に配列して得られるルックアップテーブルを参照することにより、逆正接Ａｒｃｔａｎθから回転角θを求めることができる。ルックアップテーブルのデータ容量を削減するための方法として、例えば、特開平８−１４５７１９号公報には、角度センサから出力される周期信号の対称性を利用し、角度範囲を複数の領域に分割する方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１４５７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、現実には、磁気センサの感度の相違、センサ位置の設計値からの偏差、及び周期信号のオフセット等の影響を受けるため、周期信号が完全に対称になることは稀であり、周期信号の非対称性は角度検出精度の低下を招く要因になる。また、逆正接Ａｒｃｔａｎθの値から配列要素のアドレスを求めることができない場合には、分割された領域内の全ての配列要素を順次参照しなければならず、テーブル参照時間が長くなるため、ステアリングシャフトの操舵角に基づいて車両の横滑り制御を行うようなリアルタイム処理には不向きである。エアコンの温度制御のように時間的制約の緩いアプリケーションにおいては、テーブル参照時間の増大は大きな問題にならないが、車両制御のように時間的制約の厳しいアプリケーションにおいては、テーブル参照時間の短縮が求められる。
【０００６】
本発明はこのような問題点に鑑みてなされたものであり、ルックアップテーブルの参照時間を短縮することを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明に係わるルックアップテーブル生成方法は、入力値と出力値との対応関係を保持する配列要素から成るルックアップテーブルを生成するための方法であって、配列要素のアドレスと入力値との対応関係を定義するステップと、入力値に対応付けられるアドレスを有する配列要素に出力値を格納するステップと、入力値と出力値とが一対一に対応するように、所定範囲の値を有する入力値に対応する出力値に所定の定数を加算するステップと、を備える。アドレスと入力値との対応関係を予め定義しておくことにより、入力値からアドレスを求めることができるので、ルックアップテーブル参照時に全ての配列要素を参照する必要がなく、テーブル参照時間を短縮できる。
【００１０】
本発明の他の観点に係わるルックアップテーブル生成方法は、第一の入力値と第一の出力値との対応関係を保持する第一の配列要素を参照するステップと、第一の出力値を第二の入力値に対応付けるステップと、第一の入力値を第二の出力値に対応付けるステップと、第二の入力値と第二の出力値との対応関係を保持する第二の配列要素のアドレスと第二の入力値との対応関係を定義するステップと、第二の入力値に対応付けられるアドレスを有する第二の配列要素に第二の出力値を格納するステップとを備える。アドレスと第二の入力値との対応関係を予め定義しておくことにより、第二の入力値からアドレスを求めることができるので、ルックアップテーブル参照時に全ての配列要素を参照する必要がなく、テーブル参照時間を短縮できる。
【００１１】
第二の入力値と第二の出力値とが一対一に対応するように第二の入力値と第二の出力値との対応関係を定義するステップを更に備えてもよい。これにより、複数のルックアップテーブルを参照する必要がなく、テーブル参照時間を短縮できる。
【００１２】
第一の出力値の分解能が第一の入力値の分解能よりも高い場合に、第二の入力値の分解能及び第二の出力値の分解能がそれぞれ第一の入力値の分解能及び第一の出力値の分解能に等しくなるように、第二の入力値及び第二の出力値を補間処理によって演算するステップを更に備えてもよい。これにより、ルックアップテーブルのメモリ消費量を低減できる。
【発明の効果】
【００１３】
本発明によれば、ルックアップテーブルの参照時間を短縮できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係わるルックアップテーブル生成方法を示すフローチャートである。
【図２】本実施例に係わる角度センサの構成図である。
【図３】本実施例に係わる磁気抵抗効果素子の断面構造を示す模式図である。
【図４】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図５】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図６】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図７】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図８】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図９】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図１０】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図１１】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図１２】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図１３】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図１４】本実施例に係わるルックアップテーブル生成方法を説明するための図である。
【図１５】本実施例に係わるルックアップテーブルの参照方法を説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明の実施形態について説明する。
図１は本発明の実施形態に係わるルックアップテーブル作成方法の手順を示すフローチャートである。ルックアップテーブルは、例えば、配列要素ａ［ｉ］を一次元に配列して得られるデータ構造を有している。説明の便宜上、一次元配列から成るルックアップテーブルを例示するが、本実施形態は、多次元配列から成るルックアップテーブルにも適用できる。配列要素ａ［ｉ］は、入力値Ｘ（ｉ）と出力値Ｙ（ｉ）との対応関係を保持するための変数であり、アドレスＡＤＲ（ｉ）を有する。但し、要素数をｋとすると、０≦ｉ≦ｋ−１の関係を満たすものとする。本実施形態に係わるルックアップテーブル作成方法では、配列要素ａ［ｉ］のアドレスＡＤＲ（ｉ）と入力値Ｘ（ｉ）との対応関係を定義する（ステップ１０１）。言い換えると、ステップ１０１では、入力値Ｘ（ｉ）を引数としてアドレスＡＤＲ（ｉ）を返す関数を定義する。テーブル参照時の演算負荷を低減するために、Ｘ（ｉ）＝ＡＤＲ（ｉ）とし、入力値Ｘ（ｉ）そのものをアドレスＡＤＲ（ｉ）に対応付けてもよい。次に、入力値Ｘ（ｉ）に対応付けられるアドレスＡＤＲ（ｉ）を有する配列要素ａ［ｉ］に出力値Ｙ（ｉ）を格納する（ステップ１０２）。このように、アドレスＡＤＲ（ｉ）と入力値Ｘ（ｉ）との対応関係を予め定義しておくことにより、入力値Ｘ（ｉ）からアドレスＡＤＲ（ｉ）を求めることができるので、ルックアップテーブル参照時に全ての配列要素ａ［ｉ］を参照する必要がなく、テーブル参照時間を短縮できる。
【００１６】
なお、ステップ１０１，１０２の順序は特に限定されるものではなく、例えば、ステップ１０２をステップ１０１よりも先に実行してもよい。また、ステップ１０１，１０２の前後又は間に他の処理を追加してもよい。
【実施例】
【００１７】
次に、図２乃至図３を参照しながら本実施例に係わる角度センサ１０の構成について説明する。角度センサ１０は、回転軸３１の所定の基準位置からの回転角（０ｄｅｇ〜３６０ｄｅｇ）を検出するための角度検出装置である。但し、本実施形態は、回転軸３１に噛合するギア等を設けることにより、３６０ｄｅｇ以上の角度（多回転絶対角）を検出可能な角度センサにも適用可能である。回転軸３１として、例えば、ステアリングシャフトを挙げることができるが、これに限定されるものではない。角度センサ１０は、回転軸３１の軸芯回りの回転に連動して回転するロータ３２と、回転軸３１の回転角の情報を担う検出信号を出力する磁気センサ２０と、磁気センサ２０から出力される検出信号を増幅する増幅器（ＡＭＰ）４１と、増幅器４１によって増幅されたアナログ信号としての検出信号をデジタル信号に変換するＡ／Ｄ変換器４２と、ルックアップテーブル（ＬＵＴ）４４を参照して検出信号から回転軸３１の回転角を求める演算回路（ＭＰＵ）４３とを備える。演算回路４３は、例えば、汎用のマクロコンピュータでもよく或いは専用の信号処理ＬＳＩでもよい。ロータ３２は、強磁性材質（例えば、鉄、コバルト、ニッケル等）から成る回転部材であり、その平面形状（ロータ３２の厚み方向に垂直な平面で切断した断面形状）は、例えば、楕円等が好適であるが、特定の形状に限定されるものではなく、角度検出に適した形状であればよい。ロータ３２は、回転軸３１に固定されてもよく、或いはセレーション結合されてもよい。回転軸３１の軸芯方向をＺ方向とすると、回転軸３１の回転に伴い、ロータ３２はＸＹ平面内で回転する。
【００１８】
磁気センサ２０は、外部磁界５０を発生させるための磁石２３と、ロータ３２の回転に伴い周期的に変化する外部磁界５０の変化を電圧変化として検出する磁気抵抗効果素子２１と、磁気抵抗効果素子２１にセンス電流を供給するプリント配線基板２２とを備える。磁気抵抗効果素子２１として、例えば、巨大磁気抵抗（ＧＭＲ）型、トンネル磁気抵抗（ＴＭＲ）型、弾道磁気抵抗（ＢＭＲ）型、異方性磁気抵抗（ＡＭＲ）型等の公知の磁気抵抗効果素子を用いることができる。
【００１９】
図３は磁気抵抗効果素子２１の断面構造を示す。磁気抵抗効果素子２１は、下地層６１、反強磁性層６２、磁化固定層６３、非磁性導電層６４、磁化自由層６５、及び保護層６６を積層してなる素子構造を有している。磁化固定層６３の磁化方向６３Ａは、反強磁性層６２の磁化方向６２Ａと強固に磁気カップリングしているため、外部磁界５０の影響を殆ど受けない。一方、磁化自由層６５の磁化方向６５Ａは、外部磁界５０の磁界方向に追随するように変化する。磁気抵抗効果素子２１の磁気抵抗は、磁気抵抗効果素子２１が検出する外部磁界５０の磁界強度とその磁界方向に依存して変化することが知られている。仮に外部磁界５０の磁界強度が一定である場合には、磁気抵抗効果素子２１の磁気抵抗は、磁化固定層６３の磁化方向６３Ａと磁化自由層６５の磁化方向６５Ａとの角度差（ξ）に依存して変化する。より詳細には、磁気抵抗効果素子２１の磁気抵抗は、（１−ｃｏｓξ）に比例して変化する特性を有しており、磁化固定層６３の磁化方向６３Ａと磁化自由層６５の磁化方向６５Ａとが同一方向かつ平行であるときに磁気抵抗は最小となり、磁化固定層６３の磁化方向６３Ａと磁化自由層６５の磁化方向６５Ａとが逆方向かつ平行であるときに磁気抵抗は最大になる。上述の如く、磁気抵抗効果素子２１には、プリント配線基板２２からセンス電流が供給されており、磁気抵抗効果素子２１の磁気抵抗の変化は、出力電圧の変化として検出される。磁気抵抗効果素子２１の出力電圧は、回転軸３１の回転角の情報を担う検出信号として信号処理される。
【００２０】
次に、図４乃至図１２を参照しながらルックアップテーブル４４の生成方法について説明する。ルックアップテーブル４４は、図１に示すステップ１０１，１０２の手順に基づいて生成することができる。例えば、磁気センサ２０の出力電圧を入力値Ｘ（ｉ）とし、回転軸３１の回転角を出力値Ｙ（ｉ）とすればよい。但し、図４に示すように、回転軸３１の回転角を入力値とし、磁気センサ２０の出力電圧を出力値として、入力値と出力値との対応関係を保持する配列要素を一次元に配列して得られるルックアップテーブル４５が予め用意されている場合には、このルックアップテーブル４５を構成する配列要素の入力値及び出力値に後述する演算処理を施すことで、図７に示すルックアップテーブル４４を生成することができる。以下、図４に示すルックアップテーブル４５から図７に示すルックアップテーブル４４を生成する手順について説明する。
【００２１】
図４に示すルックアップテーブル４５の横軸は、０ｄｅｇ〜３６０ｄｅｇの範囲内における回転軸３１の回転角を示しており、その縦軸は磁気センサ２０の規格化された出力電圧を示している。但し、縦軸に示す数値は、電圧値そのものではなく、電圧値に一意に対応付けられた数値である点に留意されたい。図４の縦軸に示された数値とルックアップテーブル４５を構成する配列要素のアドレスとの対応関係は予め定義されているものとする。回転角の分解能を１２ビットとすると、回転角３６０ｄｅｇは入力値４０９６（＝２12）に規格化される。また、Ａ／Ｄ変換器４２の分解能を１６ビットとし、磁気センサ２０の出力電圧の範囲を０〜５Ｖとすると、出力電圧２．５Ｖ（振幅中心）は出力値８０００ｈに規格化され、出力電圧５Ｖ（最大振幅）は出力値ＦＦＦＦｈに規格化される。図４から理解できるように、一つの出力電圧に対応する回転角が最大二つ存在し、出力電圧と回転角とが一対一に対応していない。このため、磁気センサ２０の出力電圧から回転軸３１の回転角を求めるには、位相差が９０ｄｅｇに調整された二つの磁気センサ２０と回転角の位相差が９０ｄｅｇに調整された二つのルックアップテーブル４５を用意し、それぞれのルックアップテーブル４５を参照する必要がある。
【００２２】
出力電圧と回転角とを一対一に対応付けるため、図５に示すように、所定範囲（例えば、９０ｄｅｇ〜２７０ｄｅｇの角度範囲）の回転角に対応する出力電圧に定数（例えば、１００００ｈ）を加算する処理を行い、ルックアップテーブル４６を生成する。なお、０ｄｅｇ〜３６０ｄｅｇの角度範囲から上述の所定範囲を除く角度範囲（０ｄｅｇ〜９０ｄｅｇ及び２７０ｄｅｇ〜３６０ｄｅｇ）の回転角に対応する出力電圧に上述の定数を加算処理してルックアップテーブル４６を生成してもよい。これにより、出力電圧と回転角とが一対一に対応するため、位相差が９０ｄｅｇに調整された二つの磁気センサ２０と回転角の位相差が９０ｄｅｇに調整された二つのルックアップテーブル４５を参照する必要がない。但し、出力電圧と回転角とを一対一に対応付けるための演算処理は、上述の定数加算処理に限定されるものではなく、例えば、出力電圧と回転角とを一対一に対応付けるための関数を定義し、この関数に基づいて出力電圧と回転角とを一対一に対応付ければよい。
【００２３】
ところで、上述の定数加算処理を行うと、出力電圧を表現する数値のビット数は、１ビット増加する。ところが、バイト単位で管理されているメモリでは、１ビットの増加に対してメモリ使用量が１バイト増加するため、メモリ消費量が膨大になる。メモリ消費量を抑制するため、図６に示すように、定数加算処理によって増加した出力電圧の分解能を１ビット低下させたルックアップテーブル４７を生成するのが好ましい。出力電圧の分解能を１ビット低下させるには、例えば、最大振幅の出力電圧を表現する数値０１ＦＦＦＦｈの最下位ビットを切り捨てて、１ビット右にシフトさせ、１ＦＦＦＦｈをＦＦＦＦｈに変換すればよい。
【００２４】
なお、上述の処理は、一つのルックアップテーブル内で回転角と出力電圧を一対一に対応させるものであるが、回転角と出力電圧とを一対一に対応させるには、図８乃至図１０に示すように、二つのルックアップテーブルを用いてもよい。例えば、図８に示すように、二つの信号Ｓ１，Ｓ２がある場合を考察する。信号Ｓ１，Ｓ２は、それぞれ位相差が９０ｄｅｇに調整された二つの磁気センサ２０からの出力信号を示しており、一方の信号Ｓ１は９０ｄｅｇ位相をシフトさせたｓｉｎ信号であり、他方の信号Ｓ２は９０ｄｅｇ位相をシフトさせたｃｏｓ信号である。図９は、信号Ｓ２≧８０００（振幅中心）であるときの信号Ｓ１のルックアップテーブルを示しており、図１０は、信号Ｓ２＜８０００（振幅中心）であるときの信号Ｓ１のルックアップテーブルを示している。信号Ｓ２≧８０００のときと信号Ｓ２＜８０００であるときで信号Ｓ１のルックアップテーブルを分割することにより、メモリ消費量を増大させることなく、且つ分解能を低下させないで、回転角と出力電圧とを一対一に対応付けることができる。なお、信号Ｓ２に関しては、振幅中心から上下のいずれかに存在するのかが解れば良いので、信号Ｓ２を振幅中心の電圧と比較器を使用し、上下の判定を行っても良い。なお、図９及び図１０に示すルックアップテーブルは、単調増加又は単調減少の信号波形となるので、後述する補間処理の適用が容易になる利点を有する。
【００２５】
次に、ルックアップテーブル４７を構成する配列要素の出力電圧と回転角との対応関係を保持したまま、出力電圧を横軸に再配列し、且つ回転角を縦軸に再配列すると、図７に示すルックアップテーブル４４が得られる。図７の横軸に示す数値は、ルックアップテーブル４４を構成する配列要素のアドレスに一意に対応付けられており、且つその両者の対応関係は予め定義されているので、磁気センサ２０の出力電圧から配列要素のアドレスを算出し、そのアドレスに対応付けられる配列要素を参照することにより、回転軸３１の回転角を求めることができる。これにより、ルックアップテーブル４４を構成する全ての配列要素を参照しなくても、目的の配列要素のみを参照できるので、テーブル参照時間を大幅に短縮できる。
【００２６】
図４に示すルックアップテーブル４５から図７に示すルックアップテーブル４４を生成する手順を要約すると、以下のようになる。
（１）ルックアップテーブル４５の第一の入力値（回転角）と第一の出力値（出力電圧）との対応関係を保持する第一の配列要素を参照する。
（２）ルックアップテーブル４５の第一の出力値（出力電圧）をルックアップテーブル４４の第二の入力値（出力電圧）に対応付ける。
（３）ルックアップテーブル４５の第一の入力値（回転角）をルックアップテーブル４４の第二の出力値（回転角）に対応付ける。
（４）ルックアップテーブル４４の第二の入力値（出力電圧）と第二の出力値（回転角）との対応関係を保持する第二の配列要素のアドレスと第二の入力値（出力電圧）との対応関係を定義する。
（５）第二の入力値（出力電圧）に対応付けられるアドレスを有する第二の配列要素に第二の出力値（回転角）を格納する。
【００２７】
但し、第二の入力値（出力電圧）と第二の出力値（回転角）とが一対一に対応していない場合には、両者が一対一に対応するように第二の入力値（出力電圧）と第二の出力値（回転角）との対応関係を定義するステップを上述のステップ（１）〜（５）に追加するのが好ましい。
【００２８】
なお、第一の出力値（出力電圧）の分解能が第一の入力値（回転角）の分解能よりも高い場合に、上述のステップ（２）、（３）を実行すると、ルックアップテーブル４４のメモリ容量が増加する。例えば、上述の例では、第一の入力値（回転角）の分解能は１２ビットであり、第一の出力値（出力電圧）の分解能は１６ビットであるから、メモリ容量は１６×２12ビットから１２×２16ビットに増大する。第二の入力値（出力電圧）の分解能及び第二の出力値（回転角）の分解能がそれぞれ第一の入力値（回転角）の分解能及び第一の出力値（出力電圧）の分解能に等しくなるように、図１１乃至図１４に示すように第二の入力値（出力電圧）及び第二の出力値（回転角）を補間処理によって演算し、メモリ容量の増大を抑制するのが好ましい。
【００２９】
説明を簡略化するため、第一の入力値（回転角）の分解能を１２ビットとし、第一の出力値（出力電圧）の分解能を１４ビットとして、図１１乃至図１４を参照しながら第二の入力値（出力電圧）及び第二の出力値（回転角）の補間処理について説明する。図１１の横軸は１２ビットスケールで規格化された回転角（第一の入力値）を示し、その縦軸は１４ビットスケールで規格化された出力電圧（第一の出力値）を示す。符号Ｐ１，Ｐ２，Ｐ３は、それぞれ配列要素を示す。図１１に示すルックアップテーブルの横軸と縦軸を入れ替えると、図１２に示すルックアップテーブルが得られる。図１２の横軸は１４ビットスケールで規格化された出力電圧（第二の入力値）を示し、その縦軸は１２ビットスケールで規格化された回転角（第二の出力値）を示す。図１２に示す配列要素Ｑ１，Ｑ２，Ｑ３は、それぞれ図１１に示す配列要素Ｐ１，Ｐ２，Ｐ３に対応している。
【００３０】
次に、図１３に示すように、第二の入力値（出力電圧）の分解能及び第二の出力値（回転角）の分解能がそれぞれ第一の入力値（回転角）の分解能及び第一の出力値（出力電圧）の分解能に等しくなるように第二の入力値（出力電圧）の分解能及び第二の出力値（回転角）の分解能をそれぞれ変換する。具体的には、１４ビットスケールで規格化された第二の入力値（出力電圧）を１２ビットスケールで規格化するために、第二の入力値（出力電圧）を１／４倍し、一方、１２ビットスケールで規格化された第二の出力値（回転角）を１４ビットスケールで規格化するために、第二の出力値（回転角）を４倍する。図１３に示す配列要素Ｒ１，Ｒ２，Ｒ３は、それぞれ図１２に示す配列要素Ｑ１，Ｑ２，Ｑ３に対応している。
【００３１】
但し、配列要素Ｒ１，Ｒ２，Ｒ３に対応付けられる入力値及び出力値は整数でなければならないので、配列要素Ｒ２，Ｒ３は理論上存在し得ない。そこで、図１４に示すように、二つの配列要素Ｒ２，Ｒ３に対応付けられる二つの第二の入力値（出力電圧）と二つの第二の出力値（回転角）とを線形補間することにより、第二の入力値（出力電圧）及び第二の出力値（回転角）のそれぞれが整数の値をとる配列要素Ｒ４を求める。
【００３２】
なお、１４ビットスケールで規格化された第二の入力値（出力電圧）を１２ビットスケールで規格化すると、磁気センサ２０の出力電圧に一致する第二の入力値（出力電圧）が存在しない場合があり得る。例えば、１４ビットスケールで規格化された出力電圧が１０００３である場合、これを１２ビットスケールに規格化すると、１０００３／４＝２５００．７５となる。この場合は、図１５に示すように、磁気センサ２０の出力電圧（１２ビットスケールで規格された電圧値２５００．７５）に近似する複数の電圧値（例えば、１２ビットスケールで規格された電圧値２５００，２５０１）に対応する複数の回転角（例えば、１４ビットスケールで規格された回転角４０００，４００３）を線形補間することによって、電圧（１２ビットスケールで規格された電圧値２５００．７５）に対応する回転角を演算すればよい。具体的には、回転角を４０００×（１／４）＋４００３×（３／４）として、小数点第１位を四捨五入すれば良い。或いは、別に用意された出力値と角度のテーブルから４０００の角度１×（１／４）+４００３の角度２×（３／４）として角度を求めても良い。このような演算処理を行うには、演算回数が一回分増えるだけで済むので、時間はかからない。つまり、図７に示されるように、単調増加又は単調減少を示す関数の補間演算を行うことになるので、回転角の精度を落とすことなく、補間演算時間を短縮できる。
【００３３】
第一の入力値（回転角）の分解能を１２ビットとし、第一の出力値（出力電圧）の分解能を１６ビットとし、第二の入力値（出力電圧）の分解能及び第二の出力値（回転角）の分解能がそれぞれ第一の入力値（回転角）の分解能に等しくする必要がない場合は、例えば、第二の出力値（回転角）の分解能を１４ビットとして、メモリ消費量を減らしてもよい。
【００３４】
上述の説明では、ルックアップテーブル４４の入力値及び出力値の分解能は、一定である場合を例示したが、検出精度が要求される箇所と検出精度が要求されない箇所とで異なる分解能を設定してもよい。例えば、１８０ｄｅｇ付近のみ高分解能が必要な角度センサを考える。１８０ｄｅｇをステアリングの中立位置とした操舵角センサ等がこれに該当する。１２ｂｉｔ分解能で考えた場合、テーブルの要素数は４０９６個となるが、０−１３５ｄｅｇを３８４分割（３６０ｄｅｇで考えると１０ｂｉｔ相当）、１３５−２２５ｄｅｇを１０２４分割（３６０ｄｅｇで考えると１２ｂｉｔ相当）、２２５−３６０ｄｅｇを１０ｂｉｔとして、それぞれ第二の入力値（出力電圧）、第二の出力値（回転角）を求めると、テーブルの要素数は１７９２個となり、１８０ｄｅｇ付近の分解能を維持したまま使用メモリを減少させることが可能である。
【００３５】
なお、上述のルックアップテーブル４４を生成するための各種処理（例えば、配列要素のアドレスと入力値との対応関係を定義する処理、入力値に対応付けられるアドレスを有する配列要素に出力値を格納する処理、入力値と出力値とが一対一に対応するように入力値と出力値との対応関係を定義する処理、出力値の分解能を低下させる処理、第二の入力値及び第二の出力値を補間処理によって演算する処理など）は、演算回路４３によって実行される。
【００３６】
なお、上述の説明では、本実施形態の具体例として、角度センサ１０を例示したが、例えば、スケールの長さに対応する電圧を出力するセンサ素子を備えるスケールにも適用可能である。このようなセンサ素子として、例えば、磁気センサ２０を適用できる。スケールは、スケールの長さを入力値Ｘ（ｉ）とし、スケールの長さに対応する電圧を出力値Ｙ（ｉ）として、図１のステップ１０１，１０２によって生成されたルックアップテーブルを備える。上述の各種処理（例えば、配列要素のアドレスと入力値との対応関係を定義する処理、入力値に対応付けられるアドレスを有する配列要素に出力値を格納する処理、入力値と出力値とが一対一に対応するように入力値と出力値との対応関係を定義する処理、出力値の分解能を低下させる処理、第二の入力値及び第二の出力値を補間処理によって演算する処理など）は、スケール用のルックアップテーブルにも適用できる。
【００３７】
また、本実施例では、検出信号の信号波形として正弦波形及び余弦波形を例に説明したが、これらの波形に限らず、単調増加又は単調減少とならない信号波形、例えば、上下で非対称となる信号波形を含む周期波形への適用が可能である。
【産業上の利用可能性】
【００３８】
本発明は、コンピュータ技術分野全般や自動車技術分野等の各種工業分野に利用できる。
【符号の説明】
【００３９】
１０…角度センサ
２０…磁気センサ
２１…磁気抵抗効果素子
２２…プリント配線基板
２３…磁石
３１…回転軸
３２…ロータ
４１…増幅器
４２…Ａ／Ｄ変換器
４３…演算回路
４４…ルックアップテーブル
５０…外部磁界
６１…下地層
６２…反強磁性層
６３…磁化固定層
６４…非磁性導電層
６５…磁化自由層
６６…保護層
【図１】
0005614046.tif 000002
【図２】
0005614046.tif 000003
【図３】
0005614046.tif 000004
【図４】
0005614046.tif 000005
【図５】
0005614046.tif 000006
【図６】
0005614046.tif 000007
【図７】
0005614046.tif 000008
【図８】
0005614046.tif 000009
【図９】
0005614046.tif 000010
【図１０】
0005614046.tif 000011
【図１１】
0005614046.tif 000012
【図１２】
0005614046.tif 000013
【図１３】
0005614046.tif 000014
【図１４】
0005614046.tif 000015
【図１５】
0005614046.tif 000016