説明

タッチパネル装置

【課題】同時にされた複数のタッチ入力を検出するタッチパネル装置において検出可能なタッチ入力数の上限値をタッチ入力操作時においても変更できるようにする。
【解決手段】タッチパネル装置1の外部に設けられたホストCPU5から、タッチパネルコントローラ4のメモリ部42(上限キー数書込領域424)に同時に複数のタッチ入力数を検出できる上限値を書き込む。この上限値を、タッチ入力の各検出周期の初期に上限キー数設定領域425にコピーしておく。キー確定処理部43は、駆動・検出部3によってタッチパネル2から得られた検出データに基づいて、タッチ入力の位置データを検出する。メモリ部42のTNEWキー記憶領域421は、位置データを検出したタッチ入力数を記憶しておく。また、キー確定処理部43は、タッチ入力数が上限キー数設定領域425に記憶された上限値より大きいとき、タッチ入力数が上限値を超えたと判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同時にされた複数のタッチ入力を検出するタッチパネル装置に関するものである。
【背景技術】
【0002】
ユーザによりなされたタッチ入力を検出するタッチパネル装置は、特定の動作を規定するなどの目的で、同時にされた複数のタッチ入力を検出する機能を有するものがある(例えば特許文献1に開示されているマトリクス型のタッチパネル)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平9−274538号公報(1997年10月21日公開)
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、上記のようなタッチパネル装置では、ハードウェアやソフトウェアの制限から、検出可能なタッチ入力数の上限値が予め定められた固定値として規定されていた。このため、タッチパネル装置を組み込んだ装置では、所定数のタッチ入力で動作を規定するようなアプリケーションプログラムを導入する場合、所定数を越えるタッチ入力を制限するために、タッチ入力数の上限値を任意に設定することができなかった。例えば、タッチパネルを用いる場合、特定のタッチ入力用の画像を表示させている状態、すなわち、タッチ入力操作時において、予め設定された数以上のタッチ入力を受け付けないように制限することができない。
【0005】
本発明は、上記の問題点に鑑みてなされたものであり、同時にされた複数のタッチ入力を検出するタッチパネル装置において検出可能なタッチ入力数の上限値をタッチ入力操作時においても変更できるようにすることを目的としている。
【課題を解決するための手段】
【0006】
本発明に係るタッチパネル装置は、上記の課題を解決するために、同時にタッチ入力可能なタッチ入力数の上限値を記憶する上限値記憶手段と、前記タッチ入力の検出数を記憶する検出数記憶手段と、前記検出数記憶手段に記憶された前記検出数が前記上限値記憶手段に記憶された前記上限値を超えたときに上限値を超えたことを判定する判定手段とを備えていることを特徴としている。
【0007】
上記の構成では、予め、上限値記憶手段に上限値を記憶しておく一方、同時に複数のタッチ入力がされると、そのタッチ入力の検出数が検出数記憶手段に記憶される。この状態で、判定手段により、検出数記憶手段に記憶された検出数が上限値記憶手段に記憶された上限値を超えると、上限値を超えたことが判定される。
【0008】
前記タッチパネル装置において、前記上限値記憶手段が、前記上限値が外部から書き込まれる書込領域と、当該書込領域に書き込まれた前記上限値が前記判定手段による判定に使用するための設定値としてタッチ入力の検出処理と同期してコピーされる設定領域と、前記判定に使用された前記上限値が前記設定領域から読出値としてコピーされて読み出される読出領域とを含んでいることが好ましい。
【0009】
なぜなら、外部から上限値が入力されるタイミングがタッチ入力の検出処理と同期していないと、検出処理の間に上限値が複数回入力された場合、どの上限値が判定に用いられたかがわからないため、判定結果を受けた外部の処理装置が正しい処理をすることができなくなるおそれがあるからである。
【0010】
そこで、外部から書込領域に書き込まれた上限値がタッチ入力の検出処理と同期して設定値領域にコピーされて設定され、当該上限値が判定手段による判定に使用される。また、判定に使用された上限値が設定領域から読出値として読出領域にコピーされる。これにより、外部から書込領域への上限値の書き込みが検出処理と非同期で行われても、判定に実際に使用された上限値を外部から読み取ることができる。したがって、判定結果を受けた外部の処理装置などが正しい処理をすることができる。しかも、次のタイミングで、書込領域から設定領域に新たな上限値がコピーされても、読出領域に上限値を保存しておくことにより、読出領域に保存された上限値を確実に読み出すことができる。
【発明の効果】
【0011】
本発明に係るタッチパネル装置は、以上のように、上限値記憶手段と、検出数記憶手段と、判定手段とを備えているので、検出可能なタッチ入力数の上限値をタッチ入力操作時においても変更することができる。したがって、タッチ入力を外部から入力された上限値に基づいて制限することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係るタッチパネル装置の要部の構成を示す図である。
【図2】上記タッチパネル装置におけるタッチパネルコントローラの構成を示すブロック図である。
【図3】上記タッチパネルコントローラのメモリ部に設けられるTNEWキー記憶領域の構成を示す図である。
【図4】上記メモリ部に設けられるCURキー記憶領域の構成を示す図である。
【図5】キー確定処理の手順を示すフローチャートである。
【図6】キー確定処理の他の手順を示すフローチャートである。
【発明を実施するための形態】
【0013】
本発明の実施形態を図1〜図6に基づいて説明すると、以下の通りである。
【0014】
〔1.タッチパネル装置の構成〕
図1に示すように、本実施の形態に係るタッチパネル装置1は、タッチパネル2と、駆動・検出部3と、タッチパネルコントローラ部4とを備えている。
【0015】
なお、以降の説明では、タッチパネル2におけるタッチ入力箇所をキーと称する。
【0016】
〔1−1.タッチパネルの構成〕
タッチパネル2は、同時にされた複数のタッチ入力に対する複数のキーを検出できるタッチパネルであれば、どのようなタッチパネルを採用してもよい。例えば、タッチパネル2としてはマトリクス型タッチパネルが利用できる。
【0017】
〔1−2.駆動・検出部の構成〕
駆動・検出部3は、タッチパネルコントローラ4から与えられる駆動データに基づいてタッチパネル2の電極に駆動電圧を印加する。また、駆動・検出部3は、駆動されたタッチパネル2の電極から出力される検出電圧に基づく検出データをタッチパネルコントローラ4に出力する。
【0018】
〔1−3.タッチパネルコントローラの構成〕
タッチパネルコントローラ4は、下記の(1)〜(4)の機能を有している。
(1)タッチパネル装置1の外部に設けられるホストCPU5からの指示を受けて、タッチパネル2へ与える駆動データを出力してタッチパネル2の電極を駆動し、それに応じてタッチパネル2から出力される検出データを取り込み、その検出データに基づいてキーを検出する。
(2)検出したキー(以降、「検出キー」と称する)を前回の検出の後に確定したキー(以降、「確定キー」と称する)とそれぞれの位置データで比較し、その比較結果に応じて、検出キーが確定キーに対して位置の変化したキー(移動したキー)であるか否かを判定して、キーを確定する。上記のキーの検出からキーの確定までの一連の動作(スキャン)は所定のスキャン周期内で繰り返し行われる。
(3)ホストCPU5にキーが確定したことを通知し、ホストCPU5からの確定キーのデータの読み出しを受け付ける。
(4)同時に検出できる(タッチ入力可能な)最大のキーの数(上限値)を設定し、検出キーの数が当該上限値を越えたときに、上限値を超えたことを判定してスキャンを終了し、上限値を超えたことをホストCPU5に通知する。
【0019】
タッチパネルコントローラ4は、上記の機能を実現するために、コントローラCPU41と、メモリ部42と、キー確定処理部43とを有している。コントローラCPU41、メモリ部42およびキー確定処理部43は、バス44に接続されており、バス44を介して、それぞれデータや指示の送受を行う。
【0020】
コントローラCPU41は、上記の(1)〜(4)の機能を実現するための制御処理を行う。キー確定処理部43は、ハードウェアロジック(デジタル回路)によって構成されるが、ソフトウェア(コントローラCPU41が実行する制御プログラム)で実現される機能として構成されてもよい。キー確定処理部43については、図2を参照して、後に詳しく説明する。
【0021】
〔1−3−1.メモリ部の構成〕
RAMからなるメモリ部42は、TNEWキー記憶領域421(検出数記憶手段)と、CURキー記憶領域422と、作業領域423と、上限キー数書込領域424と、上限キー数設定領域425と、上限キー数読出領域426と、検出結果データ記憶領域427と、読出結果データ記憶領域428とを有している。
【0022】
〔1−3−1(a).TNEWキー記憶領域の構成〕
TNEWキー記憶領域421は、後述するリンク判定部432によるリンクの判定を行うために、新たな検出キーについての各種のデータを記憶する。このTNEWキー記憶領域421は、図3に示すように、検出キーについての検出キー位置DETECTEDPOSを記憶する領域と、OFFフラグ、ONフラグ、MOVEフラグおよびLINKフラグを設ける各領域(1ビット)と、LINK−KEYデータを記憶する領域(4ビット)と、検出キー数TNEWKEY−NO(検出数)を記憶する領域(4ビット)とを有している。上記の各領域は、キー毎に設けられており、それぞれにキー番号が付与されている。
【0023】
検出キー位置DETECTEDPOSは、検出キーの水平方向および垂直方向の位置データである。この検出キー位置DETECTEDPOSは、キーが検出された順に1番目の記憶領域から書き込まれていく。
【0024】
OFFフラグは“1”であるときにキーが無効であることを示す。ONフラグは“1”であるときに検出キーが有効であることを示す。MOVEフラグは、“1”であるときに、今回の検出キーが前回の確定キーから移動したMOVEキーであることを示す。LINKフラグは、“1”であるときに、検出キーが確定キーとリンクしている(重なっている)LINKキーであることを示す。LINK−KEYデータは、リンクしているキーのキー番号のデータである。
【0025】
検出キー数TNEWKEY−NOは検出キーの数である。後述するように、判定部434(図2参照)によって、検出キー数TNEWKEY−NOがホストCPU5から書き込まれる前述の上限値を超えているか否か判定される。
【0026】
〔1−3−1(b).CURキー記憶領域の構成〕
CURキー記憶領域422は、確定キーについての各種のデータを記憶する。このCURキー記憶領域422は、図4に示すように、確定されたキーについての確定キー位置CURPOSを記憶する領域と、OFFフラグ、ONフラグ、MOVEフラグおよびLINKフラグを設ける各領域と、LINK−KEYデータを記憶する領域と、キー数CURKEY−NOを記憶する領域(4ビット)とを有している。上記の各領域は、キー毎に設けられており、それぞれにキー番号が付与されている。
【0027】
確定キー位置CURPOSは、確定キーの水平方向および垂直方向の位置データである。キー数CURKEY−NOは、確定キーの数であり、検出キー数TNEWKEY−NOと同数に規定されている。
【0028】
〔1−3−1(c).作業領域の構成〕
作業領域423は、キー確定処理に必要な各種の値を記憶するために設けられている。例えば、このような値としては、CHANGEDフラグが挙げられる。
【0029】
後述するように、リンク判定部432により、今回のスキャンで検出された各検出キーと、前回のスキャンで確定された全ての確定キーとの一致の有無が比較される。CHANGEDフラグは、各検出キーが、どの確定キーとも一致していないと判定されたときに“1”にセットされる。
【0030】
また、作業領域423は、後述するキー検出部431がキー検出を行う検出周期を設定する検出周期データを記憶している。この周期データも、ホストCPU5によって書き込まれるが、固定値であってもよい。
【0031】
〔1−3−1(d).上限キー数書込領域の構成〕
上限キー数書込領域424(上限値記憶手段,書込領域)は、ホストCPU5から、書込上限キー数INTFKEY−NUMLIMITが書き込まれる4ビットの領域である。書込上限キー数INTFKEY−NUMLIMITは、ホストCPU5によって規定された同時に検出可能な最大のキーの数(上限値)である。
【0032】
〔1−3−1(e).上限キー数設定領域の構成〕
上限キー数設定領域425(上限値記憶手段,設定領域)は、上限キー数書込領域424に記憶されている書込上限キー数INTFKEY−NUMLIMITの値が書き込まれる(コピーされる)4ビットの領域である。上限キー数設定領域425では、書き込まれた値が設定上限キー数EXECKEY−NUMLIMIT(設定値)として設定される。
【0033】
〔1−3−1(f).上限キー数読出領域の構成〕
上限キー数読出領域426(上限値記憶手段,読出領域)は、上限キー数設定領域425に記憶されている設定上限キー数EXECKEY−NUMLIMITの値が書き込まれる(コピーされる)4ビットの領域である。この上限キー数読出領域426では、書き込まれた値が読出上限キー数CURKEY−NUMLIMIT(読出値)として設定される。また、上限キー数読出領域426は、ホストCPU5から読み出しのみ可能とされる領域である。
【0034】
〔1−3−1(g).検出結果データ記憶領域の構成〕
検出結果データ記憶領域427は、後述する判定部434による判定の結果を表すデータとしての検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSが記憶される1ビットの領域である。検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSは、スキャン周期の開始時に初期化されて“0”となり、前述の検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMITより大きいと“1”に書き替えられる。
【0035】
〔1−3−1(h).読出結果データ記憶領域の構成〕
読出結果データ記憶領域428は、検出結果データ記憶領域427に記憶されている検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値が書き込まれる(コピーされる)1ビットの領域である。この読出結果データ記憶領域428では、書き込まれた値が読出キー数上限判定結果CURKEY−NUMLIMIT−STATUSとして設定される。読出結果データ記憶領域428は、ホストCPU5から読み出しのみ可能とされる領域である。
【0036】
〔1−3−1(i).ホストCPUアクセス可能・不可領域〕
前述の上限キー数書込領域424、上限キー数読出領域426および読出結果データ記憶領域428は、ホストCPU5がアクセスできるホストCPUアクセス可能領域を構成している。また、前述の上限キー数設定領域425および検出結果データ記憶領域427は、ホストCPU5がアクセスできないホストCPUアクセス不可領域を構成している。
【0037】
〔1−3−2.キー確定処理部の構成〕
図2に示すように、キー確定処理部43は、キー検出部431と、リンク判定部432と、キー確定部433と、判定部434(判定手段)と、メモリ管理部435とを有している。
【0038】
〔1−3−2.(a)キー検出部の構成〕
キー検出部431は、タッチパネル2の電極を駆動した結果として得られた検出データに基づいてキーを検出する。このため、キー検出部431は、電極を駆動するための駆動データを駆動・検出部3に出力する。また、キー検出部431は、駆動・検出部3から出力される検出データより、水平方向および垂直方向の位置データを特定する。このように特定された位置データは、タッチの中心位置(点)ではなく、矩形(面)として得られる。
【0039】
また、キー検出部431は、キー検出に先立って、CURキー記憶領域422における確定キーの全てについてONフラグの値(“1”)をTNEWキー記憶領域421のOFFフラグの領域にコピーする。キー検出部431は、キー検出の結果、確定キーと同じ検出キー(変化なし)を検出したり、検出キーの移動を検出したりしたときに、上記のOFFフラグの値を0にする。したがって、このような検出結果の検出キーは、OFFフラグが“1”であるときにOFFキーとして残る。
【0040】
また、キー検出部431は、前述のスキャン周期において検出処理を行い、各検出処理で検出された全ての検出キーについて、後述するリンク判定部432によるリンクの判定が行われると、それらの検出キーについてキー確定処理を行うように、キー確定部433に指示する。
〔1−3−2.(b)リンク判定部の構成〕
リンク判定部432は、キー検出部431によって検出されたキーが、前回のキー確定処理で確定した全てのキーに対して重なっているか否か(リンクの有無)を判定する。
【0041】
検出キーのデータは、メモリ部42のTNEWキー記憶領域421に検出順に並ぶように記憶される。また、前回の確定処理ですでに確定した確定キーは、メモリ部42のCURキー記憶領域422に検出時の検出順に並ぶように記憶される。前回の確定処理で確定された複数の一群の確定キーと、今回の検出された複数の一群の検出キーとの間で、両群のキーの並びの関係が一致している場合はキーの変化がないので不都合はない。
【0042】
これに対し、ジェスチャー操作やドラッグ操作により、指などの指示手段がタッチパネル2上を移動している場合や、入力数が増加した場合は、両群のキーの並びの関係が一致しなくなる。このため、今回の検出キーと前回の確定キーとの関係を特定しないと、検出キーの変化が、新たなタッチ入力によるものであるのか、ジェスチャー操作やドラッグ操作によりキーが移動したものであるのかがわからない。
【0043】
したがって、先の確定キーと後の確定キーとの両群の関連情報がないと、ホストCPU5は、単に両群の確定キーを受け取っても、どのキーがどう変化したかが容易にはわからない。このため、リンクの有無を判定することが必要となる。
【0044】
リンク判定部432は、リンクの有無を判定するために、下記の(1),(2)の機能を有している。
(1)一致判定
リンクの有無を判定する前に、今回の確定処理で検出された1つの検出キーKTNEWと、前回の確定処理で確定した全ての確定キーKCURとを位置データで比較して、両者の一致を判定する。一致を判定すると、前述のTNEWキー記憶領域421のONフラグを“1”にセットする。一方、両者の不一致を判定すると、作業領域423のCHANGEDフラグを1にセットする。
(2)リンク有無判定
検出キーKTNEWの位置データと、CURキー記憶領域422のキー番号1からキー番号TKまでの各位置データとを順次比較し、比較の結果、両キーKTNEW,KCURについて、重なり部分の有無を判定する。両キーKTNEW,KCURに重なり部分のある場合に重なり度合いを算出し、リンク有無判定対象となる検出キーKTNEWを、最も大きい重なり度合いが得られた確定キーKCURに対して移動したキーであるMOVEキーと決定し、TNEWキー記憶領域421のMOVEフラグを“1”にセットする。また、比較の結果、重なりの度合いが0である場合、検出キーKTNEWをリンクのないNEWキーと決定し、TNEWキー記憶領域421のONフラグを“1”にセットする。
【0045】
〔1−3−2.(c)キー確定部の構成〕
検出キーKTNEWが確定キーKCURに対して変化していない場合でも、キー検出部431によってキーが検出される毎にホストCPU5に検出結果を通知するのは効率的でなく、システム性能を低下させる。
【0046】
そこで、キー確定部433は、前回の確定処理で確定した一群の確定キーKCURに対して、今回検出された一群の検出キーKTNEWが位置および数について変化しない場合は、その検出結果をホストCPU5に通知しない。また、キー確定部433は、一群の検出キーKTNEWが、一群の確定キーKCURに関連して変化した検出キーKTNEW(CHANGEDフラグ=1)および全く新たに検出された検出キーKTNEWを含む場合のみ、TNEWキー記憶領域421に記憶されている各データをCURキー記憶領域422にコピーして確定する。キー確定部433は、CURキー記憶領域422のデータが上記のように確定すると、確定したことをホストCPU5に割り込み通知する。
【0047】
このように、検出キーKTNEWの少なくとも1つが、一群の確定キーKCURに対して変化しているときのみ、検出キーKTNEWが確定される。これにより、ホストCPU5への割り込み回数およびホストCPU5によるメモリ部42へのアクセス回数を低減し、システム性能の低下を回避することができる。
【0048】
また、キー確定部433は、後述する判定部434による判定の結果として得られる結果データを検出結果データ記憶領域427の検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値が“1”に書き替えられることにより、通知処理を行う。キー確定部433は、通知処理として、検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値を読出結果データ記憶領域428にコピーし、検出キーの数(タッチ入力数)が上限値を超えたことをホストCPU5に割り込み通知する。また、キー確定部433は、通知処理の前に、上限キー数設定領域425に記憶されている設定上限キー数EXECKEY−NUMLIMITの値を、上限キー数読出領域426に読出上限キー数CURKEY−NUMLIMITとしてコピーする。
【0049】
〔1−3−2.(d)判定部の構成〕
判定部434は、キー確定部433により、CHANGEDフラグが1であると判定された場合、またはCHANGEDフラグが1でなく、且つTNEWキー記憶領域421の検出キー数TNEWKEY−NOと、CURキー記憶領域422のキー数CURKEY−NOとが等しくないと判定された場合、次の判定処理を行う。
【0050】
判定処理では、まず、TNEWキー記憶領域421から読み出した検出キー数TNEWKEY−NOと、上限キー数設定領域425から読み出した設定上限キー数EXECKEY−NUMLIMITとを比較する。比較の結果、検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMITを越えているときに検出キーの数が上限値を超えたことを判定する。
【0051】
判定部434は、キー確定部433によるキー確定処理において、上記の判定処理を行う。これにより、1スキャン周期で検出された確定前の全ての検出キーについて判定処理が行われる。
【0052】
これに代えて、判定部434は、キー検出部431によって1つのキーが検出される毎に、リンク判定部432による一致判定処理が行われる前に上記の判定処理を行ってもよい。これにより、1スキャン周期における全てのキーの検出が終了する前でも、検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMITより大きくなれば、検出キーの数が上限値を超えたと判定される。
【0053】
〔1−3−2.(e)メモリ管理部の構成〕
メモリ管理部435は、キー検出部431、リンク判定部432、キー確定部433、判定部434およびホストCPU5の指示を受けて、メモリ部42における各領域421〜428に対するデータの書き込みおよびデータの読み出しを行う。
【0054】
特に、メモリ管理部435は、判定部434が検出キーの数が上限値を超えたことを判定したときに、検出結果データ記憶領域427の検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値を初期値である“0”から“1”に書き替える。
【0055】
〔2.ホストCPU5の構成〕
ホストCPU5は、タッチパネル装置1が組み込まれる装置に設けられるCPUであり、タッチパネル装置1を含む各部の制御を司る。このホストCPU5は、タッチパネルコントローラ4のコントローラCPU41と通信して、コントローラCPU41にタッチパネル装置1を制御するための指示やデータを送信する一方、タッチパネルコントローラ4で得られた各種のデータを取得する。
【0056】
特に、ホストCPU5は、アプリケーションプログラムで設定されるキーの上限値に基づいて書込上限キー数INTFKEY−NUMLIMITを決定し、上限キー数書込領域424へ書き込む。また、ホストCPU5は、キー確定部433からの割り込み通知を受けると、CURキー記憶領域422の各データと、上限キー数読出領域426の読出上限キー数CURKEY−NUMLIMITの値と、読出結果データ記憶領域428の読出キー数上限判定結果CURKEY−NUMLIMIT−STATUSの値とを読み出す。CURキー記憶領域422の各データは、前述の確定キー位置CURPOS、OFFフラグ、ONフラグ、MOVEフラグ、LINKフラグ、LINK−KEYデータおよびキー数CURKEY−NOである。さらに、ホストCPU5は、取得したこれらのデータをアプリケーションプログラムに渡す。
【0057】
〔3.タッチパネル装置におけるキー確定動作〕
ここで、上記のように構成されるタッチパネル装置1におけるキーの確定動作について図5および図6のフローチャートを参照して説明する。
【0058】
〔3−1.第1のキー確定動作〕
先に、キー確定処理において判定処理を行う場合について説明する。
【0059】
〔3−1−1.初期化処理〕
図5に示すように、まず、キー検出部431は、前回のキー検出処理が開始してから所定のスキャン周期が経過すると(ステップS1)、次のスキャン周期の開始時時に初期化処理を行う(ステップS2)。
【0060】
初期化処理では、次の各処理が行われる。
(a)TNEWキー記憶領域421をクリアする。
(b)CURキー記憶領域422の全てのONフラグの値(“1”)をTNEWキー記憶領域421のOFFフラグの同じキー番号の領域にコピーする。
(c)ホストCPU5により上限キー数書込領域424に書き込まれた書込上限キー数INTFKEY−NUMLIMITを、上限キー数設定領域425に設定上限キー数EXECKEY−NUMLIMITとしてコピーする。
(d)検出結果データ記憶領域427の検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSを0にセットする。
(e)TNEWキー記憶領域421の検出キー数TNEWKEY−NOを0にセットする。
(f)作業領域423のCHANGEDフラグを0にセットする。
【0061】
〔3−1−2.キー検出処理〕
初期化処理の後は、キー検出部431がキー検出処理を行う(ステップS3)。キー検出処理では、駆動・検出部3に予め所望に設定されている駆動データを与え、その結果、駆動・検出部3から出力される検出データに基づいてキーを特定する。
【0062】
〔3−1−3.リンク判定処理〕
上記のキー検出処理において1つの検出キーKTNEWが検出されると、リンク判定処理に移行する。
【0063】
まず、検出キーKTNEWおよび確定キーKCURの位置の一致判定を行う(ステップS4)。ステップS4で両キーの位置が一致していると判定すると、TNEWキー記憶領域421のONフラグを1にセットし、キー検出部431にリンク判定が終了したことを通知する。また、ステップS4で両キーの位置が一致していないと判定すると、作業領域423のCHANGEDフラグを1にセットして(ステップS5)、リンク有無判定処理に移行する(ステップS6)。
【0064】
リンク有無判定処理では、検出キーKTNEWおよび確定キーKCURを比較し、両キーに重なり部分(リンク)があると判定すると、リンク判定対象となる検出キーKTNEWを、最も大きい重なり度合いが得られた確定キーKCURに対して移動したキーであるMOVEキーと決定する。また、比較の結果、両キーの重なりの度合いが0である場合、検出キーKTNEWをリンクのないNEWキーと決定する。
【0065】
以上のリンク判定処理は、ステップS3のキー検出処理で1つの検出キーKTNEWが検出される毎に繰り返し行われる。
【0066】
〔3−1−4.キー確定処理および判定処理〕
上記のリンク判定処理が、今回の検出処理で検出された全ての検出キーKTNEWについて終了すると、キー確定処理および判定処理に移行する。
【0067】
キー確定部433は次に説明するキー確定処理を行い、判定処理は次に説明する判定処理を行う。
【0068】
まず、作業領域423のCHANGEDフラグが1であるか否かを判定する(ステップS7)。ステップS7でCHANGEDフラグが1である(不一致)と判定すると、処理を後述するステップS9(判定処理)に移行する。一方、ステップS7でCHANGEDフラグが1でないと判定すると、TNEWキー記憶領域421の検出キー数TNEWKEY−NOと、CURキー記憶領域422のキー数CURKEY−NOとが等しいか否かを判定する(ステップS8)。
【0069】
ステップS8でTNEWKEY−NO=CURKEY−NOであると判定すると、検出キーKTNEWが確定キーKCURに対してキー数および位置について変化がないので、ステップS1に処理を戻す。このとき、TNEWキー記憶領域421のOFFフラグの状態がそのまま残る。
【0070】
ステップS8でTNEWKEY−NO≠CURKEY−NOであると判定すると、TNEWキー記憶領域421の検出キー数TNEWKEY−NOが上限キー数設定領域425の設定上限キー数EXECKEY−NUMLIMIT以下であるか否かを判定する(ステップS9)。ステップS9で検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMIT以下であると判定すると、同時に複数検出されたキーの数は設定された上限値を越えていないことになる。この場合は、ステップS8の判定の結果、キー検出後にキー数が変化していることから、TNEWキー記憶領域421の全ての検出キーKTNEWのデータを新たな確定キーKCURのデータとしてCURキー記憶領域422に書き込む(ステップS11)。
【0071】
一方、ステップS9で検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMIT以下でないと判定すると、同時に複数検出されたキーの数は設定された上限値を越えていることになる。この場合は、検出結果データ記憶領域427の検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値を初期値である“0”から“1”に書き替えて(ステップS10)、処理をステップS12に移行する。このとき、検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値が、読出結果データ記憶領域428にコピーされる。また、上限キー数設定領域425の設定上限キー数EXECKEY−NUMLIMITの値が、上限キー数読出領域426に読出上限キー数CURKEY−NUMLIMITとしてコピーされる。
【0072】
そして、割り込み信号をホストCPU5に送信することにより、検出キーKTNEWが確定キーKCURから変化したこと、または検出キーの数が上限値を越えていることをホストCPU5に通知して(ステップS12)、スキャンを終え、ステップS1に処理を戻す。
【0073】
これにより、ホストCPU5は、CURキー記憶領域422から新たなキーのデータを読み出したり、上限キー数読出領域426から読出上限キー数CURKEY−NUMLIMITを読み出したり、読出結果データ記憶領域428から読出キー数上限判定結果CURKEY−NUMLIMIT-STATUSを読み出したりする。
【0074】
〔3−2.第2のキー確定動作〕
続いて、リンク判定前に判定処理を行う場合について説明する。
【0075】
〔3−2−1.初期化処理〕
図6に示すように、キー検出部431は、前述のステップS1と同様、前回のキー検出処理が開始してから所定の検出周期が経過すると(ステップS21)、ステップS2と同様、初期化処理を行う(ステップS22)。
【0076】
〔3−2−2.キー検出処理〕
初期化処理の後は、キー検出部431が前述のステップS3と同様、キー検出処理を行う(ステップS23)。
【0077】
〔3−2−3.判定処理およびリンク判定処理〕
上記のキー検出処理において1つの検出キーKTNEWが検出されると、ステップS24(判定処理)に移行する。
【0078】
ステップS24では、前述のステップS9と同様、検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMIT以下であるか否かを判定する。ステップS23で検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMIT以下であると判定すると、同時に複数検出されたキーの数は設定された上限値を越えていないことになる。この場合は、リンク判定処理に移行する。
【0079】
リンク判定処理では、前述のステップS4と同様、検出キーKTNEWおよび確定キーKCURの位置の一致判定を行い(ステップS25)、両キーの位置が一致していると判定すると、キー検出部431にリンク判定が終了したことを通知する。また、ステップS25で両キーの位置が一致していないと判定すると、前述のステップS5と同様、CHANGEDフラグを1にセットして(ステップS26)、前述のステップS6と同様のリンク有無判定処理に移行する(ステップS27)。
【0080】
一方、ステップS24で検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMIT以下でないと判定すると、同時に複数検出されたキーの数は設定された上限値を越えていることになる。この場合は、前述のステップS10と同様、検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値を“0”から“1”に書き替えて(ステップS28)、処理をステップS32に移行する。このときも、検出キー数上限判定結果EXECKEY−NUMLIMIT−STATUSの値は、読出結果データ記憶領域428にコピーされる。
【0081】
〔3−2−4.キー確定処理〕
上記のリンク判定処理が、今回の検出処理で検出された全ての検出キーKTNEWについて終了すると、キー確定処理に移行する。
【0082】
キー確定部433は、次に説明するキー確定処理を行う。
【0083】
まず、前述のステップS7と同様、CHANGEDフラグが1であるか否かを判定する(ステップS29)。ステップS29でCHANGEDフラグが1である(不一致)と判定すると、処理を後述するステップS31に移行する。一方、ステップS29でCHANGEDフラグが1でないと判定すると、前述のステップS8と同様、検出キー数TNEWKEY−NOとキー数CURKEY−NOとが等しいか否かを判定する(ステップS30)。
【0084】
ステップS30でTNEWKEY−NO=CURKEY−NOであると判定すると、検出キーKTNEWが確定キーKCURに対してキー数および位置について変化がないので、ステップS21に処理を戻す。このとき、TNEWキー記憶領域421のOFFフラグの状態がそのまま残る。
【0085】
ステップS30でTNEWKEY−NO≠CURKEY−NOであると判定すると、前述のステップS11と同様、TNEWキー記憶領域421の全ての検出キーKTNEWのデータを新たな確定キーKCURのデータとしてCURキー記憶領域422に書き込む(ステップS31)。
【0086】
そして、前述のステップS12と同様、割り込み信号をホストCPU5に送信することにより、検出キーKTNEWが確定キーKCURから変化したこと、またはキー数上限結果データが発生していることをホストCPU5に通知して(ステップS32)、ステップS21に処理を戻す。これにより、ホストCPU5は、CURキー記憶領域422から新たなキーのデータを読み出したり、上限キー数読出領域426から読出上限キー数CURKEY−NUMLIMITを読み出したり、読出結果データ記憶領域428から読出キー数上限判定結果CURKEY−NUMLIMIT−STATUSを読み出したりする。
【0087】
〔4.実施形態の総括〕
以上のように、本実施形態に係るタッチパネル装置1は、タッチパネルコントローラ4において、ホストCPU5によって上限キー数書込領域424に一旦書込上限キー数INTFKEY−NUMLIMITとして書き込まれ、上限キー数設定領域425に設定された設定上限キー数EXECKEY−NUMLIMITに基づいて判定処理を行う。この判定処理では、TNEWキー記憶領域421の検出キー数TNEWKEY−NOが設定上限キー数EXECKEY−NUMLIMITを越えているときに検出キーの数が上限値を超えたと判定してスキャンを終える。
【0088】
また、スキャンの処理の状態に依存せずに、ホストCPU5が上限キー数書込領域424に書込上限キー数INTFKEY−NUMLIMITを書き込むことによって、所望のタイミングで検出できるキーの上限値を動的に入力することができる。これにより、検出できるキーの上限値を所望に制限することができる。
【0089】
特に、FA機器では、誤動作できない場合があるので、キー数の上限値を設定することは有効である。例えば、1つのタッチ入力しか検出できない場合、2つ以上のタッチ入力があると、どちらが正しいか分からないので、2つ以上のタッチ入力に対して検出されたキーを無効とする。
【0090】
上記のように構成されるタッチパネル装置1は、次のように応用することができる。例えば、入力操作用の画像を表示している状態で、画像が切り替わった直後の所定期間は上限値を0に設定しておき、画像が切り替わってから所定時間経過したときに、切り替わった画像に対する所定値に上限値を設定し直す。上記の所定期間では、設定される上限値が0であるので、タッチ入力により検出キーが上限値を超えたことが判定されるが、アプリケーションプログラムではその判定結果を無視するようにしておく。これにより、画像が切り替わってすぐの段階で、ユーザが切り替わった画像を正しく認識しないうちにタッチ入力することによる誤動作を防止することができる。そして、画像が切り替わってから所定時間経ってユーザが画像を認識できるようになると、新たに設定された上限値に基づいて、上限値を超えたか否かの判定が行われるので、通常のタッチ入力が受け付けられる。
【0091】
上記のように、ホストCPU5が書込上限キー数INTFKEY−NUMLIMITを書き込むタイミングはスキャン処理と同期していない。このため、書込上限キー数INTFKEY−NUMLIMITを判定の上限値として用いると、1スキャンにおいて書込上限キー数INTFKEY−NUMLIMITが複数回書き替えられた場合、ホストCPU5は、どの上限値が判定に用いられたかがわからない。この結果、判定結果を受けたホストCPU5が正しい処理をすることができずに、誤動作するおそれがある。本実施形態によらずに、このような誤動作を回避するには、通常、リセット直後に上限値を設定するか、スキャンを一旦中断して上限値を設定しなおす必要がある。このため、スキャン処理を行いながら所望のタイミングで上限値を変更することができない。
【0092】
そこで、タッチパネル装置1では、各スキャンの開始時に、上限キー数書込領域424に書き込まれた書込上限キー数INTFKEY−NUMLIMITを、上限キー数設定領域425に設定上限キー数EXECKEY−NUMLIMITとしてコピーし、これを判定の上限値として用いている。そして、判定に用いられた設定上限キー数EXECKEY−NUMLIMITを、ホストCPU5がアクセス可能な読出結果データ記憶領域428に読出キー数上限判定結果CURKEY−NUMLIMIT−STATUSとしてコピーする。
【0093】
これにより、ホストCPU5からの書込上限キー数INTFKEY−NUMLIMITの書き込みがスキャン処理と非同期で行われても、判定に実際に使用された上限値がホストCPU5に読み取られる。したがって、判定結果を受けたホストCPU5が誤動作せずに正しい処理をすることができる。それゆえ、同時に入力可能なキー数をスキャン処理の途中で動的に変更することができる。しかも、読出結果データ記憶領域428に読出キー数上限判定結果CURKEY−NUMLIMIT−STATUSを保存しておくことにより、次のスキャンの開始時に、上限キー数設定領域425に新たな設定上限キー数EXECKEY−NUMLIMITがコピーされても、ホストCPU5が読出結果データ記憶領域428に保存された読出キー数上限判定結果CURKEY−NUMLIMIT−STATUSを確実に読み出すことができる。
【0094】
なお、本実施形態では、タッチパネル装置1において同時に検出できるキーの上限値に対する判定について説明した。本発明は、同時にされた複数のタッチ入力に対する複数のキーを検出することができれば、キーボード、メンブレンスイッチ、タッチパッドなどの他の入力装置にも適用できる。
【0095】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【0096】
本発明のタッチパネル装置は、同時に複数検出できるタッチ入力の上限値を外部からメモリに書き込み、実際のタッチ入力数がこの上限値より大きいか否かを判定するので、タッチ入力の上限値を必要に応じて変更する用途に好適に用いることができる。
【符号の説明】
【0097】
1 タッチパネル装置
2 タッチパネル
3 駆動・検出部
4 タッチパネルコントローラ
5 ホストCPU
42 メモリ部
43 キー確定処理部
421 TNEWキー記憶領域(検出数記憶手段)
424 上限キー数書込領域(上限値記憶手段,書込領域)
425 上限キー数設定領域(上限値記憶手段,設定領域)
426 上限キー数読出領域(上限値記憶手段,読出領域)
427 検出結果データ記憶領域
428 読出結果データ記憶領域
434 判定部(判定手段)
TNEWKEY−NO キー数
INTFKEY−NUMLIMIT 書込上限キー数(上限値)
EXECKEY−NUMLIMIT 設定上限キー数(上限値,設定値)
CURKEY−NUMLIMIT 読出上限キー数(上限値,読出値)

【特許請求の範囲】
【請求項1】
同時にされた複数のタッチ入力を検出するタッチパネル装置において、
同時にタッチ入力可能なタッチ入力数の上限値を記憶する上限値記憶手段と、
前記タッチ入力の検出数を記憶する検出数記憶手段と、
前記検出数記憶手段に記憶された前記検出数が前記上限値記憶手段に記憶された前記上限値を超えたときに上限値を超えたことを判定する判定手段とを備えていることを特徴とするタッチパネル装置。
【請求項2】
前記上限値記憶手段は、
前記上限値が外部から書き込まれる書込領域と、
当該書込領域に書き込まれた前記上限値が前記判定手段による判定に使用するための設定値としてタッチ入力の検出処理と同期してコピーされる設定領域と、
前記判定に使用された前記上限値が前記設定領域から読出値としてコピーされて読み出される読出領域とを含んでいることを特徴とする請求項1に記載のタッチパネル装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate