(57)【要約】【課題】センサの出力信号の実際の中点に近い値から動作を開始することができるようになり、電源投入時に毎回誤差が大きくなることを防止できるエンコーダを提供する。【解決手段】回転体の回転に連動して変化するセンサの出力信号に基づいて回転体の角度位置を検出するエンコーダにおいて、センサの出力信号ｓｉｎ、ｃｏｓの中点値のオフセット値を取得するオフセット推定部９２３と、オフセット値を記憶するための記憶部９２４と、起動時から所定時間経過した後に所定のタイミングで取得したオフセット値を逐次記憶部９２４に書き込む書込条件判断部９２５と、オフセット推定部で取得されたオフセット値または記憶部に書き込まれて記憶されたオフセット値を用いて角度位置を検出する角度位置検出部９２２と、を有し、角度位置検出部９２６は、次回起動時に記憶部に書き込まれた最新オフセット値を用いて角度位置を検出する。【選択図】図７
2015225023.tif 000002
【特許請求の範囲】
【請求項１】
回転体の回転に連動して変化するセンサの出力信号に基づいて前記回転体の角度位置を検出するエンコーダであって、
前記センサの出力信号の中点値のオフセット値を取得するオフセット取得部と、
オフセット値を記憶するための記憶部と、
起動時から所定時間経過した後に所定のタイミングで取得した前記オフセット値を逐次前記記憶部に書き込む書込条件判断部と、
前記オフセット取得部で取得されたオフセット値または前記記憶部に書き込まれて記憶されたオフセット値を用いて角度位置を検出する角度位置検出部と、を有し、
前記角度位置検出部は、
次回起動時に前記記憶部に書き込まれたオフセット値を用いて角度位置を検出する
エンコーダ。
【請求項２】
前記センサは、
基板と、
前記基板に形成され、ブリッジ回路を形成する感磁膜を備えた感磁領域と、
前記基板に形成された温度監視用抵抗膜と、
前記基板に形成された加熱用抵抗膜と、を含み、
前記温度監視用抵抗膜の抵抗値変化に基づいて前記加熱用抵抗膜への給電を制御する温度制御部を有する
請求項１記載のエンコーダ。
【請求項３】
前記書込条件判断部は、
起動してから短時間の駆動後に取得されたオフセット値を前記記憶部に書き込む
請求項１または２記載のエンコーダ。
【請求項４】
前記書込条件判断部は、
加熱によるオフセット値安定のための所定時間を経過後、オフセット値の取得処理を複数回繰り返して、複数のオフセット値を平均化し、平均化したオフセット値を前記記憶部に書き込む
請求項１から３のいずれか一項に記載のエンコーダ。
【請求項５】
前記書込条件判断部は、
平均化したオフセット値を前記記憶部に書き込んだ後、オフセット値の監視を継続し、一定間隔でオフセット値を取得して、前記記憶部に書き込む
請求項４記載のエンコーダ。
【請求項６】
前記一定間隔は、下記式を満足する値に設定される
請求項５記載のエンコーダ。
（Ｍ回／ｈ）＊２４（時間）＊３６５（日）＊Ｎ（年）＜Ｐ
ここで、Ｍは時間当たりのオフセット値を記憶する回数、Ｎはモータの製品保証寿命年、Ｐは記憶部の書き込み保証回数をそれぞれ示している。
【請求項７】
前記センサは、
回転体の変位に対応して第１相センサから出力される正弦波状の第１相信号と、
回転体の変位に対応して第２相センサから出力される正弦波状の前記第１相信号との位相差がπ／２である第２相信号と、を出力し、
前記オフセット取得部は、
前記第１相信号と前記第２相信号のオフセット値を取得する
請求項１から６のいずれか一項に記載のエンコーダ。
【請求項８】
前記記憶部は、
交互に前記オフセット値のデータが書き込まれる第１書き込み領域および第２書き込み領域と、
前記第１書き込み領域および前記第２書き込み領域のいずれのデータを保証するかを示すデータ保証用フラグが設定されるデータ保証用フラグ領域と、を含み、
データ保証用フラグは、前記第１書き込み領域または前記第２書き込み領域への書き込み処理後に設定される
請求項１から７のいずれか一に記載のエンコーダ。
【請求項９】
前記記憶部のデータ保証用フラグの設定データにより前記第１書き込み領域に記憶されたデータまたは前記第２書き込み領域に記憶されたデータのうちいずれの領域のデータが保証されているかを判断し、保証されている第１書き込み領域または第２書き込み領域のデータに異常がない場合に保証されている領域のオフセット値データを読み込み前記角度位置検出部に供給する読込条件判断部を有する
請求項８記載のエンコーダ。
【請求項１０】
前記記憶部の第１書き込み領域および第２書き込み領域への書き込みデータには、誤り検出符号が書き込まれ、
前記読込条件判断部は、
保証されていると判断した第１書き込み領域または第２書き込み領域の書き込みデータの誤り検出符号を計算し、当該計算した誤り検出符号と書き込まれている誤り検出符号が一致した場合に、保証されている領域のオフセット値データを読み込み前記角度位置検出部に供給する
請求項９記載のエンコーダ。
【請求項１１】
前記記憶部の第１書き込み領域および第２書き込み領域への書き込みデータの特定領域に特定データが書き込まれことが前提とされており、
前記読込条件判断部は、
計算した誤り検出符号と書き込まれている誤り検出符号が一致し、前記特定領域に特定データが書き込まれている場合に、保証されている領域のオフセット値データを読み込み前記角度位置検出部に供給する
請求項１０記載のエンコーダ。
【請求項１２】
前記オフセット値の初期値であるあらかじめ設定した初期オフセット値を記憶する第２記憶部を含み、
前記読込条件判断部は、
計算した誤り検出符号と書き込まれている誤り検出符号が一致しない場合、あるいは前記特定領域に特定データが書き込まれていない場合、保証されている領域のオフセット値データに代えて、前記第２記憶部に記憶されている初期オフセット値を前記角度位置検出部に供給する
請求項１０または１１記載のエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転体の回転に連動して変化するセンサの出力信号に基づいて回転体の角度位置を検出するエンコーダに関するものである。
【背景技術】
【０００２】
固定体に対する回転体の回転を検出するロータリエンコーダでは、たとえば、回転体の側にマグネットを設け、固定体の側に磁気抵抗素子やホール素子を備えた磁気センサ装置が設けられる。
かかる磁気センサ装置のうち、たとえば、磁気抵抗素子（ＭＲ素子）を備えた磁気センサ装置では、基板の一方面に磁気抵抗膜からなる感磁膜が形成されており、感磁膜によって構成した２相（Ａ相およびＢ相）のブリッジ回路から出力された出力信号に基づいて、回転体の角度速度や角度位置等を検出する（たとえば、特許文献１参照）。
【０００３】
この種の磁気抵抗素子（ＭＲ素子）を備えた磁気センサ装置は、磁性薄膜によるブリッジ回路を内部に構成している。この構成において、磁石の回転にてブリッジ回路の抵抗値バランスが変わり、磁気抵抗素子（ＭＲ素子）から正弦波信号ｓｉｎ、ｃｏｓが出力される。
ロータリエンコーダにおいてはこれら正弦波信号ｓｉｎ、ｃｏｓを制御部としてのマイクロコンピュータ（マイコン）にて取得し、図１６に示すような、正弦波信号ｃｏｓを横軸、正弦波信号ｓｉｎを縦軸とするリサージュ図形を計算し、角度計算を行う。
【０００４】
なお、図１６においては、破線が正弦波信号ｓｉｎ、ｃｏｓの中点電位ずれが発生する前の理想的な状態を示し、実線が正弦波信号ｓｉｎ、ｃｏｓの中点電位ずれが発生した後の状態を示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１６８０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記磁気センサ装置を備えたロータリエンコーダにおいて、ブリッジ回路の抵抗値バランスは正弦波信号ｓｉｎ、ｃｏｓの中点電位を決定するが、このバランスは磁気のみでなく応力によっても変化してしまう。
【０００７】
磁気抵抗素子（ＭＲ素子）には製造段階におけるリフロー時や基板自体のネジ留め時などに残留応力が発生してしまうが、その応力は時間によって抜けていく。そのため、結果として中点電位の経時変化が発生する。
正弦波信号ｓｉｎ、ｃｏｓの中点電位が変化すると、図１６に示すように、リサージュ図形の中心が移動するため、角度計算に誤差が生じる。
【０００８】
エンコーダ内部では最新の正弦波信号ｓｉｎ、ｃｏｓの中点電位を逐次計算しオフセット値を用いて中点の誤差を補正する誤差補正処理が行われる。
図１７（ａ）および（ｂ）は、中点電位の誤差補正（オフセット補正）について説明するための図である。
図１７（ａ）は磁気抵抗素子（ＭＲ素子）から出力される正弦波信号ｓｉｎ，ｃｏｓの波形および正弦波信号に対応したモータ軸角度を示している。図１７（ａ）中、実線で示す波形が正弦波信号ｓｉｎを示し，破線で示す波形が正弦波信号ｃｏｓを示している。
図１７（ｂ）は、中点補正に必要なモータ回転角度を示している。
図１７（ａ）に示すように、回転体であるモータ１回転（モータが３６０度回転）で正弦波信号ｓｉｎ、ｃｏｓは２周期分、出力される。
【０００９】
正弦波信号ｓｉｎ、ｃｏｓの中点電位の計算には、図１７（ｂ）に示すように、リサージュ図形のｘ＝０，ｙ＝０ の位置となる計４点Ｐ１〜Ｐ４の値が必要である。
この４点Ｐ１〜Ｐ４をとるため、リサージュ図形を最低２７０度は回る必要がある。
上述したように、モータ１回転でリサージュ図形２回転に相当することから、中点補正のために必要なモータ回転角度は１３５度（＝２７０度／２）となり、図１７（ｂ）に示すように、モータの軸を最低１３５度は回さないと計算できない。
そのため、中点電位に変動があった場合、電源投入から１３５度回るまでは精度が劣化したままとなってしまう。
【００１０】
本発明の目的は、センサの出力信号の実際の中点に近い値から動作を開始することができるようになり、電源投入時等の起動時に毎回誤差が大きくなることを防止することができるエンコーダを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の観点は、回転体の回転に連動して変化するセンサの出力信号に基づいて前記回転体の角度位置を検出するエンコーダであって、前記センサの出力信号の中点値のオフセット値を取得するオフセット取得部と、オフセット値を記憶するための記憶部と、起動時から所定時間経過した後に所定のタイミングで取得した前記オフセット値を逐次前記記憶部に書き込む書込条件判断部と、前記オフセット取得部で取得されたオフセット値または前記記憶部に書き込まれて記憶されたオフセット値を用いて角度位置を検出する角度位置検出部と、を有し、前記角度位置検出部は、次回起動時に前記記憶部に書き込まれたオフセット値、好適にはたとえば最新オフセット値を用いて角度位置を検出する。
【００１２】
従来は、電源を切るたびにセンサの出力信号の中点値（中点電位値）のプログラム上のオフセット値が工場出荷初期値に戻ることを前提に構成されていることから、オフセットの経時変化（回路基板の応力開放などにより、磁気抵抗素子（ＭＲ素子）の感度が変化すること）があると、電源投入のたびにオフセット誤差が大きくなり、正確な角度位置が算出することができない。
これに対して、本発明によれば、電源投入（起動時）から所定時間経過した後にセンサの出力信号の中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用することで、実際に経時変化するオフセット値に近づけるのでオフセット誤差を小さくすることができる。
また、オフセット誤差が大きいと正確な角度を算出することができないので、トルク指令値のばたつき（ばらつき）が発生するおそれがあるが、起動時よりオフセット値の誤差を少なくできるので、安定した回転、位置制御を実現することができる。
【００１３】
好適には、前記センサは、基板と、前記基板に形成され、ブリッジ回路を形成する感磁膜を備えた感磁領域と、前記基板に形成された温度監視用抵抗膜と、前記基板に形成された加熱用抵抗膜と、を含み、前記温度監視用抵抗膜の抵抗値変化に基づいて前記加熱用抵抗膜への給電を制御する温度制御部を有する。
本温度制御により、環境温度によらず磁気抵抗素子（ＭＲ素子）のチップ温度を一定値に制御できるので、温度によるオフセットへの影響を小さくすることができる。
したがって、トルク指令値のばたつきの発生を最小限に抑えることができ、さらに安定した回転、位置制御を実現することができる。
【００１４】
好適には、前記書込条件判断部は、起動してから短時間の駆動後に取得されたオフセット値を前記記憶部に書き込む。
この場合、たとえば、駆動初期のレベルを把握するため、たとえば１分待ち、回転体であるモータ半回転分のデータ取得に対して平均化することができる。
これにより、磁気抵抗素子（ＭＲ素子）の熱的安定のためにはある程度の長い時間経過が必要であるが、そこまでの時間を経過させずに短時間で起動初期レベルのオフセット値を把握するので、仮に所定時間内（短時間での）に電源投入が繰り返されても、オフセット値の正確性を確保することができる。
【００１５】
好適には、前記書込条件判断部は、加熱によるオフセット値安定のための所定時間を経過後、オフセット値の取得処理を複数回繰り返して、複数のオフセット値を平均化し、平均化したオフセット値を前記記憶部に書き込む。
この場合、たとえば３分待ち、回転体であるモータ、２０回転分のデータ取得に対して平均化することができる。
これにより、所定時間経過させることによって、加熱制御による回路を安定化させることができ、オフセット値を平均化させ正確なオフセット値を算出することができる。
【００１６】
好適には、前記書込条件判断部は、平均化したオフセット値を前記記憶部に書き込んだ後、オフセット値の監視を継続し、一定間隔でオフセット値を取得して、前記記憶部に書き込む。
この一定間隔は、たとえば１０分あるいはそれよりも長い時間に設定可能である。
これにより、オフセット値を継続的に監視することによって、監視周期時間内での予期せぬ変動にも対応でき、次回起動時のオフセット誤差を小さくすることができる。
また、記憶部としてＥＥＰＲＯＭ等の書き換え回数に制限のある不揮発性メモリを適用した場合にあっても、記憶部を交換することなく、回転体であるモータ等の製品保証寿命内では継続監視ができる。
【００１７】
好適には、前記一定間隔は、下記式を満足する値に設定される。
（Ｍ回／ｈ）＊２４（時間）＊３６５（日）＊Ｎ（年）＜Ｐ
ここで、Ｍは時間当たりのオフセット値を記憶する回数、Ｎはモータの製品保証寿命年、Ｐは記憶部の書き込み保証回数をそれぞれ示している。
これにより、記憶部としてＥＥＰＲＯＭ等の書き換え回数に制限のある不揮発性メモリを適用した場合にあっても、記憶部を交換することなく、回転体であるモータ等の製品保証寿命内では継続監視ができる。
【００１８】
好適には、前記センサは、回転体の変位に対応して第１相センサから出力される正弦波状の第１相信号と、回転体の変位に対応して第２相センサから出力される正弦波状の前記第１相信号との位相差がπ／２である第２相信号と、を出力し、前記オフセット取得部は、前記第１相信号と前記第２相信号のオフセット値を取得する。
この場合、センサは、たとえば磁性薄膜によるブリッジ回路を内部に構成され、この構成において、磁石の回転にてブリッジ回路の抵抗値バランスが変わり、磁気抵抗素子から正弦波信号である第１相信号と第２相信号が出力される。そして、これら第１相信号および第２相信号のオフセット値が取得されて、中点値が補正されることにより、安定した回転、位置制御を実現することができる。
【００１９】
好適には、前記記憶部は、交互に前記オフセット値のデータが書き込まれる第１書き込み領域および第２書き込み領域と、前記第１書き込み領域および前記第２書き込み領域のいずれのデータを保証するかを示すデータ保証用フラグが設定されるデータ保証用フラグ領域と、を含み、データ保証用フラグは、前記第１書き込み領域または前記第２書き込み領域への書き込み処理後に設定される。
これにより、フラグが示す領域のデータは最新かつ保証できるものでありと示すことができる。たとえば、フラグが“１”であり、第１書き込み領域に中点値のオフセット値データや誤り検出符号（ＣＲＣ） を書き込んでいる途中で電源を落とせば、次の電源投入時にはフラグが“１”のままなので、データが不完全な第１書き込み領域のデータは破棄し、第２書き込み領域のデータを採用することができる。
【００２０】
好適には、前記記憶部のデータ保証用フラグの設定データにより前記第１書き込み領域に記憶されたデータまたは前記第２書き込み領域に記憶されたデータのうちいずれの領域のデータが保証されているかを判断し、保証されている第１書き込み領域または第２書き込み領域のデータに異常がない場合に保証されている領域のオフセット値データを読み込み前記角度位置検出部に供給する読込条件判断部を有する。
これにより、データ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【００２１】
好適には、前記記憶部の第１書き込み領域および第２書き込み領域への書き込みデータには、誤り検出符号が書き込まれ、前記読込条件判断部は、保証されていると判断した第１書き込み領域または第２書き込み領域の書き込みデータの誤り検出符号を計算し、当該計算した誤り検出符号と書き込まれている誤り検出符号が一致した場合に、保証されている領域のオフセット値データを読み込み前記角度位置検出部に供給する。
これにより、誤り検出符号（ＣＲＣ）異常などの異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【００２２】
好適には、前記記憶部の第１書き込み領域および第２書き込み領域への書き込みデータの特定領域に特定データが書き込まれことが前提とされており、前記読込条件判断部は、計算した誤り検出符号と書き込まれている誤り検出符号が一致し、前記特定領域に特定データが書き込まれている場合に、保証されている領域のオフセット値データを読み込み前記角度位置検出部に供給する。
これにより、誤り検出符号（ＣＲＣ）異常やデータ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【００２３】
好適には、前記オフセット値の初期値であるあらかじめ設定した初期オフセット値を記憶する第２記憶部を含み、前記読込条件判断部は、計算した誤り検出符号と書き込まれている誤り検出符号が一致しない場合、あるいは前記特定領域に特定データが書き込まれていない場合、保証されている領域のオフセット値データに代えて、前記第２記憶部に記憶されている初期オフセット値を前記角度位置検出部に供給する。
これにより、誤り検出符号（ＣＲＣ）異常やデータ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【発明の効果】
【００２４】
本発明によれば、センサの出力信号の実際の中点に近い値から動作を開始することができるようになり、電源投入時等の起動時に毎回誤差が大きくなることを防止することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係る磁気センサおよびロータリエンコーダにおける原理を説明するための図である。
【図２】本発明の実施形態に係る磁気センサ装置に用いた感磁素子の感磁膜（磁気抵抗膜）の電気的な接続構造を説明するための図である。
【図３】正弦波信号の中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用する場合の効果を、比較例と対比して説明するための図である。
【図４】本発明の実施形態に係る磁気センサ装置に用いた感磁素子を説明するための図である。
【図５】本実施形態に係る温度監視用抵抗膜の検出ブロックを拡大して示す図である。
【図６】本発明の実施形態に係る磁気センサ装置の制御部に構成した温度制御部の概略構成を説明するための図である。
【図７】本実施形態に係る制御部における角度位置検出系の具体的な構成例を示すブロック図である。
【図８】実施形態に係る記憶部の書き込み領域の構成例を示す図である。
【図９】本実施形態に係る書込条件判断部におけるオフセット値書き込み（保存）のタイミング決定処理を示すフローチャートである。
【図１０】本実施形態に係る書込条件判断部におけるオフセット値書き込み（保存）実行時の排他処理の状態遷移図である。
【図１１】本実施形態に係る書込条件判断部におけるオフセット値書き込み（保存）実行時の処理を示すフローチャートである。
【図１２】本実施形態に係る読込条件判断部におけるオフセット値読み込み実行時の処理を示すフローチャートである。
【図１３】本実施形態における角度位置検出系の工場出荷後の初めて電源投入された場合の全体の動作の概要ついて説明するためのフローチャートである。
【図１４】本実施形態における角度位置検出系の次回以降に電源投入された場合の全体の動作の概要ついて説明するためのフローチャートである。
【図１５】本実施形態に係る正弦波信号の中点値（中点電位値）のオフセット値を逐次記録し、次回起動時（電源投入直後）にはそのオフセット値を使用する場合の効果を、シミュレーション波形を用いて比較例と対比して説明するための図である。
【図１６】リサージュ図形を示す図であって、正弦波信号の中点にずれが発生する前おおよびずれが発生した後の状態を示す図である。
【図１７】中点電位の誤差補正（オフセット補正）について説明するための図である。
【発明を実施するための形態】
【００２６】
以下、本発明を適用した磁気センサ装置、およびロータリエンコーダの実施形態を図面に関連付けて説明する。
なお、ロータリエンコーダにおいて、固定体に対する回転体の回転を検出するにあたっては、固定体にマグネットを設け、回転体に感磁素子を設けた構成、または固定体に感磁素子を設け、回転体にマグネットを設けた構成のいずれの構成を採用してもよい。
以下の説明では、固定体に磁気センサ装置を設け、回転体にマグネットを設けた構成を中心に説明する。
【００２７】
［磁気センサ装置およびロータリエンコーダの構成例］
図１は、本発明の実施形態に係る磁気センサ装置１０およびロータリエンコーダ１における原理を説明するための図である。
図１（ａ）は感磁素子４等に対する信号処理系の説明図、図１（ｂ）は感磁素子４から出力される信号の説明図、図１（ｃ）は感磁素子４から出力される信号と回転体２の角度位置（電気角）との関係を示す説明図である。
図２は、本発明の実施形態に係る磁気センサ装置１０に用いた感磁素子４の感磁膜（磁気抵抗膜）４１〜４４の電気的な接続構造を説明するための図である。
図２（ａ）は第１相としての＋Ａ相および−Ａ相の感磁膜が形成するブリッジ回路を示す図、図２（Ｂ）は第２相としての＋Ｂ相および−Ｂ相の感磁膜が形成するブリッジ回路を示す図である。
【００２８】
図１に示すロータリエンコーダ１は、固定体（図示せず）に対する回転体２の軸線周り（回転軸線周り）の回転を磁気センサ装置１０によって磁気的に検出する装置である。ロータリエンコーダ１において、固定体は、モータ装置のフレーム等に固定され、回転体２は、モータ装置の回転出力軸等に連結された状態で使用される。
回転体２の側には、Ｎ極とＳ極とが周方向において１極ずつ着磁された着磁面２１を回転軸線方向Ｌの一方側に向けるマグネット２０が保持されており、マグネット２０は回転体２と一体に回転軸線周りに回転する。
【００２９】
固定体の側には、マグネット２０の着磁面２１に対して回転軸線方向Ｌの一方側で対向する感磁素子４、および後述する角度位置検出処理や温度制御処理等を行う制御部９０等を備えた磁気センサ装置１０が設けられている。
磁気センサ装置１０は、マグネット２０に対向する位置に、第１ホール素子６１と、第１ホール素子６１に対して周方向において機械角で９０°ずれた箇所に位置する第２ホール素子６２とを備えている。
【００３０】
感磁素子４は、基板４０と、マグネット２０の位相に対して互いに９０°の位相差を有する２相の感磁膜（第１相としてのＡ相（ＳＩＮ）の感磁膜、および第２相としてのＢ相（ＣＯＳ）の感磁膜）とを備えた磁気抵抗素子である。
この感磁素子４において、Ａ相の感磁膜は、１８０°の位相差をもって回転体２の移動検出を行う＋Ａ相（ＳＩＮ＋）の感磁膜４３、および−Ａ相（ＳＩＮ−）の感磁膜４１を備えている。Ｂ相の感磁膜は、１８０°の位相差をもって回転体２の移動検出を行う＋Ｂ相（ＣＯＳ＋）の感磁膜４４、および−Ｂ相（ＣＯＳ−）の感磁膜４２を備えている。
【００３１】
＋Ａ相の感磁膜４３および−Ａ相の感磁膜４１は、図２（ａ）に示すブリッジ回路を形成しており、一方端がＡ相用の電源端子ＶｃｃＡに接続され、他方端がＡ相用のグランド端子ＧＮＤＡに接続されている。
＋Ａ相の感磁膜４３の中点位置には、＋Ａ相が出力される出力端子＋ＡＴが設けられ、−Ａ相の感磁膜４１の中点位置には、−Ａ相が出力される出力端子−ＡＴが設けられている。
【００３２】
また、＋Ｂ相の感磁膜４４および−Ｂ相の感磁膜４２も、＋Ａ相の感磁膜４３および−Ａ相の感磁膜４１と同様、図２（ｂ）に示すブリッジ回路を形成しており、一方端がＢ相用の電源端子ＶｃｃＢに接続され、他方端がＢ相用のグランド端子ＧＮＤＢに接続されている。
＋Ｂ相の感磁膜４４の中点位置には、＋Ｂ相が出力される出力端子＋ＢＴが設けられ、−Ｂ相の感磁膜４２の中点位置には、−Ｂ相が出力される出力端子−ＢＴが設けられている。
【００３３】
なお、図２では便宜上、Ａ相用の電源端子ＶｃｃＡおよびＢ相用の電源端子ＶｃｃＢの各々を記載したが、Ａ相用の電源端子ＶｃｃＡとＢ相用の電源端子ＶｃｃＢとが共通になっていてもよい。
また、図２では便宜上、Ａ相用のグランド端子ＧＮＤＡおよびＢ相用のグランド端子ＧＮＤＢの各々を記載したが、Ａ相用のグランド端子ＧＮＤＡとＢ相用のグランド端子ＧＮＤＢとが共通になっていてもよい。
【００３４】
このような構成を有する感磁素子４は、図１（ａ）に示すように、マグネット２０において着磁境界部分に回転軸線方向Ｌで重なる位置に配置されている。
このため、感磁素子４の感磁膜４１〜４４は、各感磁膜４１〜４４の抵抗値の飽和感度領域以上の磁界強度で、着磁面２１の面内方向で向きが変化する回転磁界を検出することができる。
すなわち、着磁境界線部分では、各感磁膜４１〜４４の抵抗値の飽和感度領域以上の磁界強度で面内方向の向きが変化する回転磁界が発生する。
【００３５】
ここで、飽和感度領域とは、一般的に、抵抗値変化量ｋが、磁界強度Ｈと近似的に「ｋ∝Ｈ２」の式で表すことができる領域以外の領域をいう。
また、飽和感度領域以上の磁界強度で回転磁界（磁気ベクトルの回転）の方向を検出する際の原理は、感磁膜４１〜４４に通電した状態で、抵抗値が飽和する磁界強度を印加したとき、磁界と電流方向がなす角度θと、感磁膜４１〜４４の抵抗値Ｒとの間には、次式
で示す関係があることを利用するものである。
【００３６】
Ｒ＝Ｒ０−ｋ×ｓｉｎ２θ
Ｒ０：無磁界中での抵抗値
ｋ：抵抗値変化量（飽和感度領域以上のときは定数）
【００３７】
このような原理に基づいて回転磁界を検出すれば、角度θが変化すると抵抗値Ｒが正弦波に沿って変化するので、波形品質の高いＡ相出力およびＢ相出力を得ることができる。
【００３８】
本実施形態の磁気センサ装置１０およびロータリエンコーダ１において、感磁素子４、第１ホール素子６１、および第２ホール素子６２には、増幅回路９１、９２、９５、９６を介して制御部９０が接続されている。
制御部９０は、これらの増幅回路９１、９２，９５、９６から出力される正弦波信号ｓｉｎ、ｃｏｓに補間処理や各種演算処理を行うＣＰＵ（演算回路）等を備えて構成されており、感磁素子４、第１ホール素子６１、および第２ホール素子６２からの出力に基づいて、固定体に対する回転体２の回転角度位置が求められる。
【００３９】
より具体的には、ロータリエンコーダ１において、回転体２が１回転すると、感磁素子４（磁気抵抗素子）からは、図１（ｂ）に示す正弦波信号ｓｉｎ、ｃｏｓが２周期分、出力される。
したがって、正弦波信号ｓｉｎ、ｃｏｓを増幅回路９１、９２により増幅した後、制御部９０において、図１（ｃ）に示すリサージュ図を求め、正弦波信号ｓｉｎ、ｃｏｓからθ＝ｔａｎ-1（ｓｉｎ／ｃｏｓ）を求めれば、回転出力軸の角度位置θが分かる。
【００４０】
また、本実施形態では、マグネット２０の中心からみて９０°ずれた位置に第１ホール素子６１および第２ホール素子６２が配置されている。このため、第１ホール素子６１および第２ホール素子６２の出力の組合せにより、現在位置が正弦波信号ｓｉｎ、ｃｏｓのいずれの区間に位置するかが分かる。
したがって、ロータリエンコーダ１は、感磁素子４での検出結果、第１ホール素子６１での検出結果、および第２ホール素子６２での検出結果に基づいて回転体２の絶対角度位置情報を生成することができ、アブソリュート動作を行うことができる。
【００４１】
ところで、上述したように、磁気抵抗素子（ＭＲ素子）を備えた磁気センサ装置１０は、磁性薄膜である感磁膜４１と４３、４２と４４によるブリッジ回路を内部に構成している。この構成において、マグネット２０の回転にてブリッジ回路の抵抗値バランスが変わり、磁気抵抗素子（ＭＲ素子）から正弦波信号ｓｉｎ、ｃｏｓが出力される。
ロータリエンコーダ１においてはこれら正弦波信号ｓｉｎ、ｃｏｓをマイクロコンピュータ（マイコン）等を含む制御部にて取得し、正弦波信号ｃｏｓを横軸、正弦波信号ｓｉｎを縦軸とするリサージュ図形を計算し、角度計算を行う。
【００４２】
ところが、磁気センサ装置を備えたロータリエンコーダ１において、ブリッジ回路の抵抗値バランスは正弦波信号ｓｉｎ、ｃｏｓの中点電位を決定するが、このバランスは磁気のみでなく応力によっても変化してしまう。
磁気抵抗素子（ＭＲ素子）には製造段階におけるリフロー時や基板自体のネジ留め時などに残留応力が発生してしまうが、その応力は時間によって抜けていく。そのため、結果として中点電位の経時変化が発生する。
正弦波信号ｓｉｎ、ｃｏｓの中点電位が変化すると、リサージュ図形の中心が移動するため、角度計算に誤差が生じる。
そこで、ロータリエンコーダ１の内部では、最新の正弦波信号ｓｉｎ、ｃｏｓの中点電位を逐次計算しオフセット値を用いて中点の誤差を補正する誤差補正処理が行われる。
【００４３】
ただし、正弦波信号ｓｉｎ、ｃｏｓの中点電位の計算には、図１７（ｂ）に示すように、リサージュ図形のｘ＝０，ｙ＝０ の位置となる計４点Ｐ１〜Ｐ４の値が必要である。
この４点Ｐ１〜Ｐ４をとるため、リサージュ図形を最低２７０度は回る必要がある。
上述したように、モータ１回転でリサージュ図形２回転に相当することから、中点補正のために必要なモータ回転角度は１３５度（＝２７０度／２）となり、図１７（ｂ）に示すように、モータの軸を最低１３５度は回さないと計算できない。
そのため、中点電位に変動があった場合、電源投入から１３５度回るまでは精度が劣化したままとなってしまう。
【００４４】
そこで、本実施形態においては、角度位置検出系が、電源投入（起動時）から所定時間経過した後に正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用するように構成されている。
これにより、本実施形態の角度位置検出系は、実際に経時変化するオフセット値に近づけるのでオフセット誤差を小さくすることができる。換言すれば、本角度位置検出系は、磁気センサ装置の出力信号である正弦波信号ｓｉｎ、ｃｏｓの実際の中点に近い値から動作を開始することができるようになり、電源投入時に毎回誤差が大きくなることを防止することができる。
【００４５】
図３は、正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用する場合の効果を、比較例と対比して説明するための図である。図３（ａ）は比較例を説明するための図であり、図３（ｂ）は本実施形態に係る効果を説明するための図である。
図３において、ＰＷＯＦは電源オン／オフを示し、ＶＰＭＰはプログラム上の中点値を示し、ＶＡＭＰは実際の中点値を示し、ＶＮＭＰは最新の中点値を示している。
【００４６】
既存のロータリエンコーダにおいては、図３（ａ）に示すように、電源を切るたびに正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のプログラム上のオフセット値が工場出荷初期値に戻ることを前提に構成されている。そのため、オフセットの経時変化（回路基板の応力開放などにより、磁気抵抗素子（ＭＲ素子）の感度が変化すること）があると、電源投入のたびにオフセット誤差が大きくなり正確な角度位置が算出することができない。
これに対して、本実施形態においては、図３（ｂ）に示すように、電源投入（起動時）から所定時間経過した後に正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用することで、実際に経時変化するオフセット値に近づけるのでオフセット誤差を小さくすることができる。
また、オフセット誤差が大きいと正確な角度を算出することができないので、トルク指令値のばたつきが発生するおそれがあるが、起動時よりオフセット値の誤差を少なくできるので、安定した回転、位置制御を実現することができる。
【００４７】
このような本実施形態の特徴的な構成を有する角度位置検出系の構成、機能については、後で詳述する。
【００４８】
［感磁素子４の平面構成］
図４は、本発明の実施形態に係る磁気センサ装置１０およびロータリエンコーダ１に用いた感磁素子４を説明するための図である。
【００４９】
図４に示すように、本実施形態の磁気センサ装置１０において、感磁素子４は、基板４０と、基板４０の一方面４０ａに形成された感磁膜４１〜４４とを備えている。感磁膜４１〜４４は、互いに折り返しながら延在している部分によって、基板４０の中央に円形の感磁領域４５を構成している。本実施形態において、基板４０は四角形の平面形状を有するシリコン（Ｓｉ）基板である。
【００５０】
感磁膜４１〜４４からは配線部分が一体に延在しており、配線部分の端部には、Ａ相用の電源端子ＶｃｃＡ、Ａ相用のグランド端子ＧＮＤＡ、＋Ａ相出力用の出力端子＋ＡＴ、−Ａ相出力用の出力端子−ＡＴ、Ｂ相用の電源端子ＶｃｃＢ、Ｂ相用のグランド端子ＧＮＤＢ、＋Ｂ相出力用の出力端子＋ＢＴ、および−Ｂ相出力用の出力端子−ＢＴが設けられている。
【００５１】
また、本実施形態の感磁素子４では、基板４０の一方面４０ａに温度監視用抵抗膜４７および加熱用抵抗膜４８が形成されている。
ここで、加熱用抵抗膜４８は、基板４０の辺に沿って四角枠状に延在して閉ループを構成した状態で、感磁膜４１〜４４が形成されている領域の全体を囲んでいる。
このため、加熱用抵抗膜４８と感磁膜４１〜４４とは、基板４０の面内方向でずれた領域に形成されており、平面視で重なっていない。また、加熱用抵抗膜４８の相対向する２つの辺部分の一方からは配線部分４８１が延在し、その端部には、加熱用抵抗膜４８に対する給電用の電源端子ＶｃｃＨが形成されている。
ここで、温度監視用抵抗膜４７は、感磁膜４３、４４の配線部分と部分的に重なっているが、感磁領域４５とは基板４０の面内方向でずれた領域に形成されており、感磁領域４５とは重なっていない。
温度監視用抵抗膜４７の一方の端部には、温度監視用の電源端子ＶｃｃＳが形成されている。
また、温度監視用抵抗膜４７の他方の端部は、Ａ相用のグランド端子ＧＮＤＡおよびＢ相用のグランド端子ＧＮＤＢに接続されている。このため、Ａ相用のグランド端子ＧＮＤＡおよびＢ相用のグランド端子ＧＮＤＢは、温度監視用抵抗膜４７に対するグランド端子ＧＮＤＳや加熱用抵抗膜４８に対するグランド端子ＧＮＤＨとしても利用されている。
【００５２】
温度監視用抵抗膜４７は、加熱用抵抗膜４８の内側領域のうち、加熱用抵抗膜４８の４つの角の１つの角付近に設けられており、感磁領域４５と加熱用抵抗膜４８との間に位置する。
【００５３】
［温度監視用抵抗膜４７の構成］
温度監視用抵抗膜４７は、たとえば抵抗温度変化係数の大きいニッケル（Ｎｉ）膜により形成され、磁界による抵抗値変化を抑制するため、その形状はｎ角形（ｎは３以上の整数、ｎが無限大で円形）の直線状または曲線状の弧を複数有するよう形成されている。
このように、本実施形態では、温度監視用抵抗膜４７は、その形状がｎ角形の弧を複数有するように形成されるが、各ｎ角形の構成辺である弧は直線または曲線として形成される。
【００５４】
［温度監視用抵抗膜４７の形状］
図５は、本実施形態に係る温度監視用抵抗膜の検出ブロックを拡大して示す図である。
本実施形態では、温度監視用抵抗膜４７は、四重の円形状の検出ブロックＢＬＫ１として形成されている。
この円形状の温度監視用抵抗膜４７は、曲線状の７本の弧Ｒ１１〜Ｒ１７を有しており、ほぼ真円形状となるように形成されている。
これらの弧Ｒ１１〜Ｒ１７は、同一方向の磁束に対して誘起される電圧の向きが逆になるように互いに直列に接続されている。
具体的には、弧Ｒ１１の一端が配線ＷＲ１を介して温度監視用の電源端子ＶｃｃＳに接続され、弧Ｒ１１の他端が弧Ｒ１２の一端が直列に接続され、弧１２の他端が弧Ｒ１３の一端に直列に接続されている。
弧Ｒ１３の他端が弧Ｒ１４の一端に直列に接続され、弧Ｒ１４の他端が弧Ｒ１５の一端に直列に接続され、弧Ｒ１５の他端が弧Ｒ１６の一端に直列に接続され、弧Ｒ１６の他端が弧Ｒ１７の一端に直列に接続されている。
そして、弧Ｒ１７の他端が配線ＷＲ２を介して温度監視用抵抗膜４７に対するグランド端子ＧＮＤＳに接続されている。
【００５５】
そして、本実施形態における温度監視用抵抗膜４７の検出ブロックＢＬＫ１は、弧が折り返しで接続される折り返し部ＦＰ１、ＦＰ２、ＦＰ３を有し、折り返し部ＦＰ１、ＦＰ２、ＦＰ３は、直列に接続された検出ブロックＢＬＫ１に対して等配角度で配置されている。
【００５６】
このように、複数の円形の検出ブロックＢＬＫ１の弧Ｒ１１〜Ｒ１７は、同一方向の磁束に対して誘起される電圧の向きが逆になるように互いに直列に接続されている。
これらの弧Ｒ１１〜Ｒ１７は、誘起される電圧の向きに応じて第１グループＧＲＰ１１と第２グループＧＲＰ１２に区分け可能である。
第１グループＧＲＰ１１には弧Ｒ１１，Ｒ１３，Ｒ１５，Ｒ１７が含まれ、第２グループＧＲＰ１２には弧Ｒ１２，Ｒ１４，Ｒ１６が含まれる。
そして、第１グループＧＲＰ１１の弧Ｒ１１の他端側が３／４周して、折り返し部ＦＰ１において第１グループＧＲＰ１１の弧Ｒ１１の他端から第２グループＧＲＰ１２の弧Ｒ１２が折り返すようにかつ弧Ｒ１１に沿うように近接して対向するように略１／４周するように形成されている。
折り返し部ＦＰ２において、第２グループＧＲＰ１２の弧Ｒ１２の他端から第１グループＧＲＰ１１の弧Ｒ１３が折り返すようにかつ弧Ｒ１２に沿うように近接して対向するように略３／４周するように形成されている。
折り返し部ＦＰ３において、第１グループＧＲＰ１１の弧Ｒ１３の他端から第２グループＧＲＰ１２の弧Ｒ１４が折り返すようにかつ弧Ｒ１３に沿うように近接して対向するように略１周するように形成されている。
折り返し部ＦＰ３において、第２グループＧＲＰ１２の弧Ｒ１４の他端から第１グループＧＲＰ１１の弧Ｒ１５が折り返すようにかつ弧Ｒ１４に沿うように近接して対向するように略１／４周するように形成されている。
折り返し部ＦＰ２において、第１グループＧＲＰ１１の弧Ｒ１５の他端から第２グループＧＲＰ３２の弧Ｒ１６が折り返すようにかつ弧Ｒ１１，Ｒ１５，Ｒ１３に沿うように近接して対向するように略３／４周するように形成されている。
折り返し部ＦＰ１において、第２グループＧＲＰ１２の弧Ｒ１６の他端から第１グループＧＲＰ１１の弧Ｒ１７が折り返すようにかつ弧Ｒ１６に沿うように近接して対向するように略１／４周するように形成されている。
【００５７】
本実施形態においては、温度監視用抵抗膜４７の形状を円形とすることで、磁界による抵抗値変化を抑制でき、精度よく温度検出を行うことができる。
複数の弧が誘起される電圧の向きが逆になるように互いに直列に接続されることから、磁束変化による誘起電圧による誤差を抑制でき、回転磁界中や強弱磁界中においても精度よく温度検出を行うことができる。
さらに、本実施形態によれば、折り返し部によって、弧が途切れる箇所が等配角度で配置されるので、一部の場所に集中して配置される場合と比較すると、回転する磁界に変化があっても変化が相殺されやすくなるという利点がある。
【００５８】
そして、本実施形態において、上記した温度監視用抵抗膜４７の抵抗値変化に基づいて加熱用抵抗膜４８への給電を制御する温度制御部を有する。
本ロータリエンコーダ１においては、本温度制御により、環境温度によらず磁気抵抗素子（ＭＲ素子）である感磁素子４（感磁膜４１〜４４）のチップ温度を一定値に制御できるので、温度によるオフセットへの影響を小さくすることができる。
【００５９】
［感磁素子４の温度調節］
図６は、本発明の実施形態に係る磁気センサ装置１０の制御部９０に構成した温度制御部９１０の概略構成を説明するための図である。
【００６０】
図６に示すように、本実施形態の磁気センサ装置１０の制御部９０には、温度監視用抵抗膜４７の抵抗変化に基づいて加熱用抵抗膜４８への給電を制御する温度制御部９１０が構成されている。
より具体的には、温度監視用抵抗膜４７には抵抗９１１が直列に接続されており、抵抗９１１において温度監視用抵抗膜４７が接続されている側とは反対側は温度監視用の電源端子に接続され、温度監視用抵抗膜４７において抵抗９１１が接続されている側とは反対側は温度監視用のグランド端子ＧＮＤＳに接続されている。
【００６１】
加熱用抵抗膜４８にはバイポーラトランジスタからなるスイッチング素子９１３が直列に接続されており、スイッチング素子９１３において加熱用抵抗膜４８が接続されているエミッタ側とは反対のコレクタ側は加熱用の電源端子に接続され、加熱用抵抗膜４８においてスイッチング素子９１３が接続されている側とは反対側は加熱用のグランド端子ＧＮＤＨに接続されている。
【００６２】
ここで、温度監視用抵抗膜４７と抵抗９１１との接続点は、オペアンプ（演算増幅器）９１２の一方の反転入力端子（−）に入力されており、オペアンプ９１２の他方の非反転入力端子（＋）にはスイッチング素子９１３をオンオフするための閾値となる電圧Ｖｏが入力されている。
この状態で、基板４０の温度が下がると、温度監視用抵抗膜４７の抵抗値が低下し、抵抗９１１とで分圧された接続点の電圧が下がる。そのときオペアンプ９１２の他方の端子に入力されている閾値Ｖｏより低くなるとオペアンプ９１２出力がハイレベルとなりスイッチング素子９１３をオンするので加熱用抵抗膜４８へ給電される。
【００６３】
この状態で、基板４０の温度が上がると、温度監視用抵抗膜４７の抵抗値が上昇し、抵抗９１１との接続点の電圧が上昇する。そのときオペアンプ９１２の他方の端子に入力されている閾値Ｖｏより高くなるとオペアンプ９１２の出力がローレベル（オフ状態）となりスイッチング素子９１３をオフするので加熱用抵抗膜４８への給電が停止される。
それ故、感磁素子４（感磁膜４１〜４４）の温度は、温度監視用抵抗膜４７および抵抗９１１の抵抗値等によって規定された所定の温度に維持される。
【００６４】
［角度位置検出系の具体的な構成および機能］
次に、本実施形態に係る制御部９０における角度位置検出系９２０の具体的な構成および機能について説明する。
【００６５】
図７は、本実施形態に係る制御部９０における角度位置検出系９２０の具体的な構成例を示すブロック図である。
【００６６】
本角度位置検出系９２０は、図７に示すように、アナログデジタル変換器（ＡＤＣ）９２１、角度位置検出部９２２、オフセット取得部としてのオフセット推定部９２３、記憶部９２４、第２記憶部としてのＲＯＭ９２５、書込条件判断部９２６、読込条件判断部９２７、第１スイッチ９２８、および第２スイッチ９２９を含んで構成されている。
【００６７】
ＡＤＣ９２１は、磁気センサ装置１０の磁気抵抗素子としての感磁素子４（感磁膜４１〜４４）で検出されて出力されるアナログの正弦波信号ｓｉｎ、ｃｏｓをデジタルの正弦波信号Ｄｓｉｎ、Ｄｃｏｓに変換して角度位置検出部９２２に出力する。
【００６８】
角度位置検出部９２２は、ＡＤＣ９２１によるデジタル正弦波信号Ｄｓｉｎ、Ｄｃｏｓに基づいてｃｏｓを横軸（Ｘ軸）、ｓｉｎを縦軸（Ｙ軸）とする図１（ｃ）に示すリサージュ図を求め、正弦波信号ｓｉｎ、ｃｏｓから電気内挿演算によりθ＝ｔａｎ-1（ｓｉｎ／ｃｏｓ）を求めて回転出力軸の角度位置θを検出する。
角度位置検出部９２２において、ブリッジ回路の抵抗値バランスは正弦波信号Ｄｓｉｎ、Ｄｃｏｓの中点電位を決定するが、この抵抗値バランスは応力によって変化することから、供給されるオフセット値を用いて中点補正を行う。
【００６９】
角度位置検出部９２２は、中点補正を行うに当たっては、所定のタイミングで、オフセット推定部９２３で取得されたオフセット値ＯＦＳ１（ａ，ｂ）、前回の稼動中に記憶部９２４に書き込まれたオフセット値ＯＦＳ２（ａ，ｂ）、またはＲＯＭ９２５にあらかじめ設定された工場出荷時の初期オフセット値ＯＦＳ３（ａ，ｂ）の供給を受けて中点の補正を行って、角度位置を検出する。
本実施形態において、角度位置検出部９２２は基本的に、工場出荷後の最初の起動時にはＲＯＭ９２５にあらかじめ設定された工場出荷時の初期オフセット値ＯＦＳ３（ａ，ｂ）の供給を受けて中点の補正を行い、次回の起動時には前回の稼動中に記憶部９２４に書き込まれた最新のオフセット値ＯＦＳ２（ａ，ｂ）の供給を受けて中点の補正を行う。
角度位置検出部９２２は、最初および次回の起動時に、ＲＯＭ９２５にあらかじめ設定された工場出荷時のオフセット値ＯＦＳ３（ａ，ｂ）または記憶部９２４に書き込まれた最新のオフセット値ＯＦＳ２（ａ，ｂ）の供給を受けた後は、オフセット推定部９２３で取得されたオフセット値ＯＦＳ１（ａ，ｂ）の供給を受けて中点の補正を行う。
【００７０】
なお、角度位置検出部９２２は、次回の起動タイミングにおいて供給を受けるべき記憶部９２４に書き込まれた最新のオフセット値ＯＦＳ２に異常があると判断された場合には、オフセット値ＯＦＳ２に代えて、ＲＯＭ９２５にあらかじめ設定された工場出荷時の初期オフセット値ＯＦＳ３（ａ，ｂ）の供給を受ける。
【００７１】
角度位置検出部９２２は、オフセット減算部９２２１および角度計算部９２２２を有する。
【００７２】
オフセット減算部９２２１は、ＡＤＣ９２１によるデジタル正弦波信号Ｄｃｏｓ、Ｄｓｉｎから、供給されるオフセット値ＯＦＳ１（ａ，ｂ）、オフセット値ＯＦＳ２（ａ，ｂ）、またはオフセット値ＯＦＳ３（ａ，ｂ）を減算して中点補正を行い、その結果をＤＳａ（ＤＳｃｏｓ），ＤＳｂ（ＤＳｓｉｎ）として角度計算部９２２２およびオフセット推定部９２３に出力する。
【００７３】
オフセット減算部９２２１は、上記減算処理を、たとえば次のように行う。
オフセット減算部９２２１は、リサージュ波形をもとに、リサージュ波形の円周上とｃｏｓ軸（Ｘ軸）で交差する２点の各々の近傍と、リサージュ波形の円周上とｓｉｎ軸（Ｙ軸）で交差する２点の各々の近傍の４点を特定する。
そして、オフセット減算部９２２１は、Ｘ軸近傍の２点およびＹ軸近傍の２点がそれぞれＸ軸とＹ軸の交点から略等距離になるように、Ａ相信号とＢ相信号の両方または一方にオフセット値ＯＦＳを加減して、中点の誤差を補正する。
【００７４】
角度計算部９２２２は、オフセット減算部９２２１による減算結果ＤＳａ，ＤＳｂから電気内挿演算によりθ＝ｔａｎ-1（ｓｉｎ／ｃｏｓ）を求めて回転出力軸の角度位置θを検出する。
【００７５】
オフセット取得部としてのオフセット推定部９２３は、オフセット減算部９２２１で減算処理を受けた正弦波信号ＤＳａ（ＤＳｃｏｓ），ＤＳｂ（ＤＳｓｉｎ）に基づいて中点補正のためのオフセット値ＯＦＳ１（ａ，ｂ）を推定（取得）する。
なお、オフセット値の推定は、たとえば特許第３０２６９４９号公報に記載されているような方法と同様の方法を採用することが可能である。
オフセット推定部９２３は、取得したオフセット値ＯＦＳ１（ａ，ｂ）を書込条件判断部９２６および第１スイッチ９２８の端子ｂに供給する。
【００７６】
［記憶部９２４の構成］
記憶部９２４は、たとえば不揮発性メモリであるＥＥＰＲＯＭにより構成され、稼働中にオフセット推定部９２３で取得されたオフセット値のうち、書込条件判断部９２６で書き込むべき値として判断されたオフセット値が、書込条件判断部９２６により書き込まれる。
【００７７】
図８は、本実施形態に係る記憶部の書き込み領域の構成例を示す図である。
図８は、記憶部９２４におけるフラグ領域、第１書き込み領域、第２書き込み領域のアドレスの一例およびオフセットデータの構造例を示す図である。
【００７８】
本実施形態の記憶部９２４は、図８に示すように、書込条件判断部９２６により交互にオフセット値ＯＦＳのデータが書き込まれる第１書き込み領域ＷＡＲＡ０および第２書き込み領域ＷＡＲＡ１、並びに、第１書き込み領域ＷＡＲＡ０および第２書き込み領域ＷＡＲＡ１のいずれのデータを保証するかを示すデータ保証用フラグＦＬＧが設定されるデータ保証用フラグ領域ＩＦＬＧを含で構成される。
データ保証用フラグＦＬＧ（ｏｆｓ ｗｒｉｔｅ ｆｌｇ）は、第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１への書き込み処理後に設定される。
記憶部９２４の第１書き込み領域ＷＡＲＡ０および第２書き込み領域ＷＡＲＡ１への書き込みデータには、ＣＲＣ（誤り検出符号）が書き込まれる。
【００７９】
第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込まれるオフセット値ＯＦＳの書き込みデータＣＯＳ ＯＦＳおよびＳＩＮ ＯＦＳは、３２ビットの４バイトにより構成され、下位ビット側から１バイトのデータ領域ＬＬ，ＬＨ，ＨＬ，ＨＨに書き込まれる。
図８の例では、第１書き込み領域ＷＡＲＡ０に、符号０を付したＣＯＳ ＯＦＳ ０ ＬＬ、ＣＯＳ ＯＦＳ ０ ＬＨ、ＣＯＳ ＯＦＳ ０ ＨＬ、ＣＯＳ ＯＦＳ ０ ＨＨ、および、ＳＩＮ ＯＦＳ ０ ＬＬ、ＳＩＮ ＯＦＳ ０ ＬＨ、ＳＩＮ ＯＦＳ ０ ＨＬ、ＳＩＮ ＯＦＳ ０ ＨＨのオフセット値データが書き込まれ、これらのオフセット値データの後にＣＲＣデータＣＲＣ ＯＦＳ ０が書き込まれる。
第２書き込み領域ＷＡＲＡ１に、符号１を付したＣＯＳ ＯＦＳ １ ＬＬ、ＣＯＳ ＯＦＳ １ ＬＨ、ＣＯＳ ＯＦＳ １ ＨＬ、ＣＯＳ ＯＦＳ １ ＨＨ、および、ＳＩＮ ＯＦＳ １ ＬＬ、ＳＩＮ ＯＦＳ １ ＬＨ、ＳＩＮ ＯＦＳ １ ＨＬ、ＳＩＮ ＯＦＳ １ ＨＨのオフセット値データが書き込まれ、これらのオフセット値データの後にＣＲＣデータＣＲＣ ＯＦＳ １が書き込まれる。
【００８０】
オフセット値データの特定領域ＨＨには、基本的に、ＣＲＣ領域の信頼性を向上させるために、データＣＯＳ ＯＦＳでは特定データ“０ｘ５０”が書き込まれ、データＳＩＮ ＯＦＳでは特定データ“０ｘ０Ａ”が書き込まれる。
オフセット値データの特定領域ＨＬには、基本的に、信頼性を向上させるために、データＣＯＳ ＯＦＳおよびデータＳＩＮ ＯＦＳにおいて、特定データ“０ｘ００”または“０ｘＦＦ”が書き込まれる。
【００８１】
このような構成を有する記憶部９２４において、データ保証用フラグＦＬＧは、第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１への書き込み処理後に設定されることにより、フラグが示す領域のデータは最新かつ保証できるものであると示すことができる。
たとえば、フラグＦＬＧが“１”であり、第１書き込み領域ＷＡＲＡ０に中点値のオフセット値データやＣＲＣ（誤り検出符号）を書き込んでいる途中で電源を落とせば、次の電源投入時にはフラグＦＬＧが“１”のままなので、データが不完全な第１書き込み領域ＷＡＲＡ０のデータは破棄し、第２書き込み領域ＷＡＲＡ１のデータを採用することができる。
【００８２】
なお、記憶部９２４は、たとえば不揮発性メモリであるＥＥＰＲＯＭにより構成される例を示しているが、バックアップ電源でバックアップされた揮発性メモリにより構成することも可能である。
【００８３】
第２記憶部としてのＲＯＭ９２５は、あらかじめ設定された工場出荷時の初期オフセット値ＯＦＳ３（ａ，ｂ）があらかじめ設定されている。
ＲＯＭ９２５から読み出される初期オフセット値ＯＦＳ３（ａ，ｂ）は第２スイッチ９２９の端子ｃに供給される。
なお、ＣＲＣ異常など、ＥＥＰＲＯＭである記憶部９２４へのデータ書き込みに異常があった場合は、ＲＯＭ９２５に書き込んである工場出荷時の中点データを採用するように構成することも可能である。
データ異常を検出する機能として、中点データの値の範囲を設定することもできる。データ書き込み失敗などで明らかに異常な中点データは採用しないようにすることも可能である。
【００８４】
［書込条件判断部９２６の構成および機能］
書込条件判断部９２６は、起動時から所定時間経過した後に、オフセット推定部９２３で所定のタイミングで取得したオフセット値ＯＦＳ２（ａ，ｂ）［ＣＯＳ ＯＦＳ，ＳＩＮ ＯＦＳ］を逐次記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
【００８５】
書込条件判断部９２６は、電源投入あるいはシステムリセット等の駆動（稼動）を開始するために起動してから駆動初期のレベルを把握するには十分な短時間の駆動後に取得されたオフセット値ＯＦＳ２（ａ，ｂ）を記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
この場合、書込条件判断部９２６は、たとえば、駆動初期のレベルを把握するため、たとえば１分待ち、回転体であるモータ半回転分のデータ取得に対して平均化することができる。
これにより、加熱用抵抗膜４８による加熱により磁気抵抗素子である感磁膜４の熱的安定のためにある程度の長い時間経過が必要であるが、そこまでの時間を経過させずに起動初期レベルのオフセット値を把握するので、仮に所定時間内に電源投入が繰り返されても、オフセット値の正確性を確保することができる。
【００８６】
書込条件判断部９２６は、加熱によるオフセット値安定のための所定時間を経過後、オフセット値の取得処理を複数回繰り返して、複数のオフセット値を平均化し、平均化したオフセット値を記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
この場合、たとえば３分待ち、回転体であるモータ、２０回転分のデータ取得に対して平均化することができる。
これにより、所定時間経過させることによって、加熱制御による回路を安定化させることができ、オフセット値を平均化させ正確なオフセット値を算出することができる。
【００８７】
書込条件判断部９２６は、平均化したオフセット値を記憶部９２４に書き込んだ後、オフセット値の監視を継続し、一定間隔でオフセット値を取得して、記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
この一定間隔は、たとえば１０分あるいはそれよりも長い時間に設定可能である。
これにより、オフセット値を継続的に監視することによって、監視周期時間内での予期せぬ変動にも対応でき、次回起動時のオフセット誤差を小さくすることができる。
また、記憶部９２４としてＥＥＰＲＯＭ等の書き換え回数に制限のある不揮発性メモリを適用した場合にあっても、記憶部を交換することなく、回転体であるモータ等の製品保証寿命内では継続監視ができる。
【００８８】
この一定間隔は、下記式を満足する値に設定される。
（Ｍ回／ｈ）＊２４（時間）＊３６５（日）＊Ｎ（年）＜Ｐ
ここで、Ｍは時間当たりのオフセット値を記憶する回数、Ｎはモータの製品保証寿命年、Ｐは記憶部の書き込み保証回数をそれぞれ示している。
【００８９】
これにより、記憶部９２４としてＥＥＰＲＯＭ等の書き換え回数に制限のある不揮発性メモリを適用した場合にあっても、記憶部９２４を交換することなく、回転体であるモータ等の製品保証寿命内では継続監視ができる。
【００９０】
［オフセット値書き込み（保存）のタイミング決定処理］
図９は、本実施形態に係る書込条件判断部９２６におけるオフセット値書き込み（保存）のタイミング決定処理を示すフローチャートである。
【００９１】
なお、以下に示すフローチャートにおいては記憶部９２４をＥＥＰとして簡略化して表してある。
【００９２】
書込条件判断部９２６におけるオフセット値書き込み（保存）のタイミング決定処理は、基本的に、図９に示すフローに従って、ヒータである加熱用抵抗膜４８の温まりを待つために１分待ち、その後半回転したら１回目の保存を実行する。
２回目は、１回目の保存から３分待ち、その後２０回転したら実行する。
それ以降は１０分ごとに実行する。
図９は、ステップＳＴ１０１〜ＳＴ１２７においてこの処理の流れを具体的に示している。
【００９３】
この処理において、以下の定数がマクロ（Ｍａｃｒｏ．ｈ）にて定義されている。
オフセット書き込みカウント初期値「ＯＦＳ ＷＲＩＴＥ ＣＮＴ ＩＮＩＴ」が“９”に設定される。これは初期値“９”であり、処理は１分まってから行われることになる。
オフセット書き込みカウント２回目「ＯＦＳ ＷＲＩＴＥ ＣＮＴ ＳＥＣＯＮＤ」が“７”に設定される。これは２回目の値が“７”であり、処理は３分まってから行われることになる。
このように初期値を変えることにより設定時間が変更される。
オフセット書き込み延長時間初期値「ＯＦＳ ＷＲＩＴＥ ＥＸＴ ＴＩＭＥ ＩＮＩＴ」が“２”に設定される。これは機械角半回転に相当する。
オフセット書き込み延長時間２回目「ＯＦＳ ＷＲＩＴＥ ＥＸＴ ＴＩＭＥ ＳＥＣＯＮＤ」が“８０”に設定される。これは機械角２０回転に相当する。
このように初期値を変えることにより機械角回転数が変更される。
オフセット書き込みインターバル「ＯＦＳ  ＷＲＩＴＥ  ＩＮＴＥＲＶＡＬ」が“１０”に設定される。
【００９４】
また、この処理において、変数として記憶部（ＥＥＰ）書込み条件変数「ｏｆｓ ｗｒｉｔｅ ｅｎｂｌ」が用いられている。この変数は処理ステップＳＴ１０５、ＳＴ１１１、ＳＴ１１５、ＳＴ１２３、ＳＴ１２４で用いられている。
変数「ｏｆｓ ｗｒｉｔｅ ｅｎｂｌ」が“０”のときは「時間条件待ち」であることを示す。変数「ｏｆｓ ｗｒｉｔｅ ｅｎｂｌ」が“１”のときは「記憶部（ＥＥＰ）書き込み可」であることを示す。変数「ｏｆｓ ｗｒｉｔｅ ｅｎｂｌ」が“２”のときは「中点のオフセット値の補正回数条件待ち」であることを示す。
条件としての優先度は、時間条件が補正回数より優先される。変数「ｏｆｓ ｗｒｉｔｅ ｅｎｂｌ」は時間条件を満たすと「２」になり、タスクｃ（ｔａｓｋ．ｃ）で補正回数の条件を満たすと「１」となり、実際にオフセット値の書き込みが実行される。
【００９５】
図９のステップＳＴ１０３やＳＴ１０９のオフセットカウント変数「ｏｆｓ ｃｎｔ」は補正回数を示し、ステップＳＴ１１２の変数「ｏｆｓ ｃｎｔ−−」はオフセットカウント値を“−１”することを示す。
また、ステップＳＴ１１８やＳＴ１２１のオフセット書き込みカウント「ｏｆｓ ｗｒｉｔｅ ｃｎｔ」は書き込み処理が可能となるまでの時間のカウント値を示す。
【００９６】
また、本実施形態においては、角度計算に関係しない処理をバック処理と呼び、角度計算に関係する処理は割り込みとして処理される場合があり、記憶部９２４（ＥＥＰＲＯＭ）への書き込みがバック処理と割り込み処理で競合することが想定される。
このことから、本ロータリエンコーダ１においては、割り込み処理が発生したときは、割り込み処理をバック処理により優先的に処理するように構成されている。
この場合の状態表記として２つの変数が用いられる。
一つは割り込み処理側の変数「ｅｅｐ ｂｕｓｙ」であり、他はバック処理側の変数「ｅｐｐ ｂｕｓｙ ｐｒｅ」である。
変数「ｅｅｐ ｂｕｓｙ」が“０”のときは「記憶部（ＥＥＰ）書き込み権利が浮いている」ことを示し、“１”のときは「記憶部（ＥＥＰ）書き込み権利が既に取られている」ことを示す。
変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“０”のときは「バック処理で記憶部（ＥＥＰ）書き込み許可が下りていない」ことを示し、“１”のときは「バック処理で記憶部（ＥＥＰ）書き込み許可待ち」であることを示し、”２”のときは「バック処理で記憶部（ＥＥＰ）書き込み許可が下りている」ことを示す。
【００９７】
以上の前提を考慮して、図９の処理に戻ると、ステップＳＴ１０１において、変数の初期化が行わる。
変数「ｏｆｓ ｃｎｔ」がオフセット書き込み延長時間初期値「ＯＦＳ ＷＲＩＴＥ ＥＸＴ ＴＩＭＥ ＩＮＩＴ」の値に設定される。
変数「ｏｆｓ ｃｏｓｓｉｎ」が“０ｘ１１”に設定される。これはオフセット値「ｏｆｓ ｃｏｓ」と「ｏｆｓ ｓｉｎ」に関する処理がいずれにも偏らず交互に行われることを示す。
変数「ｏｆｓ ｗｒｉｔｅ ｅｎｂｌ」が“０”に設定され、バック処理に関する変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“０”に設定される。
さらに、変数「ｏｆｓ ｗｒｉｔｅ ｃｎｔ」がオフセット書き込みカウント初期値「ＯＦＳ ＷＲＩＴＥ ＣＮＴ ＴＩＭＥ ＩＮＩＴ」の値に設定される。
そして、変数「ｏｆｓ ｅｅｐ ｗｒｉｔｅ_ｆｉｒｓｔ」が“０”に設定される。
【００９８】
起動開始からヒータである加熱用抵抗膜４８の温まりを待つために１分待つ。したがって、起動直後は、ステップＳＴ１０２〜ＳＴ１１３はバイパスされ、１分経過したことを確認し、その後半回転したらオフセット値の記憶部９２４への１回目の保存を実行する。
この場合、書込条件判断部９２６は、たとえば、駆動初期のレベルを把握するため、たとえば１分待ち、回転体であるモータ半回転分のデータ取得に対して平均化することができる。
これにより、加熱用抵抗膜４８による加熱により磁気抵抗素子である感磁膜４の熱的安定のためにある程度の長い時間経過が必要であるが、そこまでの時間を経過させずに起動初期レベルのオフセット値を把握するので、仮に所定時間内（短時間での）に電源投入が繰り返されても、オフセット値の正確性を確保することができる。
２回目は、１回目の保存から３分待ち、その後２０回転したら実行する。
この場合、たとえば３分待ち、回転体であるモータ、２０回転分のデータ取得に対して平均化することができる。
これにより、所定時間経過させることによって、加熱制御による回路を安定化させることができ、オフセット値を平均化させ正確なオフセット値を算出することができる。
それ以降は１０分ごとに実行する。
これにより、オフセット値を継続的に監視することによって、監視周期時間内での予期せぬ変動にも対応でき、次回起動時のオフセット誤差を小さくすることができる。
【００９９】
［オフセット値書き込み（保存）実行時の処理］
図１０は、本実施形態に係る書込条件判断部９２６におけるオフセット値書き込み（保存）実行時の排他処理の状態遷移図である。
図１１は、本実施形態に係る書込条件判断部９２６におけるオフセット値書き込み（保存）実行時の処理を示すフローチャートである。
【０１００】
次に、本実施形態に係る書込条件判断部９２６におけるオフセット値書き込み（保存）実行時の処理について説明する。
まず、図１０に関連付けてオフセット値書き込み（保存）実行時の排他処理について説明する。
【０１０１】
たとえば変数「ｅｅｐ ｂｕｓｙ」と変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が｛０，０｝の状態ＳＴＴ０で、バック処理での記憶部（ＥＥＰ）書き込み要求と割り込みによる記憶部（ＥＥＰ）書き込み要求が行われた場合、変数｛１，０｝の状態ＳＴＴ１に遷移して割り込みによる記憶部（ＥＥＰ）書き込みが優先される。
状態ＳＴＴ０において、バック処理で記憶部（ＥＥＰ）書き込み許可要求が出されると状態ＳＴＴ２に遷移して、バック処理は割り込み待ち状態となり、割り込みで記憶部（ＥＥＰ）書き込みコマンドが発行されると状態ＳＴＴ１に遷移して割り込みによる記憶部（ＥＥＰ）書き込みが優先される。
状態ＳＴＴ２で割り込みのその他のコマンドを受けると変数｛１，２｝の状態ＳＴＴ３に遷移し、バック処理での記憶部（ＥＥＰ）書き込みが行われる。また、割り込みで記憶部（ＥＥＰ）書き込みコマンドが発行されると状態ＳＴＴ１に遷移する。
状態ＳＴＴ１でバック処理での記憶部（ＥＥＰ）書き込み要求があると、状態ＳＴＴ４に遷移し、バック処理での記憶部（ＥＥＰ）書き込みの許可待ちとなるが、この場合、割り込みにより、バック処理での記憶部（ＥＥＰ）書き込みは非許可となり、状態ＳＴＴ１に遷移する。
【０１０２】
次に、図１１に関連付けて書込条件判断部９２６におけるオフセット値書き込み（保存）実行時の処理について説明する。
図１１において、ステップＳＴ２０３〜ステップＳＴ２０９の処理が割り込み内処理である。
【０１０３】
まず、書込条件判断部９２６は、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」を“１”に設定して、バック処理での記憶部（ＥＥＰ）９２４書き込みの許可待ち状態とする（ステップＳＴ２０１）。
次に、通信割り込みあるいはタイマ割り込みに入ったか否かを判断し（ステップＳＴ２０２）、入ったと判断した場合に、割り込み内処理に移行する。
【０１０４】
割り込み内処理においては、まず、記憶部（ＥＥＰ）９２４の書き込み系コマンドの通信割り込みであるか否かを判断する（ステップＳＴ２０３）。
ステップＳＴ２０３において、記憶部（ＥＥＰ）９２４の書き込み系コマンドの通信割り込みであると判断した場合にはステップＳＴ２０４の処理を行った後にステップＳＴ２０５の処理に移行し、記憶部（ＥＥＰ）９２４の書き込み系コマンドの通信割り込みでないと判断した場合にはステップＳＴ２０４の処理を経ずにステップＳＴ２０５の処理に移行する。
【０１０５】
ステップＳＴ２０４においては、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」を“０”に設定して、バック処理での記憶部（ＥＥＰ）９２４書き込みを許可しない状態とする。
ステップＳＴ２０５においては、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“１”であるか否かを判断する。
ステップＳＴ２０５において、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“１”であると判断した場合には、変数「ｅｅｐ ｂｕｓｙ」が“１”であるか否かを判断する（ステップＳＴ２０６）。
ステップＳＴ２０６において、変数「ｅｅｐ ｂｕｓｙ」が“１”であると判断した場合には、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」を“０”に設定して、バック処理での記憶部（ＥＥＰ）９２４への書き込みを許可しない状態とし（ステップＳＴ２０７）、割り込み内処理を終了してステップＳＴ２１０の処理に移行する。
ステップＳＴ２０６において、変数「ｅｅｐ ｂｕｓｙ」が“１”でないと判断した場合には、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」を“２”に設定して、バック処理での記憶部（ＥＥＰ）９２４書き込みを許可する状態とする（ステップＳＴ２０８）。
次に、変数「ｅｅｐ ｂｕｓｙ」を“１”に設定して、割り込みでの記憶部（ＥＥＰ）９２４書き込みを禁止する状態とし、割り込み内処理を終了してステップＳＴ２１０の処理に移行する。
【０１０６】
ステップＳＴ２１０においては、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“２”であるか否かを判断する。
ステップＳＴ２１０において、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“２”であると判断した場合にはステップＳＴ２１１の処理に移行し、変数「ｅｅｐ ｂｕｓｙ」が“２”でないと判断した場合には、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」が“０”であるとして処理を終了する。
ステップＳＴ２１１においては、変数「ｅｅｐ ｂｕｓｙ ｐｒｅ」を“０”に設定して、バック処理での記憶部（ＥＥＰ）９２４への書き込みを許可しない（許可をクリア）した）状態とし、次のステップＳＴ２１２の処理に移行する。
【０１０７】
ステップＳＴ２１２においては、データ保証用フラグ（オフセット書き込みフラグ）「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”であるか否の判断を行う。
ステップＳＴ２１２において、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”であると判断した場合には、記憶部９２４の第２書き込み領域ＷＡＲＡ１のデータが古いデータであると判断して、第２書き込み領域ＷＡＲＡ１にオフセット値データｃｏｓ ｏｆｓ，ｓｉｎ ｏｆｓを書き込み保存する（ステップＳＴ２１３）。
ステップＳＴ２１２において、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”でないと判断した場合には、記憶部９２４の第１書き込み領域ＷＡＲＡ０のデータが古いデータであると判断して、第１書き込み領域ＷＡＲＡ０にオフセット値データｃｏｓ ｏｆｓ，ｓｉｎ ｏｆｓを書き込み保存する（ステップＳＴ２１４）。
【０１０８】
書き込み処理は、たとえばステップＳＴ２１５に示すように行われる。
すなわち、第１書き込み領域ＷＡＲＡ１または第２書き込み領域ＷＡＲＡ２へのオフセット値データｃｏｓ ｏｆｓ，ｓｉｎ ｏｆｓを１バイトずつ切り出して保存していく。
書き込みデータと書き込み領域は、バックの処理１サイクルごとに１つ分ずつ変更していく。これにより、バックの処理１サイクルで１バイト書き込める。
そして、切り出したデータのビットの排他的論理和（ｘｏｒ）をＣＲＣとして計算しておき、オフセット値データｃｏｓ ｏｆｓ，ｓｉｎ ｏｆｓを書き込み終わった後に、ＣＲＣも書き込む。
【０１０９】
次に、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”であるか否の判断を行う（ステップＳＴ２１６）。
ステップＳＴ２１６において、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”であると判断した場合には、記憶部９２４の第２書き込み領域ＷＡＲＡ１に新しいデータを保存したので、第２書き込み領域ＷＡＲＡ１に書き込まれたオフセット値データｃｏｓ ｏｆｓ，ｓｉｎ ｏｆｓを保証するようにフラグを“１”に変更する（ステップＳＴ２１７）。
ステップＳＴ２１６において、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”でないと判断した場合には、記憶部９２４の第１書き込み領域ＷＡＲＡ０に新しいデータを保存したので、第１書き込み領域ＷＡＲＡ０に書き込まれたオフセット値データｃｏｓ ｏｆｓ，ｓｉｎ ｏｆｓを保証するようにフラグを“０”に変更する（ステップＳＴ２１８）。
【０１１０】
［読込条件判断部９２７の構成および機能］
読込条件判断部９２７は、記憶部９２４のデータ保証用フラグＦＬＧ（ｏｆｓ ｗｒｉｔｅ ｆｌｇ）の設定データにより第１書き込み領域ＷＡＲＡ０に記憶されたデータまたは第２書き込み領域ＷＡＲＡ１に記憶されたデータのうちいずれの領域のデータが保証されているかを判断する。
そして、読込条件判断部９２７は、保証されている第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１のデータに異常がない場合に保証されている領域のオフセット値データを読み込み、第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する。
これにより、データ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１１１】
読込条件判断部９２７は、保証されていると判断した第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１の書き込みデータのＣＲＣ（誤り検出符号）を計算し、計算したＣＲＣと書き込まれているＣＲＣが一致した場合に、保証されている領域のオフセット値データを読み込み、第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する。
これにより、ＣＲＣ異常などの異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１１２】
読込条件判断部９２７は、計算したＣＲＣと書き込まれているＣＲＣが一致し、特定領域ＨＬやＨＨに特定データが書き込まれている場合に、保証されている領域のオフセット値データを読み込み、第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する。
これにより、ＣＲＣ異常やデータ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１１３】
読込条件判断部９２７は、計算したＣＲＣと書き込まれているＣＲＣが一致しない場合、あるいは特定領域ＨＬやＨＨに特定データが書き込まれていない場合、保証されている領域のオフセット値データに代えて、第２記憶部であるＲＯＭ９２５に記憶されている初期オフセット値を第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する。
この場合も、ＣＲＣ異常やデータ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１１４】
［オフセット値読み込み実行時の処理］
図１２は、本実施形態に係る読込条件判断部９２７におけるオフセット値読み込み実行時の処理を示すフローチャートである。
次に、図１２に関連付けてオフセット値読み込み実行時の処理について説明する。
【０１１５】
まず、読込条件判断部９２７は、記憶部９２４のデータ保証用フラグｏｆｓ ｗｒｉｔｅ ｆｌｇを取得する（ステップＳＴ３０１）
次に、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”であるか否かを判断する（ステップＳＴ３０２）。
ステップＳＴ３０２において、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”であると判断した場合には、第１書き込み領域ＷＡＲＡ０のデータが保証されていると判断する（ステップＳＴ３０３）。
ステップＳＴ３０２において、データ保証用フラグ「ｏｆｓ ｗｒｉｔｅ ｆｌｇ」が“０”でないと判断した場合には、第２書き込み領域ＷＡＲＡ１のデータが保証されていると判断する（ステップＳＴ３０４）。
そして、ステップＳＴ３０３またはステップＳＴ３０４で判断した書き込み領域のオフセット値データｃｏｓ ｏｆｓ、ｓｉｎ ｏｆｓのＣＲＣを計算する（ステップＳＴ３０５）。
【０１１６】
次に、計算したＣＲＣと書き込まれているＣＲＣが一致しているか否かを判断する（ステップＳＴ３０６）。
ステップＳＴ３０６でＣＲＣが一致していると判断した場合には、オフセット値データｃｏｓ ｏｆｓ、ｓｉｎ ｏｆｓのそれぞれの特定領域ＨＬに特定データ“０ｘ００”または“０ｘＦＦ”が書き込まれているか否かを判断する（ステップＳＴ３０７）。
特定領域ＨＬに特定データ“０ｘ００”または“０ｘＦＦ”が書き込まれていると判断した場合には、オフセット値データｃｏｓ ｏｆｓ、ｓｉｎ ｏｆｓのそれぞれの特定領域ＨＨに、ｃｏｓの場合には特定データ“０ｘ５０”が、ｓｉｎの場合には特定データ“０ｘ０Ａ”が書き込まれているか否かを判断する（ステップＳＴ３０８）。
特定領域ＨＨに、ｃｏｓの場合には特定データ“０ｘ５０”が、ｓｉｎの場合には特定データ“０ｘ０Ａ”が書き込まれていると判断した場合には、ステップＳＴ３０３またはステップＳＴ３０４で判断した書き込み領域のオフセット値データを読み込み、オフセット値データｃｏｓ ｏｆｓ、ｓｉｎ ｏｆｓとして、第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する（ステップＳＴ３０９）。
【０１１７】
ステップＳＴ３０６、ステップＳＴ３０７、ステップＳＴ３０８の少なくともいずれかの判断処理で、否定的な判断が行われた場合には、ＲＯＭ９２５に保存されている工場出荷時のオリジナル初期値ｏｒｇ ｃｏｓ ｏｆｓ，ｏｒｇ ｓｉｎ ｏｆｓを、オフセット値データｃｏｓ ｏｆｓ、ｓｉｎ ｏｆｓとして、第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する（ステップＳＴ３１０）。
【０１１８】
第１スイッチ９２８は、端子ａがオフセット減算部９２２１のオフセット値の入力部に接続され、端子ｂがオフセット推定部９２３の出力部に接続され、端子ｃが第２スイッチ９２９の端子ａに接続されている。
第１スイッチ９２８は、電源投入時等の起動時には端子ａが端子ｃとの接続状態に制御される。この状態で、第２スイッチ９２９を介して転送される記憶部９２４に記憶された最新のオフセット値またはＲＯＭ９２５の初期オフセット値をオフセット減算部９２２１に入力させる。
起動時から所定時間経過すると、第１スイッチ９２８は、端子ａが端子ｂとの接続状態に制御される。この状態で、オフセット推定部９２３により取得された駆動時の現在のオフセット値をオフセット減算部９２２１に入力させる。
【０１１９】
第２スイッチ９２９は、端子ｂが読込条件判断部９２７の記憶部９２４から読み込んだオフセット値の出力ラインに接続され、端子ｃがＲＯＭ９２５の出力部に接続されている。
第２スイッチ９２９は、基本的に、端子ａが端子ｂに接続されて、起動時に記憶部９２４に書き込まれている最新のオフセット値を第１スイッチ９２８を介してオフセット減算部９２２１に入力させる。
第２スイッチ９２９は、読込条件判断部９２７で記憶部９２４に書き込まれているオフセット値データにＣＲＣエラーや特定領域に特定データが書き込まれていない場合には、端子ａが端子ｃと接続されて、第１スイッチ９２８を介して初期オフセット値をオフセット減算部９２２１に入力させる。
また、第２スイッチ９２９は、工場出荷後に初めて電源投入される場合には、端子ａが端子ｃと接続されて、第１スイッチ９２８を介して初期オフセット値をオフセット減算部９２２１に入力させる。
【０１２０】
以上、本実施形態における角度位置検出系９２０の各部の具体的な構成および機能について説明した。
次に、本実施形態における角度位置検出系９２０の全体の動作の概要ついて図１３および図１４に関連付けて説明する。
図１３は、本実施形態における角度位置検出系９２０の工場出荷後の初めて電源投入された場合の全体の動作の概要ついて説明するためのフローチャートである。
図１４は、本実施形態における角度位置検出系９２０の次回以降に電源投入された場合の全体の動作の概要ついて説明するためのフローチャートである。
【０１２１】
［電源投入が初回の場合の動作］
まず、電源投入が初回の場合の動作を図１３に関連付けて説明する。
角度位置検出系９２０においては、制御部９０の制御の下、工場出荷後に初めて電源投入されると（ステップＳＴ４０１）、第２スイッチ９２９、第１スイッチ９２８を介して初期オフセット値ＯＦＳ３（ａ，ｂ）がオフセット減算部９２２１に供給される（ＳＴ４０２）。
オフセット減算部９２２１では、ＡＤＣ９２１によるデジタル正弦波信号Ｄｃｏｓ、Ｄｓｉｎから、供給されるオフセット値、ここではＯＦＳ３（ａ，ｂ）が減算されて中点補正が行われ（ステップＳＴ４０３）、その結果をＤＳａ（ＤＳｃｏｓ），ＤＳｂ（ＤＳｓｉｎ）として角度計算部９２２２およびオフセット推定部９２３に出力する。
【０１２２】
角度計算部９２２２では、オフセット減算部９２２１による減算結果ＤＳａ，ＤＳｂから電気内挿演算によりθ＝ｔａｎ-1（ｓｉｎ／ｃｏｓ）を求められて回転出力軸の角度位置θが検出される（ステップＳＴ４０４）。
【０１２３】
オフセット推定部９２３では、オフセット減算部９２２１で減算処理を受けた正弦波信号ＤＳａ（ＤＳｃｏｓ），ＤＳｂ（ＤＳｓｉｎ）に基づいて中点補正のためのオフセット値ＯＦＳ１（ａ，ｂ）が推定（取得）される（ステップＳＴ４０５）。
このオフセット推定部９２３で取得されたオフセット値ＯＦＳ１（ａ，ｂ）が第１スイッチ９２８を介して初期オフセット値ＯＦＳ３（ａ，ｂ）に代えてオフセット減算部９２２１に供給される（ＳＴ４０６）。
以降、ステップＳＴ４０３、ＳＴ４０４、ＳＴ４０５、ＳＴ４０６の処理が繰り返される。
【０１２４】
また、ステップＳＴ４０５のオフセット値ＯＦＳ１（ａ，ｂ）の取得処理の後、書込条件判断部９２６で、時間、補正回数の条件を監視しつつ（ステップＳＴ４０７）、条件に沿った形で記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１にＣＲＣ等を含めて書き込まれ、データ保証用フラグが設定される（ステップＳＴ４０８）。
【０１２５】
［電源投入が２回目以降の場合の動作］
次に、電源投入が２回目以上である場合の動作を図１４に関連付けて説明する。
角度位置検出系９２０においては、制御部９０の制御の下、２回目以降の電源投入が行われると（ステップＳＴ４１１）、読込条件判断部９２７により読込条件を監視する（ステップＳＴ４１２）。
ステップＳＴ４１２において、読込条件を満足している場合には、記憶部９２４に書き込まれている最新のオフセット値ＯＦＳ２（ａ，ｂ）が、第２スイッチ９２９、第１スイッチ９２８を介してオフセット減算部９２２１に供給される（ＳＴ４１３）。
ステップＳＴ４１２において、読込条件を満足していない場合には、第２スイッチ９２９、第１スイッチ９２８を介して初期オフセット値ＯＦＳ３（ａ，ｂ）がオフセット減算部９２２１に供給される（ＳＴ４１４）。
【０１２６】
オフセット減算部９２２１では、ＡＤＣ９２１によるデジタル正弦波信号Ｄｃｏｓ、Ｄｓｉｎから、供給されるオフセット値ＯＦＳ２（ａ，ｂ）またはＯＦＳ３（ａ，ｂ）が減算されて中点補正が行われ（ステップＳＴ４１５）、その結果をＤＳａ（ＤＳｃｏｓ），ＤＳｂ（ＤＳｓｉｎ）として角度計算部９２２２およびオフセット推定部９２３に出力する。
【０１２７】
角度計算部９２２２では、オフセット減算部９２２１による減算結果ＤＳａ，ＤＳｂから電気内挿演算によりθ＝ｔａｎ-1（ｓｉｎ／ｃｏｓ）を求められて回転出力軸の角度位置θが検出される（ステップＳＴ４１６）。
【０１２８】
オフセット推定部９２３では、オフセット減算部９２２１で減算処理を受けた正弦波信号ＤＳａ（ＤＳｃｏｓ），ＤＳｂ（ＤＳｓｉｎ）に基づいて中点補正のためのオフセット値ＯＦＳ１（ａ，ｂ）が推定（取得）される（ステップＳＴ４１７）。
このオフセット推定部９２３で取得されたオフセット値ＯＦＳ１（ａ，ｂ）が第１スイッチ９２８を介してオフセット値ＯＦＳ２（ａ，ｂ）または初期オフセット値ＯＦＳ３（ａ，ｂ）に代えてオフセット減算部９２２１に供給される（ＳＴ４１８）。
以降、ステップＳＴ４１５、ＳＴ４１６、ＳＴ４１７、ＳＴ４１８の処理が繰り返される。
【０１２９】
また、ステップＳＴ４１７のオフセット値ＯＦＳ１（ａ，ｂ）の取得処理の後、書込条件判断部９２６で、時間、補正回数の条件を監視しつつ（ステップＳＴ４１９）、条件に沿った形で記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１にＣＲＣ等を含めて書き込まれ、データ保証用フラグが設定される（ステップＳＴ４２０）。
【０１３０】
以上説明したように、上記した特徴を有する角度位置検出系９２０を備えた本実施形態にロータリエンコーダ１おいては、電源投入（起動時）から所定時間経過した後に正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用することで、実際に経時変化するオフセット値に近づけるのでオフセット誤差を小さくすることができる。
また、オフセット誤差が大きいと正確な角度を算出することができないので、トルク指令値のばたつきが発生するおそれがあるが、起動時よりオフセット値の誤差を少なくできるので、安定した回転、位置制御を実現することができる。
【０１３１】
これに対して、既存のロータリエンコーダにおいては、電源を切るたびに正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のプログラム上のオフセット値が工場出荷初期値に戻ることを前提に構成されている。そのため、オフセットの経時変化（回路基板の応力開放などにより、磁気抵抗素子（ＭＲ素子）の感度が変化する）があると、電源投入のたびにオフセット誤差が大きくなり正確な角度位置を算出することができない。
【０１３２】
図１５は、本実施形態に係る正弦波信号の中点値（中点電位値）のオフセット値を逐次記録し、次回起動時（電源投入直後）にはそのオフセット値を使用する場合の効果を、シミュレーション波形を用いて比較例と対比して説明するための図である。
図１５において、横軸が時間を、縦軸が速度指令値を示し、ＶＴＲがトルク指令値を示している。
図１５（ａ）は比較例を説明するための図であり、図１５（ｂ）は本実施形態に係る効果を説明するための図である。
【０１３３】
比較例である既存のロータリエンコーダにおいては、電源を切るたびに正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のプログラム上のオフセット値が工場出荷初期値に戻ることを前提に構成されている。
そのため、オフセットの経時変化（回路基板の応力開放などにより、磁気抵抗素子（ＭＲ素子）である感磁膜４の感度が変化する）があると、電源投入のたびにオフセット誤差が大きくなり正確な角度位置が算出することができない。
その結果、比較例では、図１５（ａ）に示すように、電源投入直後においてエンコーダ精度劣化によるトルク指令値のばたつきが激しく、時間が経過してから、そのばたつきが改善されていく。
【０１３４】
これに対して、本実施形態においては、電源投入（起動時）から所定時間経過した後に正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用することで、実際に経時変化するオフセット値に近づけるのでオフセット誤差を小さくすることができる。
その結果、本実施形態では、図１５（ｂ）に示すように、電源投入直後においてエンコーダ精度劣化によるトルク指令値のばたつきが大幅に改善され、時間が経過してからもその特性が良好に維持される。
このように、本実施形態によれば、起動直後よりオフセット値の誤差を少なくできるので、安定した回転、位置制御を実現することができる。
【０１３５】
［本実施形態の主な効果］
以上説明したように、本実施形態のロータリエンコーダ１においては、電源投入（起動時）から所定時間経過した後に正弦波信号ｓｉｎ、ｃｏｓの中点値（中点電位値）のオフセット値を逐次記録し、次回起動時にはそのオフセット値を使用することで、実際に経時変化するオフセット値に近づけるのでオフセット誤差を小さくすることができる。
また、オフセット誤差が大きいと正確な角度を算出することができないので、トルク指令値のばたつきが発生するおそれがあるが、起動時よりオフセット値の誤差を少なくできるので、安定した回転、位置制御を実現することができる。
【０１３６】
本実施形態において、上記した温度監視用抵抗膜４７の抵抗値変化に基づいて加熱用抵抗膜４８への給電を制御する温度制御部９１０を有する。
本ロータリエンコーダ１においては、本温度制御により、環境温度によらず磁気抵抗素子（ＭＲ素子）である感磁素子４（感磁膜４１〜４４）のチップ温度を一定値に制御できるので、温度によるオフセットへの影響を小さくすることができる。
したがって、トルク指令値のばたつきの発生を最小限に抑えることができ、さらに安定した回転、位置制御を実現することができる。
【０１３７】
また、書込条件判断部９２６は、電源投入あるいはシステムリセット等の駆動（稼動）を開始するために起動してから短時間の駆動後に取得されたオフセット値ＯＦＳ２（ａ，ｂ）を記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
この場合、書込条件判断部９２６は、たとえば、駆動初期のレベルを把握するため、たとえば１分待ち、回転体であるモータ半回転分のデータ取得に対して平均化することができる。
これにより、加熱用抵抗膜４８による加熱により磁気抵抗素子である感磁膜４の熱的安定のためにある程度の長い時間経過が必要であるが、そこまでの時間を経過させずに起動初期レベルのオフセット値を把握するので、仮に所定時間内（短時間での）に電源投入が繰り返されても、オフセット値の正確性を確保することができる。
【０１３８】
書込条件判断部９２６は、加熱によるオフセット値安定のための所定時間を経過後、オフセット値の取得処理を複数回繰り返して、複数のオフセット値を平均化し、平均化したオフセット値を記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
この場合、たとえば３分待ち、回転体であるモータ、２０回転分のデータ取得に対して平均化することができる。
これにより、所定時間経過させることによって、加熱制御による回路を安定化させることができ、オフセット値を平均化させ正確なオフセット値を算出することができる。
【０１３９】
書込条件判断部９２６は、平均化したオフセット値を記憶部９２４に書き込んだ後、オフセット値の監視を継続し、一定間隔でオフセット値を取得して、記憶部９２４の第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１に書き込む。
この一定間隔は、たとえば１０分あるいはそれよりも長い時間に設定可能である。
これにより、オフセット値を継続的に監視することによって、監視周期時間内での予期せぬ変動にも対応でき、次回起動時のオフセット誤差を小さくすることができる。
また、記憶部９２４としてＥＥＰＲＯＭ等の書き換え回数に制限のある不揮発性メモリを適用した場合にあっても、記憶部を交換することなく、回転体であるモータ等の製品保証寿命内では継続監視ができる。
【０１４０】
この一定間隔は、モータの製品保証寿命年や記憶部の書き込み保証回数を考慮した所定の式を満足する値に設定される。
これにより、記憶部９２４としてＥＥＰＲＯＭ等の書き換え回数に制限のある不揮発性メモリを適用した場合にあっても、記憶部９２４を交換することなく、回転体であるモータ等の製品保証寿命内では継続監視ができる。
【０１４１】
また、本実施形態の記憶部９２４において、データ保証用フラグＦＬＧは、第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１への書き込み処理後に設定される。
これにより、フラグが示す領域のデータは最新かつ保証できるものであると示すことができる。
たとえば、フラグＦＬＧが“１”であり、第１書き込み領域ＷＡＲＡ０に中点値のオフセット値データやＣＲＣ（誤り検出符号）を書き込んでいる途中で電源を落とせば、次の電源投入時にはフラグＦＬＧが“１”のままなので、データが不完全な第１書き込み領域ＷＡＲＡ０のデータは破棄し、第２書き込み領域ＷＡＲＡ１のデータを採用することができる。
【０１４２】
また、本実施形態の読込条件判断部９２７は、記憶部９２４のデータ保証用フラグＦＬＧ（ｏｆｓ ｗｒｉｔｅ ｆｌｇ）の設定データにより第１書き込み領域ＷＡＲＡ０に記憶されたデータまたは第２書き込み領域ＷＡＲＡ１に記憶されたデータのうちいずれの領域のデータが保証されているかを判断する。
そして、読込条件判断部９２７は、保証されている第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１のデータに異常がない場合に保証されている領域のオフセット値データを読み込む。
これにより、データ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１４３】
読込条件判断部９２７は、保証されていると判断した第１書き込み領域ＷＡＲＡ０または第２書き込み領域ＷＡＲＡ１の書き込みデータのＣＲＣ（誤り検出符号）を計算し、計算したＣＲＣと書き込まれているＣＲＣが一致した場合に、保証されている領域のオフセット値データを読み込む。
これにより、ＣＲＣ異常などの異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１４４】
読込条件判断部９２７は、計算したＣＲＣと書き込まれているＣＲＣが一致し、特定領域ＨＬやＨＨに特定データが書き込まれている場合に、保証されている領域のオフセット値データを読み込み、第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する。
また、読込条件判断部９２７は、計算したＣＲＣと書き込まれているＣＲＣが一致しない場合、あるいは特定領域ＨＬやＨＨに特定データが書き込まれていない場合、保証されている領域のオフセット値データに代えて、第２記憶部であるＲＯＭ９２５に記憶されている初期オフセット値を第２スイッチ９２９、第１スイッチ９２８を介して角度位置検出部９２２のオフセット減算部９２２１に供給する。
これにより、ＣＲＣ異常やデータ書き込み失敗などで明らかに異常な中点値のオフセット値データは採用しないようにすることが可能となる。
【０１４５】
また、本実施形態の磁気センサ装置１０では、感磁膜４１〜４４が形成された基板４０に、温度監視用抵抗膜４７および加熱用抵抗膜４８が形成されている。このため、設定温度との温度差や温度変化を温度監視用抵抗膜４７の抵抗値によって監視し、その監視結果に基づいて加熱用抵抗膜４８に給電し、感磁膜４１〜４４を設定温度にまで加熱することができる。
したがって、各感磁膜４１〜４４において、温度変化が発生した際、応力の影響に起因する抵抗変化や、膜質の差に起因する抵抗変化が相違している場合でも、設定温度で高い精度が得られるように、感磁膜４１〜４４の抵抗バランスを設定しておけば、環境温度の変化が発生しても安定した検出精度を得ることができる。すなわち、温度変化が発生しても、図１（ｃ）に示すリサージュ図の原点位置が移動しないので、回転体２の回転角度位置を精度よく検出することができる。
【０１４６】
そして、本実施形態によれば、温度監視用抵抗膜（ＳＥＮＳ）４７の形状がｎ角形（ｎは３以上の整数、ｎが無限大で円形）の直線状または曲線状の弧を複数有するよう形成され、複数の弧（Ｒ１〜Ｒ６）は、同一方向の磁束に対して誘起される電圧の向きが逆になるように互いに直列に接続されている。
このように、温度監視用抵抗膜４７の形状を三角形以上のｎ角形とすることで、磁界による抵抗値変化を抑制でき、精度よく温度検出を行うことができる。
複数の弧が誘起される電圧の向きが逆になるように互いに直列に接続されることから、磁束変化による誘起電圧による誤差を抑制でき、回転磁界中や強弱磁界中においても精度よく温度検出を行うことができ、ひいては回転体２の回転角度位置を精度よく検出することができる。
【０１４７】
また、加熱用抵抗膜４８は、感磁領域４５を囲む閉ループ状に形成されている。このため、感磁領域４５全体を適正に加熱することができる。
【０１４８】
また、平面視で、温度監視用抵抗膜４７は、加熱用抵抗膜４８と感磁領域４５との間に形成されている。このため、温度監視用抵抗膜４７によって感磁領域４５の温度を適正に監視することができる。
【０１４９】
［他の実施形態］
角度位置検出系９２０の読込条件判断部９２７におけるデータの異常を検出する機能として、中点のオフセット値の範囲を設定するように構成することも可能である。データ書き込み失敗などで明らかに異常なオフセット値は採用しないようにする等の構成を採用することも可能である。
【０１５０】
上記実施形態では、２つの電源端子ＶｃｃＡ、ＶｃｃＢを１つにまとめたが、これらを別々に形成してもよい。また、上記実施形態では、２つのグランド端子ＧＮＤＡ、ＧＮＤＢを１つにまとめたが、別々に形成してもよい。
【０１５１】
上記実施形態では、感磁素子４として磁気抵抗素子を例示したが、感磁素子４としてホール素子を構成した場合に本発明を適用してもよい。
【０１５２】
上記実施形態では、帯状に延在する加熱用抵抗膜４８を用いたが、感磁領域４５全体を覆う面状の加熱用抵抗膜４８を形成してもよい。
また、上記実施の形態では、感磁膜４１〜４４、温度監視用抵抗膜４７、および加熱用抵抗膜４８を全て、基板４０の一方面４０ａに形成したが、温度監視用抵抗膜４７および加熱用抵抗膜４８の一方を基板４０の他方面に印刷等の方法で形成してもよい。
【符号の説明】
【０１５３】
１・・・ロータリエンコーダ、２・・・回転体、４・・・感磁素子、１０，１０Ａ〜１０Ｆ・・・磁気センサ装置、４０・・・基板、４１〜４４・・・感磁膜、４７，４７Ｂ〜４７Ｆ・・・温度監視用抵抗膜、４８・・・加熱用抵抗膜、９０・・・制御部、９１０・・・温度制御部、９２０・・・角度位置検出系、９２１・・・ＡＤＣ（アナログデジタル変換器）、９２２・・・角度位置検出部、９２２１・・・オフセット減算部、９２２２・・・角度計算部、９２３・・・オフセット推定部、９２４・・・記憶部、９２５・・・ＲＯＭ（第２記憶部）、９２６・・・書込条件判断部、９２７・・・読込条件判断部、９２８・・・第１スイッチ、９２９・・・第２スイッチ。
【図１】
2015225023.tif 000003
【図２】
2015225023.tif 000004
【図３】
2015225023.tif 000005
【図４】
2015225023.tif 000006
【図５】
2015225023.tif 000007
【図６】
2015225023.tif 000008
【図７】
2015225023.tif 000009
【図８】
2015225023.tif 000010
【図９】
2015225023.tif 000011
【図１０】
2015225023.tif 000012
【図１１】
2015225023.tif 000013
【図１２】
2015225023.tif 000014
【図１３】
2015225023.tif 000015
【図１４】
2015225023.tif 000016
【図１５】
2015225023.tif 000017
【図１６】
2015225023.tif 000018
【図１７】
2015225023.tif 000019