(57)【特許請求の範囲】
【請求項１】
回転体の回転方向によって位相差が異なるとともに、前記回転体の回転速度に応じた周期をもった複数の回転検出信号を出力するエンコード部と、該エンコード部から出力された各回転検出信号を閾値と比較することによりパルス信号に波形整形し、これにより得た各パルス信号の値を所定の周期でサンプリングし、各パルス信号のサンプリング値の組み合わせの遷移に基づいて前記回転体の回転に関する情報を求めるデータ処理部と、を備えた回転情報検出装置において、
前記データ処理部では、前記各回転検出信号のレベルと前記閾値との相対的な関係が可変であるとともに、前記各パルス信号のサンプリング値が共にハイレベルとなっている区間である第１の区間の時間長、及び、共にローレベルとなっている区間である第２の区間の時間長を測定する測定手段と、前記各回転検出信号のレベルと前記閾値との相対的な関係を前記第１の区間、第２の区間の時間長に応じてそれぞれ調整する第１の調整手段、第２の調整手段とが設けられていることを特徴とする回転情報検出装置。
【請求項２】
前記第１の調整手段、第２の調整手段は、それぞれ前記第１の区間、第２の区間が第１の所定時間よりも短いときには、それぞれ前記第１の区間、第２の区間が長くなるように、前記各回転検出信号のレベルと前記閾値との相対的な関係を調整することを特徴とする請求項１に記載の回転情報検出装置。
【請求項３】
前記第１の調整手段、第２の調整手段は、それぞれ前記第１の区間、第２の区間が第２の所定時間よりも短いときには、前記調整処理を行わないことを特徴とする請求項２に記載の回転情報検出装置。
【請求項４】
回転体の回転方向によって位相差が異なるとともに、前記回転体の回転速度に応じた周期をもった複数の回転検出信号を出力するエンコード部と、該エンコード部から出力された各回転検出信号を閾値と比較することによりパルス信号に波形整形し、これにより得た各パルス信号の値を所定の周期でサンプリングし、各パルス信号のサンプリング値の組み合わせの遷移に基づいて前記回転体の回転に関する情報を求めるデータ処理部と、を備えた回転情報検出装置において、
前記データ処理部では、前記各回転検出信号のレベルと前記閾値との相対的な関係が可変であるとともに、前記各パルス信号のサンプリング値が共にハイレベルとなっている区間である第１の区間の時間長、及び、共にローレベルとなっている区間である第２の区間の時間長を測定する測定手段と、前記第１の区間と第２の区間との時間長の差が小さくなるように、前記各回転検出信号のレベルと前記閾値との相対的な関係を調整する調整手段と、が設けられていることを特徴とする回転情報検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回転体の回転運動を電気信号に変換し、これにより得られる信号に基づいて回転体の回転情報を求める回転情報検出装置に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータやワークステーション等への入力機器であるマウスのブロック図を図６に示す。同図において、１００はユーザの操作によるマウスの縦横それぞれの方向への動きに応じた２つの回転運動を生成するとともに、この２つの回転運動を電気信号に変換して出力するエンコード部であり、２００はエンコード部１００から出力される電気信号に基づいてエンコード部１００で生成される２つの回転運動（すなわち、マウスの動き）に関する情報を求めるデータ処理部である。
【０００３】
エンコード部１００の一般的な構造を図７に示す。ゴム性のボール１１１がスタビライザのバネ１１２より互いに直行したＸ軸シャフト１１３Ｘ、Ｙ軸シャフト１１３Ｙに押しつけられている。これによって、横、縦方向へのマウスの動きはボール１１１の回転としてそれぞれのＸ軸シャフト１１３Ｘ、Ｙ軸シャフト１１３Ｙに伝えられる。
【０００４】
Ｘ軸シャフト１１３Ｘ、Ｙ軸シャフト１１３Ｙの先端にはそれぞれ円板１１４Ｘ、１１４Ｙが取り付けられている。発光ダイオード１１５Ｘとフォトトランジスタ１１６Ｘ、１１７Ｘとは円板１１４Ｘを挟んで対向している。発光ダイオード１１５Ｙとフォトトランジスタ１１６Ｙ、１１７Ｙとは円板１１４Ｙを挟んで対向している。
【０００５】
図８は円板１１４Ｘの周辺の斜視図である。円板１１４Ｘの中心から所定の距離の円周上にはスリットＳが等間隔で刻まれており、その片方には発光ダイオード１１５Ｘが設けられており、その反対側には２個のフォトトランジスタ１１６Ｘ、１１７Ｘが設置されている。尚、２個のフォトトランジスタ１１６Ｘ、１１７ＹはスリットＳのピッチの約４分の１ずれて設置されている。
【０００６】
また、円板１１４Ｙにも円板１１４Ｘと同様にスリットが形成されており、円板１１４Ｙ、発光ダイオード１１５Ｙ、及び、フォトトランジスタ１１６Ｙ、１１７Ｙの位置関係は、上述した円板１１４Ｘ、発光ダイオード１１５Ｘ、及び、フォトトランジスタ１１６Ｘ、１１７Ｘの位置関係と同じである。
【０００７】
以上の構成により、フォトトランジスタ１１６Ｘ及び１１７Ｘからは円板１１４Ｘの回転速度に応じた周期をもったパルス状の信号が出力される。そして、円板１１４Ｘが時計まわりの方向ＣＷに回転すると、フォトトランジスタ１１６Ｘから出力される信号（以下、「第１の回転検出信号」と称する）の方がフォトトランジスタ１１７Ｘから出力される信号（以下、「第２の回転検出信号」と称する）よりも位相が９０゜早くなる。一方、円板１１４Ｘが反時計まわりの方向ＣＣＷに回転すると、第２の回転検出信号の方が第１の回転検出信号よりも位相が９０゜早くなる。
【０００８】
尚、円板１１４Ｙの回転に伴うフォトトランジスタ１１６Ｙから出力される信号（以下、「第３の回転検出信号」と称する）とフォトトランジスタ１１７Ｙから出力される信号（以下、「第４の回転検出信号」と称する）との関係も同一である。このように、円板１１４Ｘ及び１１４Ｙの回転（すなわち、マウスの横、縦方向への動き）は電気信号に変換される。
【０００９】
さて、エンコード部１００で生成された第１の回転検出信号Ｘ１、第２の回転検出信号Ｘ２、第３の回転検出信号Ｙ１、及び、第４の回転検出信号Ｙ２はデータ処理部２００に入力される。データ処理部２００では、各回転検出信号を電流信号から電圧信号に変換した後、閾値電圧と比較することによりパルス信号に波形整形し、これにより得られる各パルス信号をサンプリングし、これらのサンプリング値の遷移に基づいて円板１１４Ｘ及び１１４Ｙの回転方向を求める。
【００１０】
ここで、第１の回転検出信号と第２の回転検出信号との位相差及びレベル、並びに、同２つの信号を波形整形するための閾値電圧が適切な関係にあれば、第１の回転検出信号、第２の回転検出信号をそれぞれ波形整形して得られるパルス信号ＰＸ１、ＰＸ２は、円板１１４Ｘが時計まわりの方向ＣＷに回転しているときには、図９の（ａ）に示すように、パルス信号ＰＸ１の方がパルス信号ＰＸ２よりも位相が９０゜早くなり、一方、円板１１４Ｘが反時計まわりの方向ＣＣＷに回転しているときには、図９の（ｂ）に示すように、パルス信号ＰＸ２の方がパルス信号ＰＸ１よりも位相が９０゜早くなる。
【００１１】
したがって、パルス信号ＰＸ１の値ＤＸ１とパルス信号ＰＸ２の値ＤＸ２との組み合わせ（ＤＸ１、ＤＸ２）は、図１０に示すように、円板１１４Ｘが時計まわりの方向ＣＷに回転しているときには、（Ｈ、Ｈ）、（Ｌ、Ｈ）、（Ｌ、Ｌ）、（Ｈ、Ｌ）の順に、一方、円板１１４Ｘが反時計まわりの方向ＣＣＷに回転しているときには、（Ｈ、Ｈ）、（Ｈ、Ｌ）、（Ｌ、Ｌ）、（Ｌ、Ｈ）の順に、それぞれ円板１１４Ｘの回転速度に応じた周期で遷移を繰り返す。尚、Ｈはハイレベル、Ｌはローレベルを表している。
【００１２】
このように、第１の回転検出信号及び第２の回転検出信号を波形整形して得られる２つのパルス信号は、円板１１４Ｘの回転方向によって異なる順番で、かつ、円板１１４Ｘの回転速度に応じた周期で、とり得る全ての値の組み合わせへ遷移を繰り返す。尚、第３の回転検出信号及び第４の回転検出信号を波形整形して得られる２つのパルス信号に関しても、円板１１４Ｙの回転に対して同じことが言える。
【００１３】
したがって、上記組み合わせは、例えば（Ｈ、Ｈ）から（Ｌ、Ｌ）に直接遷移することはなく、（Ｈ、Ｈ）と（Ｌ、Ｌ）との間には（Ｈ、Ｌ）または（Ｌ、Ｈ）へ少なくとも１回は必ず遷移するはずである。同様に、（Ｌ、Ｌ）から（Ｈ、Ｈ）に、（Ｈ、Ｌ）から（Ｌ、Ｈ）に、（Ｌ、Ｈ）から（Ｈ、Ｌ）にそれぞれ直接遷移することもあり得ない。
【００１４】
以上の事象を利用して、データ処理部２００では、第１の回転検出信号を波形整形して得られるパルス信号のサンプリング値ＳＸ１と、第２の回転検出信号を波形整形して得られるパルス信号のサンプリング値ＳＸ２との組み合わせ（ＳＸ１、ＳＸ２）が、１つ前のサンプリング点にて（Ｈ、Ｈ）であったとすると、今回のサンプリング点にて（Ｌ、Ｈ）であれば、円板１１４Ｘの回転方向は時計まわりの方向であり、今回のサンプリング点にて（Ｈ、Ｌ）であれば、円板１１４Ｘの回転方向は反時計まわりの方向であるというように、１つ前のサンプリング値の組み合わせから今回のサンプリング値の組み合わせへの遷移に基づいて、円板１１４Ｘの回転方向を求めるようになっている。
【００１５】
但し、（ＳＸ１、ＳＸ２）が、１つ前のサンプリング点にて（Ｈ、Ｈ）であり、今回のサンプリング点にて（Ｌ、Ｌ）であるというように、１つ前のサンプリング値の組み合わせから今回のサンプリング値の組み合わせへ直接遷移し得ない場合には、円板１１４Ｘの回転方向を求めることができない。
【００１６】
尚、データ処理部２００では、第１の回転検出信号及び第２の回転検出信号を波形整形して得られる２つのパルス信号のサンプリング値の組み合わせの遷移に基づいて円板１１４Ｘの回転方向を求める場合と同様にして、第３の回転検出信号及び第４の回転検出信号を波形整形して得られる２つのパルス信号のサンプリング値の組み合わせの遷移に基づいて円板１１４Ｙの回転方向を求めるようになっている。
【００１７】
【発明が解決しようとする課題】
ここで、従来は、回転検出信号のレベルが設計値通りであるという理想的な状態にて、回転検出信号を波形整形して得られるパルス信号のデューティ比が５０％となるように、回転検出信号を波形整形するための閾値電圧が設定されていた。したがって、回転検出信号の生成に関与する部品や同部品の取り付け位置のばらつきにより、回転検出信号のレベルが設計値通りになっていない場合には、当然のことながら、上記デューティ比は５０％にはならない。
【００１８】
具体的な例を示すと、円板１１４Ｘの回転に係わる第１の回転検出信号Ｘ１と第２の回転検出信号Ｘ２との２つの信号の波高が、図１１に実線で示すように、破線で示す設計値の波高よりも低くなっている場合には、第１の回転検出信号Ｘ１、第２の回転検出信号Ｘ２をそれぞれ閾値電圧Ｖthと比較することにより波形整形して得られるパルス信号ＰＸ１、ＰＸ２の１周期に対するハイレベルのデューティ比が５０％よりも小さくなり、円板１１４Ｘの回転速度がそれほど速くなくても、２つのパルス信号ＰＸ１、ＰＸ２の値が共にハイレベルとなる区間の時間長ｔが極端に小さくなるという現象が生じる可能性がある。
【００１９】
逆に、第１の回転検出信号Ｘ１と第２の回転検出信号Ｘ２との２つの信号の波高が設計値の波高よりも高くなっている場合には、パルス信号ＰＸ１、ＰＸ２の１周期に対するローレベルのデューティ比が５０％よりも小さくなり、円板１１４Ｘの回転速度がそれほど速くなくても、２つのパルス信号ＰＸ１、ＰＸ２の値が共にローレベルとなる区間の時間長が極端に小さくなるという現象が生じる可能性がある。
【００２０】
また、エンコード部１００内の光電変換素子であるフォトトランジスタの受光部分が汚れる等の経年劣化により、回転検出信号のレベルが設計値通りであるという理想的な状態から外れて、同様な現象が生じる可能性もある。
【００２１】
このようにして、例えば、１つの回転運動に係わる２つの回転検出信号を波形整形して得られるパルス信号の値が共にハイレベルとなる区間の時間長、あるいは、共にローレベルとなる区間の時間長が極端に小さくなると、同区間をサンプリングすることができず、その結果、回転情報を求めることができなくなる。
【００２２】
したがって、従来の回転情報検出装置では、追従可能な回転速度を向上させるためには、回転検出信号の生成に関与する部品を選別するとともに、同部品の取り付けを高精度に行う必要があり、また、経年劣化に対する動作マージンが小さかった。
【００２３】
そこで、本発明は、回転運動に係わる信号の生成に関与する部品の選別、及び、同部品の高精度な取り付けを必要とすることなく、追従可能な回転速度を向上させることができるとともに、経年劣化に対する動作マージンを向上させた回転情報検出装置を提供することを目的とする。
【００２４】
【課題を解決するための手段】
上記の目的を達成するため、本発明では、回転体の回転方向によって位相差が異なるとともに、前記回転体の回転速度に応じた周期をもった複数の回転検出信号を出力するエンコード部と、該エンコード部から出力された各回転検出信号を閾値と比較することによりパルス信号に波形整形し、これにより得た各パルス信号の値を所定の周期でサンプリングし、各パルス信号のサンプリング値の組み合わせの遷移に基づいて前記回転体の回転に関する情報を求めるデータ処理部と、を備えた回転情報検出装置において、前記データ処理部では、前記各回転検出信号のレベルと前記閾値との相対的な関係が可変であるとともに、前記各パルス信号のサンプリング値が共にハイレベルとなっている区間である第１の区間の時間長、及び、共にローレベルとなっている区間である第２の区間の時間長を測定する測定手段と、前記各回転検出信号のレベルと前記閾値との相対的な関係を前記第１の区間、第２の区間の時間長に応じてそれぞれ調整する第１の調整手段、第２の調整手段とが設けられている。
【００２５】
この構成により、上記第１の調整手段、第２の調整手段が、それぞれ上記第１の区間、第２の区間が上記第１の所定時間よりも短いときには、それぞれ上記第１の区間、第２の区間が長くなるように、上記各回転検出信号のレベルと上記閾値との相対的な関係を調整するようにすれば、上記第１の区間と上記第２の区間とのどちらか一方だけが極端に短くなることがないように自動的に制御される。
【００２６】
また、上記第１の所定時間を適切に設定すれば、回転運動の回転速度が速くなると、上記第１の区間の時間長と上記第２の区間の時間長とのどちらか一方だけが極端に小さくなるが、回転速度が遅いために、上記第１の区間及び上記第２の区間の時間長がある程度大きく、回転情報を求めることが実質的には可能である場合には、上記調整処理を行わないようにすることができる。
【００２７】
また、上記第１の調整手段、第２の調整手段は、それぞれ上記第１の区間、第２の区間が第２の所定時間よりも短いときには、上記調整処理を行わないようにすることにより、上記第２の所定時間を適切に設定すれば、例えば、ノイズが原因となって、あるいは、回転体の回転方向が切り替わる際に、上記第１の区間または第２の区間がほんの一瞬だけ現れる、本来は上記調整処理を行うべきではない場合には、上記調整処理を行わないようにすることができる。
【００２８】
【発明の実施の形態】
以下に、本発明の実施形態を図面を参照しながら説明する。本発明の一実施形態であるマウスについて説明する。本実施形態のマウスは、従来と同様、図６にブロック図を示すように、エンコード部１００とデータ処理部２００とから成るが、データ処理部２００に特徴があるので、データ処理部２００について説明する。
【００２９】
データ処理部２００の構成を図１に示す。同図において、１はＣＰＵ、２はＲＡＭ、３はＲＯＭ、４はタイマ部、５はシリアルインターフェース、６はクロック発生回路、７はシステムバス、８−１、８−２、８−３、及び、８−４は抵抗値が可変である抵抗、９−１、９−２、９−３、及び、９−４はヒステリシス特性を有するコンパレータ、１０は定電圧源、１１−１、１１−２はバッファ、１２−１、１２−２、１２−３、及び、１２−４は回転データ用レジスタ、１３−１、１３−２、１３−３、及び、１３−４は抵抗値制御データ用レジスタ、１４−１及び１４−２はスイッチデータ用レジスタである。尚、データ処理部２００は１チップのＩＣとなっている。
【００３０】
ＣＰＵ１は、システムバス７を介して、ＲＡＭ２、ＲＯＭ３、タイマ部４、シリアルインターフェース５、回転データ用レジスタ１２−１、１２−２、１２−３、及び、１２−４、抵抗値制御データ用レジスタ１３−１、１３−２、１３−３、及び、１３−４、並びに、スイッチデータ用レジスタ１４−１及び１４−２にアクセス可能である。
【００３１】
ＣＰＵ１は、ＲＯＭ３に格納されているプログラムに従って動作し、回転データ用レジスタ１２−１、１２−２、１２−３、及び、１２−４に保持されている値の遷移に基づいてマウスの縦横それぞれへの移動量を求め、移動量をＲＡＭ２に記憶しておき、ホスト側の機器３００からのデータ要求を受信すると、移動量をホスト側の機器３００へ送信するようになっている。
【００３２】
タイマ部４は、ＣＰＵ１がＲＯＭ３に格納されているプログラムのメインループを１周するのに要する時間を一定とするために使用される。タイマ部４の具体的な動作としては、ＣＰＵ１からの指示によってカウントを開始し、所定時間が経過する毎にＣＰＵ１に対して割り込み信号を送信する。
【００３３】
ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、タイマ部４、シリアルインターフェース５、回転データ用レジスタ１２−１、１２−２、１２−３、及び、１２−４、抵抗値制御データ用レジスタ１３−１、１３−２、１３−３、及び、１３−４、並びに、スイッチデータ用レジスタ１４−１及び１４−２は、クロック発生回路６から出力されるクロック信号ＣＬＫに同期して動作するようになっている。
【００３４】
端子ＸＡ、ＸＢ、ＹＡ、ＹＢにはそれぞれエンコード部１００のフォトトランジスタ１６Ｘ、１７Ｘ、１６Ｙ、１７Ｙの出力信号が入力される。端子ＸＡ、ＸＢ、ＹＡ、ＹＢに入力された信号は、それぞれ抵抗８−１、８−２、８−３、８−４により電流信号から電圧信号に変換された後、それぞれコンパレータ９−１、９−２、９−３、９−４の非反転入力端子（＋）に入力される。コンパレータ９−１、９−２、９−３、及び、９−４の反転入力端子（−）には定電圧源１０の出力電圧が入力されている。
【００３５】
したがって、コンパレータ９−１、９−２、９−３、９−４からはそれぞれ端子ＸＡ、ＸＢ、ＹＡ、ＹＢに入力された信号を定電圧源１０の出力電圧と比較することにより波形整形して得られるパルス信号ＰＸ１、ＰＸ２、ＰＹ１、ＰＹ２が出力される。そして、パルス信号ＰＸ１、ＰＸ２、ＰＹ１、ＰＹ２の値は、それぞれ回転データ用レジスタ１２−１、１２−２、１２−３、１２−４に保持される。
【００３６】
抵抗８−１、８−２、８−３、８−４の抵抗値は、それぞれ抵抗値制御データ用レジスタ１３−１、１３−２、１３−３、１３−４に保持されている値の増減に伴って変化するようになっている。具体的には、各抵抗は、対応するレジスタに保持されている値が１だけ大きくなると、所定量だけ抵抗値が大きくなり、また、１だけ小さくなると、所定量だけ抵抗値が小さくなる。
【００３７】
端子Ｓ１、Ｓ２はそれぞれエンコード部１００内にて抵抗Ｒ１、Ｒ２を介して電源電圧ＶDDに接続されているとともに、スイッチＳＷ１、ＳＷ２を介して接地されており、端子Ｓ１、Ｓ２に入力される信号の値はスイッチＳＷ１、ＳＷ２がＯＦＦでハイレベル、スイッチＳＷ１、ＳＷ２がＯＮでローレベルとなる。そして、端子Ｓ１、Ｓ２に入力される信号の値はバッファ１１−１、１１−２を介してスイッチデータ用レジスタ１４−１、１４−２に保持される。尚、スイッチＳＷ１、ＳＷ２はユーザの操作に応じてＯＮ／ＯＦＦが切り替わるものである。
【００３８】
ＣＰＵ１がＲＯＭ３に格納されているプログラムに従って動作するメインループの内容を図２及び図３に示すフローチャートを用いて説明する。まず、電源の投入直後には、初期設定を行う（＃１）。具体的には、ＲＡＭ２に保持されている、横方向への移動量を示す変数Ｘ、及び、縦方向への移動量を示す変数Ｙの値を０にリセットする作業、パルス信号ＰＸ１、ＰＸ２、ＰＹ１、及び、ＰＹ２の前回のサンプリング値として記憶している内容を消去する作業、ＲＡＭ２上に設けられた第１タイマ、第２タイマ、第３タイマ、及び、第４タイマのカウント値を０にリセットする作業、スイッチデータ用レジスタ１４−１及び１４−２に保持されている値の出力が必要であるか否かを示す、ＲＡＭ２に保持されている変数ＳＷを０にリセットする作業、並びに、タイマ割り込みがあったか否かを示す、ＲＡＭ２上に設けられたタイマ割り込みフラグをリセットする作業を行うとともに、タイマ部４を起動させる。
【００３９】
尚、ＲＡＭ２上の第１タイマ、第２タイマ、第３タイマ、第４タイマの４つのタイマは、本実施形態では、ループカウンタであって、ＣＰＵ１が行う後述するメインループを１周する毎にカウント値が１だけ大きくなる。
【００４０】
次に、スイッチデータ用レジスタ１４−１、１４−２にそれぞれ保持されている値をサンプリングし、今回のサンプリング値が前回のサンプリング値から変化しているか否かを判定する、すなわち、端子Ｓ１またはＳ２への入力が変化したか否かを判定する（＃２）。変化していれば（＃２のＹ）、変数ＳＷに１をセットし（＃３）、その後、後述する＃４へ移行し、一方、変化していなければ、そのまま＃４へ移行する。
【００４１】
＃４では、回転データ用レジスタ１２−１及び１２−２に保持されている値をサンプリングし、今回のサンプリング値の組み合わせが前回のサンプリング値の組み合わせから変化しているか否かを判定する、すなわち、パルス信号ＰＸ１及びＰＸ２のサンプリング値の組み合わせが変化したか否かを判定する。変化していれば（＃４のＹ）、後述する＃５へ移行し、一方、変化していなければ（＃４のＮ）、後述する＃２０へ移行する。
【００４２】
＃５では、回転データ用レジスタ１２−１及び１２−２に保持されている値の今回のサンプリング値（＃４でのサンプリング値）の組み合わせを判定する。回転データ用レジスタ１２−１に保持されている値の今回のサンプリング値をＡＸ１、回転データ用レジスタ１２−２に保持されている値の今回のサンプリング値をＡＸ２とすると、（ＡＸ１、ＡＸ２）＝（Ｈ、Ｈ）であれば（＃５のＨＨ）、第１タイマのカウント動作を開始させ（＃６）、その後、回転データ用レジスタ１２−１に保持されている値の前回のサンプリング値をＢＸ１、回転データ用レジスタ１２−２に保持されている値の前回のサンプリング値をＢＸ２とすると、（ＢＸ１、ＢＸ２）＝（Ｈ、Ｌ）であれば（＃７のＨＬ）、変数Ｘの値を１だけ増加させ（＃８）、（ＢＸ１、ＢＸ２）＝（Ｌ、Ｈ）であれば（＃７のＬＨ）、変数Ｘの値を１だけ減少させ（＃９）、（ＢＸ１、ＢＸ２）＝（Ｌ、Ｌ）であれば（＃７のＬＬ）、第２タイマのカウント動作を停止させる（＃１０）。＃８、＃９、＃１０の後は後述する＃２０へ移行する。
【００４３】
また、（ＡＸ１、ＡＸ２）＝（Ｈ、Ｌ）である場合は（＃５のＨＬ）、（ＢＸ１、ＢＸ２）＝（Ｌ、Ｌ）であれば（＃１１のＬＬ）、第２タイマのカウント動作を停止させ（＃１２）、その後、＃８へ移行し、（ＢＸ１、ＢＸ２）＝（Ｈ、Ｈ）であれば（＃１１のＨＨ）、第１タイマのカウント動作を停止させ（＃１３）、その後、＃９へ移行し、（ＢＸ１、ＢＸ２）＝（Ｌ、Ｈ）であれば（＃１１のＬＨ）、そのまま後述する＃２０へ移行する。
【００４４】
また、（ＡＸ１、ＡＸ２）＝（Ｌ、Ｈ）である場合は（＃５のＬＨ）、（ＢＸ１、ＢＸ２）＝（Ｈ、Ｈ）であれば（＃１４のＨＨ）、第１タイマのカウント動作を停止させ（＃１５）、その後、＃８へ移行し、（ＢＸ１、ＢＸ２）＝（Ｌ、Ｌ）であれば（＃１４のＬＬ）、第２タイマのカウント動作を停止させ（＃１６）、その後、＃９へ移行し、（ＢＸ１、ＢＸ２）＝（Ｈ、Ｌ）であれば（＃１４のＨＬ）、そのまま後述する＃２０へ移行する。
【００４５】
また、（ＡＸ１、ＡＸ２）＝（Ｌ、Ｌ）であれば（＃５のＬＬ）、第２タイマのカウント動作を開始させ（＃１７）、その後、（ＢＸ１、ＢＸ２）＝（Ｌ、Ｈ）であれば（＃１８のＬＨ）、＃８へ移行し、（ＢＸ１、ＢＸ２）＝（Ｈ、Ｌ）であれば（＃１８のＨＬ）、＃９へ移行し、（ＢＸ１、ＢＸ２）＝（Ｈ、Ｈ）であれば（＃１８のＨＨ）、第１タイマのカウント動作を停止させ（＃１９）、その後、後述する＃２０へ移行する。
【００４６】
＃２０では、回転データ用レジスタ１２−３及び１２−４に保持されている値をサンプリングし、今回のサンプリング値の組み合わせが前回のサンプリング値の組み合わせから変化しているか否かを判定する、すなわち、パルス信号ＰＹ１及びＰＹ２のサンプリング値の組み合わせが変化したか否かを判定する。変化していれば（＃２０のＹ）、後述する＃２１へ移行し、一方、変化していなければ（＃２０のＮ）、後述する＃３６へ移行する。
【００４７】
＃２１では、回転データ用レジスタ１２−３及び１２−４に保持されている値の今回のサンプリング値（＃２０でのサンプリング値）の組み合わせを判定する。回転データ用レジスタ１２−３に保持されている値の今回のサンプリング値をＡＹ１、回転データ用レジスタ１２−４に保持されている値の今回のサンプリング値をＡＹ２とすると、（ＡＹ１、ＡＹ２）＝（Ｈ、Ｈ）であれば（＃２１のＨＨ）、第３タイマのカウント動作を開始させ（＃２２）、その後、回転データ用レジスタ１２−３に保持されている値の前回のサンプリング値をＢＹ１、回転データ用レジスタ１２−４に保持されている値の前回のサンプリング値をＢＹ２とすると、（ＢＹ１、ＢＹ２）＝（Ｈ、Ｌ）であれば（＃２３のＨＬ）、変数Ｙの値を１だけ増加させ（＃２４）、（ＢＹ１、ＢＹ２）＝（Ｌ、Ｈ）であれば（＃２３のＬＨ）、変数Ｙの値を１だけ減少させ（＃２５）、（ＢＹ１、ＢＹ２）＝（Ｌ、Ｌ）であれば（＃２３のＬＬ）、第４タイマのカウント動作を停止させる（＃２６）。＃２４、＃２５、＃２６の後は後述する＃３６へ移行する。
【００４８】
また、（ＡＹ１、ＡＹ２）＝（Ｈ、Ｌ）である場合は（＃２１のＨＬ）、（ＢＹ１、ＢＹ２）＝（Ｌ、Ｌ）であれば（＃２７のＬＬ）、第４タイマのカウント動作を停止させ（＃２８）、その後、＃２４へ移行し、（ＢＹ１、ＢＹ２）＝（Ｈ、Ｈ）であれば（＃２７のＨＨ）、第３タイマのカウント動作を停止させ（＃２９）、その後、＃２５へ移行し、（ＢＹ１、ＢＹ２）＝（Ｌ、Ｈ）であれば（＃２７のＬＨ）、そのまま後述する＃３６へ移行する。
【００４９】
また、（ＡＹ１、ＡＹ２）＝（Ｌ、Ｈ）である場合は（＃２１のＬＨ）、（ＢＹ１、ＢＹ２）＝（Ｈ、Ｈ）であれば（＃３０のＨＨ）、第３タイマのカウント動作を停止させ（＃３１）、その後、＃２４へ移行し、（ＢＹ１、ＢＹ２）＝（Ｌ、Ｌ）であれば（＃３０のＬＬ）、第４タイマのカウント動作を停止させ（＃３２）、その後、＃２５へ移行し、（ＢＹ１、ＢＹ２）＝（Ｈ、Ｌ）であれば（＃３０のＨＬ）、そのまま後述する＃３６へ移行する。
【００５０】
また、（ＡＹ１、ＡＹ２）＝（Ｌ、Ｌ）であれば（＃２１のＬＬ）、第４タイマのカウント動作を開始させ（＃３３）、その後、（ＢＹ１、ＢＹ２）＝（Ｌ、Ｈ）であれば（＃３４のＬＨ）、＃２４へ移行し、（ＢＹ１、ＢＹ２）＝（Ｈ、Ｌ）であれば（＃３４のＨＬ）、＃２５へ移行し、（ＢＹ１、ＢＹ２）＝（Ｈ、Ｈ）であれば（＃３４のＨＨ）、第３タイマのカウント動作を停止させ（＃３５）、その後、後述する＃３６へ移行する。
【００５１】
ここで、ホスト側の機器３００からデータ要求割り込みがあった場合にＣＰＵ１が行う処理を図４に示すフローチャートを用いて説明する。まず、変数ＳＷの値によってスイッチデータ用レジスタ１４−１及び１４−２に保持されている値を出力する必要があるか否かを判定する（＃１０１）。具体的には、変数ＳＷの値が１であれば必要ありと判定し、０であれば必要なしと判定する。
【００５２】
必要であれば（＃１０１のＹ）、スイッチデータ用レジスタ１４−１及び１４−２に保持されている値をホスト側の機器に出力し（＃１０２）、次に、変数ＳＷに０をセットし（＃１０３）、その後、後述する＃１０４へ移行し、一方、必要でなければ（＃１０１のＮ）、そのまま＃１０４へ移行する。
【００５３】
＃１０４では、変数Ｘ及び変数Ｙの値が共に０でないか否かを判定する。変数Ｘ及び変数Ｙの値が共に０でなければ（＃１０４のＹ）、変数Ｘ及び変数Ｙの値をホスト側の機器に出力し（＃１０５）、次に、変数Ｘ及び変数Ｙの値を０にリセットし（＃１０６）、その後、メインループに戻る。一方、変数Ｘ及び変数Ｙの値が共に０であれば（＃１０４のＮ）、そのままメインループに戻る。
【００５４】
尚、ホスト側の機器では、マウスから送信されてきた変数Ｘ、Ｙの値に応じて画面上のポインタをそれぞれ横方向、縦方向に移動させる距離を決定する。また、ホスト側の機器では、マウスから送信されてきたスイッチの入力情報に応じて選択や決定などの機能動作が実行される。
【００５５】
さて、図３の＃３６では入力信号調整処理が行われる。この入力信号調整処理について図５に示すフローチャートを用いて説明する。まず、第１タイマのカウント動作が停止しており、かつ、そのカウント値が０でないという条件を満たしているか否かを判定する（＃２０１）。条件を満たしていれば（＃２０１のＹ）、後述する＃２０２へ移行し、一方、条件を満たしていなければ（＃２０１のＮ）、後述する＃２０６へ移行する。
【００５６】
＃２０２では、第１タイマのカウント値Ｔ１に関して２≦Ｔ１≦４という条件を満足しているか否かを判定する。条件を満足していれば（＃２０２のＹ）、後述する＃２０３へ移行し、一方、条件を満足していなければ（＃２０２のＮ）、後述する＃２０５へ移行する。
【００５７】
＃２０３では、抵抗値制御データ用レジスタ１３−１に保持されている値ＲＣＮＴ１が最大値でないか否かを判定する。最大値でなければ（＃２０３のＹ）、抵抗値制御データ用レジスタ１３−１、１３−２にそれぞれ現段階で保持されている値ＲＣＮＴ１、ＲＣＮＴ２よりも１だけ大きな値をセットし（＃２０４）、その後、後述する＃２０５へ移行する。一方、最大値であれば（＃２０３のＮ）、そのまま＃２０５へ移行する。＃２０５では、第１タイマのカウント値Ｔ１をリセットする。＃２０５を終えると＃２０６へ移行する。
【００５８】
＃２０６では、第２タイマのカウント動作が停止しており、かつ、そのカウント値Ｔ２が０でないという条件を満たしているか否かを判定する。条件を満たしていれば（＃２０６のＹ）、後述する＃２０７へ移行し、一方、条件を満たしていなければ（＃２０６のＮ）、後述する＃２１１へ移行する。
【００５９】
＃２０７では、第２タイマのカウント値Ｔ２に関して２≦Ｔ２≦４という条件を満足しているか否かを判定する。条件を満足していれば（＃２０７のＹ）、後述する＃２０８へ移行し、一方、条件を満足していなければ（＃２０７のＮ）、後述する＃２１０へ移行する。
【００６０】
＃２０８では、抵抗値制御データ用レジスタ１３−１に保持されている値ＲＣＮＴ１が最小値でないか否かを判定する。最小値でなければ（＃２０８のＹ）、抵抗値制御データ用レジスタ１３−１、１３−２にそれぞれ現段階で保持されている値ＲＣＮＴ１、ＲＣＮＴ２よりも１だけ小さな値をセットし（＃２０９）、その後、後述する＃２１０へ移行する。一方、最小値であれば（＃２０８のＮ）、そのまま＃２１０へ移行する。＃２１０では、第２タイマのカウント値Ｔ２をリセットする。＃２１０を終えると＃２１１へ移行する。
【００６１】
＃２１１では、第３タイマのカウント動作が停止しており、かつ、そのカウント値Ｔ３が０でないという条件を満たしているか否かを判定する。条件を満たしていれば（＃２１１のＹ）、後述する＃２１２へ移行し、一方、条件を満たしていなければ（＃２１１のＮ）、後述する＃２１６へ移行する。
【００６２】
＃２１２では、第３タイマのカウント値Ｔ３に関して２≦Ｔ３≦４という条件を満足しているか否かを判定する。条件を満足していれば（＃２１２のＹ）、後述する＃２１３へ移行し、一方、条件を満足していなければ（＃２１２のＮ）、後述する＃２１５へ移行する。
【００６３】
＃２１３では、抵抗値制御データ用レジスタ１３−３に保持されている値ＲＣＮＴ３が最大値でないか否かを判定する。最大値でなければ（＃２１３のＹ）、抵抗値制御データ用レジスタ１３−３、１３−４にそれぞれ現段階で保持されている値ＲＣＮＴ３、ＲＣＮＴ４よりも１だけ大きな値をセットし（＃２１４）、その後、後述する＃２１５へ移行する。一方、最大値であれば（＃２１３のＮ）、そのまま＃２１５へ移行する。＃２１５では、第３タイマのカウント値Ｔ３をリセットする。＃２１５を終えると＃２１６へ移行する。
【００６４】
＃２１６では、第４タイマのカウント動作が停止しており、かつ、そのカウント値Ｔ４が０でないという条件を満たしているか否かを判定する。条件を満たしていれば（＃２１６のＹ）、後述する＃２１７へ移行し、一方、条件を満たしていなければ（＃２１６のＮ）、そのまま入力信号調整処理を終了する。
【００６５】
＃２１７では、第４タイマのカウント値Ｔ４に関して２≦Ｔ４≦４という条件を満足しているか否かを判定する。条件を満足していれば（＃２１７のＹ）、後述する＃２１８へ移行し、一方、条件を満足していなければ（＃２１７のＮ）、後述する＃２２０へ移行する。
【００６６】
＃２１８では、抵抗値制御データ用レジスタ１３−３に保持されている値ＲＣＮＴ３が最小値でないか否かを判定する。最小値でなければ（＃２１８のＹ）、抵抗値制御データ用レジスタ１３−３、１３−４にそれぞれ現段階で保持されている値ＲＣＮＴ３、ＲＣＮＴ４よりも１だけ小さな値をセットし（＃２１９）、その後、後述する＃２２０へ移行する。一方、最小値であれば（＃２１８のＮ）、そのまま＃２２０へ移行する。＃２２０では、第４タイマのカウント値Ｔ４をリセットする。＃２２０を終えると入力信号調整処理を終了する。
【００６７】
＃３６の入力信号調整処理が終了すると、タイマ割り込みフラグがセットされているか否かを判定する（＃３７）。タイマ割り込みフラグがセットされていれば（＃３７のＹ）、タイマ割り込みフラグをリセットし（＃３８）、その後、＃２へ戻る。一方、タイマ割り込みフラグがセットされていなければ（＃３７のＮ）、＃３７へ戻る。尚、ＣＰＵ１はタイマ部４から割り込み信号を受信すると、ＲＡＭ２上に設けられたタイマ割り込みフラグをセットするようになっている。
したがって、上記＃３７、＃３８の処理により、メインループを１周するのに要する時間を一定とすることができる。
【００６８】
まとめると、入力信号調整処理では、１つの回転運動に係わる２つの回転検出信号を波形整形して得られるパルス信号のサンプリング値の組み合わせが共にハイレベルとなる区間（以下、「第１の区間」と称する）が第１の所定時間（具体的には、タイマの５カウントに相当する時間）よりも短いときには、上記２つの回転検出信号を波形整形する前に電流信号から電圧信号に変換する各抵抗の抵抗値を大きくし、一方、同組み合わせが共にローレベルとなる区間（以下、「第２の区間」と称する）が第１の所定時間よりも短いときには、同抵抗値を小さくする。
【００６９】
これにより、上記抵抗値が大きくなると、回転検出信号をパルス信号に波形整形するための閾値が相対的に小さくなって、第１の区間の時間長が大きくなり、一方、第２の区間の時間長が小さくなり、また、上記抵抗値が小さくなると、同閾値が大きくなって、第１の区間の時間長が小さくなり、一方、第２の区間の時間長が大きくなることからして、第１の区間の時間長と第２の区間の時間長とのどちらか一方だけが極端に小さくなることがないように自動的に制御される。したがって、追従可能な回転速度を向上させるために、回転検出信号の生成に関与する部品の選別、及び、同部品の高精度な取り付けを行う必要はなくなり、また、経年劣化に対する動作マージンが大きくなる。
【００７０】
また、第１の所定時間を適切に設定しておけば、回転運動の回転速度が速くなると、第１の区間の時間長と第２の区間の時間長とのどちらか一方だけが極端に小さくなるが、回転速度が遅いために、第１の区間及び第２の区間の時間長がある程度大きく、回転情報を求めることが実質的には可能である間は、上記調整処理を行わないようにすることができるので、処理の効率を向上させることができる。
【００７１】
また、本実施形態では、第１の区間、第２の区間の時間長がそれぞれ第２の所定時間（具体的にはタイマの２カウントに相当する時間）よりも短い場合には、上記抵抗値の調整処理を行わないようになっている。このようにすることで、第２の所定時間が適切であれば、例えば、ノイズが原因となって、あるいは、回転体の回転方向が切り替わる際に、第１の区間または第２の区間がほんの一瞬だけ現れる、本来は上記抵抗値の調整処理を行うべきではない場合には、処理を行わないようにすることができ、処理の効率を向上させることができる。
【００７２】
さらに、本実施形態では、抵抗値制御データ用レジスタに保持されている値が最大値または最小値であるときには、上記抵抗値の調整処理を行わないようになっている。これは、エンコード部１００において回転検出信号の生成に関与する部品の取り付け精度が悪すぎたり、同部品のばらつきが大きすぎるなどの要因で、抵抗値を限界値まで調整したにもかかわらず、未だに調整を必要とする場合を想定し、このような場合には抵抗値の調整を止めるようにするための処理である。
【００７３】
尚、本実施形態における第１の所定時間、及び、第２の所定時間の具体的な数値は設計に応じて決定すればよい。また、各コンパレータ９−１、９−２、９−３、９−４の代わりに、コンパレータに比してコスト的にも消費電力的にも有利なシュミットトリガ回路を用いるようにしてもよい。
【００７４】
ここで、上記実施形態では、第１の区間と第２の区間との個々の時間長に基づいて、回転検出信号を電流信号から電圧信号に変換する抵抗の抵抗値を調整するようになっていたが、このようにする代わりに、第１の区間の時間長の最新の測定結果と第２の区間の時間長の最新の測定結果とを比較し、第１の区間の方が第２の区間よりも時間長が大きい場合には、上記抵抗値が小さくなるように、一方、第２の区間の方が第１の区間よりも時間長が大きい場合には、上記抵抗値が大きくなるように調整するようにしてもよい。
【００７５】
このようにすれば、第１の区間と第２の区間との時間長の差が小さくなるように自動的に制御され、これは回転検出信号を波形整形して得られるパルス信号のデューティ比が５０％に近づくことと等価であるので、上記実施形態と同様の効果を得ることができる。
【００７６】
尚、このようにする場合には、第１の区間及び第２の区間の時間長が共に回転情報を求めるのに十分な大きさである間は、第１の区間と第２の区間との間に時間長の差があっても、回転情報を求めることが実質的には可能であるので、上記抵抗値の調整処理を行わないようにすれば、処理の効率を向上させることができる。
【００７７】
また、第１の区間または第２の区間が、例えば、ノイズが原因となって、あるいは、回転体の回転方向が切り替わる際に、ほんの一瞬だけ現れたと想定される時間長となった場合には、上記抵抗値の調整処理を行わないようにすれば、処理の効率を向上させることができる。
【００７８】
その他には、コンパレータ９−１、９−２、９−３、９−４からそれぞれ出力されるパルス信号ＰＸ１、ＰＸ２、ＰＹ１、ＰＹ２のデューティ比が５０％となるように、それぞれ抵抗８−１、８−２、８−３、８−４の抵抗値を調整する（具体的には、パルス信号の１周期に対するハイレベルのデューティ比が５０％よりも大きいときには、抵抗値を小さくし、一方、同デューティ比が５０％よりも小さいときには、抵抗値を大きくする）ようにしてもよい。このようにしても、同様の効果を得ることができる。
【００７９】
尚、このようにする場合には、パルス信号ＰＸ１、ＰＸ２、ＰＹ１、ＰＹ２の１周期が回転情報を求めるのに十分な大きさである場合には、それぞれ抵抗８−１、８−２、８−３、８−４の抵抗値の調整処理を行わないようにすれば、処理の効率を向上させることができる。
【００８０】
また、パルス信号ＰＸ１、ＰＸ２、ＰＹ１、ＰＹ２のデューティ比が所定値よりも小さくなったときには、それぞれ抵抗８−１、８−２、８−３、８−４の抵抗値の調整処理を行わないようにしてもよい。これにより、例えば、ノイズが原因となって、あるいは、回転体の回転方向が切り替わる際に相当する、本来は調整処理を行うべきではない場合には、処理を行わないようにすることができ、処理の効率を向上させることができる。
【００８１】
尚、上記実施形態では、第１の区間及び第２の区間の時間長に基づいて、回転検出信号を、パルス信号に波形整形する前に、電流信号から電圧信号に変換する抵抗の抵抗値を調整するようになっているが、回転検出信号のレベルと、同信号をパルス信号に波形整形するための閾値との相対的な関係を調整するようになっていればよい。
【００８２】
例えば、出力電圧が可変な定電圧源を各コンパレータ毎に別個に設けておくとともに、各コンパレータでは対応する定電圧源の出力電圧を閾値として回転検出信号をパルス信号に波形整形するようにしておき、同定電圧源の出力電圧を調整するようにしてもよい。また、回転検出信号を、ゲインが可変なアンプを介して、コンパレータに入力するようにしておき、同アンプのゲインを調整するようにしてもよい。また、回転検出信号を電流信号から電圧信号に変換する各抵抗毎に、出力電流が可変な定電流回路を並列に接続しておき、同定電流回路の出力電流を調整するようにしてもよい。さらに、これらの複数の手法を組み合わせて用いるようにしても構わない。
【００８３】
尚、上記実施形態では、１つの回転運動から２つの信号を生成するものであったが、本発明はこれに限定されるものではなく、１つの回転運動から３つ以上の信号を生成するものにも応用することができる。
【００８４】
【発明の効果】
以上説明したように、本発明の回転情報検出装置によれば、第１の区間の時間長と第２の区間の時間長とのどちらか一方だけが極端に小さくなることがないように、回転検出信号のレベルと、同信号をパルス信号に波形整形するための閾値との相対的な関係を自動的に調整することができるようになるので、追従可能な回転速度を向上させるために、回転検出信号の生成に関与する部品の選別、及び、同部品の高精度な取り付けを行う必要はなくなり、また、経年劣化に対する動作マージンが大きくなる。
【００８５】
また、本発明では、回転運動の回転速度が速くなると、第１の区間の時間長と第２の区間の時間長とのどちらか一方だけが極端に小さくなるが、回転速度が遅いために、第１の区間及び第２の区間の時間長がある程度大きく、回転情報を求めることが実質的には可能である間は、上記調整処理を行わないようにすることができるので、処理の効率を向上させることができる。
【００８６】
また、本発明では、例えば、ノイズが原因となって、あるいは、回転体の回転方向が切り替わる際に、第１の区間または第２の区間がほんの一瞬だけ現れる、本来は上記調整処理を行うべきではない場合には、上記調整処理を行わないようにすることができるので、処理の効率を向上させることができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態であるマウスのデータ処理部の構成を示す図である。
【図２】  ＣＰＵがメインループにて行う処理のフローチャートである。
【図３】  ＣＰＵがメインループにて行う処理のフローチャートである。
【図４】  ホスト側の機器からデータ要求割り込みがあった場合に、ＣＰＵが行う処理のフローチャートである。
【図５】  入力信号調整処理のフローチャートである。
【図６】  マウスのブロック図である。
【図７】  エンコード部の構造を示す図である。
【図８】  エンコード部の円板周辺の斜視図である。
【図９】  円板の回転に係わる２つの回転検出信号を波形整形して得られるパルス信号のタイミングチャートである。
【図１０】  円板の回転に係わる２つの回転検出信号を波形整形して得られるパルス信号の値の組み合わせの遷移と、円板の回転方向との関係を示す図である。
【図１１】  円板の回転に係わる２つの回転検出信号を波形整形して得られるパルス信号のサンプリング値が共にハイレベルとなる区間の時間長が小さくなる現象を説明するための図である。
【符号の説明】
１    ＣＰＵ
２    ＲＡＭ
３    ＲＯＭ
４    タイマ部
５    シリアルインターフェース
６    クロック発生回路
７    システムバス
８−１、８−２、８−３、８−４    可変抵抗
９−１、９−２、９−３、９−４    ヒステリシスコンパレータ
１０    定電圧源
１１−１、１１−２    バッファ
１２−１、１２−２、１２−３、１２−４    回転データ用レジスタ
１３−１、１３−２、１３−３、１３−４    抵抗値制御データ用レジスタ
１４−１、１４−２    スイッチデータ用レジスタ
１００    エンコード部
１１１    ボール
１１２    バネ
１１３Ｘ、１１３Ｙ    シャフト
１１４Ｘ、１１４Ｙ    円板
１１５Ｘ、１１５Ｙ    発光ダイオード
１１６Ｘ、１１６Ｙ、１１７Ｘ、１１７Ｙ    フォトトランジスタ
２００    データ処理部
３００    ホスト側の機器
【図１】
0003942334.tif 000002
【図２】
0003942334.tif 000003
【図３】
0003942334.tif 000004
【図４】
0003942334.tif 000005
【図５】
0003942334.tif 000006
【図６】
0003942334.tif 000007
【図７】
0003942334.tif 000008
【図８】
0003942334.tif 000009
【図９】
0003942334.tif 000010
【図１０】
0003942334.tif 000011
【図１１】
0003942334.tif 000012