(57)【要約】【課題】同時にされた複数のタッチ入力を検出するタッチパネル装置において検出可能なタッチ入力数の上限値をタッチ入力操作時においても変更できるようにする。【解決手段】タッチパネル装置１の外部に設けられたホストＣＰＵ５から、タッチパネルコントローラ４のメモリ部４２（上限キー数書込領域４２４）に同時に複数のタッチ入力数を検出できる上限値を書き込む。この上限値を、タッチ入力の各検出周期の初期に上限キー数設定領域４２５にコピーしておく。キー確定処理部４３は、駆動・検出部３によってタッチパネル２から得られた検出データに基づいて、タッチ入力の位置データを検出する。メモリ部４２のＴＮＥＷキー記憶領域４２１は、位置データを検出したタッチ入力数を記憶しておく。また、キー確定処理部４３は、タッチ入力数が上限キー数設定領域４２５に記憶された上限値より大きいとき、タッチ入力数が上限値を超えたと判定する。【選択図】図１
2011113221.tif 000002
【特許請求の範囲】
【請求項１】
同時にされた複数のタッチ入力を検出するタッチパネル装置において、
同時にタッチ入力可能なタッチ入力数の上限値を記憶する上限値記憶手段と、
前記タッチ入力の検出数を記憶する検出数記憶手段と、
前記検出数記憶手段に記憶された前記検出数が前記上限値記憶手段に記憶された前記上限値を超えたときに上限値を超えたことを判定する判定手段とを備えていることを特徴とするタッチパネル装置。
【請求項２】
前記上限値記憶手段は、
前記上限値が外部から書き込まれる書込領域と、
当該書込領域に書き込まれた前記上限値が前記判定手段による判定に使用するための設定値としてタッチ入力の検出処理と同期してコピーされる設定領域と、
前記判定に使用された前記上限値が前記設定領域から読出値としてコピーされて読み出される読出領域とを含んでいることを特徴とする請求項１に記載のタッチパネル装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同時にされた複数のタッチ入力を検出するタッチパネル装置に関するものである。
【背景技術】
【０００２】
ユーザによりなされたタッチ入力を検出するタッチパネル装置は、特定の動作を規定するなどの目的で、同時にされた複数のタッチ入力を検出する機能を有するものがある（例えば特許文献１に開示されているマトリクス型のタッチパネル）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２７４５３８号公報（１９９７年１０月２１日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のようなタッチパネル装置では、ハードウェアやソフトウェアの制限から、検出可能なタッチ入力数の上限値が予め定められた固定値として規定されていた。このため、タッチパネル装置を組み込んだ装置では、所定数のタッチ入力で動作を規定するようなアプリケーションプログラムを導入する場合、所定数を越えるタッチ入力を制限するために、タッチ入力数の上限値を任意に設定することができなかった。例えば、タッチパネルを用いる場合、特定のタッチ入力用の画像を表示させている状態、すなわち、タッチ入力操作時において、予め設定された数以上のタッチ入力を受け付けないように制限することができない。
【０００５】
本発明は、上記の問題点に鑑みてなされたものであり、同時にされた複数のタッチ入力を検出するタッチパネル装置において検出可能なタッチ入力数の上限値をタッチ入力操作時においても変更できるようにすることを目的としている。
【課題を解決するための手段】
【０００６】
本発明に係るタッチパネル装置は、上記の課題を解決するために、同時にタッチ入力可能なタッチ入力数の上限値を記憶する上限値記憶手段と、前記タッチ入力の検出数を記憶する検出数記憶手段と、前記検出数記憶手段に記憶された前記検出数が前記上限値記憶手段に記憶された前記上限値を超えたときに上限値を超えたことを判定する判定手段とを備えていることを特徴としている。
【０００７】
上記の構成では、予め、上限値記憶手段に上限値を記憶しておく一方、同時に複数のタッチ入力がされると、そのタッチ入力の検出数が検出数記憶手段に記憶される。この状態で、判定手段により、検出数記憶手段に記憶された検出数が上限値記憶手段に記憶された上限値を超えると、上限値を超えたことが判定される。
【０００８】
前記タッチパネル装置において、前記上限値記憶手段が、前記上限値が外部から書き込まれる書込領域と、当該書込領域に書き込まれた前記上限値が前記判定手段による判定に使用するための設定値としてタッチ入力の検出処理と同期してコピーされる設定領域と、前記判定に使用された前記上限値が前記設定領域から読出値としてコピーされて読み出される読出領域とを含んでいることが好ましい。
【０００９】
なぜなら、外部から上限値が入力されるタイミングがタッチ入力の検出処理と同期していないと、検出処理の間に上限値が複数回入力された場合、どの上限値が判定に用いられたかがわからないため、判定結果を受けた外部の処理装置が正しい処理をすることができなくなるおそれがあるからである。
【００１０】
そこで、外部から書込領域に書き込まれた上限値がタッチ入力の検出処理と同期して設定値領域にコピーされて設定され、当該上限値が判定手段による判定に使用される。また、判定に使用された上限値が設定領域から読出値として読出領域にコピーされる。これにより、外部から書込領域への上限値の書き込みが検出処理と非同期で行われても、判定に実際に使用された上限値を外部から読み取ることができる。したがって、判定結果を受けた外部の処理装置などが正しい処理をすることができる。しかも、次のタイミングで、書込領域から設定領域に新たな上限値がコピーされても、読出領域に上限値を保存しておくことにより、読出領域に保存された上限値を確実に読み出すことができる。
【発明の効果】
【００１１】
本発明に係るタッチパネル装置は、以上のように、上限値記憶手段と、検出数記憶手段と、判定手段とを備えているので、検出可能なタッチ入力数の上限値をタッチ入力操作時においても変更することができる。したがって、タッチ入力を外部から入力された上限値に基づいて制限することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るタッチパネル装置の要部の構成を示す図である。
【図２】上記タッチパネル装置におけるタッチパネルコントローラの構成を示すブロック図である。
【図３】上記タッチパネルコントローラのメモリ部に設けられるＴＮＥＷキー記憶領域の構成を示す図である。
【図４】上記メモリ部に設けられるＣＵＲキー記憶領域の構成を示す図である。
【図５】キー確定処理の手順を示すフローチャートである。
【図６】キー確定処理の他の手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
本発明の実施形態を図１〜図６に基づいて説明すると、以下の通りである。
【００１４】
〔１．タッチパネル装置の構成〕
図１に示すように、本実施の形態に係るタッチパネル装置１は、タッチパネル２と、駆動・検出部３と、タッチパネルコントローラ部４とを備えている。
【００１５】
なお、以降の説明では、タッチパネル２におけるタッチ入力箇所をキーと称する。
【００１６】
〔１−１．タッチパネルの構成〕
タッチパネル２は、同時にされた複数のタッチ入力に対する複数のキーを検出できるタッチパネルであれば、どのようなタッチパネルを採用してもよい。例えば、タッチパネル２としてはマトリクス型タッチパネルが利用できる。
【００１７】
〔１−２．駆動・検出部の構成〕
駆動・検出部３は、タッチパネルコントローラ４から与えられる駆動データに基づいてタッチパネル２の電極に駆動電圧を印加する。また、駆動・検出部３は、駆動されたタッチパネル２の電極から出力される検出電圧に基づく検出データをタッチパネルコントローラ４に出力する。
【００１８】
〔１−３．タッチパネルコントローラの構成〕
タッチパネルコントローラ４は、下記の（１）〜（４）の機能を有している。
（１）タッチパネル装置１の外部に設けられるホストＣＰＵ５からの指示を受けて、タッチパネル２へ与える駆動データを出力してタッチパネル２の電極を駆動し、それに応じてタッチパネル２から出力される検出データを取り込み、その検出データに基づいてキーを検出する。
（２）検出したキー（以降、「検出キー」と称する）を前回の検出の後に確定したキー（以降、「確定キー」と称する）とそれぞれの位置データで比較し、その比較結果に応じて、検出キーが確定キーに対して位置の変化したキー（移動したキー）であるか否かを判定して、キーを確定する。上記のキーの検出からキーの確定までの一連の動作（スキャン）は所定のスキャン周期内で繰り返し行われる。
（３）ホストＣＰＵ５にキーが確定したことを通知し、ホストＣＰＵ５からの確定キーのデータの読み出しを受け付ける。
（４）同時に検出できる（タッチ入力可能な）最大のキーの数（上限値）を設定し、検出キーの数が当該上限値を越えたときに、上限値を超えたことを判定してスキャンを終了し、上限値を超えたことをホストＣＰＵ５に通知する。
【００１９】
タッチパネルコントローラ４は、上記の機能を実現するために、コントローラＣＰＵ４１と、メモリ部４２と、キー確定処理部４３とを有している。コントローラＣＰＵ４１、メモリ部４２およびキー確定処理部４３は、バス４４に接続されており、バス４４を介して、それぞれデータや指示の送受を行う。
【００２０】
コントローラＣＰＵ４１は、上記の（１）〜（４）の機能を実現するための制御処理を行う。キー確定処理部４３は、ハードウェアロジック（デジタル回路）によって構成されるが、ソフトウェア（コントローラＣＰＵ４１が実行する制御プログラム）で実現される機能として構成されてもよい。キー確定処理部４３については、図２を参照して、後に詳しく説明する。
【００２１】
〔１−３−１．メモリ部の構成〕
ＲＡＭからなるメモリ部４２は、ＴＮＥＷキー記憶領域４２１（検出数記憶手段）と、ＣＵＲキー記憶領域４２２と、作業領域４２３と、上限キー数書込領域４２４と、上限キー数設定領域４２５と、上限キー数読出領域４２６と、検出結果データ記憶領域４２７と、読出結果データ記憶領域４２８とを有している。
【００２２】
〔１−３−１（ａ）．ＴＮＥＷキー記憶領域の構成〕
ＴＮＥＷキー記憶領域４２１は、後述するリンク判定部４３２によるリンクの判定を行うために、新たな検出キーについての各種のデータを記憶する。このＴＮＥＷキー記憶領域４２１は、図３に示すように、検出キーについての検出キー位置ＤＥＴＥＣＴＥＤＰＯＳを記憶する領域と、ＯＦＦフラグ、ＯＮフラグ、ＭＯＶＥフラグおよびＬＩＮＫフラグを設ける各領域（１ビット）と、ＬＩＮＫ−ＫＥＹデータを記憶する領域（４ビット）と、検出キー数ＴＮＥＷＫＥＹ−ＮＯ（検出数）を記憶する領域（４ビット）とを有している。上記の各領域は、キー毎に設けられており、それぞれにキー番号が付与されている。
【００２３】
検出キー位置ＤＥＴＥＣＴＥＤＰＯＳは、検出キーの水平方向および垂直方向の位置データである。この検出キー位置ＤＥＴＥＣＴＥＤＰＯＳは、キーが検出された順に１番目の記憶領域から書き込まれていく。
【００２４】
ＯＦＦフラグは“１”であるときにキーが無効であることを示す。ＯＮフラグは“１”であるときに検出キーが有効であることを示す。ＭＯＶＥフラグは、“１”であるときに、今回の検出キーが前回の確定キーから移動したＭＯＶＥキーであることを示す。ＬＩＮＫフラグは、“１”であるときに、検出キーが確定キーとリンクしている（重なっている）ＬＩＮＫキーであることを示す。ＬＩＮＫ−ＫＥＹデータは、リンクしているキーのキー番号のデータである。
【００２５】
検出キー数ＴＮＥＷＫＥＹ−ＮＯは検出キーの数である。後述するように、判定部４３４（図２参照）によって、検出キー数ＴＮＥＷＫＥＹ−ＮＯがホストＣＰＵ５から書き込まれる前述の上限値を超えているか否か判定される。
【００２６】
〔１−３−１（ｂ）．ＣＵＲキー記憶領域の構成〕
ＣＵＲキー記憶領域４２２は、確定キーについての各種のデータを記憶する。このＣＵＲキー記憶領域４２２は、図４に示すように、確定されたキーについての確定キー位置ＣＵＲＰＯＳを記憶する領域と、ＯＦＦフラグ、ＯＮフラグ、ＭＯＶＥフラグおよびＬＩＮＫフラグを設ける各領域と、ＬＩＮＫ−ＫＥＹデータを記憶する領域と、キー数ＣＵＲＫＥＹ−ＮＯを記憶する領域（４ビット）とを有している。上記の各領域は、キー毎に設けられており、それぞれにキー番号が付与されている。
【００２７】
確定キー位置ＣＵＲＰＯＳは、確定キーの水平方向および垂直方向の位置データである。キー数ＣＵＲＫＥＹ−ＮＯは、確定キーの数であり、検出キー数ＴＮＥＷＫＥＹ−ＮＯと同数に規定されている。
【００２８】
〔１−３−１（ｃ）．作業領域の構成〕
作業領域４２３は、キー確定処理に必要な各種の値を記憶するために設けられている。例えば、このような値としては、ＣＨＡＮＧＥＤフラグが挙げられる。
【００２９】
後述するように、リンク判定部４３２により、今回のスキャンで検出された各検出キーと、前回のスキャンで確定された全ての確定キーとの一致の有無が比較される。ＣＨＡＮＧＥＤフラグは、各検出キーが、どの確定キーとも一致していないと判定されたときに“１”にセットされる。
【００３０】
また、作業領域４２３は、後述するキー検出部４３１がキー検出を行う検出周期を設定する検出周期データを記憶している。この周期データも、ホストＣＰＵ５によって書き込まれるが、固定値であってもよい。
【００３１】
〔１−３−１（ｄ）．上限キー数書込領域の構成〕
上限キー数書込領域４２４（上限値記憶手段，書込領域）は、ホストＣＰＵ５から、書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴが書き込まれる４ビットの領域である。書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴは、ホストＣＰＵ５によって規定された同時に検出可能な最大のキーの数（上限値）である。
【００３２】
〔１−３−１（ｅ）．上限キー数設定領域の構成〕
上限キー数設定領域４２５（上限値記憶手段，設定領域）は、上限キー数書込領域４２４に記憶されている書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴの値が書き込まれる（コピーされる）４ビットの領域である。上限キー数設定領域４２５では、書き込まれた値が設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ（設定値）として設定される。
【００３３】
〔１−３−１（ｆ）．上限キー数読出領域の構成〕
上限キー数読出領域４２６（上限値記憶手段，読出領域）は、上限キー数設定領域４２５に記憶されている設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴの値が書き込まれる（コピーされる）４ビットの領域である。この上限キー数読出領域４２６では、書き込まれた値が読出上限キー数ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ（読出値）として設定される。また、上限キー数読出領域４２６は、ホストＣＰＵ５から読み出しのみ可能とされる領域である。
【００３４】
〔１−３−１（ｇ）．検出結果データ記憶領域の構成〕
検出結果データ記憶領域４２７は、後述する判定部４３４による判定の結果を表すデータとしての検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳが記憶される１ビットの領域である。検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳは、スキャン周期の開始時に初期化されて“０”となり、前述の検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴより大きいと“１”に書き替えられる。
【００３５】
〔１−３−１（ｈ）．読出結果データ記憶領域の構成〕
読出結果データ記憶領域４２８は、検出結果データ記憶領域４２７に記憶されている検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値が書き込まれる（コピーされる）１ビットの領域である。この読出結果データ記憶領域４２８では、書き込まれた値が読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳとして設定される。読出結果データ記憶領域４２８は、ホストＣＰＵ５から読み出しのみ可能とされる領域である。
【００３６】
〔１−３−１（ｉ）．ホストＣＰＵアクセス可能・不可領域〕
前述の上限キー数書込領域４２４、上限キー数読出領域４２６および読出結果データ記憶領域４２８は、ホストＣＰＵ５がアクセスできるホストＣＰＵアクセス可能領域を構成している。また、前述の上限キー数設定領域４２５および検出結果データ記憶領域４２７は、ホストＣＰＵ５がアクセスできないホストＣＰＵアクセス不可領域を構成している。
【００３７】
〔１−３−２．キー確定処理部の構成〕
図２に示すように、キー確定処理部４３は、キー検出部４３１と、リンク判定部４３２と、キー確定部４３３と、判定部４３４（判定手段）と、メモリ管理部４３５とを有している。
【００３８】
〔１−３−２．（ａ）キー検出部の構成〕
キー検出部４３１は、タッチパネル２の電極を駆動した結果として得られた検出データに基づいてキーを検出する。このため、キー検出部４３１は、電極を駆動するための駆動データを駆動・検出部３に出力する。また、キー検出部４３１は、駆動・検出部３から出力される検出データより、水平方向および垂直方向の位置データを特定する。このように特定された位置データは、タッチの中心位置（点）ではなく、矩形（面）として得られる。
【００３９】
また、キー検出部４３１は、キー検出に先立って、ＣＵＲキー記憶領域４２２における確定キーの全てについてＯＮフラグの値（“１”）をＴＮＥＷキー記憶領域４２１のＯＦＦフラグの領域にコピーする。キー検出部４３１は、キー検出の結果、確定キーと同じ検出キー（変化なし）を検出したり、検出キーの移動を検出したりしたときに、上記のＯＦＦフラグの値を０にする。したがって、このような検出結果の検出キーは、ＯＦＦフラグが“１”であるときにＯＦＦキーとして残る。
【００４０】
また、キー検出部４３１は、前述のスキャン周期において検出処理を行い、各検出処理で検出された全ての検出キーについて、後述するリンク判定部４３２によるリンクの判定が行われると、それらの検出キーについてキー確定処理を行うように、キー確定部４３３に指示する。
〔１−３−２．（ｂ）リンク判定部の構成〕
リンク判定部４３２は、キー検出部４３１によって検出されたキーが、前回のキー確定処理で確定した全てのキーに対して重なっているか否か（リンクの有無）を判定する。
【００４１】
検出キーのデータは、メモリ部４２のＴＮＥＷキー記憶領域４２１に検出順に並ぶように記憶される。また、前回の確定処理ですでに確定した確定キーは、メモリ部４２のＣＵＲキー記憶領域４２２に検出時の検出順に並ぶように記憶される。前回の確定処理で確定された複数の一群の確定キーと、今回の検出された複数の一群の検出キーとの間で、両群のキーの並びの関係が一致している場合はキーの変化がないので不都合はない。
【００４２】
これに対し、ジェスチャー操作やドラッグ操作により、指などの指示手段がタッチパネル２上を移動している場合や、入力数が増加した場合は、両群のキーの並びの関係が一致しなくなる。このため、今回の検出キーと前回の確定キーとの関係を特定しないと、検出キーの変化が、新たなタッチ入力によるものであるのか、ジェスチャー操作やドラッグ操作によりキーが移動したものであるのかがわからない。
【００４３】
したがって、先の確定キーと後の確定キーとの両群の関連情報がないと、ホストＣＰＵ５は、単に両群の確定キーを受け取っても、どのキーがどう変化したかが容易にはわからない。このため、リンクの有無を判定することが必要となる。
【００４４】
リンク判定部４３２は、リンクの有無を判定するために、下記の（１），（２）の機能を有している。
（１）一致判定
リンクの有無を判定する前に、今回の確定処理で検出された１つの検出キーＫＴＮＥＷと、前回の確定処理で確定した全ての確定キーＫＣＵＲとを位置データで比較して、両者の一致を判定する。一致を判定すると、前述のＴＮＥＷキー記憶領域４２１のＯＮフラグを“１”にセットする。一方、両者の不一致を判定すると、作業領域４２３のＣＨＡＮＧＥＤフラグを１にセットする。
（２）リンク有無判定
検出キーＫＴＮＥＷの位置データと、ＣＵＲキー記憶領域４２２のキー番号１からキー番号ＴＫまでの各位置データとを順次比較し、比較の結果、両キーＫＴＮＥＷ，ＫＣＵＲについて、重なり部分の有無を判定する。両キーＫＴＮＥＷ，ＫＣＵＲに重なり部分のある場合に重なり度合いを算出し、リンク有無判定対象となる検出キーＫＴＮＥＷを、最も大きい重なり度合いが得られた確定キーＫＣＵＲに対して移動したキーであるＭＯＶＥキーと決定し、ＴＮＥＷキー記憶領域４２１のＭＯＶＥフラグを“１”にセットする。また、比較の結果、重なりの度合いが０である場合、検出キーＫＴＮＥＷをリンクのないＮＥＷキーと決定し、ＴＮＥＷキー記憶領域４２１のＯＮフラグを“１”にセットする。
【００４５】
〔１−３−２．（ｃ）キー確定部の構成〕
検出キーＫＴＮＥＷが確定キーＫＣＵＲに対して変化していない場合でも、キー検出部４３１によってキーが検出される毎にホストＣＰＵ５に検出結果を通知するのは効率的でなく、システム性能を低下させる。
【００４６】
そこで、キー確定部４３３は、前回の確定処理で確定した一群の確定キーＫＣＵＲに対して、今回検出された一群の検出キーＫＴＮＥＷが位置および数について変化しない場合は、その検出結果をホストＣＰＵ５に通知しない。また、キー確定部４３３は、一群の検出キーＫＴＮＥＷが、一群の確定キーＫＣＵＲに関連して変化した検出キーＫＴＮＥＷ（ＣＨＡＮＧＥＤフラグ＝１）および全く新たに検出された検出キーＫＴＮＥＷを含む場合のみ、ＴＮＥＷキー記憶領域４２１に記憶されている各データをＣＵＲキー記憶領域４２２にコピーして確定する。キー確定部４３３は、ＣＵＲキー記憶領域４２２のデータが上記のように確定すると、確定したことをホストＣＰＵ５に割り込み通知する。
【００４７】
このように、検出キーＫＴＮＥＷの少なくとも１つが、一群の確定キーＫＣＵＲに対して変化しているときのみ、検出キーＫＴＮＥＷが確定される。これにより、ホストＣＰＵ５への割り込み回数およびホストＣＰＵ５によるメモリ部４２へのアクセス回数を低減し、システム性能の低下を回避することができる。
【００４８】
また、キー確定部４３３は、後述する判定部４３４による判定の結果として得られる結果データを検出結果データ記憶領域４２７の検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値が“１”に書き替えられることにより、通知処理を行う。キー確定部４３３は、通知処理として、検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値を読出結果データ記憶領域４２８にコピーし、検出キーの数（タッチ入力数）が上限値を超えたことをホストＣＰＵ５に割り込み通知する。また、キー確定部４３３は、通知処理の前に、上限キー数設定領域４２５に記憶されている設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴの値を、上限キー数読出領域４２６に読出上限キー数ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴとしてコピーする。
【００４９】
〔１−３−２．（ｄ）判定部の構成〕
判定部４３４は、キー確定部４３３により、ＣＨＡＮＧＥＤフラグが１であると判定された場合、またはＣＨＡＮＧＥＤフラグが１でなく、且つＴＮＥＷキー記憶領域４２１の検出キー数ＴＮＥＷＫＥＹ−ＮＯと、ＣＵＲキー記憶領域４２２のキー数ＣＵＲＫＥＹ−ＮＯとが等しくないと判定された場合、次の判定処理を行う。
【００５０】
判定処理では、まず、ＴＮＥＷキー記憶領域４２１から読み出した検出キー数ＴＮＥＷＫＥＹ−ＮＯと、上限キー数設定領域４２５から読み出した設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴとを比較する。比較の結果、検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴを越えているときに検出キーの数が上限値を超えたことを判定する。
【００５１】
判定部４３４は、キー確定部４３３によるキー確定処理において、上記の判定処理を行う。これにより、１スキャン周期で検出された確定前の全ての検出キーについて判定処理が行われる。
【００５２】
これに代えて、判定部４３４は、キー検出部４３１によって１つのキーが検出される毎に、リンク判定部４３２による一致判定処理が行われる前に上記の判定処理を行ってもよい。これにより、１スキャン周期における全てのキーの検出が終了する前でも、検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴより大きくなれば、検出キーの数が上限値を超えたと判定される。
【００５３】
〔１−３−２．（ｅ）メモリ管理部の構成〕
メモリ管理部４３５は、キー検出部４３１、リンク判定部４３２、キー確定部４３３、判定部４３４およびホストＣＰＵ５の指示を受けて、メモリ部４２における各領域４２１〜４２８に対するデータの書き込みおよびデータの読み出しを行う。
【００５４】
特に、メモリ管理部４３５は、判定部４３４が検出キーの数が上限値を超えたことを判定したときに、検出結果データ記憶領域４２７の検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値を初期値である“０”から“１”に書き替える。
【００５５】
〔２．ホストＣＰＵ５の構成〕
ホストＣＰＵ５は、タッチパネル装置１が組み込まれる装置に設けられるＣＰＵであり、タッチパネル装置１を含む各部の制御を司る。このホストＣＰＵ５は、タッチパネルコントローラ４のコントローラＣＰＵ４１と通信して、コントローラＣＰＵ４１にタッチパネル装置１を制御するための指示やデータを送信する一方、タッチパネルコントローラ４で得られた各種のデータを取得する。
【００５６】
特に、ホストＣＰＵ５は、アプリケーションプログラムで設定されるキーの上限値に基づいて書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴを決定し、上限キー数書込領域４２４へ書き込む。また、ホストＣＰＵ５は、キー確定部４３３からの割り込み通知を受けると、ＣＵＲキー記憶領域４２２の各データと、上限キー数読出領域４２６の読出上限キー数ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴの値と、読出結果データ記憶領域４２８の読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値とを読み出す。ＣＵＲキー記憶領域４２２の各データは、前述の確定キー位置ＣＵＲＰＯＳ、ＯＦＦフラグ、ＯＮフラグ、ＭＯＶＥフラグ、ＬＩＮＫフラグ、ＬＩＮＫ−ＫＥＹデータおよびキー数ＣＵＲＫＥＹ−ＮＯである。さらに、ホストＣＰＵ５は、取得したこれらのデータをアプリケーションプログラムに渡す。
【００５７】
〔３．タッチパネル装置におけるキー確定動作〕
ここで、上記のように構成されるタッチパネル装置１におけるキーの確定動作について図５および図６のフローチャートを参照して説明する。
【００５８】
〔３−１．第１のキー確定動作〕
先に、キー確定処理において判定処理を行う場合について説明する。
【００５９】
〔３−１−１．初期化処理〕
図５に示すように、まず、キー検出部４３１は、前回のキー検出処理が開始してから所定のスキャン周期が経過すると（ステップＳ１）、次のスキャン周期の開始時時に初期化処理を行う（ステップＳ２）。
【００６０】
初期化処理では、次の各処理が行われる。
（ａ）ＴＮＥＷキー記憶領域４２１をクリアする。
（ｂ）ＣＵＲキー記憶領域４２２の全てのＯＮフラグの値（“１”）をＴＮＥＷキー記憶領域４２１のＯＦＦフラグの同じキー番号の領域にコピーする。
（ｃ）ホストＣＰＵ５により上限キー数書込領域４２４に書き込まれた書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴを、上限キー数設定領域４２５に設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴとしてコピーする。
（ｄ）検出結果データ記憶領域４２７の検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳを０にセットする。
（ｅ）ＴＮＥＷキー記憶領域４２１の検出キー数ＴＮＥＷＫＥＹ−ＮＯを０にセットする。
（ｆ）作業領域４２３のＣＨＡＮＧＥＤフラグを０にセットする。
【００６１】
〔３−１−２．キー検出処理〕
初期化処理の後は、キー検出部４３１がキー検出処理を行う（ステップＳ３）。キー検出処理では、駆動・検出部３に予め所望に設定されている駆動データを与え、その結果、駆動・検出部３から出力される検出データに基づいてキーを特定する。
【００６２】
〔３−１−３．リンク判定処理〕
上記のキー検出処理において１つの検出キーＫＴＮＥＷが検出されると、リンク判定処理に移行する。
【００６３】
まず、検出キーＫＴＮＥＷおよび確定キーＫＣＵＲの位置の一致判定を行う（ステップＳ４）。ステップＳ４で両キーの位置が一致していると判定すると、ＴＮＥＷキー記憶領域４２１のＯＮフラグを１にセットし、キー検出部４３１にリンク判定が終了したことを通知する。また、ステップＳ４で両キーの位置が一致していないと判定すると、作業領域４２３のＣＨＡＮＧＥＤフラグを１にセットして（ステップＳ５）、リンク有無判定処理に移行する（ステップＳ６）。
【００６４】
リンク有無判定処理では、検出キーＫＴＮＥＷおよび確定キーＫＣＵＲを比較し、両キーに重なり部分（リンク）があると判定すると、リンク判定対象となる検出キーＫＴＮＥＷを、最も大きい重なり度合いが得られた確定キーＫＣＵＲに対して移動したキーであるＭＯＶＥキーと決定する。また、比較の結果、両キーの重なりの度合いが０である場合、検出キーＫＴＮＥＷをリンクのないＮＥＷキーと決定する。
【００６５】
以上のリンク判定処理は、ステップＳ３のキー検出処理で１つの検出キーＫＴＮＥＷが検出される毎に繰り返し行われる。
【００６６】
〔３−１−４．キー確定処理および判定処理〕
上記のリンク判定処理が、今回の検出処理で検出された全ての検出キーＫＴＮＥＷについて終了すると、キー確定処理および判定処理に移行する。
【００６７】
キー確定部４３３は次に説明するキー確定処理を行い、判定処理は次に説明する判定処理を行う。
【００６８】
まず、作業領域４２３のＣＨＡＮＧＥＤフラグが１であるか否かを判定する（ステップＳ７）。ステップＳ７でＣＨＡＮＧＥＤフラグが１である（不一致）と判定すると、処理を後述するステップＳ９（判定処理）に移行する。一方、ステップＳ７でＣＨＡＮＧＥＤフラグが１でないと判定すると、ＴＮＥＷキー記憶領域４２１の検出キー数ＴＮＥＷＫＥＹ−ＮＯと、ＣＵＲキー記憶領域４２２のキー数ＣＵＲＫＥＹ−ＮＯとが等しいか否かを判定する（ステップＳ８）。
【００６９】
ステップＳ８でＴＮＥＷＫＥＹ−ＮＯ＝ＣＵＲＫＥＹ−ＮＯであると判定すると、検出キーＫＴＮＥＷが確定キーＫＣＵＲに対してキー数および位置について変化がないので、ステップＳ１に処理を戻す。このとき、ＴＮＥＷキー記憶領域４２１のＯＦＦフラグの状態がそのまま残る。
【００７０】
ステップＳ８でＴＮＥＷＫＥＹ−ＮＯ≠ＣＵＲＫＥＹ−ＮＯであると判定すると、ＴＮＥＷキー記憶領域４２１の検出キー数ＴＮＥＷＫＥＹ−ＮＯが上限キー数設定領域４２５の設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ以下であるか否かを判定する（ステップＳ９）。ステップＳ９で検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ以下であると判定すると、同時に複数検出されたキーの数は設定された上限値を越えていないことになる。この場合は、ステップＳ８の判定の結果、キー検出後にキー数が変化していることから、ＴＮＥＷキー記憶領域４２１の全ての検出キーＫＴＮＥＷのデータを新たな確定キーＫＣＵＲのデータとしてＣＵＲキー記憶領域４２２に書き込む（ステップＳ１１）。
【００７１】
一方、ステップＳ９で検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ以下でないと判定すると、同時に複数検出されたキーの数は設定された上限値を越えていることになる。この場合は、検出結果データ記憶領域４２７の検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値を初期値である“０”から“１”に書き替えて（ステップＳ１０）、処理をステップＳ１２に移行する。このとき、検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値が、読出結果データ記憶領域４２８にコピーされる。また、上限キー数設定領域４２５の設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴの値が、上限キー数読出領域４２６に読出上限キー数ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴとしてコピーされる。
【００７２】
そして、割り込み信号をホストＣＰＵ５に送信することにより、検出キーＫＴＮＥＷが確定キーＫＣＵＲから変化したこと、または検出キーの数が上限値を越えていることをホストＣＰＵ５に通知して（ステップＳ１２）、スキャンを終え、ステップＳ１に処理を戻す。
【００７３】
これにより、ホストＣＰＵ５は、ＣＵＲキー記憶領域４２２から新たなキーのデータを読み出したり、上限キー数読出領域４２６から読出上限キー数ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴを読み出したり、読出結果データ記憶領域４２８から読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ-ＳＴＡＴＵＳを読み出したりする。
【００７４】
〔３−２．第２のキー確定動作〕
続いて、リンク判定前に判定処理を行う場合について説明する。
【００７５】
〔３−２−１．初期化処理〕
図６に示すように、キー検出部４３１は、前述のステップＳ１と同様、前回のキー検出処理が開始してから所定の検出周期が経過すると（ステップＳ２１）、ステップＳ２と同様、初期化処理を行う（ステップＳ２２）。
【００７６】
〔３−２−２．キー検出処理〕
初期化処理の後は、キー検出部４３１が前述のステップＳ３と同様、キー検出処理を行う（ステップＳ２３）。
【００７７】
〔３−２−３．判定処理およびリンク判定処理〕
上記のキー検出処理において１つの検出キーＫＴＮＥＷが検出されると、ステップＳ２４（判定処理）に移行する。
【００７８】
ステップＳ２４では、前述のステップＳ９と同様、検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ以下であるか否かを判定する。ステップＳ２３で検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ以下であると判定すると、同時に複数検出されたキーの数は設定された上限値を越えていないことになる。この場合は、リンク判定処理に移行する。
【００７９】
リンク判定処理では、前述のステップＳ４と同様、検出キーＫＴＮＥＷおよび確定キーＫＣＵＲの位置の一致判定を行い（ステップＳ２５）、両キーの位置が一致していると判定すると、キー検出部４３１にリンク判定が終了したことを通知する。また、ステップＳ２５で両キーの位置が一致していないと判定すると、前述のステップＳ５と同様、ＣＨＡＮＧＥＤフラグを１にセットして（ステップＳ２６）、前述のステップＳ６と同様のリンク有無判定処理に移行する（ステップＳ２７）。
【００８０】
一方、ステップＳ２４で検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ以下でないと判定すると、同時に複数検出されたキーの数は設定された上限値を越えていることになる。この場合は、前述のステップＳ１０と同様、検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値を“０”から“１”に書き替えて（ステップＳ２８）、処理をステップＳ３２に移行する。このときも、検出キー数上限判定結果ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳの値は、読出結果データ記憶領域４２８にコピーされる。
【００８１】
〔３−２−４．キー確定処理〕
上記のリンク判定処理が、今回の検出処理で検出された全ての検出キーＫＴＮＥＷについて終了すると、キー確定処理に移行する。
【００８２】
キー確定部４３３は、次に説明するキー確定処理を行う。
【００８３】
まず、前述のステップＳ７と同様、ＣＨＡＮＧＥＤフラグが１であるか否かを判定する（ステップＳ２９）。ステップＳ２９でＣＨＡＮＧＥＤフラグが１である（不一致）と判定すると、処理を後述するステップＳ３１に移行する。一方、ステップＳ２９でＣＨＡＮＧＥＤフラグが１でないと判定すると、前述のステップＳ８と同様、検出キー数ＴＮＥＷＫＥＹ−ＮＯとキー数ＣＵＲＫＥＹ−ＮＯとが等しいか否かを判定する（ステップＳ３０）。
【００８４】
ステップＳ３０でＴＮＥＷＫＥＹ−ＮＯ＝ＣＵＲＫＥＹ−ＮＯであると判定すると、検出キーＫＴＮＥＷが確定キーＫＣＵＲに対してキー数および位置について変化がないので、ステップＳ２１に処理を戻す。このとき、ＴＮＥＷキー記憶領域４２１のＯＦＦフラグの状態がそのまま残る。
【００８５】
ステップＳ３０でＴＮＥＷＫＥＹ−ＮＯ≠ＣＵＲＫＥＹ−ＮＯであると判定すると、前述のステップＳ１１と同様、ＴＮＥＷキー記憶領域４２１の全ての検出キーＫＴＮＥＷのデータを新たな確定キーＫＣＵＲのデータとしてＣＵＲキー記憶領域４２２に書き込む（ステップＳ３１）。
【００８６】
そして、前述のステップＳ１２と同様、割り込み信号をホストＣＰＵ５に送信することにより、検出キーＫＴＮＥＷが確定キーＫＣＵＲから変化したこと、またはキー数上限結果データが発生していることをホストＣＰＵ５に通知して（ステップＳ３２）、ステップＳ２１に処理を戻す。これにより、ホストＣＰＵ５は、ＣＵＲキー記憶領域４２２から新たなキーのデータを読み出したり、上限キー数読出領域４２６から読出上限キー数ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴを読み出したり、読出結果データ記憶領域４２８から読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳを読み出したりする。
【００８７】
〔４．実施形態の総括〕
以上のように、本実施形態に係るタッチパネル装置１は、タッチパネルコントローラ４において、ホストＣＰＵ５によって上限キー数書込領域４２４に一旦書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴとして書き込まれ、上限キー数設定領域４２５に設定された設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴに基づいて判定処理を行う。この判定処理では、ＴＮＥＷキー記憶領域４２１の検出キー数ＴＮＥＷＫＥＹ−ＮＯが設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴを越えているときに検出キーの数が上限値を超えたと判定してスキャンを終える。
【００８８】
また、スキャンの処理の状態に依存せずに、ホストＣＰＵ５が上限キー数書込領域４２４に書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴを書き込むことによって、所望のタイミングで検出できるキーの上限値を動的に入力することができる。これにより、検出できるキーの上限値を所望に制限することができる。
【００８９】
特に、ＦＡ機器では、誤動作できない場合があるので、キー数の上限値を設定することは有効である。例えば、１つのタッチ入力しか検出できない場合、２つ以上のタッチ入力があると、どちらが正しいか分からないので、２つ以上のタッチ入力に対して検出されたキーを無効とする。
【００９０】
上記のように構成されるタッチパネル装置１は、次のように応用することができる。例えば、入力操作用の画像を表示している状態で、画像が切り替わった直後の所定期間は上限値を０に設定しておき、画像が切り替わってから所定時間経過したときに、切り替わった画像に対する所定値に上限値を設定し直す。上記の所定期間では、設定される上限値が０であるので、タッチ入力により検出キーが上限値を超えたことが判定されるが、アプリケーションプログラムではその判定結果を無視するようにしておく。これにより、画像が切り替わってすぐの段階で、ユーザが切り替わった画像を正しく認識しないうちにタッチ入力することによる誤動作を防止することができる。そして、画像が切り替わってから所定時間経ってユーザが画像を認識できるようになると、新たに設定された上限値に基づいて、上限値を超えたか否かの判定が行われるので、通常のタッチ入力が受け付けられる。
【００９１】
上記のように、ホストＣＰＵ５が書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴを書き込むタイミングはスキャン処理と同期していない。このため、書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴを判定の上限値として用いると、１スキャンにおいて書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴが複数回書き替えられた場合、ホストＣＰＵ５は、どの上限値が判定に用いられたかがわからない。この結果、判定結果を受けたホストＣＰＵ５が正しい処理をすることができずに、誤動作するおそれがある。本実施形態によらずに、このような誤動作を回避するには、通常、リセット直後に上限値を設定するか、スキャンを一旦中断して上限値を設定しなおす必要がある。このため、スキャン処理を行いながら所望のタイミングで上限値を変更することができない。
【００９２】
そこで、タッチパネル装置１では、各スキャンの開始時に、上限キー数書込領域４２４に書き込まれた書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴを、上限キー数設定領域４２５に設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴとしてコピーし、これを判定の上限値として用いている。そして、判定に用いられた設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴを、ホストＣＰＵ５がアクセス可能な読出結果データ記憶領域４２８に読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳとしてコピーする。
【００９３】
これにより、ホストＣＰＵ５からの書込上限キー数ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴの書き込みがスキャン処理と非同期で行われても、判定に実際に使用された上限値がホストＣＰＵ５に読み取られる。したがって、判定結果を受けたホストＣＰＵ５が誤動作せずに正しい処理をすることができる。それゆえ、同時に入力可能なキー数をスキャン処理の途中で動的に変更することができる。しかも、読出結果データ記憶領域４２８に読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳを保存しておくことにより、次のスキャンの開始時に、上限キー数設定領域４２５に新たな設定上限キー数ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴがコピーされても、ホストＣＰＵ５が読出結果データ記憶領域４２８に保存された読出キー数上限判定結果ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ−ＳＴＡＴＵＳを確実に読み出すことができる。
【００９４】
なお、本実施形態では、タッチパネル装置１において同時に検出できるキーの上限値に対する判定について説明した。本発明は、同時にされた複数のタッチ入力に対する複数のキーを検出することができれば、キーボード、メンブレンスイッチ、タッチパッドなどの他の入力装置にも適用できる。
【００９５】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００９６】
本発明のタッチパネル装置は、同時に複数検出できるタッチ入力の上限値を外部からメモリに書き込み、実際のタッチ入力数がこの上限値より大きいか否かを判定するので、タッチ入力の上限値を必要に応じて変更する用途に好適に用いることができる。
【符号の説明】
【００９７】
１    タッチパネル装置
２    タッチパネル
３    駆動・検出部
４    タッチパネルコントローラ
５    ホストＣＰＵ
４２    メモリ部
４３    キー確定処理部
４２１    ＴＮＥＷキー記憶領域（検出数記憶手段）
４２４    上限キー数書込領域（上限値記憶手段，書込領域）
４２５    上限キー数設定領域（上限値記憶手段，設定領域）
４２６    上限キー数読出領域（上限値記憶手段，読出領域）
４２７    検出結果データ記憶領域
４２８    読出結果データ記憶領域
４３４    判定部（判定手段）
ＴＮＥＷＫＥＹ−ＮＯ    キー数
ＩＮＴＦＫＥＹ−ＮＵＭＬＩＭＩＴ    書込上限キー数（上限値）
ＥＸＥＣＫＥＹ−ＮＵＭＬＩＭＩＴ    設定上限キー数（上限値，設定値）
ＣＵＲＫＥＹ−ＮＵＭＬＩＭＩＴ    読出上限キー数（上限値，読出値）
【図１】
2011113221.tif 000003
【図２】
2011113221.tif 000004
【図３】
2011113221.tif 000005
【図４】
2011113221.tif 000006
【図５】
2011113221.tif 000007
【図６】
2011113221.tif 000008