以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の第1の実施の形態による位置検出システム1の使用状態の一例を示す図である。同図に示すように、本実施の形態による位置検出システム1はアクティブペン2及びタブレット3を備える。タブレット3はタッチ面3aを有しており、タッチ面3a上におけるアクティブペン及びパッシブポインタの位置を検出可能に構成される。図1には、アクティブペン2のペン先、パッシブポインタとしての指4の先端、及び、アクティブペン2を保持しているユーザの手5がタッチ面3aに接触している様子を示している。なお、ユーザの指4はパッシブポインタの一例として示しているもので、本実施の形態においてパッシブポインタの種類は問わない。以下の説明では、アクティブペン2と指4に代表されるパッシブポインタとをまとめて、「ポインタ」と称する場合がある。
ここで、本実施の形態の内容について詳しく説明する前に、本発明の概要について、図2及び図3を参照しながら説明する。
まず図2は、本発明の背景技術によるタブレットに設けられるセンサコントローラ(図示せず)が実行するポインタの位置検出処理の概略を示すフロー図である。同図に示すように、本発明の背景技術によるセンサコントローラは、ステップS101〜S106の処理を繰り返し実行するよう構成される(ステップS100)。
ステップS101〜S106の処理について具体的に説明すると、センサコントローラはまず初めにアクティブペン2の位置検出処理を実行し(ステップS101)、検出した位置をホストプロセッサ(図示せず)に出力する(ステップS102)。続いて、再度アクティブペン2の位置検出処理を実行し(ステップS103)、検出した位置をホストプロセッサに出力する(ステップS104)。次に、センサコントローラは指4の位置検出処理を実行し(ステップS105)、検出した位置をホストプロセッサに出力する(ステップS106)。
ステップS101,S103と2回続けてアクティブペン2の位置検出処理を行っているのは、上述したように、アクティブペン2の検出レートを確保するためである。しかしながら、こうすることでアクティブペン2の検出間隔が一定でなくなってしまうため、上述したように、例えばセンサコントローラから順次出力されるアクティブペン2の座標データが時間的に等間隔に送信されていることを期待して動作する描画アプリケーションなどにおいて、描画結果が不自然になってしまうという問題が発生する。
また、上述したように、アクティブペン2の位置検出処理には、手5の接触位置をアクティブペンの位置として誤検出してしまう可能性があるという問題があり、指4の位置検出処理には、アクティブペン2又は手5の接触位置を指4の位置として検出してしまう可能性があるという問題がある。
本実施の形態によるタブレット3に設けられるセンサコントローラ31(後述する図4を参照)が行う処理は、これらの問題を解消できるものとなっている。以下、図3を参照しながら、その概要について説明する。
図3は、センサコントローラ31が実行するポインタの位置検出処理の概略を示すフロー図である。同図に示すように、センサコントローラ31は、ステップS2〜S9の処理を繰り返し実行するよう構成される(ステップS1)。このうちステップS2〜S4は、アクティブペン2の位置であるペン位置を検出するためのペン検出ステップであり、ステップS5〜S9は、指4の位置であるパッシブポインタ位置を検出するためのタッチ検出ステップである。
ステップS2〜S9の処理について、図2に示した処理と比較しながら具体的に説明すると、まずステップS2の位置検出処理自体は、ステップS101の位置検出処理と同様である。しかし、検出した位置の出力処理は、背景技術のステップS102とは異なるものとなっている。すなわち、センサコントローラ31は、ステップS2で検出した位置をそのままホストプロセッサ32(後述する図4を参照)に出力するのではなく、検出した1以上の位置(候補ペン位置)の中からペン位置を決定する処理(以下、「ペン位置決定処理」と称する)を行い(ステップS3)、決定したペン位置のみをホストプロセッサ32に出力する(ステップS4)ように構成される。ペン位置決定処理の具体的な内容については後述するが、この処理の中で手5の接触位置を出力対象から除外することができるので、センサコントローラ31は、アクティブペン2の接触位置を正しく識別できる。
次に、センサコントローラ31は、ステップS5で指4の位置検出処理を行うが、1回の処理では、ステップS105で実行される位置検出処理の1/Nの処理のみを実行する(ステップS5)。1/Nの処理の具体的な内容については後述するが、1/Nしか実行しないので、センサコントローラ31は、指4の位置を得るためにN回分の結果を合成する必要がある。そこで、センサコントローラ31は、1/Nの処理で得た部分的な検出結果を示すデータ(以下、「部分検出データ」と称する)を記録しておき(ステップS6)、過去に記録したN−1回分の部分検出データとの合成により、指4の位置を示すデータ(以下、「全体検出データ」と称する)を生成するように構成される(ステップS7)。1/Nの処理は、ステップS105で実行される位置検出処理と比べると概ね1/Nの時間で完了するので、センサコントローラ31の処理をステップS5〜S7のように構成することで、図2の例のようにアクティブペン2の位置検出処理を2回続けて実行しなくても、アクティブペン2の検出レートを確保することが可能になる。
その後、センサコントローラ31は、ステップS7で生成した全体検出データにより示される1以上の位置(候補タッチ位置)の中からパッシブポインタ位置を決定する処理(以下、「パッシブポインタ位置決定処理」と称する)を行い(ステップS8)、決定したパッシブポインタ位置のみをホストプロセッサ32に出力する(ステップS9)。ステップS8,S9の処理を実行する主旨はステップS3,S4のそれと同じであり、この処理の中でアクティブペン2及び手5の接触位置を出力対象から除外することができるので、センサコントローラ31は、指4の接触位置を正しく識別できることになる。パッシブポインタ位置決定処理の具体的な内容についても、後述する。以下では、ペン位置決定処理とパッシブポインタ位置決定処理とを「出力位置決定処理」と総称する場合がある。
以上、本発明の概要について説明した。以下、図1に戻り、本実施の形態の内容について詳細に説明する。以下では、初めに本実施の形態による位置検出システム1の構成の全体概要について説明し、その後、上述した出力位置決定処理と1/Nの処理の詳細な内容について、順に説明する。
アクティブペン2は、アクティブ静電方式によって動作する電子ペンである。図示していないが、アクティブペン2の内部には制御部及び送受信部が設けられており、制御部は、送受信部を介してタブレット3と相互に信号を送受信可能に構成される。以下では、タブレット3からアクティブペン2に向けて送信される信号をアップリンク信号USと称し、アクティブペン2からタブレット3に向けて送信される信号(ペン信号)をダウンリンク信号DSと称する。
アクティブペン2の先端部分にはペン電極が設けられており、アクティブペン2の送受信部は、このペン電極と、タブレット3のタッチ面3aに設けられるセンサ30(後述する図4を参照)との間に形成されたキャパシタンスを介して、アップリンク信号USの受信及びダウンリンク信号DSの送信を行う。なお、アップリンク信号US受信用のペン電極とダウンリンク信号DS送信用のペン電極とは、異なっていてもよいし、同じであってもよい。
アクティブペン2はまた、ペン先に印加された圧力(筆圧)を検出する筆圧検出部、側面に設けられたサイドスイッチのオンオフ状態を検出するサイドスイッチ状態検出部、予め割り当てられた固有IDを記憶する記憶部(メモリ)、及び、アクティブペン2の動作電源を供給する電源部(バッテリ)を有して構成される。アクティブペン2の制御部は、これらの各部を制御可能に構成される。
ダウンリンク信号DSは、所定周波数のバースト信号である位置信号と、アクティブペン2からタブレット3に対して送信するデータを含むデータ信号とを含んで構成される。位置信号は、タブレット3において、アクティブペン2の位置を検出するために使用される。データ信号により送信するデータは、例えば、筆圧検出部によって検出された筆圧を示すデータ(筆圧データ)、サイドスイッチ状態検出部によって取得されたサイドスイッチのオンオフ状態を示すデータ(スイッチデータ)、記憶部内に記憶される固有IDなどであり、制御部によってデータ信号内に配置される。
アップリンク信号USは、所定のスタートビットと、タブレット3からアクティブペン2への命令を示すコマンドとを含んで構成される。アクティブペン2の制御部は、受信されたアップリンク信号USからコマンドを取り出して復号し、その内容に従うデータをデータ信号内に配置するよう構成される。これによりタブレット3は、所望のデータをアクティブペン2から取り出すことが可能になる。
タブレット3は、液晶表示装置としての機能と、タッチ面3a上におけるポインタの位置を検出する位置検出器としての機能とを併せ持つ電子機器である。タッチ面3aは、液晶の表示画面上に設けられる。また、タブレット3が検出可能なポインタには、図1に示したアクティブペン2及び指4の両方が含まれる。
詳しくは図4を参照して後述するが、タッチ面3aの内側には、各複数のセンサ電極30X,30Y(センサパターン)を含むセンサ30が設けられる。タブレット3は、このセンサ30におけるキャパシタンスの変化を検出することによって指4の位置(パッシブポインタ位置)を検出するとともに、センサ30によって上述した位置信号を検出することによってアクティブペン2の位置(ペン位置)を検出するように構成される。
各センサ電極30Xは液晶表示装置の共通電極を兼ねており、画素駆動動作時には、固定電位である画素駆動用電圧Vcomが各センサ電極30Xに供給される。このように位置検出用のセンサ電極を液晶表示用の電極としても使用するタイプのタブレット3は、一般に「インセル型」と呼ばれる。「インセル型」のタブレット3では、画素駆動動作時にはセンサ電極30Xを位置検出用に用いることができないので、指4又はアクティブペン2の位置検出は、画素駆動動作のインターバル(例えば、水平帰線期間及び垂直帰線期間)に実行される。ただし、本発明は、複数のセンサ電極30X,30Yが液晶表示装置の電極(共通電極及び画素電極)から独立しているタイプのタブレット(非インセル型)に対しても、同様に適用可能である。
図4は、タブレット3の構成を示す図である。同図に示すように、タブレット3は、センサ30と、センサコントローラ31と、ホストプロセッサ32とを有して構成される。
センサ30は、それぞれY方向に延在し、Y方向と直交するX方向に等間隔で配置された複数のセンサ電極30Xと、それぞれX方向に延在し、Y方向に等間隔で配置された複数のセンサ電極30Yとがマトリクス状に配置された構成を有する。なお、ここではセンサ電極30X,30Yがともに直線状の導電体により構成される例を示しているが、他の形状の導電体によってセンサ電極30X,30Yを構成することも可能である。例えば、センサ電極30X,30Yの一方を、アクティブペン2の二次元座標が検出可能なように二次元に配置された複数の矩形導電体によって構成することとしてもよい。
センサコントローラ31は、このセンサ30を用い、画素駆動動作のインターバルに時分割で、アクティブペン2との通信(アクティブペン2の位置検出を含む)と、指4の位置検出とを行うよう構成される。また、画素駆動動作時には、画素駆動用電圧Vcomを複数のセンサ電極30Xのそれぞれに供給するよう構成される。以下、センサコントローラ31の構成について、より詳細に説明する。
センサコントローラ31は、図4に示すように、MCU40、ロジック部41、送信部42,43、受信部44、選択部45を有して構成される。
MCU40及びロジック部41は、送信部42,43、受信部44、及び選択部45を制御することにより、センサコントローラ31の送受信動作を制御する制御部である。具体的に説明すると、まずMCU60は、内部にメモリ(ROM及びRAM)を有しており、このメモリに格納されたプログラムを実行することによって動作するマイクロプロセッサである。MCU40の動作タイミングは、ホストプロセッサ32から供給されるタイミング信号によって制御される。MCU40が行う動作には、ロジック部41の制御動作の他、画素駆動用電圧Vcomを選択部45に供給する動作と、指検出用信号FDSを出力するよう送信部42を制御する動作と、アクティブペン2に対する指示の内容を示すコマンドCOMを送信部43に供給する動作と、受信部44から供給されるデジタル信号に基づいてアクティブペン2及び指4それぞれの位置(具体的には、タッチ面3a内の位置を示す座標x,y)を検出する動作と、受信部44から供給されるデジタル信号を復号することにより、アクティブペン2が送信したデータRes(例えば、上述した筆圧データ、スイッチデータ、又は固有IDなど)を取得する動作と、データRes内に含まれる筆圧データに基づいてアクティブペン2のタッチ面3aに対する接触状態を判定する動作とが含まれる。ロジック部41は、MCU40の制御に基づき、制御信号ctrl_t1〜ctrl_t4,ctrl_rを出力する機能を有する。
送信部42は、MCU40の制御に従って指検出用信号FDSを生成し、選択部45を通じて各センサ電極30Xに供給する回路である。ここで、指検出用信号FDSの具体的な内容及び各センサ電極30Xへの供給方法について、図5を参照しながら説明する。
図5は、MCU40が実行する指4の位置検出処理の原理を示す図である。同図には、指4の位置検出処理を図3に示した1/Nの処理に分割する前の状態、すなわち図2に示したステップS105で実行される指4の位置検出処理を示している。簡単のため、同図には4本のセンサ電極30Xのみを示しているが、実際にはより多くのセンサ電極30Xが配置される。以下、センサ電極30Xの本数がK本であるとして説明を続ける。
図5に示すように、指検出用信号FDSは例えば、それぞれK個の「1」又は「−1」で表されるパルスからなるK個の信号s1〜sKによって構成される。信号s1〜sKそれぞれのn番目(n=1〜K)のパルスはパルス群pnを構成し、1つのパルス群pnを構成する各パルスは、図4に示した送信部42から選択部45を通じて、各センサ電極30Xにパラレルに入力される。
図4に戻る。送信部43は、MCU40及びロジック部41の制御に従ってアップリンク信号USを生成し、選択部45に供給する回路であり、同図に示すように、パターン供給部50、スイッチ51、符号列保持部52、拡散処理部53、及び送信ガード部54を含んで構成される。なお、このうち特にパターン供給部50に関して、本実施の形態では送信部43内に含まれるものとして説明するが、MCU40内に含まれることとしてもよい。
パターン供給部50は、アップリンク信号USの先頭に配置されるスタートビットSBを保持しており、ロジック部41から供給される制御信号ctrl_t1の指示に従って、保持しているスタートビットSBを出力するよう構成される。
スイッチ51は、ロジック部41から供給される制御信号ctrl_t2に基づいてパターン供給部50及びMCU40のいずれか一方を選択し、選択した一方の出力を拡散処理部53に供給する機能を有する。スイッチ51がパターン供給部50を選択した場合、拡散処理部53にはスタートビットSBが供給される。一方、スイッチ51がMCU40を選択した場合、拡散処理部53にはコマンドCOMが供給される。
符号列保持部52は、ロジック部41から供給される制御信号ctrl_t3に基づき、自己相関特性を有する所定チップ長の拡散符号を生成して保持する機能を有する。符号列保持部52が保持している拡散符号は、拡散処理部53に供給される。
拡散処理部53は、スイッチ51を介して供給される値(スタートビットSB又はコマンドCOM)に基づいて符号列保持部52によって保持される拡散符号を変調することにより、所定チップ長の送信チップ列を取得する機能を有する。拡散処理部53は、取得した送信チップ列を、送信ガード部54を介して選択部45に供給する。
送信ガード部54は、ロジック部41から供給される制御信号ctrl_t4に基づき、アップリンク信号USの送信期間とダウンリンク信号DSの受信期間との間に、送信動作と受信動作を切り替えるために必要となるガード期間(送信と受信の両方を行わない期間)を挿入する機能を有する。
選択部45は、スイッチ58x,58yと、導体選択回路59x,59yとを含んで構成される。
スイッチ58yは、共通端子とT端子及びR端子のいずれか一方とが接続されるように構成されたスイッチ素子である。スイッチ58yの共通端子は導体選択回路59yに接続され、T端子は送信部43の出力端に接続され、R端子は受信部44の入力端に接続される。また、スイッチ58xは、共通端子とT1端子、T2端子、D端子、及びR端子のいずれか1つとが接続されるように構成されたスイッチ素子である。このうちT2端子は、実際にはセンサ電極30Xの数分の端子の集合である。スイッチ58xの共通端子は導体選択回路59xに接続され、T1端子は送信部43の出力端に接続され、T2端子は送信部42の出力端に接続され、D端子は画素駆動用電圧Vcomを出力するMCU40の出力端に接続され、R端子は受信部44の入力端に接続される。
導体選択回路59xは、複数のセンサ電極30Xを選択的にスイッチ58xの共通端子に接続するためのスイッチ素子である。導体選択回路59xは、複数のセンサ電極30Xの一部又は全部を同時にスイッチ58xの共通端子に接続することも可能に構成される。また、スイッチ58x内においてT2端子と共通端子とが接続されている場合、導体選択回路59xは、T2端子を構成する複数の端子と複数のセンサ電極30Xとを一対一に接続する。
導体選択回路59yは、複数のセンサ電極30Yを選択的にスイッチ58yの共通端子に接続するためのスイッチ素子である。導体選択回路59yも、複数のセンサ電極30Yの一部又は全部を同時にスイッチ58yの共通端子に接続することも可能に構成される。
選択部45には、ロジック部41から4つの制御信号sTRx,sTRy,selX,selYが供給される。具体的には、制御信号sTRxはスイッチ58xに、制御信号sTRyはスイッチ58yに、制御信号selXは導体選択回路59xに、制御信号selYは導体選択回路59yにそれぞれ供給される。ロジック部41は、これら制御信号sTRx,sTRy,selX,selYを用いて選択部45を制御することにより、アップリンク信号US又は指検出用信号FDSの送信並びに画素駆動用電圧Vcomの印加と、ダウンリンク信号DS又は指検出用信号FDSの受信とを実現する。
より具体的に説明すると、まずアップリンク信号USを送信するタイミングでは、ロジック部41は、複数のセンサ電極30Yのすべてが同時に送信部43に接続されることとなるよう、選択部45を制御する。これにより、複数のセンサ電極30Yのすべてから同時にアップリンク信号USが送信されることになるので、アクティブペン2は、タッチ面3a上のどこにいても、アップリンク信号USを受信可能となる。
次にダウンリンク信号DSのうち上述した位置信号を受信するタイミングでは、ロジック部41は、複数のセンサ電極30X,30Yを1つずつ順に選択し、選択したセンサ電極30X,30Yが受信部44に接続されるよう、選択部45を制御する。これにより、センサ電極30X,30Yの数に等しい数の位置信号が、受信部44に順次供給されることになる。詳しくは後述するが、MCU40は、こうして受信部44に供給される位置信号のレベルに基づいて、アクティブペン2の位置を検出するよう構成される。
具体的に説明すると、MCU40は、受信部44から供給されるデジタル信号(後述)に基づき、複数のセンサ電極30X,30Yの各交点における位置信号のレベルを決定する。そして、決定した各レベルに基づき、アクティブペン2の位置を検出する。具体的には、位置信号のレベルが所定値以上であるタッチ面3a内の領域を決定し、例えばその中心位置をアクティブペン2の位置として検出すればよい。
ダウンリンク信号DSのうち上述したデータ信号を受信するタイミングでは、まずMCU40により、複数のセンサ電極30X,30Yのうちの1本以上が選択される。この選択は、直前の位置信号に基づいて検出されたアクティブペン2の位置に基づいて実行される。そしてロジック部41は、選択されたセンサ電極30X,30Yが受信部44に接続されるよう、選択部45を制御する。これにより、アクティブペン2が送信したデータ信号を受信部44に供給することが可能になる。
次に指検出用信号FDSを送信するタイミングでは、ロジック部41は、MCU40とともに、1つのセンサ電極30Yを選択し、上述したパルス群p1〜pKを送信部42に順次各センサ電極30Xに入力させる、という動作を各センサ電極30Yについて繰り返す。具体的に説明すると、ロジック部41はまず、スイッチ58xのT2端子を構成する複数の端子と複数のセンサ電極30Xとが一対一に接続されることとなるよう、選択部45を制御する。そして、その状態を維持しながら、複数のセンサ電極30Yを1本ずつ順に選択し、選択したセンサ電極30Yが受信部44に接続されるよう選択部45を制御する。
MCU40はさらに、1本のセンサ電極30Yを選択している間に、パルス群p1〜pKをメモリから1パルス群ずつ順次読み出し、該読み出しの都度、読み出したパルス群を構成するK個のパルスを送信部42に供給する。送信部42は、こうして供給されたK個のパルスを、K本のセンサ電極30Xにパラレルに入力する。このような制御の結果として受信部44から供給されるデジタル信号のレベルは、選択中のセンサ電極30Yと、各センサ電極30Xとの交点に形成されるキャパシタンスの変化を反映したものとなる。そこでMCU40は、受信部44から供給されるデジタル信号のレベルに基づいて、指4の位置を検出するよう構成される。
ここで、再度図5を参照しながら、MCU40が実行する指4の位置検出処理について、より詳しく説明する。以下では、センサ電極30Xの本数が4本(すなわち、K=4)であるとして説明を行うが、センサ電極30Xの本数が3本以下又は5本以上である場合についても同様である。
センサ電極30Xの本数が4本である場合、信号s1〜sKはそれぞれ4個の「1」又は「−1」で表されるパルスによって構成されることになる。具体的には、図5に示すように、信号s1が「1,1,1,1」、信号s2が「1,1,−1,−1」、信号s3が「1,−1,−1,1」、信号s4が「1−1,1,−1」によりそれぞれ構成される。
MCU40は機能的に、シフトレジスタ40a及び相関器40bを含んで構成される。シフトレジスタ40aはFIFO形式の記憶部であり、センサ電極30Xの本数と同数(すなわち、K個)のデータを格納可能に構成される。シフトレジスタ40aに新たにデータを格納する際には、K回前に格納されたデータが消去される。MCU40及びロジック部41は、上述したように、1つのセンサ電極30Yを選択し、送信部42にパルス群p1〜p4を順次各センサ電極30Xに入力させる、という動作を各センサ電極30Yについて繰り返す。これにより、選択中のセンサ電極30Yには、それぞれパルス群p1〜p4に対応する4つのレベルL1〜L4が順次現れることになる。MCU40は、こうしてセンサ電極30Yに現れるレベルL1〜L4を受信部44を介して順次取得し、その都度、シフトレジスタ40aに格納する。
レベルL1〜L4の具体的な内容について、図5に示したセンサ電極30Y1が選択されている場合を例に取って詳しく説明する。以下の説明では、センサ電極30Y1と4本のセンサ電極30X1〜30X4のそれぞれとの間に形成されるキャパシタンスを、それぞれC11〜C41とする。
まずパルス群p1に対応してシフトレジスタ40aに格納されるレベルL1は、キャパシタンスのベクトル(C11,C21,C31,C41)と、パルス群p1を示すベクトル(1,1,1,1)との内積となる。この内積は、図5にも示すように、C11+C21+C31+C41と計算される。同様に、パルス群p2に対応してシフトレジスタ40aに格納されるレベルL2は、キャパシタンスのベクトル(C11,C21,C31,C41)と、パルス群p1を示すベクトル(1,1,−1,−1)との内積となってC11+C21−C31−C41と計算され、パルス群p3に対応してシフトレジスタ40aに格納されるレベルL3は、キャパシタンスのベクトル(C11,C21,C31,C41)と、パルス群p3を示すベクトル(1,−1,−1,1)との内積となってC11−C21−C31+C41と計算され、パルス群p4に対応してシフトレジスタ40aに格納されるレベルL4は、キャパシタンスのベクトル(C11,C21,C31,C41)と、パルス群p4を示すベクトル(1,−1,1,−1)との内積となってC11−C21+C31−C41と計算される。
MCU40は、相関器40bを用い、4個のパルス群p1〜p4のそれぞれについて、シフトレジスタ40aに蓄積したレベルL1〜L4との相関値T1〜T4を順次算出する。こうして算出される相関値T1〜T4の具体的な内容は、図5にも示すように、それぞれ4C11,4C21,4C31,4C41となる。すなわち、相関値T1〜T4には、それぞれセンサ電極30X1〜30X4と、センサ電極30Y1との交点に形成されるキャパシタンスの変化が反映されることになる。したがってMCU40は、各センサ電極30Yについて算出される相関値T1〜T4を参照することにより、指4の位置を検出することが可能になる。具体的には、キャパシタンスの変化が所定値以上であるタッチ面3a内の領域を決定し、例えばその中心位置を指4の位置として検出すればよい。
以上、MCU40が実行する指4の位置検出処理について、詳細に説明した。次に図4に戻り、ロジック部41は、画素駆動用電圧Vcomを印加するタイミングでは、D端子が共通端子に接続されるよう、スイッチ58xを制御する。これにより、複数のセンサ電極30Xのそれぞれに画素駆動用電圧Vcomが供給され、画素駆動動作を実行することが可能になる。
受信部44は、ロジック部41の制御信号ctrl_rに基づいて、アクティブペン2が送信したダウンリンク信号DS又は送信部42が送信した指検出用信号FDSを受信する回路である。具体的には、増幅回路55、検波回路56、及びアナログデジタル(AD)変換器57を含んで構成される。
増幅回路55は、選択部45から供給されるダウンリンク信号DS又は指検出用信号FDSを増幅して出力する。検波回路56は、増幅回路55の出力信号のレベルに対応した電圧を生成する回路である。AD変換器57は、検波回路56から出力される電圧を所定時間間隔でサンプリングすることによって、デジタル信号を生成する回路である。AD変換器57が出力するデジタル信号は、MCU40に供給される。
MCU40は、こうして供給されたデジタル信号に基づき、指4及びアクティブペン2の位置(座標x,y)の検出と、アクティブペン2が送信したデータResの取得とを行う。具体的に説明すると、まず指4の位置に関して、MCU40は、供給されたデジタル信号に基づいて、センサ電極30Yごとに、それぞれパルス群p1〜pKに対応するレベルL1〜LKを取得する。レベルL1〜LKから指4の位置を検出する方法については、図5を参照して上述したとおりである。次にアクティブペン2の位置に関して、MCU40は、上述したように、供給されたデジタル信号に基づいて複数のセンサ電極30X,30Yの各交点における位置信号のレベルを決定し、決定した各レベルに基づいてアクティブペン2の位置を検出する。最後にデータResに関して、MCU40は、受信部44から供給されるデジタル信号を復号することによって、データResを取得する。MCU40は、こうして検出した位置(座標x,y)及びデータResを、ホストプロセッサ32に出力するよう構成される。
また、MCU40は、取得したデータRes内に含まれる筆圧データに基づいてアクティブペン2のタッチ面3aに対する接触状態を判定し、アクティブペン2が新たにタッチ面3aに接触したと判定した場合(すなわち、筆圧が0からプラスの値に変化した場合)には、ペンダウン情報IN−PROXYをホストプロセッサ32に出力し、アクティブペン2がタッチ面3aから離れたと判定した場合(すなわち、筆圧がプラスの値から0に変化した場合)には、ペンアップ情報OUT−PROXYをホストプロセッサ32に出力するよう構成される。こうして出力されたペンダウン情報IN−PROXY及びペンアップ情報OUT−PROXYは、ホストプロセッサ32によって、ストロークの始まりと終わりを認識するために使用される。
以上が、本実施の形態による位置検出システム1の構成の概要である。続いて、上述した出力位置決定処理及び1/Nの処理の詳細な内容について、順に説明する。
初めに、出力位置決定処理について、詳細に説明する。
図6(a)は、本実施の形態による出力位置決定処理で利用されるペン位置テーブルを示す図であり、図6(b)は、本実施の形態による出力位置決定処理で利用されるタッチ位置テーブルを示す図である。MCU40は、アクティブペン2又は指4のそれぞれについて上述した処理によって1以上の位置を検出した後、ホストプロセッサ32に出力する位置を決定するために、これらのテーブルを利用する。
ペン位置テーブルは、図6(a)に示すように、候補ペン位置cP[i]と、確定ペン位置fP[i]と、有効フラグとを対応付けて記憶するテーブルである。一方、タッチ位置テーブルは、候補タッチ位置cT[j]と、確定タッチ位置fT[j]と、有効フラグと、領域種別とを対応付けて記憶するテーブルである。ただし、i,jはそれぞれ、0以上の整数である。また、候補ペン位置cP[i]は、図3のステップS2で検出されたアクティブペン2の位置であり、候補タッチ位置cT[j]は、図3のステップS7で生成された全体検出データにより示される指4の位置である。その他のパラメータについては、以下の説明の中で説明する。
ここで、出力位置決定処理の内容を具体的に説明する前に、この処理の考え方について、図1を再度参照しながら、詳細に説明する。
図1に示す例では、アクティブペン2、指4、アクティブペン2を保持する手5という3種類の物体がタッチ面3aに接触している。指4の位置検出処理では、本来であればこのうち指4のみが検出されることが好ましいが、アクティブペン2及び手5も検出されてしまう可能性がある。これは、センサ電極30X,30Yにおけるキャパシタンスの変化に、アクティブペン2又は手5とセンサ電極30X,30Yに形成されたキャパシタンスによるセンサ電極30X,30Yでのキャパシタンスの変化が含まれ得るからである。一方、アクティブペン2の位置検出処理では、本来であればアクティブペン2のみが検出されることが好ましいが、手5も検出されてしまう可能性がある。これは、アクティブペン2のペン先からタッチ面3aに至るルート(図1の矢印A)だけでなく、手5を経由するルート(図1の矢印B)も通って、アクティブペン2からタブレット3にダウンリンク信号DSが伝達されてしまうからである。
MCU40は、図3のステップS5〜S7に示した処理(図2のステップS105に示した処理でもよい)により1以上の候補タッチ位置を取得した後、まず各候補タッチ位置の広さ(キャパシタンスの変化量が所定量以上である領域の広さ)を判定する。そして、判定した広さが所定サイズ以上である候補タッチ位置を出力対象から除外する。図1の例では、ここで手5の接触位置が除外されることになる。次いで、残りの候補タッチ位置のそれぞれについて、ペン位置テーブルを参照することにより直前のアクティブペン2の位置検出処理においてアクティブペン2の位置として検出されていたか否かを判定し、検出されていた候補タッチ位置を出力対象から除外する。図1の例では、ここでアクティブペン2の接触位置が除外されることになる。こうして最後まで残った候補タッチ位置が、図3のステップS9でホストプロセッサ32に出力される位置となる。これによれば、手5の接触位置及びアクティブペン2の接触位置が出力対象から除外されるので、指4の位置のみを正しく選別して出力することが可能になる。
一方、MCU40は、図3のステップS2に示した処理により1以上の候補ペン位置を取得した後、取得した1以上の候補ペン位置のそれぞれについて、タッチ位置テーブルを参照することにより直前の指4の位置検出処理において指4又は手5の位置として検出されていたか否かを判定する。そして、手5の位置として検出されていたと判定した候補ペン位置を出力対象から除外する。図1の例では、ここで手5の接触位置が除外されることになる。ここで除外されなかった候補ペン位置、すなわち、検出されていないと判定した候補ペン位置、及び、指4として検出されていたと判定した候補ペン位置が、図3のステップS4でホストプロセッサ32に出力される位置となる。これによれば、手5の接触位置が出力対象から除外されるので、アクティブペン2の位置のみを正しく選別して出力することが可能になる。
このように、本実施の形態による位置検出処理によれば、アクティブペン2及び指4の位置を正しく選別し、ホストプロセッサ32に出力することが可能になる。以下、ペン位置テーブル及びタッチ位置テーブルを用いてMCU40が行う出力位置決定処理の具体的な内容について、詳しく説明する。
図7及び図8はそれぞれ、ペン位置テーブル及びタッチ位置テーブルを用いてMCU40が行う出力位置決定処理の一例を示す図である。
図7は、アクティブペン2の位置検出が先行した場合におけるペン位置テーブル及びタッチ位置テーブルの変化の一例を、時系列で示したものである。この例によるMCU40は、1回目のアクティブペン2の位置検出処理を行った結果として、2つの候補ペン位置cP[0],cP[1]をペン位置候補テーブルに格納する。そして、対応する確定ペン位置fP[0],fP[1]のそれぞれに候補ペン位置cP[0],cP[1]を設定し、それぞれの有効フラグを「有効」に設定する。MCU40は、こうして「有効」を設定した確定ペン位置fP[0],fP[1]のそれぞれを、アクティブペン2の検出位置としてホストプロセッサ32に供給する。ただし、この段階では、ホストプロセッサ32への検出位置の供給を行わないこととしてもよい。
次にMCU40は、1回目の指4の位置検出処理を行い、その結果として、3つの候補タッチ位置cT[0]〜cT[2]をタッチ位置候補テーブルに格納する。そしてまず、各候補タッチ位置cT[0]〜cT[2]の広さ(キャパシタンスの変化量が所定量以上である領域の広さ)を検出する。ここでは、候補タッチ位置cT[1]についてのみ所定サイズ以上の広さが検出され、他の候補タッチ位置cT[0],cT[2]については所定サイズ未満の広さが検出されたとすると、MCU40は、確定タッチ位置fT[1]に候補タッチ位置cT[1]を設定しつつ、対応する有効フラグを「無効」とし、さらに、対応する領域種別に「パーム(掌の意)」を設定する。
次いでMCU40は、所定サイズ未満の広さが検出された候補タッチ位置cT[0],cT[2]のそれぞれについて、ペン位置候補テーブルに格納されている確定ペン位置fP[0],fP[1]のそれぞれと略等しいか否かを判定する。ここでいう「略等しい」とは、一方の位置と他方の位置の間の距離がタッチ面3aの広さに比べて十分小さい所定値以下であることをいう。この所定値の具体的な値は、例えば数画素分の長さとすることが好ましい。
図7の例では、候補タッチ位置cT[0]が確定ペン位置fP[0]に略等しいと判定され、候補タッチ位置cT[2]は確定ペン位置fP[0],fP[1]のいずれとも等しくないと判定される。この場合、MCU40は、確定ペン位置fP[2]に候補タッチ位置cT[2]を設定するとともに、対応する有効フラグを「有効」とし、さらに、対応する領域種別に「指」を設定する。一方、確定ペン位置fP[0]には何も設定せず(初期値であるNULLのままとし)、対応する有効フラグを「無効」とする。確定ペン位置fP[0]に対応する領域種別については、初期値のまま(何も設定しないまま)とする。
MCU40は、以上のようにしてタッチ位置候補テーブルを設定した後、対応する有効フラグが「有効」となっている確定タッチ位置fT[2]のみを、指4の検出位置としてホストプロセッサ32に供給する。確定ペン位置fP[0]の近傍に位置し、かつ、検出された上記広さが上記所定サイズ未満である候補タッチ位置cT[0]については、ホストプロセッサ32に供給されないことになる。
次にMCU40は、ペン位置候補テーブルを一度リセットした後、2回目のアクティブペン2の位置検出処理を行う。ここでは、アクティブペン2、指4、手5のいずれもタッチ面3a上で移動していないとすると、位置検出の結果として、1回目と同じく2つの候補ペン位置cP[0],cP[1]がペン位置候補テーブルに格納されることになる。
そしてMCU40は、取得した候補ペン位置cP[0],cP[1]のそれぞれについて、タッチ位置候補テーブルに格納されている確定タッチ位置fT[0]〜fT[2]のそれぞれと略等しいか否かを判定する。なお、図7の例では、この時点で確定タッチ位置fT[0]にNULLが設定されているので、実質的には確定タッチ位置fT[1],fT[2]のそれぞれと略等しいか否かの判定となる。
図7の例では、候補ペン位置cP[1]が確定タッチ位置fT[1]に略等しいと判定され、候補ペン位置cP[0]は確定タッチ位置fT[0]〜fT[2]のいずれとも等しくないと判定される。この場合、MCU40はまず、確定ペン位置fP[0]に候補ペン位置cP[0]を設定するとともに、対応する有効フラグを「有効」とする。一方、候補ペン位置cP[1]については、対応する確定タッチ位置fT[1]の領域種別が「パーム」と「指」のいずれであるかを判定する。そして、判定の結果が「パーム」であれば、確定ペン位置fP[1]にNULLを設定するとともに、対応する有効フラグを「無効」とする。一方、判定の結果が「指」であれば、確定ペン位置fP[1]に候補ペン位置cP[1]を設定するとともに、対応する有効フラグを「有効」とする。図7の例では、確定タッチ位置fT[1]の領域種別が「パーム」であるので、対応する確定ペン位置fP[1]にNULLが設定されている。
図8は、指4の位置検出が先行した場合におけるペン位置テーブル及びタッチ位置テーブルの変化の一例を、時系列で示したものである。この例によるMCU40は、1回目の指4の位置検出処理を行った結果として、3つの候補タッチ位置cT[0]〜cT[2]をタッチ位置候補テーブルに格納する。続いてMCU40は、各候補タッチ位置cT[0]〜cT[2]の広さ(キャパシタンスの変化量が所定量以上である領域の広さ)を検出する。ここでは、図7の例と同じく候補タッチ位置cT[1]についてのみ所定サイズ以上の広さが検出されたとすると、MCU40はまず、確定タッチ位置fT[1]に候補タッチ位置cT[1]を設定しつつ、対応する有効フラグを「無効」とし、さらに、対応する領域種別に「パーム」を設定する。一方、他の2つの候補タッチ位置cT[0],cT[2]については、確定タッチ位置fT[0],fT[2]にそれぞれ候補タッチ位置cT[0],cT[2]を設定しつつ、対応する有効フラグを「有効」とし、さらに、対応する領域種別に「指」を設定する。MCU40は、こうして「有効」を設定した確定タッチ位置fT[0],fT[2]のそれぞれを、指4の検出位置としてホストプロセッサ32に供給する。ただし、この段階では、ホストプロセッサ32への検出位置の供給を行わないこととしてもよい。
次にMCU40は、1回目のアクティブペン2の位置検出処理を行い、その結果として、2つの候補ペン位置cP[0],cP[1]をペン位置候補テーブルに格納する。そしてMCU40は、取得した候補ペン位置cP[0],cP[1]のそれぞれについて、タッチ位置候補テーブルに格納されている確定ペン位置fT[0]〜fT[2]のそれぞれと略等しいか否かを判定する。
図8の例では、候補ペン位置cP[0]が確定タッチ位置fT[0]に略等しいと判定され、候補ペン位置cP[1]が確定タッチ位置fT[1]に略等しいと判定されることになる。次いでMCU40は、確定タッチ位置fT[0],fT[1]それぞれの領域種別が「パーム」と「指」のいずれであるかを判定する。図8の例では、確定タッチ位置fT[0]の領域種別は「指」であると判定され、確定タッチ位置fT[1]の領域種別は「パーム」であると判定されることになる。
MCU40は、対応する確定タッチ位置fT[1]の領域種別が「パーム」であると判定した候補ペン位置cP[1]について、確定ペン位置fP[1]にNULLを設定するとともに、対応する有効フラグを「無効」とする。一方、対応する確定タッチ位置fT[0]の領域種別が「指」であると判定した候補ペン位置cP[0]については、確定ペン位置fP[0]に候補ペン位置cP[0]を設定するとともに、対応する有効フラグを「有効」とする。この処理は、指4の位置検出処理に誤りがあったとみなすことを意味する。MCU40は、こうして「有効」を設定した確定ペン位置fP[0]を、アクティブペン2の検出位置としてホストプロセッサ32に供給する。
次にMCU40は、タッチ位置候補テーブルを一度リセットした後、2回目の指4の位置検出処理を行う。ここでは、アクティブペン2、指4、手5のいずれもタッチ面3a上で移動していないとすると、位置検出の結果として、1回目と同じく3つの候補タッチ位置cT[0]〜cT[2]がタッチ位置候補テーブルに格納されることになる。
候補タッチ位置cT[0]〜cT[2]をタッチ位置候補テーブルに格納したMCU40は、次に、各候補タッチ位置cT[0]〜cT[2]の広さ(キャパシタンスの変化量が所定量以上である領域の広さ)を検出する。ここでは、1回目の検出時と同様に候補タッチ位置cT[1]についてのみ所定サイズ以上の広さが検出されたとすると、確定タッチ位置fT[1]に候補タッチ位置cT[1]を設定しつつ、対応する有効フラグを「無効」とし、さらに、対応する領域種別に「パーム」を設定する。この処理は、1回目の指4の位置検出後に行った処理と同じである。
次いでMCU40は、残りの候補タッチ位置cT[0],cT[2]のそれぞれについて、ペン位置候補テーブルに格納されている確定ペン位置fP[0],fP[1]のそれぞれと略等しいか否かを判定する。図8の例では、この判定により、候補タッチ位置cT[0]が確定ペン位置fP[0]に略等しいと判定され、候補タッチ位置cT[2]は確定ペン位置fP[0],fP[1]のいずれとも等しくないと判定される。この場合、MCU40は、確定ペン位置fP[2]に候補タッチ位置cT[2]を設定するとともに、対応する有効フラグを「有効」とし、さらに、対応する領域種別に「指」を設定する。一方、確定ペン位置fP[0]には何も設定せず(初期値であるNULLのままとし)、対応する有効フラグを「無効」とする。確定ペン位置fP[0]に対応する領域種別については、初期値のまま(何も設定しないまま)とする。
MCU40は、以上のようにしてタッチ位置候補テーブルを設定した後、対応する有効フラグが「有効」となっている確定タッチ位置fT[2]のみを、指4の検出位置としてホストプロセッサ32に供給する。
以上説明したように、本実施の形態による出力位置決定処理によれば、ペン位置決定処理の中で手5の接触位置を出力対象から除外することができ、パッシブポインタ位置決定処理の中でアクティブペン2及び手5の接触位置を出力対象から除外することができる。したがって、候補ペン位置及び候補タッチ位置の段階ではアクティブペン2の接触位置と指4の接触位置とが相互に誤認識されてしまっていたとしても、最終的には、アクティブペン2及び指4の位置を正しくホストプロセッサ32に出力することが可能になる。
次に、MCU40の処理フローを参照しながら、ペン位置テーブル及びタッチ位置テーブルを用いてMCU40が行う出力位置決定処理について、再度別の観点からより詳しく説明する。
図9及び図10は、図3に示したフロー図の詳細を示す図である。初めに図9を参照すると、MCU40はまず、アクティブペン2の検出を実行し(ステップS21)、その結果としてアクティブペン2が検出されたか否かを判定する(ステップS22)ことによって、図3に示したステップS2の処理を実行する。ステップS22で検出されなかったと判定した場合には、図10のステップS51に移って指4の位置検出処理を開始する。
一方、ステップS22で検出されたと判定した場合、MCU40は、図3のステップS3に示したペン位置決定処理を実行する。具体的には、まずペン位置テーブルをリセットする(ステップS31)。リセット後のペン位置テーブルは、候補ペン位置cP[i]が1つも設定されていない状態となる。続いて、MCU40は、ステップS21において検出されたI個(Iは1以上の整数)の候補ペン位置cP[i](i=0〜I−1)を取得し、ペン位置テーブルに設定する(ステップS32)。そして、すべてのiについて、順次、ステップS34〜S36の処理を行う(ステップS33)。
具体的に説明すると、MCU40はまず、候補ペン位置cP[i]と等しい確定タッチ位置fT[j]がタッチ位置テーブルに格納されているか否かを判定する(ステップS34)。その結果、格納されていると判定した場合には、候補ペン位置cP[i]と略等しい確定タッチ位置fT[j]についてタッチ位置テーブルに格納されている領域種別が「指」「パーム」のいずれであるかを判定する(ステップS35)。
ステップS34で格納されていないと判定した場合、及び、ステップS35で「指」であると判定した場合、MCU40は、確定ペン位置fP[i]に候補ペン位置cP[i]を設定するとともに、対応する有効フラグに「有効」を設定する(ステップS36)。一方、ステップS35で「パーム」であると判定した場合にはステップS36の処理を行わず、結果として、対応する確定ペン位置fP[i]にはNULL、対応する有効フラグには「無効」がそれぞれ設定される。
すべてのiについてステップS34〜S36の処理が終了した場合、MCU40は、対応する有効フラグが「有効」となっている確定ペン位置fP[i]のみをアクティブペン2の検出位置としてホストプロセッサ32に出力し(ステップS4)、その後、指4の位置検出処理を開始する。
具体的には、図10に示すように、指4の検出を実行し(ステップS51)、その結果として指4が検出されたか否かを判定する(ステップS52)ことによって、図3に示したステップS5〜S7の処理を実行する。なお、ここではステップS5〜S7の処理を実行することとしているが、図2のステップS105の処理を実行することとしてもよい。ただし、この場合には、アクティブペン2の検出レートを確保するため、ステップS2〜S4の処理を2回連続して行う必要がある。ステップS52で検出されなかったと判定した場合には、図9のステップS21に移ってアクティブペン2の位置検出処理を開始する。
一方、ステップS52で検出されたと判定した場合、MCU40は、図3のステップS8に示したパッシブポインタ位置決定処理を実行する。具体的には、まずタッチ位置テーブルをリセットする(ステップS81)。リセット後のタッチ位置テーブルは、候補タッチ位置cT[j]が1つも設定されていない状態となる。続いて、MCU40は、ステップS51において検出されたJ個(Jは1以上の整数)の候補タッチ位置cT[j](j=0〜J−1)を取得し、タッチ位置テーブルに設定する(ステップS82)。そして、すべてのjについて、順次、ステップS84〜S87の処理を行う(ステップS83)。
具体的に説明すると、MCU40はまず、候補タッチ位置cT[j]の面積を算出する。ここで算出される面積は、候補タッチ位置cT[j]を含み、かつ、キャパシタンスの変化量が所定量以上であった領域の面積である。そして、算出した面積が所定サイズ以上であるか否かを判定する(ステップS84)。
ステップS84で所定サイズ以上であると判定した場合(すなわち、面積=大であると判定した場合)、MCU40は、確定タッチ位置fT[j]に候補タッチ位置cT[j]を設定するとともに、対応する有効フラグに「無効」、対応する領域種別に「パーム」をそれぞれ設定する(ステップS85)。
一方、ステップS84で所定サイズ以上でないと判定した場合(すなわち、面積=小であると判定した場合)、MCU40は、続いて候補タッチ位置cT[j]と略等しい確定ペン位置fP[i]がペン位置テーブルに格納されているか否かを判定する(ステップS86)。その結果、格納されていないと判定した場合、MCU40は、確定タッチ位置fT[j]に候補タッチ位置cT[j]を設定するとともに、対応する有効フラグに「有効」、対応する領域種別に「指」をそれぞれ設定する(ステップS87)。一方、ステップS86で格納されていると判定した場合、MCU40はステップS87の処理を行わず、結果として、対応する確定タッチ位置fT[j]にはNULL、対応する有効フラグには「無効」がそれぞれ設定される。
すべてのiについてステップS15〜S18の処理が終了した場合、MCU40は、対応する有効フラグが「有効」となっている確定タッチ位置fT[j]のみを指4の検出位置としてホストプロセッサ32に出力し(ステップS9)、その後、ステップS2に戻ってアクティブペン2の位置検出処理を開始する。
以上、ペン位置テーブル及びタッチ位置テーブルを用いてMCU40が行う出力位置決定処理について、MCU40の処理フローを参照しながら、再度より詳しく説明した。ここで、本実施の形態による出力位置決定処理には、各種の変形例が考えられる。そこで以下では、本実施の形態による出力位置決定処理の変形例として、第1〜第4の変形例を挙げて説明することとする。
第1の変形例は、ペン位置決定処理に関するものである。本変形例によるMCU40は、ダウンリンク信号DSのレベルが所定レベル以上である位置が複数検出された場合に、最もダウンリンク信号DSのレベルが大きい位置を、アクティブペン2の位置としてホストプロセッサ32に出力するよう構成される。図7の例で言えば、ユーザの手5を通じて受信されたダウンリンク信号DSにより検出された候補ペン位置cP[1]におけるダウンリンク信号DSのレベルは、通常、アクティブペン2のペン電極から直接受信されたダウンリンク信号DSにより検出された候補ペン位置cP[0]におけるダウンリンク信号DSのレベルに比べて小さくなる。したがって、MCU40は、候補ペン位置cP[0]をアクティブペン2の位置としてホストプロセッサ32に出力することになる。この結果は、上記実施の形態によるものと同じである。したがって、本変形例によっても、MCU40は、アクティブペン2の位置を正しくホストプロセッサ32に出力できると言える。
第2の変形例も、ペン位置決定処理に関するものである。本変形例によるMCU40は、ダウンリンク信号DSのレベルが所定レベル以上である位置が離れて複数検出された場合に、該所定レベル以上であるダウンリンク信号DSのレベルが連続してなる領域の面積に基づいて、アクティブペン2の位置を検出するよう構成される。より具体的に言えば、この面積が小さい方の位置を、アクティブペン2の位置として検出する。図7の例で言えば、ユーザの手5を通じて受信されたダウンリンク信号DSにより検出された候補ペン位置cP[1]にかかる上記面積は、アクティブペン2のペン電極から直接受信されたダウンリンク信号DSにより検出された候補ペン位置cP[0]にかかる上記面積に比べて大きくなる。したがって、MCU40は、候補ペン位置cP[0]をアクティブペン2の位置としてホストプロセッサ32に出力することになる。この結果も、上記実施の形態によるものと同じである。したがって、本変形例によっても、MCU40は、アクティブペン2の位置を正しくホストプロセッサ32に出力できると言える。
第3の変形例は、パッシブポインタ位置決定処理に関するものである。本変形例によるMCU40は、直前のアクティブペン2の位置検出処理によりアクティブペン2の位置が検出されているか否かに応じて、図10に示したステップS15における判定(パーム判定)の基準となる所定サイズを変更するよう構成される。より具体的には、直前のペン検出ステップ(図3を参照)によりペン位置が1つ以上出力された場合に、上記所定サイズを縮小するよう構成される。例えば、直前のアクティブペン2の位置検出処理によりアクティブペン2の位置が検出されていない場合には所定サイズを20mmとし、直前のアクティブペン2の位置検出処理によりアクティブペン2の位置が1つ以上検出されている場合には所定サイズを16mmとすることが考えられる。この変更処理は、アクティブペン2が検出されている場合に、アクティブペン2と手5の区別をより迅速に行えるようにするためのものである。つまり、手5がタッチ面3aに接触するには若干ではあるもののある程度の時間を要し、その時間内には手5とタッチ面3aとの接触面積が小さいタイミングが存在し得るので、指4の位置検出処理において面積の判定によりパームか指かを判定する際に、手5の接触位置を指4の接触位置と誤判定してしまうことが発生し得る。本変形例によれば、上記のように所定サイズを縮小するので、アクティブペン2が検出されている場合にそのような誤判定が起きる可能性を小さくすることが可能になる。
ここで、上述したアクティブペン2の位置検出処理によれば、アクティブペン2がタッチ面3aに接触していない状態(ホバー状態)においても、アクティブペン2の位置が検出され得る。これは、ホバー状態においても、アクティブペン2がある程度以上タッチ面3aに近づいていれば、MCU40はダウンリンク信号DSを検出できるからである。第3の変形例によれば、タッチ面3aに接近しつつあるアクティブペン2がホバー状態であるうちに上記所定サイズを縮小しておくことができるので、上記誤判定が起きる可能性が低減された状態で、アクティブペン2がタッチ面3aに接触するタイミングを迎えることが可能になる。
図11は、第4の変形例によるセンサコントローラ31が実行するポインタの位置検出処理を示すフロー図である。同図には、図9に示したフロー図の変形例を示している。
図11と図9の違いは、ステップS35で「パーム」であると判定した後に、ステップS37を実行する点である。詳しく説明すると、本変形例によるMCU40は、ステップS35で今回検出したペン位置(具体的には、候補ペン位置cP[i])がパーム領域の近傍に存在するか否か(すなわち、候補ペン位置cP[i]と略等しい確定タッチ位置fT[j]についてタッチ位置テーブルに格納されている領域種別が「指」「パーム」のいずれであるか)を判定し、パーム領域の近傍に存在すると判定した場合(すなわち、領域種別が「パーム」であると判定した場合)に、前回のペン検出ステップで出力したデータResに含まれていた筆圧データにより示される筆圧(前回検出した筆圧)が有効(筆圧>0)及び無効(筆圧=0)のいずれであったかを判定する(ステップS37)。そして、有効と判定した場合にはステップS36に処理を移し、候補ペン位置cP[i]を確定ペン位置fP[i]に設定するとともに、対応する有効フラグに「有効」を設定する(ステップS36)。一方、無効と判定した場合にはステップS36の処理を行わない。この場合、、対応する確定ペン位置fP[i]にはNULL、対応する有効フラグには「無効」がそれぞれ設定されることになる。
第4の変形例によれば、ユーザがアクティブペン2による入力操作を行う際に、パーム領域の近傍で描画線が消えてしまうことを防止することができる。すなわち、図9の処理フローによれば、ユーザがアクティブペンによる入力操作を行う際にペン先がパーム領域に差し掛かると、ステップS35により「パーム」と判定され、確定ペン位置fP[i]に候補ペン位置cP[i]が設定されなくなる。そうすると、ホストプロセッサ32に座標が出力されなくなるので、描画線が途切れることになる。しかしながら、ペン先がパーム領域に近づいたとしても、ユーザが引き続き入力操作を行っている以上、描画線の途切れは発生しないことが好ましい。第4の変形例によれば、ステップS37において前回検出した筆圧が有効及び無効のいずれであるかを判定しているので、ユーザが引き続き入力操作を行っている場合であるか否かを判定することができる。その結果、ユーザが引き続き入力操作を行っている場合にホストプロセッサ32への座標出力を継続することができるので、ユーザがアクティブペン2による入力操作を行う際に、パーム領域の近傍で描画線が消えてしまうことを防止することが可能になる。
次に、1/Nの処理について、詳細に説明する。以下では、初めに1/Nの処理に対応する背景技術の課題及び1/Nの処理の導入によって奏される効果について再度より詳しく説明した後、1/Nの処理の内容について詳しく説明する。
図12(a)は、本発明の背景技術によるポインタの位置検出処理にかかる制御シーケンスを示す図であり、図12(b)は、本実施の形態によるポインタの位置検出処理にかかる制御シーケンスを示す図である。これらの図において、「T」はMCU40が指4の位置検出処理を行う期間を示し、「P」はMCU40がアクティブペン2の位置検出処理を行う期間を示す。
図12(a)に示すように、本発明の背景技術によるMCU40は、1回あたり3ミリ秒を要するアクティブペン2の位置検出処理を2回続けて行った後、1回あたり2ミリ秒を要する指4の位置検出処理を1回行う、というリズムで、指4とアクティブペン2の位置検出処理を繰り返すよう構成される。この場合の指4の検出レートは125(=1/8×1000)回/秒となり、アクティブペン2の検出レートは250(=2/8×1000)回/秒となる。このようにすることで、アクティブペン2の検出レートを向上させることができる。しかし、この位置検出処理によれば、アクティブペン2の検出間隔が一定でないので、例えばセンサコントローラ31から順次出力されるアクティブペン2の座標データが時間的に等間隔に送信されていることを期待して動作する描画アプリケーションなどにおいて、描画結果が不自然になってしまうという問題が発生する。
これに対し、本実施の形態によるMCU40は、図12(b)に示すように、250(=1/4×1000)回/秒のレート(第1の検出レート)で指4(第1のポインタ)の位置検出処理(第1検出処理)の1/Nの処理を実行する。図12(b)ではN=2であり、この場合、この1/Nの処理を実行するのに要する時間は、図12(a)の例による指4の位置検出処理が必要とする時間の1/2、すなわち1ミリ秒となる。そして、MCU40は、この1/Nの処理に基づいて指4が存在するか否かを示す部分検出データを取得し、図5に示したシフトレジスタ40aに保持する(ここまで、第1の検出ステップ)。なお、シフトレジスタ40aはN回分の部分検出データを記憶可能に構成されており、部分検出データを新たにシフトレジスタ40aに書き込む際には、N回前に取得した部分検出データは消去される。
さらに、MCU40は、部分検出データをメモリに新たに保持する都度、それまでにメモリに保持されているN−1個分の部分検出データと、新たに保持された部分検出データとを合成し、タッチ面3aの全体について指4が存在するか否かを示す全体検出データを生成する(合成ステップ)。生成された全体検出データは、図5を参照して説明した相関値の算出処理(相関値算出ステップ)を経て、MCU40からホストプロセッサ32に対し、パッシブポインタ位置として上記第1の検出レート(250回/秒)で出力される(レポートステップ)。
1/Nの処理は所定のインターバル(具体的には、3ミリ秒のインターバル)で実行され、このインターバルには、アクティブペン2(第2のポインタ)の位置検出処理(第2検出処理)の全部が1回だけ実行される(第2の検出ステップ)。したがって、アクティブペン2の位置の検出レート(第2の検出レート)は、上記第1の検出レート(250回/秒)に等しい値となる。アクティブペン2の検出が等間隔で実行されるにもかかわらず、この検出レートは、図12(a)の例によるアクティブペン2の検出レートと同じ値となっている。
このように、本実施の形態によるポインタの位置検出処理によれば、指4の位置検出処理をN回に分けて実行するので、アクティブペン2及び指4双方の検出レートを維持しつつ、アクティブペン2の検出を等間隔で実行することが可能になる。したがって、上述した問題が解消されることになる。以下、1/Nの処理の内容について詳しく説明する。
以下の説明では、1/Nの処理の内容について、第1〜第5の例を挙げて説明する。第1〜第4の例にかかる1/Nの処理は、タッチ面3a全体の1/Nを検出(すなわち、センサ電極30Xとセンサ電極30Yの交点におけるキャパシタンスの変化を検出)するというもので、例えば複数のセンサ電極30X(第1の電極)の略1/N(後述する図14、図16を参照)、又は、例えば複数のセンサ電極30Y(第2の電極)の略1/N(後述する図15、図17を参照)を用いる。なお、略1/Nとは、1/Nが整数とならない場合に、整数となるよう各回において用いるセンサ電極30X又はセンサ電極30Yの本数を調整することを意味する。一方、第5の例にかかる1/Nの処理は、指検出用信号FDSの1/N部分(具体的には、上述した信号s1〜sKのそれぞれを構成するN×M個(M=K/N)のパルスのうちのM個)を用いる(後述する図18を参照)というものである。以下、それぞれについて詳しく説明する。なお、以下では、N=2であり、かつ、16×16のセンサ30を用いる場合を例に取って説明するが、N≧3である場合や、センサ30のサイズが16×16でない場合についても同様である。
まず図13は、16×16のセンサ30とともに用いられる指検出用信号FDSの一例を示す図である。同図に示すように、この場合の指検出用信号FDSは、16個のパルス群p1〜p16によって構成される。また、各パルス群p1〜p16はそれぞれ、16個の「1」又は「−1」で表されるパルスを含んで構成される。
MCU40及びロジック部41は、上述したように、1つのセンサ電極30Yを選択し、送信部42に各パルス群pn(n=1〜16)を順次各センサ電極30Xに入力させる、という動作を各センサ電極30Yについて繰り返すよう構成される。したがって、1つのパルス群pnの処理に要する時間をtとすると、指4の位置検出処理(ここでは、図2に示したステップS105において実行される位置検出処理)を行うために必要な時間は、t×16(=パルス群pnの総数)×16(=センサ電極30Yの総数)となる。
図14は、1/Nの処理の内容の第1の例を示す図であり、図14(a)は1回目の処理、図14(b)は2回目の処理をそれぞれ表している。この例では、1回目と2回目のそれぞれにおいて、互いに異なる8個のセンサ電極30Xを用いて1/Nの処理が行われる。より具体的には、X方向に整列する16個のセンサ電極30Xを1つおきに選択して1回目の処理で使用し、残りのセンサ電極30Xを2回目の処理で使用するようにしている。
この第1の例によれば、1回の処理で指検出用信号FDSの入力対象となるセンサ電極30Xの本数が8となるので、8個のパルス群p1〜p8のみで指検出用信号FDSを構成することが可能になる。したがって、1回の処理を行うために必要な時間はt×8(=パルス群pnの総数)×16(=センサ電極30Yの総数)となるので、図2又は図12(a)の例による位置検出処理に比べて1/2の時間で、1回の処理を完了することが可能になる。
また、第1の例によれば、1回目と2回目ですべてのセンサ電極30Xを網羅することになるので、MCU40は、1回目の処理の結果としてシフトレジスタ40a(図5を参照)に保持した部分検出データと、2回目の処理の結果としてシフトレジスタ40aに保持した部分検出データとを合成することにより、タッチ面3aの全体について指4が存在するか否かを示す全体検出データを生成することが可能になる。
さらに、第1の例によれば、1回目と2回目の間に順序性がないことから、新たに部分検出データを取得した場合に、MCU40は、1/Nの処理を行う都度、シフトレジスタ40aに格納済みのN−1回分の部分検出データとの合成により全体検出データを生成することが可能になる。つまり、1回目の処理の結果としてシフトレジスタ40aに保持した部分検出データと、その直後に実行した2回目の処理の結果としてシフトレジスタ40aに保持した部分検出データとを合成することだけでなく、2回目の処理の結果としてシフトレジスタ40aに保持した部分検出データと、その直後に実行した1回目の処理の結果としてシフトレジスタ40aに保持した部分検出データとを合成することによっても、全体検出データを生成することが可能になる。したがって、図2又は図12(a)の例による指4の検出レートに比べて2倍の検出レートで、指4の検出結果を出力することが可能になる。
図15は、1/Nの処理の内容の第2の例を示す図であり、図15(a)は1回目の処理、図15(b)は2回目の処理をそれぞれ表している。この例では、1回目と2回目のそれぞれにおいて、互いに異なる8個のセンサ電極30Yを用いて1/Nの処理が行われる。より具体的には、Y方向に整列する16個のセンサ電極30Yを1つおきに選択して1回目の処理で使用し、残りのセンサ電極30Yを2回目の処理で使用するようにしている。
この第2の例によれば、1回の処理で選択の対象となるセンサ電極30Yの本数が8となる。したがって、1回の処理を行うために必要な時間はt×16(=パルス群pnの総数)×8(=センサ電極30Yの総数)となるので、図2又は図12(a)の例による位置検出処理に比べて1/2の時間で、1回の検出動作を完了することが可能になる。
また、第2の例によっても、1回目と2回目ですべてのセンサ電極30Yを網羅することになるので、第1の例と同様、MCU40は、1回目の処理の結果としてシフトレジスタ40aに保持した部分検出データと、2回目の処理の結果としてシフトレジスタ40aに保持した部分検出データとを合成することにより、タッチ面3aの全体について指4が存在するか否かを示す全体検出データを生成することが可能になる。
さらに、第2の例においても、1回目と2回目の間に順序性がないので、第1の例と同様、MCU40は、図2又は図12(a)の例による指4の検出レートに比べて2倍の検出レートで、指4の検出結果を出力することが可能になる。
図16は、1/Nの処理の内容の第3の例を示す図であり、図16(a)は1回目の処理、図16(b)は2回目の処理をそれぞれ表している。この例では、第1の例と同様、1回目と2回目のそれぞれにおいて、互いに異なる8個のセンサ電極30Xを用いて1/Nの処理が行われる。ただし、本例では、整列する16個のセンサ電極30Xのうちの8本を一端から順に選択して1回目の処理で使用し、残りのセンサ電極30Xを2回目の処理で使用するようにしている。
この第3の例によっても、第1の例と同様の理由により、図2又は図12(a)の例による位置検出処理に比べて1/2の時間で、1回の処理を完了することが可能になる。また、タッチ面3aの全体について指4が存在するか否かを示す全体検出データを生成することが可能になる。さらに、図2又は図12(a)の例による指4の検出レートに比べて2倍の検出レートで、指4の検出結果を出力することが可能になる。
図17は、1/Nの処理の内容の第4の例を示す図であり、図17(a)は1回目の処理、図17(b)は2回目の処理をそれぞれ表している。この例では、第2の例と同様、1回目と2回目のそれぞれにおいて、互いに異なる8個のセンサ電極30Yを用いて1/Nの処理が行われる。ただし、本例では、整列する16個のセンサ電極30Yのうちの8本を一端から順に選択して1回目の処理で使用し、残りのセンサ電極30Yを2回目の処理で使用するようにしている。
この第4の例によっても、第2の例と同様の理由により、図2又は図12(a)の例による位置検出処理に比べて1/2の時間で、1回の処理を完了することが可能になる。また、タッチ面3aの全体について指4が存在するか否かを示す全体検出データを生成することが可能になる。さらに、図2又は図12(a)の例による指4の検出レートに比べて2倍の検出レートで、指4の検出結果を出力することが可能になる。
図18は、1/Nの処理の内容の第5の例を示す図であり、図18(a)は1回目の処理、図18(b)は2回目の処理をそれぞれ表している。この例では、1回目の処理において16個のパルス群p1〜p16のうちの半分のみが使用され、2回目の処理において残りが使用される。より具体的には、1回目の処理においてパルス群p1〜p8が使用され、2回目の処理においてパルス群p9〜p16が使用される。
この第5の例によれば、1回の処理で各センサ電極30Xに入力されるパルスの数は8個のみとなる。したがって、1回の処理を行うために必要な時間がt×8(=パルス群pnの総数)×16(=センサ電極30Yの総数)となるので、図2又は図12(a)の例による位置検出処理に比べて1/2の時間で、1回の検出動作を完了することが可能になる。
また、第5の例によれば、1回目と2回目で16個のパルス群p1〜p16のすべてを網羅することになるので、第1〜第4の例と同様、MCU40は、1回目の処理の結果としてシフトレジスタ40aに保持した部分検出データと、2回目の処理の結果としてシフトレジスタ40aに保持した部分検出データとを合成することにより、タッチ面3aの全体について指4が存在するか否かを示す全体検出データを生成することが可能になる。
さらに、第5の例においても、1回目と2回目の間に順序性がないので、第1〜第4の例と同様、MCU40は、図2又は図12(a)の例による指4の検出レートに比べて2倍の検出レートで、指4の検出結果を出力することが可能になる。
図19及び図20は、第5の例におけるシフトレジスタ40a(図5参照)の具体的な記憶内容の例を示す図である。同図には、理解が容易になるよう、各センサ電極30Yに対応してシフトレジスタ40aの記憶内容を並べて表示している。また、同図においてセンサ30の中に示した数値は、センサ電極30X,30Yの各交点におけるキャパシタンスの値を示している。以下、この図19及び図20を参照しながら、第5の例における全体検出データの生成方法について具体的に説明する。
図19は、1回目の処理が完了した直後におけるシフトレジスタ40aの記憶内容を示している。1回目の処理では、各センサ電極30YについてレベルL1〜L8がシフトレジスタ40aに格納される。あるセンサ電極30Yについての1回目の処理が完了した時点で、シフトレジスタ40aには、図19に示すように、そのセンサ電極30Yについて直前に行われた2回目の処理でシフトレジスタ40aに格納されたレベルL9〜L16が残っている。そこでMCU40は、新たに格納したレベルL1〜L8により表される部分検出データと、シフトレジスタ40a内に残っているレベルL9〜L16により表される部分検出データとを合成して1つの全体検出データとし、この全体検出データを用いて、上述した相関値の算出を行う。これにより、MCU40は、1回目の検出動作が完了した時点で、指4の位置を示す座標をホストプロセッサ32に出力することが可能になる。
図20は、2回目の処理が完了した直後におけるシフトレジスタ40aの記憶内容を示している。2回目の処理では、各センサ電極30YについてレベルL9〜L16がシフトレジスタ40aに格納される。あるセンサ電極30Yについての2回目の処理が完了した時点で、シフトレジスタ40aには、図19に示すように、そのセンサ電極30Yについて直前に行われた1回目の処理でシフトレジスタ40aに格納されたレベルL1〜L8が残っている。そこでMCU40は、新たに格納したレベルL9〜L16により表される部分検出データと、シフトレジスタ40a内に残っているレベルL1〜L8により表される部分検出データとを合成して1つの全体検出データとし、この全体検出データを用いて、上述した相関値の算出を行う。これにより、MCU40は、2回目の検出動作が完了した時点でも、指4の位置を示す座標をホストプロセッサ32に出力することが可能になる。
以上説明したように、本実施の形態によるポインタの位置検出処理によれば、指4の位置検出処理をN回に分けて実行するので、アクティブペン2及び指4双方の検出レートを維持しつつ、アクティブペン2の検出を等間隔で実行することが可能になる。したがって、アクティブペン2の検出間隔が一定でないために、例えばセンサコントローラ31から順次出力されるアクティブペン2の座標データが時間的に等間隔に送信されていることを期待して動作する描画アプリケーションなどにおいて、描画結果が不自然になってしまうという背景技術の問題が解決される。また、本実施の形態による位置検出処理によれば、背景技術よりも高い検出レートで、指4を検出することが可能になる。
次に、本発明の第2の実施の形態による位置検出システム1について、説明する。本実施の形態による位置検出システム1は、第1の実施の形態による位置検出システム1に、上述したゴースト位置の存在によって不要な直線が描画されてしまうことを防止するための機能を追加したものである。以下、第1の実施の形態と同一の構成には同一の符号を付し、第1の実施の形態との相違点に着目して説明する。
図22は、本実施の形態による位置検出システム1の使用状態の一例を示す図である。また、図23は、本実施の形態の背景技術によるホストプロセッサ32の動作を説明する図である。以下では、まずこれら図22及び図23を参照しながら本実施の形態の課題について説明し、その後、本実施の形態によるセンサコントローラ31の動作について説明することにする。
図22に示すように、ユーザは、アクティブペン2による入力操作を行う際に、アクティブペン2を持っている手(以下、右手とする)とは反対側の手(以下、左手とする)をタッチ面3aについている場合がある。この場合において、左手の接触位置(図示したパーム領域Palm)は第1の実施の形態に示した処理によってタッチ位置及びペン位置の両方から除外されることになるが、それとは別に、左腕の下方にペン位置(図示したゴースト位置G)が検出されてしまう場合がある。これは、同図に示す電流経路CR(アクティブペン2のペン電極からセンサ電極30Xを通って左腕に入り、人体を経由してアクティブペン2に戻る電流経路)が形成され、その結果として、左腕の下方でアクティブペン2の送信信号が検出されてしまうことによるものである。なお、図22にはセンサ電極30Xの例を示しているが、センサ電極30Yについても同様である。
ゴースト位置Gで検出される信号のレベルはアクティブペン2の接触位置(図示したペン位置P)で検出される信号のレベルに比べて小さく、また、タブレット3が同時に検出可能なアクティブペン2は通常1本だけであるので、アクティブペン2がタッチ面3aに接触している限り、このゴースト位置Gが問題になることはない。しかしながら、例えばアクティブペン2がタブレット3のベゼル領域3bからタッチ面3a内に、図示した矢印Aに沿って急に移動するような場合、センサコントローラ31は、実際のペン位置Pを検出する前に、ゴースト位置Gを検出してしまうことがある。
図23では、そのような場合に最初に検出されたゴースト位置Gをn−1番目の確定ペン位置fPn−1とし、次いで検出されたペン位置Pをn番目の確定ペン位置fPnとして、それぞれを図示している。こうして確定ペン位置fPn−1,fPnが相次いで検出されると、これらの供給を受けたホストプロセッサ32は、図23に示すように、これらの間に線分Lを描画することになる。この線分Lはユーザが意図したものではないので、線分Lが描画されないようにする必要がある。これが本実施の形態の課題である。以下、この課題を解決するためのセンサコントローラ31の動作について、図24を参照しながら詳しく説明する。
図24は、本実施の形態によるセンサコントローラ31が実行するポインタの位置検出処理を示すフロー図である。同図は、図3に示したペン検出ステップ内にステップS101〜S107を追加したものとなっている。以下、図24とともに図23も再度参照しながら、本実施の形態によるセンサコントローラ31の動作について詳しく説明する。
本実施の形態によるセンサコントローラ31(具体的には、図4に示したMCU40)は、ステップS3でペン位置を決定した後、直前のタッチ検出ステップ(図3参照)で領域種別がパームとされたタッチ位置が検出されていたか否かを判定する(ステップS101)。検出されていないと判定した場合、センサコントローラ31は、決定したペン位置を上述したペン位置テーブルとは別に記憶したうえで(ステップS107)、ステップS4の出力処理を行う。一方、検出されていたと判定した場合のセンサコントローラ31は次に、前回のステップS106で記憶していたペン位置(前回ペン位置)が、検出されていたパーム領域Palmを基準とする所定領域内に位置しているか否かを判定する(ステップS102)。
図23には、この所定領域の一例を示している。センサコントローラ31は、図5を参照して説明した相関値からパーム領域Palmの広がりを取得し、その結果に基づいて、パーム領域Palm内を通過するセンサ電極30X,30Yに対応するタッチ面3a内の十字形の領域(十字領域XR)を取得するよう構成される。上記所定領域は、こうして取得された十字領域XRによって構成される。
図24に戻り、続いてセンサコントローラ31は、今回のステップS3において決定されたペン位置(今回ペン位置)に対応するアクティブペン2の送信信号(具体的には、上述した位置信号)のレベルを所定の閾値と比較し、比較の結果に応じて、検出したペン位置を出力するか否かを決定する(ステップS103)。具体的には、送信信号のレベルが所定の閾値より低いと判定した場合(低)には、ステップS4の後に処理を進め、図3に示したタッチ検出ステップに移行する。一方、送信信号のレベルが所定の閾値以上であると判定した場合(高)には、ステップS104に処理を進める。ここで、ステップS103で使用する閾値は、MCU40がアクティブペン2の位置を検出するために使用する上記所定値より小さな値に設定される。ステップS103の処理はペン位置を検出するための閾値を事後的に上昇させる処理に他ならず、これにより、十字領域XR内においてゴースト位置Gが検出される可能性を低減することが可能になる。
次にセンサコントローラ31は、前回ペン位置と今回ペン位置との間の距離を算出する。この距離は、図23においては、確定ペン位置fPn−1,fPn間の距離に相当する。そしてセンサコントローラ31は、この距離が所定値を超えているか(長)否か(短)を判定する(ステップS104)。そして、超えていると判定した場合には、アクティブペン2がタッチ面3aから離れたことを示すペンアップ情報OUT−PROXYと、アクティブペン2がタッチ面3aに接触したことを示すペンダウン情報IN−PROXYとを順次ホストプロセッサ32に出力する(ステップS105,S106)。ステップS104で超えていないと判定した場合、及び、ステップS106が終了した後には、センサコントローラ31は、決定したペン位置を上述したペン位置テーブルとは別に記憶したうえで(ステップS107)、ステップS4の出力処理を行う。
以上説明したように、本実施の形態によるポインタの位置検出処理によれば、今回検出したペン位置と前回検出したペン位置との間の距離が所定値を超えている場合に、ペンアップ情報OUT−PROXYをホストプロセッサ32に対して出力することができる。したがって、ホストプロセッサ32は、今回ペン位置と前回ペン位置とを異なるストロークに属するものと判断するので、ゴースト位置Gの存在によって、図23に示した線分Lのような不要な線分が描画されてしまうことが防止される。
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
例えば、本実施の形態によるポインタの位置検出処理は、ここまでで説明したもの以外の態様でも、好適に実施可能である。以下、具体的な例を挙げて説明する。
図21(a)は、本実施の形態の第1の変形例による位置検出処理にかかる制御シーケンスを示す図である。本変形例によるMCU40は、所定のインターバルで1/2の処理を行い、各処理で得られた部分検出データと、その直前の処理で得られた部分検出データとを合成することにより、2倍の検出レートで全体検出データFM1、FM2、FM3、FM4・・・を生成するよう構成される。なお、上記インターバルには、アクティブペン2の位置検出処理又は画素駆動動作を実行することとしてもよいし、アクティブペン2の位置検出処理と画素駆動動作を時分割で実行することとしてもよい。
第1の変形例に関連して、MCU40は、指4の位置検出処理を上記所定のインターバルで実行するか否かを判定し、実行すると判定した場合にのみ、指4の位置検出処理をN回に分けて実行することとしてもよい。実行しないと判定した場合には、図3に示したステップS5〜S7を図2に示したステップS103によって置き換えることとなる。こうすることで、アクティブペン2の位置検出処理又は画素駆動動作を行う必要がある場合とない場合とで、指4の位置検出処理の実行方法を変更することが可能になる。
図21(b)は、本実施の形態の第2の変形例による位置検出処理にかかる制御シーケンスを示す図である。本変形例によるMCU40は、指4の位置検出処理を連続的に(インターバルを空けずに)行うにもかかわらず、指4の位置検出処理を2回の処理に分けて行うよう構成される。これにより、同図にも示すように、指4の位置検出処理を1回の処理で行う場合に比べて2倍の検出レートで、全体検出データFM1、FM2、FM3、FM4・・・を生成することが可能になる。
図21(c)は、本実施の形態の第3の変形例による位置検出処理にかかる制御シーケンスを示す図である。本変形例によるMCU40は、指4の位置検出処理を連続的に(インターバルを空けずに)行うにもかかわらず、指4の位置検出処理を3回の処理に分けて行うよう構成される。これにより、同図にも示すように、指4の位置検出処理を1回の処理で行う場合に比べて3倍の検出レートで、全体検出データFM1、FM2、FM3、FM4・・・を生成することが可能になる。
その他、上記実施の形態では、指4(パッシブポインタ)の位置検出処理を複数回に分割して行う例を説明したが、アクティブペン2の位置検出処理についても、同様に複数回に分割して行うこととしてもよい。
また、上記実施の形態では、MCU40が常にペン位置テーブル及びタッチ位置テーブルを用いて出力位置決定処理を行うものとして説明したが、例えば、図9のステップS21で検出された位置が1つのみであった場合には、その位置を出力対象のペン位置として決定し、ステップS3のペン位置決定処理をスキップすることとしてもよい。同様に、図9のステップS51で検出された位置が1つのみであった場合には、その位置を出力対象のパッシブポインタ位置として決定し、ステップS8のパッシブポインタ位置決定処理をスキップすることとしてもよい。
また、上記実施の形態においては、ロジック部41及びMCU40は、指検出用信号FDSを送信する場合に、1つのセンサ電極30Yを選択し、上述したパルス群p1〜pKを送信部42に順次各センサ電極30Xに入力させる、という動作を各センサ電極30Yについて繰り返すよう構成されるとしたが、センサ電極30Yごとに受信部44を設け、各センサ電極30Yに対する処理をパラレルに実行することとしてもよい。この場合、図15及び図17に示した1/Nの処理の内容の第2及び第4の例では位置検出処理の時間を短縮するという効果が得られないことになるが、一方で、2本のセンサ電極30Yで1つの受信部44を共有することが可能になるので、センサ電極30Yごとに受信部44を設ける場合に比べ、受信部44の回路規模を削減するという新たな効果を得ることが可能になる。