以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
図1は、本実施の形態による位置検出システム1の全体を示す図である。同図に示すように、位置検出システム1は、2本のペン型スタイラス2a,2bと、1個の定規型スタイラス2cと、電子機器3とを含んで構成される。電子機器3は、センサ電極30と、センサコントローラ31と、パネル32と、電子機器制御部33(ホストプロセッサ)と、液晶表示部34とを含んで構成される。
位置検出システム1においては、センサコントローラ31がマスターであって、1以上のスタイラス2がスレーブである。位置検出システム1は、センサコントローラ31からローカルIDを含むポーリング要求(後述するコマンド信号)が発行されると、その中に含まれたローカルIDを有するスタイラス2のみが、ポーリングに対する応答期間に返信(後述するダウンリンク信号DSの送信)を許されることとなるよう構成される。スタイラス2は、ポーリング要求を検出する都度、検出されたポーリング要求が自身の記憶しているローカルIDの値を含むか否かを判定し、含むと判定した場合に、ダウンリンク信号DSを送信する。ローカルIDは、センサコントローラ31により各スタイラス2に付与され、スタイラス2によって記憶される。
スタイラス2a~2cはいずれも上述したアクティブスタイラスであり、1以上のユーザによって同時又は別々に使用される。以下、スタイラス2a~2cを特に区別する必要がない場合には、スタイラス2と表記する場合がある。
例えばスタイラス2aを使用する場合、ユーザはスタイラス2aを液晶パネル32のパネル面に徐々に近づけ(ペンダウン。図1では「DOWN」と表記している)、最終的にスタイラス2aのペン先をパネル面に接触させる(ペンタッチ)。そして、ユーザがこの接触状態を保ちつつパネル面上でペン先を移動させる(ペンムーブ)と、図示したように、電子機器3の処理によってパネル面上に移動の軌跡st1が描画される。この描画は、ユーザがスタイラス2aのペン先をパネル面から離す(ペンアップ。図1では「UP」と表記している)まで継続される。その後、ユーザがペンダウン、ペンタッチ、ペンムーブ、ペンアップを再度実施すると、電子機器3の処理によって、その移動の軌跡st2がパネル面上に同様に描画される。図1には、スタイラス2bのペンダウン、ペンタッチ、ペンムーブ、ペンアップによって生じた軌跡st3も図示している。
スタイラス2cは、詳しくは後述するが、直線状に並べて配置された複数の電極を有する特殊なデバイスである。典型的には「電子定規」と称されるデジタル文房具用のデバイスであるが、本明細書では動作の説明の簡略のためスタイラス2cと称する。電子機器3は、スタイラス2cによって直線の入力を受け付け可能に構成される。より具体的に言えば、電子機器3は、ユーザがスタイラス2cの直線状のペン先をパネル面に接触させた(ペンタッチ)とき、そのペン先に平行な仮想線Xをパネル面上に描画するように構成される。
スタイラス2a~2cはそれぞれ、電子機器3のセンサコントローラ31がセンサ電極30を介して送信したアップリンク信号USを受信するともに、そのアップリンク信号USへの応答としてダウンリンク信号DSを送信するように構成される。ダウンリンク信号DSはセンサ電極30によって受信され、センサ電極30からセンサコントローラ31に供給される。
アップリンク信号USには、スタイラス検索信号とコマンド信号の2種類がある。スタイラス検索信号は未検出のスタイラス2を新たに検出するためのもので、既知の検出パターンc1と、末尾に付加される区切りパターンSTPとにより構成される。検出パターンc1及び区切りパターンSTPの詳細な内容については、後述する。スタイラス2は、検出パターンc1の検出動作を間欠的に行うように構成され、検出パターンc1を検出した場合に、センサコントローラ31の存在を検出する。また、検出パターンc1を検出したスタイラス2はそのまま検出動作を続け、区切りパターンSTPを検出したタイミングに基づいてセンサコントローラ31と同期する。
一方、コマンド信号はスタイラス2に対して指示(コマンド)を伝えるためのもので、パネル面上に現在存在している1以上のスタイラス2の中の1つを特定する情報(ローカルID)と、特定したスタイラス2に対する指示(コマンド)とを含んで構成される。スタイラス2は、自身のローカルIDを含むコマンド信号が受信された場合に、その中に含まれるコマンドを取得し、その内容に応じた処理を行う。この処理には、ダウンリンク信号DSの送信処理が含まれる。ローカルIDは、センサコントローラ31がパネル面上に現在存在している1以上のスタイラス2の中の1つを特定することができればよい情報であるため、後述するグローバルIDに比して少ないビット数の情報でよい。好適には16本のスタイラス2を識別することができる4ビット以下の値を取る情報である。なお、4ビットのローカルIDのうち0000bや1111bなどを、所謂ブロードキャストアドレスのような全部あるいは未検出のスタイラス2を特定する特別なローカルIDとして用いてもよい。また、後述の各図では、ローカルIDを「LID」(Local IDentifierの略称)と表記し、グローバルIDを「GID」(Global IDentifierの略称)と表記する。
ダウンリンク信号DSは、無変調のキャリア信号からなるバースト信号と、コマンドに応じたデータ(そのダウンリンク信号DSを送信しているスタイラス2に割り当てられたローカルIDを含む)によって変調されたキャリア信号からなるデータ信号とを含んで構成される。スタイラス2は、ダウンリンク信号DSを送信する際、初めにバースト信号を送信し、続けてデータ信号を送信するよう構成される。電子機器3のセンサコントローラ31は、センサ電極30を用いてバースト信号を受信することにより、スタイラス2の存在とその位置を検出するよう構成される。図1に示した指示位置P1,P2は、こうして検出される位置の例を示している。上述した軌跡st1~st3は、この指示位置P1,P2の移動の軌跡である。
センサコントローラ31がスタイラス2を検出するためには、ダウンリンク信号DSをセンサコントローラ31が受信できる程度にまで、スタイラス2が電子機器3のタッチ面に接近している必要がある。図1に破線で示したセンシング範囲SRは、ダウンリンク信号DSをセンサコントローラ31が受信できる範囲を模式的に示したものである。センサコントローラ31は、スタイラス2がこのセンシング範囲SRに入った場合に、センサ電極30を介してダウンリンク信号DSを受信し、それによってスタイラス2を検出できるようになる。上述した「ペンダウン」は、センシング範囲SRの外から中に移動するというスタイラス2の動きを意味する。ペンダウンは通常、スタイラス2を電子機器3のパネル面に近づけるというユーザの操作によって実行される。スタイラス2がペンダウンによってセンシング範囲SRに入ったものの、未だパネル面に接触していない状態は「ホバー状態」と呼ばれる。
一方、スタイラス2は、センシング範囲SRの外にいる場合であっても、センサコントローラ31が送信するアップリンク信号USを受信できる場合がある。アップリンク信号USは、パネル面に並行して配設されたマトリクス状の電極の全てを用いて送信することが可能であり、スタイラス2の先端付近の電極21(後述)から送信されるダウンリンク信号DSに比べて高い強度で送信することができるためである。図示したアップリンク検出高さAHは、スタイラス2がアップリンク信号USを受信できる高さ(パネル面からの距離)の限界を示している。アップリンク検出高さAHは、センシング範囲SRの上限よりも高い位置(パネル面から遠い位置)となる。
図2は、図1に示したスタイラス2a,2bの第1の例の詳細な構成を示す図である。同図に示すスタイラス2a,2bは、芯体20a、電極21、スイッチ22、筆圧検出センサ23(筆圧検出部)、及び信号処理部24を有して構成される。
芯体20aは、スタイラス2のペン先を構成する導電性部材であり、電極21を兼ねている。電極21は、ダウンリンク信号DSを送信するためのアンテナの役割を果たすとともに、センサコントローラ31からセンサ電極30を介して送信されるアップリンク信号USを受信するためのアンテナとしての役割も果たす。なお、芯体20a及び電極21を、後述する図3のように別部材として構成してもよい。また、ダウンリンク信号DSを送信する電極と、アップリンク信号USを受信する電極とを別々に設けることとしてもよい。
スイッチ22は、スタイラス2の側面に設けられるサイドスイッチや後端部に設けられるテイルスイッチなど、ユーザの操作によってオンオフいずれかの状態を取るスイッチである。筆圧検出センサ23は、芯体20aの先端に加えられる圧力(筆圧)を検出するための圧力センサである。具体的には、例えば圧力に応じて静電容量が変化する可変容量コンデンサや、圧力に応じて抵抗値が変化する圧力センサなどの公知の技術を用いて、筆圧検出センサ23を構成することができる。
信号処理部24は、電極21を介してセンサコントローラ31からアップリンク信号USを受信し、その内容に応じた処理を行うとともに、センサコントローラ31に対して送信するダウンリンク信号DSを生成し、電極21を介してセンサコントローラ31に向けて送信する機能を有する。具体的には、機能的に切替部40、受信部41、制御部44、及び送信部46を含んで構成される。以下、これらのそれぞれについて、順に説明する。
切替部40は、共通端子とT端子及びR端子のいずれか一方とが接続されるように構成された1回路2接点のスイッチ素子である。切替部40の共通端子は電極21に接続され、T端子は送信部46の出力端に接続され、R端子は受信部41の入力端に接続される。切替部40の状態は、制御部44からの制御信号SWCによって制御される。制御部44は、センサコントローラ31からのアップリンク信号USを受信する場合、R端子と共通端子とが接続されるよう、制御信号SWCによって切替部40を制御する。また、センサコントローラ31に対してダウンリンク信号DSを送信する場合、T端子と共通端子とが接続されるよう、制御信号SWCによって切替部40を制御する。制御部44は、初期状態、すなわちスタイラス2が後述する検出パターンc1を検出するまでの間においては、切替部40をR端子と共通端子が接続された状態に固定したうえで、スタイラス2の消費電力を削減するべく間欠的にのみ受信動作を実行するように、オン状態とスリープ状態とを繰り返すスリープ状態となることもある。
受信部41は、切替部40から供給される信号(電極21に到来した信号)の受信と、受信した信号に含まれるチップ列のデコードを行う回路であり、この例では、波形再生部42及び相関演算器43を含んで構成される。受信部41は、このデコードにより、上述した検出パターンc1、区切りパターンSTP、ローカルID、及びコマンドのそれぞれを検出可能に構成される。受信部41は、上述した通りスタイラス2の消費電力を削減するため、検出パターンc1を検出するまでの間、間欠的にのみ受信動作を行う。
波形再生部42は、電極21に誘導された電荷(電圧)のレベルを、センサコントローラ31がアップリンク信号USの拡散を行う際に使用する拡散符号PN(後述)のチップレートの数倍(例えば4倍)のクロックで2値化し、正負の極性値のバイナリ列(チップ列)に整形して出力する。相関演算器43は、波形再生部42が出力したチップ列をレジスタに格納し、上記クロックで順次シフトしながら拡散符号PN(又は、該拡散符号PNに対して反転及び巡回シフトのいずれか少なくとも一方を施してなる符号)との相関演算を行うことで、受信信号に含まれていたチップ列をデコードする。
受信部41は、逐次、相関演算器43のデコードにより得られたシンボルの値が検出パターンc1を示しているか否かの判定を行う。その結果として検出パターンc1を検出すると、センサコントローラ31が存在することを検出し、制御部44に対して、コマンド信号により示されるコマンドに応じた処理などを実行可能にするための起動信号ENを発行する。
また、受信部41は、検出パターンc1を検出した場合、上記起動信号ENにより起動された制御部44からの指示により受信動作を間欠的から連続的に切り替え、逐次、デコードにより得られたシンボルの値が上述した区切りパターンSTPを示しているか否かの判定を行う。その結果として区切りパターンSTPを検出すると、受信部41は、その検出時刻t2を制御部44に対して出力する。
区切りパターンSTPを検出した後の受信部41は、制御部44の制御に従って、センサコントローラ31が送信するコマンド信号の受信動作を行う。具体的には、受信動作の実施中に相関演算器43によって得られる一連のシンボルの値からローカルID及び制御情報c2(センサコントローラ31による指示を含む情報)のセットを取得し、制御部44に出力する。
制御部44はマイクロプロセッサ(MCU)により構成され、受信部41から起動信号ENが供給されたことを契機として起動する。起動した制御部44が行う処理には、上述した間欠的な受信動作から連続的な受信動作への切り替えの他に、受信部41にコマンド信号を受信させる処理と、自身のローカルIDを決定してメモリ45に一時的に記憶させる処理と、送信部46にダウンリンク信号DSを送信させる処理とが含まれる。なお、受信部41にコマンド信号を受信させる処理には、R端子と共通端子を接続するための制御信号SWCを切替部40に供給する処理が含まれる。同様に、送信部46にダウンリンク信号DSを送信させる処理には、T端子と共通端子を接続するための制御信号SWCを切替部40に供給する処理が含まれる。
制御部44は、受信部41から検出時刻t2が供給されるとまず、受信部41にコマンド信号を受信させる処理を行う。詳しくは後述するが、センサコントローラ31は、検出パターンc1の繰り返し及び区切りパターンSTPにより構成されるスタイラス検索信号を送信した直後に、ローカルIDの設定指示を示すコマンド信号(検出済みの1以上のスタイラスに含まれない新たなスタイラスを検出するためのアップリンク信号)を送信するよう構成される。制御部44は、この設定指示を示すコマンドを受信部41から受信すると、自己のメモリ45にまだローカルIDがまだ記憶されていない初期状態においては、そのコマンドにより示されるローカルIDを自身のローカルIDとして決定し、メモリ45に格納する。これ以降、制御部44は、受信部41からローカルID及びコマンドのセットが供給される都度、その中のローカルIDがメモリ45に格納したローカルIDと一致するか否かを判定し、一致する場合にのみ、セット内に含まれるコマンドに応じた処理(送信部46にダウンリンク信号DSを送信させる処理を含む)を行う。制御部44はまた、ローカルID及びコマンドのセットの供給を最後に受けてから所定時間が経過した場合に、メモリ45内に格納しているローカルIDを削除する処理を行う。メモリ45は、センサコントローラ31により付与されたローカルIDの値を一時的にのみ保持するため、後述するグローバルID記憶部51とは異なり、揮発性のメモリでよい。
制御部44が送信部46に送信させるダウンリンク信号DSには、上述したように、バースト信号及びデータ信号が含まれる。制御部44は、バースト信号を送信させる際には、送信部46に無変調のキャリア信号を送信させる。一方、データ信号を送信する際には、受信部41から供給されるコマンドによって送信を指示されたデータを取得し、メモリ45内に格納されているローカルIDとともに送信部46に供給する。これにより、送信部46から送信されるダウンリンク信号DSは、コマンドによって送信を指示されたデータとローカルIDとを含む信号となる。コマンドによって送信を指示されるデータには、スイッチ22のオンオフ状態を示すデータや、筆圧検出センサ23によって検出された筆圧を示すデータなどの、コマンドを受信した時点でのスタイラス2の操作状態に基づくデータが含まれる。
送信部46は、制御部44による制御に応じてダウンリンク信号DSを生成し、電極21に供給する回路であり、変調部47及び昇圧回路48により構成される。
変調部47は、所定周波数又は制御部44からの制御に従う周波数のキャリア信号(例えば矩形波信号)を生成し、制御部44の制御に基づき、そのまま或いは変調したうえで出力する回路である。バースト信号送信時の変調部47は、制御部44の指示に従い、キャリア信号を変調せずにそのまま出力する。なお、既知の値のパターンで変調してなる信号をバースト信号として用いることとしてもよく、その場合の変調部47は、キャリア信号を上記既知の値のパターンで変調したうえで出力する。一方、データ信号送信時の変調部47は、制御部44から供給されるデータによりキャリア信号を変調(OOK、PSK等)し、その結果として得られる変調信号を出力する。
昇圧回路48は、変調部47の出力信号を一定の振幅まで昇圧することにより、ダウンリンク信号DSを生成する回路である。昇圧回路48によって生成されたダウンリンク信号DSは、切替部40を経て電極21から空間に送出される。
図3は、図1に示したスタイラス2a,2bの第2の例の詳細な構成を示す図である。同図に示すスタイラス2a,2bは、芯体20aと電極21とが別部材により構成される点、及び、信号処理部24内に6軸IMU(Inertial Measurement Unit)50及びグローバルID記憶部51を含む点で、図2に示したスタイラス2a,2bと異なる。以下、図2に示したスタイラス2a,2bとの相違点に着目して説明する。
本例による芯体20aは、スタイラス2のペン先を構成する絶縁性部材によって構成される。電極21は、芯体20aの先端の近傍に設けられる導電性部材である。電極21の役割は、図2に示した電極21と同じである。
6軸IMU50は、3軸の加速度センサ及び3軸のジャイロセンサを含む慣性計測装置であり、計測結果を示す値を制御部44に出力するよう構成される。
図4は、6軸IMU50の説明図である。同図(a)はスタイラス2a,2bを横側から見た図を示し、同図(b)は、同図(a)に示すA-A線に対応するスタイラス2a,2bの断面を示している。
6軸IMU50は、図4(a)に示すように、スタイラス2a,2bの長手方向をZ軸として使用する。また、図4(b)に示すように、スタイラス2a,2bの断面の中心からスイッチ22に向かう方向をY軸として使用し、Z軸及びY軸の両方に垂直な方向をX軸として使用する。6軸IMU50は、これらX軸~Z軸それぞれの方向について、スタイラス2a,2bの加速度と角速度とを取得し、制御部44に出力する。
図3に戻る。グローバルID記憶部51は、スタイラス2ごとに異なる情報であるグローバルIDを記憶する。グローバルIDは、スタイラス2のベンダーの識別子、ベンダー内でのスタイラス2の識別番号、スタイラス2のデバイスタイプ(ペン型又は定規型など)などを示す例えば64ビットの情報である。グローバルIDは、スタイラス2の製造の時点でグローバルID記憶部51に書き込まれる。グローバルID記憶部51としては、揮発性のメモリ45とは異なり不揮発性メモリが利用される。グローバルIDがベンダ―の識別子などを含みグローバルにユニークな識別子であるのに対し、ローカルIDはセンサコントローラ31が自己の検出範囲内で存在する複数のスタイラス2のうちの1つをローカルに識別するための識別子である点で、これらは互いに相違している。
スタイラス2a,2bが図3に示す構成を有するものである場合、センサコントローラ31がコマンド信号によって送信を指示するデータには、上述したスタイラス2の操作状態に基づくデータに加え、6軸IMU50の計測結果及びグローバルIDが含まれる。6軸IMU50の計測結果の送信を指示された場合の制御部44は、6軸IMU50から計測結果を示すデータを取得し、送信対象のデータとして送信部46に供給する。同様に、グローバルIDの送信を指示された場合の制御部44は、グローバルID記憶部51からグローバルIDを読み出し、送信対象のデータとして送信部46に供給する。
図5は、図1に示したスタイラス2c(定規型デバイス)の詳細な構成を示す図である。また、図6は、スタイラス2cの上面図である。これらの図に示すように、スタイラス2cは、芯体20aに代えて定規20b(定規部)を有する点、n個の電極21_1~21_nを有する点、切替部27を有する点、スイッチ22及び筆圧検出センサ23に代えて2つのスイッチ25,26を有する点、6軸IMU50を有しない点で、図3に示したスタイラス2a,2bと異なる。以下、図3に示したスタイラス2a,2bとの相違点に着目して説明する。
定規20bは薄い板状の絶縁性部材であり、文房具の定規を模して作られている。電極21_1~21_nはそれぞれ薄い板状の導電性部材であり、定規20bの長手方向一端と他端の少なくとも2カ所に配置されている。なお、図5の例では、3つ以上の電極21が、定規20bの長手方向の一端から他端にかけて、定規20bの長手方向に沿ってその内部に等間隔に並べて配置されている。また、図6の例では、2つの電極21が、それぞれ定規20bの長手方向の一端と他端とに配置されている。電極21_1~21_nはそれぞれが、図2及び図3に示した電極21と同様、ダウンリンク信号DSを送信するためのアンテナの役割を果たすとともに、センサコントローラ31からセンサ電極30を介して送信されるアップリンク信号USを受信するためのアンテナとしての役割も果たす。なお、電極21を送信専用とし、受信電極を別に設けることとしてもよい。この場合、受信電極は、例えばブルートゥース(登録商標)等の他の近接型無線通信手段によりアップリンク信号USを受信するものとしてもよい。
切替部27は、共通端子とn個の電極側端子のいずれか一方とが接続されるように構成された1回路n接点のスイッチ素子である。切替部27の共通端子は切替部40の共通端子に接続され、切替部27のn個の電極側端子は、電極21_1~21_nと一対一に接続される。
スイッチ25(第1のスイッチ)は、スタイラス2cが動作状態であるか停止状態であるかを切り替えるためのスイッチである。また、スイッチ26(第2のスイッチ)は、センサコントローラ31が備える電子機器3に対して、後述する仮想線の確定など所定の処理を起動させるためスイッチである。これらスイッチ25、26は、図6に例示するように、定規20bの上面の、望ましくは長手方向中央付近に設けられる。
制御部44は、ユーザがスイッチ25を押してからスイッチ26を押下するまでの間、受信部41から自身に割り当てられたローカルIDに対応するコマンドが供給される都度、送信部46にダウンリンク信号DSを送信させるよう構成される。このとき切替部27は、ダウンリンク信号DSの送信の都度、共通端子の接続先となる電極側端子を切り替えていく動作を行う。これにより、電極21_1~21_nのそれぞれから順に、ダウンリンク信号DSが送信される。
センサコントローラ31は、コマンド信号によりグローバルIDの送信を指示し、これに応答してスタイラス2cが送信するグローバルIDを確認することによって、スタイラス2cが定規型のデバイスであることを認識する。定規型のデバイスであると認識したスタイラス2cについてセンサコントローラ31は、順次受信されるダウンリンク信号DSによって特定される複数の位置を記憶し、それらをつなぐ仮想線X(図1参照)を表示するよう構成される。
また、制御部44は、ユーザがスイッチ26(第2のスイッチ)を押下した場合、その旨を示すデータをダウンリンク信号DSに含めて送信部46に送信させるよう構成される。センサコントローラ31は、このデータを受信することにより、仮想線Xの位置を確定させるためのデータを電子機器制御部33に対して通知する。
スタイラス2a,2bのようペン型のスタイラス2は利用されている間の移動速度が大きいのに対し、スタイラス2cのような定規型のスタイラス2は、一度パネル面におかれるとしばらくの間同じ位置に置かれ、ペン型のスタイラス2に比較して小さい移動速度で利用されることが多い。したがって、定規型のスタイラス2には高いスキャンレートを割り当てる必要がない場合が多いことから、本実施の形態によるセンサコントローラ31は、グローバルIDの確認によって定規型であると認識したスタイラス2について、そのスキャンレートを小さくするようにしている。詳しくは後述する。
また、定規型のスタイラス2は、手に把持されて利用されるペン型のスタイラス2とは異なり、ユーザが操作していない間であっても、パネル面上に置かれたまま利用される場合がある。このような場合に、定規型のスタイラス2とセンサコントローラ31との間で信号の送受信を行うことは、定規型のスタイラス2の消費電力を増加させ、また、センサコントローラ31と各スタイラス2との間の通信リソースを不使用時にも消費することになる。そこで本実施の形態によるスタイラス2cでは、スイッチ25,26の操作によってダウンリンク信号DSの送信期間をユーザが指定できるようにしている。こうすることで、スタイラス2cがパネル面上に放置されている場合における、スタイラス2cの消費電力の低減と、通信リソースの有効活用とが実現される。
次に、図7は、図1に示した電子機器3の詳細な構成を示す図である。以下、この図7を参照しながら、電子機器3の構成及び動作について詳しく説明する。
センサ電極30は、それぞれX方向に延在する複数の線状電極30Xと、それぞれY方向に延在する複数の線状電極30Yとによって構成される。センサ電極30は、これら線状電極30X,30Yにより、スタイラス2と容量結合するように構成される。上述したアップリンク信号US及びダウンリンク信号DSは、この容量結合を介して送受信される。
センサコントローラ31は、図7に示すように、MCU60、ロジック部61、送信部62、受信部63、及び選択部64を有して構成される。
MCU60及びロジック部61は、送信部62、受信部63、及び選択部64を制御することにより、センサコントローラ31の送受信動作を制御する制御部である。具体的に説明すると、MCU60は、内部にROMおよびRAMを有し、所定のプログラムに基づき動作するマイクロプロセッサである。一方、ロジック部61は、MCU60の制御に基づき、制御信号ctrl_1~ctrl_4及びctrl_rを出力するよう構成される。
MCU60は、図7に示すように、ID管理テーブル70を格納するメモリをその内部に有している。また、MCU60は機能的に、ID管理部71、位置導出部72、状態検出部73を有して構成される。
図8は、ID管理テーブル70を示す図である。同図に示すように、ID管理テーブル70は、ローカルIDごとに、グローバルID、速度、現在状態、オペレーション状態、リセットコマンド未発行フラグ1、リセットコマンド未発行フラグ2、削除カウンタ、及びダウンリンク信号送信スケジュールを記憶するテーブルである。
ID管理部71は、ID管理テーブル70に記憶されるローカルIDの登録及び消去を実行する機能を有する。具体的に説明すると、ID管理部71は、まだID管理テーブル70に登録されていないローカルIDの設定指示を含む制御情報c2を送信部62に供給するとともに、この制御情報c2を示すコマンド信号を送信するよう、送信部62を制御する。そして、このコマンド信号を受けたスタイラス2が指示されたローカルIDを含むダウンリンク信号DSを送信すると、ID管理部71は、受信部63を通じてこのダウンリンク信号DSを受信し、その中に設定を指示したローカルIDが含まれるか否かを判定する。ID管理部71は、この判定結果が肯定的なものであった場合に、そのローカルIDの値をID管理テーブル70に登録する処理を行う。ローカルIDの消去については、後ほど図12のフロー図を参照しながら詳しく説明する。
ID管理部71はまた、ローカルID以外の各種データ(図2に示したスイッチ22のオンオフ状態を示すデータ、図2に示した筆圧検出センサ23によって検出された筆圧を示すデータ、図3に示した6軸IMU50の計測結果を示すデータ、図3に示したグローバルID記憶部51に記憶されるグローバルIDなど)の送信指示を含む制御情報c2を送信部62に供給するとともに、この制御情報c2を示すコマンド信号を送信するよう、送信部62を制御する機能も有する。このとき送信部62に供給される制御情報c2には、送信指示の宛先となるスタイラス2のローカルIDが含まれる。上述したように、スタイラス2は、受信したコマンド信号に含まれるローカルIDが自身に割り当てられたローカルIDと一致する場合にのみ、そのローカルIDとコマンドによって送信を指示されたデータとを含むダウンリンク信号DSを送信するよう構成される。ID管理部71は、こうして送信されたダウンリンク信号を受信部63を通じて受信すると、その中に含まれるローカルID及びデータを検出する処理を行う。そして、検出したローカルID及びデータ(図7ではRes(応答データの意)と記す)を、後述する位置導出部72により導出される座標x,yとともに、電子機器制御部33(図1参照)にレポートする。また、検出したデータにグローバルIDが含まれている場合には、そのグローバルIDをID管理テーブル70に書き込む処理も行う。
ID管理部71はさらに、ID管理テーブル70に記憶される1以上のローカルIDのそれぞれにつき、ダウンリンク信号DSの送信スケジュールを決定し、ID管理テーブル70に書き込む機能も有する。この送信スケジュールは、ダウンリンク信号DSの送信頻度(スキャンレート)と、ダウンリンク信号DSの送信継続時間という2種類のパラメータによって構成される。デフォルトでは、ID管理部71は、ID管理テーブル70に登録中のすべてのローカルIDについて、スキャンレート及びダウンリンク信号DSの送信継続時間をそれぞれ等しい値に設定する。
ここで、定規型のスタイラス2に与えられるスキャンレートは、ペン型のスタイラス2に比べて小さな値でよいと考えられる。定規型のスタイラス2は、ペン型のスタイラス2に比べて、パネル面上での移動が少ないと考えられるからである。同様の理由により、後述する移動速度(状態検出部73によって算出されるもの)により現にあまり動いていないことが示されるスタイラス2についても、よく動いていることが示されるスタイラス2に比べて小さなスキャンレートで足りると考えられる。また、各スタイラス2によるダウンリンク信号DSの送信継続時間は、各スタイラス2の仕様によって異なる。例えば、あるベンダーのスタイラス2は、他のベンダーのスタイラス2に比べて2倍の時間にわたって、ダウンリンク信号DSの送信を継続するよう構成される。
そこで、ID管理部71は、スタイラス2のグローバルID(デバイスタイプ)又は移動速度を取得できた場合には、これらに基づいて各スタイラス2にとって最適なスキャンレート及びダウンリンク信号DSの送信継続時間を決定し、その結果に基づいて、ダウンリンク信号DSの送信スケジュールの再調整を行う。具体的な例を挙げると、移動速度が大きいほどスキャンレートが大きくなるよう、ID管理テーブル70に記憶される1以上のローカルIDのそれぞれについてのスキャンレートを決定し、ID管理テーブル70に書き込む。また、他の例では、各スタイラス2のデバイスタイプに基づいて各スタイラス2のダウンリンク信号DSの送信継続時間を決定し、ID管理テーブル70に書き込む。この再調整については、後ほど図23及び図24を参照しながら、より詳しく説明する。
ID管理テーブル70に書き込まれたダウンリンク信号DSの送信スケジュールは、ID管理部71が、各ローカルIDに宛てたコマンド信号の送信頻度と、コマンド信号の送信間隔とを制御することにより、実現される。具体的に説明すると、ID管理部71は、各ローカルIDに宛てたコマンド信号の送信頻度を制御することにより、ID管理テーブル70に設定したスキャンレートを実現する。例えば、ID管理テーブル70に2つのローカルID#1,#2が設定されており、それぞれのスキャンレートがともに1/2であれば、ID管理部71は、ローカルID#1,#2のそれぞれに宛てたコマンド信号を交互に送信する。また、ID管理テーブル70に2つのローカルID#1,#2が設定されており、ローカルID#1のスキャンレートが1/4、ローカルID#2のスキャンレートが3/4であれば、ID管理部71はローカルID#1に宛ててコマンド信号を1回送信した後、ローカルID#2に宛ててコマンド信号を3回送信する、という頻度で、コマンド信号の送信を行う。また、ID管理部71は、コマンド信号の送信間隔を制御することにより、ID管理テーブル70に設定したダウンリンク信号DSの送信継続時間を実現する。すなわち、センサコントローラ31はコマンド信号の送信インターバルの間にダウンリンク信号DSの受信を行うことから、例えばコマンド信号の送信間隔を長くするほど、ダウンリンク信号DSの検出動作を継続する時間が長くなる。したがって、ダウンリンク信号DSの送信継続時間を長く取れることになる。センサコントローラ31は、このようなダウンリンク信号DSの送信スケジュールに適合する形で各スタイラス2からダウンリンク信号DSが送信されるように、各IDを含む送信要求コマンドであるアップリンク信号USを発行するポーリングスケジュールを決定する。このポーリングスケジュールに従って、各ローカルIDを含むアップリンク信号USが送信される。
位置導出部72は、受信部63から供給されるデジタル信号に基づいて各複数の線状電極30X,30Yそれぞれにおけるダウンリンク信号DSの受信強度を取得し、その結果に基づいて、スタイラス2の位置を示す座標x,yを導出する処理を行う。
状態検出部73は、各ローカルIDについて位置導出部72により導出される位置の変化から各スタイラス2の移動速度を算出し、ID管理テーブル70に書き込む処理を行う。また、各ローカルIDについて、アップリンク信号USへの応答としてのダウンリンク信号DSが受信されているか否か、受信されている場合にはその中に含まれる筆圧の値が0か0より大きいかを判定し、その結果をスタイラス2の現在状態としてID管理テーブル70に書き込む処理を行う。具体的には、図8に示すように、アップリンク信号USへの応答としてのダウンリンク信号DSが受信されていないローカルIDについては「アップリンク信号返信なし」を示す値を、アップリンク信号USへの応答としてのダウンリンク信号DSが受信されているローカルIDについては「ペンダウン状態」を示す値を、筆圧の値が0であるローカルIDについてはさらに「筆圧=0」を示す値を、筆圧の値が0より大きいローカルIDについてはさらに「筆圧>0」を示す値をそれぞれ書き込む。
状態検出部73はまた、各ローカルIDにつき、オペレーション状態、リセットコマンド未発行フラグ1、リセットコマンド未発行フラグ2、削除カウンタを取得し、ID管理テーブル70に書き込む処理を行う。これらの詳細については、後ほどセンサコントローラ31の処理フロー図を参照しながら、より詳しく説明する。
送信部62は、MCU60及びロジック部61の制御に従ってアップリンク信号USを生成する回路であり、図7に示すように、パターン供給部80、スイッチ81、符号列保持部82、拡散処理部83、及び送信ガード部84を含んで構成される。なお、このうち特にパターン供給部80に関して、本実施の形態では送信部62内に含まれるものとして説明するが、MCU60内に含まれることとしてもよい。
アップリンク信号USには、上述したように、スタイラス検索信号とコマンド信号の2種類が含まれる。また、このうちのスタイラス検索信号は、所定の検出パターンc1の繰り返しと、末尾に配置される所定の区切りパターンSTPとによって構成される。
検出パターンc1は、スタイラス2がセンサコントローラ31の存在を検出するために用いられるシンボルの値のパターンであり、事前に(スタイラス2がセンサコントローラ31を検出する前に)スタイラス2に既知にされている。シンボルは、送信処理においては変調に用いる情報の単位(送信信号が表現する情報の単位)であり、受信処理においては受信信号である1シンボルを復調して得られる情報の単位である。シンボルの値は、ビット列に変換される値(以下、「ビット列対応値」と称する)と、シンボルを受信したスタイラス2によってビット列に変換されない値(以下、「ビット列非対応値」と称する)とを含むことができる。具体的な例では、検出パターンc1は、2種類のビット列非対応値「P」「M」の結合からなるパターン「PM」により構成される。
区切りパターンSTPは、検出パターンc1の繰り返し期間の終了をスタイラス2に通知するためのシンボルの値のパターンであり、検出パターンc1の繰り返し中に現れないパターンによって構成される。区切りパターンSTPも、事前に(スタイラス2がセンサコントローラ31を検出する前に)スタイラス2に既知にされている。一例を挙げると、上記のように検出パターンc1を2つのビット列非対応値「P」「M」の結合「PM」により構成する場合、区切りパターンSTPは、ビット列非対応値「P」を2回連続させてなるパターン「PP」により構成することができる。区切りパターンSTPと検出パターンc1との構成を逆にして、区切りパターンを「PM」により構成して検出パターンc1を「PP」により構成してもよい。
パターン供給部80は、検出パターンc1及び区切りパターンSTPを保持しており、ロジック部61から供給される制御信号ctrl_t1の指示に従ってこれらを所定の順序で出力するよう構成される。具体的には、所定の連続送信期間の間、検出パターンc1を連続して繰り返し出力するとともに、連続送信期間の終了直後に、区切りパターンSTPを出力するよう構成される。これにより、スタイラス検索信号の送信が実現される。
スイッチ81は、ロジック部61から供給される制御信号ctrl_t2に基づいてパターン供給部80及びMCU60のいずれか一方を選択し、選択した一方の出力を拡散処理部83に供給する機能を有する。スイッチ81がパターン供給部80を選択した場合、拡散処理部83には、パターン供給部80から検出パターンc1又は区切りパターンSTPが供給される。一方、スイッチ81がMCU60を選択した場合、拡散処理部83には、MCU60から制御情報c2が供給される。
制御情報c2は、上述したように、ローカルIDの設定指示、又は、ローカルID以外の各種データの送信指示を含む情報である。制御情報c2は、スタイラス2との間でその値が事前に共有されていない点で、検出パターンc1や区切りパターンSTPと異なっている。制御情報c2は、例えば、ビット列に対応づけられるシンボルの値(例えば0~15)に対応付けられて送信される。
符号列保持部82は、ロジック部61から供給される制御信号ctrl_t3に基づき、自己相関特性を有する所定チップ長の拡散符号PNを生成して保持する機能を有する。符号列保持部82が保持している拡散符号PNは、拡散処理部83に供給される。
拡散処理部83は、スイッチ81を介して供給されるシンボルの値(検出パターンc1、区切りパターンSTP、又は制御情報c2)に基づいて符号列保持部82によって保持される拡散符号PNを変調することにより、所定チップ長の送信チップ列を得る機能を有する。拡散処理部83は、取得した送信チップ列を送信ガード部84に供給するよう構成される。
送信ガード部84は、ロジック部61から供給される制御信号ctrl_t4に基づき、アップリンク信号USの送信期間とダウンリンク信号DSの受信期間との間に、送信動作と受信動作を切り替えるために必要となるガード期間(送信と受信の両方を行わない期間)を挿入する機能を有する。
受信部63は、ロジック部61の制御信号ctrl_rに基づいて、スタイラス2が送信したダウンリンク信号DSを受信するための回路である。具体的には、増幅回路85、検波回路86、及びアナログデジタル(AD)変換器87を含んで構成される。
増幅回路85は、選択部64から供給されるダウンリンク信号DSを増幅して出力する。検波回路86は、増幅回路85の出力信号のレベルに対応した電圧を生成する回路である。AD変換器87は、検波回路86から出力される電圧を所定時間間隔でサンプリングすることによって、デジタル信号を生成する回路である。AD変換器87が出力するデジタル信号は、MCU60に供給される。MCU60は、こうして供給されたデジタル信号に基づき、スタイラス2が送信したデータ(ローカルID、グローバルID、筆圧など)を取得する。
選択部64は、スイッチ88x,88yと、導体選択回路89x,89yとを含んで構成される。
スイッチ88x,88yはそれぞれ、共通端子とT端子及びR端子のいずれか一方とが接続されるように構成された1回路2接点のスイッチ素子である。スイッチ88xの共通端子は導体選択回路89xに接続され、T端子は送信部62の出力端に接続され、R端子は受信部63の入力端に接続される。また、スイッチ88yの共通端子は導体選択回路89yに接続され、T端子は送信部62の出力端に接続され、R端子は受信部63の入力端に接続される。
導体選択回路89xは、複数の線状電極30Xを選択的にスイッチ88xの共通端子に接続するためのスイッチ素子である。導体選択回路89xは、複数の線状電極30Xの一部又は全部を同時にスイッチ88xの共通端子に接続することも可能に構成される。
導体選択回路89yは、複数の線状電極30Yを選択的にスイッチ88yの共通端子に接続するためのスイッチ素子である。導体選択回路89yも、複数の線状電極30Yの一部又は全部を同時にスイッチ88yの共通端子に接続することも可能に構成される。
選択部64には、ロジック部61から4つの制御信号sTRx,sTRy,selX,selYが供給される。具体的には、制御信号sTRxはスイッチ88xに、制御信号sTRyはスイッチ88yに、制御信号selXは導体選択回路89xに、制御信号selYは導体選択回路89yにそれぞれ供給される。ロジック部61は、これら制御信号sTRx,sTRy,selX,selYを用いて選択部64を制御することにより、スタイラス検索信号及びコマンド信号を含むアップリンク信号USの送信と、バースト信号及びデータ信号を含むダウンリンク信号DSの受信とを実現する。
より具体的に説明すると、ロジック部61は、スタイラス検索信号を送信する場合には、複数の線状電極30Yのすべて(又は複数の線状電極30Xのすべて)が送信部62の出力端に接続されるよう、選択部64を制御する。また、コマンド信号を送信する場合には、各複数の線状電極30X,30Yのうち送信対象のスタイラス2について直前に導出された位置の近傍にある所定数本が送信部62の出力端に接続されるよう、選択部64を制御する。
バースト信号を受信する場合のロジック部61は、バースト信号の送信が継続している間に各複数の線状電極30X,30Yのすべてが順に受信部63の入力端に接続されるよう、選択部64を制御する。こうすることで、MCU60は各複数の線状電極30X,30Yのそれぞれにおけるバースト信号の受信強度を取得することができるので、上述したようにスタイラス2の位置を導出することが可能になる。一方、データ信号を受信する場合のロジック部61は、各複数の線状電極30X,30Yのうち、そのデータ信号を送信するスタイラス2について直前のバースト信号により導出した位置に最も近い1本のみが受信部63の入力端に接続されるよう、選択部64を制御する。こうすることで、データ信号の送信時間を、スタイラス2からセンサコントローラ31にデータを送るためにフルに活用することが可能になる。
以上、位置検出システム1を構成するスタイラス2及び電子機器3の構成及び動作について、詳細に説明した。次に、スタイラス2及びセンサコントローラ31が行う処理のフロー図を参照しながら、スタイラス2及びセンサコントローラ31の本発明に関する動作について、より詳しく説明する。
図9~図15は、センサコントローラ31の処理フローを示すフロー図である。また、図16~図20は、スタイラス2の処理フローを示すフロー図である。さらに、図21~図24及び図26~図29は、スタイラス2a~2cのうちの1つ又は2つと、センサコントローラ31との間で送受信される信号を示すタイムチャートである。また、図25は、センサコントローラ31及びスタイラス2aのそれぞれによるローカルIDの登録の解除の説明図である。以下、これらの図を参照しながら説明する。
初めに図9に示すように、センサコントローラ31は、前回のスタイラス検索信号送信からの経過時間が所定時間以上であるか所定時間未満であるかを判定する(ステップS1)。センサコントローラ31は、未検出のスタイラス2を検出するために所定時間ごとにスタイラス検索信号を送信する必要があり、ステップS1では、このスタイラス検索信号の送信タイミングが到来したか否かを判定している。
ステップS1で所定時間以上であると判定した場合、センサコントローラ31はスタイラス検索信号を送信する(ステップS2)。図21には、このようにしてセンサコントローラ31から所定時間ごとに送信されるスタイラス検索信号を図示している。センサコントローラ31は、スタイラス検索信号を送信した後、その処理をステップS1に戻す。
ステップS1で所定時間未満であると判定した場合、センサコントローラ31は、現在がスタイラス検索信号の送信直後であるか否かを判定する(ステップS3)。その結果、送信直後であると判定した場合には設定指示送信処理を実行し(ステップS4)、送信直後でないと判定した場合にはコマンド信号送信処理を実行する(ステップS5)。なお、スタイラス検索信号の中に設定指示のコマンドの情報を含めることができる場合は、ステップS4とステップS5を1つの処理としてもよい。
図10には、設定指示送信処理の詳細を示している。同図に示すように、設定指示送信処理を開始したセンサコントローラ31は、まず初めに、ローカルIDの登録状況に基づいて設定対象のローカルID#nを決定する(ステップS10)。ローカルIDの登録状況の確認は、図8に示したID管理テーブル70を参照することによって行う。続いてセンサコントローラ31は、決定したローカルID#nの設定指示を示すコマンド信号を送信する(ステップS11)。図21に示すように、このコマンド信号はスタイラス検索信号の送信から連続して行われることになる。
次にセンサコントローラ31は、ダウンリンク信号DSの受信動作を実施し(ステップS12)、ローカルID#nを含むダウンリンク信号DSを受信したか否かを判定する(ステップS13)。この場合においてセンサコントローラ31は、ダウンリンク信号DS内のデータ信号を復号することによって、そのダウンリンク信号DSがローカルID#nを含むか否かの確認を行う。この点は、後述する他のステップでの受信判定においても同様である。
ステップS13で受信していないと判定した場合、センサコントローラ31は、それ以上特段の処理をせずに設定指示送信処理を終了し、図9のステップS1に戻る。
一方、ステップS13においてローカルID#nを含むダウンリンク信号DSをパネル面内の1カ所のみで受信したと判定した場合、センサコントローラ31は、ローカルID#nをID管理テーブル70に登録する(ステップS14)。
図21には、センサコントローラ31がスタイラス2aを新たに登録する場面を示している。同図の初期状態は、ID管理テーブル70にローカルIDが1つも登録されていない状態である。ペンダウンしたことによってスタイラス検索信号を受信したスタイラス2aは、続いてローカルID#1の設定指示を示すコマンド信号を受信する。そして、このコマンド信号に応答して、ローカルID#1を含むダウンリンク信号DSを送信する。センサコントローラ31は、このダウンリンク信号DSを受信したことに応じて、ローカルID#1をID管理テーブル70に登録する。
図22には、センサコントローラ31がスタイラス2aを登録した後、さらにスタイラス2bを登録する場面を示している。同図の初期状態は、図21においてスタイラス2aが登録された状態(スタイラス2aにローカルID#1が割り当てられている状態)である。ローカルID#1がID管理テーブル70に登録済みであることから、センサコントローラ31がスタイラス検索信号に続けて送信するコマンド信号は、ローカルID#2の設定指示を示すコマンド信号となる。ペンダウンしたことによってスタイラス検索信号を受信したスタイラス2bは、続いてローカルID#2の設定指示を示すコマンド信号を受信する。そして、このコマンド信号に応答して、ローカルID#2を含むダウンリンク信号DSを送信する。センサコントローラ31は、このダウンリンク信号DSを受信したことに応じて、ローカルID#2をID管理テーブル70に登録する。
図10に戻る。ステップS14でローカルID#nをID管理テーブル70に登録したセンサコントローラ31は、受信したダウンリンク信号DS内のバースト信号に基づいてスタイラス2の位置を導出する(ステップS15)。また、ダウンリンク信号DS内のデータ信号がローカルID#n以外のデータを含む場合には、そのデータの抽出を行う(ステップS16)。
さらにセンサコントローラ31は、新たに登録したローカルID#nに対応するスタイラス2にダウンリンク信号DSの送信機会を与えるため、ダウンリンク信号DSの送信スケジュールの再調整を行い、その結果によりID管理テーブル70を更新する(ステップS17)。
再度図21及び図22を参照すると、ローカルID#1のみが登録されている図21の状態では、スタイラス検索信号直後のコマンド信号を除くすべてのコマンド信号は、ローカルID#1(スタイラス2a)に宛てたものとされる。すなわち、スタイラス2aのスキャンレートは1とされている。
図22に示すようにローカルID#2が新たに登録されると、センサコントローラ31は、ローカルID#2(スタイラス2b)にもダウンリンク信号DSの送信機会を与える必要がある。そこで、図22の例では、ローカルID#1とローカルID#2に同じ値のスキャンレート(=1/2)を与え、スタイラス2a,2bが交互にダウンリンク信号DSを送信できるようにしている。このようにセンサコントローラ31は、デフォルト(グローバルID又はスタイラス2の移動速度に基づいてスキャンレートを決定する前の状態)では、検出済みの1以上のスタイラスそれぞれについてのスキャンレートが互いに等しくなるよう、検出済みの1以上のスタイラスそれぞれについてのスキャンレートを決定する。
図10のステップS17における送信スケジュールの再調整は、この図22に示した例のように、新たに登録されたスタイラス2にダウンリンク信号DSの送信機会を与えるために行われる。ステップS17の終了後、センサコントローラ31は設定指示送信処理を終了し、図9のステップS1に戻る。
ステップS13においてローカルID#nを含むダウンリンク信号DSをパネル面内の複数カ所で受信したと判定した場合には、センサコントローラ31は、ID管理テーブル70において、ローカルID#nのオペレーション状態の値を「第1のリセットモード」に設定する(ステップS18)とともに、ローカルID#nのリセットコマンド未発行フラグ1に「TRUE」を設定する(ステップS19)。第1のリセットモードは、図26に例示するように、ローカルID#nの設定指示を示すコマンド信号を送信した直後に、そのローカルID#nの割り当てを一旦解除するため動作モードである。リセットコマンド未発行フラグ1は、第1のリセットモードにおいて送信されるべきリセット命令が未だ送信されていないときに「TRUE」となり、それ以外のときに「FALSE」となる2値のフラグ情報である。これらを利用するリセット処理の詳細な内容については、後ほど図13及び図14を参照して説明する。ステップS19の終了後、センサコントローラ31は設定指示送信処理を終了し、図9のステップS1に戻る。
次に、図11には、コマンド信号送信処理の詳細を示している。同図に示すように、コマンド信号送信処理を開始したセンサコントローラ31はまず、ID管理テーブル70に登録されている各ローカルIDの送信スケジュールに基づき、コマンド信号の送信対象となるローカルID#kを決定(選択)する(ステップS20)。より具体的には、各ローカルIDについて決定済みのスキャンレートに基づいて、コマンド信号の送信対象となるローカルID#kを決定(選択)する。そして、ID管理テーブル70のオペレーション状態の値を再び参照することにより、ローカルID#kのオペレーション状態の値が「通常モード」「第1のリセットモード」「第2のリセットモード」のいずれであるかを判定する(ステップS21)。
図12には、ステップS21でセンサコントローラ31がローカルID#kのオペレーション状態を「通常モード」と判定した場合の処理を示している。同図に示すように、この場合のセンサコントローラ31はまず、ローカルID#kにより特定されるスタイラス2に対して、データ送信指示を示すコマンド信号を送信する(ステップS30)。ここで送信を指示されるデータは、例えば、図2に示したスイッチ22のオンオフ状態を示すデータ、図2に示した筆圧検出センサ23によって検出された筆圧を示すデータ、図3に示した6軸IMU50の計測結果を示すデータなどの、データ送信指示を示すコマンド信号を受信した時点での操作状態を示すデータ、並びに、図3に示したグローバルID記憶部51に記憶されるグローバルIDなどである。
ステップS30でコマンド信号を送信したセンサコントローラ31は、次にダウンリンク信号DSの受信動作を実施し(ステップS31)、ローカルID#kを含むダウンリンク信号DSを受信したか否かを判定する(ステップS32)。
ステップS32においてローカルID#kを含むダウンリンク信号DSをパネル面内の1カ所のみで受信したと判定した場合、センサコントローラ31はまず、ID管理テーブル70においてローカルID#kの削除カウンタに0を設定する(ステップS33)。削除カウンタは、ダウンリンク信号DSの受信を試みたにも関わらず受信されなかった回数を示すカウンタであり、ローカルIDごとに設けられる。削除カウンタは、対応するローカルID#kを含むダウンリンク信号DSが受信された場合に、0にリセットされる。ローカルID#kの削除カウンタが0である場合、そのローカルID#kの登録解除は実行されない。
次にセンサコントローラ31は、受信したダウンリンク信号DS内のバースト信号に基づいてスタイラス2の位置を導出する(ステップS34)とともに、ダウンリンク信号DS内のデータ信号に含まれるデータの抽出を行う(ステップS35)。センサコントローラ31はさらに、送信スケジュールの再調整を行う(ステップS36)。
図23には、ステップS36において実行される送信スケジュールの再調整の一例を示している。この例では、スタイラス2a,2bが同時にパネル面上に存在し、スタイラス2a,2bにそれぞれローカルID#1,#2が付与されている。また、スタイラス2b(ローカルID#2)によるダウンリンク信号DSの送信継続時間は、デフォルト値の2倍とされている。センサコントローラ31は、スタイラス2bからグローバルIDを受信し、受信したグローバルIDに基づいて、スタイラス2bのデバイスタイプを判定する。そして、その判定結果から、スタイラス2bによるダウンリンク信号DSの送信継続時間がデフォルト値の2倍である事実を把握する。センサコントローラ31は、こうして把握した事実に基づき、スタイラス2bによるダウンリンク信号DSの送信継続時間がデフォルト値の2倍となるよう各ローカルIDのダウンリンク信号DSの送信スケジュールを決定し、ID管理テーブル70に設定する。そしてそれ以降、スタイラス2bからダウンリンク信号DSの受信を行う場合の受信動作の継続期間がデフォルト値の2倍となるよう、コマンド信号の送信間隔を制御する。
ここで、図23では、グローバルIDを受信する際のセンサコントローラ31の受信動作継続時間が通常より長くなっているが、これは、上述したようにグローバルIDが64ビットという長大なサイズのデータであるためである。このような長大なデータであるグローバルIDを受信するため、センサコントローラ31は、グローバルIDの送信指示を示すコマンド信号を送信した後に行う受信動作の継続期間を、グローバルIDのサイズに合わせて長くしている。この受信動作継続期間の調整は、送信スケジュールの再調整とは別に行われる動作である。
図24には、ステップS36において実行される送信スケジュールの再調整の他の一例を示している。この例では、スタイラス2a,2cが同時にパネル面上に存在し、スタイラス2a,2cにそれぞれローカルID#1,#2が付与されている。センサコントローラ31は、スタイラス2a,2cのそれぞれからグローバルIDを受信し(図示せず)、それによって、スタイラス2aがペン型デバイスであり、スタイラス2cが定規型デバイスである事実を把握する。センサコントローラ31は、こうして把握した事実に基づき、スタイラス2aのスキャンレートがスタイラス2cのスキャンレートの3倍となるよう各ローカルIDのダウンリンク信号DSの送信スケジュールを決定し、ID管理テーブル70に設定する。そしてそれ以降、スタイラス2aのスキャンレートがスタイラス2cのスキャンレートの3倍となるよう、各ローカルIDに宛てたコマンド信号の送信頻度を制御する。
図12に戻る。ステップS36で送信スケジュールの再調整を行ったセンサコントローラ31は、コマンド信号送信処理を終了し、図9のステップS1に戻る。
一方、図12のステップS32においてローカルID#kを含むダウンリンク信号DSをパネル面内の複数カ所で受信したと判定した場合、センサコントローラ31は、ID管理テーブル70において、ローカルID#kの削除カウンタに0を設定する(ステップS37)。また、同じくID管理テーブル70において、ローカルID#kのオペレーション状態の値を「第2のリセットモード」に設定する(ステップS38)とともに、ローカルID#kのリセットコマンド未発行フラグ2に「TRUE」を設定する(ステップS39)。第2のリセットモードは、ローカルID#kの割り当てを解除するための動作モードである点で、図10に示したステップS18で設定される第1のリセットモードと同じであるが、第2のリセットモードは、図27に例示するようにローカルID#nに対して(設定指示ではなく)データ送信指示を示すコマンド信号を送信しているときに重複検出がされた場合に、ローカルID#nの割り当てを優先付けを持って解除するための動作モードである点で、第1のリセットモードと相違する。リセットコマンド未発行フラグ2は、第2のリセットモードにおいて送信されるべきリセット命令が未だ送信されていないときに「TRUE」となり、それ以外のときに「FALSE」となる2値のフラグ情報である。これらを利用するリセット処理の詳細な内容については、後ほど図15を参照して説明する。ステップS39の終了後、センサコントローラ31はコマンド信号送信処理を終了し、図9のステップS1に戻る。
図12のステップS32においてローカルID#kを含むダウンリンク信号DSを受信していないと判定した場合のセンサコントローラ31は、ID管理テーブル70に格納されるローカルID#kの削除カウンタが所定の閾値Dより大きいか否かを判定し(ステップS40)、大きくないと判定した場合には、ローカルID#kの削除カウンタを1増加させる(ステップS43)。一方、大きいと判定した場合には、ID管理テーブル70からローカルID#kの行を削除することにより、ローカルID#kの登録を解除する(ステップS41)。そして、ローカルID#kに対応するスタイラス2に与えていたダウンリンク信号DSの送信機会を他のスタイラス2に割り振るため、ダウンリンク信号DSの送信スケジュールの再調整を行い、その結果によりID管理テーブル70を更新する(ステップS42)。
ステップS40の判定は、要するに、ローカルID#kに対応するスタイラス2からのコマンド信号に対する応答のない状態がD回より多い回数にわたって続いたか否かを判定する処理である。応答のない状態が継続する場合、スタイラス2は、図1に示したセンシング範囲SRを離脱した可能性が高いと考えられる。そこで、センサコントローラ31は、そのような場合にローカルID#kの登録を解除するようにしている。ステップS42又はステップS43の処理を終了したセンサコントローラ31は、コマンド信号送信処理を終了し、図9のステップS1に戻る。
図25は、センサコントローラ31及びスタイラス2aのそれぞれによるローカルIDの登録の解除の説明図である。同図には、ローカルID#1を割り当てられたスタイラス2aが最初パネル面に接触しており(L1)、そこからセンシング範囲SRの外に移動し(L2)、さらにアップリンク検出高さAHを超える高さまで移動する(L3,L4)場合の例を示している。センサコントローラ31は、上記したステップS40~S43の処理により、スタイラス2aがセンシング範囲SRの外に移動して所定時間(上記閾値Dに対応する時間)が経過すると、スタイラス2aに割り当てていたローカルID#1の登録を解除する。これに対し、スタイラス2は、センシング範囲SRの外であってもアップリンク検出高さAHを超えていなければアップリンク信号USを受信できるので、自身の高さがアップリンク検出高さAHを超えていない場合、ローカルID#kの登録を解除しない。スタイラス2aによるローカルID#1の登録の解除は、後述する図17で説明するように、アップリンク信号USを受信できなくなって所定時間が経過した後に実行される。
次に、図13及び図14には、図11のステップS21でローカルID#kのオペレーション状態の値が「第1のリセットモード」と判定された場合の処理を示している。図13に示すように、この場合のセンサコントローラ31は、まず初めに、ID管理テーブル70を参照することによりローカルID#kのリセットコマンド未発行フラグ1の値を判定する(ステップS50)。その結果、ローカルID#kのリセットコマンド未発行フラグ1が「TRUE」であった場合、ローカルID#kのリセット命令を示すコマンド信号を送信する(ステップS51)。このコマンド信号を受けたスタイラス2は、自身のメモリ45(図2参照)内に記憶しているローカルID#kを削除する。センサコントローラ31はその後、ローカルID#kのリセットコマンド未発行フラグ1に「FALSE」を設定し(ステップS52)、続いてダウンリンク信号DSの受信動作を実施する(ステップS53)。このステップS53では、センサコントローラ31は、たとえローカルID#kを含むダウンリンク信号DSが受信されたとしても、その信号に基づく動作を行わない。ただし、ダウンリンク信号DS内のローカルIDを判定する動作を行うこととしてもよく、そのローカルIDがローカルID#k以外のローカルIDであった場合には、そのダウンリンク信号DSに基づく動作(図12のステップS34~ステップS36に示した動作)をさらに行うこととしてもよい。
ステップS53の後、センサコントローラ31は、送信スケジュールの再調整を行うこととしてもよい(ステップS54)。この再調整は、リセット命令を出したローカルID#kに割り当てたスキャンレート及びダウンリンク信号DSの送信継続時間を、デフォルトの値に戻す処理であるとしてよい。
ステップS50でローカルID#kのリセットコマンド未発行フラグ1が「FALSE」であると判定した場合、センサコントローラ31は、図14に示すように、まずローカルID#kの設定指示を示すコマンド信号を送信する(ステップS55)。これは要するに、ステップS51においてローカルID#kのリセット命令を示すコマンド信号を送信した後、ローカルID#kにかかるコマンド信号を送信する次の機会における処理である。コマンド信号を送信した後、センサコントローラ31はダウンリンク信号DSの受信動作を実施し(ステップS56)、ローカルID#kを含むダウンリンク信号DSを受信したか否かを判定する(ステップS57)。
ステップS57においてローカルID#kを含むダウンリンク信号DSをパネル面内の1カ所のみで受信したと判定した場合、センサコントローラ31はまず、ID管理テーブル70においてローカルID#kの削除カウンタに0を設定する(ステップS58)。次にセンサコントローラ31は、ID管理テーブル70においてローカルID#kの登録を一旦解除し、再度ローカルID#kをID管理テーブル70に登録する処理を行う(ステップS59)。一旦解除するため、ローカルID#kのオペレーション状態の値(図8参照)は、ここで「通常モード」に戻る。そして、受信したダウンリンク信号DS内のバースト信号に基づいてスタイラス2の位置を導出する(ステップS60)とともに、もしダウンリンク信号DS内のデータ信号がローカルID#k以外のデータを含む場合には、そのデータの抽出を行う(ステップS61)。その後センサコントローラ31は、ステップS17と同様に送信スケジュールの再調整を行う(ステップS62)。このステップS62の終了後、センサコントローラ31はコマンド信号送信処理を終了し、図9のステップS1に戻る。
図26には、第1のリセットモードに関わるセンサコントローラ31及びスタイラス2の動作の一例を示している。この例では、センサコントローラ31が送信したローカルID#1の設定指示に対し、スタイラス2a,2bの両方が同時に応答している。このような状況は、図26にも示すように、スタイラス検索信号の送信インターバルの間にスタイラス2a,2bがともにペンダウン状態となった場合に生じ得る。センサコントローラ31は、複数カ所でローカルID#1を含むダウンリンク信号DSを受信したことを検出すると(図26の「重複を検出」。フロー図では、図10のステップS13)、ローカルID#1のリセット命令を示すコマンド信号を送信する(フロー図では、図13のステップS51)。その後、センサコントローラ31は、ローカルID#1の設定指示を示すコマンド信号を複数回にわたり送信する(フロー図では、図14のステップS55)。
スタイラス2の動作の詳細については後述するが、スタイラス2a,2bはそれぞれ、このローカルID#1のリセット命令を示すコマンド信号を受信した後、ローカルID#1の登録を解除するとともにID設定ウェイトカウンタの値を発生し、その値に応じた時間だけ、次に受信される設定指示を無視する。この無視する期間が終了した後、センサコントローラ31によって送信されるローカルID#1の設定指示を示すコマンド信号を受信したスタイラス2(図26ではスタイラス2a)は、ローカルID#1を含むダウンリンク信号DSを送信し、これによってローカルID#1が改めてID管理テーブル70に登録される(図26の「#1を登録」。フロー図では、図14のステップS59)。このように、本実施の形態によるセンサコントローラ31及びスタイラス2の処理によれば、スタイラス検索信号の送信直後に送信される設定指示に対して複数のスタイラス2から応答があった場合であっても、速やかに、そのうちの1つのみにローカルIDを割り当て直すことができる。なお、ローカルID#1を割り当てられなかったスタイラス2bは、図26にも示すように、次のスタイラス検索信号の直後に送信されるローカルID#2の設定指示を示すコマンド信号を受信することにより、ローカルID#2としてセンサコントローラ31との通信を開始することになる。
図14に戻る。ステップS57においてローカルID#kを含むダウンリンク信号DSをパネル面内の複数カ所で受信したと判定した場合、センサコントローラ31は、ID管理テーブル70においてローカルID#kの削除カウンタに0を設定する(ステップS63)とともに、ローカルID#kのリセットコマンド未発行フラグ1に再度「TRUE」を設定したうえで(ステップS64)、コマンド信号送信処理を終了し、図9のステップS1に戻る。これは、上述したID設定ウェイトカウンタの値が偶然一致した場合の処理であり、ステップS64においてローカルID#kのリセットコマンド未発行フラグ1に再度「TRUE」を設定することにより、リセット命令を示すコマンド信号の送信(図13のステップS51)から処理がやり直されることになる。
ステップS57においてローカルID#kを含むダウンリンク信号DSを受信していないと判定した場合のセンサコントローラ31は、ローカルID#kの削除カウンタ(図8参照)が所定の閾値Dより大きいか否かを判定し(ステップS65)、大きくないと判定した場合には、ローカルID#kの削除カウンタを1増加させる(ステップS68)。一方、大きいと判定した場合には、ID管理テーブル70からローカルID#kの行を削除することにより、ローカルID#kの登録を解除する(ステップS66)。そして、ローカルID#kに対応するスタイラス2に与えていたダウンリンク信号DSの送信機会を他のスタイラス2に割り振るため、ダウンリンク信号DSの送信スケジュールの再調整を行い、その結果によりID管理テーブル70を更新する(ステップS67)。ステップS65~S68の処理は、例えば図26の例で言えば、センサコントローラ31がローカルID#1の設定指示を示すコマンド信号を送信している間に、スタイラス2a,2bの両方がセンシング範囲SRを離脱した場合に実行されることになる。
次に、図15には、図11のステップS21で「第2のリセットモード」と判定された場合の処理を示している。
ここで、第2のリセットモードにおけるセンサコントローラ31及びスタイラス2の処理について、先に図27を参照して詳しく説明する。
図12を参照して説明したように、あるローカルID#kのオペレーション状態の値が第2のリセットモードに設定されるのは、ローカルID#kについての設定指示を示すコマンド信号に対してではなく、ローカルID#kのデータ送信指示を示すコマンド信号に対して、2つ以上のスタイラス2が同時に、ローカルID#kを含むダウンリンク信号DSを送信した場合である。図27には、このような状態が生ずる場合の一例を示している。同図の例では、初期状態として、スタイラス2aのみにローカルID#1が割り当てられており、スタイラス2bにはローカルIDは割り当てられていない。この状況でスタイラス2aがセンシング範囲SRを離脱する(時刻t1)と、スタイラス2aからのダウンリンク信号DSが届かなくなることから、センサコントローラ31は所定時間の後にローカルID#1の登録を解除する。しかし、図25を参照して説明したように、スタイラス2におけるローカルIDの登録の解除はセンサコントローラ31に比べて遅れて実行されるので、図27の例では、センサコントローラ31がローカルID#1の登録を解除した後も、スタイラス2におけるローカルIDの登録の解除は実行されていない。
スタイラス2aがローカルID#1を保持したままの状態であっても、スタイラス2bが新たにセンシング範囲SR内に入る(時刻t2)と、スタイラス2bはセンサコントローラ31が送信するローカルID#1の設定指示を示すコマンド信号を受信し、その結果として、センサコントローラ31はスタイラス2bにローカルID#1を割り当てることになる。その後、ローカルID#1を保持したままのスタイラス2aが再びセンシング範囲SR内に入る(時刻t3)と、スタイラス2a,2bの双方が、ローカルID#1に宛てたデータ送信指示を示すコマンド信号に対して応答することになる。これが、図12に示したステップS32で「複数カ所で受信」と判定される場合であり、図15には、このようなローカルID#1の重複(複数のスタイラス2が同じローカルID#kを保持している状態)を解消するための処理が記載されている。
図15に戻る。この場合のセンサコントローラ31は、まず初めに、ローカルID#kのリセットコマンド未発行フラグ2の値を判定する(ステップS70)。その結果、ローカルID#kのリセットコマンド未発行フラグ2が「TRUE」であった場合、ローカルID#kのリセット命令を示すコマンド信号を送信する(ステップS71)とともに、ID管理テーブル70においてローカルID#kのリセットコマンド未発行フラグ2に「FALSE」を設定する(ステップS72)。これらは、センサコントローラ31がローカルID#kの重複を検出した直後に行う処理である。図27では、「重複を検出」の直後のリセット命令が、ステップS71で送信されるリセット命令に相当する。一方、ステップS70においてローカルID#kのリセットコマンド未発行フラグ1が「FALSE」であると判定した場合、センサコントローラ31は、ローカルID#kのデータ送信指示を示すコマンド信号を送信する(ステップS73)。
ステップS72又はステップS73の終了後、センサコントローラ31は、ダウンリンク信号DSの受信動作を実施する(ステップS74)。そして、ローカルID#kを含むダウンリンク信号DSを受信したか否かを判定する(ステップS75)。
ステップS75においてローカルID#kを含むダウンリンク信号DSを受信したと判定した場合、センサコントローラ31は、受信したダウンリンク信号DS内のバースト信号に基づいてスタイラス2の位置を導出する(ステップS76)。ここで、詳しくは後述するが、スタイラス2は、新たなローカルIDを登録した直後でなければ、リセット命令を示すコマンド信号を受信しても、リセット(ローカルIDの登録の解除)をしばらくの間先延ばしし、データ送信指示を示すコマンド信号への応答としてのダウンリンク信号DSの送信を実行し続けるよう構成される。この先延ばし期間の長さは、後述するID解除ウェイトカウンタの値によって決定される。したがって、ステップS76では、しばらくの間、1以上の位置が導出され続けることになる。
センサコントローラ31は、ステップS76で導出した1以上の位置の中から、以前に導出していた位置と連続する位置を選択する(ステップS77)。図27の例で言えば、センサコントローラ31が重複を検出する直前までセンサコントローラ31と通信していたのはスタイラス2bであるので、ステップS77では、スタイラス2bのダウンリンク信号DSに基づいて導出された位置が選択されることになる。
次いでセンサコントローラ31は、ステップS77で位置を選択できたか否かを判定する(ステップS78)。上述したように、スタイラス2はリセット命令を示すコマンド信号の受信後、ID解除ウェイトカウンタの値によって決定される期間にわたり、データ送信指示を示すコマンド信号への応答を継続する。したがって、以前に導出していた位置と連続する位置にあるスタイラス2が他のスタイラス2よりも先に応答を中止する場合があり得、その場合には、ステップS78で選択できなかったと判定されることになる。
ステップS78で選択できたと判定した場合、センサコントローラ31は、ID管理テーブル70においてローカルID#kの削除カウンタに0を設定する(ステップS79)とともに、選択した位置に対応するダウンリンク信号DS内のデータ信号に含まれるデータの抽出を行う(ステップS80)。これにより、以前に導出していた位置と連続する位置にあるスタイラス2の位置を示す座標x,y、ローカルID、及びデータのみが、電子機器制御部33にレポートされることになる。センサコントローラ31はさらに、データの内容によっては(例えば、抽出したデータがグローバルIDである場合など)送信スケジュールの再調整を行ったうえで(ステップS81)、コマンド信号送信処理を終了し、図9のステップS1に戻る。
ステップS75においてローカルID#kを含むダウンリンク信号DSを受信しなかったと判定した場合、又は、ステップS78で選択できなかったと判定した場合、センサコントローラ31は、ローカルID#kの削除カウンタ(図8参照)が所定の閾値Dより大きいか否かを判定し(ステップS82)、大きくないと判定した場合には、ローカルID#kの削除カウンタを1増加させる(ステップS85)。一方、大きいと判定した場合には、ID管理テーブル70からローカルID#kの行を削除することにより、ローカルID#kの登録を解除する(ステップS83)。これにより、図11のステップS20においてローカルID#kが送信対象と決定されることがなくなるので、ステップS73におけるローカルID#kのデータ送信指示を示すコマンド信号の送信も中止される。そしてセンサコントローラ31は、ローカルID#kに対応するスタイラス2に与えていたダウンリンク信号DSの送信機会を他のスタイラス2に割り振るため、ダウンリンク信号DSの送信スケジュールの再調整を行い、その結果によりID管理テーブル70を更新する(ステップS84)。ステップS84の処理を終了したセンサコントローラ31は、コマンド信号送信処理を終了し、図9のステップS1に戻る。
以上、センサコントローラ31の本発明に関する動作について詳しく説明した。次に、スタイラス2の本発明に関する動作について詳しく説明する。
スタイラス2は、図16に示すように、まずセンサコントローラ31の検出状態を判定する(ステップS100)。その結果、センサコントローラ31を未だ検出していない未検出状態であると判定した場合、スタイラス2は、上述した検出パターンc1の検出を試行する(ステップS101)。この処理は、センサコントローラ31が間欠的に送信しているスタイラス検索信号を検出するための処理である。
次にスタイラス2は、ステップS101での試行の結果、検出パターンc1を検出したか否かを判定する(ステップS102)。その結果、検出していないと判定した場合には、所定時間動作を休止した後(ステップS103)、ステップS100に戻って検出パターンc1の検出の試行を繰り返す。ステップS103で動作を休止しているのは、受信動作を間欠的に行うことによってスタイラス2の電力消費を抑えるためである。一方、ステップ102で検出したと判定した場合には、スタイラス検索信号の終了を待機する(ステップS104)。上述したように、スタイラス検索信号は、既知の検出パターンc1の繰り返しと、末尾に付加される区切りパターンSTPとにより構成される信号である。そこでスタイラス2は、区切りパターンSTPを検出することにより、検出パターンの終了を検出する。その後、スタイラス2は、センサコントローラ31の検出状態を検出済状態に設定し、ステップS100に戻る。
ステップS100において検出済状態であると判定した場合には、スタイラス2は、コマンド信号受信処理を行う(ステップS106)。
図17には、コマンド信号受信処理の詳細を示している。同図に示すように、コマンド信号受信処理を開始したスタイラス2は、アップリンク信号USの未検出時間の測定を開始する(ステップS110)。そして、コマンド信号の受信動作を実施し(ステップS111)、コマンド信号を受信したか否かを判定する(ステップS112)。
ステップS112でコマンド信号を受信していないと判定した場合、スタイラス2は、ステップS110で未検出時間の測定を開始してから所定時間が経過したか否かを判定する(ステップS113)。この所定時間は、例えば数百ミリ秒等の1秒よりも短い時間である。ここで経過していないと判定した場合には、ステップS111に戻り、再度、コマンド信号の受信動作を実施する。一方、経過したと判定した場合(すなわち、アップリンク信号USが所定期間にわたって検出されない場合)には、センサコントローラ31の検出状態を未検出状態に設定する(ステップS114)とともに、メモリ45(図2参照)にローカルIDが登録されていれば、消去することによってそのローカルIDの登録を解除したうえで(ステップS115)、コマンド信号受信処理を終了し、図16のステップS100に戻る。ステップS114,S115の処理は、スタイラス2が図1に示したアップリンク検出高さAHを超える高さまで移動し、アップリンク信号USを受信できなくなった場合に行われる処理である。
ここで、スタイラス2は、ローカルIDがメモリ45に登録済みである場合には、上記のようにアップリンク信号USが所定期間にわたって検出されない場合だけでなく、メモリ45に登録されているローカルIDを含むアップリンク信号USが所定期間にわたって検出されない場合にも、ローカルIDの登録を解除することとしてもよい。こうすることで、例えば、スタイラス2がローカルIDをメモリ45に記憶しており、かつ、アップリンク検出高さAHより低い位置に留まっているが、センサコントローラ31にはそのローカルIDが登録されていない(解除済みである)場合など、スタイラス2から見て、アップリンク信号USは検出できるものの自己のローカルIDを含むアップリンク信号USがいつまで待っても検出されない、という状態が生じた場合に、スタイラス2をアップリンク検出高さAHより高い位置に移動させなくても、センサコントローラ31からスタイラス2に新たなローカルIDを割り当てることが可能になる。
一方、ステップS112でコマンド信号を受信したと判定した場合、スタイラス2は、未検出時間の値をリセットするとともに、受信したコマンド信号により示されるコマンドの内容が「設定指示」「リセット命令」「データ送信指示」のいずれであるかを判定する(ステップS117)。
<D.ID設定指示に対する動作>
図18には、図17のステップS117で「設定指示」と判定された場合の処理を示している。この場合、スタイラス2は、まずID設定ウェイトカウンタが0であるか否かを判定する。ID設定ウェイトカウンタは、ID設定指示を受けたスタイラス2が設定指示があっても即座に反映しない(無視する)期間を表すものであって、後述するステップS135で設定されるものであり、初期状態では0である。ID設定ウェイトカウンタが0でない場合、スタイラス2はID設定ウェイトカウンタを1減少させる処理を行ったうえで(ステップS125)コマンド信号受信処理を終了し、図16のステップS100に戻る。この場合、センサコントローラ31によるローカルIDの設定指示は、スタイラス2によって無視されることになる。
一方、ID設定ウェイトカウンタが0であれば、スタイラス2は、自身のメモリ45(図2参照)にローカルIDが登録済みであるか否かを判定する(ステップS121)。ここで登録済みと判定した場合、スタイラス2は、特段の処理を行わずにコマンド信号受信処理を終了し、図16のステップS100に戻る。一方、登録済みでないと判定した場合のスタイラス2は、コマンド信号からローカルIDを抽出し、自身のメモリ45に登録する(ステップS122)。そして、登録したローカルIDを含むダウンリンク信号DSを送信し(ステップS123)、さらに設定暫定フラグに「TRUE」を設定したうえで(ステップS124)、コマンド信号受信処理を終了し、図16のステップS100に戻る。設定暫定フラグが「TRUE」であることは、ローカルIDの設定が暫定的なものであり、設定暫定フラグが「FALSE」であることは、メモリに保持されているローカルIDが確定していることを意味する。
<E.リセット指示に対する動作>
図19には、図17のステップS117で「リセット命令」と判定された場合の処理を示している。この場合のスタイラス2はまず、受信されたコマンド信号が登録中のローカルIDを含むか否かを判定する(ステップS130)。含まないと判定した場合には、特段の処理を行わずにコマンド信号受信処理を終了し、図16のステップS100に戻る。これは、自分宛でないコマンド信号を無視するための処理である。一方、含むと判定した場合には、次に筆圧検出センサ23(図24)で検出されている筆圧が0を超えているか否かを判定する(ステップS131)。その結果、筆圧が0を超えていれば、特段の処理を行わずにコマンド信号受信処理を終了し、図16のステップS100に戻る。これは、既にスタイラス2がパネル操作面で利用されペンタッチ操作されているような場合(典型的には、スタイラス2をつかった描画処理等が開始されている場合)には、リセット命令に従わずに処理を継続することを意味する。一方、筆圧が0であれば、次に設定暫定フラグの値を判定する(ステップS132)。
設定暫定フラグが「TRUE」であった場合、スタイラス2は、メモリ45からローカルIDを削除することによってローカルIDの登録を解除する(ステップS133)。これにより、スタイラス2はローカルID未登録の状態となる。続いてスタイラス2は、設定暫定フラグに「FALSE」を設定する(ステップS134)とともにID設定ウェイトカウンタを発生し(ステップS135)たうえで、コマンド信号受信処理を終了し、図16のステップS100に戻る。
ステップS132で設定暫定フラグが「TRUE」であると判定されることは、スタイラス2がローカルIDを登録した直後にリセット命令を示すコマンド信号が送信されたことを意味する。これは、図26に例示するように、センサコントローラ31が送信したローカルIDの設定指示に対し、複数のスタイラス2が応答した場合である。ステップS135で生成されるID設定ウェイトカウンタは、このような場合にリセット命令を受けたスタイラス2が、設定指示を無視する期間を表している。なお、ID設定ウェイトカウンタや、後述するステップS136で生成されるID解除ウェイトカウンタの値は、スタイラス2の筐体毎に異なる値であればよく、グローバルIDのシリアル番号などから生成するとしても良いし、デバイスタイプに応じて優先される値が決まっているとしてもよいし、乱数生成器により生成されるとしてもよい。こうしてID設定ウェイトカウンタに応じた期間だけ各スタイラス2が設定指示を無視することにより、図26を参照して前述したように、そのうちの1つのスタイラス2だけに、同じローカルIDを再度割り当てることが可能になる。
図19に戻る。ステップS132において設定暫定フラグが「FALSE」であると判定した場合、スタイラス2は、ID解除ウェイトカウンタを発生する(ステップS136)とともに、リセット実行中フラグに「TRUE」を設定する(ステップS137)。そして、コマンド信号受信処理を終了し、図16のステップS100に戻る。
ステップS132で設定暫定フラグが「FALSE」であると判定される場合とは、スタイラス2がローカルIDを登録した直後など暫定的にローカルIDが設定されたときでなく既にローカルIDが確定された後に、リセット命令を示すコマンド信号が送信されたことを意味する。これは、図27を参照して説明したように、データ送信指示を示すコマンド信号に対して、2つ以上のスタイラス2が同時に、同じローカルIDを含むダウンリンク信号DSを送信した場合である。ステップS136で生成されるID解除ウェイトカウンタは、このような場合にリセット命令を受けたスタイラス2が、ローカルIDの登録解除の実行を遅らせる時間を表している。こうしてID解除ウェイトカウンタに応じた期間だけ各スタイラス2がローカルIDの登録解除の実行を遅らせることにより、図27に例示するように、センサコントローラ31は引き続き、スタイラス2の位置検出及びスタイラス2からのデータ取得を行うことが可能になる。なお、図15を参照して説明したように、センサコントローラ31は、このような場合に、以前の導出位置と連続する位置に対応するダウンリンク信号DSのみを処理の対象としている(ステップS76~S81)ので、新たにセンシング範囲SR内に入ってきたスタイラス2(図27ではスタイラス2a)ではなく、引き続きセンシング範囲SR内に留まっているスタイラス2(図27ではスタイラス2b)についてのみ、位置検出とデータ取得が行われることになる。したがって、ユーザがあるスタイラス2(第1のスタイラス2)をペンタッチさせてパネル面上で使用し始めた後で、アップリンク検出高さAH内に維持されていた他のスタイラス2(第2のスタイラス2)が時間差を置いてセンシング範囲SR内に入ったときに発生するローカルIDに対して、センサコントローラ31は引き続き第1のスタイラス2である蓋然性の高い方の座標値を利用して座標を検出し、電子機器制御部33にレポートする、という動作を実現することが可能となる。
<F.データ送信指示に対する動作>
図20には、図17のステップS117で「データ送信指示」と判定された場合の処理を示している。この場合のスタイラス2はまず、受信されたコマンド信号が登録中のローカルIDを含むか否かを判定する(ステップS140)。含まないと判定した場合には、特段の処理を行わずに現在受信しているコマンド信号についてのコマンド信号受信処理を終了し、図16のステップS100に戻り、次のコマンド信号受信処理を開始する。これは、自分宛でないコマンド信号を無視し、次のコマンドに対する応答の準備を開始するための処理である。一方、含むと判定した場合には、設定暫定フラグに「FALSE」を設定し(ステップS141)、続いてリセット実行中フラグの値を判定する(ステップS142)。
リセット実行中フラグが「FALSE」であった場合、スタイラス2は、登録中のローカルIDと、コマンド信号によって送信を指示されたデータとを含むダウンリンク信号DSを送信する(ステップS147)。そして、コマンド信号受信処理を終了し、図16のステップS100に戻る。この処理は、データ送信指示を示すコマンド信号に対する通常の応答である。
一方、ステップS142においてリセット実行中フラグが「TRUE」であると判定した場合、スタイラス2は、まずID解除ウェイトカウンタが0であるか否かを判定する(ステップS143)。ID解除ウェイトカウンタの初期状態はID設定ウェイトカウンタと同じく0であるが、スタイラス2がローカルIDの登録直後でない時期にリセット命令を受けた直後には、ステップS136において、ID解除ウェイトカウンタに0でない値が設定されている。ID解除ウェイトカウンタが0でないと判定した場合、スタイラス2はID解除ウェイトカウンタを1減少させる処理を行ったうえで(ステップS146)、登録中のローカルIDと、コマンド信号によって送信を指示されたデータとを含むダウンリンク信号DSを送信する(ステップS147)。そして、コマンド信号受信処理を終了し、図16のステップS100に戻る。このステップS146,S147の処理は、図27を参照して説明したように、スタイラス2がローカルIDの登録解除の実行を遅らせている場合の処理である。
一方、ステップS142においてID解除ウェイトカウンタが0であると判定した場合、スタイラス2は、メモリ45からローカルIDを削除することによってローカルIDの登録を解除する(ステップS144)とともに、リセット実行中フラグに「FALSE」を設定する(ステップS145)。そして、コマンド信号受信処理を終了し、図16のステップS100に戻る。これにより、遅らせていたローカルIDの登録解除が実行される。
以上説明したように、本実施の形態によるセンサコントローラ31及びスタイラス2によれば、センサコントローラ31は、設定指示を示すコマンド信号によりスタイラス2にローカルIDを割り当て、さらに、その他のコマンド信号にローカルIDを含めることにより、そのコマンド信号に応答すべきスタイラス2を指定することができる。したがって、各スタイラスがダウンリンク信号DSを送信するタイミングを柔軟に変更することが可能になる。
また、センサコントローラ31は、コマンド信号にローカルIDの値を1つ含めるだけで、コマンド信号に応答すべきスタイラス2を指定することができるので、各スタイラス2がダウンリンク信号DSを送信するタイミングを予め行うネゴシエーションにより決定する場合に比べ、コマンド信号のサイズを小さくすることが可能になる。
また、ステップS130又はステップS140において、受信されたコマンド信号が登録中のローカルIDを含まないと判定した場合、スタイラス2は、直ちに次のコマンド信号の受信動作(ステップS111)に移ることができる。したがって、他のスタイラス2が送信するダウンリンク信号DSの長さによらず、好適に次のコマンド信号を受信することが可能になる。
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
例えば、上記実施の形態では、位置検出システム1が2本のペン型スタイラス2a,2bと1個の定規型スタイラス2cとを含むものとして説明したが、位置検出システム1に含まれるスタイラス2の数はこれに限られない。本発明は、形態を問わず複数のスタイラス2を含む位置検出システム1に適用可能である。
図28及び図29はそれぞれ、本発明の実施の形態の第1の変形例によるスタイラス2a,2bとセンサコントローラ31との間で送受信される信号を示すタイムチャートである。図28には、図22と同様に、センサコントローラ31がスタイラス2aを登録した後、さらにスタイラス2bを登録する場面を示し、図29には、図24と同様に、センサコントローラ31がスタイラス2a,2cそれぞれのデバイスタイプに基づいて送信スケジュールの再調整を行った後、スタイラス2a,2cによる通常の書き込みが行われている場面を示している。
本変形例では、上述したフレーム通信により、スタイラス2a,2bとセンサコントローラ31との間の通信が行われる。このフレーム通信は、それぞれ4つのスロットT1~T4を含むフレームF1,F2,・・・を利用して実行される。なお、1フレーム内のスロットの数は4つに限定されない。上述したように、各フレームは液晶パネル32(図1参照)の表示動作期間であり、各スロットのタイミングは液晶パネル32のブランク期間に基づいて決定される。センサコントローラ31は、液晶パネル32から発生するノイズを観測するか、又は、液晶パネル32から情報を取得することにより、各スロットのタイミング及び時間長、並びに、各フレームに含まれるスロットの数を決定する。決定されたこれらの情報は、アップリンク信号USにより、センサコントローラ31からスタイラス2に対して通知される。
センサコントローラ31は、所定数(図28では3個)のフレームごとに、その最初のスロットT1を利用してスタイラス検索信号を送信するよう構成される。また、その他の各スロットの先頭で、コマンド信号を送信するよう構成される。一方、スタイラス2は、コマンド信号を受信した場合に、そのコマンド信号に応答してダウンリンク信号DSを送信するよう構成される。
本実施の形態においても、ダウンリンク信号DSの送信継続時間はスタイラス2の仕様によって異なり得る。センサコントローラ31は、グローバルIDの受信によってスタイラス2のダウンリンク信号DSの送信継続時間を取得した場合には、取得したダウンリンク信号DSの送信継続時間に基づいて送信スケジュールを決定し、ID管理テーブル70に書き込む。そして、書き込んだダウンリンク信号DSの送信継続時間を実現すべく、コマンド信号の送信間隔を制御する。もしダウンリンク信号DSの送信継続時間が1つのスロット内に収まらないほどに長い場合には、センサコントローラ31は、スロットの先頭でのアップリンク信号USの送信をスキップすることにより、そのダウンリンク信号DSの送信継続時間を実現する。
本変形例は、その他の点では、上記実施の形態と同一である。したがって、本変形例によっても、図28に示すように、ローカルIDの設定指示を示すコマンド信号により新たなローカルIDをスタイラス2及びセンサコントローラ31の双方に登録することが可能であるし、図29に例示するように、ローカルIDによってスキャンレートを変更することも可能である。
以上説明したように、本変形例によれば、ローカルIDの値を含むコマンド信号をセンサコントローラ31が送信時間ごとに送信しているので、センサコントローラ31は、その送信時間内でダウンリンク信号DSを送信すべきスタイラス2を指定することができる。したがって、各スタイラス2に対する送信時間の割り当てを、フレームよりも短いスロットの単位で柔軟に変更することが可能になる。また、コマンド信号にローカルIDの値を1つ含めるだけで、センサコントローラ31から各スタイラス2に送信時間(本変形例ではスロット)の割り当てを指示することが可能になるので、上述したようにフレームごとにスロットの割り当てを指示するためのアップリンク信号を各スタイラスにブロードキャスト送信する場合に比べ、送信時間としてのスロットの割り当てを指示するためのアップリンク信号のサイズを小さくすることが可能になる。
図30は、本発明の実施の形態の第2の変形例によるスタイラス2の処理フローを示すフロー図である。本変形例は、「データ送信指示」を示すコマンド信号が「設定指示」を兼ねている点、スタイラス2が設定指示を無視する期間(図26)を設けない点、リセット命令を受けたスタイラス2がローカルIDの登録の解除を先延ばしする期間(図27)を設けない点、ローカルIDの登録を解除する前に筆圧の判定を行わない(筆圧によらずローカルIDの登録の解除を行う)点等で、上記実施の形態と相違する。以下、図30を参照しながら、本変形例によるスタイラス2の動作について説明する。
本変形例によるスタイラス2は、初めにスタイラス検索信号の検出を試行し(ステップS200)、その結果としてスタイラス検索信号を検出したか否かを判定する(ステップS201)。スタイラス検索信号の具体的な内容及び検出の方法は上述した実施の形態と同様でよく、その場合には、ステップS201で肯定判定がされるのは、区切りパターンSTPが検出されたときである。
ステップS201で否定判定を得た場合、スタイラス2は、ステップS200に戻ってスタイラス検索信号の検出の試行を繰り返す。一方、ステップS201で肯定判定を得た場合のスタイラス2は、コマンド信号の受信動作を実施し(ステップS202)、コマンド信号を受信したか否かを判定する(ステップS203)。ステップS202,S203の処理は、図17に示したステップS111,S112と同様の処理である。
ステップS203で否定判定を得た場合、スタイラス2は、最後にコマンド信号を受信してから所定時間が経過したか否かを判定する(ステップS204)。その結果、経過していないと判定した場合には、ステップS202に戻ってコマンド信号の受信動作を繰り返し、経過したと判定した場合には、その時点でローカルIDがメモリ45(図2参照)に登録されていれば、メモリ45からローカルIDを消去することによってローカルIDの登録を解除し、ステップS200に戻る。
ステップS203で肯定判定を得た場合のスタイラス2は、受信したコマンド信号により示されるコマンドの内容が「リセット命令」「データ送信指示」のいずれであるかを判定する。本変形例では、上記したように「データ送信指示」を示すコマンド信号が「設定指示」を兼ねているので、3種類のコマンド内容を判別する図17のステップS117とは異なり、ステップS203で判別されるコマンドの内容は2種類である。
ステップS206で「リセット命令」であると判定した場合、スタイラス2は、受信されたコマンド信号が登録中のローカルIDを含むか否かを判定する(ステップS207)。そして、含まないと判定した場合には、ステップS202に戻ってコマンド信号の受信動作を繰り返し、含むと判定した場合には、メモリ45からローカルIDを消去することによってローカルIDの登録を解除し、ステップS200に戻る。
ステップS206で「データ送信指示」であると判定した場合には、スタイラス2は、次に、自身のメモリ45にローカルIDが登録済みか否かを判定する(ステップS209)。そして、登録されていなければ、受信されたコマンド信号からローカルIDを抽出し、メモリ45に登録する(ステップS210)。そして、登録したローカルIDと、コマンド信号によって送信を指示されたデータとを含むダウンリンク信号DSを送信する(ステップS147)。その後、スタイラス2は、ステップS202に戻ってコマンド信号の受信動作を繰り返す。
ステップS209でローカルIDが登録済みであると判定した場合のスタイラス2は、次に、受信されたコマンド信号が登録中のローカルIDを含むか否かを判定する(ステップS212)。そして、含まないと判定した場合には、ステップS202に戻ってコマンド信号の受信動作を繰り返す。一方、含むと判定した場合には、登録中のローカルIDと、コマンド信号によって送信を指示されたデータとを含むダウンリンク信号DSを送信し(ステップS213)、その後、ステップS202に戻ってコマンド信号の受信動作を繰り返す。
本変形例によっても、センサコントローラ31は、設定指示を示すコマンド信号によりスタイラス2にローカルIDを割り当て、さらに、その他のコマンド信号にローカルIDを含めることにより、そのコマンド信号に応答すべきスタイラス2を指定することができる。したがって、各スタイラスがダウンリンク信号DSを送信するタイミングを柔軟に変更することが可能になる。
また、センサコントローラ31は、コマンド信号にローカルIDの値を1つ含めるだけで、コマンド信号に応答すべきスタイラス2を指定することができるので、各スタイラス2がダウンリンク信号DSを送信するタイミングを予め行うネゴシエーションにより決定する場合に比べ、コマンド信号のサイズを小さくすることが可能になる。
また、本変形例では、「データ送信指示」を示すコマンド信号が「設定指示」を兼ねているため、スタイラス2は、ローカルIDを登録した直後のステップS211で、データを含む通常のダウンリンク信号DSを送信することができる。したがって、「設定指示」への返答をデータを含まないダウンリンク信号DSにより行う場合に比べ、ダウンリンク信号DSの送信機会を1回増やすことがてきる。
なお、上記実施の形態では、ダウンリンク信号DSはバースト信号及びデータ信号という2つの信号を含んで構成されるとしたが、バースト信号のみやデータ信号のみなど、これら2つの信号の一方のみを含むものとしてもよい。
また、上記実施の形態では、グローバルIDの送信を静電結合を利用するダウンリンク信号DSを用いて実行する例を説明したが、グローバルIDは、アップリンク信号USを受信した時点で変化する操作状態とは異なり静的な情報であるため、例えばブルートゥース(登録商標)等の他の近接型無線通信手段によって、スタイラス2からセンサコントローラ31に通知することとしてもよい。これにより、静電結合を利用する通信のうち、グローバルIDを送信するための通信時間を削減することができ、筆圧値やスイッチの押下状態など操作状態を含むデータ信号の送信機会を増加させることができる。
また、上記実施の形態では、アップリンク信号USには、スタイラス検索信号とコマンド信号の2種類があると説明したが、スタイラス検索信号が、新たな未検出のスタイラス2に対するローカルID設定指示コマンドを含んでいるとしてもよい。このようにすることで、スタイラス2は、スタイラス検索信号を受信したタイミングで速やかにローカルIDを設定することが可能になる。
また、上記実施の形態では、制御情報c2、検出パターンc1、区切りパターンSTP等の送信方法として「P」「M」「0~15」等多値をとるシンボルの値を利用する例を説明したが、他の送信方法、例えば、OOK、PSK等の変調方式を利用した送信方法によりこれらの情報ないしパターンを送信することとしてもよい。