(57)【特許請求の範囲】
【請求項１】
複数のデジタル磁気データからなる母集団に基づいて前記デジタル磁気データのオフセットを導出するとともに前記デジタル磁気データと前記オフセットとに基づいて方位を導出するプロセッサに前記デジタル磁気データを出力する３軸磁気センサであって、
３軸の磁気成分を所定周期で検出するとともに前記３軸の磁気成分を表すアナログ磁気データを出力する検出ユニットと、
前記アナログ磁気データを前記デジタル磁気データに変換するＡＤ変換ユニットと、
前記母集団を蓄積するためのバッファメモリと、
前記デジタル磁気データ同士の距離に応じて前記デジタル磁気データを前記母集団とするか否かを判定し、前記母集団としての前記デジタル磁気データを前記バッファメモリに格納するとともに、前記母集団を前記プロセッサから要求されると前記バッファメモリから前記母集団を読み出して出力する論理回路と、
を備える３軸磁気センサ。
【請求項２】
前記バッファメモリに蓄積された前記母集団が規定数になると休止する、
請求項１に記載の３軸磁気センサ。
【請求項３】
前記論理回路は、前記デジタル磁気データを前記母集団として前記バッファメモリに格納すると前記所定周期を短縮し、前記デジタル磁気データを前記母集団として前記バッファメモリに格納しない場合には前記所定周期を延長する、
請求項１または２に記載の３軸磁気センサ。
【請求項４】
請求項１から３のいずれか一項に記載の３軸磁気センサと、
前記プロセッサと、
を備える電子コンパス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は３軸磁気センサおよび電子コンパスに関し、特に磁気センサのキャリブレーションに関する。
【背景技術】
【０００２】
従来、磁気センサによって地磁気を検出して方位を計測する電子コンパスが車載型ナビゲーションシステムや携帯電話に備えられている。磁気センサの出力に基づいて地磁気の方向又は大きさを特定するとき、着磁による測定誤差を打ち消すために磁気センサの出力を補正するキャリブレーションと呼ばれる補正処理が必要である。この補正処理の操作値はオフセットと呼ばれている。オフセットは磁気センサが検出している車両や携帯電話等の着磁による磁力成分を表すベクトルデータであって、磁気センサの出力である磁気データからオフセットが引き算されることによって測定誤差が打ち消される。３軸磁気センサでは磁気データ群が分布する球面の中心を求めることによって、オフセットを導出することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２４０２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
常に正確なオフセットを保持しようとすれば、電子コンパスの制御プログラムを常時起動し、オフセットを導出するための母集団となる磁気データ群をメモリに常時蓄積しておく必要がある。しかし、電子コンパスの制御プログラムを常時起動しておくと、ＣＰＵやメモリといった大規模な電子回路を動作させる電力を必要以上に消費するという問題がある。一方、ユーザーの要求に応じて電子コンパスの制御プログラムを起動すれば消費電力を抑制できるものの、起動してから正確なオフセットが得られるまでに相応の時間がかかるため、ユーザーが必要とするタイミングに正確な方位を計測できないという問題がある。
【０００５】
本発明はこのような問題を解決するために創作されたものであって、消費電力を抑制しつつユーザーが必要とするタイミングに正確な方位を計測できる電子コンパスを実現することを目的の１つとする。
【課題を解決するための手段】
【０００６】
（１）上記目的を達成するための３軸磁気センサは、複数のデジタル磁気データからなる母集団に基づいて前記デジタル磁気データのオフセットを導出するとともに前記デジタル磁気データと前記オフセットとに基づいて方位を導出するプロセッサに前記デジタル磁気データを出力する３軸磁気センサであって、３軸の磁気成分を所定周期で検出するとともに前記３軸の磁気成分を表すアナログ磁気データを出力する検出ユニットと、前記アナログ磁気データを前記デジタル磁気データに変換するＡＤ変換ユニットと、前記母集団を蓄積するためのバッファメモリと、前記デジタル磁気データ同士の距離に応じて前記デジタル磁気データを前記母集団とするか否かを判定し、前記母集団としての前記デジタル磁気データを前記バッファメモリに格納するとともに、前記母集団を前記プロセッサから要求されると前記バッファメモリから前記母集団を読み出して出力する論理回路と、を備える。
【０００７】
本発明によると、キャリブレーションの母集団を３軸磁気センサ自体で蓄積できるため、電子コンパスの制御プログラムを常時起動しておかなくても、ユーザーが必要とするタイミングにプロセッサはキャリブレーションに必要な母集団を取得することができる。したがって本発明によると、消費電力を抑制しつつユーザーが必要とするタイミングに正確な方位を計測できる電子コンパスを実現することができる。また本発明によると、デジタル磁気データ同士の距離に基づいてキャリブレーションに必要な母集団が選定されるため、正確なオフセットを導出するために必要な母集団を小容量のバッファメモリに効率よく蓄積することができる。なお、ここでいう論理回路はシーケンサを含むものとする。またデジタル磁気データ同士の距離とは３軸の磁気成分を各軸の座標成分とする３次元座標空間における距離である。
【０００８】
（２）上記目的を達成するための３軸磁気センサは、前記バッファメモリに蓄積された前記母集団が規定数になると休止してもよい。
本発明によると、電子コンパスの消費電力をさらに抑制することができる。
【０００９】
（３）上記目的を達成するための３軸磁気センサにおいて、前記論理回路は、前記デジタル磁気データを前記母集団として前記バッファメモリに格納すると前記所定周期を短縮し、前記デジタル磁気データを前記母集団として前記バッファメモリに格納しない場合には前記所定周期を延長してもよい。
本発明によると、電子コンパスの消費電力をさらに抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態にかかるブロック図。
【図２】本発明の実施形態にかかるシーケンスチャート。
【図３】本発明の実施形態にかかる波形図。
【図４】本発明の実施形態にかかるシーケンスチャート。
【図５】本発明の実施形態にかかる波形図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を添付図面を参照しながら説明する。尚、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
１．第一実施形態
図１は本発明の一実施形態としての電子コンパスを示すブロック図である。この電子コンパス１００はプロセッサ３と、３軸磁気センサ１と、加速度センサ２と、ディスプレイ７とを備えている。プロセッサ３は、ＣＰＵ３１、ＲＡＭ３２、ＲＯＭ３３およびインターフェース（Ｉ／Ｆ）３４を備える。磁気センサ１と、加速度センサ２と、ディスプレイ７とはバスを介してＩ／Ｆ３４に接続され、プロセッサ３によって制御される。磁気センサ１はプロセッサ３にデジタル磁気データを出力する。プロセッサ３は複数のデジタル磁気データに基づいてデジタル磁気データのオフセットを導出し、デジタル磁気データとオフセットとに基づいて方位を導出する。導出された方位はディスプレイ７に表示される。プロセッサ３のこれらの機能はＣＰＵ３１がＲＯＭ３３に格納されている電子コンパスプログラムを実行することによって実現される。以下、キャリブレーションにおいてオフセットを導出する基礎となる複数のデジタル磁気データを母集団というものとする。
【００１２】
磁気センサ１は半導体チップであって、通信ユニット１１、電源ユニット１２、クロックユニット１３、制御ユニット１４、センサモジュール１５およびバッファメモリ１６を含む集積回路を構成している。センサモジュール１５は３軸の磁気成分をそれぞれ検出する３つの１次元磁気センサとセレクタとを含むセンサユニット１５２と、アナログデジタル変換器（ＡＤＣ）１５１とを備えている。センサユニット１５２からは３軸の磁気成分を表すアナログ磁気データがセレクタによって時分割出力される。図示しない１軸磁気センサは、いずれも磁気抵抗素子、ホール素子等で構成され、指向性のある１軸磁気センサであればどのようなものであってもよい。ＡＤＣ１５１は、センサユニット１５２から出力されるアナログ磁気データをデジタル磁気データに変換する。アナログ磁気データとは３軸の磁気成分をアナログ信号で表すデータであって、デジタル磁気データとは３軸の磁気成分をデジタル信号で表すデータである。制御ユニット１４はレジスタ群と論理回路とで構成されている。バッファメモリ１６は、制御ユニット１４によって母集団として選定された複数のデジタル磁気データを記憶するための小容量の記憶回路である。通信ユニット１１はバスから命令を取得して制御ユニット１４のレジスタに書き込み、制御ユニット１４から出力されるデジタル磁気データをバスに出力する。クロックユニット１３は磁気センサ１を構成する各種回路のうちのデジタル回路へクロックを供給する回路である。なお、制御ユニット１４および通信ユニット１１は請求項に記載の"論理回路"に相当する。
【００１３】
電源ユニット１２は磁気センサ１を構成する各種のアナログ回路とデジタル回路に電源を供給する。磁気センサ１においては、センサユニット１５２およびＡＤＣ１５１の一部がアナログ回路として構成されている。電源ユニット１２からアナログ回路およびデジタル回路への電源供給は制御ユニット１４によって個別に制御される。磁気センサ１の動作モードには休止モード、蓄積モードおよび出力モードが含まれる。休止モードではアナログ回路への電源供給が遮断され、クロックユニット１３からデジタル回路へのクロック供給が停止する。
【００１４】
図２は電子コンパス１００の作動を示すシーケンスチャートである。以下、図２に基づいて電子コンパス１００の機能を詳細に説明する。磁気センサ１は休止モードから蓄積モードまたは出力モードで起動する。
【００１５】
プロセッサ３が磁気センサ１に対して蓄積要求を出力すると（Ｓ１０１）、磁気センサ１は蓄積モードで起動する。具体的には、蓄積要求がプロセッサ３から出力されると通信ユニット１１が蓄積要求をバスから取得して制御ユニット１４のレジスタに蓄積要求を書き込む（Ｓ２０１）。すると制御ユニット１４はクロックユニット１３にクロックの供給を開始させるとともに電源ユニット１２からアナログ回路への電源供給を開始させる（Ｓ２０２）。なお、加速度センサ２が閾値以上の加速度を検出したり、電子コンパス１００がユーザーから何らかの指示を受け付けることが、プロセッサ３から蓄積要求を出力させるトリガとなる。すなわち何らかの割り込みがプロセッサ３に発生することによってプロセッサ３から蓄積要求が出力され得る。
【００１６】
磁気センサ１が蓄積モードで起動すると、制御ユニット１４はセンサユニット１５２およびＡＤＣ１５１を所定の周期で間欠的に動作させることによってセンサモジュール１５に磁気を間欠的に検出させ（Ｓ２０３）、デジタル磁気データを間欠的に取得する（Ｓ２０４）。具体的には、磁気センサ１においてクロックユニット１３と制御ユニット１４のカウンタだけが動作している状態が継続した後にカウンタがあらかじめ設定した値にカウントアップする度にセンサモジュール１５が極めて短い時間だけ作動して制御ユニット１４のレジスタにデジタル磁気データが格納される。
【００１７】
制御ユニット１４はデジタル磁気データを取得すると、取得したデジタル磁気データを母集団としてバッファメモリ１６に格納するか否かを判定する（Ｓ２０５）。具体的には、バッファメモリ１６に母集団として格納されているデジタル磁気データとセンサモジュール１５から取得するデジタル磁気データとの距離に応じて、センサモジュール１５から取得したデジタル磁気データを母集団とするか否が判定される。センサモジュール１５から取得するデジタル磁気データとの距離が閾値と比較されるデジタル磁気データは、最後にバッファメモリ１６に格納されたデジタル磁気データであってもよいし、バッファメモリ１６に蓄積されている全てのデジタル磁気データのうちでセンサモジュール１５から取得するデジタル磁気データとの距離が最も短いものであってもよい。
【００１８】
ここで２つのデジタル磁気データをＰ１（ｘ１、ｙ１、ｚ１）、Ｐ２（ｘ２、ｙ２、ｚ３）とし、Ｄ１、Ｄ２、Ｄ３を次のように定義する。ただしＭＡＸ（ａ，ｂ，ｃ）はａ、ｂ、ｃのうち最大の値を意味する。
Ｄ１＝（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２＋（ｚ１−ｚ２）２
Ｄ２＝｜ｘ１−ｘ２｜＋｜ｙ１−ｙ２｜＋｜ｚ１−ｚ２｜
Ｄ３＝ＭＡＸ（｜ｘ１−ｘ２｜，｜ｙ１−ｙ２｜，｜ｚ１−ｚ２｜）
【００１９】
Ｄ１、Ｄ２、Ｄ３はいずれもＰ１、Ｐ２の距離と正の相関を有する関数である。制御ユニット１４の回路規模を小さくするためには、母集団としてデジタル磁気データを選定する指標として、Ｐ１、Ｐ２の距離そのものを採用するかわりにＰ１、Ｐ２の距離と正の相関を有するＤ１、Ｄ２、Ｄ３を採用することが好ましい。
【００２０】
そして予め決めた閾値ＤよりもＤ１、Ｄ２またはＤ３が大きい場合にはセンサモジュール１５から取得したデジタル磁気データを母集団としてバッファメモリ１６に格納し（Ｓ２０６）、そうでない場合にはセンサモジュール１５から取得したデジタル磁気データをバッファメモリ１６に格納しない。
【００２１】
デジタル磁気データが母集団としてバッファメモリ１６に格納された場合、制御ユニット１４は十分な数の母集団がバッファメモリ１６に蓄積されたか否かを判定する（Ｓ２０８）。すなわち、制御ユニット１４はデジタル磁気データをバッファメモリ１６に格納した回数をカウントし、その回数が予め決めた母集団数に達したか否かを判定する。
【００２２】
十分な数の母集団がバッファメモリ１６に格納された場合、制御ユニット１４はクロックユニット１３からデジタル回路へのクロックの供給を停止させるとともに電源ユニット１２からアナログ回路に供給される電源をグランドに落として磁気センサ１を休止させる（Ｓ２０９）。
【００２３】
デジタル磁気データが母集団としてバッファメモリ１６に格納されない場合と、デジタル磁気データを母集団としてバッファメモリ１６に格納しても母集団数が十分でない場合、Ｓ２０３から上述の処理が繰り返される。
【００２４】
次に母集団が磁気センサ１から出力される出力モードについて説明する。例えばプロセッサ３が電子コンパスプログラムの実行を開始し（Ｓ１０２）、電子コンパスプログラムの起動にともなってプロセッサ３がキャリブレーションを開始することがプロセッサ３から母集団要求を出力させるトリガとなる。プロセッサ３が磁気センサ１に対して母集団要求を出力すると（Ｓ１０３）、磁気センサ１は出力モードで起動する。具体的には、母集団要求がプロセッサ３から出力されると通信ユニット１１が母集団要求をバスから取得して制御ユニット１４のレジスタに母集団要求を書き込む（Ｓ２１０）。すると制御ユニット１４はクロックユニット１３にクロックの供給を開始させるとともに電源ユニット１２からアナログ回路への電源供給を開始させる（Ｓ２１１）。
【００２５】
出力モードで磁気センサ１が起動すると、制御ユニット１４は母集団として蓄積されているデジタル磁気データをバッファメモリ１６から順次取得して通信ユニット１１に出力する（Ｓ２１２）。通信ユニット１１はデジタル磁気データを取得する毎にデジタル磁気データをバスに出力する（Ｓ２１３）。バスに出力されたデジタル磁気データはＲＡＭ３２の所定アドレスに格納されることによってプロセッサ３によって取得される。プロセッサ３はこのように母集団として取得する複数のデジタル磁気データに基づいてデジタル磁気データのオフセットを導出するキャリブレーションを実施する。このようなキャリブレーションによってオフセットが導出されると、デジタル磁気データとオフセットとに基づいて正確な方位を導出する準備が整う。
【００２６】
本実施形態では電子コンパスプログラムが起動するとき既に母集団が磁気センサ１に蓄積されているため、電子コンパスプログラムの起動直後に即座にオフセットを導出できる。したがって電子コンパスプログラムの起動直後から正確な方位を導出することができる。すなわち、電子コンパスの機能が必要とされない期間中であっても母集団を蓄積するためにのみ電子コンパスプログラムを実行する必要がないため、プロセッサ３の消費電力を抑制することができる。
【００２７】
出力モードにおいて磁気センサ１が母集団を出力した後、制御ユニット１４はセンサユニット１５２およびＡＤＣ１５１を所定の周期で間欠的に動作させることによってセンサモジュール１５に磁気を間欠的に検出させ（Ｓ２１４）、デジタル磁気データを間欠的に取得する（Ｓ２１５）。具体的には、磁気センサ１においてクロックユニット１３と制御ユニット１４のカウンタだけが動作している状態が継続した後にカウンタがあらかじめ設定した値にカウントアップするとセンサモジュール１５がごく短い時間だけ作動して制御ユニット１４のレジスタにデジタル磁気データが格納される。制御ユニット１４はデジタル磁気データを取得する毎に、取得したデジタル磁気データを通信ユニット１１に出力する。通信ユニット１１はデジタル磁気データを取得する毎にデジタル磁気データをバスに出力する（Ｓ２１６）。バスに出力されたデジタル磁気データはＲＡＭ３２の所定アドレスに格納されることによってプロセッサ３によって取得される。このようにしてデジタル磁気データを間欠的に取得するプロセッサ３は、デジタル磁気データとオフセットとに基づいて方位を間欠的に導出する（Ｓ１０４）。
【００２８】
プロセッサ３において電子コンパスプログラムが終了するとき、休止要求が通信ユニット１１に出力される（Ｓ１０５）。通信ユニット１１は休止要求を取得すると制御ユニット１４のレジスタに休止要求を格納する（Ｓ２１８）。休止要求を取得した制御ユニット１４はクロックユニット１３からデジタル回路へのクロックの供給を停止させるとともに電源ユニット１２からアナログ回路へ供給される電源をグランドに落として磁気センサ１を休止させる（Ｓ２１９）。
【００２９】
図３は休止状態と起動状態における磁気センサ１の消費電力を説明するための波形図である。クロックは起動中常時クロックユニット１３からデジタル回路に供給され、休止すると停止する。アナログ回路の電源は、制御ユニット１４から電源ユニット１２に出力される電源制御信号によって制御され、磁気検出時にのみ電源ユニット１２からアナログ回路へ供給され、それ以外の時にはグランドに落とされる。そして制御ユニット１４のカウンタ以外のデジタル回路が作動するのは磁気検出時と母集団の出力時のみである。したがって、磁気センサ１において実質的に電力が消費されるのは磁気検出時と母集団の出力時のみである。そして磁気センサ１の回路規模はプロセッサ３に比べてはるかに小さい。また磁気センサ１は、予め決められた数の母集団を蓄積すると休止する。すなわち、電子コンパスプログラムが実行されていない期間中に母集団を蓄積するために磁気センサ１を起動するとしても、電力消費量は極わずかであるから、本実施形態によると、母集団を予め蓄積しておくために電子コンパスプログラムを常時実行する場合に比べて消費電力を大幅に抑制することができる。
【００３０】
２．第二実施形態
図４は本発明の第二実施形態を示すシーケンスチャートである。図４に示すようにデジタル磁気データを母集団としてバッファメモリ１６に蓄積するか否かに応じて磁気の検出周期を変更してもよい。すなわち、センサモジュール１５から取得するデジタル磁気データと母集団としてバッファメモリ１６に蓄積されているデジタル磁気データとの距離に応じて磁気の検出周期を変更しても良い。具体的には、第二実施形態では、磁気データを母集団として蓄積する場合には、センサモジュール１５による磁気の検出周期を短縮し（Ｓ２０７１）、磁気データを母集団として蓄積しない場合には磁気の検出周期を延長する（Ｓ２０７２）。
【００３１】
このようにして磁気の検出周期を変更すると、図５に示すように、電子コンパス１００が動いていない状態（蓄積不要と判定される状態）では磁気を検出するために消費される電力を抑制することができ、電子コンパスが動けばすぐにデジタル磁気データを母集団として蓄積することができる。
【００３２】
磁気の検出周期を延長するに当たっては、検出周期の上限を設定して磁気データを母集団としない判定毎に検出周期を定数倍（例えば２倍）に延長してもよいし、磁気データを母集団としない判定毎に、予め決めた検出周期に段階的に切り替えても良い。磁気の検出周期を短縮するに当たっては、磁気データを母集団としてバッファメモリ１６に蓄積すると予め決めた初期値（最短の周期）に検出周期を再設定すればよい。
【００３３】
また、このようにして磁気の検出周期を変更すると、磁気センサ１を休止させなくても磁気センサ１の消費電力を十分に抑制することができるため、バッファメモリ１６に十分な数のデジタル磁気データを母集団として蓄積した後にも磁気センサ１を休止させずに母集団をＦＩＦＯ（First In First Out）またはＦＩＬＯ（First in Last Out）で更新し続けても良い。つまり、Ｓ２０８において十分な数の母集団がバッファメモリ１６に蓄積されたと判定された場合、Ｓ２０９の休止を実行せずにＳ２０３に戻り、Ｓ２０８までの処理を繰り返す。ここで母集団をＦＩＦＯで更新する場合、バッファメモリ１６には常に一定の数の新しい磁気データが蓄積されている。そしてＳ２０８において十分な数の母集団がバッファメモリ１６に蓄積されていると判定された後には、Ｓ２１０において通信ユニット１１が母集団要求を制御ユニット１４のレジスタに書き込むと、制御ユニット１４は最新の母集団として蓄積されているデジタル磁気データを通信ユニット１１に出力する（Ｓ２１２，Ｓ２１３）。
【００３４】
３．他の実施形態
尚、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、キャリブレーションによってオフセットを導出する手法は周知の統計的手法でもよいし、確率論的手法でも良いし、今後開発されるいかなる手法でも良い。また上述の実施形態では、出力モードにおいて磁気センサ１から母集団を出力した後に間欠的にデジタル磁気データを出力する例を説明したが、母集団を出力するモードと間欠的にデジタル磁気データを出力するモードとを分け、プロセッサ３の制御によってこれらのモードを切り替えられるようにしても良い。また、本発明は電子コンパスという商品として流通する電子機器に限らず、携帯電話、ナビゲーション装置、デジタルカメラ等、電子コンパスの機能を備える様々な形態の電子機器に適用することができるのはいうまでもない。
【００３５】
また上述の実施形態においては、母集団としてのデジタル磁気データの蓄積数が十分でない場合、デジタル磁気データの取得を繰り返すようにしたが、一定時間内に十分な数の磁気データを蓄積できない場合には、それまでに母集団としてバッファメモリ１６に蓄積されていたデジタル磁気データを全て破棄した後に、あらためて母集団の蓄積を開始しても良い。こうすることで、蓄積に時間がかかったために異なる場所の磁気を表しているデジタル磁気データによって母集団が構成されることを防ぐことができる。
【００３６】
また上述の実施形態においては、バッファメモリ１６に十分な数の母集団が蓄積された場合には磁気センサ１を休止させて母集団要求を待っていたが、バッファメモリ１６に十分な数の母集団が格納された時点で割り込み信号を通信ユニット１１を介してプロセッサ３に出力するようにしても良い。プロセッサ３は、この割り込み信号を受けることによって電子コンパスプログラムを一時的に立ち上げてキャリブレーションを実行することができる。こうすることでオフセットが随時補正されるため、電子コンパスプログラムは次の必要なタイミングでは正しく方位を計測できる。
【符号の説明】
【００３７】
１…３軸磁気センサ，２…加速度センサ，３…プロセッサ，７…ディスプレイ，１１…通信ユニット，１２…電源ユニット，１３…クロックユニット，１４…制御ユニット，１５…センサモジュール，１６…バッファメモリ，３１…ＣＰＵ，３２…ＲＡＭ，３３…ＲＯＭ，３４…Ｉ／Ｆ，１００…電子コンパス，１５１…ＡＤＣ，１５２…センサユニット
【図１】
0005531801.tif 000002
【図２】
0005531801.tif 000003
【図３】
0005531801.tif 000004
【図４】
0005531801.tif 000005
【図５】
0005531801.tif 000006