以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.回路装置
図1に本実施形態の回路装置の構成例を示す。回路装置は、駆動回路30と検出回路60と演算処理部150を含む。また制御部140、レジスター部142、出力部144、不揮発性メモリー146を含むことができる。なお、本実施形態の回路装置は図1の構成に限定されず、その構成要素の一部(例えば不揮発性メモリー等)を省略したり、他の構成要素(例えば温度センサー等)を追加するなどの種々の変形実施が可能である。
駆動回路30は、振動片10を駆動する。例えば、振動片10からのフィードバック信号DIを受け、駆動信号DQを出力して、振動片10を振動させる駆動を行う。これにより発振ループが形成されて、振動片10が、駆動信号DQの駆動周波数で振動するようになる。
検出回路60は、振動片10から出力される物理量(例えば角速度)に応じた検出信号IQ1、IQ2に基づいて、物理量に対応する物理量情報(例えば角速度情報)を出力する。例えば検出回路60は、入力された検出信号IQ1、IQ2の増幅を行い、駆動回路30からの同期信号を用いて、増幅後の信号に対する同期検波を行う。そして、同期検波後の信号のA/D変換を行い、物理量情報を出力する。この場合に、検出回路60は、A/D変換後の情報に対して、フィルター処理や補正処理などの信号処理を行って、信号処理後の物理量情報を出力することが望ましい。この物理量情報は例えば物理量のデジタルデータ(例えば角速度のデジタルデータ)である。
演算処理部150は、検出回路60からの物理量情報(角速度情報)に基づいて演算処理を行う。例えば演算処理として、物理量情報に基づく積分処理を行う。或いは後述するように、演算処理として、物理量情報に基づく姿勢演算処理を行ってもよい。そして演算処理部150は、物理量情報に対して演算処理を行うことで得られる情報である演算後物理量情報(回転数情報)を出力する。この演算処理部150は、例えばゲートアレイ等の自動配置配線手法で生成されたロジック回路や、或いはファームウェアー等に基づいて動作するプロセッサー等により実現できる。自動配置配線手法を用いる場合には、例えば演算処理部150や制御部140や後述する検出回路60のDSP部110等は、ゲートアレイ等の自動配置配線手法で一体的に形成できる。
制御部140は各種の制御処理を行う。例えば制御部140は、駆動回路30、検出回路60、演算処理部150の制御処理を行う。またレジスター部142へのアクセス制御や出力部144の制御や不揮発性メモリー146の読み出し制御等を行う。この制御部140は、例えばゲートアレイ等の自動配置配線手法で生成されたロジック回路や、或いはファームウェアー等に基づいて動作するプロセッサー等により実現できる。
レジスター部142は各種の情報が設定されるレジスターを有する。レジスター部142は例えばSRAM等のメモリーやフリップフロップ回路等により実現できる。
出力部144は各種情報を出力する。この出力部144は、外部のデバイスとのインターフェース部(I/F部)として機能するものであり、例えば演算処理部150からの演算後物理量情報を所与の通信方式で出力する。例えば、後述するように、回転数情報等の演算後物理量情報を、シリアルデータ(シリアル通信方式)で出力する。
不揮発性メモリー146は、各種の情報を記憶する不揮発性のメモリーである。不揮発性メモリー146としては、例えば、EEPROMや、EPROMなどを用いることができる。EEPROMとしては、例えばMONOS(Metal-Oxide-Nitride-Oxide-Silicon)型のメモリーを用いることができる。或いはフローティングゲート型などの他のタイプのメモリーであってもよい。またEEPROMはフラッシュメモリーであってもよい。なお不揮発性メモリー146としては種々のものを用いることができ、例えばヒューズを用いたメモリーや半導体以外のメモリーであってもよい。また不揮発性メモリー146を回路装置の内部に設けずに、外部に設けてもよい。
2.時間間隔情報を用いた演算処理
本実施形態では、演算処理部150は、物理量情報と、駆動回路30の駆動周波数により規定される時間間隔情報とに基づいて、演算処理を行って、演算後物理量情報を出力する。例えば演算処理部150は、物理量情報と、駆動回路30の信号に基づき生成された基準クロック信号CKFにより規定される時間間隔情報とに基づいて、演算処理を行う。基準クロック信号CKFは、例えば駆動回路30の駆動周波数をクロック周波数とする信号である。そして演算処理部150は、検出回路60からの物理量情報が角速度情報である場合には、演算後物理量情報として、角度情報を出力する。本実施形態では、この角度情報として回転数情報を出力する。この演算後物理量情報(回転数情報、角度情報)は、出力部144(I/F部)により回路装置の外部に出力される。
また演算処理部150は、演算処理として、物理量情報に基づく積分処理を行う。或いは、演算処理として、物理量情報に基づく姿勢演算処理を行ってもよい。姿勢演算処理は、例えばクォータニオンなどの姿勢情報を用いた演算処理である。
また演算処理部150は、後述するように浮動小数点表現の物理量情報に対して演算処理を行って、固定小数点表現の演算後物理量情報を出力する。例えば検出回路60(DSP部)からは浮動小数点表現の物理量情報が演算処理部150に入力される。演算処理部150は、この浮動小数点表現の物理量情報に対して演算処理を行って、固定小数点表現の演算後物理量情報を出力する。例えば、回転数情報の整数部が固定小数点表現の整数部で表され、回転数情報の小数部が固定小数点表現の小数部で表されるような回転数情報を出力する。この固定小数点表現の回転数情報は、出力部144により外部に出力される。
また演算処理部150は、駆動回路30の駆動周波数に基づき値が設定される演算係数を用いて、演算処理を行う。例えば後述するような演算係数CFを用いて、積分処理等の演算処理を行う。この場合に演算処理部150は、駆動周波数及び物理量情報の設定感度に基づき値が設定される演算係数を用いて、演算処理を行うことが望ましい。具体的には演算処理部150は、駆動周波数の測定結果により規定される時間間隔情報に基づいて、演算処理を行う。例えば製造時等において駆動周波数を測定し、その測定結果により規定される時間間隔情報に基づいて、演算処理を行う。例えば駆動周波数の測定結果により、上記の演算係数を設定し、その演算係数に基づいて時間間隔情報を設定して、演算処理を行う。この場合には、駆動周波数の測定結果に基づき設定された駆動周波数情報は、不揮発性メモリー146に書き込んでおくことが望ましい。そして演算処理部150は、不揮発性メモリー146からの駆動周波数情報により規定される時間間隔情報に基づいて、演算処理を行う。この駆動周波数情報は、駆動周波数によって値が設定される情報であり、一例としては後述する演算係数CFがこの駆動周波数情報に相当する。
例えば図2(A)では、クロック信号生成回路350はCR発振回路360を有し、CR発振回路360により生成された発振信号OSCをバッファー回路BFAによりバッファリングして、クロック信号MCKを出力する。このクロック信号MCKはマスタークロックとなる信号である。即ち、検出回路60(例えばA/D変換回路、DSP部)や制御部140や演算処理部150等は、このクロック信号MCKをマスタークロックとして動作する。
CR発振回路360では、その発振周波数がプロセス変動や環境変動により大きく変動してしまう。例えばCR発振回路360の発振周波数は、CR発振回路360が有するキャパシターの容量値や抵抗素子の抵抗値に基づく時定数CRにより決まるが、これらの容量値や抵抗値には、製造プロセスの変動によるバラツキがある。また、温度が変動すると、抵抗素子の抵抗値や、CR発振回路360を構成するトランジスターのオン抵抗等が変動してしまい、発振周波数も変動する。また電源電圧が変動した場合にも、発振周波数は変動する。このため、図2(A)のようにCR発振回路360だけを用いた単純な構成のクロック信号生成回路350を用いて、クロック信号MCKを生成すると、このクロック信号MCKのクロック周波数もプロセス変動や環境変動により変動してしまう。
例えば検出回路60を、このクロック信号MCKをマスタークロックとして動作させたとする。具体的には、CR発振回路360を用いた回路によりクロック信号MCKを生成して、検出回路60、制御部150等を動作させる。そして駆動回路30の駆動周波数(例えば50KHz〜200KHz)よりも高い周波数で、CR発振回路360を発振させれば、高いクロック周波数(例えば500KHz〜数MHz)のクロック信号MCKで、検出回路60(例えばA/D変換回路、DSP部)や制御部140等を動作させることが可能になる。これにより、例えば検出回路60のA/D変換処理やデジタル信号処理(デジタルフィルター処理、補正処理)を高速化でき、これらの処理を高速に終了させたり、駆動信号の周波数のクロック信号を用いた場合には実現できなかった処理を実現することが可能になる。
しかしながら、このようなクロック信号MCKで検出回路60を動作させると、検出回路60からの物理量情報の出力周期(データレート)も、プロセス変動や環境変動により変動してしまう。例えば、検出回路60は、クロック信号MCKを分周(例えば32〜128分周)した分周クロック信号に基づいて、物理量情報を出力する。即ち、この分周クロック信号の出力周期(データレート)で物理量情報を出力する。
例えば図2(B)では、検出回路60(例えばDSP部)から、物理量情報P1、P2、P3・・・が、出力周期期間TQで出力されている。これらの物理量情報の積分処理を行う場合は、例えばP1×TQ、P2×TQ、P3×TQ・・・を求めて積算する処理を行えばよい。
しかしながら、プロセス変動や環境変動(温度変動、電源電圧変動等)により、クロック信号MCKの周波数が変動すると、出力周期期間TQも、図2(C)、図2(D)に示すように変動してしまう。即ち、出力周期期間TQを規定する上述の分周クロック信号は、クロック信号MCKを分周した信号であるため、プロセス変動や環境変動により、クロック信号MCKの周波数が変動すると、分周クロック信号の周波数も変動し、分周クロック信号の周波数の逆数に相当する出力周期期間TQの長さも変動する。
例えば図2(C)では、出力周期期間TQが短くなっており、この場合には、P1×TQ、P2×TQ、P3×TQ・・・により求められる積分処理の結果は小さくなってしまう。物理量情報が角速度である場合を例にとれば、積分処理の結果である角度が小さくなってしまう。
また図2(D)では、出力周期期間TQが長くなっており、この場合には、P1×TQ、P2×TQ、P3×TQ・・・により求められる積分処理の結果は大きくなってしまう。物理量情報が角速度である場合を例にとれば、積分処理の結果である角度が大きくなってしまう。従って、正確な演算結果を得ることができないという問題がある。
この点、本実施形態では、図2(E)に示すように、駆動回路30の駆動周波数により規定される時間間隔情報を用いて、物理量情報の演算処理を行っている。例えば、この時間間隔情報を時間項(t)として、物理量情報の演算処理を行う。具体的には演算処理部150は、検出回路60からの物理量情報と、駆動回路30の信号に基づき生成された基準クロック信号CKFにより規定される時間間隔情報とに基づいて、例えば積分処理などの演算処理を行う。或いは後述するように姿勢演算処理などの演算処理を行う。そして、演算処理により得られた情報を、演算後物理量情報として出力する。例えば物理量情報が角速度情報である場合には、演算後物理量情報として角度情報(回転数情報)を出力する。
このようにすることで、演算処理部150は、より正確に演算処理された演算後物理量情報(より精度の高い演算後物理量情報)を出力できるようになる。例えば物理量情報が角速度情報である場合には、より正確に積分処理された角度情報(回転数情報)を出力できるようになる。
即ち、基準クロック信号CKFは、駆動回路30の信号に基づき生成されるものであり、駆動回路30の駆動周波数は、CR発振回路360の発振周波数に比べて、プロセス変動や環境変動に起因する周波数変動が非常に小さい。従って、基準クロック信号CKFにより規定される時間間隔情報も、CR発振周波数で時間間隔情報を規定する場合に比べて、プロセス変動や環境変動に起因する変動が非常に小さい。従って、このようにプロセス変動や環境変動に起因する変動が非常に小さい時間間隔情報を用いて、演算処理部150が、物理量情報に対して積分処理や姿勢演算処理などの演算処理を行えば、正確な演算結果を得ることができる。即ち、演算処理部150は、プロセス変動や環境変動に起因する変動が少ない演算後物理量情報を出力できるようになる。例えば物理量情報が角速度情報である場合には、正確な角度情報(回転数情報)を出力することが可能になる。
ここで、駆動回路30の信号に基づき基準クロック信号CKFを生成する場合に、この駆動回路30の信号は、例えば駆動回路30が有する増幅回路(例えば後述の増幅回路32)の出力信号などである。この出力信号は、例えば、その周波数が駆動周波数となる正弦波信号であり、例えば、この正弦波信号と基準電圧とを比較するコンパレーターやバッファー回路などを用いて、基準クロック信号CKFを生成できる。例えば当該コンパレーターの出力信号を第1のバッファー回路でバッファリングした信号が、検出回路60に入力される同期信号(SYC)になり、当該コンパレーターの出力信号を第2のバッファー回路でバッファリングした信号が、基準クロック信号CKFになる。
このようにすれば、駆動回路30の駆動周波数(例えば50KHz〜200KHz)をクロック周波数とする基準クロック信号CKFにより、時間間隔情報を規定して、当該時間間隔情報に基づいて、演算処理部150での演算処理(積分処理、姿勢演算処理)を行うことが可能になる。なお、基準クロック信号CKFの生成手法としては種々の変形実施が可能である。例えば基準クロック信号CKFは、駆動回路30の信号を何らかの形で利用して生成されるものであればよく、例えば駆動周波数と周波数的に同期した信号であればよい。
なお、以上では、CR発振回路360の発振周波数の変動が原因で、物理量情報の出力周期期間TQが変動する場合の状況を例にとり説明したが、本実施形態の適用例は、このような状況には限定されない。即ち、このような発振周波数の変動以外の要因が原因となって、出力周期期間TQが変動するような状況においても、本実施形態の手法を適用することで、積分処理や姿勢演算処理などの各種の演算処理において正確な演算結果を得ることが可能になる。
即ち、本実施形態では、物理量情報と、駆動周波数の測定結果により規定される時間間隔情報とに基づいて、演算処理を行っている。例えば、製造時等において、駆動周波数を実際に測定し、その測定結果により規定される時間間隔情報を用いて、積分処理や姿勢演算処理等の演算処理を行う。具体的には、駆動周波数の測定結果に基づき設定された駆動周波数情報が、不揮発性メモリー146に書き込まれる。この不揮発性メモリー146は回路装置の内部に設けることが望ましいが、回路装置の外部に設けてもよい。そして演算処理部150は、不揮発性メモリー146からの駆動周波数情報(例えば後述する演算係数CF)により規定される時間間隔情報に基づいて、積分処理や姿勢演算処理等の演算処理を行う。
このように、不揮発性メモリー146から読み出された駆動周波数情報を用いて演算処理を行うことで、積分処理や姿勢演算処理などの各種の演算処理において正確な演算結果を得ることが可能になる。具体的には、本実施形態では、駆動回路30の駆動周波数を測定し、この駆動周波数で規定される駆動周波数情報を不揮発性メモリー146に書き込む。例えば、本実施形態の回路装置に対して振動片10(角速度センサー素子)が接続された状態で、駆動回路30の駆動信号の駆動周波数を測定し、測定結果に基づき求められた駆動周波数情報を不揮発性メモリー146に書き込む。例えば、本実施形態の物理量検出装置は、振動片10(物理量トランスデューサー)と、振動片10に接続されて振動片10と共にパッケージに収納される回路装置(半導体チップ)とにより構成されるが、このように振動片10と回路装置が電気的に接続された状態で駆動周波数を測定する。この駆動周波数は、同じ型番の製品であったとしても、振動片10の形状等の物理特性などが要因となって、物理量検出装置の製品ごとにバラツキが生じる。例えば駆動周波数には数KHz程度のバラツキがある。
この点、本実施形態では、このようなバラツキがある駆動周波数を測定して、測定により得られた正確な駆動周波数情報を不揮発性メモリー146に書き込んで、演算処理部150の演算処理に用いている。従って、このようなバラツキの影響を排除した正確な駆動周波数情報に基づき、時間間隔情報を規定して、演算処理を実行できるため、正確な演算結果を得ることができる。
なお、駆動周波数情報は、駆動回路30の駆動周波数そのものであってもよいし、駆動周波数に基づき、その値が設定されるようなパラメーターであってもよい。このようなパラメーターとしては、後述するような演算係数(CF)を想定できる。但し本実施形態の駆動周波数情報は、このような演算係数のパラメーターに限定されるものではない。
次に、基準クロック信号CKFにより規定される時間間隔情報の具体例について説明する。本実施形態では、物理量情報の出力周期期間における基準クロック信号CKFのエッジ数を、時間間隔情報として、演算処理を行っている。ここでエッジ数は、例えば基準クロック信号CKFの立ち上がりエッジ数である。なお、エッジ数は、例えば基準クロック信号CKFの立ち下がりエッジ数であってもよいし、立ち上がりエッジ数と立ち下がりエッジ数を加算処理等したものであってもよい。
例えば図3(A)では、出力周期期間TQにおける、基準クロック信号CKFの例えば立ち上がりエッジ数をカウントし、そのカウント値を時間間隔情報としている。即ち、基準クロック信号CKFのエッジ数で、時間間隔を代用している。
具体的には図3(A)において、検出回路60からの物理量情報は、出力周期期間TQごとに、演算処理部150に入力される。一方、基準クロック信号CKFの周期はTRとなっており、この基準クロック信号CKFと、検出回路60からの物理量情報の出力周期とは非同期である。
そして図3(A)の第1番目の出力周期期間では、出力周期期間内における基準クロック信号CKFの立ち上がりエッジ数は3個となっている。従って、この場合には、この出力周期期間の時間間隔を3×(1/fr)=3×TRと見なす。ここでfrは、基準クロック信号CKFの周波数であり、TRは周期であり、1/fr=TRの関係が成り立つ。
また第2番目の出力周期期間では、出力周期期間内における基準クロック信号CKFの立ち上がりエッジ数は4個となっている。従って、この出力周期期間の時間間隔を4×(1/fr)=4×TRと見なす。
また第3番目の出力周期期間では、出力周期期間内における基準クロック信号CKFの立ち上がりエッジ数は3個となっている。従って、この出力周期期間の時間間隔を3×(1/fr)=3×TRと見なす。
また第4番目の出力周期期間では、出力周期期間内における基準クロック信号CKFの立ち上がりエッジ数は4個となっている。従って、この出力周期期間の時間間隔を4×(1/fr)=4×TRと見なす。
例えば図3(A)の第1番目、第2番目、第3番目、第4番目の出力周期期間の時間間隔(長さ)は、正確には3×TRと4×TRの間の長さであり、例えば3.4×TR程度の長さであるが、本実施形態では、これらの時間間隔を、各々、3×TR、4×TR、3×TR、4×TRと見なしている。
このように、時間間隔をTRの整数倍と見なすことで、この時間間隔の情報を、後述するようなカウンターのカウント値で代用できるようになる。これにより、回路の簡素化や小規模化を実現できる。一方、第1番目、第2番目、第3番目、第4番目の出力周期期間の時間間隔を、各々、3×TR、4×TR、3×TR、4×TRと見なしても、平均的な時間間隔は、(3×TR+4×TR+3×TR+4×TR)/4=3.5×TRになり、実際の時間間隔(3.4×TR程度)に近づく。従って、このように時間間隔をTRの整数倍と見なす演算処理を行っても、長い時間で見た場合の演算処理の結果は、正確な演算結果になる。
また本実施形態では、出力周期期間TQの時間間隔を、プロセス変動や環境変動による周波数変動が極めて小さい基準クロック信号CKFを用いて測定している。従って、図2(C)、図2(D)のように、プロセス変動や環境変動が原因となって出力周期期間TQの時間間隔が変動しても、基準クロック信号CKFを用いて時間間隔を正確に測定できる。従って、当該時間間隔の情報に基づいて演算処理を行うことで、正確な演算結果を得ることができる。即ち、プロセス変動や環境変動があった場合にも、それに起因する変動が最小限に抑えられた演算結果を得ることができる。
例えば、演算処理部150に対して、図4に示すような角速度信号が、入力信号として入力されたとする。図4の角速度信号は、角速度=0であるが、ノイズにより揺らぎが生じている。
図5(A)は、このような角速度信号が入力された場合の演算処理部150の演算結果の例である。即ち、本実施形態の手法を用いた場合の演算結果(角度)である。一方、図5(B)は演算結果の理論値の例である。この理論値は、図3(B)に示すように、ω1×TQ、ω2×TQ、ω3×TQ・・・を積算する積分処理の理想値である。
図5(A)、図5(B)に示すように、本実施形態の手法によれば、理論値に極めて近い演算結果を得ることができる。即ち、図3(A)のように時間間隔をTRの整数倍と見なす演算処理を行っても、結果的には理想値に極めて近い演算結果を出力できる。
また、演算処理部150に対して、図6に示すような角速度信号が、入力信号として入力されたとする。図6の角速度信号は正弦波の信号である。
図7(A)は、このような角速度信号が入力された場合の演算処理部150の演算結果の例であり、図7(B)は理論値の例である。図7(A)、図7(B)に示すように、本実施形態の手法によれば、理論値に極めて近い演算結果を得ることができる。
3.回転数情報の出力
ジャイロセンサー(物理量検出装置)の回路装置が組み込まれる機器においては、回路装置が角速度の情報を出力し、外部のマイコン等の処理装置が、角速度を積分処理することで、角度を求めるのが、一般的である。一方、このような角速度の積分処理を回路装置の内部において行い、1回転未満の回転角度を回路装置が出力するようにすることも可能である。
しかしながら、アプリケーションによっては、1回転未満の回転角度ではなく、検出対象が何回転したのかの情報が必要な場合がある。或いは、何回転したかの情報は重要ではなく、回転角度(回転数の小数部)だけが必要なアプリケーションや、何回転したかの情報と回転角度の両方が必要なアプリケーションも存在する。一例を挙げれば、カメラの手振れ補正の用途では、何回転したのかの情報は一般的に不要であり、最終的な1回転未満の回転角度が必要になる。一方、物体の回転等を検知して運動解析等を行う用途では、何回転したかの情報の方が重要な場合がある。
また、回路装置の出力情報を、外部のマイコン等の処理装置が取り込む場合、出力情報のビット数が多いと、処理装置の取り込み処理の負荷が大きくなってしまう。例えば回路装置が出力情報をシリアルデータで出力する場合には、出力情報のビット数が多いと、処理装置の取り込み期間が長くなってしまい、処理装置の他の処理に悪影響を及ぼす可能性がある。
しかしながら、これまでの回路装置では、その内部で角速度の積分処理を行った場合にも、回路装置が出力する情報は角度情報だけであった。このため、上記のような各種のアプリケーションの用途に応えることができなかった。また、常にビット数が多い角度情報が出力されると、外部の処理装置の取り込み処理の負荷が大きくなったり、取り込み期間が長くなってしまい、他の処理に悪影響を及ぼしてしまうという問題があった。
そこで本実施形態では、角速度を積分処理することで得られる情報を、回転数情報として出力する手法を採用している。例えば回転数情報を、回転数の整数部と小数部に分けて出力する。
具体的には検出回路60は、振動片10(広義には角速度センサー素子)からの検出信号に基づいて、角速度情報を出力し、出力部144は、角速度情報に基づき求められた固定小数点表現の回転数情報を出力する。例えば回転数情報の上位のmビットが整数部となり、下位のnビットが小数部となるような固定小数点表現の回転数情報を出力する。
そして本実施形態では、出力部144は、回転数情報の整数部を、固定小数点表現の整数部として出力可能であり、回転数情報の小数部を、固定小数点表現の小数部として出力可能である。例えば回転数情報の整数部については、固定小数点表現の整数部として出力し、回転数情報の小数部については、固定小数点表現の小数部として出力する。具体的には、回転数情報の整数部を、固定小数点表現の上位のmビットで表記して出力し、回転数情報の小数部を、固定小数点表現の下位のnビットで表記して出力する。なお、出力部144は、回転数情報の整数部と回転数情報の小数部を出力可能であればよく、整数部と小数部の両方を常に出力する必要はない。例えば出力部144は、回転数情報の整数部を出力して、回転数情報の小数部を出力しなかったり、回転数情報の整数部を出力せずに、回転数情報の小数部を出力したり、回転数情報の整数部と小数部の両方を出力するなどの、種々の出力モードで回転数情報を出力可能になっている。
回転数情報の整数部は、例えば検出対象が、整数で何回転したのかを表す情報である。例えば回転数情報の整数部は、1回転、2回転、3回転、4回転・・・における整数1、2、3、4・・・を、固定小数点表現(2進数表現)のmビットで表記した情報である。
一方、回転数情報の小数部は、例えば検出対象の1回転未満の回転数(回転角度)を小数で表した情報である。例えば回転数情報の小数部は、0.1回転、0.2回転、0.3回転、0.4回転・・・における小数0.1、0.2、0.3、0.4・・・を、固定小数点表現(2進数表現)のnビットで表記した情報である。例えば回転数情報の小数部である1回転未満の回転数をrdmとし、固定小数点表現の小数部のnビットの各ビットをb1、b2、b3、b4・・・と表記した場合(b1が上位ビット、b4が下位ビット)に、rdm=b1/2+b2/22+b3/23+b4/24・・・と表すことができる。
図8(A)に、出力部144が出力する回転数情報の出力フォーマットの例を示す。この回転数情報は、n=16ビットの固定小数点表現の整数部REVQ[15:0]と、m=24ビットの固定小数点表現の小数部DEGQ[23:0]を有している。即ち、この回転数情報は、小数部が24ビットとなる符号付き40ビットの固定小数で表されている。そして整数部REVQが、1回転、2回転、3回転、4回転・・・における整数1、2、3、4・・・の回転数を表している。小数部DEGQが、0.1回転、0.2回転、0.3回転、0.4回転・・・における小数0.1、0.2、0.3、0.4・・・の回転数を表している。例えば検出対象が3.5回転したことが検出された場合には、「3.5回転」のうちの「3回転」が整数部REVQで表され、「3.5回転」のうちの「0.5回転」が小数部DEGQで表されることになる。
例えば16ビットの整数部REVQの上位12ビットが全て0であったとする。この場合に、16ビットの整数部REVQの下位4ビットが「0001」であれば、整数部REVQで表される回転数は「1」となり、「0010」であれば、整数部REVQで表される回転数は「2」となり、「0011」であれば、整数部REVQで表される回転数は「3」となる。なお整数部REVQを符号付き整数(2の補数表現)として表記することで、例えば−2回転、−3回転のような負の回転数も表すことができる。
また24ビットの小数部DEGQの下位20ビットが全て0であったとする。この場合に、24ビットの小数部DEGQの上位4ビットが「0001」であれば、小数部DEGQで表される回転数は1/24=1/16となり、上位4ビットが「0010」であれば、小数部DEGQで表される回転数は、1/23=1/8となる。即ち、各々、検出対象が1/16回転、1/8回転したことが検出されたことになる。また上位4ビットが「0100」であれば、小数部DEGQで表される回転数は1/22=1/4となり、上位4ビットが「1000」であれば、小数部DEGQで表される回転数は「1/2」となる。即ち、各々、検出対象が1/4回転、1/2回転したことが検出されたことになる。
また出力部144が出力する回転数情報の小数部DEGQは、1回転未満の回転角度を表す情報となっている。具体的には、回転数情報の小数部DEGQのビット数をnビットとした場合に、nビットで表記される整数に対して、360/2nを乗算したものが、検出回路60からの角速度情報に基づき求められる角度情報となる。この整数を、符号付き整数(2の補数表現)と考えれば(外部の処理装置が解釈すれば)、図8(A)に示すように、小数部DEGQは−180度≦θ<180度の範囲で変化する角度θを表すことになる。また、この整数を、符号なし整数と考えれば、小数部DEGQは0度≦θ<360度の範囲で変化する角度θを表すことになる。
例えば説明の簡素化のために、回転数情報の小数部DEGQのビット数をn=4ビットであると仮定する。
この場合に小数部DEGQ=0001であれば、DEGQで表される回転数は1/24=1/16回転となる。そして小数部DEGQで表される整数は「1」であるため、回転数情報の小数部DEGQは、この整数「1」に対して360/2nを乗算したものになり、1×360/2n=1×360/24=(360/16)度の角度を表すことになる。即ち、1回転が360度であるため、1/16回転に相当する角度が表されていることになる。
また、小数部DEGQ=0010であれば、DEGQで表される回転数は、1/23=1/8回転となる。そして小数部DEGQで表される整数は「2」であるため、回転数情報の小数部DEGQは、この整数「2」に対して360/2nを乗算したものになり、2×360/2n=2×360/24=(360/8)度の角度を表すことになる。即ち、1/8回転に相当する角度が表されていることになる。
同様に小数部DEGQ=0100であれば、小数部DEGQは1/22=1/4回転を表し、DEGQで表される整数は「4」であるため、小数部DEGQは、4×360/2n=4×360/24=(360/4)度の角度を表すことになる。また小数部DEGQ=1000であれば、小数部DEGQは1/2=1/2回転を表し、DEGQで表される整数は「8」であるため、小数部DEGQは、8×360/2n=8×360/24=(360/2)度の角度を表すことになる。
また、小数部DEGQが1111であり、これを符号付きの整数(2の補数表現)と考えれば、小数部DEGQで表される整数は「−1」となる。従って、回転数情報の小数部DEGQは、この整数「−1」に対して360/2nを乗算したものになり、−1×360/2n=−1×360/24=−(360/16)度の角度を表すことになる。即ち、−1/16回転に相当する角度が表されていることになる。
また、小数部DEGQが1110であり、これを符号付きの整数と考えれば、小数部DEGQで表される整数は「−2」となる。従って、回転数情報の小数部DEGQは、この整数「−2」に対して360/2nを乗算したものになり、−2×360/2n=−2×360/24=−(360/8)度の角度を表すことになる。即ち、−1/8回転に相当する角度が表されていることになる。
以上から明らかなように、外部の処理装置は、回路装置から出力される回転数情報の小数部DEGQを、符号なしのnビットの整数として解釈して、この整数に対して360/2nを乗算する処理を行うことで、0度≦θ<360度となる角度θの情報を得ることができる。また、外部の処理装置は、回路装置から出力される回転数情報の小数部DEGQを、符号付きのnビットの整数として解釈して、この整数に対して360/2nを乗算する処理を行うことで、−180度≦θ<180度となる角度θの情報を得ることができる。これにより外部の処理装置の処理の簡素化等を図れ、利便性を向上できる。
また本実施形態では、出力部144は複数の出力モードを有している。例えばレジスター部142のモード切り替えレジスターの設定により、異なる出力モードで回転数情報を出力できるようになっている。
そして、これらの複数の出力モードは、出力部144が回転数情報の整数部REVQを出力し、且つ出力部144が回転数情報の小数部DEGQを出力する第1の出力モードを含むことができる。即ち、モード切り替えレジスターにより第1の出力モードが設定されると、出力部144は、回転数情報の整数部REVQと小数部DEGQの両方を出力する。
また複数の出力モードは、出力部144が回転数情報の整数部REVQを出力し、且つ出力部144が回転数情報の小数部DEGQを出力しない第2の出力モードを含んでもよい。即ち、モード切り替えレジスターにより第2の出力モードが設定されると、出力部144は、回転数情報の整数部REVQは出力するが、小数部DEGQは出力しない。
また複数の出力モードは、出力部144が回転数情報の整数部REVQを出力せずに、且つ出力部144が回転数情報の小数部DEGQを出力する第3の出力モードを含んでもよい。即ち、モード切り替えレジスターにより第3の出力モードが設定されると、出力部144は、回転数情報の小数部DEGQは出力するが、整数部REVQは出力しない。
また複数の出力モードは、回転数情報の小数部DEGQのビット数が削減されて出力部144により出力される第4の出力モードを含んでもよい。例えば上述の第1の出力モードや第3の出力モードでは、nビットのビット数の小数部DEGQが出力部144により出力されるが、第4の出力モードでは、ビット数がnビットから削減されて、kビット(k<n)の小数部DEGQが出力される。
なお、本実施形態では、複数の出力モードは、上記の第1、第2、第3、第4の出力モードのうちの少なくとも2つの出力モードを含めばよい。即ち、出力部144の出力モードは、上記の第1、第2、第3、第4の出力モードの全てを含む必要はない。例えば複数の出力モードとして、第1の出力モードと第2の出力モードだけを設けたり、第1の出力モードと第3の出力モードだけを設けたり、第2の出力モードと第3の出力モードだけを設けてもよい。或いは、第4の出力モードと、第1、第2、第3の出力モードのいずれかだけを設けてもよい。このように複数の出力モードの内容としては種々の変形実施が可能である。
図8(B)に、上述の複数の出力モードを切り替えるモード切り替えレジスターの例を示す。このモード切り替えレジスターはレジスター部142に設けられ、例えば外部のマイコン等の処理装置によりアクセスされて、所望の内容に設定可能になっている。
例えばモード切り替えのレジスターQCA[1:0]が(00)に設定されると、出力部144の出力モードは第1の出力モードに設定される。これにより出力部144は、図8(A)の回転数情報の整数部REVQ[15:0]と、小数部DEGQ[23:0]の両方を出力する。
具体的には第1の出力モードでは、出力部144は、5バイトの回転数情報を出力し、1バイト目に、上位ビット側の整数部REVQ[15:8]を出力し、2バイト目に、下位ビット側の整数部REVQ[7:0]を出力する。また3バイト目に、上位ビット側の小数部DEGQ[23:16]を出力し、4バイト目に、上位ビット側と下位ビット側の間の小数部DEGQ[15:8]を出力し、5バイト目に、下位ビット側の小数部DEGQ[7:0]を出力する。
またレジスターQCA[1:0]が(11)に設定されると、出力部144の出力モードは第2の出力モードに設定される。これにより出力部144は、回転数情報の整数部REVQ[15:0]だけを出力し、小数部DEGQ[23:0]は出力しないようになる。
具体的には第2の出力モードでは、出力部144は、2バイトの回転数情報を出力し、1バイト目に、上位ビット側の整数部REVQ[15:8]を出力し、2バイト目に、下位ビット側の整数部REVQ[7:0]を出力する。
またレジスターQCA[1:0]が(10)に設定されると、出力部144の出力モードは第3の出力モードに設定される。これにより出力部144は、回転数情報の小数部DEGQ[23:0]だけを出力し、整数部REVQ[15:0]は出力しないようになる。
具体的には第3の出力モードでは、出力部144は、3バイトの回転数情報を出力し、1バイト目に、上位ビット側の小数部DEGQ[23:16]を出力し、2バイト目に、上位ビット側と下位ビット側の間の小数部DEGQ[15:8]を出力し、3バイト目に、下位ビット側の小数部DEGQ[7:0]を出力する。
またレジスターQCA[1:0]が(01)に設定されると、出力部144の出力モードは第4の出力モードに設定される。これにより回転数情報の小数部DEGQのビット数が削減されて出力部144により出力される。
具体的には、第4の出力モードでは、出力部144は、2バイトの回転数情報を出力し、1バイト目に、小数部DEGQ[23:16]を出力し、2バイト目に小数部DEGQ[15:8]を出力する。
即ち、第3の出力モードでは、3バイトの回転数情報が出力され、下位ビット側の小数部DEGQ[7:0]も出力されていた。これに対して、第4の出力モードでは、読み出しバイト数が3バイトから2バイトに削減されて、下位ビット側の小数部DEGQ[7:0]は出力されないようになる。
以上のようにすれば、回転数情報の整数部REVQと小数部DEGQの両方を必要とする第1のアプリケーションに対しては、出力モードを第1の出力モード(00)に設定することで、その要望に応えることができる。
例えば第1のアプリケーションでは、外部の処理装置が、回転数情報の整数部REVQを用いて、検出対象(車体、カメラ等)の回転数(整数の回転数)を特定する。また小数部DEGQを用いて、1回転未満の回転角度を特定する。即ち、図8(A)で説明したように、小数部DEGQ[23:0]で表される整数に360×2n=360×224を乗算することで、回転角度を求めて特定する。この第1の出力モードでは、回転数情報の読み出しバイト数は多くなるが、外部の処理装置は、回転数と1回転未満の回転角度の両方を有する詳細な回転数情報を得ることが可能になる。
また、回転数情報の整数部REVQは必要とするが、小数部DEGQは必要としない第2のアプリケーションに対しては、出力モードを第2の出力モード(11)に設定することで、その要望に応えることができる。
例えば第2のアプリケーションでは、外部の処理装置が、回転数情報の整数部REVQを用いて、検出対象の回転数だけを特定する。例えば、検出対象が何回転したのかの情報だけが必要であり、回転角度については不要な第2のアプリケーションでは、このように第2の出力モードに設定することで、回転数情報の読み出しバイト数を削減できる。即ち、第1の出力モードでは5バイトであった読み出しバイト数を、第2の出力モードでは2バイトに削減できる。従って、外部の処理装置の回転数情報の取り込み処理の負荷を軽減でき、取り込み期間も短くできるため、回転数情報の取り込み処理が他の処理に与える悪影響を低減できる。
また、回転数情報の小数部DEGQは必要とするが、整数部REVQは必要としない第3のアプリケーションに対しては、出力モードを第3の出力モード(10)に設定することで、その要望に応えることができる。
例えば第3のアプリケーションでは、外部の処理装置が、回転数情報の小数部DEGQを用いて、検出対象の1回転未満の回転角度だけを特定する。例えば、検出対象の1回転未満の回転角度の情報だけが必要であり、何回転したのかの情報については不要な第3のアプリケーションでは、このように第3の出力モードに設定することで、回転数情報の読み出しバイト数を削減できる。即ち、第1の出力モードでは5バイトであった読み出しバイト数を、第3の出力モードでは3バイトに削減できる。従って、外部の処理装置の回転数情報の取り込み処理の負荷の軽減や取り込み期間の短縮化を図れ、取り込み処理が他の処理に与える悪影響を低減できる。
また、回転数情報の小数部DEGQは必要とするが、小数部DEGQの精度についてはそれほど必要としない第4のアプリケーションに対しては、出力モードを第4の出力モード(01)に設定することで、その要望に応えることができる。
例えば第4のアプリケーションでは、外部の処理装置が、第1の出力モードや第3の出力モードに比べて、ビット数が削減された回転数情報の小数部DEGQを用いて、検出対象の回転角度を特定する。例えば第1、第3の出力モードでは、小数部DEGQのビット数が24ビットになっているが、第4の出力モードでは、小数部DEGQのビット数が24ビットから16ビットに削減されている。即ち、下位ビット側のビットが削減されている。回転角度の精度をそれほど必要としない第4のアプリケーションにおいては、このように小数部DEGQのビット数が削減されても、その要望に応えることができる。そして、このように第4の出力モードに設定することで、第1、第3の出力モードでは3バイトであった小数部DEGQのバイト数を、2バイトに削減できる。従って、外部の処理装置の回転数情報の取り込み処理の負荷の軽減や取り込み期間の短縮化を図れ、取り込み処理が他の処理に与える悪影響を低減できる。
このように本実施形態の回転数情報の出力手法によれば、角速度の積分処理により得られた情報が、回転数情報として出力されると共に、回転数情報が、整数部REVQと小数部DEGQに分けて出力されるため、外部の処理装置の各アプリケーションに対応した最適な出力形態での情報の出力が可能になる。
図9(A)、図9(B)にレジスター部142が有するレジスターの例を示す。本実施形態ではレジスター部142は、回転数情報(広義には演算後物理量情報。以下、同様)を格納する情報レジスターを含む。そして制御部140は、読み出しコマンドにより、情報レジスターから回転数情報(演算後物理量情報)を読み出す処理を行う。また、リセットコマンドにより、演算処理部150の積分処理部156(図11(A)参照)を初期状態にリセットする処理を行う。例えば、積分処理部156の積分器をリセットして、積分器が保持している積分値(例えば角度変位)を初期値(例えば0)にリセットする。
なお、読み出しコマンドにより回転数情報(演算後物理量情報)が読み出された場合に、演算処理部150の積分処理部156(積分器)を初期状態にリセットする処理を行ってもよい。例えば、回転数情報が読み出された後に、積分処理部156の積分器をリセットして、積分器が保持している積分値を初期値にリセットする。
例えば図9(A)において、アドレスADXのレジスターMCTLは、演算処理部150の設定レジスターである。アドレスADYのレジスターRDAGは、回転数情報(演算後物理量情報)を格納する情報レジスターである。アドレスADZのレジスターAGRSは、積分処理部156のリセットを指示するレジスターである。
外部の処理装置は、演算処理部150により演算された回転数情報を読み出す場合には、図9(A)のアドレスADYを指定して、レジスターRDAGの回転数情報の読み出しを指示する。これにより、出力部144は、図8(A)で説明した回転数情報を、後述する図10(A)、図10(B)に示すようにシリアルデータで出力するようになる。具体的には、外部の処理装置が、図10(A)、図10(B)のA0〜A6により図9(A)のアドレスADYを指定することで、読み出しコマンドが発行される。すると、制御部140は、アドレスADYのレジスターRDAGから回転数情報を読み出す。これにより、外部の処理装置は、振動片10により検出された角速度情報を積分処理することで得られた回転数情報を、回路装置から読み出すことができる。
また、外部の処理装置は、演算処理部150の積分処理部156を初期状態にリセットしたい場合には、図9(A)のアドレスADZを指定することで、積分処理部156のリセットを指示する。具体的には、外部の処理装置が、図10(A)、図10(B)のA0〜A6により図9(A)のアドレスADZを指定することで、リセットコマンドが発行される。すると、制御部140は、例えばリセット信号を用いて、積分処理部156を初期状態にリセットする。このようにすれば、外部の処理装置は、例えば検出対象が静止している基準姿勢状態で、リセットコマンドを発行して、積分処理部156をリセットし、その後に検出対象が所与の角速度で回転した場合に、基準姿勢状態からの検出対象の回転数情報(回転角度情報)などを得ることが可能になる。
なお、この場合に、図9(A)のレジスターRDAGから情報が読み出されるごとに、積分処理部156を初期状態にリセットしてもよい。例えば後述するクォータニオンなどの姿勢情報では、角度変位(角度の微小変化量)だけが必要な場合がある。このような場合には、角度情報である回転数情報を読み出すごとに、積分処理部156のリセットを行えば、出力部144からは、角度変位(Δθ)が出力されるようになる。これにより、外部の処理装置は、当該角度変位を用いて、クォータニオンなどの姿勢情報を用いた姿勢演算処理を実行できるようになり、利便性を向上できる。
図9(B)は、図9(A)のアドレスADXの演算処理部150の設定レジスターMCTLの詳細を示す図である。
例えば図9(B)に示すアドレスADXのビット2、1のレジスターQCA[1:0]は、図8(B)で説明した回転数情報の出力モードのモード切り替えレジスターである。このレジスターQCA[1:0]の設定により、図8(B)で説明した第1、第2、第3、第4の出力モードの設定が可能になる。
またアドレスADXのビット0のレジスターENBAGは、演算処理部150の動作イネーブルの設定レジスターである。レジスターENBAGが1に設定されると、演算処理部150の動作がイネーブルになり、レジスターENBAGが0に設定されると、演算処理部150の動作がディスイネーブルになる。
図10(A)、図10(B)は出力部144の通信方式の一例を示す説明図である。図10(A)、図10(B)では、出力部144はシリアルの通信方式で情報を出力しており、シリアルの通信方式としてSPI(4線SPI等)を用いている。なお通信方式は、これに限定されず、例えばI2Cなどの様々な通信方式を採用できる。
図10(A)、図10(B)において、XSSはスレーブセレクト、SCLKはシリアル通信用のクロック、MOSIはシリアルデータ入力、MISOはシリアルデータ出力である。MOSIの「R」は読み出しコマンドであることを表し、A0〜A6はレジスターのアドレス指定を表す。例えば回路装置から回転数情報(角度情報)を読み出す場合には、A0〜A6により図9(A)のアドレスADYを指定する。図10(A)は16ビットのデータ読み出しの例であり、図10(B)は24ビットのデータ読み出しの例である。
例えば図8(B)の第1の出力モードや第2の出力モードでの整数部REVQ[15:0]や、第4の出力モードでの小数部DEGQ[23:8]は、図10(A)に示すように16ビットのデータ読み出しにより読み出される。
一方、第1の出力モードや第3の出力モードでの小数部DEGQ[23:0]は、図10(B)に示すように24ビットのデータ読み出しにより読み出される。
例えば図8(B)の第1の出力モードでは、図10(A)による整数部REVQ[15:0]の読み出しと、図10(B)による小数部DEGQ[23:0]の読み出しが必要になる。これに対して、第2の出力モードでは、図10(A)による整数部REVQ[15:0]の読み出しだけで済み、第3の出力モードでは、図10(B)による小数部DEGQ[23:0]の読み出しだけで済む。従って、第2、第3の出力モードでは、第1の出力モードに比べて、外部の処理装置の読み出し処理の負荷の低減や、読み出し期間の短縮化等を図れるようになる。
また第4の出力モードでは、図10(A)による小数部DEGQ[23:8]の読み出しだけで済む。従って、第4の出力モードでは、例えば第3の出力モード等に比べて、外部の処理装置の読み出し処理の負荷の低減や、読み出し期間の短縮化等を図れるようになる。
4.演算処理部の構成
図11(A)に演算処理部150の構成例を示す。なお、本実施形態の演算処理部150は図11(A)の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
図11(A)の演算処理部150は、カウンター154と乗算処理部155を含む。そして、カウンター154は、検出回路60からの角速度情報QG(広義には物理量情報。以下、同様)の出力周期に同期する信号DRYによりリセットされる。そして、基準クロック信号CKFに基づく信号CTCKによりカウント動作を行う。
乗算処理部155は、検出回路60からの角速度情報QG(物理量情報)と、カウンター154からのカウント値CNTとに基づく乗算処理を行う。更に具体的には、乗算処理部155は、駆動回路30の駆動周波数に基づき値が設定される演算係数CF(広義には駆動周波数情報)が入力され、検出回路60からの角速度情報QG(物理量情報)と、カウンター154からのカウント値CNTと、演算係数CFとに基づく乗算処理を行う。
また図11(A)の演算処理部150は、カウントクロック生成回路152と積分処理部156を含む。カウントクロック生成回路152は、基準クロック信号CKFと、クロック信号MCKが入力されて、カウントクロック信号CTCKを出力する。このカウントクロック信号CTCKは、基準クロック信号CKFに基づく信号である。
積分処理部156は、乗算処理部155の乗算結果QM(例えば角度変位)を受けて、乗算結果QMについての積分処理を行う。これにより角速度情報QGの積分処理が実現される。そして積分処理部156は、回転数情報QHを出力する。この回転数情報QHは、固定小数点表現の整数部REVQと小数部DEGQを有する。
図11(B)は図11(A)の演算処理部150の動作説明図である。本実施形態では、演算処理部150は、角速度情報QGの出力周期期間(TQ)における基準クロック信号CKFのエッジ数を、時間間隔情報として、演算処理を行っている。図11(A)のカウンター154は、このエッジ数をカウントするためのカウンターである。即ち、カウンター154は、カウントクロック生成回路152からのカウントクロック信号CTCKに基づいてカウント動作を行い、カウント値CNTを出力する。またカウンター154には、信号DRY(データレディー信号)が入力され、信号DRYがアクティブになると、カウンター154が保持しているカウント値CNTがリセットされる。
信号DRYは、演算処理部150の前段の検出回路60(DSP部)のデータレディー信号である。例えば検出回路60から角速度情報QG(角速度のデジタルデータ)が出力されるごとに、図11(B)に示すように信号DRYがアクティブ(Hレベル)になる。即ち、検出回路60からの角速度情報QGの出力周期期間(TQ)ごとに、信号DRYがアクティブになり、カウンター154のカウント値CNTが初期値である0にリセットされる。
例えば図11(B)の第1番目の出力周期期間では、カウント値がCNT=3までカウントされた後、信号DRYにより0にリセットされている。第2番目の出力周期期間では、カウント値がCNT=4までカウントされた後、信号DRYにより0にリセットされている。第3番目の出力周期期間では、カウント値がCNT=3までカウントされた後、信号DRYにより0にリセットされている。カウンター154がこのように動作することで、図3(A)で説明したように、各出力周期期間での基準クロック信号CKFのエッジ数(立ち上がりのエッジ数)をカウントし、このエッジ数をカウント値CNTとして、乗算処理部155に出力できる。これにより演算処理部150は、基準クロック信号CKFのエッジ数に対応するカウント値CNTを、時間間隔情報として、演算処理を行うことが可能になる。
即ち、図3(A)の第1番目の出力周期期間の時間間隔に相当する3×(1/fr)=3×TRの「3」が、図11(B)の第1番目の出力周期期間のカウント値CNT=3に対応する。図3(A)の第2番目の出力周期期間の時間間隔に相当する4×(1/fr)=4×TRの「4」が、図11(B)の第2番目の出力周期期間のカウント値CNT=4に対応する。図3(A)の第3番目の出力周期期間の時間間隔に相当する3×(1/fr)=3×TRの「3」が、図11(B)の第3番目の出力周期期間のカウント値CNT=3に対応する。
乗算処理部155が、角速度情報QGに対して、このようなカウント値CNTを乗算する処理を行うことで、駆動回路30の駆動周波数により規定される時間間隔情報に基づく演算処理が実現される。具体的には、カウント値CNTを時間間隔情報とした演算処理が実現される。
また、演算係数CFは、後述するように駆動回路30の駆動周波数に基づき値が設定される係数となっている。更に具体的には、駆動周波数及び角速度情報の設定感度に基づき値が設定される係数となっている。乗算処理部155が、角速度情報QGに対して、このような演算係数CFを乗算する処理を行うことで、駆動回路30の駆動周波数により規定される時間間隔情報に基づく演算処理が実現される。
図12は、カウントクロック生成回路152、乗算処理部155、積分処理部156の詳細な構成例である。なお、カウントクロック生成回路152、乗算処理部155、積分処理部156は図12の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
カウントクロック生成回路152は、フリップフロップ回路DF1、DF2、DF3、インバーター回路IV1、NOR回路NR1を含む。フリップフロップ回路DF1、DF2、DF3のクロック端子には、マスタークロックとなるクロック信号MCKが入力される。フリップフロップ回路DF1のデータ端子には基準クロック信号CKFが入力される。フリップフロップ回路DF2のデータ端子にはフリップフロップ回路DF1の出力信号が入力され、フリップフロップ回路DF3のデータ端子にはフリップフロップ回路DF2の出力信号が入力される。NOR回路NR1は、フリップフロップ回路DF2の出力信号をインバーター回路IV1で反転した信号と、フリップフロップ回路DF3の出力信号が入力されて、カウントクロック信号CTCKを出力する。
即ち、本実施形態の演算処理部150は、マスタークロックとなるクロック信号MCKに基づき動作する。このクロック信号MCKは、例えばCR発振回路を含むクロック信号生成回路により生成される。一方、基準クロック信号CKF(水晶ジャイロクロック信号)は、駆動回路30からの信号に基づき生成される信号であり、クロック信号MCKとは非同期の信号である。このため、カウントクロック生成回路152は、クロックの乗り換えを行った後、基準クロック信号CKFの立ち上がりエッジを検出し、当該立ち上がりエッジでアクティブになるパルス信号のカウントクロック信号CTCKを生成する。カウンター154は、このカウントクロック信号CTCKに基づいて、カウント値CNTのカウントアップ動作を行う。そしてカウンター154のカウント値CNTは、角速度情報QGのデータレート(信号DRYに同期)でリセットされる。これにより、図11(B)で説明したように、角速度情報QGのデータレートの1周期(TQ)に含まれる、基準クロック信号CKFの立ち上がりエッジ数が、カウント値CNTとしてカウントされるようになる。
乗算処理部155は乗算器MLA、MLBを含む。なお、乗算処理部155に1つの乗算器だけを設けて、時分割に乗算処理を行ってもよい。この乗算処理部155は、角速度情報QG(ジャイロ信号)に対して、上記の立ち上がりエッジ数に対応するカウント値CNTと、演算係数CF(定数)を乗算する処理を行う。これによりデータレートの時間間隔での角度変位(Δθ)を算出する。この角度変位は、角速度(QG)と時間間隔との乗算処理により求められるものである。そして、時間間隔は、カウント値CNTと演算係数CFにより設定される。
なお、カウントクロック生成回路152やカウンター154の構成を省略し、カウント値CNTを用いずに、演算係数CFにより時間間隔を設定して、上記の乗算処理を行ってもよい。
乗算処理部155に入力される演算係数CFは、例えば下式(1)のように表される。
上式(1)において、SENは設定感度(LSB/dps)を表し、fxtは振動片10(水晶振動片)の駆動周波数(Hz)を表す。具体的には、設定SENは、物理量検出装置(ジャイロセンサー)の仕様(設計値)として設定される角速度の感度である。即ち、設定感度SENは、例えばSEN=300(LSB/dps)というように、製品の仕様として一意に決定されている。またfxtは、回路装置と振動片10を接続した状態で測定される駆動周波数である。即ち、fxtは駆動周波数の測定結果に基づき設定されるものである。なお
演算係数CFは、上式(1)に限定されず、例えば上式(1)に所定の定数を乗算した係数などの種々の変形実施が可能である。
このように本実施形態では、駆動回路30の駆動周波数(fxt)と角速度(物理量情報)の設定感度(SEN)に基づき値が設定される演算係数CFを用いて、演算処理部150の演算処理(乗算処理)が行われる。そして、この演算係数CFの設定に用いられる駆動周波数(fxt)は、駆動周波数の測定結果に基づき設定されるものである。具体的には、本実施形態では、上式(1)の演算係数CFが、駆動周波数情報(駆動周波数に基づきその値が設定される情報)として、不揮発性メモリー146に書き込まれる。そして演算処理部150は、不揮発性メモリー146から、駆動周波数情報として演算係数CFを読み出し、この駆動周波数情報により規定される時間間隔情報に基づいて、演算処理を行う。
駆動回路30の駆動周波数には、設計値に対してバラツキが生じる。例えば駆動周波数の設計値(50KHz〜200KHz)に対してバラツキが発生する。そして本実施形態では、演算処理部150の演算処理における時間間隔情報は駆動周波数により規定されるため、駆動周波数にバラツキがあると、演算結果にもバラツキが発生してしまう。例えば、検出対象が実際には10度だけ回転しているのに、駆動周波数にバラツキがあると、演算処理部150の演算結果である回転角度は10度にはならず、10度からずれた角度になってしまう。
この点、本実施形態では、振動片10と回路装置が接続された状態で駆動周波数が測定され、上式(1)に示すように、測定された駆動周波数(fxt)に基づき演算係数CF(広義には駆動周波数情報)が求められ、不揮発性メモリー146に記憶される。そして演算処理部150は、この不揮発性メモリー146から読み出された演算係数CFに基づいて演算処理を行う。従って、演算処理に用いられる時間間隔情報が、測定された駆動周波数(fxt)に基づき規定されるようになるため、駆動周波数にバラツキがある場合にも、演算処理部150は、より正確な演算結果を出力できるようになる。
また検出回路60が検出する角速度に対しては、後述する図14のDSP部110により感度補正が行われており、角速度の感度が、設計値である設定感度になるように補正されている。この設定感度の値は、物理量検出装置の製品によって異なる場合があり、この設定感度を考慮せずに、演算処理部150が積分処理等の演算処理を行うと、正確な演算結果を得ることができない。
この点、本実施形態では、上式(1)に示すように、設定感度SENに基づき演算係数CFが求められ、演算処理部150は、この演算係数CFに基づいて演算処理を行う。従って、検出回路60から出力される角速度の感度に応じた演算係数CFで、演算処理を行うことが可能になる。例えば設定感度SENが300(LSB/dps)である場合には、検出回路60から出力される角速度の感度も300(LSB/dps)に設定されており、上式(1)のように設定感度SENが分母に設定される演算係数CFを、検出回路60からの角速度に乗算することで、感度に依存しない正確な演算結果を得ることが可能になる。
積分処理部156は、浮動小数積分器160(浮動小数積算器)、固定小数積分器164(固定小数積算器)を含む。また検出器162、固定小数変換部166、レジスター168、169を含むことができる。
浮動小数積分器160は、浮動小数点形式の角度変位(Δθ=ω×t)を積算し、角度を算出する。ここで浮動小数点演算の精度を落とさずに積算を行うためには、浮動小数積分器160の出力の値を常に小さな値(例えば2−16以下)にすることが望ましい。そこで、浮動小数積分器160の出力の値が、一定値を越すと、その分を減算する処理を行う。例えば検出器162が、浮動小数積分器160の出力の値が例えば2−16を越えたと判断すると、例えば「+1」の大きさの減算量を積分結果(出力値)から減算する処理が行われ、その減算量に対応する加算量「+1」を、別の固定小数積分器164に加算する処理が行われる。固定小数への変換もこのタイミングで行う。同様に、浮動小数積分器160の出力の値が例えば2−15を越えたと判断されると、例えば「+2」の大きさの減算量を積分結果から減算する処理が行われ、その減算量に対応する加算量「+2」を固定小数積分器164に加算する処理が行われる。2−14、2−13、2−12、2−11を越えた場合の減算量及び加算量は、各々、「+4」、「+8」、「+16」、「+32」となる。
そして、固定小数積分器164の出力等が、レジスター168、レジスター169を介して、回転数情報の整数部REVQ、小数部DEGQとして出力される。
なお、図12では、微小角度成分(下位8ビット)に関しては、上記の固定小数積分器164を介さずに、浮動小数点表現の浮動小数積分器160の出力を、直接に変換している。例えば浮動小数の指数部が示す値が2−15である場合には、8ビット目を1とし、下位7ビットとして浮動小数の仮数部の上位7ビットを出力することで、固定小数への変換を行う。この変換は固定小数変換部166が行い、得られた8ビットの固定小数はレジスター169に出力される。同様に、浮動小数の指数部が示す値が2−14である場合には、8、7ビット目を0、1にして、下位6ビットとして浮動小数の仮数部の上位6ビットを出力することで、固定小数への変換を行う。
以上のように図12では演算処理部150は、浮動小数点表現の角速度情報QG(物理量情報)に対して演算処理を行って、固定小数点表現の回転数情報QH(演算後物理量情報)を出力している。この固定小数点表現の回転数情報QH(角度情報)は、整数部REVQと小数部DEGQにより構成されている。
5.姿勢演算
以上では演算処理部150が行う演算処理が、角速度等の物理量情報に基づく積分処理である場合を例にとり説明したが、本実施形態はこれに限定されない。演算処理部150が行う演算処理は、物理量情報に基づく姿勢演算処理であってもよい。
このような姿勢演算処理としては、下式(2)に示すようなクォータニオンを用いた演算処理などが考えられる。
クォータニオンは、回転軸(ベクトル部)と回転角(スカラー部)よりなる4成分で3次元空間の回転等を表現するものである。例えば上式(2)において、q
0がスカラー部を表し、(q
1、q
2、q
3)がベクトル部を表す。このクォータニオンは四元数と呼ばれる。クォータニオン表現によれば、オイラー角による回転表現で生じるような特異点が存在しないという利点があるため、3次元空間での姿勢演算処理等に広く用いられている。
微少時間Δtでの、クォータニオンの各成分の変化量Δq0、Δq1、Δq2、Δq3は、各軸の角速度ω1、ω2、ω3を用いて、下式(3)、(4)、(5)、(6)に示す演算処理により求められる。
演算処理部150は、物理量情報である角速度に基づく姿勢演算処理として、例えば上式(3)、(4)、(5)、(6)に示す演算処理を行う。即ち、角速度情報(ω
1、ω
2、ω
3)と時間間隔情報(Δt)に基づいて、クォータニオンを更新する演算処理を行い、検出対象の姿勢演算処理を実現する。例えば演算処理部150は、上式(3)、(4)、(5)、(6)の演算処理を実現する演算回路を有し、この演算回路に設けられる積分器(積算器)には、角速度情報と時間間隔情報に基づき求められた角度変位成分(Δθ
1、Δθ
2、Δθ
3)が入力される。上式(3)、(4)、(5)、(6)のクォータニオンの更新式は微少時間で定義され、なるべく速い速度で更新を行うことが、誤差の低減に効果がある。
6.電子機器、ジャイロセンサー、回路装置の詳細な構成
図13に、本実施形態の回路装置20、この回路装置20を含むジャイロセンサー510(広義には物理量検出装置)、このジャイロセンサー510を含む電子機器500の詳細な構成例を示す。
なお回路装置20、電子機器500、ジャイロセンサー510は図13の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。また本実施形態の電子機器500としては、デジタルカメラ、ビデオカメラ、スマートフォン、携帯電話機、カーナビゲーションシステム、ロボット、生体情報検出装置、ゲーム機、時計、健康器具、或いは携帯型情報端末等の種々の機器を想定できる。また以下では、物理量トランスデューサー(角速度センサー素子)が圧電型の振動片(振動ジャイロ)であり、センサーがジャイロセンサーである場合を例にとり説明するが、本発明はこれに限定されない。例えばシリコン基板などから形成された静電容量検出方式の振動ジャイロや、角速度情報と等価な物理量や角速度情報以外の物理量を検出する物理量トランスデューサー等にも本発明は適用可能である。
電子機器500は、ジャイロセンサー510と処理部520を含む。またメモリー530、操作部540、表示部550を含むことができる。CPU、MPU等で実現される処理部520(外部の処理装置)は、ジャイロセンサー510等の制御や電子機器500の全体制御を行う。また処理部520は、ジャイロセンサー510により検出された角速度情報(広義には物理量)に基づいて処理を行う。例えば角速度情報に基づいて、手ぶれ補正、姿勢制御、GPS自律航法などのための処理を行う。メモリー530(ROM、RAM等)は、制御プログラムや各種データを記憶したり、ワーク領域やデータ格納領域として機能する。操作部540はユーザーが電子機器500を操作するためのものであり、表示部550は種々の情報をユーザーに表示する。
ジャイロセンサー510(物理量検出装置)は、振動片10と回路装置20を含む。振動片10(広義には物理量トランスデューサー、角速度センサー素子)は、水晶などの圧電材料の薄板から形成される圧電型振動片である。具体的には、振動片10は、Zカットの水晶基板により形成されたダブルT字型の振動片である。
回路装置20は、駆動回路30、検出回路60、制御部140、レジスター部142、出力部144、不揮発性メモリー146、演算処理部150を含む。なお、これらの構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
駆動回路30は、駆動信号DQを出力して振動片10を駆動する。例えば振動片10からフィードバック信号DIを受け、これに対応する駆動信号DQを出力することで、振動片10を励振させる。検出回路60は、駆動信号DQにより駆動される振動片10から検出信号IQ1、IQ2(検出電流、電荷)を受け、検出信号IQ1、IQ2から、振動片10に印加された物理量に応じた所望信号(コリオリ力信号)を検出(抽出)する。
振動片10は、基部1と、連結腕2、3と、駆動腕4、5、6、7と、検出腕8、9を有する。矩形状の基部1に対して+Y軸方向、−Y軸方向に検出腕8、9が延出している。また基部1に対して−X軸方向、+X軸方向に連結腕2、3が延出している。そして連結腕2に対して+Y軸方向、−Y軸方向に駆動腕4、5が延出しており、連結腕3に対して+Y軸方向、−Y軸方向に駆動腕6、7が延出している。なおX軸、Y軸、Z軸は水晶の軸を示すものであり、各々、電気軸、機械軸、光学軸とも呼ばれる。
駆動回路30からの駆動信号DQは、駆動腕4、5の上面に設けられた駆動電極と、駆動腕6、7の側面に設けられた駆動電極に入力される。また駆動腕4、5の側面に設けられた駆動電極と、駆動腕6、7の上面に設けられた駆動電極からの信号が、フィードバック信号DIとして駆動回路30に入力される。また検出腕8、9の上面に設けられた検出電極からの信号が、検出信号IQ1、IQ2として検出回路60に入力される。なお検出腕8、9の側面に設けられたコモン電極は例えば接地される。
駆動回路30により交流の駆動信号DQが印加されると、駆動腕4、5、6、7は、逆圧電効果により矢印Aに示すような屈曲振動(励振振動)を行う。即ち、駆動腕4、6の先端が互いに接近と離間を繰り返し、駆動腕5、7の先端も互いに接近と離間を繰り返す屈曲振動を行う。このとき駆動腕4、5と駆動腕6、7とが、基部1の重心位置を通るY軸に対して線対称の振動を行っているので、基部1、連結腕2、3、検出腕8、9はほとんど振動しない。
この状態で、振動片10に対してZ軸を回転軸とした角速度が加わると(振動片10がZ軸回りで回転すると)、コリオリ力により駆動腕4、5、6、7は矢印Bに示すように振動する。即ち、矢印Aの方向とZ軸の方向とに直交する矢印Bの方向のコリオリ力が、駆動腕4、5、6、7に働くことで、矢印Bの方向の振動成分が発生する。この矢印Bの振動が連結腕2、3を介して基部1に伝わり、検出腕8、9が矢印Cの方向で屈曲振動を行う。この検出腕8、9の屈曲振動による圧電効果で発生した電荷信号が、検出信号IQ1、IQ2として検出回路60に入力される。ここで、駆動腕4、5、6、7の矢印Bの振動は、基部1の重心位置に対して周方向の振動であり、検出腕8、9の振動は、矢印Bとは周方向で反対向きの矢印Cの方向での振動である。このため、検出信号IQ1、IQ2は、駆動信号DQに対して位相が90度だけずれた信号になる。
例えば、Z軸回りでの振動片10(ジャイロセンサー)の角速度をωとし、質量をmとし、振動速度をvとすると、コリオリ力はFc=2m・v・ωと表される。従って検出回路60が、コリオリ力に応じた信号である所望信号を検出することで、角速度ωを求めることができる。そして求められた角速度ωを用いることで、処理部520は、手振れ補正、姿勢制御、或いはGPS自律航法等のための種々の処理を行うことができる。
なお図13では、振動片10がダブルT字型である場合の例を示しているが、本実施形態の振動片10はこのような構造に限定されない。例えば音叉型、H型等であってもよい。また振動片10の圧電材料は、水晶以外のセラミックスやシリコン等の材料であってもよい。
図14に回路装置の駆動回路30、検出回路60の詳細な構成例を示す。
駆動回路30は、振動片10からのフィードバック信号DIが入力される増幅回路32と、自動ゲイン制御を行うゲイン制御回路40と、駆動信号DQを振動片10に出力する駆動信号出力回路50を含む。また同期信号SYCを検出回路60に出力する同期信号出力回路52を含む。なお、駆動回路30の構成は図14に限定されず、これらの構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
増幅回路32(I/V変換回路)は、振動片10からのフィードバック信号DIを増幅する。例えば振動片10からの電流の信号DIを電圧の信号DVに変換して出力する。この増幅回路32は、演算増幅器、帰還抵抗素子、帰還キャパシターなどにより実現できる。
駆動信号出力回路50は、増幅回路32による増幅後の信号DVに基づいて、駆動信号DQを出力する。例えば駆動信号出力回路50が、矩形波(又は正弦波)の駆動信号を出力する場合には、駆動信号出力回路50はコンパレーター等により実現できる。
ゲイン制御回路40(AGC)は、駆動信号出力回路50に制御電圧DSを出力して、駆動信号DQの振幅を制御する。具体的には、ゲイン制御回路40は、信号DVを監視して、発振ループのゲインを制御する。例えば駆動回路30では、ジャイロセンサーの感度を一定に保つために、振動片10(駆動用振動片)に供給する駆動電圧の振幅を一定に保つ必要がある。このため、駆動振動系の発振ループ内に、ゲインを自動調整するためのゲイン制御回路40が設けられる。ゲイン制御回路40は、振動片10からのフィードバック信号DIの振幅(振動片の振動速度v)が一定になるように、ゲインを可変に自動調整する。このゲイン制御回路40は、増幅回路32の出力信号DVを全波整流する全波整流器や、全波整流器の出力信号の積分処理を行う積分器などにより実現できる。
同期信号出力回路52は、増幅回路32による増幅後の信号DVを受け、同期信号SYC(参照信号)を検出回路60に出力する。この同期信号出力回路52は、正弦波(交流)の信号DVの2値化処理を行って矩形波の同期信号SYCを生成するコンパレーターや、同期信号SYCの位相調整を行う位相調整回路(移相器)などにより実現できる。
また同期信号出力回路52は基準クロック信号CKFを演算処理部150に出力する。例えば同期信号出力回路52は、正弦波の信号DVの2値化処理を行うコンパレーターを含む。そして、例えばコンパレーターの出力信号を第1のバッファー回路でバッファリングした信号が同期信号SYCになり、コンパレーターの出力信号を第2のバッファー回路でバッファリングした信号が基準クロック信号CKFとなる。これにより基準クロック信号CKFと同期信号は例えば周波数が同じ信号になる。なお、同期信号SYCの生成用の第1のコンパレーターと、基準クロック信号CKFの生成用の第2のコンパレーターを設けてもよい。
また図14では図示していないが、A/D変換回路100、DSP部110、制御部140、演算処理部150等のマスタークロックとなるクロック信号MCKを生成するクロック信号生成回路が、回路装置20には設けられる。このクロック信号生成回路は、例えばCR発振回路などを利用してクロック信号MCKを生成するが、本実施形態はこれに限定されるものではない。
検出回路60は、増幅回路61、同期検波回路81、フィルター部90、A/D変換回路100、DSP部110を含む。増幅回路61は、振動片10からの第1、第2の検出信号IQ1、IQ2を受けて、電荷−電圧変換や差動の信号増幅やゲイン調整などを行う。同期検波回路81は、駆動回路30からの同期信号SYCに基づいて同期検波を行う。フィルター部90(ローパスフィルター)は、A/D変換回路100の前置きフィルターとして機能する。またフィルター部90は、同期検波によっては除去しきれなかった不要信号を減衰する回路としても機能する。A/D変換回路100は、同期検波後の信号のA/D変換を行う。DSP部110はA/D変換回路100からのデジタル信号に対してデジタルフィルター処理やデジタル補正処理などのデジタル信号処理を行う。デジタル補正処理としては、例えばゼロ点補正処理や感度補正処理などがある。
なお、例えば振動片10からの電荷信号(電流信号)である検出信号IQ1、IQ2は、電圧信号である駆動信号DQに対して位相が90度遅れる。また増幅回路61のQ/V変換回路等において位相が90度遅れる。このため、増幅回路61の出力信号は駆動信号DQに対して位相が180度遅れる。従って、例えば駆動信号DQ(DV)と同相の同期信号SYCを用いて同期検波することで、駆動信号DQに対して位相が90度遅れた不要信号等を除去できるようになる。
制御部140は、回路装置20の制御処理を行う。この制御部140は、ロジック回路(ゲートアレイ等)やプロセッサー等により実現できる。回路装置20での各種のスイッチ制御やモード設定等はこの制御部140により行われる。
7.DC成分除去部
図14に示すように検出回路60には、DC成分除去部112が設けられる。具体的にはDC成分除去部112は、例えば検出回路60のDSP部110に設けられている。そしてDC成分除去部112は、物理量情報(角速度情報等)のDC成分を抽出し、物理量情報からDC成分(オフセット成分)を除去する処理を行う。そして演算処理部150は、DC成分が除去された物理量情報(角速度情報等)に基づいて、上述した種々の演算処理を行う。
即ち、演算処理部150では、角速度情報等の物理量情報の積分処理を行う。従って、物理量情報にDC成分が残っていると、これが積算されて、正確な演算結果を得ることができなくなる。
この点、本実施形態では、検出回路60にはDC成分除去部112が設けられ、DC成分除去部112は、物理量情報のDC成分を抽出して、物理量情報からDC成分を除去する処理を行う。従って、演算処理部150では、DC成分が除去された物理量情報の積分処理等が行われるようになるため、DC成分を除去しない場合に比べて、正確な演算結果を出力できるようになる。
図15にDC成分除去部112の構成例を示す。このDC成分除去部112は、ノイズ推定部310とカルマンフィルター320と減算器321を含む。
ノイズ推定部310は、物理量信号PI(物理量情報)を入力信号(入力データ)として受けて、その入力信号PIに応じて動的に変化する観測ノイズσmeas及びシステムノイズσsysを推定する。具体的には、ノイズ推定部310は、入力信号PIから観測ノイズσmeas及びシステムノイズσsysを生成し、入力信号PIの値又はその変化に応じて観測ノイズσmeas及びシステムノイズσsysを変化させる。
カルマンフィルター320は、観測ノイズσmeas及びシステムノイズσsysに基づいてカルマンフィルター処理を行って、入力信号PIのDC成分DCQを抽出する。減算器321は、入力信号PIからDC成分DCQを減算し、出力信号PQを出力する。カルマンフィルター処理とは、観測値及びシステムの状態を表す変数にノイズ(誤差)が含まれると仮定し、過去から現在までに取得した観測値を用いてシステムの最適な状態を推定する処理である。図15では、観測値は物理量信号PI(物理量情報)であり、推定する変数はDC成分DCQである。具体的には、観測更新(観測過程)と時間更新(予測過程)を繰り返し行って状態を推定する。観測更新は、観測値と時間更新の結果を用いてカルマンゲイン、推定値、誤差共分散を更新する過程である。時間更新は、観測更新の結果を用いて、次の時刻での推定値、誤差共分散を予測する過程である。
一般的なカルマンフィルターでは、誤差共分散の初期値及びシステムノイズを既知のものとして予め与えておく。誤差共分散は観測更新や時間更新により値が更新されていく。このように、一般的なカルマンフィルターでは、更新の繰り返しの途中で新たに観測ノイズやシステムノイズが外部から与えられるものではない。
一方、図15では、観測ノイズσmeas及びシステムノイズσsysを動的に変化させ、カルマンフィルター320に外部から供給する。観測ノイズσmeas及びシステムノイズσsysはカルマンゲインg(k)等の内部変数に影響を与える。即ち、観測ノイズσmeas及びシステムノイズσsysを制御することでカルマンフィルター320のフィルター特性を制御できることを意味している。図15では、これを利用することで、物理量信号PIのDC成分が変化していないときには通過帯域を低周波数にしておき、信号成分の通過帯域を低周波側に広げることができる。また、DC成分が変化したときには観測ノイズσmeas及びシステムノイズσsysを変化させて通過帯域を広げ、DC成分の変化に追従させることができる。このようにして、物理量信号PIの変化に対する過渡応答性や、DC成分の変化に対する追従性を向上できる。
具体的には、ノイズ推定部310は、入力信号PIに基づいて観測ノイズσmeasを推定し、その推定した観測ノイズσmeasに対してゲイン処理を行うことで、システムノイズσsysを推定する。
このようにすれば、入力信号PIに応じて観測ノイズσmeas及びシステムノイズσsysを動的に変化させることができ、カルマンフィルター320の特性を入力信号PIに応じて制御できる。また、ゲイン処理のゲインを変更することでシステムノイズσsysを調整できるので、それによってカルマンフィルター320を所望の特性となるように制御することが可能である。
より具体的には、ノイズ推定部310は、カルマンフィルター320の収束状態におけるローパスフィルター動作のターゲットカットオフ周波数に基づいて設定されるゲインにより、観測ノイズσmeasに対してゲイン処理を行う。
カルマンフィルター320が動作を開始してから十分に時間が経過すると、カルマンゲイン等の内部変数が一定値に収束し、カルマンフィルター320はローパスフィルター特性を含むフィルター特性に収束する。この収束状態において、ローパスフィルターのカットオフ周波数fcは、ゲインGA1により決定される。逆に言えば、所望のカットオフ周波数fcが得られるようにゲインGA1を設定しておくことで、カルマンフィルター320が収束状態となったときに、その所望のカットオフ周波数fcのローパスフィルター特性を得ることができる。
図15ではカルマンフィルター320を用いることで、収束状態において例えば0.1mHz程度の非常に低いカットオフ周波数を得ることができる。これにより、角速度等の物理量情報である物理量信号PIから、非常に低周波数の成分のみをDC成分DCQとして抽出でき、そのDC成分DCQを減算することで、DC成分の除去処理を実現できる。
なお、DC成分を除去する手法は図15の手法に限定されるものでなく、例えば図15とは異なる手法のデジタル信号処理でDC成分を除去したり、アナログ処理によりDC成分を除去するなどの種々の変形実施が可能である。
8.移動体、電子機器
図16(A)に本実施形態の回路装置20を含む移動体の例を示す。本実施形態の回路装置20は、例えば、車、飛行機、バイク、自転車、或いは船舶等の種々の移動体に組み込むことができる。移動体は、例えばエンジンやモーター等の駆動機構、ハンドルや舵等の操舵機構、各種の電子機器を備えて、地上や空や海上を移動する機器・装置である。図16(A)は移動体の具体例としての自動車206を概略的に示している。自動車206には、振動片10と回路装置20を有するジャイロセンサー510(センサー)が組み込まれている。ジャイロセンサー510は車体207の姿勢を検出することができる。ジャイロセンサー510の検出信号は車体姿勢制御装置208に供給される。車体姿勢制御装置208は例えば車体207の姿勢に応じてサスペンションの硬軟を制御したり個々の車輪209のブレーキを制御したりすることができる。その他、こういった姿勢制御は二足歩行ロボットや航空機、ヘリコプター等の各種の移動体において利用されることができる。姿勢制御の実現にあたってジャイロセンサー510は組み込まれることができる。
図16(B)、図16(C)に示すように、本実施形態の回路装置はデジタルスチルカメラや生体情報検出装置(ウェアラブル健康機器。例えば脈拍計、歩数計、活動量計等)などの種々の電子機器に適用できる。例えばデジタルスチルカメラにおいてジャイロセンサーや加速度センサーを用いた手ぶれ補正等を行うことができる。また生体情報検出装置において、ジャイロセンサーや加速度センサーを用いて、ユーザーの体動を検出したり、運動状態を検出できる。また図16(D)に示すように、本実施形態の回路装置はロボットの可動部(アーム、関節)や本体部にも適用できる。ロボットは、移動体(走行・歩行ロボット)、電子機器(非走行・非歩行ロボット)のいずれも想定できる。走行・歩行ロボットの場合には、例えば自律走行に本実施形態の回路装置を利用できる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(物理量情報、演算後物理量情報、角速度センサー素子、物理量検出装置等)と共に記載された用語(角速度情報、角度情報・回転数情報、振動片、ジャイロセンサー等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、回路装置や物理量検出装置や電子機器や移動体の構成、振動片の構造等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。