説明

タッチパネルのタッチ検出装置およびそのタッチ検出方法

【課題】タッチパネル装置においてタッチ箇所の関連性の判定のための処理を簡素化する。
【解決手段】垂直駆動検出部3から水平方向の透明電極を駆動することにより、水平駆動検出部4から垂直方向の透明電極のタッチ箇所に応じた検出パターンを得る。また、水平駆動検出部4から垂直方向の透明電極を駆動することにより、垂直駆動検出部3から水平方向の透明電極のタッチ箇所に応じた検出パターンを得る。キー検出部521は、これらの検出パターンに基づいてタッチ箇所を検出する。リンク判定部522は、今回の検出で検出された検出タッチ箇所を所定範囲拡大した拡大タッチ箇所と、前回の検出後にすでに確定した全ての確定タッチ箇所とを位置で比較して、最大の重なり部分がある確定タッチ箇所に対して検出タッチ箇所が移動したと判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タッチパネルに同時に複数入力されたタッチ箇所の変化を検出するタッチパネルのタッチ検出装置およびタッチ検出方法に関するものである。
【背景技術】
【0002】
携帯情報機器においては、従来のボタンによる操作に代えて、表示画面上でのジェスチャー操作を採用することにより、表示画面の大型化や操作性の向上が図られている(例えば特許文献1)。ジェスチャー操作は、表示画面上に配置されたタッチパネル上で指などを所定の軌跡を描くようにスライドさせる操作である。その軌跡に、特定のコマンドが対応付けられているので、ジェスチャー操作をすることにより、そのコマンドに対応する動作を実行させることができる。また、上記の携帯情報機器では、ジェスチャー操作だけでなく、アイコンを移動させるドラッグ操作なども行うことができる。
【0003】
このような携帯情報機器では、タッチパネル装置で検出されたタッチ箇所のデータに基づいて、アプリケーションプログラム上で、ジェスチャー操作のコマンドを特定したり、ドラッグ操作を実行したりといった処理が行われる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2008−537615号公報(2008年9月18日公開)
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の携帯情報機器では、タッチパネル装置が検出周期毎に検出したタッチ箇所のデータを単に携帯情報機器で実行されるアプリケーションプログラムのデータを処理するメインCPUに渡すだけである。このため、上記メインCPUは、検出周期毎に渡されるタッチ箇所のデータからタッチ箇所の関連性の有無を判断して、タッチ箇所が連続した軌跡を描くものであるのか単独で入力されたものであるのかを決定した上で、タッチ箇所が連続した軌跡を描くものである場合に、ジェスチャー操作やドラッグ操作のための処理を行う。
【0006】
このように、タッチ箇所の関連性を判断するために、アプリケーションプログラムのデータを処理するメインCPUの処理量が多くなる。しかも、同時に多数のタッチ箇所が検出されると、タッチ箇所の関連性の判断処理が増加する。このため、処理が複雑になるという不都合がある。
【0007】
本発明は、上記の問題点に鑑みてなされたものであり、タッチパネル装置においてタッチ箇所の関連性の判定のための処理を簡素化することを目的としている。
【課題を解決するための手段】
【0008】
本発明に係るタッチパネルのタッチ検出装置は、タッチパネルにおける複数のタッチ箇所を所定の検出周期で検出するタッチパネルのタッチ検出装置であって、上記の課題を解決するために、前回の検出後に確定した全ての確定タッチ箇所に対する、今回の検出で得られた前記タッチ箇所である全ての検出タッチ箇所の位置の変化を判定する変化判定手段を備え、前記変化判定手段が(a)〜(d)の各手段を有し、全ての前記検出タッチ箇所について、上記各手段の処理を行うことを特徴としている。
(a)1つの前記検出タッチ箇所と全ての前記確定タッチ箇所との位置を比較して、当該検出タッチ箇所が前記確定タッチ箇所のいずれかと一致しているか否かを判定する一致判定手段
(b)前記検出タッチ箇所が前記確定タッチ箇所と一致していないときに、前記検出タッチ箇所を所定範囲拡大した拡大検出タッチ箇所と前記確定タッチ箇所の重なり部分の有無を判定する重なり判定手段
(c)前記重なり部分があるときに当該重なり部分の重なり度合いを算出する重なり度合い算出手段
(d)前記検出タッチ箇所を、最大の前記重なり度合いが得られた前記確定タッチ箇所に対して変化したと決定する変化決定手段
また、本発明に係るタッチパネル装置のタッチ検出方法は、上記の課題を解決するために、上記各手段をステップとして備えていることを特徴としている。
【0009】
上記の構成では、タッチ箇所検出手段(タッチ箇所検出ステップ)によって、1つの検出タッチ箇所が検出されると、一致判定手段(一致判定ステップ)によって、当該検出タッチ箇所と全ての確定タッチ箇所との位置が比較され、当該検出タッチ箇所が確定タッチ箇所のいずれかと一致しているか否かが判定される。一致が判定されたときは、検出タッチ箇所が特定の確定タッチ箇所と一致しており、変化していないことがわかる。一方、不一致が判定されたときは、重なり判定手段(重なり判定ステップ)によって、拡大検出タッチ箇所と確定タッチ箇所の重なり部分の有無が判定される。
【0010】
重なりがないと判定されたときは、検出タッチ箇所が確定タッチ箇所と関係のない新たなタッチ箇所であることがわかる。一方、重なりがあると判定されたときは、重なり度合い算出手段(重なり度合い算出ステップ)によって、重なり部分の重なり度合いが算出される。ここで、最大の重なり度合いが得られた確定タッチ箇所が最も検出タッチ箇所と関連するタッチ箇所であることがわかる。そこで、変化決定手段(変化決定ステップ)によって、検出タッチ箇所が、上記の確定タッチ箇所に対して変化したと決定される。
【0011】
このような処理は、全ての検出タッチ箇所について行われる。
【0012】
このように1つずつ検出タッチ箇所の重なりの有無を判定しているので、タッチ箇所の関連性の判定のための処理を簡素化することができる。
【0013】
前記タッチパネル装置は、全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが等しい場合、前記検出タッチ箇所を確定しない一方、前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが異なる場合、または前記一致判定手段によって不一致が判定された場合、前記検出タッチ箇所を新たな前記確定タッチ箇所として確定するとともに、前記検出タッチ箇所が確定したことを処理装置に通知する確定手段を備えていることが好ましい。また、このタッチパネル装置のタッチ検出方法は、各手段をステップとして備えている。
【0014】
この構成では、全検出タッチ箇所が全確定タッチ箇所に対して変化していない場合、検出タッチ箇所が確定されず、処理装置には確定について通知されない。また、検出タッチ箇所の少なくとも1つが全確定タッチ箇所に対して変化している場合、検出タッチ箇所が確定され、その確定が処理装置に通知される。これにより、処理装置への確定の通知回数および処理装置からの確定タッチ箇所取得のためのアクセス回数が低減する。
【0015】
あるいは、前記タッチパネル装置は、全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、全ての前記検出タッチ箇所についてチャタリングの有無を判定するチャタリング判定手段を備えていることが好ましい。
【0016】
従来のタッチパネル装置では、検出された1つのタッチ箇所に対してチャタリングを判定した後に、タッチ箇所の変化を判定していたため、m個のタッチ箇所が確定して後に、n個のタッチ箇所が新たに検出された場合、m×nの組み合わせでタッチ箇所の変化判定を行わなければならず、処理が複雑であった。これに対し、上記の構成では、一致判定手段から変化決定手段までの一連の処理を終えた状態で、全ての検出タッチ箇所についてチャタリングの有無を判定するので、m×nの組み合わせで変化判定を行う必要はなく、処理を単純化させることができる。それゆえ、効率的に検出タッチ箇所の変化を判定することができる。
【0017】
また、前述のいずれかのタッチ検出装置は、タッチパネルコントローラに含まれることが好ましい。これにより、タッチパネル装置に設けられるタッチパネルコントローラで前述のように変化判定手段による処理が行われる。それゆえ、前述のメインCPUはタッチパネルコントローラからのタッチ箇所を用いてジェスチャー操作やドラッグ操作のための処理が削減されるため、前述のメインCPUにおける処理量の負担が軽減される。
【発明の効果】
【0018】
本発明に係るタッチパネル検出装置は、以上のように、変化判定手段を備えることにより、タッチ箇所の検出のための処理を簡素化し、タッチパネル装置が組み込まれるシステムの性能の低下を回避することができるという効果を奏する。
【図面の簡単な説明】
【0019】
【図1】本発明の実施形態に係るタッチパネル装置の要部の構成を示す図である。
【図2】上記タッチパネル装置におけるタッチパネルと当該タッチパネル周辺に接続される水平駆動検出部および垂直駆動検出部の構成を示す図である。
【図3】上記水平駆動検出部および上記垂直駆動検出部から出力される出力データ(検出パターン)の一例を示す図である。
【図4】上記タッチパネル装置における制御インターフェース部に設けられるメモリに設けられるTNEWキー記憶領域の構成を示す図である。
【図5】上記メモリに設けられるCURキー記憶領域の構成を示す図である。
【図6】上記メモリに設けられるCHATTキー記憶領域の構成を示す図である。
【図7】上記制御インターフェース部におけるリンク判定部の詳細な構成を示すブロック図である。
【図8】検出されたキーを拡大した拡大キーと確定したキーとの重なり度合いを算出する具体的方法を示す図である。
【図9】すでに確定したキーに対して検出されたキーのリンクを決定するときの実例を示す図である。
【図10】キー確定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0020】
本発明の実施形態を図1〜図10に基づいて説明すると、以下の通りである。
〔1.タッチパネル装置の構成〕
図1に示すように、本実施の形態に係るタッチパネル装置1は、タッチパネル2と、垂直駆動検出部3と、水平駆動検出部4と、制御インターフェース部5(タッチ検出装置)とを備えている。垂直駆動検出部3、水平駆動検出部4および制御インターフェース部5は、タッチパネル装置1においてタッチパネル駆動装置を構成している。
〔1−1.タッチパネルの構成〕
図2に示すように、タッチパネル2は、高精細のマトリクス型タッチパネルである。
【0021】
本発明において、タッチパネルは複数の同時のタッチ入力に対して生じる複数のキー(後述する「タッチ箇所」)を検出できるタッチパネルであれば、どのようなタッチパネルを採用しても良い。ただし、本実施の形態において、本発明を説明する便宜上、タッチパネル2を高精細のマトリクス型タッチパネルとしている。
【0022】
このタッチパネル2は、所定間隔をおいて対向するように貼り合わされた透明基板を有しており、両透明基板の互いに対向する面が電極形成面となる。一方の透明基板における電極形成面には、水平方向に互いに平行に配された複数の透明電極Eh(水平電極)が形成されている。また、他方の透明基板における電極形成面には、垂直方向に互いに平行に配された複数の透明電極Ev(垂直電極)が形成されている。各透明電極Eh,Evは、ITO(インジウム錫酸化物)などからなる抵抗膜で構成される短冊状の電極であり、両透明基板間で互いに交差するように配置されている。
【0023】
透明電極Ehのうち最も上端に配置されるのが第1(電極番号1)の透明電極Ehであり、以降、その下側に、第2,第3,…の透明電極Ehが配置される。透明電極Evのうち最も左端に配置されるのが、第1(電極番号1)の透明電極Ehであり、以降、その右側に、第2,第3,…の透明電極Evが配置される。
〔1−2.タッチパネルの駆動検出動作〕
タッチパネル装置1においては、タッチパネル2がタッチされると、タッチ箇所で透明電極Eh,Evの交差部分が互いに接触する。この状態で、透明電極Ehまたは透明電極Evのいずれか一方に駆動電圧を印加すると、この駆動電圧がタッチ箇所を介して他方側に現れる。したがって、この電圧を検出電圧として取り出すことにより、タッチパネル2上でタッチされた位置が検出される。
【0024】
なお、以降の説明において、透明電極Eh,Evに共通して記述する場合には、透明電極Eとする。
〔1−3.垂直駆動検出部の構成〕
垂直駆動検出部3(垂直駆動検出手段)は透明電極Ehの一端側に接続され、複数のドライバIC6を備えている。また、垂直駆動検出部3において、各ドライバIC6は、タッチパネル2の垂直方向接続端縁に沿った垂直方向に並ぶように実装されている。
〔1−4.水平駆動検出部の構成〕
一方、水平駆動検出部4(水平駆動検出手段)は透明電極Evの一端側に接続され、複数のドライバIC6が設けられている。また、水平駆動検出部4において、各ドライバIC6は、タッチパネル2の水平方向の接続端縁に沿った水平方向に並ぶように実装されている。
〔1−5.ドライバICの構成〕
ドライバIC6は、制御インターフェース部5からドライバIC6へ与えられるシリアルのドライバ入力データDATAIN(駆動データ)に基づいた駆動電圧をタッチパネル2の複数の透明電極Eh,Evへ出力する。また、ドライバIC6は、透明電極Eh,Evから出力される検出電圧に基づく検出データを制御インターフェース部5に出力する。
【0025】
具体的には、ドライバIC6は、ドライバ入力データDATAINを透明電極Eh,Evの個々に対応するようにパラレルに変換して、このパラレルのデータに基づいて透明電極Eh,Evの個々に与える駆動電圧を発生する。また、具体的には、ドライバIC6は、複数の透明電極Eh,Evの個々から出力される検出電圧をパラレルのデータとして検出し、検出したデータをシリアルの検出データに変換してドライバ出力データDATAOUT(水平検出データ,垂直検出データ)として出力する。
【0026】
このため、ドライバIC6は、上記のようなデータのシリアル/パラレル変換を行うために、シリアルイン−パラレルアウトシフトレジスタを有している。また、ドライバIC6は、上記のようなパラレル/シリアル変換を行うために、パラレルイン−シリアルアウトシフトレジスタを有している。
【0027】
なお、ドライバIC6は、シリアルイン−パラレルアウトシフトレジスタおよびパラレルイン−シリアルアウトシフトレジスタを有する代わりに、これらの機能を兼ね備えたシフトレジスタを有していてもよい。
【0028】
垂直駆動検出部3に設けられる各ドライバIC6は、複数の透明電極Ehに駆動電圧を出力するとともに、複数の透明電極Ehからの検出電圧が入力されるように、タッチパネル2側に入出力用の端子(ピン)を有している。
【0029】
垂直駆動検出部3において、各ドライバIC6間でデータ伝送線がデイジーチェーン接続されている。これにより、垂直駆動検出部3において、制御インターフェース部5からのドライバ入力データDATAINは、初段のドライバIC6(図1および図2において垂直駆動検出部3の上端に位置する)に入力されて、順次後段のドライバIC6に伝送されていく。また、垂直駆動検出部3において、各ドライバIC6から出力される検出データが、その後段のドライバIC6に入力され、当該後段のドライバIC6の検出データに続いてシフトされる。これにより、各ドライバIC6の検出データが連続した1つのドライバ出力データDATAOUTとなって、垂直駆動検出部3における最終段のドライバIC6(図1および図2において垂直駆動検出部3の下端に位置する)から出力される。
【0030】
一方、水平駆動検出部4に設けられる各ドライバIC6は、複数の透明電極Evに駆動電圧を出力するとともに、複数の透明電極Evからの検出電圧が入力されるように、タッチパネル2側に入出力用の端子(ピン)を有している。
【0031】
水平駆動検出部4において、各ドライバIC6間でデータ伝送線がデイジーチェーン接続されている。これにより、水平駆動検出部4において、制御インターフェース部5からのドライバ入力データDATAINは、初段のドライバIC6(図1および図2において水平駆動検出部4の左端に位置する)に入力されて、順次後段のドライバIC6に伝送されていく。また、水平駆動検出部4において、各ドライバIC6から出力される検出データが、その後段のドライバIC6に入力され、当該後段のドライバIC6の検出データに続いてシフトされる。これにより、各ドライバIC6の検出データが連続した1つのドライバ出力データDATAOUTとなって、水平駆動検出部4における最終段のドライバIC6(図1および図2において水平駆動検出部4の右端に位置する)から出力される。
【0032】
垂直駆動検出部3および水平駆動検出部4における各ドライバIC6には、それぞれ直接リセット信号RESとクロックCLKとが入力される。
【0033】
なお、垂直駆動検出部3および水平駆動検出部4においては、各ドライバIC6が制御インターフェース部5とパラレルで直接データの送受を行うように構成されていてもよい。
〔1−6.ドライバ出力データおよびドライバ入力データの構成〕
以降の説明では、タッチパネル2におけるタッチ入力箇所をキー(タッチ箇所)と称する。水平駆動検出部4から出力されるドライバ出力データDATAOUT(検出パターン)におけるタッチ検出部分を、シャドー(タッチ範囲)と称する。同様に、垂直駆動検出部3から出力されるドライバ出力データDATAOUTにおけるタッチ検出部分もシャドー(タッチ範囲)と称する。
【0034】
図3に示すように、ドライバ出力データDATAOUTの各ビットは、各透明電極E(前述の電極番号)に対応しており、“1”である場合に印加電圧の検出を表し(アクティブハイ)、“0”である場合に印加電圧の非検出を表している。“0”から変化した“1”のビットがシャドーの先頭位置を表すトップ位置TO−iP(iは最大キー検出数を表す)であり,“0”へ変化した“1”のビットがシャドーの末尾位置を表すボトム位置BO−iPである。このように、ドライバ出力データDATAOUTは、全ての透明電極Eh,Evによるタッチ箇所の検出および非検出を表す検出パターンとなる。また、水平方向および垂直方向のそれぞれのトップ位置TO−iPおよびボトム位置BO−iPがタッチパネル2における座標位置を表す。
【0035】
図3に示す検出パターンでは、電極番号20が第1のトップ位置TO−1Pであり、電極番号45が第1のボトム位置BO−1Pであり、第1のトップ位置TO−1Pおよび第1のボトム位置BO−1Pで第1のシャドーが規定される。また、電極番号70が第2のトップ位置TO−2Pであり、電極番号78が第2のボトム位置BO−2Pであり、第2のトップ位置TO−2Pおよび第2のボトム位置BO−2Pで第2のシャドーが規定される。
【0036】
一方、ドライバ入力データDATAOINの各ビットは、各透明電極Eに対応しており、“1”である場合に駆動電圧の印加を表し(アクティブハイ)、“0”である場合に駆動電圧の非印加を表している。
〔1−7.制御インターフェース部の構成〕
制御インターフェース部5(タッチ検出装置)は、本発明のタッチ検出方法を実現するために、下記の(1)〜(3)の機能を有している。
(1)外部のCPU10(処理装置)からの指示を受けて、タッチパネル2へ与えるドライバ入力データDATAINを出力し、それに応じてタッチパネル2から出力されるドライバ出力データDATAOUTを取り込む動作を所定の検出周期で行うことにより、キーを検出する。
(2)検出したキー(以降、「検出キー」と称する)を前回の検出の後に確定したキー(以降、「確定キー」と称する)とそれぞれの位置データで比較し、その比較結果に応じて、検出キーが確定キーに対して位置の変化したキー(移動したキー)であるか否かを判定して、キーを確定する。
(3)CPU10にキーが確定したことを通知し、CPU10からの確定キーのデータの読み出しを受け付ける。
【0037】
制御インターフェース部5は、上記の機能を実現するために、メモリ51と、キー確定処理部52とを有している。また、下記のように構成される制御インターフェース部5は、ハードウェアロジック(デジタル回路)によって構成されるが、マイクロコンピュータによってソフトウェアで実現されるように構成されてもよい。
〔1−7−1.メモリの構成〕
RAMからなるメモリ51は、TNEWキー記憶領域511と、CURキー記憶領域512と、CHATTキー記憶領域513と、作業領域514とを有している。
〔1−7−1(a).TNEWキー記憶領域の構成〕
TNEWキー記憶領域511は、後述するリンク判定部522によるリンクの判定を行うために、新たな検出キーについての各種のデータを記憶する。このTNEWキー記憶領域511は、図4に示すように、検出キーについての検出キー位置DETECTEDPOSを記憶する領域と、OFFフラグ、ONフラグ、MOVEフラグおよびLINKフラグを設ける各領域(1ビット)と、LINK−KEYデータを記憶する領域(4ビット)と、キー数TNEWKEY−NOを記憶する領域(4ビット)とを有している。上記の各領域は、1つのキー毎に設けられており、それぞれにキー番号が付与されている。
【0038】
検出キー位置DETECTEDPOSは、検出キーの水平シャドー(水平方向のシャドー)および垂直シャドー(垂直方向のシャドー)のそれぞれのトップ位置およびボトム位置のデータである。この検出キー位置DETECTEDPOSは、キーが検出された順に1番目の記憶領域から書き込まれていく。
【0039】
OFFフラグは“1”であるときにキーが無効であることを示す。ONフラグは“1”であるときに検出キーが有効であることを示す。MOVEフラグは、“1”であるときに、今回の検出キーが前回の確定キーから移動したMOVEキーであることを示す。LINKフラグは、“1”であるときに、検出キーが確定キーとリンクしている(重なっている)LINKキーであることを示す。LINK−KEYデータは、リンクしているキーのキー番号のデータである。
【0040】
キー数TNEWKEY−NOは検出キーの数である。キー数は、ハードウェアやソフトウェアの制限から最大数(TK)が規定されており、キー数TNEWKEY−NOが規定数を超えているか否かが判定される。
〔1−7−1(b).CURキー記憶領域の構成〕
CURキー記憶領域512は、確定キーについての各種のデータを記憶する。このCURキー記憶領域512は、図5に示すように、確定されたキーについての確定キー位置CURPOSを記憶する領域と、OFFフラグ、ONフラグ、MOVEフラグおよびLINKフラグを設ける各領域と、LINK−KEYデータを記憶する領域と、キー数CURKEY−NOを記憶する領域(4ビット)とを有している。上記の各領域は、1つのキー毎に設けられており、それぞれにキー番号が付与されている。
【0041】
確定キー位置CURPOS位置データPOSは、確定キーの水平シャドーおよび垂直シャドーのそれぞれのトップ位置およびボトム位置のデータである。キー数CURKEY−NOは、確定キーの数であり、キー数TNEWKEY−NOと同数に規定されている。
〔1−7−1(c).CHATTキー記憶領域の構成〕
CHATTキー記憶領域513は、後述するチャタリング判定部523によるチャタリングの判定を行うために、チャタリング判定されるキーについての各種のデータを記憶する。このCHATTキー記憶領域513は、図6に示すように、チャタリング判定されるキーについてのチャタリングキー位置CHATTPOSを記憶する領域と、OFFフラグ、ONフラグ、MOVEフラグおよびLINKフラグを設ける各領域と、LINK−KEYデータを記憶する領域と、キー数TNEWKEY−NOを記憶する領域(4ビット)とを有している。上記の各領域は、1つのキー毎に設けられており、それぞれにキー番号が付与されている。
【0042】
チャタリングキー位置CHATTPOSは、チャタリング判定キーの水平シャドーおよび垂直シャドーのそれぞれのトップ位置およびボトム位置のデータである。キー数CHATTKEY−NOは、確定されたキーの数であり、キー数TNEWKEY−NOと同数に規定されている。
〔1−7−1(d).作業領域の構成〕
作業領域514は、キー確定処理に必要な各種の値を記憶するために設けられている。例えば、このような値としては、CHANGEDフラグ、リンク度LINKVALUE、拡大検出キー位置DETECTEDPOS−LGおよび拡大マージンαが挙げられる。
【0043】
後述するように、リンク判定部522により、今回の検出された各検出キーと、前回の確定処理で得られた全ての確定キーとの一致の有無が比較される。CHANGEDフラグは、各検出キーが、どの確定キーとも一致していないと判定されたときに“1”にセットされる。
【0044】
後述するように、リンク判定部522によるリンク判定を行うときに、1つの検出キーと、全ての確定キーとを比較することにより、両キーのリンク(重なり部分)の有無が判定され、重なり部分があるとき、その重なり度合いが算出される。リンク度LINKVALUEは、検出キーと確定キーとのリンクがあるとき、上記の比較において、その時点で最大である重なりの度合いが設定される値である。
【0045】
拡大位置DETECTEDPOS−LGは、上記のリンク判定において、検出キーKTNEWを水平方向および垂直方向に所定範囲拡大した拡大検出キーKLGの位置データである。拡大マージンαは、検出キーKTNEWを拡大検出キーKLGにまで拡大する上記の所定範囲の値である。この拡大マージンαは、CPU10によって書き込まれるが、固定値であってもよい。
【0046】
また、作業領域514は、後述するリンク判定部522によるキーの一致判定に用いる一致判定マージンや、後述するチャタリング判定部523によるキーの一致判定に用いるチャタリング判定マージンも記憶している。両判定マージンは、CPU10によって書き込まれるが、固定値であってもよい。
【0047】
さらに、作業領域514は、キー検出部521がキー検出を行う検出周期を設定する検出周期データや、チャタリング判定部523がチャタリング判定を行う処理周期を設定する処理周期データを記憶している。これらの周期データも、CPU10によって書き込まれるが、固定値であってもよい。検出周期および処理周期は、2×処理周期≦検出周期という関係を満たすように設定される。
〔1−7−2.キー確定処理部の構成〕
キー確定処理部52は、キー検出部521と、リンク判定部522と、チャタリング判定部523と、キー確定部524と、メモリ管理部525とを有している。
〔1−7−2.(a)キー検出部の構成〕
キー検出部521(タッチ箇所検出手段,タッチ箇所検出ステップ)は、透明電極Evまたは透明電極Ehを駆動した結果として、それらに交差する透明電極Ehまたは透明電極Evから得られた検出パターンにおけるシャドーに基づいてキーを検出する。このため、キー検出部521は、透明電極Evまたは透明電極Ehを駆動するための駆動パターンをドライバ入力データDATAINとして出力する。また、キー検出部521は、垂直駆動検出部3および水平駆動検出部4から出力されるドライバ出力データDATAOUTより、“0”から変化する“1”のビットおよび“0”へ変化する“1”のビットを検出することにより、前述のトップ位置TO−iPおよびボトム位置BO−iPを得て、シャドーを特定する。このように特定された水平シャドーと、それに対応する垂直シャドーとで1つのキーが特定される。このため、キーの位置の情報は、タッチの中心位置(点)ではなく、矩形(面)として得られる。
【0048】
また、キー検出部521は、キー検出に先立って、CURキー記憶領域512における確定キーの全てについてONフラグの値(“1”)をTNEWキー記憶領域511のOFFフラグの領域にコピーする。キー検出部521は、キー検出の結果、確定キーと同じ検出キー(変化なし)を検出したり、検出キーの移動を検出したりしたときに、上記のOFFフラグの値を0にする。したがって、このような検出結果の検出キーは、OFFフラグが“1”であるOFFキーとして残る。
【0049】
また、キー検出部521は、所定の検出周期で検出処理を行い、各検出処理で検出された全ての検出キーについて、後述するリンク判定部522によるリンクの判定が行われると、それらの検出キーについてチャタリング処理を行うように、チャタリング判定部523に指示する。これに合わせて、キー検出部521は、リンク判定後、次のキー検出を行う前に、チャタリング判定のための比較対象となるキーを検出する。
〔1−7−2.(b)リンク判定部〕
リンク判定部522(変化判定手段,変化判定ステップ)は、キー検出部521によって検出されたキーが、前回のキー確定処理で確定した全てキーに対して重なっているか否か(リンクの有無)を判定する。
〔1−7−2.(b−1)リンク判定の必要性〕
検出キーのデータ(水平シャドーおよび垂直シャドーのデータ)は、メモリ51のTNEWキー記憶領域511に検出順に並ぶように記憶される。また、前回の確定処理ですでに確定した確定キーは、メモリ51のCURキー記憶領域512に検出時の検出順に並ぶように記憶される。前回の確定処理で確定された複数の一群の確定キーと、今回の検出された複数の一群の検出キーとの間で、両群のキーの並びの関係が一致している場合はキーの変化がないので不都合はない。
【0050】
これに対し、ジェスチャー操作やドラッグ操作により、指などの指示手段がタッチパネル2上を移動している場合や、入力数が増加した場合は、両群のキーの並びの関係が一致しなくなる。このため、今回の検出キーと前回の確定キーとの関係を特定しないと、検出キーの変化が、新たなタッチ入力によるものであるのか、ジェスチャー操作やドラッグ操作によりキーが移動したものであるのかがわからない。
【0051】
例えば、1つのキーが少しでも移動すると、検出毎に検出の順番(キー番号)が異なることがある。具体的には、複数箇所でタッチされているときに、ドラッグ操作などにより、検出されるキーのうちの1つのキーが移動すると、この移動のために移動したキーのキー番号が前回の確定キーのキー番号から変わる。また、2本の指の間隔を広げていくピンチアウトのようなジェスチャー操作により、1つの確定キーが複数の検出キーに分かれて増加することもある。したがって、先の確定キーと後の確定キーとの両群の関連情報がないと、CPU10は、単に両群の確定キーを受け取っても、どのキーがどう変化したかが容易にはわからない。
【0052】
また、前述のように、従来のキーの変化検出は、タッチパネル装置側で行われず、ジェスチャー操作などの処理を行うアプリケーションプログラム上で行われていたので、アプリケーションプログラムを処理するCPUの負担が大きかった。そこで、リンク判定をタッチパネル装置側で行うことにより、アプリケーションプログラム上でキーの変化判定を行う必要がなく、アプリケーションプログラムを処理するCPUの負担を軽減することができる。
〔1−7−2.(b−2)リンク判定部の詳細〕
そこで、リンク判定部522は、次のようにして、前回の確定キーと今回の検出キーとの関連性を判定するために、一致判定部522a、重なり判定部522b、重なり度合い算出部522c、リンク度設定部522dおよびリンク決定部522eを有している。
〔1−7−2.(b−2−1)一致判定部〕
一致判定部522a(一致判定手段,一致判定ステップ)は、図8に示すように、今回の確定処理で検出された1つの検出キーKTNEW(検出タッチ範囲)と、前回の確定処理で確定した全ての確定キーKCUR(確定タッチ範囲)とを比較して、両者の一致を判定する。この比較は、両キーKTNEW,KCURの位置をシャドーのトップ位置およびボトム位置に基づいて行われる。
【0053】
一致判定部522aは、両キーKTNEW,KCURの位置が微妙な差を許容して一致していれば、キーKTNEWを変化していない(新規に検出されていない)ONキーと判定する。上記の差は、作業領域514に記憶されている一致判定マージンで与えられる。一致判定部522aは、一致を判定すると、前述のTNEWキー記憶領域511のONフラグを“1”にセットする。一方、一致判定部522aは、不一致を判定すると、作業領域514のCHANGEDフラグを1にセットする。
〔1−7−2.(b−2−2)重なり判定部〕
重なり判定部522b(重なり判定手段,重なり判定ステップ)は、所定範囲で検出キーKTNEWを拡大した拡大検出キーKLG(拡大検出タッチ箇所)を用意する。この重なり判定部522bは、拡大検出キーKLGの拡大検出キー位置DETECTEDPOS−LGと、CURキー記憶領域512のキー番号1からキー番号TKまでの各確定キー位置CURPOSとを順次比較する。また、重なり判定部522bは、比較の結果、両キーKTNEW,KCURについて、重なり部分の有無を判定する。
〔1−7−2.(b−2−3)重なり度合い算出部〕
重なり度合い算出部522c(重なり度合い算出手段,重なり度合い算出ステップ)は、重なり部分のある場合に重なり度合いを算出する。重なり度合いは、重なり部分を形成する矩形の水平方向および垂直方向の2辺の和や、当該矩形の面積で与えられる。
【0054】
重なり度合い算出部522cは、図8に示すように、検出キーKTNEWを水平方向および垂直方向の両側に前述の検出マージンαの範囲で拡大した拡大検出キーKLGと確定キーCURとの位置を水平方向と垂直方向とで個別に比較する。重なり度合い算出部522cは、具体的には、次の(1)〜(3)の処理を行うことにより重なり度合いを算出する。ここで、確定キーCURは、水平トップ位置HTO(CUR)、水平ボトム位置HBO(CUR)、垂直トップ位置VTO(CUR)および垂直ボトム位置VBO(CUR)を有している。また、拡大検出キーKLGは、水平トップ位置HTO(LG)、水平ボトム位置HBO(LG)、垂直トップ位置VTO(LG)および垂直ボトム位置VBO(LG)を有している。
【0055】
なお、前述のように、タッチパネル2において、透明電極Ehのうち最も上端に配置されるのが電極番号1の電極であるので、左上側の頂点が座標の原点となるが、説明をわかりやくするため、図8において、タッチパネル2の左下側の頂点を座標の原点としている。
(1)水平方向について、水平トップ位置HTO(LG)と水平トップ位置HTO(CUR)とを比較する。HTO(CUR)>HTO(LG)であると判定したとき(図8の場合)、水平方向の重なり部分として、X=HBO(LG)−HTO(CUR)を算出する。また、HTO(CUR)<HTO(LG)であると判定したとき、水平方向の重なり部分として、X=HBO(CUR)−HTO(LG)を算出する。
(2)垂直方向について、垂直トップ位置VTO(LG)と垂直トップ位置VTO(CUR)とを比較する。VTO(LG)>VTO(CUR)であると判定したとき(図8の場合)、垂直方向の重なり部分として、Y=VTO(CUR)−VBO(LG)を算出する。また、VTO(LG)<VTO(CUR)であると判定したときに、垂直方向の重なり部分として、Y=VTO(LG)−VBO(CUR)を算出する。
(3)X+Y(斜線で示す重なり部分の縦の辺と横の辺との和)またはX×Y(重なり部分の面積)を算出した値が、重なりの度合いを表す値であり、後述するように、リンク度設定部522dによってリンクLINKVALUE度として設定される。
〔1−7−2.(b−2−4)リンク度設定部〕
リンク度設定部522dは、上記のようにして算出された重なり度合いをリンク度LINKVALUE(初期値0)と比較し、重なり度合いがリンク度LINKVALUEより大きいと判定した場合、作業領域514のリンク度LINKVALUEの値を上記のように判定した重なりの度合いの値に書き替える(設定する)。重なり部分があると判定された確定キーKCURについて得られた重なり度合いについて、上記のリンク度LINKVALUEとの大小判定が行われ、且つ重なり度合いが大きいとの判定によるリンク度LINKVALUEの書き替えが行われる結果、最終的に設定されたリンク度LINKVALUEは最大値となる。
〔1−7−2.(b−2−5)リンク決定部〕
リンク決定部522e(変化決定手段,変化決定ステップ)は、リンク判定対象となる検出キーKTNEWを、最終的に最大のリンク度LINKVALUEが得られた確定キーKCURに対して移動したキーであるMOVEキーと決定し、TNEWキー記憶領域511のMOVEフラグを“1”にセットする。
【0056】
例えば、図9に示すように、拡大検出キーKLGと3つの確定キーCUR1〜CUR3とを比較する場合、拡大検出キーKLGが確定キーCUR3と一部重なっている。この場合、拡大検出キーKLGが確定キーCUR3とリンクしていると判断される。
【0057】
また、リンク決定部522eは、比較の結果、リンク度LINKVALUEが0である場合、検出キーKTNEWをリンクのないNEWキーと決定し、TNEWキー記憶領域511のONフラグを“1”にセットする。
〔1−7−2.(c)チャタリング判定部の構成〕
チャタリング判定部523は、今回のキー確定処理でキー検出部521によって全てのキーが検出されると、これらのキーについてチャタリングの有無を判定する。
〔1−7−2.(c−1)チャタリング判定の必要性〕
指などの指示手段がタッチパネル2上をスライドしているとき、指示手段の押圧が変化する(不安定になる)ことにより、タッチ軌跡が断続することがある。これにより、タッチの軌跡が断絶した箇所では、リンク判定部522によるリンク判定が適正にできなくなるので、断絶前の箇所とでシャドー数に矛盾が生じる。この場合は、最初からキーを検出し直すか、または、確定処理を中断して次のキー検出周期まで待機するかのどちらかを行う必要がある。
【0058】
また、従来のタッチパネル装置では、検出された1つのキーに対してチャタリングを判定した後に、キーの変化を判定していた。このため、すでにm個のキーが確定しており、n個のキーが新たに検出された場合、m×nの組み合わせでキーの変化判定を行わなければならず、処理が複雑であった。このような複雑な処理を回避することが望ましいので、後述するように、キー検出処理で一群のキーが検出された後に、これらのキーに対してまとめてチャタリング判定を行うようにして、キーの変化判定回数を減少させている。
〔1−7−2.(c−2)チャタリング判定〕
チャタリング判定部523(チャタリング判定手段,チャタリング判定ステップ)は、チャタリング判定のために次の(1),(2)の処理を行う。
(1)今回の検出処理で検出された一群の検出キーKTNEWについてリンク判定部522によってリンクが判定されると、TNEWキー記憶領域511に記憶された各データをCHATTキー記憶領域513にコピーして、検出キーKTNEWをチャッタキーKCHATTとする。
(2)一定の時間後にもう一度検出された一群のキーとの比較で、両キーの位置が許容可能な微妙な差を許容して一致していれば、チャタリングがないと判断する。上記の一定の時間は、作業領域514に記憶されている処理周期データによって与えられるチャタリング処理周期である。また、上記の差は、作業領域514に記憶されているチャタリング判定マージンで与えられる。これにより、両キーの水平方向および垂直方向の位置にチャタリング判定マージン以内のずれがあっても、そのずれを許容範囲として、両キーが一致していると判定される。
〔1−7−2.(d)キー確定部の構成〕
検出キーKTNEWが確定キーKCURに対して変化していない場合でも、キー検出部521によってキーが検出される毎にCPU10に検出結果を通知するのは効率的でなく、システム性能を低下させる。
【0059】
そこで、キー確定部524(確定手段,確定ステップ)は、前回の確定処理で確定した一群の確定キーKCURに対して、今回検出された一群の検出キーKTNEWが位置および数について変化しない場合は、その検出結果をCPU10に通知しない。また、キー確定部524は、一群の検出キーKTNEWが、一群の確定キーKCURに関連して変化した検出キーKTNEW(CHANGEDフラグ=1)および全く新たに検出された検出キーKTNEWを含む場合のみ、TNEWキー記憶領域511に記憶されているデータをCUR記憶領域512にコピーして確定し、CPU10にその確定結果を割り込み通知する。
【0060】
このように、検出キーKTNEWの少なくとも1つが、一群の確定キーKCURに対して変化しているときのみ、検出キーKTNEWが確定される。これにより、CPU10への割り込み回数およびCPU10によるメモリ51へのアクセス回数を低減し、システム性能の低下を回避することができる。
〔1−7−2.(e)メモリ管理部の構成〕
メモリ管理部525は、キー検出部521、リンク判定部522、キー確定部523およびCPU10からの指示を受けて、メモリ51における各領域511〜514に対するデータの書き込みおよびデータの読み出しを行う。
〔2.タッチパネル装置におけるキー確定動作〕
ここで、上記のように構成されるタッチパネル装置1におけるキーの確定動作について図10のフローチャートを参照して説明する。
〔2−1.初期化処理〕
まず、リンク判定部522は、前回のキー検出処理が開始してから所定の検出周期が経過すると(ステップS1)、初期化処理を行う(ステップS2)。
【0061】
初期化処理では、次の各処理が行われる。
(a)TNEWキー記憶領域511をクリアする。
(b)CURキー記憶領域512の全てのONフラグの値(“1”)をTNEWキー記憶領域511のOFFフラグの同じキー番号の領域にコピーする。
(c)TNEWキー記憶領域511のキー数TNEWKEY−NOを0にセットする。
(d)作業領域514のCHANGEDフラグを0にセットする。
〔2−2.キー検出処理〕
初期化処理の後は、キー検出部521がキー検出処理を行う(ステップS3)。キー検出処理では、垂直駆動検出部3または水平駆動検出部4のいずれか一方に、予め所望に設定されているドライバ入力データDATAINを与え、その結果他方から出力されるドライバ出力データDATAOUTから得られたシャドーに基づいてキーを特定する。キー検出処理は、ドライバIC6の構成や、ドライバIC6へのデータの与え方や取り出し方などに応じて適宜採用されるアルゴリズムで行われる。
〔2−3.リンク判定処理〕
上記のキー検出処理において1つの検出キーKTNEWが検出されると、リンク判定処理に移行する。
【0062】
リンク判定部522は、次に説明するリンク判定処理を行う。
〔2−3−1.初期化処理〕
まず、初期化処理を行う(ステップS4)。
【0063】
初期化処理では、次の各処理が行われる。
(a)TNEWキー記憶領域511のキー数TNEWKEY−NOに1を加算した値をセットする。
(b)アクセスキー番号iを1にセットし、リンクキー番号jを0にセットする。
【0064】
アクセスキー番号iは、TNEWキー記憶領域511においてアクセスするキー番号を表す。リンクキー番号jは、リンクのあるキー番号を表す。
(c)作業領域514のリンク度LINKVALUEを0にセットする。
(d)TNEWキー記憶領域511の検出キー位置DETECTEDPOSに作業領域514の拡大マージンαを加算し、その値を作業領域514の拡大検出キー位置DETECTEDPOS−LGの値としてセットする。
(e)TNEWキー記憶領域511のLINK−KEYデータを0にセットする。
〔2−3−2.空き領域の判定〕
初期化処理の後は、TNEWキー記憶領域511に空きの領域があるか否かを判定する(ステップS5)。ステップS5で、空きの領域があると判定すると、アクセスキー番号iを空き領域キー番号kにセットする(ステップS6)。空き領域キー番号kは、空きの領域のキー番号を表す。ステップS5で空きの領域がないと判定すると、一致判定処理に移行する。
〔2−3−3.一致判定処理〕
一致判定処理では、検出キーKTNEWおよび確定キーKCURの位置の一致判定を行う(ステップS7)。ステップS7では、TNEWキー記憶領域511から、検出キーKTNEWi(キー番号i)の検出キー位置DETECTEDPOSiを読み出すとともに、CURキー記憶領域512から、確定キーKCURi(キー番号i)の確定キー位置CURPOSiを読み出して、両者を水平方向および垂直方向について比較する。
【0065】
ステップS7で両キーの位置が一致していると判定すると、TNEWキー記憶領域511のONフラグを1にセットし(ステップS8)、キー検出部521にリンク判定が終了したことを通知する。また、ステップS7で両キーの位置が一致していないと判定すると、作業領域514のCHANGEDフラグを1にセットして(ステップS9)、リンク判定処理に移行する。
〔2−3−4.リンク判定処理〕
リンク判定処理では、まず、検出キーKTNEWが全ての確定キーKCURに対して重なり部分があるか否かを判定する(ステップS10)。ステップS10では、作業領域514から読み出した、検出キーKTNEWi(キー番号i)の拡大検出キー位置DETECTEDPOS−LGを、CURキー記憶領域512のキー番号1から順番に読み出した、確定キーKCURの確定キー位置CURPOSと比較する。
【0066】
ステップS10で両キーに重なり部分(リンク)があると判定すると、重なり度合いを算出するとともに、その重なり度合いがリンク度LINKVALUE(初期値0)より大きいか否かを判定する(ステップS11)。ステップS10で重なり度合いがリンク度LINKVALUE(初期値0)より大きいと判定すると、作業領域514のリンク度LINKVALUEを算出された重なり度合いに書き替えるとともに、リンクキー番号jをアクセスキー番号iにセットする(ステップS12)。
【0067】
さらに、CURキー記憶領域512から確定キー位置CURPOSを読み出すアクセスキー番号iがアクセスキー番号TKであるか否かを判定する(ステップS13)。ステップS13でi≠TKと判定すると、アクセスキー番号iを1を加算した値に更新して(ステップS14)、ステップS5に処理を戻す。上記のステップS10,S11でNOと判定した場合、ステップS13に処理を戻す。
【0068】
ステップS13でi=TKと判定した場合は、全ての確定キーKCURの確定キー位置CURPOSについて重なり部分の有無判定が行われたので、リンクキー番号j=0であるか否かを判定する(ステップS15)。このとき、作業領域514に記憶されているリンク度LINKVALUEは、最大値となっている。
【0069】
ステップS15でリンクキー番号j=0である(リンクなし)と判定すると、TNEWキー記憶領域511の空き領域キー番号kのONフラグを1にセットし(ステップS16)、キー検出部521にリンク判定が終了したことを通知する。この場合は、検出キーKTNEWが、全ての確定キーKCURに対してリンクのない新たなキーとして判定される。
【0070】
また、ステップS15でリンクキー番号j=0でない(リンクあり)と判定すると、TNEWキー記憶領域511において、ステップS12でアクセスキー番号iにセットされたリンクキー番号jのONフラグが1であるか否かを判定する(ステップS17)。すなわち、ステップS17では、検出キーKTNEWが、すでにONキーとなっているか否かを判定する。
【0071】
ステップS17でONフラグが1である(ONキーとなっている)と判定すると、ONフラグおよびLINKフラグを1にセットし、LINK−KEYデータをリンクキー番号jにセットして(ステップS18)、キー検出部521にリンク判定が終了したことを通知する。この場合は、検出キーKTNEWが、リンクキー番号jとしてセットされたアクセスキー番号iの確定キーKCURに対してリンクしている新たなキーとして判定される。このような検出キーKTNEWは、例えば、2本の指を合わせた状態から広げるジェスチャー操作(いわゆるピンチアウト)を行う場合、1つの確定キーKCURから分かれたキーである。
【0072】
また、ステップS17でONフラグが1でない(ONキーとなっていない)と判定すると、TNEWキー記憶領域511において、ステップS18と同様、ONフラグおよびLINKフラグを1にセットし、LINK−KEYデータをリンクキー番号jにセットし、さらにMOVEフラグを1にセットして(ステップS19)、キー検出部521にリンク判定が終了したことを通知する。この場合は、リンク度LINKVALUEが最大値となっており、検出キーKTNEWが、リンクキー番号jとしてセットされたアクセスキー番号iの確定キーKCURに対して移動したMOVEキーとして判定される。
【0073】
以上のようなリンク判定処理は、ステップS3のキー検出処理で1つの検出キーKTNEWが検出される毎に繰り返し行われる。
〔2−4.チャタリング判定処理〕
上記のリンク判定処理が、今回の検出処理で検出された全ての検出キーKTNEWについて終了すると、チャタリング判定処理に移行する。
【0074】
チャタリング判定部523は、次に説明するチャタリング判定処理を行う。
【0075】
まず、TNEWキー記憶領域511に記憶されている全ての検出キーKTNEWについてのデータをCHATTキー記憶領域513にコピーしておく。この状態で、CHATTキー記憶領域513においてチャタリングを判定する判定キーKCHATTおよび新たな検出キーKTNEWのキー番号iを1にセットする(ステップS20)。
【0076】
次いで、処理周期の時間後にキー検出部521によって検出されたキー番号iの検出キーKTNEWと、キー番号iの判定キーKCHATTの位置が一致しているか否かを判定する(ステップS21)。ステップS21で両キーの位置が一致していない(チャタリングあり)と判定すると、当該検出キーKTNEWの検出キー位置DETECTEDPOSをCHATTキー記憶領域513のチャタリングキー位置CHATTPOSに書き込んで(ステップS22)、ステップS1に処理を戻す。この場合は、確定動作を中断して、次の検出処理まで待機状態となる。
【0077】
ステップS21で両キーの位置が一致していると判定すると、アクセスキー番号iがアクセスキー番号TKであるか否かを判定する(ステップS23)。ステップS23でi≠TKと判定した場合は、アクセスキー番号iを1を加算した値に更新して(ステップS24)、ステップS21に処理を戻す。また、ステップS23でi=TKと判定した場合は、全て判定キーKCHATTについてチャタリングのないことになるので、ステップS22と同様の処理を全ての検出キーKTNEWについて行って(ステップS25)、チャタリング判定処理を終える。
〔2−5.キー確定処理〕
上記のチャタリング判定処理によってチャタリングがないと判定されると、ステップS25の処理からキー確定処理に移行する。
【0078】
キー確定部524は、次に説明するキー確定処理を行う。
【0079】
まず、作業領域514のCHANGEDフラグが1であるか否かを判定する(ステップS26)。ステップS26でCHANGEDフラグが1である(不一致)と判定すると、処理を後述するステップS28に移行する。一方、ステップS26でCHANGEDフラグが1でないと判定すると、TNEWキー記憶領域511のキー数TNEWKEY−NOと、CURキー記憶領域512のキー数CURKEY−NOとが等しいか否かを判定する(ステップS27)。
【0080】
ステップS27でTNEWKEY−NO=CURKEY−NOであると判定すると、検出キーKTNEWが確定キーKCURに対してキー数および位置について変化がないので、ステップS1に処理を戻す。このとき、TNEWキー記憶領域511のOFFフラグの状態がそのまま残る。
【0081】
ステップS27でTNEWKEY−NO≠CURKEY−NOであると判定すると、キー検出後にキー数が変化していることから、TNEWキー記憶領域511の全ての検出キーKTNEWのデータを新たな確定キーKCURのデータとしてCURキー記憶領域512に書き込む(ステップS28)。そして、割り込み信号をCPU10に送信することにより、検出キーKTNEWが確定キーKCURから変化したことをCPU10に通知して(ステップS29)、ステップS1に処理を戻す。これにより、CPU10は、メモリ管理部525を通じてCURキー記憶領域512から新たなキーのデータを読み出して取得する。
〔3.実施形態の総括〕
本実施形態に係るタッチパネル装置1は、矩形状の検出キーKTNEWが検出される毎に行われるリンク判定において、検出キーKTNEWを拡大マージンαで拡大した拡大検出キーKLGと、前回の確定処理で確定した全ての確定キーKCURとの重なり部分の有無を判定し、重なり部分があるときに重なり度合いを算出する。また、タッチパネル装置1は、拡大検出キーKLGと全ての確定キーKCURとについて算出された重なり度合いの最大値を、最も高いリンク度LINKVALUEとして決定する。さらに、タッチパネル装置1は、検出キーKTNEWを、そのリンク度LINKVALUEが得られた確定キーKCURに対して移動(変化)したMOVEキーと決定する。
【0082】
これにより、制御インターフェース部5において、容易にキーの変化を検出することができる。また、ピンチアウトのようなジェスチャー操作が行われたときに、1つの確定キーKCURが2つの検出キーKTNEWに分かれたことを情報として得ることができる。しかも、リンク判定される両キーが矩形であることから、水平方向および垂直方向の2辺を用いた簡単な演算処理で、重なりの有無判定および重なり度合いの算出を行うことができる。
【0083】
従来のタッチパネル装置では、検出された1つのキーのチャタリングの判定後に、キーの変化を判定していた。このため、すでにm個のキーが確定しており、n個のキーが新たに検出された場合、m×nの組み合わせでキーの変化判定を行わなければならず、処理が複雑であった。
【0084】
これに対し、制御インターフェース部5は、新たに検出された検出キーKTNEWの1個ずつについてリンクの判定を行うので、制御が簡単であり、処理時間も短くてよい。図9に示すリンク判定の処理を全ての検出キーKTNEWに対して行う時間は、検出キーKTNEWを検出するために透明電極Eの駆動検出動作を行う時間に比べて極めて短いので、リンク判定を高速に処理することができる。しかも、タッチパネル装置1は、MOVEフラグ、LINKフラグおよびLINK−KEYデータを、検出キーKTNEWと確定キーKCURとの関連情報としてCPU10に与えている。これにより、タッチパネル装置1のタッチ検出に関するハードウェアおよびソフトウェアの上位に設けられるキー処理に関するアプリケーションプログラム(ジェスチャー操作やドラッグ操作などの処理)において、上記の関連情報を有効に利用できる。
【0085】
また、本実施形態の制御インターフェース部5では、全ての検出キーKTNEWについてリンク判定した後にチャタリング判定を行うので、チャタリングが生じていた場合、検出キーKTNEWが確定せずに無駄になる。しかしながら、上記のように、リンク判定を高速に処理できることから、検出周期の間にすぐに新たな検出キーKTNEWについてリンク判定をすることができる。
【0086】
なお、本実施形態では、マトリクス型のタッチパネル2に対するタッチ箇所の変化検出について説明した。本発明は、これに限らず、複数の同時のタッチ入力に対して生じる複数のキーを検出することができれば、マトリクス型以外のタッチパネルに対するタッチ箇所の変化検出にも適用できる。
【0087】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【0088】
本発明のタッチパネル装置は、新たに検出された検出キーを所定範囲拡大して、すでに確定した確定キーに対して重なっているときに、当該検出キーが確定キーに対して変化したキーとして判定するので、多入力可能なマトリクス型タッチパネルにおけるジェスチャー操作やドラッグ操作などを行うときのキーの変化検出に好適に用いることができる。
【符号の説明】
【0089】
1 タッチパネル装置
2 タッチパネル(マトリクス型タッチパネル)
3 垂直駆動検出部(垂直駆動検出手段)
4 水平駆動検出部(水平駆動検出手段)
5 制御インターフェース部(タッチ検出装置)
10 CPU(処理装置)
51 メモリ
52 キー確定処理部
511 TNEWキー記憶領域
512 CURキー記憶領域
513 CHATTキー記憶領域
514 作業領域
521 キー検出部(タッチ箇所検出手段,タッチ箇所検出ステップ)
522 リンク判定部(変化判定手段,変化判定ステップ)
522a 一致判定部(一致判定手段,一致判定ステップ)
522b 重なり判定部(重なり判定手段,重なり判定ステップ)
522c 重なり度合い算出部(重なり度合い算出手段,重なり度合い算出ステップ)
522d リンク度設定部
522e リンク決定部(変化決定手段,変化決定ステップ)
523 チャタリング判定部(チャタリング判定手段,チャタリング判定ステップ)
DATAIN 入力データ(駆動データ)
DATAINOUT 出力データ(検出データ)
Eh 透明電極(水平電極)
Ev 透明電極(垂直電極)
E 透明電極(水平電極,垂直電極)
KCUR 確定キー(確定タッチ箇所)
KTNEW 検出キー(検出タッチ箇所)

【特許請求の範囲】
【請求項1】
タッチパネルにおける複数のタッチ箇所を所定の検出周期で検出するタッチパネルのタッチ検出装置であって、
前回の検出後に確定した全ての確定タッチ箇所に対する、今回の検出で得られた前記タッチ箇所である全ての検出タッチ箇所の位置の変化を判定する変化判定手段を備え、
前記変化判定手段は、
1つの前記検出タッチ箇所と全ての前記確定タッチ箇所との位置を比較して、当該検出タッチ箇所が前記確定タッチ箇所のいずれかと一致しているか否かを判定する一致判定手段と、
前記検出タッチ箇所が前記確定タッチ箇所と一致していないときに、前記検出タッチ箇所を所定範囲拡大した拡大検出タッチ箇所と前記確定タッチ箇所の重なり部分の有無を判定する重なり判定手段と、
前記重なり部分があるときに当該重なり部分の重なり度合いを算出する重なり度合い算出手段と、
前記検出タッチ箇所を、最大の前記重なり度合いが得られた前記確定タッチ箇所に対して変化したと決定する変化決定手段とを有し、
全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段の処理を行うことを特徴とするタッチパネルのタッチ検出装置。
【請求項2】
全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、
前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが等しい場合、前記検出タッチ箇所を確定しない一方、
前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが異なる場合、または前記一致判定手段によって不一致が判定された場合、前記検出タッチ箇所を新たな前記確定タッチ箇所として確定するとともに、前記検出タッチ箇所が確定したことを処理装置に通知する確定手段を備えていることを特徴とする請求項1に記載のタッチパネルのタッチ検出装置。
【請求項3】
全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、
全ての前記検出タッチ箇所についてチャタリングの有無を判定するチャタリング判定手段を備えていることを特徴とする請求項1または2に記載のタッチパネルのタッチ検出装置。
【請求項4】
タッチパネルにおける複数のタッチ箇所を所定の検出周期で検出するタッチパネルのタッチ検出方法であって、
前回の検出後に確定した全ての確定タッチ箇所に対する、今回の検出で得られた前記タッチ箇所である全ての検出タッチ箇所の位置の変化を判定する変化判定ステップを備え、
前記変化判定ステップは、
1つの前記検出タッチ箇所と全ての前記確定タッチ箇所との位置を比較して、当該検出タッチ箇所が前記確定タッチ箇所のいずれかと一致しているか否かを判定する一致判定ステップと、
前記検出タッチ箇所が前記確定タッチ箇所と一致していないときに、前記検出タッチ箇所を所定範囲拡大した拡大検出タッチ箇所と前記確定タッチ箇所の重なり部分の有無を判定する重なり判定ステップと、
前記重なり部分があるときに当該重なり部分の重なり度合いを算出する重なり度合い算出ステップと、
前記検出タッチ箇所を、最大の前記重なり度合いが得られた前記確定タッチ箇所に対して変化したと決定する変化決定ステップとを有し、
全ての前記検出タッチ箇所について、前記一致判定ステップ、前記重なり判定ステップ、前記重なり度合い算出ステップおよび前記変化決定ステップの処理を行うことを特徴とするタッチパネルのタッチ検出方法。
【請求項5】
全ての前記検出タッチ箇所について、前記一致判定ステップ、前記重なり判定ステップ、前記重なり度合い算出ステップおよび前記変化決定ステップによる処理を終えた状態で、
前記一致判定ステップによって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが等しい場合、前記検出タッチ箇所を確定しない一方、
前記一致判定ステップによって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが異なる場合、または前記一致判定ステップによって不一致が判定された場合、前記検出タッチ箇所を新たな前記確定タッチ箇所として確定するとともに、前記検出タッチ箇所が確定したことを処理装置に通知する確定ステップを備えていることを特徴とする請求項4に記載のタッチパネルのタッチ検出方法。
【請求項6】
全ての前記検出タッチ箇所について、前記一致判定ステップ、前記重なり判定ステップ、前記重なり度合い算出ステップおよび前記変化決定ステップによる処理を終えた状態で、
全ての前記検出タッチ箇所についてチャタリングの有無を判定するチャタリング判定ステップを備えていることを特徴とする請求項4または5に記載のタッチパネルのタッチ検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−65519(P2011−65519A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−216877(P2009−216877)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000134109)株式会社デジタル (224)
【Fターム(参考)】