(58)【調査した分野】(Int.Cl.,DB名)
第1段階のスキャニング動作において、前記駆動部が前記選択したドライブライン以外の他のドライブラインに0または前記駆動電圧よりも小さいバイアス電圧をかけた状態で、前記電圧検出部が前記選択したセンシングラインの第1の出力電圧を検出し、
第2段階のスキャニングにおいて、前記駆動部が前記選択したドライブライン以外の他のドライブラインをハイインピーダンスにした状態で、前記電圧検出部が前記選択したセンシングラインの第2の出力電圧を検出し、
前記演算部は、前記第1の出力電圧と前記第2の出力電圧を演算して最終的な出力電圧を求め、前記駆動電圧および前記最終的な出力電圧にもとづいて、前記選択したドライブラインと前記選択したセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求めることを特徴とする請求項4に記載のタッチ入力デバイス制御装置。
第1段階のスキャニング動作において、前記電圧検出部は、前記バイアス電圧以下の出力電圧を検出した場合は、検出結果を破棄するキャンセル処理を行うことを特徴とする請求項5に記載のタッチ入力デバイス制御装置。
第1方向および第2方向それぞれに複数の導電体ラインが配置され、2本の導電体ラインが交差する箇所に感圧抵抗体が設けられたタッチ入力デバイスに対して、前記第1方向に配置された導電体ラインをドライブラインとして、複数のドライブラインから順次一本のドライブラインを選択し、選択したドライブラインに駆動電圧をかける駆動ステップと、
前記第2方向に配置された導電体ラインをセンシングラインとして、複数のセンシングラインから順次一本のセンシングラインを選択し、選択したセンシングラインの出力電圧を検出する電圧検出ステップと、
前記駆動電圧および前記出力電圧にもとづいて、前記選択したドライブラインと前記選択したセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求める演算ステップとを含み、
前記駆動ステップは、前記選択したドライブライン以外の他のドライブラインに0または前記駆動電圧よりも小さいバイアス電圧をかけ、
前記電圧検出ステップは、前記バイアス電圧以下の出力電圧を検出した場合は、検出結果を破棄するキャンセル処理を行うことを特徴とするタッチ入力デバイス制御方法。
第1方向および第2方向それぞれに複数の導電体ラインが配置され、2本の導電体ラインが交差する箇所に感圧抵抗体が設けられたタッチ入力デバイスに対して、前記第1方向に配置された導電体ラインをドライブラインとして、複数のドライブラインから順次一本のドライブラインを選択し、選択したドライブラインに駆動電圧をかける駆動ステップと、
前記第2方向に配置された導電体ラインをセンシングラインとして、複数のセンシングラインから順次一本のセンシングラインを選択し、選択したセンシングラインの出力電圧を検出する電圧検出ステップと、
前記駆動電圧および前記出力電圧にもとづいて、前記選択したドライブラインと前記選択したセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求める演算ステップとを含み、
前記駆動ステップによりドライブラインへの駆動電圧の供給と前記電圧検出ステップによるセンシングラインからの出力電圧の検出を含むスキャニング動作を2段階で行い、第1段階のスキャニング動作と第2段階のスキャニング動作において前記駆動ステップが前記選択したドライブライン以外の他のドライブラインに与える電気的状態は異なっており、
前記演算ステップは、第1段階のスキャニング動作において前記電圧検出ステップにより検出される第1の出力電圧と、第2段階のスキャニング動作おいて前記電圧検出ステップにより検出される第2の出力電圧とを演算して、最終的な出力電圧を求め、前記駆動電圧および前記最終的な出力電圧にもとづいて、前記選択したドライブラインと前記選択したセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求めることを特徴とするタッチ入力デバイス制御方法。
第1方向および第2方向それぞれに複数の導電体ラインが配置され、2本の導電体ラインが交差する箇所に感圧抵抗体が設けられたタッチ入力デバイスに対して、前記第1方向に配置された導電体ラインをドライブラインとして、複数のドライブラインから順次選択されるドライブラインに駆動電圧をかけ、前記選択されたドライブライン以外の他のドライブラインに0または前記駆動電圧よりも小さいバイアス電圧をかけた状態で、前記第2方向に配置された導電体ラインをセンシングラインとして、複数のセンシングラインから順次選択されるセンシングラインから検出された出力電圧を受け取り、前記駆動電圧および前記出力電圧にもとづいて、前記選択されたドライブラインと前記選択されたセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求め、前記バイアス電圧以下の出力電圧を検出した場合は、検出結果を破棄するキャンセル処理を行う演算機能をコンピュータに実現させることを特徴とするプログラム。
第1方向および第2方向それぞれに複数の導電体ラインが配置され、2本の導電体ラインが交差する箇所に感圧抵抗体が設けられたタッチ入力デバイスに対して、前記第1方向に配置された導電体ラインをドライブラインとして、複数のドライブラインから順次選択されるドライブラインに駆動電圧をかけた状態で、前記第2方向に配置された導電体ラインをセンシングラインとして、複数のセンシングラインから順次選択されるセンシングラインから検出された出力電圧を受け取り、前記駆動電圧および前記出力電圧にもとづいて、前記選択されたドライブラインと前記選択されたセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求める演算機能をコンピュータに実現させ、
ドライブラインへの駆動電圧の供給とセンシングラインからの出力電圧の検出を含むスキャニング動作を2段階で行い、第1段階のスキャニング動作と第2段階のスキャニング動作において前記選択されたドライブライン以外の他のドライブラインに与える電気的状態は異なっており、
前記演算機能は、第1段階のスキャニング動作において前記選択されたセンシングラインから検出される第1の出力電圧と、第2段階のスキャニング動作おいて前記選択されたセンシングラインから検出される第2の出力電圧とを演算して、最終的な出力電圧を求め、前記駆動電圧および前記最終的な出力電圧にもとづいて、前記選択されたドライブラインと前記選択されたセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求めることを特徴とするプログラム。
【発明を実施するための形態】
【0014】
図1は、実施の形態に係るタッチ入力処理装置100の構成図である。
図1に示すタッチ入力処理装置100の機能構成の一部または全部は、一例として、パーソナルコンピュータ、ゲーム機、携帯機器、携帯端末などにハードウェア、ソフトウェアまたはその組み合わせによって実装することができる。
【0015】
タッチ入力処理装置100は、タッチ入力デバイスユニット140、メインプロセッサ150、およびメモリ160を含む。タッチ入力デバイスユニット140は、タッチ入力デバイス110と、フレキシブル基板120によりタッチ入力デバイス110に接続されたタッチ入力デバイスコントローラ130とを含む。
【0016】
タッチ入力デバイス110は、各種方式で、指などによる接触点(位置)(以下、「タッチ点(位置)」と呼ぶ)と、タッチ点(位置)における接触状態を示す静電容量や電気抵抗量などの検知量(以下、「タッチ状態量」と呼ぶ)を検出する入力装置である。
【0017】
タッチ入力デバイス110の一例は、タッチパネルである。タッチパネルは、透明パネルデバイスであり、液晶ディスプレイや有機EL(electroluminescence)ディスプレイなどの表示装置の上に重ねて設置される。これにより、ユーザはディスプレイの画面を見ながら、タッチパネルに指で直接触れることで画面に対する操作を入力することができる。タッチ入力デバイス110の別の例は、タッチパッドである。タッチパッドは、不透明なタッチ入力デバイスであり、ディスプレイは付属しない。
【0018】
タッチ入力デバイス110におけるタッチ点とタッチ状態量の検出方式には、静電容量方式と感圧方式とがある。静電容量方式の場合、タッチ入力デバイスコントローラ130は、タッチ入力デバイス110の各点の静電容量の変化量を測定してタッチ点の位置とタッチ点の静電容量値を検出する。感圧方式の場合、タッチ入力デバイスコントローラ130は、タッチ入力デバイス110の各点の圧力の変化量を測定してタッチ点の位置とタッチ点の圧力値を検出する。本実施の形態では、感圧方式のタッチ入力デバイス110を前提とした実施例を説明する。
【0019】
感圧型タッチパッドの一例として、特殊な感圧材料をPETフィルムに印刷したものがあり、「フェザータッチ」のような羽毛で触れるごとくにほんの少しだけ触れる微圧のタッチから、指先に力を入れて触れる高押圧のタッチまでダイナミックレンジの広い圧力計測が可能である。
【0020】
メインプロセッサ150は、タッチ入力デバイスコントローラ130が検出したタッチ点の位置および状態量の時系列データを取得して、メモリ160に対してデータを読み書きする。
【0021】
図2は、タッチ入力デバイスコントローラ130の機能構成図である。タッチ入力デバイスコントローラ130は、駆動部10、電圧検出部20、A/D変換部30、演算・制御部40、出力バッファ50、および出力部90を含む。
【0022】
駆動部10は、タッチ入力デバイス110のドライブラインに駆動電圧を供給し、電圧検出部20は、タッチ入力デバイス110のセンシングラインから出力電圧を検出する。A/D変換部30は、検出された出力電圧をA/D変換する。
【0023】
演算・制御部40は、駆動電圧と出力電圧から、ドライブラインとセンシングラインが交差する箇所に設けられた感圧抵抗体の抵抗値を求め、感圧抵抗体の特性から感圧抵抗体に加えられた圧力を求め、出力バッファ50に保持する。また、演算・制御部40は、駆動部10がドライブラインを駆動するタイミングおよび電圧検出部20がセンシングラインをスキャンするタイミングを制御する。出力部90は、出力バッファ50からドライブラインとセンシングラインの各交点の圧力を示すデータを読み出して、メインプロセッサ150へ送信する。
【0024】
図3は、タッチ入力デバイス110の内部構造を説明する図である。同図に示すように、投影(projection)型感圧マルチタッチパネルでは、水平方向、垂直方向にそれぞれ短冊状の導電体ラインが配置され、導電体ラインの交点に感圧抵抗体が塗られている。導電体ラインは銀、銅、カーボンなどの素材で形成されている。感圧抵抗体は、加える圧力により抵抗値が大きく変化する材料である。
【0025】
タッチ入力デバイス110の水平方向に配置されたm本の導電体ライン(横ライン)が電圧をかけるドライブラインであり、垂直方向に配置されたn本の導電体ライン(縦ライン)が電圧値を読み取るセンシングラインである。
【0026】
駆動部10は、m本のドライブラインの内、i番目のドライブラインに駆動電圧Vccをかけ、電圧検出部20は、n本のセンシングラインの内、j番目のセンシングラインから出力電圧Voutを検出する。A/D変換部30は、検出された出力電圧VoutをA/D変換する。演算・制御部40は、駆動電圧Vccと出力電圧Voutから、i番目のドライブラインとj番目のセンシングラインの交点(i,j)の感圧抵抗体の抵抗値Rを求める。
【0027】
センシングしたい交点(i,j)の感圧抵抗体の抵抗値Rは加えた圧力fの関数であるから、R(f)と書くことにすると、出力電圧Voutは、駆動電圧Vccと交点の感圧抵抗体の抵抗値R(f)を用いて次式で表される。
Vout=Vcc×Rp/(R(f)+Rp) (1)
【0028】
ここで、Rpは、各センシングラインに接続されたプルダウン抵抗Rpである。これは交点にタッチしていないときのセンシングラインの電圧値を0ボルトに安定させる作用を奏する。感圧抵抗体の抵抗値の変化範囲に合わせてプルダウン抵抗Rpの値を設定する。プルダウン抵抗Rpは検出したいR(f)の最大値よりも大きめに設定する。たとえば1kΩから100kΩに設定することが一般的である。
【0029】
交点にタッチしていないとき、R(f)→∞であることから、Vout→0となる。交点に強くタッチすると、R(f)→0となり、Vout→Vccとなる。
【0030】
上記の式(1)をR(f)について解くと、次式(2)を得る。
R(f)=Rp×(Vcc−Vout)/Vout (2)
これにより、駆動電圧Vccのもとで出力電圧Voutを検出すれば、交点の感圧抵抗体の抵抗値R(f)を求めることができる。
【0031】
ドライブライン、センシングラインを順次切り替えて出力電圧Voutの測定を行えば、すべての交点の感圧抵抗体の抵抗値R(f)を得ることができる。ドライブラインがm本、センシングラインがn本の場合、m×n回の出力電圧の検出とA/D変換を行うことになる。
【0032】
図4は、感圧抵抗体に加えた圧力fと感圧抵抗体の抵抗値Rの関係を示すグラフである。圧力fの単位はN/m
2であり、抵抗値Rの単位はΩである。圧力(pressure)の代わりに単位がNの力(force)を用いてもよい。f−R曲線は一般に同図のような単調減少曲線であり、圧力が大きいほど抵抗値は小さくなる。曲線の次数、形状は感圧抵抗体の素材により異なる。感圧抵抗体のf−R特性を示すグラフをテーブルにしたものを出力バッファ50に保持しておく。
【0033】
演算・制御部40は、感圧抵抗体のf−R特性を示すグラフまたはテーブルにもとづいて、感圧抵抗体の抵抗値Rに対応する圧力fを求め、センシングされた交点の圧力fを出力バッファ50に記憶する。圧力fが0あるいは所定の閾値以上であれば、その交点はタッチされているとみなすことができる。出力部90は、出力バッファ50から各交点の圧力を示すデータを読み出して出力する。
【0034】
図5は、感圧マルチタッチパネルのセンシング手順を説明するフローチャートである。
【0035】
ドライブラインを指定する変数iを1に初期化する(S10)。センシングラインを指定する変数jを1に初期化する(S12)。
【0036】
駆動部10は、タッチ入力デバイス110のドライブラインiに駆動電圧Vccを供給する(S14)。電圧検出部20は、タッチ入力デバイス110のセンシングラインjの出力電圧Voutを検出し、A/D変換部30は、検出された出力電圧VoutをA/D変換する(S16)。演算・制御部40は、上記の式(2)にもとづいて、駆動電圧Vccと出力電圧Voutから交点(i,j)の感圧抵抗体の抵抗値Rを算出する(S18)。演算・制御部40は、f−R曲線にもとづいて、感圧抵抗体の抵抗値Rから交点(i,j)に加えられた圧力fを求める(S20)。
【0037】
センシングラインを指定する変数jを1だけインクリメントし(S22)、変数jがn以下である場合(S24のN)、ステップS14に戻り、ステップS14からステップS22までを繰り返す。変数jがnを超えた場合(S24のY)、ドライブラインを指定する変数iを1だけインクリメントし(S26)、変数iがm以下である場合(S28のN)、ステップS12に戻り、ステップS12からステップS26までを繰り返す。変数iがmを超えた場合(S28のY)、処理を終了する。
【0038】
このようなセンシング手順によってマルチタッチ入力を検出することができる。しかしながら、特に感圧式タッチパネル/タッチパッドの場合、マルチタッチ入力の検出の際、実際にはタッチしていない交点から圧力fが検出されるという「ゴーストタッチ」の問題が生じることがあった。
【0039】
図6Aおよび
図6Bは、マルチタッチ入力の際に発生するゴーストタッチを説明する図である。
【0040】
図6Aに示すように、タッチ入力デバイス110において、交点(1,1)(符号200a)、交点(4,1)(符号200b)、交点(4,5)(符号200c)を実際にタッチしたとする。この3点を同時にタッチしているときに、ドライブライン1に駆動電圧Vccを供給し、センシングライン5の出力電圧Voutを検出したとする。原理的には交点(1,5)はタッチしていないので、交点(1,5)の感圧抵抗体の抵抗値Rは無限大であり、出力電圧Voutは0になるはずである。
【0041】
しかしながら、
図6Bに示すように、3つのタッチ点が押されていることから、ドライブライン1に駆動電圧Vccを供給した状態でセンシングライン5から出力電圧Voutを検出すると、実線で示したように電流が流れることになる。すなわち、電流は、ドライブライン1から入って交点(1,1)の感圧抵抗体を通り、センシングライン1に入って交点(4,1)の感圧抵抗体を通り、さらにドライブライン4に入って交点(4,5)の感圧抵抗体を通り、最後にセンシングライン5を通って出力される。これにより、交点(1,5)(符号210)は実際にはタッチしていないにもかかわらず、ドライブライン1に駆動電圧Vccが供給されると、センシングライン5から0でない出力電圧Voutが検出されてしまう。その結果、交点(1,5)の感圧抵抗体に0でない圧力fが加わったとみなされる。これが「ゴーストタッチ」の問題である。
【0042】
図7は、従来の感圧マルチタッチパネルのスキャニング方法を説明する図である。従来は、導電体ラインの各交点をスキャニングする際、スキャニング対象となるドライブラインにのみ駆動電圧Vccをかけ、他のドライブラインはハイインピーダンス(Hi−Z)にしていた。これにより、信号を検出するライン以外のラインを電気的に絶縁することができ、圧力センシングの感度とダイナミックレンジを大きくすることができる。しかしながら、スキャニング対象となるドライブライン以外のドライブラインがどんな電位にもなりうるため、
図6Bで説明したような電流が流れることになり、スキャニング対象となるドライブラインとセンシングラインの交点(符号210)においてゴーストタッチが発生することを避けることができない。
【0043】
そこで、本実施の形態では、
図8Aおよび
図8Bで説明する2段階のスキャニング方法を採用する。
図8Aは第1段階のスキャニングを示し、
図8Bは第2段階のスキャニングを示す。
【0044】
第1段階において、
図8Aに示すように、交点(1,5)のスキャニングをするにあたって、駆動部10は、ドライブライン1に駆動電圧Vccをかけ、他のドライブライン2〜5は0ボルトにドライブし、電圧検出部20は、センシングライン5から出力電圧V1を検出し、A/D変換部30が検出された出力電圧V1をA/D変換する。ここでは、交点(1,5)のスキャニングを説明したが、他の交点についても同様に、スキャニング対象となるドライブラインに駆動電圧Vccをかけ、他のドライブラインは0ボルトにドライブし、センシングラインから出力電圧V1を検出する。
【0045】
第2段階において、
図8Bに示すように、交点(1,5)のスキャニングをするにあたって、駆動部10は、ドライブライン1に駆動電圧Vccをかけ、他のドライブライン2〜5はハイインピーダンスにして、電圧検出部20は、センシングライン5から出力電圧V2を検出し、A/D変換部30が検出された出力電圧V2をA/D変換する。第2段階のスキャニング方法は、
図7の従来のスキャニング方法と同じである。
【0046】
演算・制御部40は、第1段階で検出された出力電圧V1と第2段階で検出された出力電圧V2を乗算し、A/D変換のダイナミックレンジで除算することにより、最終的な出力電圧Voutを求める。
Vout=V2×V1/(ADCダイナミックレンジ)
【0047】
さらに、演算・制御部40は、式(2)にもとづいて駆動電圧Vccと出力電圧Voutから交点の抵抗値Rを求め、f−Rグラフから交点の圧力fを求める。
【0048】
図8Aおよび
図8Bに示した2段階のスキャニング手法により、ゴーストタッチがキャンセルされることを
図9および
図10を用いて説明する。
【0049】
まず、交点(1,1)(符号200a)、交点(4,1)(符号200b)、交点(4,5)(符号200c)の3点を実際にタッチしており、交点(1,5)は実際にはタッチされていない場合を考える。交点(1,1)、交点(4,1)、交点(4,5)の感圧抵抗体の抵抗値をそれぞれR1、R2、R3とする。
【0050】
図9(a)は、第1段階のスキャニングにおいて検出される出力電圧V1を説明する図であり、
図9(b)は、
図9(a)の等価回路である。
図9(a)に示すように、ドライブライン1に駆動電圧Vccがかけられ、ドライブライン4は0ボルトにドライブされており、センシングライン5にはプルダウン抵抗Rpとして10kΩの抵抗が接続されている。このとき、
図9(b)に示すように、ドライブライン4が0ボルトにドライブされていることから、交点(1,5)が現実にタッチされていない場合、出力電圧V1は必ず0ボルトになる。
【0051】
このようにスキャニング対象となるドライブライン1に駆動電圧Vccをかけ、他のドライブライン2〜5を0ボルトとした場合、原理的にはゴーストタッチが検出されることはない。この第1段階のスキャニングだけでも、基本的にはゴーストキャッチのキャンセルが行われていることになる。しかし、実際の指によるタッチでは指の太さにより、タッチ位置にある感圧抵抗体だけでなく周囲の導電体にも触れることになり、周囲のドライブラインは0ボルトであることから、電圧降下が起きる。そのため、交点(1,5)がゴーストタッチでなく、実際にタッチしていた場合、出力電圧V1の値が周囲のドライブラインの0ボルトに引きずられて小さくなってしまい、圧力値の分解能が落ちてしまう。そこで、第2段階のスキャニングを組み合わせて検出感度を高めることがより好ましい。
【0052】
図10(a)は、第2段階のスキャニングにおいて検出される出力電圧V2を説明する図であり、
図10(b)は、
図10(a)の等価回路である。
図10(a)に示すように、ドライブライン1に駆動電圧Vccがかけられ、ドライブライン4はハイインピーダンスにされており、センシングライン5にはプルダウン抵抗Rpとして10kΩの抵抗が接続されている。このとき、
図10(b)に示すように、ドライブライン4がハイインピーダンスにされていることから、交点(1,5)が現実にタッチされていない場合、出力電圧V2は正の値になる(ゼロにはならない)。すなわち、第2段階のスキャニングでは、従来のスキャニングと同じであるから、ゴーストタッチが検出される。
【0053】
交点(1,5)が実際にはタッチされていない場合、第1段階で検出された出力電圧V1と第2段階で検出された出力電圧V2を乗算してA/D変換のダイナミックレンジで除算することにより最終的な出力電圧Voutを求めると、V1=0、V2>0であることから、Vout=V2×V1/(ADCダイナミックレンジ)=0となる。すなわち、V1=0であることから、ゴーストタッチはキャンセルされ、検出されない。
【0054】
次に、交点(1,5)が現実にタッチされている場合を考える。この場合、第1段階のスキャニングでは、交点(1,5)の感圧抵抗体の抵抗値をR0とすると、現実にタッチされていることから、上記の式(1)にしたがって、出力電圧V1=Vcc×Rp/(R0+Rp)が検出される。すなわち、V1≠0である。第2段階のスキャニングにおいても、同様に、出力電圧V2=Vcc×Rp/(R0+Rp)が検出される。もっとも前述のように電圧降下により、出力電圧V1は出力電圧V2よりも小さく検出される(V1<V2)。これより、交点(1,5)が現実にタッチされていない場合、最終的な出力電圧Voutを求めると、Vout=V2×V1/(ADCダイナミックレンジ)≠0となる。すなわち、V1≠0であることから、交点(1,5)が現実のタッチされている場合は、高感度で出力電圧Voutが得られる。
【0055】
以上述べたように、第1段階のスキャニングで検出された出力電圧V1と第2段階のスキャニングで検出された出力電圧V2を乗算して最終的な出力電圧Voutを求めることにより、ゴーストタッチの場合は、出力電圧Voutがゼロとなり、ゴーストタッチはキャンセルされる一方、現実にタッチされていた場合は、高感度で出力電圧Voutが検出される。
【0056】
本実施の形態のセンシング方法では、スキャニングが2回必要になるが、マイコンおよび内蔵A/D変換器の性能が十分に高ければ、実用上の問題は生じない。また、ドライブラインをVcc、0V、Hi−Zの3つの電気的状態にする必要があるが、一般的なマイコンのI/Oポートは3状態をソフトウェア制御可能なので実装上も別途付加ハードウェアを必要としない。
【0057】
図11〜
図13は、本実施の形態のタッチ入力デバイス110のセンシング手順を説明するフローチャートである。
【0058】
図11は、第1段階のスキャニング手順を説明するフローチャートである。
【0059】
ドライブラインを指定する変数iを1に初期化する(S30)。センシングラインを指定する変数jを1に初期化する(S32)。
【0060】
駆動部10は、ドライブラインiに駆動電圧Vccを供給し、他のドライブラインを0Vにする(S34)。電圧検出部20は、センシングラインjの出力電圧V1を検出し、A/D変換部30は、検出された出力電圧V1をA/D変換する(S36)。検出された出力電圧V1は出力バッファ50に保持される。
【0061】
センシングラインを指定する変数jを1だけインクリメントし(S38)、変数jがn以下である場合(S40のN)、ステップS34に戻り、ステップS34からステップS38までを繰り返す。変数jがnを超えた場合(S40のY)、ドライブラインを指定する変数iを1だけインクリメントし(S42)、変数iがm以下である場合(S44のN)、ステップS32に戻り、ステップS32からステップS42までを繰り返す。変数iがmを超えた場合(S44のY)、処理を終了する。
【0062】
図12は、第2段階のスキャニング手順を説明するフローチャートである。
【0063】
ドライブラインを指定する変数iを1に初期化する(S50)。センシングラインを指定する変数jを1に初期化する(S52)。
【0064】
駆動部10は、ドライブラインiに駆動電圧Vccを供給し、他のドライブラインをHi−Zにする(S54)。電圧検出部20は、センシングラインjの出力電圧V2を検出し、A/D変換部30は、検出された出力電圧V2をA/D変換する(S56)。検出された出力電圧V2は出力バッファ50に保持される。
【0065】
センシングラインを指定する変数jを1だけインクリメントし(S58)、変数jがn以下である場合(S60のN)、ステップS54に戻り、ステップS54からステップS58までを繰り返す。変数jがnを超えた場合(S60のY)、ドライブラインを指定する変数iを1だけインクリメントし(S62)、変数iがm以下である場合(S64のN)、ステップS52に戻り、ステップS52からステップS62までを繰り返す。変数iがmを超えた場合(S64のY)、処理を終了する。
【0066】
図13は、第1段階のスキャニングで検出された出力電圧V1と第2段階のスキャニングで検出された出力電圧V2を演算して最終的な出力電圧Voutを求め、スキャニング対象の交点の抵抗値と圧力を求める手順を説明するフローチャートである。
【0067】
ドライブラインを指定する変数iを1に初期化する(S70)。センシングラインを指定する変数jを1に初期化する(S72)。
【0068】
演算・制御部40は、交点(i,j)の第1段階のスキャニングで検出された出力電圧V1と第2段階のスキャニングで検出された出力電圧V2を出力バッファ50から取得する(S74)。演算・制御部40は、第1段階の検出電圧V1と第2段階の検出電圧V2を乗算して、A/D変換のダイナミックレンジで除算することにより、交点(i,j)の最終的な出力電圧Voutを算出する(S76)。
【0069】
演算・制御部40は、上記の式(2)にもとづいて、駆動電圧Vccと最終的な出力電圧Voutから交点(i,j)の感圧抵抗体の抵抗値Rを算出する(S78)。演算・制御部40は、f−R曲線にもとづいて、感圧抵抗体の抵抗値Rから交点(i,j)に加えられた圧力fを求める(S80)。
【0070】
センシングラインを指定する変数jを1だけインクリメントし(S82)、変数jがn以下である場合(S84のN)、ステップS74に戻り、ステップS74からステップS82までを繰り返す。変数jがnを超えた場合(S84のY)、ドライブラインを指定する変数iを1だけインクリメントし(S86)、変数iがm以下である場合(S88のN)、ステップS72に戻り、ステップS72からステップS86までを繰り返す。変数iがmを超えた場合(S88のY)、処理を終了する。
【0071】
上記の説明では、第1段階のスキャニングにおいて、スキャニング対象となるドライブラインに駆動電圧Vccをかけ、他のドライブラインは0ボルトにしたが、他のドライブラインにVccよりも小さいゼロでないバイアス電圧Vbiasをかけても同様のセンシングが可能である。
図14を参照して他のドライブラインにバイアス電圧Vbiasをかける変形例を説明する。
【0072】
図14(a)は、スキャニング対象となるドライブラインに駆動電圧Vccをかけ、他のドライブラインにゼロでないバイアス電圧Vbiasをかける変形例において、第1段階のスキャニングにおいて検出される出力電圧V1を説明する図であり、
図14(b)は、
図14(a)の等価回路である。
【0073】
図14(a)に示すように、ドライブライン1に駆動電圧Vccがかけられ、ドライブライン4にバイアス電圧Vbiasがかけられており、センシングライン5にはプルダウン抵抗Rpとして10kΩの抵抗が接続されている。このとき、
図14(b)に示すように、ドライブライン4がバイアス電圧Vbiasでドライブされていることから、交点(1,5)が現実にタッチされていない場合、出力電圧V1は、V1=Vbias×Rp/(Rp+R3)となる。ここでVcc>Vbiasとすれば、出力電圧V1はバイアス電圧Vbias以上の値にはならない。したがって交点(i,j)(符号210)においてゴーストタッチが検出されても、その出力電圧V1はバイアス電圧Vbias以下に抑えられる。
【0074】
検出したい最低圧力f1に対応する感圧抵抗体の抵抗値R(f1)のときに検出される電圧V
R(f1)=Vcc×Rp/(Rp+R(f1))をあらかじめ求めておき、スキャニング対象となるドライブライン以外のドライブラインのバイアス電圧Vbiasをこの電圧V
R(f1)以下となるように設定すれば、出力電圧V1がバイアス電圧Vbias以下である場合、ゴーストタッチであるとみなして、出力電圧V1を破棄するキャンセル処理を行うことができる。第2段階のスキャニングにおいて出力電圧V2を検出する方法は、
図10で説明した方法と同じである。最終的な出力電圧Voutは次式で求めることができる。
Vout=V2×(V1−Vbias)/(ADCダイナミックレンジ)
ただし、Vout<0となる場合(すなわちV1<Vbias)となるときは、Vout=0とする。
【0075】
このようにして、スキャニング対象となるドライブライン以外の他のドライブラインにゼロでないバイアス電圧Vbiasをかける変形例の場合でも、ゴーストタッチをキャンセルすることができる。ただし、前述の検出したい最低圧力f1以下の弱いタッチは、現実にタッチしていたとしても、ゴーストタッチとみなされ、キャンセルされることに留意する。このような低圧力のタッチ入力は、一般にS/N比が悪いため、機器の使用環境によってS/N比が良くない場合、たとえば電源ノイズが大きい場合などには、ここで説明した変形例が有効である。
【0076】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0077】
タッチ入力デバイスコントローラ130にもうけられた機能構成の内、少なくとも一部の機能構成をメインプロセッサ150とメモリ160を用いて実装してもよい。たとえば、演算・制御部40の機能をメインプロセッサ150で実装し、メモリ160内に出力バッファ50をもたせてもよい。その場合、出力部90は、第1段階のスキャニングで検出された出力電圧V1と第2段階のスキャニングで検出された出力電圧V2をメインプロセッサ150に送信し、メインプロセッサ150が、第1段階および第2段階の検出電圧V1、V2から最終的な出力電圧Voutを求める演算、駆動電圧Vccと最終的な出力電圧Voutから交点の感圧抵抗体の抵抗値Rを求める演算、f−R曲線にもとづいて、感圧抵抗体の抵抗値Rから交点に加えられた圧力fを求める演算を行う。