(57)【特許請求の範囲】
【請求項１】
タッチパネルにより該タッチパネル上の位置を検出し、この位置を示すアナログデータをデジタルデータに変換して転送するという一連の処理を複数回繰り返し、これにより得られた複数のデジタルデータに基づいて、該位置を判定するタッチパネル制御方法において、
複数回目のデジタルデータの転送に際し、該複数回目のデジタルデータの下位の複数ビットのみを転送し、転送された下位の各ビットに、既に転送された他のデジタルデータの上位の各ビットを補足して、該複数回目のデジタルデータを取得し、
前回得られたデジタルデータによって示される位置と今回得られたデジタルデータによって示される位置との差を求め、この差に応じて、次回のデジタルデータのうちの転送される下位の各ビット数を設定することを特徴とするタッチパネル制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、抵抗膜方式等のタッチパネルを制御するためのタッチパネル制御方法に関する。
【０００２】
【従来の技術】
例えば、タッチパネルからのアナログデータを処理する装置として、図５に示す様なものがある。この装置は、抵抗膜方式のタッチパネル１０１と、タッチパネル１０１からのアナログデータをデジタルデータに変換するＡ／Ｄ変換器１０２と、このデジタルデータの転送制御等を行う制御部１０３と、デジタルデータを格納するバッファ１０４と、このデジタルデータの読み取り等を行うシリアルインターフェース１０５と、このデジタルデータに基づいて、タッチパネル１０１により検出された位置を判定するホスト演算部１０６とを備えている。
【０００３】
この従来の装置においては、図６のフローチャートに示す処理手順に従って、タッチパネル１０１による位置の検出からホスト演算部１０６による位置の判定までを行う。
【０００４】
まず、指やペンによりタッチパネル１０１の表面が押下されると、タッチパネル１０１からホスト演算部１０６へと割り込みがかかる（ステップＳ２０１）。これに応答してホスト演算部１０６は、割り込み有りと判定し（ステップＳ２０２で「Ｙｅｓ」）、Ｘ座標の読込みを示すコマンドをシリアルインターフェース１０５を通じて制御部１０３に与える（ステップＳ２０３）。制御部１０３は、このコマンドを与えられると、Ａ／Ｄ変換器１０２を制御することにより、タッチパネル１０１からのＸ座標を示すアナログデータをＡ／Ｄ変換器１０２によりデジタルデータに変換させ（ステップＳ２０４）、このＸ座標を示すデジタルデータを取り込んでバッファ１０４に格納する（ステップＳ２０５）。
【０００５】
引き続いて、ホスト演算部１０６は、バッファ１０４内のＸ座標を示すデジタルデータを読み込むために、このデジタルデータのビット数分のクロック信号をシリアルインターフェース１０５を通じて制御部１０３に与え、このデジタルデータをバッファ１０４からシリアルインターフェース１０５を通じて受け取る（ステップＳ２０６）。例えば、Ａ／Ｄ変換器１０２の分解能が１２ビット（２12）である場合は、１２ビットのデジタルデータを取り込むために、１２ビット分のクロック信号を制御部１０３に与え、このクロック信号に同期して、１２ビットのデジタルデータを受信する。
【０００６】
同様に、Ｙ座標のデジタルデータについても、Ｙ座標の読込みを示すコマンドがシリアルインターフェース１０５を通じて制御部１０３に与えられ（ステップＳ２０７）、タッチパネル１０１からのＹ座標を示すアナログデータがＡ／Ｄ変換器１０２によりデジタルデータに変換され（ステップＳ２０８）、このＹ座標を示すデジタルデータがバッファ１０４に格納され（ステップＳ２０９）、更に１２ビット分のクロック信号が制御部１０３に与えられ、このクロック信号に同期して、このデジタルデータがホスト演算部１０６で受信される（ステップＳ２１０）。
【０００７】
通常、この様な座標の検出、アナログデータからデジタルデータへの変換、デジタルデータの取り込みという一連の処理を予め設定された回数だけ繰り返し（ステップＳ２１１で「Ｙｅｓ」）、これによりＸ座標及びＹ座標別に、複数のデジタルデータを取得する。そして、この一連の処理の繰り返しが終了すると（ステップＳ２１１で「Ｎｏ」）、Ｘ座標及びＹ座標別に、各デジタルデータによって示されるそれぞれの値を平均化する（ステップＳ２１２）。これにより、Ｘ座標及びＹ座標を高精度で確定することができる（例えば特開平８−１７１４５０号公報を参照）。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記従来の装置では、一連の処理の繰り返し回数を増やす程、座標の検出精度が向上するものの、これに相反して処理時間が長くなり、指先やペンによる押下からＸ座標及びＹ座標の確定までの時間、つまりタッチパネルの応答性が悪くなった。勿論、一連の処理の繰り返し回数を減らせば、タッチパネルの応答性が改善されるものの、座標の検出精度が低下する。
【０００９】
そこで、本発明は、上記従来の問題点に鑑みてなされたものであり、座標の検出精度とタッチパネルの応答性を共に向上させることが可能なタッチパネル制御方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するために本発明は、タッチパネルにより該タッチパネル上の位置を検出し、この位置を示すアナログデータをデジタルデータに変換して転送するという一連の処理を複数回繰り返し、これにより得られた複数のデジタルデータに基づいて、該位置を判定するタッチパネル制御方法において、複数回目のデジタルデータの転送に際し、該複数回目のデジタルデータの下位の複数ビットのみを転送し、転送された下位の各ビットに、既に転送された他のデジタルデータの上位の各ビットを補足して、該複数回目のデジタルデータを得ている。
【００１１】
この様な本発明の方法によれば、複数回目のデジタルデータの転送に際し、該複数回目のデジタルデータの下位の複数ビットのみを転送している。これにより、データの転送時間を短縮化することができ、全体の処理時間も短縮化することができる。また、転送された下位の各ビットに、既に転送された他のデジタルデータの上位の各ビットを補足して、該複数回目のデジタルデータを得ている。通常、タッチパネルによる検出の度に、検出位置の誤差が生じたとしても、この誤差が僅かなものであり、この誤差がデジタルデータの下位の複数ビットのみに反映される。このため、下位の各ビットのみを転送し、この下位の各ビットに、既に転送された他のデジタルデータの上位の各ビットを補足することにより、該複数回目のデジタルデータを得ることができる。
【００１２】
また、本発明においては、前回得られたデジタルデータによって示される位置と今回得られたデジタルデータによって示される位置との差を求め、この差に応じて、次回のデジタルデータのうちの転送される下位の各ビット数を設定している。
【００１３】
例えば、前回得られたデジタルデータによって示される位置と今回得られたデジタルデータによって示される位置との差が小さければ、つまり検出位置の誤差が小さければ、この誤差が反映されるデジタルデータの下位の各ビット数が少なくなるので、次回のデジタルデータのうちの転送される下位の各ビット数を少なくしても、位置の検出精度が低下することはなく、データの転送時間を更に短縮化することができる。逆に、前回の位置と今回の位置との差が大きければ、つまり検出位置の誤差が大きければ、この誤差が反映されるデジタルデータの下位の各ビット数が多くなるので、次回のデジタルデータのうちの転送される下位の各ビット数を多くして、位置の検出精度の低下を防ぐ。
【００１６】
【発明の実施の形態】
以下、本発明の実施形態を添付図面を参照して詳細に説明する。
【００１７】
図１は、本発明の方法を適用したタッチパネル制御装置を示すブロック図である。このタッチパネル制御装置は、抵抗膜方式のタッチパネル１１と、タッチパネル１１からのアナログデータをデジタルデータに変換するＡ／Ｄ変換器１２と、このデジタルデータの転送制御等を行う制御部１３と、デジタルデータを格納するバッファ１４と、デジタルデータのうちの転送される下位の各ビットを設定するデータ変換部１５と、転送データの読み取り等を行うシリアルインターフェース１６と、このデータに基づいて、タッチパネル１１により検出された位置を判定するホスト演算部１７とを備えている。
【００１８】
近年、タッチパネル１１の解像度として、ＸＧＡ（１０２４×７６８）又はそれ以上を要求される。このため、Ａ／Ｄ変換器１２は、１２ビット（２12）の分解能を有するものとする。８ビットの分解能（２8 ）では、その要求されている解像度を充たすことができない。
【００１９】
１２ビットの分解能の場合は、図２に示す様にタッチパネル１１の左下角の原点座標（Ｘ0 ，Ｙ0 ）＝（000000000000,000000000000 ）であり、左上角の座標（Ｘ0 ，Ｙm ）＝（000000000000,111111111111 ）であり、右下角の座標（Ｘn ，Ｙ0 ）＝（111111111111,000000000000 ）であり、右上角の座標（Ｘn ，Ｙm ）＝（111111111111,111111111111 ）である。
【００２０】
次に、図３に示すフローチャートに従って、図１のタッチパネル制御装置による処理手順を説明する。
【００２１】
まず、指やペンによりタッチパネル１１の表面が押下されると、タッチパネル１１からホスト演算部１７へと割り込みがかかる（ステップＳ２１）。これに応答してホスト演算部１７は、割り込み有りと判定し（ステップＳ２２で「Ｙｅｓ」）、更に初回の座標検出であることを確認してから（ステップＳ２３で「Ｎｏ」）、Ｘ座標の読込みを示すコマンドをシリアルインターフェース１６を通じて制御部１３に与える（ステップＳ２４）。制御部１３は、このコマンドを与えられると、Ａ／Ｄ変換器１２を制御することにより、タッチパネル１１からのＸ座標を示すアナログデータをＡ／Ｄ変換器１２によりデジタルデータに変換させ（ステップＳ２５）、このＸ座標を示すデジタルデータを取り込んでバッファ１４に格納する（ステップＳ２６）。
【００２２】
引き続いて、ホスト演算部１７は、バッファ１４内のＸ座標を示すデジタルデータを読み込むために、このデジタルデータの１２ビット分のクロック信号をシリアルインターフェース１６を通じて制御部１３に与え、このデジタルデータをバッファ１４からシリアルインターフェース１６を通じて受け取る（ステップＳ２７）。
【００２３】
同様に、Ｙ座標のデジタルデータについても、Ｙ座標の読込みを示すコマンドがシリアルインターフェース１６を通じて制御部１３に与えられ（ステップＳ２８）、タッチパネル１１からのＹ座標を示すアナログデータがＡ／Ｄ変換器１２によりデジタルデータに変換され（ステップＳ２９）、このＹ座標を示すデジタルデータがバッファ１４に格納され（ステップＳ３０）、更に１２ビット分のクロック信号が制御部１３に与えられ、このクロック信号に同期して、このデジタルデータがホスト演算部１７で受信される（ステップＳ３１）。
【００２４】
通常、この様なＸ座標及びＹ座標の検出、アナログデータからデジタルデータへの変換、デジタルデータの取り込みという一連の処理を予め設定された回数だけ繰り返すので（ステップＳ３２で「Ｙｅｓ」）、ステップＳ２２に戻る。
【００２５】
次に、ホスト演算部１７は、２回目以降の座標検出であることを判定すると（ステップＳ２３で「Ｙｅｓ」）、デジタルデータのうちの転送される下位の各ビット数を求める（ステップＳ３３）。
【００２６】
ここで、２回目に検出される座標（Ｘ2 ，Ｙ2 ）は、初回に検出された座標から大きく外れることがない。従って、２回目に検出される座標のずれは、初回に検出された座標（Ｘ1 ，Ｙ1 ）の下位の各ビットのみに反映される。例えば、図２に示す様に初回に検出された座標（Ｘ1 ，Ｙ1 ）＝（001000000001,001000000000 ）とすると、２回目に検出される座標（Ｘ2 ，Ｙ2 ）のずれが初回に検出された座標（Ｘ1 ，Ｙ1 ）の下位の５ビットのみに反映され、２回目に検出される座標（Ｘ2 ，Ｙ2 ）＝（0010000xxxxx,0010000yyyyy ）となる。ただし、ｘ，ｙ＝０or１である。このため、初回に検出された座標（Ｘ1 ，Ｙ1 ）のそれぞれの上位７ビットを２回目に検出される座標（Ｘ2 ，Ｙ2 ）のそれぞれの下位５ビットに付加すれば、２回目に検出される座標（Ｘ2 ，Ｙ2 ）を得ることができる。
【００２７】
そこで、ホスト演算部１７は、デジタルデータのうちの転送される下位の各ビット数として、予め設定された５ビットを記憶しており（ステップＳ３３）、Ｘ座標の下位５ビットの読込みを示すコマンドをシリアルインターフェース１６を通じて制御部１３に与える（ステップＳ３４）。制御部１３は、このコマンドを与えられると、Ｘ座標の下位５ビットの取り込みをデータ変換部１５に指示した後に、Ａ／Ｄ変換器１２を制御することにより、タッチパネル１１からのＸ座標を示すアナログデータをＡ／Ｄ変換器１２によりデジタルデータに変換させ（ステップＳ３５）、このＸ座標のデジタルデータの下位５ビット（xxxxx ）をデータ変換部１５により取り込ませ（ステップＳ３６）、このＸ座標の下位５ビット（xxxxx ）をバッファ１４に格納する（ステップＳ３７）。
【００２８】
引き続いて、ホスト演算部１７は、バッファ１４内のＸ座標の下位５ビットを読み込むために、５ビット分のクロック信号をシリアルインターフェース１６を通じて制御部１３に与え、Ｘ座標の下位５ビット（xxxxx ）をバッファ１４からシリアルインターフェース１６を通じて受け取る（ステップＳ３８）。そして、ホスト演算部１７は、初回に検出されたＸ座標の上位７ビット（0010000 ）を２回目に検出されたＸ座標の下位５ビット（xxxxx ）に付加して、２回目に検出されたＸ座標（0010000xxxxx）を得る（ステップＳ３９）。
【００２９】
同様に、Ｙ座標のデジタルデータについても、Ｙ座標の下位５ビットの読込みを示すコマンドがシリアルインターフェース１６を通じて制御部１３に与えられ（ステップＳ４０）、Ｙ座標の下位５ビットの取り込みがデータ変換部１５に指示された後に、タッチパネル１１からのＹ座標を示すアナログデータがＡ／Ｄ変換器１２によりデジタルデータに変換され（ステップＳ４１）、このＹ座標のデジタルデータの下位５ビット（yyyyy ）がデータ変換部１５により取り込まれてバッファ１４に格納される（各ステップＳ４２，Ｓ４３）。そして、５ビット分のクロック信号が制御部１３に与えられ、このクロック信号に同期して、Ｙ座標の下位５ビット（yyyyy ）がホスト演算部１７で受信され（ステップＳ４４）、初回に検出されたＹ座標の上位７ビット（0010000 ）が２回目に検出されたＹ座標の下位５ビット（yyyyy ）に付加されて、２回目に検出されたＹ座標（0010000yyyyy）が得られる（ステップＳ４５）。
【００３０】
ここで、ホスト演算部１７から制御部１３に与えれるコマンドを１２ビットとすると、初回の座標の検出に際しては、Ｘ座標及びＹ座標共に、コマンドの１２ビットとデジタルデータの１２ビットを転送しており、合計４８ビットの転送である。これに対して、２回目の座標の検出に際しては、Ｘ座標及びＹ座標共に、コマンドの１２ビットと下位５ビットを転送しており、合計３４ビットの転送に過ぎない。従って、２回目の座標の検出時には、１４ビット分の転送時間だけ、処理時間を短縮化することができる。
【００３１】
以降同様に、デジタルデータの取り込みという一連の処理を予め設定された回数だけ繰り返していなければ（ステップＳ３２で「Ｙｅｓ」）、各ステップＳ２３，Ｓ３３〜Ｓ４５を繰り返し、Ｘ座標及びＹ座標共に、コマンドの１２ビットと下位５ビットを転送し、Ｘ座標及びＹ座標を検出する。そして、この一連の処理を予め設定された回数だけ繰り返すと（ステップＳ３２で「Ｎｏ」）、この一連の処理の繰り返しにより得られた各Ｘ座標及び各Ｙ座標をそれぞれ平均して、この平均を座標として確定して求める。この結果、タッチパネル１１上で指示された座標が高精度で検出される。
【００３２】
更に、タッチパネル１１からの割り込みが継続していれば（ステップＳ２２で「Ｙｅｓ」）、各ステップＳ２３〜Ｓ４５を繰り返して、新たな座標を検出する。
【００３３】
この様に本実施形態では、２回目以降の座標の検出に際しては、Ｘ座標及びＹ座標共に、コマンドの１２ビットと座標の下位５ビットを転送しているので、合計３４ビットの転送に過ぎず、１４ビット分の転送時間だけ、処理時間を短縮化することができる。更に、例えば座標の検出を１１回繰り返して、これらの座標の平均を求めるとするならば、１４０ビット分の転送時間だけ、全体の処理時間を短縮化することができる。
【００３４】
ところで、例えば初回に検出された座標（Ｘ1 ，Ｙ1 ）＝（001111111111,001111111111 ）とすると、２回目以降に検出される座標のずれがＸ座標及びＹ座標共に＋１のときには、桁上がりとなって、座標（Ｘ2 ，Ｙ2 ）＝（010000000000,010000000000 ）となる。この場合は、初回に検出されたＸ座標の上位７ビットを２回目に検出されたＸ座標の下位５ビットに付加しても、２回目に検出されたＸ座標を得ることはできない。
【００３５】
そこで、前回検出された座標の下位５ビットと今回検出された座標の下位の５ビットを比較し、下位５ビットが（00000 ）から（11111 ）に変化したときには、初回に検出された座標の上位７ビットを桁上げし、また下位５ビットが（11111 ）から（00000 ）に変化したときには、初回に検出された座標の上位７ビットを桁下げする。ただし、実際には、２回目以降に検出される座標のずれが＋２以上あるいは−２以下になることがあるので、下位５ビットの（00000 ）及び（11111 ）だけに注目するのではなく、（00000 ）の近傍から（11111 ）の近傍に変化したときには、初回に検出された座標の上位７ビットを桁上げし、また（11111 ）の近傍から（00000 ）の近傍に変化したときには、初回に検出された座標の上位７ビットを桁下げする。通常、指やペンをタッチパネル１１上で高速にドラッグしたとしても、前回検出された座標と今回検出された座標間でのビット変化は、下位の数ビットに現われるに過ぎない。このため、例えば下位５ビットが（11110 ）から（00001 ）に変化したときには、座標が十進数で「６１」だけ変化したのではなく、十進数で「２」だけ変化したとみなして差し支えない。
【００３６】
また、図３のステップＳ３３においては、デジタルデータのうちの転送される下位の各ビット数として、予め設定された５ビットを固定的に設定しているが、２回目以降に検出される座標のずれの大きさに応じて、下位の各ビット数を変更しても構わない。例えば、座標のずれが小さければ、このずれが反映される下位の各ビット数が少なくなるので、次回に転送される下位の各ビット数を「３」に減少させても、座標の検出精度が低下することはなく、データの転送時間を更に短縮化することができ、タッチパネル１１の応答性を向上させることができる。逆に、座標のずれが大きければ、このずれが反映される下位の各ビット数が多くなるので、次回に転送される下位の各ビット数を「７」に増大させて、座標の検出精度の低下を防ぐ。
【００３７】
この様な座標のずれの大きさに応じて下位の各ビット数を変更するための処理手順を図４のフローチャートに示す。
【００３８】
まず、ホスト演算部１７は、図４の処理に入ると（ステップＳ５１）、初回に検出された（Ｘ1 ，Ｙ1 ）を記憶しておき（ステップＳ５２）、２回目の検出に際し、予め設定された５ビットを設定し、２回目に検出された座標（Ｘ2 ，Ｙ2 ）を記憶する（ステップＳ５３）。そして、ホスト演算部１７は、３回目の検出に際し、初回に検出された座標（Ｘ1 ，Ｙ1 ）から２回目に検出された座標（Ｘ2 ，Ｙ2 ）を減算して、座標のずれ量Δ＝（｜Ｘ2 −Ｘ1 ｜，｜Ｙ2 −Ｙ1 ｜）を求める（ステップＳ５４）。更に、ホスト演算部１７は、座標のずれ量Δの数割のマージンを見込んで、このマージンを見込んだ値に対応する下位の各ビット数を設定する（ステップＳ５５）。
【００３９】
同様に、４回目以降の検出に際しては、前回検出された座標（Ｘn ，Ｙn ）から今回検出された座標（Ｘn+1 ，Ｙn+1 ）を減算して、座標のずれ量Δを求め、この座標のずれ量Δの数割のマージンを見込んで、このマージンを見込んだ値に対応する下位の各ビット数を設定する。
【００４０】
こうして座標のずれの大きさに応じて下位の各ビット数を変更すれば、タッチパネル１１の検出精度が環境変化や経時変化により劣化したとしても、複数回の検出の繰り返しにより確定される座標の精度を維持することができる。
【００４１】
更に、図４のステップＳ５４において求められた座標のずれ量Δに応じて、各ステップＳ２３，Ｓ３３〜Ｓ４５の一連の処理の繰り返し回数を変更しても構わない。例えば、座標のずれ量Δが小さければ、この一連処理の繰り返し回数を少なくてしても、座標の検出精度が低下することはなく、該一連の処理時間を短縮化することができ、タッチパネル１１の応答性を向上させることができる。逆に、座標のずれ量Δが大きければ、一連の処理の繰り返し回数を多くして、座標の検出精度の低下を防ぐ。この場合でも、２回目以降の座標の検出に際しては、座標の下位の各ビットのみを転送して、処理時間を短縮化するので、従来の装置と比較すると、タッチパネル１１の応答性を向上させることができる。
【００４２】
尚、本発明は、上記実施形態に限定されるものではなく、多様に変形することができる。例えば、Ａ／Ｄ変換器の分解能や転送される下位の各ビット数を適宜に変更しても良い。また、抵抗膜方式のタッチパネルだけではなく、他の方式のタッチパネルに本発明を適用しても構わない。
【００４３】
【発明の効果】
以上説明した様に本発明によれば、複数回目のデジタルデータの転送に際し、該複数回目のデジタルデータの下位の複数ビットのみを転送している。これにより、データの転送時間を短縮化することができ、全体の処理時間も短縮化することができる。また、転送された下位の各ビットに、既に転送された他のデジタルデータの上位の各ビットを補足して、該複数回目のデジタルデータを得ている。
【００４４】
また、本発明によれば、前回得られたデジタルデータによって示される位置と今回得られたデジタルデータによって示される位置との差を求め、この差に応じて、次回のデジタルデータのうちの転送される下位の各ビット数を設定している。これにより、位置の検出精度の低下を招かずに、データの転送時間を更に短縮化することができる。
【００４５】
更に、本発明によれば、前回得られたデジタルデータによって示される位置と今回得られたデジタルデータによって示される位置との差を求め、この差に応じて、タッチパネル上の位置の検出からデジタルデータの転送までの一連の処理の繰り返し回数を設定している。これにより、全体処理時間を更に短縮化したり、位置の検出精度の低下を防ぐことができる。
【図面の簡単な説明】
【図１】本発明の方法を適用したタッチパネル制御装置を示すブロック図である。
【図２】図１の装置におけるタッチパネルの座標系を示す図である。
【図３】図１の装置による処理手順を示すフローチャートである。
【図４】図１の装置による下位の各ビット数を変更するための処理手順を示すフローチャートである。
【図５】従来の装置を示すブロック図である。
【図６】図５の装置による処理手順を示すフローチャートである。
【符号の説明】
１１  タッチパネル
１２  Ａ／Ｄ変換器
１３  制御部
１４  バッファ
１５  データ変換部
１６  シリアルインターフェース
１７  ホスト演算部
【図１】
0004615164.tif 000002
【図２】
0004615164.tif 000003
【図３】
0004615164.tif 000004
【図４】
0004615164.tif 000005
【図５】
0004615164.tif 000006
【図６】
0004615164.tif 000007