(57)【要約】【課題】タッチパネル装置においてタッチ箇所の関連性の判定のための処理を簡素化する。【解決手段】垂直駆動検出部３から水平方向の透明電極を駆動することにより、水平駆動検出部４から垂直方向の透明電極のタッチ箇所に応じた検出パターンを得る。また、水平駆動検出部４から垂直方向の透明電極を駆動することにより、垂直駆動検出部３から水平方向の透明電極のタッチ箇所に応じた検出パターンを得る。キー検出部５２１は、これらの検出パターンに基づいてタッチ箇所を検出する。リンク判定部５２２は、今回の検出で検出された検出タッチ箇所を所定範囲拡大した拡大タッチ箇所と、前回の検出後にすでに確定した全ての確定タッチ箇所とを位置で比較して、最大の重なり部分がある確定タッチ箇所に対して検出タッチ箇所が移動したと判定する。【選択図】図１
2011065519.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルにおける複数のタッチ箇所を所定の検出周期で検出するタッチパネルのタッチ検出装置であって、
前回の検出後に確定した全ての確定タッチ箇所に対する、今回の検出で得られた前記タッチ箇所である全ての検出タッチ箇所の位置の変化を判定する変化判定手段を備え、
前記変化判定手段は、
１つの前記検出タッチ箇所と全ての前記確定タッチ箇所との位置を比較して、当該検出タッチ箇所が前記確定タッチ箇所のいずれかと一致しているか否かを判定する一致判定手段と、
前記検出タッチ箇所が前記確定タッチ箇所と一致していないときに、前記検出タッチ箇所を所定範囲拡大した拡大検出タッチ箇所と前記確定タッチ箇所の重なり部分の有無を判定する重なり判定手段と、
前記重なり部分があるときに当該重なり部分の重なり度合いを算出する重なり度合い算出手段と、
前記検出タッチ箇所を、最大の前記重なり度合いが得られた前記確定タッチ箇所に対して変化したと決定する変化決定手段とを有し、
全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段の処理を行うことを特徴とするタッチパネルのタッチ検出装置。
【請求項２】
全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、
前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが等しい場合、前記検出タッチ箇所を確定しない一方、
前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが異なる場合、または前記一致判定手段によって不一致が判定された場合、前記検出タッチ箇所を新たな前記確定タッチ箇所として確定するとともに、前記検出タッチ箇所が確定したことを処理装置に通知する確定手段を備えていることを特徴とする請求項１に記載のタッチパネルのタッチ検出装置。
【請求項３】
全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、
全ての前記検出タッチ箇所についてチャタリングの有無を判定するチャタリング判定手段を備えていることを特徴とする請求項１または２に記載のタッチパネルのタッチ検出装置。
【請求項４】
タッチパネルにおける複数のタッチ箇所を所定の検出周期で検出するタッチパネルのタッチ検出方法であって、
前回の検出後に確定した全ての確定タッチ箇所に対する、今回の検出で得られた前記タッチ箇所である全ての検出タッチ箇所の位置の変化を判定する変化判定ステップを備え、
前記変化判定ステップは、
１つの前記検出タッチ箇所と全ての前記確定タッチ箇所との位置を比較して、当該検出タッチ箇所が前記確定タッチ箇所のいずれかと一致しているか否かを判定する一致判定ステップと、
前記検出タッチ箇所が前記確定タッチ箇所と一致していないときに、前記検出タッチ箇所を所定範囲拡大した拡大検出タッチ箇所と前記確定タッチ箇所の重なり部分の有無を判定する重なり判定ステップと、
前記重なり部分があるときに当該重なり部分の重なり度合いを算出する重なり度合い算出ステップと、
前記検出タッチ箇所を、最大の前記重なり度合いが得られた前記確定タッチ箇所に対して変化したと決定する変化決定ステップとを有し、
全ての前記検出タッチ箇所について、前記一致判定ステップ、前記重なり判定ステップ、前記重なり度合い算出ステップおよび前記変化決定ステップの処理を行うことを特徴とするタッチパネルのタッチ検出方法。
【請求項５】
全ての前記検出タッチ箇所について、前記一致判定ステップ、前記重なり判定ステップ、前記重なり度合い算出ステップおよび前記変化決定ステップによる処理を終えた状態で、
前記一致判定ステップによって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが等しい場合、前記検出タッチ箇所を確定しない一方、
前記一致判定ステップによって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが異なる場合、または前記一致判定ステップによって不一致が判定された場合、前記検出タッチ箇所を新たな前記確定タッチ箇所として確定するとともに、前記検出タッチ箇所が確定したことを処理装置に通知する確定ステップを備えていることを特徴とする請求項４に記載のタッチパネルのタッチ検出方法。
【請求項６】
全ての前記検出タッチ箇所について、前記一致判定ステップ、前記重なり判定ステップ、前記重なり度合い算出ステップおよび前記変化決定ステップによる処理を終えた状態で、
全ての前記検出タッチ箇所についてチャタリングの有無を判定するチャタリング判定ステップを備えていることを特徴とする請求項４または５に記載のタッチパネルのタッチ検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネルに同時に複数入力されたタッチ箇所の変化を検出するタッチパネルのタッチ検出装置およびタッチ検出方法に関するものである。
【背景技術】
【０００２】
携帯情報機器においては、従来のボタンによる操作に代えて、表示画面上でのジェスチャー操作を採用することにより、表示画面の大型化や操作性の向上が図られている（例えば特許文献１）。ジェスチャー操作は、表示画面上に配置されたタッチパネル上で指などを所定の軌跡を描くようにスライドさせる操作である。その軌跡に、特定のコマンドが対応付けられているので、ジェスチャー操作をすることにより、そのコマンドに対応する動作を実行させることができる。また、上記の携帯情報機器では、ジェスチャー操作だけでなく、アイコンを移動させるドラッグ操作なども行うことができる。
【０００３】
このような携帯情報機器では、タッチパネル装置で検出されたタッチ箇所のデータに基づいて、アプリケーションプログラム上で、ジェスチャー操作のコマンドを特定したり、ドラッグ操作を実行したりといった処理が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００８−５３７６１５号公報（２００８年９月１８日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の携帯情報機器では、タッチパネル装置が検出周期毎に検出したタッチ箇所のデータを単に携帯情報機器で実行されるアプリケーションプログラムのデータを処理するメインＣＰＵに渡すだけである。このため、上記メインＣＰＵは、検出周期毎に渡されるタッチ箇所のデータからタッチ箇所の関連性の有無を判断して、タッチ箇所が連続した軌跡を描くものであるのか単独で入力されたものであるのかを決定した上で、タッチ箇所が連続した軌跡を描くものである場合に、ジェスチャー操作やドラッグ操作のための処理を行う。
【０００６】
このように、タッチ箇所の関連性を判断するために、アプリケーションプログラムのデータを処理するメインＣＰＵの処理量が多くなる。しかも、同時に多数のタッチ箇所が検出されると、タッチ箇所の関連性の判断処理が増加する。このため、処理が複雑になるという不都合がある。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、タッチパネル装置においてタッチ箇所の関連性の判定のための処理を簡素化することを目的としている。
【課題を解決するための手段】
【０００８】
本発明に係るタッチパネルのタッチ検出装置は、タッチパネルにおける複数のタッチ箇所を所定の検出周期で検出するタッチパネルのタッチ検出装置であって、上記の課題を解決するために、前回の検出後に確定した全ての確定タッチ箇所に対する、今回の検出で得られた前記タッチ箇所である全ての検出タッチ箇所の位置の変化を判定する変化判定手段を備え、前記変化判定手段が（ａ）〜（ｄ）の各手段を有し、全ての前記検出タッチ箇所について、上記各手段の処理を行うことを特徴としている。
（ａ）１つの前記検出タッチ箇所と全ての前記確定タッチ箇所との位置を比較して、当該検出タッチ箇所が前記確定タッチ箇所のいずれかと一致しているか否かを判定する一致判定手段
（ｂ）前記検出タッチ箇所が前記確定タッチ箇所と一致していないときに、前記検出タッチ箇所を所定範囲拡大した拡大検出タッチ箇所と前記確定タッチ箇所の重なり部分の有無を判定する重なり判定手段
（ｃ）前記重なり部分があるときに当該重なり部分の重なり度合いを算出する重なり度合い算出手段
（ｄ）前記検出タッチ箇所を、最大の前記重なり度合いが得られた前記確定タッチ箇所に対して変化したと決定する変化決定手段
また、本発明に係るタッチパネル装置のタッチ検出方法は、上記の課題を解決するために、上記各手段をステップとして備えていることを特徴としている。
【０００９】
上記の構成では、タッチ箇所検出手段（タッチ箇所検出ステップ）によって、１つの検出タッチ箇所が検出されると、一致判定手段（一致判定ステップ）によって、当該検出タッチ箇所と全ての確定タッチ箇所との位置が比較され、当該検出タッチ箇所が確定タッチ箇所のいずれかと一致しているか否かが判定される。一致が判定されたときは、検出タッチ箇所が特定の確定タッチ箇所と一致しており、変化していないことがわかる。一方、不一致が判定されたときは、重なり判定手段（重なり判定ステップ）によって、拡大検出タッチ箇所と確定タッチ箇所の重なり部分の有無が判定される。
【００１０】
重なりがないと判定されたときは、検出タッチ箇所が確定タッチ箇所と関係のない新たなタッチ箇所であることがわかる。一方、重なりがあると判定されたときは、重なり度合い算出手段（重なり度合い算出ステップ）によって、重なり部分の重なり度合いが算出される。ここで、最大の重なり度合いが得られた確定タッチ箇所が最も検出タッチ箇所と関連するタッチ箇所であることがわかる。そこで、変化決定手段（変化決定ステップ）によって、検出タッチ箇所が、上記の確定タッチ箇所に対して変化したと決定される。
【００１１】
このような処理は、全ての検出タッチ箇所について行われる。
【００１２】
このように１つずつ検出タッチ箇所の重なりの有無を判定しているので、タッチ箇所の関連性の判定のための処理を簡素化することができる。
【００１３】
前記タッチパネル装置は、全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが等しい場合、前記検出タッチ箇所を確定しない一方、前記一致判定手段によって一致が判定され、且つ前記検出タッチ箇所の数と前記確定タッチ箇所の数とが異なる場合、または前記一致判定手段によって不一致が判定された場合、前記検出タッチ箇所を新たな前記確定タッチ箇所として確定するとともに、前記検出タッチ箇所が確定したことを処理装置に通知する確定手段を備えていることが好ましい。また、このタッチパネル装置のタッチ検出方法は、各手段をステップとして備えている。
【００１４】
この構成では、全検出タッチ箇所が全確定タッチ箇所に対して変化していない場合、検出タッチ箇所が確定されず、処理装置には確定について通知されない。また、検出タッチ箇所の少なくとも１つが全確定タッチ箇所に対して変化している場合、検出タッチ箇所が確定され、その確定が処理装置に通知される。これにより、処理装置への確定の通知回数および処理装置からの確定タッチ箇所取得のためのアクセス回数が低減する。
【００１５】
あるいは、前記タッチパネル装置は、全ての前記検出タッチ箇所について、前記一致判定手段、前記重なり判定手段、前記重なり度合い算出手段および前記変化決定手段による処理を終えた状態で、全ての前記検出タッチ箇所についてチャタリングの有無を判定するチャタリング判定手段を備えていることが好ましい。
【００１６】
従来のタッチパネル装置では、検出された１つのタッチ箇所に対してチャタリングを判定した後に、タッチ箇所の変化を判定していたため、ｍ個のタッチ箇所が確定して後に、ｎ個のタッチ箇所が新たに検出された場合、ｍ×ｎの組み合わせでタッチ箇所の変化判定を行わなければならず、処理が複雑であった。これに対し、上記の構成では、一致判定手段から変化決定手段までの一連の処理を終えた状態で、全ての検出タッチ箇所についてチャタリングの有無を判定するので、ｍ×ｎの組み合わせで変化判定を行う必要はなく、処理を単純化させることができる。それゆえ、効率的に検出タッチ箇所の変化を判定することができる。
【００１７】
また、前述のいずれかのタッチ検出装置は、タッチパネルコントローラに含まれることが好ましい。これにより、タッチパネル装置に設けられるタッチパネルコントローラで前述のように変化判定手段による処理が行われる。それゆえ、前述のメインＣＰＵはタッチパネルコントローラからのタッチ箇所を用いてジェスチャー操作やドラッグ操作のための処理が削減されるため、前述のメインＣＰＵにおける処理量の負担が軽減される。
【発明の効果】
【００１８】
本発明に係るタッチパネル検出装置は、以上のように、変化判定手段を備えることにより、タッチ箇所の検出のための処理を簡素化し、タッチパネル装置が組み込まれるシステムの性能の低下を回避することができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係るタッチパネル装置の要部の構成を示す図である。
【図２】上記タッチパネル装置におけるタッチパネルと当該タッチパネル周辺に接続される水平駆動検出部および垂直駆動検出部の構成を示す図である。
【図３】上記水平駆動検出部および上記垂直駆動検出部から出力される出力データ（検出パターン）の一例を示す図である。
【図４】上記タッチパネル装置における制御インターフェース部に設けられるメモリに設けられるＴＮＥＷキー記憶領域の構成を示す図である。
【図５】上記メモリに設けられるＣＵＲキー記憶領域の構成を示す図である。
【図６】上記メモリに設けられるＣＨＡＴＴキー記憶領域の構成を示す図である。
【図７】上記制御インターフェース部におけるリンク判定部の詳細な構成を示すブロック図である。
【図８】検出されたキーを拡大した拡大キーと確定したキーとの重なり度合いを算出する具体的方法を示す図である。
【図９】すでに確定したキーに対して検出されたキーのリンクを決定するときの実例を示す図である。
【図１０】キー確定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
本発明の実施形態を図１〜図１０に基づいて説明すると、以下の通りである。
〔１．タッチパネル装置の構成〕
図１に示すように、本実施の形態に係るタッチパネル装置１は、タッチパネル２と、垂直駆動検出部３と、水平駆動検出部４と、制御インターフェース部５（タッチ検出装置）とを備えている。垂直駆動検出部３、水平駆動検出部４および制御インターフェース部５は、タッチパネル装置１においてタッチパネル駆動装置を構成している。
〔１−１．タッチパネルの構成〕
図２に示すように、タッチパネル２は、高精細のマトリクス型タッチパネルである。
【００２１】
本発明において、タッチパネルは複数の同時のタッチ入力に対して生じる複数のキー（後述する「タッチ箇所」）を検出できるタッチパネルであれば、どのようなタッチパネルを採用しても良い。ただし、本実施の形態において、本発明を説明する便宜上、タッチパネル２を高精細のマトリクス型タッチパネルとしている。
【００２２】
このタッチパネル２は、所定間隔をおいて対向するように貼り合わされた透明基板を有しており、両透明基板の互いに対向する面が電極形成面となる。一方の透明基板における電極形成面には、水平方向に互いに平行に配された複数の透明電極Ｅｈ（水平電極）が形成されている。また、他方の透明基板における電極形成面には、垂直方向に互いに平行に配された複数の透明電極Ｅｖ（垂直電極）が形成されている。各透明電極Ｅｈ，Ｅｖは、ＩＴＯ（インジウム錫酸化物）などからなる抵抗膜で構成される短冊状の電極であり、両透明基板間で互いに交差するように配置されている。
【００２３】
透明電極Ｅｈのうち最も上端に配置されるのが第１（電極番号１）の透明電極Ｅｈであり、以降、その下側に、第２，第３，…の透明電極Ｅｈが配置される。透明電極Ｅｖのうち最も左端に配置されるのが、第１（電極番号１）の透明電極Ｅｈであり、以降、その右側に、第２，第３，…の透明電極Ｅｖが配置される。
〔１−２．タッチパネルの駆動検出動作〕
タッチパネル装置１においては、タッチパネル２がタッチされると、タッチ箇所で透明電極Ｅｈ，Ｅｖの交差部分が互いに接触する。この状態で、透明電極Ｅｈまたは透明電極Ｅｖのいずれか一方に駆動電圧を印加すると、この駆動電圧がタッチ箇所を介して他方側に現れる。したがって、この電圧を検出電圧として取り出すことにより、タッチパネル２上でタッチされた位置が検出される。
【００２４】
なお、以降の説明において、透明電極Ｅｈ，Ｅｖに共通して記述する場合には、透明電極Ｅとする。
〔１−３．垂直駆動検出部の構成〕
垂直駆動検出部３（垂直駆動検出手段）は透明電極Ｅｈの一端側に接続され、複数のドライバＩＣ６を備えている。また、垂直駆動検出部３において、各ドライバＩＣ６は、タッチパネル２の垂直方向接続端縁に沿った垂直方向に並ぶように実装されている。
〔１−４．水平駆動検出部の構成〕
一方、水平駆動検出部４（水平駆動検出手段）は透明電極Ｅｖの一端側に接続され、複数のドライバＩＣ６が設けられている。また、水平駆動検出部４において、各ドライバＩＣ６は、タッチパネル２の水平方向の接続端縁に沿った水平方向に並ぶように実装されている。
〔１−５．ドライバＩＣの構成〕
ドライバＩＣ６は、制御インターフェース部５からドライバＩＣ６へ与えられるシリアルのドライバ入力データＤＡＴＡＩＮ（駆動データ）に基づいた駆動電圧をタッチパネル２の複数の透明電極Ｅｈ，Ｅｖへ出力する。また、ドライバＩＣ６は、透明電極Ｅｈ，Ｅｖから出力される検出電圧に基づく検出データを制御インターフェース部５に出力する。
【００２５】
具体的には、ドライバＩＣ６は、ドライバ入力データＤＡＴＡＩＮを透明電極Ｅｈ，Ｅｖの個々に対応するようにパラレルに変換して、このパラレルのデータに基づいて透明電極Ｅｈ，Ｅｖの個々に与える駆動電圧を発生する。また、具体的には、ドライバＩＣ６は、複数の透明電極Ｅｈ，Ｅｖの個々から出力される検出電圧をパラレルのデータとして検出し、検出したデータをシリアルの検出データに変換してドライバ出力データＤＡＴＡＯＵＴ（水平検出データ，垂直検出データ）として出力する。
【００２６】
このため、ドライバＩＣ６は、上記のようなデータのシリアル／パラレル変換を行うために、シリアルイン−パラレルアウトシフトレジスタを有している。また、ドライバＩＣ６は、上記のようなパラレル／シリアル変換を行うために、パラレルイン−シリアルアウトシフトレジスタを有している。
【００２７】
なお、ドライバＩＣ６は、シリアルイン−パラレルアウトシフトレジスタおよびパラレルイン−シリアルアウトシフトレジスタを有する代わりに、これらの機能を兼ね備えたシフトレジスタを有していてもよい。
【００２８】
垂直駆動検出部３に設けられる各ドライバＩＣ６は、複数の透明電極Ｅｈに駆動電圧を出力するとともに、複数の透明電極Ｅｈからの検出電圧が入力されるように、タッチパネル２側に入出力用の端子（ピン）を有している。
【００２９】
垂直駆動検出部３において、各ドライバＩＣ６間でデータ伝送線がデイジーチェーン接続されている。これにより、垂直駆動検出部３において、制御インターフェース部５からのドライバ入力データＤＡＴＡＩＮは、初段のドライバＩＣ６（図１および図２において垂直駆動検出部３の上端に位置する）に入力されて、順次後段のドライバＩＣ６に伝送されていく。また、垂直駆動検出部３において、各ドライバＩＣ６から出力される検出データが、その後段のドライバＩＣ６に入力され、当該後段のドライバＩＣ６の検出データに続いてシフトされる。これにより、各ドライバＩＣ６の検出データが連続した１つのドライバ出力データＤＡＴＡＯＵＴとなって、垂直駆動検出部３における最終段のドライバＩＣ６（図１および図２において垂直駆動検出部３の下端に位置する）から出力される。
【００３０】
一方、水平駆動検出部４に設けられる各ドライバＩＣ６は、複数の透明電極Ｅｖに駆動電圧を出力するとともに、複数の透明電極Ｅｖからの検出電圧が入力されるように、タッチパネル２側に入出力用の端子（ピン）を有している。
【００３１】
水平駆動検出部４において、各ドライバＩＣ６間でデータ伝送線がデイジーチェーン接続されている。これにより、水平駆動検出部４において、制御インターフェース部５からのドライバ入力データＤＡＴＡＩＮは、初段のドライバＩＣ６（図１および図２において水平駆動検出部４の左端に位置する）に入力されて、順次後段のドライバＩＣ６に伝送されていく。また、水平駆動検出部４において、各ドライバＩＣ６から出力される検出データが、その後段のドライバＩＣ６に入力され、当該後段のドライバＩＣ６の検出データに続いてシフトされる。これにより、各ドライバＩＣ６の検出データが連続した１つのドライバ出力データＤＡＴＡＯＵＴとなって、水平駆動検出部４における最終段のドライバＩＣ６（図１および図２において水平駆動検出部４の右端に位置する）から出力される。
【００３２】
垂直駆動検出部３および水平駆動検出部４における各ドライバＩＣ６には、それぞれ直接リセット信号ＲＥＳとクロックＣＬＫとが入力される。
【００３３】
なお、垂直駆動検出部３および水平駆動検出部４においては、各ドライバＩＣ６が制御インターフェース部５とパラレルで直接データの送受を行うように構成されていてもよい。
〔１−６．ドライバ出力データおよびドライバ入力データの構成〕
以降の説明では、タッチパネル２におけるタッチ入力箇所をキー（タッチ箇所）と称する。水平駆動検出部４から出力されるドライバ出力データＤＡＴＡＯＵＴ（検出パターン）におけるタッチ検出部分を、シャドー（タッチ範囲）と称する。同様に、垂直駆動検出部３から出力されるドライバ出力データＤＡＴＡＯＵＴにおけるタッチ検出部分もシャドー（タッチ範囲）と称する。
【００３４】
図３に示すように、ドライバ出力データＤＡＴＡＯＵＴの各ビットは、各透明電極Ｅ（前述の電極番号）に対応しており、“１”である場合に印加電圧の検出を表し（アクティブハイ）、“０”である場合に印加電圧の非検出を表している。“０”から変化した“１”のビットがシャドーの先頭位置を表すトップ位置ＴＯ−ｉＰ（ｉは最大キー検出数を表す）であり，“０”へ変化した“１”のビットがシャドーの末尾位置を表すボトム位置ＢＯ−ｉＰである。このように、ドライバ出力データＤＡＴＡＯＵＴは、全ての透明電極Ｅｈ，Ｅｖによるタッチ箇所の検出および非検出を表す検出パターンとなる。また、水平方向および垂直方向のそれぞれのトップ位置ＴＯ−ｉＰおよびボトム位置ＢＯ−ｉＰがタッチパネル２における座標位置を表す。
【００３５】
図３に示す検出パターンでは、電極番号２０が第１のトップ位置ＴＯ−１Ｐであり、電極番号４５が第１のボトム位置ＢＯ−１Ｐであり、第１のトップ位置ＴＯ−１Ｐおよび第１のボトム位置ＢＯ−１Ｐで第１のシャドーが規定される。また、電極番号７０が第２のトップ位置ＴＯ−２Ｐであり、電極番号７８が第２のボトム位置ＢＯ−２Ｐであり、第２のトップ位置ＴＯ−２Ｐおよび第２のボトム位置ＢＯ−２Ｐで第２のシャドーが規定される。
【００３６】
一方、ドライバ入力データＤＡＴＡＯＩＮの各ビットは、各透明電極Ｅに対応しており、“１”である場合に駆動電圧の印加を表し（アクティブハイ）、“０”である場合に駆動電圧の非印加を表している。
〔１−７．制御インターフェース部の構成〕
制御インターフェース部５（タッチ検出装置）は、本発明のタッチ検出方法を実現するために、下記の（１）〜（３）の機能を有している。
（１）外部のＣＰＵ１０（処理装置）からの指示を受けて、タッチパネル２へ与えるドライバ入力データＤＡＴＡＩＮを出力し、それに応じてタッチパネル２から出力されるドライバ出力データＤＡＴＡＯＵＴを取り込む動作を所定の検出周期で行うことにより、キーを検出する。
（２）検出したキー（以降、「検出キー」と称する）を前回の検出の後に確定したキー（以降、「確定キー」と称する）とそれぞれの位置データで比較し、その比較結果に応じて、検出キーが確定キーに対して位置の変化したキー（移動したキー）であるか否かを判定して、キーを確定する。
（３）ＣＰＵ１０にキーが確定したことを通知し、ＣＰＵ１０からの確定キーのデータの読み出しを受け付ける。
【００３７】
制御インターフェース部５は、上記の機能を実現するために、メモリ５１と、キー確定処理部５２とを有している。また、下記のように構成される制御インターフェース部５は、ハードウェアロジック（デジタル回路）によって構成されるが、マイクロコンピュータによってソフトウェアで実現されるように構成されてもよい。
〔１−７−１．メモリの構成〕
ＲＡＭからなるメモリ５１は、ＴＮＥＷキー記憶領域５１１と、ＣＵＲキー記憶領域５１２と、ＣＨＡＴＴキー記憶領域５１３と、作業領域５１４とを有している。
〔１−７−１（ａ）．ＴＮＥＷキー記憶領域の構成〕
ＴＮＥＷキー記憶領域５１１は、後述するリンク判定部５２２によるリンクの判定を行うために、新たな検出キーについての各種のデータを記憶する。このＴＮＥＷキー記憶領域５１１は、図４に示すように、検出キーについての検出キー位置ＤＥＴＥＣＴＥＤＰＯＳを記憶する領域と、ＯＦＦフラグ、ＯＮフラグ、ＭＯＶＥフラグおよびＬＩＮＫフラグを設ける各領域（１ビット）と、ＬＩＮＫ−ＫＥＹデータを記憶する領域（４ビット）と、キー数ＴＮＥＷＫＥＹ−ＮＯを記憶する領域（４ビット）とを有している。上記の各領域は、１つのキー毎に設けられており、それぞれにキー番号が付与されている。
【００３８】
検出キー位置ＤＥＴＥＣＴＥＤＰＯＳは、検出キーの水平シャドー（水平方向のシャドー）および垂直シャドー（垂直方向のシャドー）のそれぞれのトップ位置およびボトム位置のデータである。この検出キー位置ＤＥＴＥＣＴＥＤＰＯＳは、キーが検出された順に１番目の記憶領域から書き込まれていく。
【００３９】
ＯＦＦフラグは“１”であるときにキーが無効であることを示す。ＯＮフラグは“１”であるときに検出キーが有効であることを示す。ＭＯＶＥフラグは、“１”であるときに、今回の検出キーが前回の確定キーから移動したＭＯＶＥキーであることを示す。ＬＩＮＫフラグは、“１”であるときに、検出キーが確定キーとリンクしている（重なっている）ＬＩＮＫキーであることを示す。ＬＩＮＫ−ＫＥＹデータは、リンクしているキーのキー番号のデータである。
【００４０】
キー数ＴＮＥＷＫＥＹ−ＮＯは検出キーの数である。キー数は、ハードウェアやソフトウェアの制限から最大数（ＴＫ）が規定されており、キー数ＴＮＥＷＫＥＹ−ＮＯが規定数を超えているか否かが判定される。
〔１−７−１（ｂ）．ＣＵＲキー記憶領域の構成〕
ＣＵＲキー記憶領域５１２は、確定キーについての各種のデータを記憶する。このＣＵＲキー記憶領域５１２は、図５に示すように、確定されたキーについての確定キー位置ＣＵＲＰＯＳを記憶する領域と、ＯＦＦフラグ、ＯＮフラグ、ＭＯＶＥフラグおよびＬＩＮＫフラグを設ける各領域と、ＬＩＮＫ−ＫＥＹデータを記憶する領域と、キー数ＣＵＲＫＥＹ−ＮＯを記憶する領域（４ビット）とを有している。上記の各領域は、１つのキー毎に設けられており、それぞれにキー番号が付与されている。
【００４１】
確定キー位置ＣＵＲＰＯＳ位置データＰＯＳは、確定キーの水平シャドーおよび垂直シャドーのそれぞれのトップ位置およびボトム位置のデータである。キー数ＣＵＲＫＥＹ−ＮＯは、確定キーの数であり、キー数ＴＮＥＷＫＥＹ−ＮＯと同数に規定されている。
〔１−７−１（ｃ）．ＣＨＡＴＴキー記憶領域の構成〕
ＣＨＡＴＴキー記憶領域５１３は、後述するチャタリング判定部５２３によるチャタリングの判定を行うために、チャタリング判定されるキーについての各種のデータを記憶する。このＣＨＡＴＴキー記憶領域５１３は、図６に示すように、チャタリング判定されるキーについてのチャタリングキー位置ＣＨＡＴＴＰＯＳを記憶する領域と、ＯＦＦフラグ、ＯＮフラグ、ＭＯＶＥフラグおよびＬＩＮＫフラグを設ける各領域と、ＬＩＮＫ−ＫＥＹデータを記憶する領域と、キー数ＴＮＥＷＫＥＹ−ＮＯを記憶する領域（４ビット）とを有している。上記の各領域は、１つのキー毎に設けられており、それぞれにキー番号が付与されている。
【００４２】
チャタリングキー位置ＣＨＡＴＴＰＯＳは、チャタリング判定キーの水平シャドーおよび垂直シャドーのそれぞれのトップ位置およびボトム位置のデータである。キー数ＣＨＡＴＴＫＥＹ−ＮＯは、確定されたキーの数であり、キー数ＴＮＥＷＫＥＹ−ＮＯと同数に規定されている。
〔１−７−１（ｄ）．作業領域の構成〕
作業領域５１４は、キー確定処理に必要な各種の値を記憶するために設けられている。例えば、このような値としては、ＣＨＡＮＧＥＤフラグ、リンク度ＬＩＮＫＶＡＬＵＥ、拡大検出キー位置ＤＥＴＥＣＴＥＤＰＯＳ−ＬＧおよび拡大マージンαが挙げられる。
【００４３】
後述するように、リンク判定部５２２により、今回の検出された各検出キーと、前回の確定処理で得られた全ての確定キーとの一致の有無が比較される。ＣＨＡＮＧＥＤフラグは、各検出キーが、どの確定キーとも一致していないと判定されたときに“１”にセットされる。
【００４４】
後述するように、リンク判定部５２２によるリンク判定を行うときに、１つの検出キーと、全ての確定キーとを比較することにより、両キーのリンク（重なり部分）の有無が判定され、重なり部分があるとき、その重なり度合いが算出される。リンク度ＬＩＮＫＶＡＬＵＥは、検出キーと確定キーとのリンクがあるとき、上記の比較において、その時点で最大である重なりの度合いが設定される値である。
【００４５】
拡大位置ＤＥＴＥＣＴＥＤＰＯＳ−ＬＧは、上記のリンク判定において、検出キーＫＴＮＥＷを水平方向および垂直方向に所定範囲拡大した拡大検出キーＫＬＧの位置データである。拡大マージンαは、検出キーＫＴＮＥＷを拡大検出キーＫＬＧにまで拡大する上記の所定範囲の値である。この拡大マージンαは、ＣＰＵ１０によって書き込まれるが、固定値であってもよい。
【００４６】
また、作業領域５１４は、後述するリンク判定部５２２によるキーの一致判定に用いる一致判定マージンや、後述するチャタリング判定部５２３によるキーの一致判定に用いるチャタリング判定マージンも記憶している。両判定マージンは、ＣＰＵ１０によって書き込まれるが、固定値であってもよい。
【００４７】
さらに、作業領域５１４は、キー検出部５２１がキー検出を行う検出周期を設定する検出周期データや、チャタリング判定部５２３がチャタリング判定を行う処理周期を設定する処理周期データを記憶している。これらの周期データも、ＣＰＵ１０によって書き込まれるが、固定値であってもよい。検出周期および処理周期は、２×処理周期≦検出周期という関係を満たすように設定される。
〔１−７−２．キー確定処理部の構成〕
キー確定処理部５２は、キー検出部５２１と、リンク判定部５２２と、チャタリング判定部５２３と、キー確定部５２４と、メモリ管理部５２５とを有している。
〔１−７−２．（ａ）キー検出部の構成〕
キー検出部５２１（タッチ箇所検出手段，タッチ箇所検出ステップ）は、透明電極Ｅｖまたは透明電極Ｅｈを駆動した結果として、それらに交差する透明電極Ｅｈまたは透明電極Ｅｖから得られた検出パターンにおけるシャドーに基づいてキーを検出する。このため、キー検出部５２１は、透明電極Ｅｖまたは透明電極Ｅｈを駆動するための駆動パターンをドライバ入力データＤＡＴＡＩＮとして出力する。また、キー検出部５２１は、垂直駆動検出部３および水平駆動検出部４から出力されるドライバ出力データＤＡＴＡＯＵＴより、“０”から変化する“１”のビットおよび“０”へ変化する“１”のビットを検出することにより、前述のトップ位置ＴＯ−ｉＰおよびボトム位置ＢＯ−ｉＰを得て、シャドーを特定する。このように特定された水平シャドーと、それに対応する垂直シャドーとで１つのキーが特定される。このため、キーの位置の情報は、タッチの中心位置（点）ではなく、矩形（面）として得られる。
【００４８】
また、キー検出部５２１は、キー検出に先立って、ＣＵＲキー記憶領域５１２における確定キーの全てについてＯＮフラグの値（“１”）をＴＮＥＷキー記憶領域５１１のＯＦＦフラグの領域にコピーする。キー検出部５２１は、キー検出の結果、確定キーと同じ検出キー（変化なし）を検出したり、検出キーの移動を検出したりしたときに、上記のＯＦＦフラグの値を０にする。したがって、このような検出結果の検出キーは、ＯＦＦフラグが“１”であるＯＦＦキーとして残る。
【００４９】
また、キー検出部５２１は、所定の検出周期で検出処理を行い、各検出処理で検出された全ての検出キーについて、後述するリンク判定部５２２によるリンクの判定が行われると、それらの検出キーについてチャタリング処理を行うように、チャタリング判定部５２３に指示する。これに合わせて、キー検出部５２１は、リンク判定後、次のキー検出を行う前に、チャタリング判定のための比較対象となるキーを検出する。
〔１−７−２．（ｂ）リンク判定部〕
リンク判定部５２２（変化判定手段，変化判定ステップ）は、キー検出部５２１によって検出されたキーが、前回のキー確定処理で確定した全てキーに対して重なっているか否か（リンクの有無）を判定する。
〔１−７−２．（ｂ−１）リンク判定の必要性〕
検出キーのデータ（水平シャドーおよび垂直シャドーのデータ）は、メモリ５１のＴＮＥＷキー記憶領域５１１に検出順に並ぶように記憶される。また、前回の確定処理ですでに確定した確定キーは、メモリ５１のＣＵＲキー記憶領域５１２に検出時の検出順に並ぶように記憶される。前回の確定処理で確定された複数の一群の確定キーと、今回の検出された複数の一群の検出キーとの間で、両群のキーの並びの関係が一致している場合はキーの変化がないので不都合はない。
【００５０】
これに対し、ジェスチャー操作やドラッグ操作により、指などの指示手段がタッチパネル２上を移動している場合や、入力数が増加した場合は、両群のキーの並びの関係が一致しなくなる。このため、今回の検出キーと前回の確定キーとの関係を特定しないと、検出キーの変化が、新たなタッチ入力によるものであるのか、ジェスチャー操作やドラッグ操作によりキーが移動したものであるのかがわからない。
【００５１】
例えば、１つのキーが少しでも移動すると、検出毎に検出の順番（キー番号）が異なることがある。具体的には、複数箇所でタッチされているときに、ドラッグ操作などにより、検出されるキーのうちの１つのキーが移動すると、この移動のために移動したキーのキー番号が前回の確定キーのキー番号から変わる。また、２本の指の間隔を広げていくピンチアウトのようなジェスチャー操作により、１つの確定キーが複数の検出キーに分かれて増加することもある。したがって、先の確定キーと後の確定キーとの両群の関連情報がないと、ＣＰＵ１０は、単に両群の確定キーを受け取っても、どのキーがどう変化したかが容易にはわからない。
【００５２】
また、前述のように、従来のキーの変化検出は、タッチパネル装置側で行われず、ジェスチャー操作などの処理を行うアプリケーションプログラム上で行われていたので、アプリケーションプログラムを処理するＣＰＵの負担が大きかった。そこで、リンク判定をタッチパネル装置側で行うことにより、アプリケーションプログラム上でキーの変化判定を行う必要がなく、アプリケーションプログラムを処理するＣＰＵの負担を軽減することができる。
〔１−７−２．（ｂ−２）リンク判定部の詳細〕
そこで、リンク判定部５２２は、次のようにして、前回の確定キーと今回の検出キーとの関連性を判定するために、一致判定部５２２ａ、重なり判定部５２２ｂ、重なり度合い算出部５２２ｃ、リンク度設定部５２２ｄおよびリンク決定部５２２ｅを有している。
〔１−７−２．（ｂ−２−１）一致判定部〕
一致判定部５２２ａ（一致判定手段，一致判定ステップ）は、図８に示すように、今回の確定処理で検出された１つの検出キーＫＴＮＥＷ（検出タッチ範囲）と、前回の確定処理で確定した全ての確定キーＫＣＵＲ（確定タッチ範囲）とを比較して、両者の一致を判定する。この比較は、両キーＫＴＮＥＷ，ＫＣＵＲの位置をシャドーのトップ位置およびボトム位置に基づいて行われる。
【００５３】
一致判定部５２２ａは、両キーＫＴＮＥＷ，ＫＣＵＲの位置が微妙な差を許容して一致していれば、キーＫＴＮＥＷを変化していない（新規に検出されていない）ＯＮキーと判定する。上記の差は、作業領域５１４に記憶されている一致判定マージンで与えられる。一致判定部５２２ａは、一致を判定すると、前述のＴＮＥＷキー記憶領域５１１のＯＮフラグを“１”にセットする。一方、一致判定部５２２ａは、不一致を判定すると、作業領域５１４のＣＨＡＮＧＥＤフラグを１にセットする。
〔１−７−２．（ｂ−２−２）重なり判定部〕
重なり判定部５２２ｂ（重なり判定手段，重なり判定ステップ）は、所定範囲で検出キーＫＴＮＥＷを拡大した拡大検出キーＫＬＧ（拡大検出タッチ箇所）を用意する。この重なり判定部５２２ｂは、拡大検出キーＫＬＧの拡大検出キー位置ＤＥＴＥＣＴＥＤＰＯＳ−ＬＧと、ＣＵＲキー記憶領域５１２のキー番号１からキー番号ＴＫまでの各確定キー位置ＣＵＲＰＯＳとを順次比較する。また、重なり判定部５２２ｂは、比較の結果、両キーＫＴＮＥＷ，ＫＣＵＲについて、重なり部分の有無を判定する。
〔１−７−２．（ｂ−２−３）重なり度合い算出部〕
重なり度合い算出部５２２ｃ（重なり度合い算出手段，重なり度合い算出ステップ）は、重なり部分のある場合に重なり度合いを算出する。重なり度合いは、重なり部分を形成する矩形の水平方向および垂直方向の２辺の和や、当該矩形の面積で与えられる。
【００５４】
重なり度合い算出部５２２ｃは、図８に示すように、検出キーＫＴＮＥＷを水平方向および垂直方向の両側に前述の検出マージンαの範囲で拡大した拡大検出キーＫＬＧと確定キーＣＵＲとの位置を水平方向と垂直方向とで個別に比較する。重なり度合い算出部５２２ｃは、具体的には、次の（１）〜（３）の処理を行うことにより重なり度合いを算出する。ここで、確定キーＣＵＲは、水平トップ位置ＨＴＯ（ＣＵＲ）、水平ボトム位置ＨＢＯ（ＣＵＲ）、垂直トップ位置ＶＴＯ（ＣＵＲ）および垂直ボトム位置ＶＢＯ（ＣＵＲ）を有している。また、拡大検出キーＫＬＧは、水平トップ位置ＨＴＯ（ＬＧ）、水平ボトム位置ＨＢＯ（ＬＧ）、垂直トップ位置ＶＴＯ（ＬＧ）および垂直ボトム位置ＶＢＯ（ＬＧ）を有している。
【００５５】
なお、前述のように、タッチパネル２において、透明電極Ｅｈのうち最も上端に配置されるのが電極番号１の電極であるので、左上側の頂点が座標の原点となるが、説明をわかりやくするため、図８において、タッチパネル２の左下側の頂点を座標の原点としている。
（１）水平方向について、水平トップ位置ＨＴＯ（ＬＧ）と水平トップ位置ＨＴＯ（ＣＵＲ）とを比較する。ＨＴＯ（ＣＵＲ）＞ＨＴＯ（ＬＧ）であると判定したとき（図８の場合）、水平方向の重なり部分として、Ｘ＝ＨＢＯ（ＬＧ）−ＨＴＯ（ＣＵＲ）を算出する。また、ＨＴＯ（ＣＵＲ）＜ＨＴＯ（ＬＧ）であると判定したとき、水平方向の重なり部分として、Ｘ＝ＨＢＯ（ＣＵＲ）−ＨＴＯ（ＬＧ）を算出する。
（２）垂直方向について、垂直トップ位置ＶＴＯ（ＬＧ）と垂直トップ位置ＶＴＯ（ＣＵＲ）とを比較する。ＶＴＯ（ＬＧ）＞ＶＴＯ（ＣＵＲ）であると判定したとき（図８の場合）、垂直方向の重なり部分として、Ｙ＝ＶＴＯ（ＣＵＲ）−ＶＢＯ（ＬＧ）を算出する。また、ＶＴＯ（ＬＧ）＜ＶＴＯ（ＣＵＲ）であると判定したときに、垂直方向の重なり部分として、Ｙ＝ＶＴＯ（ＬＧ）−ＶＢＯ（ＣＵＲ）を算出する。
（３）Ｘ＋Ｙ（斜線で示す重なり部分の縦の辺と横の辺との和）またはＸ×Ｙ（重なり部分の面積）を算出した値が、重なりの度合いを表す値であり、後述するように、リンク度設定部５２２ｄによってリンクＬＩＮＫＶＡＬＵＥ度として設定される。
〔１−７−２．（ｂ−２−４）リンク度設定部〕
リンク度設定部５２２ｄは、上記のようにして算出された重なり度合いをリンク度ＬＩＮＫＶＡＬＵＥ（初期値０）と比較し、重なり度合いがリンク度ＬＩＮＫＶＡＬＵＥより大きいと判定した場合、作業領域５１４のリンク度ＬＩＮＫＶＡＬＵＥの値を上記のように判定した重なりの度合いの値に書き替える（設定する）。重なり部分があると判定された確定キーＫＣＵＲについて得られた重なり度合いについて、上記のリンク度ＬＩＮＫＶＡＬＵＥとの大小判定が行われ、且つ重なり度合いが大きいとの判定によるリンク度ＬＩＮＫＶＡＬＵＥの書き替えが行われる結果、最終的に設定されたリンク度ＬＩＮＫＶＡＬＵＥは最大値となる。
〔１−７−２．（ｂ−２−５）リンク決定部〕
リンク決定部５２２ｅ（変化決定手段，変化決定ステップ）は、リンク判定対象となる検出キーＫＴＮＥＷを、最終的に最大のリンク度ＬＩＮＫＶＡＬＵＥが得られた確定キーＫＣＵＲに対して移動したキーであるＭＯＶＥキーと決定し、ＴＮＥＷキー記憶領域５１１のＭＯＶＥフラグを“１”にセットする。
【００５６】
例えば、図９に示すように、拡大検出キーＫＬＧと３つの確定キーＣＵＲ１〜ＣＵＲ３とを比較する場合、拡大検出キーＫＬＧが確定キーＣＵＲ３と一部重なっている。この場合、拡大検出キーＫＬＧが確定キーＣＵＲ３とリンクしていると判断される。
【００５７】
また、リンク決定部５２２ｅは、比較の結果、リンク度ＬＩＮＫＶＡＬＵＥが０である場合、検出キーＫＴＮＥＷをリンクのないＮＥＷキーと決定し、ＴＮＥＷキー記憶領域５１１のＯＮフラグを“１”にセットする。
〔１−７−２．（ｃ）チャタリング判定部の構成〕
チャタリング判定部５２３は、今回のキー確定処理でキー検出部５２１によって全てのキーが検出されると、これらのキーについてチャタリングの有無を判定する。
〔１−７−２．（ｃ−１）チャタリング判定の必要性〕
指などの指示手段がタッチパネル２上をスライドしているとき、指示手段の押圧が変化する（不安定になる）ことにより、タッチ軌跡が断続することがある。これにより、タッチの軌跡が断絶した箇所では、リンク判定部５２２によるリンク判定が適正にできなくなるので、断絶前の箇所とでシャドー数に矛盾が生じる。この場合は、最初からキーを検出し直すか、または、確定処理を中断して次のキー検出周期まで待機するかのどちらかを行う必要がある。
【００５８】
また、従来のタッチパネル装置では、検出された１つのキーに対してチャタリングを判定した後に、キーの変化を判定していた。このため、すでにｍ個のキーが確定しており、ｎ個のキーが新たに検出された場合、ｍ×ｎの組み合わせでキーの変化判定を行わなければならず、処理が複雑であった。このような複雑な処理を回避することが望ましいので、後述するように、キー検出処理で一群のキーが検出された後に、これらのキーに対してまとめてチャタリング判定を行うようにして、キーの変化判定回数を減少させている。
〔１−７−２．（ｃ−２）チャタリング判定〕
チャタリング判定部５２３（チャタリング判定手段，チャタリング判定ステップ）は、チャタリング判定のために次の（１），（２）の処理を行う。
（１）今回の検出処理で検出された一群の検出キーＫＴＮＥＷについてリンク判定部５２２によってリンクが判定されると、ＴＮＥＷキー記憶領域５１１に記憶された各データをＣＨＡＴＴキー記憶領域５１３にコピーして、検出キーＫＴＮＥＷをチャッタキーＫＣＨＡＴＴとする。
（２）一定の時間後にもう一度検出された一群のキーとの比較で、両キーの位置が許容可能な微妙な差を許容して一致していれば、チャタリングがないと判断する。上記の一定の時間は、作業領域５１４に記憶されている処理周期データによって与えられるチャタリング処理周期である。また、上記の差は、作業領域５１４に記憶されているチャタリング判定マージンで与えられる。これにより、両キーの水平方向および垂直方向の位置にチャタリング判定マージン以内のずれがあっても、そのずれを許容範囲として、両キーが一致していると判定される。
〔１−７−２．（ｄ）キー確定部の構成〕
検出キーＫＴＮＥＷが確定キーＫＣＵＲに対して変化していない場合でも、キー検出部５２１によってキーが検出される毎にＣＰＵ１０に検出結果を通知するのは効率的でなく、システム性能を低下させる。
【００５９】
そこで、キー確定部５２４（確定手段，確定ステップ）は、前回の確定処理で確定した一群の確定キーＫＣＵＲに対して、今回検出された一群の検出キーＫＴＮＥＷが位置および数について変化しない場合は、その検出結果をＣＰＵ１０に通知しない。また、キー確定部５２４は、一群の検出キーＫＴＮＥＷが、一群の確定キーＫＣＵＲに関連して変化した検出キーＫＴＮＥＷ（ＣＨＡＮＧＥＤフラグ＝１）および全く新たに検出された検出キーＫＴＮＥＷを含む場合のみ、ＴＮＥＷキー記憶領域５１１に記憶されているデータをＣＵＲ記憶領域５１２にコピーして確定し、ＣＰＵ１０にその確定結果を割り込み通知する。
【００６０】
このように、検出キーＫＴＮＥＷの少なくとも１つが、一群の確定キーＫＣＵＲに対して変化しているときのみ、検出キーＫＴＮＥＷが確定される。これにより、ＣＰＵ１０への割り込み回数およびＣＰＵ１０によるメモリ５１へのアクセス回数を低減し、システム性能の低下を回避することができる。
〔１−７−２．（ｅ）メモリ管理部の構成〕
メモリ管理部５２５は、キー検出部５２１、リンク判定部５２２、キー確定部５２３およびＣＰＵ１０からの指示を受けて、メモリ５１における各領域５１１〜５１４に対するデータの書き込みおよびデータの読み出しを行う。
〔２．タッチパネル装置におけるキー確定動作〕
ここで、上記のように構成されるタッチパネル装置１におけるキーの確定動作について図１０のフローチャートを参照して説明する。
〔２−１．初期化処理〕
まず、リンク判定部５２２は、前回のキー検出処理が開始してから所定の検出周期が経過すると（ステップＳ１）、初期化処理を行う（ステップＳ２）。
【００６１】
初期化処理では、次の各処理が行われる。
（ａ）ＴＮＥＷキー記憶領域５１１をクリアする。
（ｂ）ＣＵＲキー記憶領域５１２の全てのＯＮフラグの値（“１”）をＴＮＥＷキー記憶領域５１１のＯＦＦフラグの同じキー番号の領域にコピーする。
（ｃ）ＴＮＥＷキー記憶領域５１１のキー数ＴＮＥＷＫＥＹ−ＮＯを０にセットする。
（ｄ）作業領域５１４のＣＨＡＮＧＥＤフラグを０にセットする。
〔２−２．キー検出処理〕
初期化処理の後は、キー検出部５２１がキー検出処理を行う（ステップＳ３）。キー検出処理では、垂直駆動検出部３または水平駆動検出部４のいずれか一方に、予め所望に設定されているドライバ入力データＤＡＴＡＩＮを与え、その結果他方から出力されるドライバ出力データＤＡＴＡＯＵＴから得られたシャドーに基づいてキーを特定する。キー検出処理は、ドライバＩＣ６の構成や、ドライバＩＣ６へのデータの与え方や取り出し方などに応じて適宜採用されるアルゴリズムで行われる。
〔２−３．リンク判定処理〕
上記のキー検出処理において１つの検出キーＫＴＮＥＷが検出されると、リンク判定処理に移行する。
【００６２】
リンク判定部５２２は、次に説明するリンク判定処理を行う。
〔２−３−１．初期化処理〕
まず、初期化処理を行う（ステップＳ４）。
【００６３】
初期化処理では、次の各処理が行われる。
（ａ）ＴＮＥＷキー記憶領域５１１のキー数ＴＮＥＷＫＥＹ−ＮＯに１を加算した値をセットする。
（ｂ）アクセスキー番号ｉを１にセットし、リンクキー番号ｊを０にセットする。
【００６４】
アクセスキー番号ｉは、ＴＮＥＷキー記憶領域５１１においてアクセスするキー番号を表す。リンクキー番号ｊは、リンクのあるキー番号を表す。
（ｃ）作業領域５１４のリンク度ＬＩＮＫＶＡＬＵＥを０にセットする。
（ｄ）ＴＮＥＷキー記憶領域５１１の検出キー位置ＤＥＴＥＣＴＥＤＰＯＳに作業領域５１４の拡大マージンαを加算し、その値を作業領域５１４の拡大検出キー位置ＤＥＴＥＣＴＥＤＰＯＳ−ＬＧの値としてセットする。
（ｅ）ＴＮＥＷキー記憶領域５１１のＬＩＮＫ−ＫＥＹデータを０にセットする。
〔２−３−２．空き領域の判定〕
初期化処理の後は、ＴＮＥＷキー記憶領域５１１に空きの領域があるか否かを判定する（ステップＳ５）。ステップＳ５で、空きの領域があると判定すると、アクセスキー番号ｉを空き領域キー番号ｋにセットする（ステップＳ６）。空き領域キー番号ｋは、空きの領域のキー番号を表す。ステップＳ５で空きの領域がないと判定すると、一致判定処理に移行する。
〔２−３−３．一致判定処理〕
一致判定処理では、検出キーＫＴＮＥＷおよび確定キーＫＣＵＲの位置の一致判定を行う（ステップＳ７）。ステップＳ７では、ＴＮＥＷキー記憶領域５１１から、検出キーＫＴＮＥＷｉ（キー番号ｉ）の検出キー位置ＤＥＴＥＣＴＥＤＰＯＳｉを読み出すとともに、ＣＵＲキー記憶領域５１２から、確定キーＫＣＵＲｉ（キー番号ｉ）の確定キー位置ＣＵＲＰＯＳｉを読み出して、両者を水平方向および垂直方向について比較する。
【００６５】
ステップＳ７で両キーの位置が一致していると判定すると、ＴＮＥＷキー記憶領域５１１のＯＮフラグを１にセットし（ステップＳ８）、キー検出部５２１にリンク判定が終了したことを通知する。また、ステップＳ７で両キーの位置が一致していないと判定すると、作業領域５１４のＣＨＡＮＧＥＤフラグを１にセットして（ステップＳ９）、リンク判定処理に移行する。
〔２−３−４．リンク判定処理〕
リンク判定処理では、まず、検出キーＫＴＮＥＷが全ての確定キーＫＣＵＲに対して重なり部分があるか否かを判定する（ステップＳ１０）。ステップＳ１０では、作業領域５１４から読み出した、検出キーＫＴＮＥＷｉ（キー番号ｉ）の拡大検出キー位置ＤＥＴＥＣＴＥＤＰＯＳ−ＬＧを、ＣＵＲキー記憶領域５１２のキー番号１から順番に読み出した、確定キーＫＣＵＲの確定キー位置ＣＵＲＰＯＳと比較する。
【００６６】
ステップＳ１０で両キーに重なり部分（リンク）があると判定すると、重なり度合いを算出するとともに、その重なり度合いがリンク度ＬＩＮＫＶＡＬＵＥ（初期値０）より大きいか否かを判定する（ステップＳ１１）。ステップＳ１０で重なり度合いがリンク度ＬＩＮＫＶＡＬＵＥ（初期値０）より大きいと判定すると、作業領域５１４のリンク度ＬＩＮＫＶＡＬＵＥを算出された重なり度合いに書き替えるとともに、リンクキー番号ｊをアクセスキー番号ｉにセットする（ステップＳ１２）。
【００６７】
さらに、ＣＵＲキー記憶領域５１２から確定キー位置ＣＵＲＰＯＳを読み出すアクセスキー番号ｉがアクセスキー番号ＴＫであるか否かを判定する（ステップＳ１３）。ステップＳ１３でｉ≠ＴＫと判定すると、アクセスキー番号ｉを１を加算した値に更新して（ステップＳ１４）、ステップＳ５に処理を戻す。上記のステップＳ１０，Ｓ１１でＮＯと判定した場合、ステップＳ１３に処理を戻す。
【００６８】
ステップＳ１３でｉ＝ＴＫと判定した場合は、全ての確定キーＫＣＵＲの確定キー位置ＣＵＲＰＯＳについて重なり部分の有無判定が行われたので、リンクキー番号ｊ＝０であるか否かを判定する（ステップＳ１５）。このとき、作業領域５１４に記憶されているリンク度ＬＩＮＫＶＡＬＵＥは、最大値となっている。
【００６９】
ステップＳ１５でリンクキー番号ｊ＝０である（リンクなし）と判定すると、ＴＮＥＷキー記憶領域５１１の空き領域キー番号ｋのＯＮフラグを１にセットし（ステップＳ１６）、キー検出部５２１にリンク判定が終了したことを通知する。この場合は、検出キーＫＴＮＥＷが、全ての確定キーＫＣＵＲに対してリンクのない新たなキーとして判定される。
【００７０】
また、ステップＳ１５でリンクキー番号ｊ＝０でない（リンクあり）と判定すると、ＴＮＥＷキー記憶領域５１１において、ステップＳ１２でアクセスキー番号ｉにセットされたリンクキー番号ｊのＯＮフラグが１であるか否かを判定する（ステップＳ１７）。すなわち、ステップＳ１７では、検出キーＫＴＮＥＷが、すでにＯＮキーとなっているか否かを判定する。
【００７１】
ステップＳ１７でＯＮフラグが１である（ＯＮキーとなっている）と判定すると、ＯＮフラグおよびＬＩＮＫフラグを１にセットし、ＬＩＮＫ−ＫＥＹデータをリンクキー番号ｊにセットして（ステップＳ１８）、キー検出部５２１にリンク判定が終了したことを通知する。この場合は、検出キーＫＴＮＥＷが、リンクキー番号ｊとしてセットされたアクセスキー番号ｉの確定キーＫＣＵＲに対してリンクしている新たなキーとして判定される。このような検出キーＫＴＮＥＷは、例えば、２本の指を合わせた状態から広げるジェスチャー操作（いわゆるピンチアウト）を行う場合、１つの確定キーＫＣＵＲから分かれたキーである。
【００７２】
また、ステップＳ１７でＯＮフラグが１でない（ＯＮキーとなっていない）と判定すると、ＴＮＥＷキー記憶領域５１１において、ステップＳ１８と同様、ＯＮフラグおよびＬＩＮＫフラグを１にセットし、ＬＩＮＫ−ＫＥＹデータをリンクキー番号ｊにセットし、さらにＭＯＶＥフラグを１にセットして（ステップＳ１９）、キー検出部５２１にリンク判定が終了したことを通知する。この場合は、リンク度ＬＩＮＫＶＡＬＵＥが最大値となっており、検出キーＫＴＮＥＷが、リンクキー番号ｊとしてセットされたアクセスキー番号ｉの確定キーＫＣＵＲに対して移動したＭＯＶＥキーとして判定される。
【００７３】
以上のようなリンク判定処理は、ステップＳ３のキー検出処理で１つの検出キーＫＴＮＥＷが検出される毎に繰り返し行われる。
〔２−４．チャタリング判定処理〕
上記のリンク判定処理が、今回の検出処理で検出された全ての検出キーＫＴＮＥＷについて終了すると、チャタリング判定処理に移行する。
【００７４】
チャタリング判定部５２３は、次に説明するチャタリング判定処理を行う。
【００７５】
まず、ＴＮＥＷキー記憶領域５１１に記憶されている全ての検出キーＫＴＮＥＷについてのデータをＣＨＡＴＴキー記憶領域５１３にコピーしておく。この状態で、ＣＨＡＴＴキー記憶領域５１３においてチャタリングを判定する判定キーＫＣＨＡＴＴおよび新たな検出キーＫＴＮＥＷのキー番号ｉを１にセットする（ステップＳ２０）。
【００７６】
次いで、処理周期の時間後にキー検出部５２１によって検出されたキー番号ｉの検出キーＫＴＮＥＷと、キー番号ｉの判定キーＫＣＨＡＴＴの位置が一致しているか否かを判定する（ステップＳ２１）。ステップＳ２１で両キーの位置が一致していない（チャタリングあり）と判定すると、当該検出キーＫＴＮＥＷの検出キー位置ＤＥＴＥＣＴＥＤＰＯＳをＣＨＡＴＴキー記憶領域５１３のチャタリングキー位置ＣＨＡＴＴＰＯＳに書き込んで（ステップＳ２２）、ステップＳ１に処理を戻す。この場合は、確定動作を中断して、次の検出処理まで待機状態となる。
【００７７】
ステップＳ２１で両キーの位置が一致していると判定すると、アクセスキー番号ｉがアクセスキー番号ＴＫであるか否かを判定する（ステップＳ２３）。ステップＳ２３でｉ≠ＴＫと判定した場合は、アクセスキー番号ｉを１を加算した値に更新して（ステップＳ２４）、ステップＳ２１に処理を戻す。また、ステップＳ２３でｉ＝ＴＫと判定した場合は、全て判定キーＫＣＨＡＴＴについてチャタリングのないことになるので、ステップＳ２２と同様の処理を全ての検出キーＫＴＮＥＷについて行って（ステップＳ２５）、チャタリング判定処理を終える。
〔２−５．キー確定処理〕
上記のチャタリング判定処理によってチャタリングがないと判定されると、ステップＳ２５の処理からキー確定処理に移行する。
【００７８】
キー確定部５２４は、次に説明するキー確定処理を行う。
【００７９】
まず、作業領域５１４のＣＨＡＮＧＥＤフラグが１であるか否かを判定する（ステップＳ２６）。ステップＳ２６でＣＨＡＮＧＥＤフラグが１である（不一致）と判定すると、処理を後述するステップＳ２８に移行する。一方、ステップＳ２６でＣＨＡＮＧＥＤフラグが１でないと判定すると、ＴＮＥＷキー記憶領域５１１のキー数ＴＮＥＷＫＥＹ−ＮＯと、ＣＵＲキー記憶領域５１２のキー数ＣＵＲＫＥＹ−ＮＯとが等しいか否かを判定する（ステップＳ２７）。
【００８０】
ステップＳ２７でＴＮＥＷＫＥＹ−ＮＯ＝ＣＵＲＫＥＹ−ＮＯであると判定すると、検出キーＫＴＮＥＷが確定キーＫＣＵＲに対してキー数および位置について変化がないので、ステップＳ１に処理を戻す。このとき、ＴＮＥＷキー記憶領域５１１のＯＦＦフラグの状態がそのまま残る。
【００８１】
ステップＳ２７でＴＮＥＷＫＥＹ−ＮＯ≠ＣＵＲＫＥＹ−ＮＯであると判定すると、キー検出後にキー数が変化していることから、ＴＮＥＷキー記憶領域５１１の全ての検出キーＫＴＮＥＷのデータを新たな確定キーＫＣＵＲのデータとしてＣＵＲキー記憶領域５１２に書き込む（ステップＳ２８）。そして、割り込み信号をＣＰＵ１０に送信することにより、検出キーＫＴＮＥＷが確定キーＫＣＵＲから変化したことをＣＰＵ１０に通知して（ステップＳ２９）、ステップＳ１に処理を戻す。これにより、ＣＰＵ１０は、メモリ管理部５２５を通じてＣＵＲキー記憶領域５１２から新たなキーのデータを読み出して取得する。
〔３．実施形態の総括〕
本実施形態に係るタッチパネル装置１は、矩形状の検出キーＫＴＮＥＷが検出される毎に行われるリンク判定において、検出キーＫＴＮＥＷを拡大マージンαで拡大した拡大検出キーＫＬＧと、前回の確定処理で確定した全ての確定キーＫＣＵＲとの重なり部分の有無を判定し、重なり部分があるときに重なり度合いを算出する。また、タッチパネル装置１は、拡大検出キーＫＬＧと全ての確定キーＫＣＵＲとについて算出された重なり度合いの最大値を、最も高いリンク度ＬＩＮＫＶＡＬＵＥとして決定する。さらに、タッチパネル装置１は、検出キーＫＴＮＥＷを、そのリンク度ＬＩＮＫＶＡＬＵＥが得られた確定キーＫＣＵＲに対して移動（変化）したＭＯＶＥキーと決定する。
【００８２】
これにより、制御インターフェース部５において、容易にキーの変化を検出することができる。また、ピンチアウトのようなジェスチャー操作が行われたときに、１つの確定キーＫＣＵＲが２つの検出キーＫＴＮＥＷに分かれたことを情報として得ることができる。しかも、リンク判定される両キーが矩形であることから、水平方向および垂直方向の２辺を用いた簡単な演算処理で、重なりの有無判定および重なり度合いの算出を行うことができる。
【００８３】
従来のタッチパネル装置では、検出された１つのキーのチャタリングの判定後に、キーの変化を判定していた。このため、すでにｍ個のキーが確定しており、ｎ個のキーが新たに検出された場合、ｍ×ｎの組み合わせでキーの変化判定を行わなければならず、処理が複雑であった。
【００８４】
これに対し、制御インターフェース部５は、新たに検出された検出キーＫＴＮＥＷの１個ずつについてリンクの判定を行うので、制御が簡単であり、処理時間も短くてよい。図９に示すリンク判定の処理を全ての検出キーＫＴＮＥＷに対して行う時間は、検出キーＫＴＮＥＷを検出するために透明電極Ｅの駆動検出動作を行う時間に比べて極めて短いので、リンク判定を高速に処理することができる。しかも、タッチパネル装置１は、ＭＯＶＥフラグ、ＬＩＮＫフラグおよびＬＩＮＫ−ＫＥＹデータを、検出キーＫＴＮＥＷと確定キーＫＣＵＲとの関連情報としてＣＰＵ１０に与えている。これにより、タッチパネル装置１のタッチ検出に関するハードウェアおよびソフトウェアの上位に設けられるキー処理に関するアプリケーションプログラム（ジェスチャー操作やドラッグ操作などの処理）において、上記の関連情報を有効に利用できる。
【００８５】
また、本実施形態の制御インターフェース部５では、全ての検出キーＫＴＮＥＷについてリンク判定した後にチャタリング判定を行うので、チャタリングが生じていた場合、検出キーＫＴＮＥＷが確定せずに無駄になる。しかしながら、上記のように、リンク判定を高速に処理できることから、検出周期の間にすぐに新たな検出キーＫＴＮＥＷについてリンク判定をすることができる。
【００８６】
なお、本実施形態では、マトリクス型のタッチパネル２に対するタッチ箇所の変化検出について説明した。本発明は、これに限らず、複数の同時のタッチ入力に対して生じる複数のキーを検出することができれば、マトリクス型以外のタッチパネルに対するタッチ箇所の変化検出にも適用できる。
【００８７】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００８８】
本発明のタッチパネル装置は、新たに検出された検出キーを所定範囲拡大して、すでに確定した確定キーに対して重なっているときに、当該検出キーが確定キーに対して変化したキーとして判定するので、多入力可能なマトリクス型タッチパネルにおけるジェスチャー操作やドラッグ操作などを行うときのキーの変化検出に好適に用いることができる。
【符号の説明】
【００８９】
１        タッチパネル装置
２        タッチパネル（マトリクス型タッチパネル）
３        垂直駆動検出部（垂直駆動検出手段）
４        水平駆動検出部（水平駆動検出手段）
５        制御インターフェース部（タッチ検出装置）
１０        ＣＰＵ（処理装置）
５１        メモリ
５２        キー確定処理部
５１１        ＴＮＥＷキー記憶領域
５１２        ＣＵＲキー記憶領域
５１３        ＣＨＡＴＴキー記憶領域
５１４        作業領域
５２１        キー検出部（タッチ箇所検出手段，タッチ箇所検出ステップ）
５２２        リンク判定部（変化判定手段，変化判定ステップ）
５２２ａ      一致判定部（一致判定手段，一致判定ステップ）
５２２ｂ      重なり判定部（重なり判定手段，重なり判定ステップ）
５２２ｃ      重なり度合い算出部（重なり度合い算出手段，重なり度合い算出ステップ）
５２２ｄ      リンク度設定部
５２２ｅ      リンク決定部（変化決定手段，変化決定ステップ）
５２３        チャタリング判定部（チャタリング判定手段，チャタリング判定ステップ）
ＤＡＴＡＩＮ  入力データ（駆動データ）
ＤＡＴＡＩＮＯＵＴ  出力データ（検出データ）
Ｅｈ          透明電極（水平電極）
Ｅｖ          透明電極（垂直電極）
Ｅ            透明電極（水平電極，垂直電極）
ＫＣＵＲ      確定キー（確定タッチ箇所）
ＫＴＮＥＷ    検出キー（検出タッチ箇所）
【図１】
2011065519.tif 000003
【図２】
2011065519.tif 000004
【図３】
2011065519.tif 000005
【図４】
2011065519.tif 000006
【図５】
2011065519.tif 000007
【図６】
2011065519.tif 000008
【図７】
2011065519.tif 000009
【図８】
2011065519.tif 000010
【図９】
2011065519.tif 000011
【図１０】
2011065519.tif 000012