(57)【要約】【課題】アクティブスタイラスからセンサコントローラに対し、芯体情報を効率よく送れるようにする。【解決手段】本発明による方法は、アクティブスタイラス及びセンサコントローラを用いた方法であって、アクティブスタイラスが、ステップＳ４におけるビーコン信号ＢＳの検出に応じて、当該アクティブスタイラスのペン先における電極の個数又は配置を特定する情報を含む芯体情報を含む機能情報ＣＰを送信するステップＳ６〜Ｓ８と、センサコントローラが芯体情報を受信することによってアクティブスタイラスの電極の個数又は配置を特定するステップと、アクティブスタイラスが、電極を用いて信号を繰り返し送信するステップＳ１２，Ｓ１３と、センサコントローラが、芯体情報に基づく方法により上記信号に基づいてアクティブスタイラスの位置を導出するステップとを備える。【選択図】図１４
2018026165.tif 000002
【特許請求の範囲】
【請求項１】
アクティブスタイラス及びセンサコントローラを用いた方法であって、
前記アクティブスタイラスが、所定のトリガに応じて、当該アクティブスタイラスのペン先における電極の個数又は配置を特定する情報を含む芯体情報を送信するステップと、
前記センサコントローラが、前記芯体情報を受信することによって前記アクティブスタイラスの電極の個数又は配置を特定するステップと、
前記アクティブスタイラスが、前記電極を用いて信号を繰り返し送信するステップと、
前記センサコントローラが、前記芯体情報に基づく方法により前記信号に基づいて前記アクティブスタイラスの位置を導出するステップと
を備える方法。
【請求項２】
前記芯体情報は、前記アクティブスタイラスが前記ペン先を構成する芯体の中心に存在する第１の電極とは異なる第２の電極を含むか否かを特定する情報であり、
前記センサコントローラは、前記芯体情報により前記アクティブスタイラスが前記第２の電極を含むことが示される場合に、更に、前記第２の電極から送信された信号に基づいて前記アクティブスタイラスの傾きを導出する
請求項１に記載の方法。
【請求項３】
前記第２の電極は、前記第１の電極に比して前記ペン先から遠い位置に設けられた電極である
請求項２に記載の方法。
【請求項４】
前記所定のトリガは、前記センサコントローラが送信するアップリンク信号を前記アクティブスタイラスが検出したことである
請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
前記芯体情報を送信するステップは、前記センサコントローラから供給された信号に対する応答信号により前記芯体情報を送信する
請求項４に記載の方法。
【請求項６】
前記アクティブスタイラスは、前記芯体情報を含む機能情報を含むデータの短縮情報を送信することにより、前記芯体情報を送信する
請求項５に記載の方法。
【請求項７】
前記芯体情報は、前記アクティブスタイラスを識別する固有ＩＤの一部であり、前記芯体情報を送信するステップは、前記固有ＩＤを送信するステップである
請求項６に記載の方法。
【請求項８】
前記芯体情報は、前記アクティブスタイラスが信号送信のために使用する電極が前記芯体の内外いずれにあるかを示す情報を含む
請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
センサコントローラに対して信号を送信可能に構成されたアクティブスタイラスであって、
複数の電極を有するペン先と、
前記複数の電極のいずれかから信号を送信する送信部と、
所定のトリガに応じ、前記センサコントローラに対し前記送信部を利用して、前記ペン先における電極の個数又は配置を特定する情報を含む芯体情報を送信する一方、前記芯体情報を送信した後、前記センサコントローラに対し前記送信部を利用して、信号を繰り返し送信する制御部と
を含むアクティブスタイラス。
【請求項１０】
前記芯体情報は、前記複数の電極に前記ペン先を構成する芯体の中心に存在する第１の電極とは異なる第２の電極が含まれるか否かを特定する情報である
請求項９に記載のアクティブスタイラス。
【請求項１１】
前記第２の電極は、前記第１の電極に比して前記ペン先から遠い位置に設けられた電極である
請求項１０に記載のアクティブスタイラス。
【請求項１２】
前記電極を介して前記センサコントローラから信号を受信する受信部を含み、
前記所定のトリガは、前記受信部を介して前記センサコントローラが送信するアップリンク信号を検出したことである
請求項９乃至１１のいずれか一項に記載のアクティブスタイラス。
【請求項１３】
ペン先における電極の個数又は配置を特定する情報を含む芯体情報、及び、前記ペン先を構成する芯体に付加される筆圧値を含むデータ信号を送信可能に構成されたアクティブスタイラスとともに用いられるセンサコントローラであって、
前記アクティブスタイラスにより送信された前記芯体情報を取得することによって前記アクティブスタイラスの電極の個数又は配置を特定し、
取得した前記芯体情報に基づいて１つの位置導出方法を決定し、決定された位置導出方法により、繰り返し送信される前記データ信号に基づいて繰り返し前記アクティブスタイラスの位置を導出する
センサコントローラ。
【請求項１４】
前記芯体情報は、前記アクティブスタイラスが前記芯体の中心に存在する第１の電極とは異なる第２の電極を含むか否かを特定する情報であり、
前記芯体情報により前記アクティブスタイラスが前記第２の電極を含むことが示される場合に、更に、前記第２の電極から送信された信号に基づいて前記アクティブスタイラスの傾きを導出する
請求項１３に記載のセンサコントローラ。
【請求項１５】
前記第２の電極は、前記第１の電極に比して前記ペン先から遠い位置に設けられた電極である
請求項１４に記載のセンサコントローラ。
【請求項１６】
前記アクティブスタイラスに対してアップリンク信号を送信可能に構成され、
前記アクティブスタイラスは、前記アップリンク信号を検出したことに応じて、前記芯体情報を送信する
請求項１３乃至１５のいずれか一項に記載のセンサコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクティブスタイラス及びセンサコントローラを用いた方法、センサコントローラ、並びにアクティブスタイラスに関する。
【背景技術】
【０００２】
電源装置内蔵型の位置指示器であるアクティブスタイラス（以下、単に「スタイラス」という場合がある）からタブレットに対し、静電結合により信号の送信を行うようにした位置検出装置が知られている。この種の位置検出装置においては、現状、スタイラスから信号を送信してタブレットのセンサコントローラで受信するという、一方向の通信が行われている。特許文献１には、このような位置検出装置の例として、座標データの導出専用の位置信号とともに、筆圧値などのデータとスタイラスの固有ＩＤなどの情報とを通信するスタイラスが開示されている。
【０００３】
特許文献２には、位置検出装置の他の例が開示されている。この例によるスタイラスは、信号送信のための電極と電池とを備えており、筆圧検出した結果をデジタルで送信している。また、タブレットは表示装置及び透明センサによって構成されており、透明センサにより、スタイラスによる指示位置および筆圧と、指によるタッチ位置との両方が検出可能な構成とされている。
【０００４】
近年、スタイラスの筐体とは別の部材によって芯体（ペン先）を構成し、芯体を交換可能としたスタイラスが登場している。特許文献３，４には、そのようなスタイラスの一例が開示されている。
【０００５】
特許文献４には、複数のペン先のうち現在接続されている芯体を検出し、検出された芯体に基づいて位置検出装置の「アプリケーションの特徴」（消しゴムなど）を表すコードを決定し、決定したコードを音響コードにより位置検出装置に向けて送信するスタイラスが開示されている。また、特許文献４には、芯体とスタイラスの間の金属接点の配置又は構造を変えることにより、スタイラスによる芯体の検出を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１５／１１１１５９号公報
【特許文献２】特開２０１４−６３２４９号公報
【特許文献３】米国特許第８６４８８３７号明細書
【特許文献４】米国特許出願公開第２０１４／０１６８１７７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
アクティブスタイラスにおいては、芯体の先端付近の電極の構造（電極の形状、個数、位置など）に応じて、センサコントローラによって検出される電界の分布が変化する可能性がある。このため、アクティブスタイラスからセンサコントローラに対し、予め、スタイラスに取り付けられている芯体の種別を伝達できるようにすることが望まれる。
【０００８】
この伝達を実現するための具体的な方法として、スタイラスからセンサコントローラに対し、芯体の種別を示す情報（以下、「芯体情報」と称する）を送信することが考えられる。しかしながら、静電結合による通信が可能な範囲は高々数十ミリメートルに過ぎないため、スタイラスが新たな芯体が取り付けられたことを検知し、取り付けられた芯体にかかる芯体情報を一度送信したとしても、センサコントローラによって受信されない可能性が高い。芯体が取り付けられる時点で、スタイラスはセンサコントローラから離れた位置にあることが通常だからである。
【０００９】
センサコントローラによる受信を確実なものとするための方法のひとつとして、スタイラスが芯体情報の送信を何度も繰り返し行うことが考えられる。そうして繰り返し送信している間にスタイラスがセンサコントローラに近づけば、結果的にセンサコントローラに芯体情報を伝達できる。しかしながら、スタイラス先端の電極とセンサコントローラが接続されたセンサとの結合容量を用いた通信のビットレートは極めて小さいため、芯体情報の送信を繰り返し行うようスタイラスを構成することは、通信リソースの利用効率の点で有効とは言えない。
【００１０】
したがって、本発明の目的の一つは、アクティブスタイラスからセンサコントローラに対し、芯体情報を効率よく送ることのできる、アクティブスタイラス及びセンサコントローラを用いた方法、センサコントローラ、並びにアクティブスタイラスを提供することにある。
【課題を解決するための手段】
【００１１】
本発明による方法は、アクティブスタイラス及びセンサコントローラを用いた方法であって、前記アクティブスタイラスが、ペンダウン操作が発生した場合に生ずる所定のトリガに応じて、当該アクティブスタイラスのペン先を構成する芯体の種別を示す芯体情報を送信するステップと、前記センサコントローラが、前記芯体情報を受信し、前記アクティブスタイラスの前記芯体の種別を特定するステップと、前記アクティブスタイラスが、前記芯体に付加される筆圧値を含むデータ信号を繰り返し送信するステップと、前記センサコントローラが、特定された前記芯体情報に基づく方法により前記データ信号に基づいて前記アクティブスタイラスの位置を導出するステップとを備えるというものである。
【００１２】
本発明によるアクティブスタイラスは、センサコントローラに対して信号を送信可能に構成されたアクティブスタイラスであって、電極を有するペン先と、前記電極から信号を送信する送信部と、前記送信部を利用して、ペンダウン操作が発生した場合に生ずる所定のトリガに応じ、前記センサコントローラに対して、前記ペン先を構成する芯体の種別を特定するための芯体情報を１回送信する一方、前記芯体情報を１回送信した後、データ信号を前記センサコントローラに対して繰り返し送信する制御部とを含むというものである。
【００１３】
本発明によるセンサコントローラは、ペン先を構成する芯体の種別を示す芯体情報、及び、前記芯体に付加される筆圧値を含むデータ信号を送信可能に構成されたアクティブスタイラスとともに用いられるセンサコントローラであって、前記アクティブスタイラスにより送信された前記芯体情報を取得し、取得した前記芯体情報に基づいて１つの位置導出方法を決定し、決定された位置導出方法により、繰り返し送信される前記データ信号に基づいて繰り返し前記アクティブスタイラスの位置を導出するというものである。
【発明の効果】
【００１４】
本発明によれば、アクティブスタイラスが、ペンダウン操作が発生した場合に生ずる所定のトリガに応じて芯体情報を送信するので、アクティブスタイラスからセンサコントローラに対し、芯体情報を効率よく送ることが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態によるシステム１の構成を示す図である。
【図２】本発明の第１の実施の形態によるフレームＦの構成を示す図である。
【図３】図１に示したスタイラス１００の構成を示す図である。
【図４】図３に示したスタイラスコントローラＩＣ１０６の機能ブロックを示す略ブロック図である。
【図５】（ａ）〜（ｃ）は、図３に示した芯体１２１のバリエーションを示す図であり、（ｄ）は、（ａ）に示したＢ−Ｂ線に対応する芯体１２１Ａの断面を示す図であり、（ｅ）は、（ｂ）に示したＣ−Ｃ線に対応する芯体１２１Ｂの断面を示す図であり、（ｆ）は、（ｃ）に示したＤ−Ｄ線に対応する芯体１２１Ｃの断面を示す図である。
【図６】図３に示したＡ−Ａ線に対応する芯体ホルダー１２０の断面を示す図である。
【図７】図１に示したセンサ３０及びセンサコントローラ３１の構成を示す図である。
【図８】図３に示した機能情報ＣＰの構成を示す図である。
【図９】図８に示したデータフォーマットＤＦｍｔの内容を示す図である。
【図１０】図９に示したオリエンテーションコードＯＲＣの定義を示す図である。
【図１１】図８に示したデータフォーマットＤＦｍｔの記述例を示す図である。
【図１２】図３に示したインタラクティブデータＤＦの構成を示す図である。
【図１３】図３に示した非インタラクティブデータＤＩＮＦの構成を示す図である。
【図１４】図１に示したスタイラス１００の動作フローを示す図である。
【図１５】図１に示したセンサコントローラ３１の動作フローを示す図である。
【図１６】機能情報ＣＰに対する時間スロットの割り当て例を示す図である。
【図１７】機能情報ＣＰのハッシュ値ＣＰ＿Ｈａｓｈに対する時間スロットの割り当て例を示す図である。
【図１８】インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロットの割り当て例を示す図である。
【図１９】インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロットの割り当ての他の例を示す図である。
【図２０】インタラクティブデータＤＦがカスタムデータＣＤを含む場合における、インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロットの割り当て例を示す図である。
【図２１】インタラクティブデータＤＦがオリエンテーションＯＲを含む場合における、インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロット及び周波数の割り当て例を示す図である。
【図２２】図１５に示したセンサコントローラ３１の動作フローの変形例を示す図である。
【図２３】本発明の第２の実施の形態によるスタイラス１００及びセンサコントローラ３１の動作フローを示す図である。
【図２４】時間スロットの割り当ての変形例を示す図である。
【図２５】本発明の変形例によるスタイラス１００の動作フローを示す図である。
【図２６】本発明の変形例によるセンサコントローラ３１の動作フローを示す図である。
【図２７】（ａ）（ｂ）はそれぞれ、本発明の変形例によるスタイラス１００を示す図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
【００１７】
図１は、本発明の第１の実施の形態によるシステム１の構成を示す図である。システム１は、スタイラス１００と、電子機器３に備えられたセンサコントローラ３１とにより構成される。このうちスタイラス１００は、各種のデータ（後述する機能情報ＣＰ、ハッシュ値ＣＰ＿Ｈａｓｈ、インタラクティブデータＤＦ、非インタラクティブデータＤＩＮＦ、ビーコン信号ＢＳなど）を送受信する機能を有する通信部１１０を備えて構成される。また、電子機器３は、センサコントローラ３１の他に、電子機器３のタッチ面３ａを構成するセンサ３０と、センサ３０及びセンサコントローラ３１を含む電子機器３の各部の機能を制御するシステムコントローラ３２（ホストプロセッサ）とを備えて構成される。センサコントローラ３１は、センサ３０を介してスタイラス１００と容量結合することにより、スタイラス１００との間で、フレームを使用する双方向通信を行うよう構成される。
【００１８】
図１中の破線矢印Ｃ１〜Ｃ５は、ユーザがスタイラス１００を操作する典型的なサイクルを示している。ユーザは、スタイラス１００の使用にあたり、まず初めにテイルスイッチ１０３（図３参照）を操作して、スタイラス１００が描く線の色ＣｏｌやスタイルＳｔｙｌ（図８参照）を決定する。また、必要に応じ、スタイラス１００の芯体１２１（図３参照）を交換する。そして実際に線を描く際には、スタイラス１００をセンシング範囲ＳＲ（センサコントローラ３１がスタイラス１００を検出可能な範囲）の外にある開始位置ＳＴからセンシング範囲ＳＲ内に移動（ダウン）させ（ペンダウン操作Ｃ１）、さらに、タッチ面３ａに接触（タッチ）させる（ペンタッチ操作Ｃ２）。その後ユーザは、タッチ状態を維持しつつタッチ面３ａ上に所望の軌跡を描くようにスタイラス１００を動かした後（ペンムーブ操作Ｃ３）、センシング範囲ＳＲ内からセンシング範囲ＳＲ外にスタイラス１００を移動（アップ）させる（ペンアップ操作Ｃ４，Ｃ５）。ユーザは、これら一連の操作Ｃ１〜Ｃ５を繰り返すことにより、タッチ面３ａ上に文字や絵を描く。こうしてユーザが操作Ｃ１〜Ｃ５を繰り返すことにより、センサコントローラ３１のセンシング範囲ＳＲに対しスタイラス１００がイン及びアウトを繰り返す状況が発生する。
【００１９】
センサコントローラ３１は、システム１内で実行される通信を制御するマスター装置であり、フレームの基準時刻となるビーコン信号ＢＳ（アップリンク信号、探索信号）を、センサ３０を用いてフレームごとに（フレーム周期のインターバルで）送出するよう構成される。
【００２０】
図２は、本実施の形態によるフレームＦの構成を示す図であり、フレームＦ、ビーコン信号ＢＳ、及び時間スロットｓの関係を示している。同図に示すように、例えば、各フレームＦは１６個（あるいは３２個等）の時間スロットｓ０〜ｓ１５によって構成されており、ビーコン信号ＢＳは、各フレームＦの先頭に位置する時間スロットｓ０で送信される。１つのフレームＦの時間長は例えば液晶のリフレッシュレートに合わせ１６ｍｓｅｃ（６０Ｈｚ相当）である。容量結合を介した通信は狭帯域通信であり、１つの時間スロットで送出できるビット数はせいぜい数十ビット（例えば２０ビット）となる。ただし、システム１内で送受信される信号に数ビットの誤り検出符号（ＣＲＣ）が付される場合があり、その場合には、１つの時間スロットで送信できるビット数は例えば１６ビットとなる。以下では、１つの時間スロットｓで１６ビットが送信可能であることを前提として説明を続ける。
【００２１】
センサコントローラ３１は、例えば、時間スロットｓ０でビーコン信号ＢＳを送出した後、時間スロットｓ１〜ｓ１５で、スタイラス１００から送信されるダウンリンク信号ＤＳの受信を待機する。ダウンリンク信号ＤＳを検出したセンサコントローラ３１は、スタイラス１００に装着されている芯体１２１（図３参照）の種別に基づいて設定される位置導出方法により、ダウンリンク信号ＤＳの検出に用いたセンサ３０の電極（後述する図７に示す複数の線状電極３０Ｘ，３０Ｙ）の位置と、検出されたダウンリンク信号ＤＳの受信レベルとに基づいてスタイラス１００の位置を示す座標データ（Ｘ，Ｙ）を導出するともに、スタイラス１００がダウンリンク信号ＤＳに含めて送信した各種の情報乃至データを取得するよう構成される。
【００２２】
スタイラス１００がダウンリンク信号ＤＳに含めて送信する各種の情報乃至データとは、具体的には、図８に示す機能情報ＣＰ、図１２に示すインタラクティブデータＤＦ、及び、図１３に示す非インタラクティブデータＤＩＮＦである。以下、このうちのインタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦをデータＤと総称する場合がある。センサコントローラ３１は、これらの情報乃至データを取得すると、位置情報（Ｘ，Ｙ）とともにシステムコントローラ３２に供給する。システムコントローラ３２は、こうして供給された位置情報（Ｘ，Ｙ）、機能情報ＣＰ、及びデータＤを互いに対応付け、図示しないオペレーティングシステムを介し、描画アプリケーションなどの各種アプリケーションに供給するよう構成される。これにより、各種アプリケーションによる位置情報（Ｘ，Ｙ）、機能情報ＣＰ、及びデータＤの利用が実現される。
【００２３】
ここで、機能情報ＣＰ及びデータＤの概要について説明する。詳細については、後ほど図８〜図１３を参照しながら別途説明する。
【００２４】
まず機能情報ＣＰは、スタイラス１００がセンシング範囲ＳＲ外に存在する間に変化する情報であり、例えばスタイラス１００のバージョン情報や、スタイラス１００に装着されている芯体１２１（図３参照）の種別を示す芯体種別ＩＤ（芯体情報）などが該当する。別の言い方をすれば、機能情報ＣＰは、ユーザがスタイラス１００で書き込み操作を行っている間には、変化することのない情報である。機能情報ＣＰには、例えばスタイラス１００のベンダを示すベンダ識別子のような、全く変化することのない情報も含まれる。機能情報ＣＰは、スタイラス１００からセンサコントローラ３１に対して各種のデータＤが送信されるより前に、センサコントローラ３１側で既知となっていなければならない。
【００２５】
データＤは、スタイラス１００がセンシング範囲ＳＲ内に存在する間に変化する可能性がある情報であり、上述したようにインタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦを含む。
【００２６】
インタラクティブデータＤＦは、例えば筆圧値やバレルボタンの押下状態のようなスタイラス１００がユーザによって操作されている最中に頻繁に変化するデータであって、後述する図１８に示すように、１つのフレームＦ（例えば、６０Ｈｚ）内において１回以上（通常は複数回）、スタイラス１００からセンサコントローラ３１に対して送信される。また、インタラクティブデータＤＦは、１回データフォーマットが定められると、その後は、スタイラスとセンサコントローラとがお互いを検出している限り、決定されたデータフォーマットにより複数のフレームで繰り返し送信される。スタイラス１００は原則として、センサコントローラ３１からのポーリングへの応答としてではなく自発的に、インタラクティブデータＤＦを周期的に複数のフレームで繰り返し送信する。座標データの導出専用の位置信号も、その指示位置がスタイラス１００の使用とともに頻繁に変化する点でインタラクティブデータＤＦの一種に含まれる。
【００２７】
非インタラクティブデータＤＩＮＦは、例えばバッテリーレベルのような、インタラクティブデータＤＦに比べて少ない頻度で変化する（又は、そのような頻度で変化すると看做してかまわない）データであって、複数のフレームＦごと（例えば、数百フレームごと）に１回送信される。スタイラス１００は原則として、自発的ではなく、センサコントローラ３１からのポーリング（送信要求）への応答として非インタラクティブデータＤＩＮＦを送信する。
【００２８】
図３は、スタイラス１００の構成を示す図である。同図に示すように、スタイラス１００は、バッテリー１０１、電極１０２、テイルスイッチ１０３、バレルボタン１０４、操作状態検出部１０５、スタイラスコントローラＩＣ１０６、芯体ホルダー１２０、及び芯体１２１を含み構成される。また、図４は、スタイラスコントローラＩＣ１０６の機能ブロックを示す略ブロック図である。同図に示すように、スタイラスコントローラＩＣ１０６は機能的に、通信部１１０、機能情報更新部１１１、インタラクティブデータ取得部１１２、及び非インタラクティブデータ取得部１１３を含み構成される。
【００２９】
初めに図３を参照すると、バッテリー１０１は、スタイラスコントローラＩＣ１０６を駆動するための電力を供給する電源手段であり、自身の残量のレベル（図１３に示すバッテリーレベルＢＬ）に応じた信号をスタイラスコントローラＩＣ１０６に供給するよう構成される。
【００３０】
操作状態検出部１０５は、インタラクティブデータＤＦに含まれる情報を検出する機構であり、例えば、スタイラス１００の先端に付加された筆圧値（後述する図１２に示す筆圧値ＴｉＰ）の検出機構や、スタイラス１００のオリエンテーション（向き。後述する図１２に示すオリエンテーションＯＲ）を検出する６軸ＩＭＵなどのセンサデバイスにより構成される。操作状態検出部１０５は、オリエンテーションを検出するセンサデバイスに関して、検出可能なオリエンテーションの種別を示すオリエンテーションコードＯＲＣ（図９参照）を特定するための情報を、スタイラスコントローラＩＣ１０６内の機能情報更新部１１１に通知するように構成される。なお、オリエンテーションコードＯＲＣには、操作状態検出部１０５がオリエンテーションを検出するセンサデバイスを有するか否かを示す情報も含まれる。
【００３１】
スタイラスコントローラＩＣ１０６は、スタイラス１００の各部から供給される信号を処理するとともに、スタイラス１００の各部に対して信号を供給する機能を有する信号処理部である。以下、図４を参照しながら、スタイラスコントローラＩＣ１０６の機能について詳しく説明する。
【００３２】
通信部１１０は受信部Ｒｘと送信部Ｔｘとを含み、図２に示したフレームＦの基準時刻（開始時刻）に応じて規定される複数の時間スロットに基づいた双方向通信を行う。より具体的に説明すると、通信部１１０は、芯体１２１と一体に構成される電極１０２を利用してビーコン信号ＢＳを検出することによりフレームＦの基準時刻を導出し、図２に示した時間スロットｓ０〜ｓ１５の基準時刻の設定あるいは同期調整を行う。そして、機能情報更新部１１１、インタラクティブデータ取得部１１２、及び非インタラクティブデータ取得部１１３のそれぞれから機能情報ＣＰ、インタラクティブデータＤＦ、及び非インタラクティブデータＤＩＮＦの供給を受け、それらの情報乃至データを、例えば図９に示すように決定されたフォーマットに従いダウンリンク信号ＤＳの送信用に用いる時間スロットｓ１〜ｓ１５でダウンリンク信号ＤＳに含めて、電極１０２から送信する。
【００３３】
機能情報更新部１１１は、機能情報ＣＰを管理する機能を有する。具体的には、機能情報ＣＰをレジスタ（図示せず）に維持するとともに、ユーザによるテイルスイッチ１０３の操作の内容（例えば、オン操作を行う回数）や芯体１２１の交換動作に応じて機能情報ＣＰを更新し、通信部１１０に供給するよう構成される。こうして更新される機能情報ＣＰには、図８に示す色Ｃｏｌ、スタイルＳｔｙｌ、芯体種別ＩＤが含まれる。
【００３４】
インタラクティブデータ取得部１１２は、インタラクティブデータＤＦを管理する機能を有する。具体的には、インタラクティブデータＤＦに含まれるデータを送信する都度、図１２に示す筆圧値ＴｉＰやオリエンテーションＯＲなどをそれぞれ操作状態検出部１０５から取得するとともに、バレルボタン１０４の押下状態（図１２に示すバレルボタン状態ＢＢ）を取得し、通信部１１０に供給するよう構成される。
【００３５】
非インタラクティブデータ取得部１１３は、非インタラクティブデータＤＩＮＦを管理する機能を有する。具体的には、非インタラクティブデータＤＩＮＦを送信する都度、図１３に示すバッテリーレベルＢＬなどを取得し、通信部１１０に供給するよう構成される。
【００３６】
図３に戻る。芯体ホルダー１２０は中空の筒状の形状を有する部材であり、スタイラス１００の筐体と一体に形成される一方、スタイラス１００のペン先を構成する芯体１２１を着脱可能に構成される。これによりスタイラス１００は芯体１２１を交換可能に構成されており、スタイラス１００のユーザは、芯体１２１を芯体ホルダー１２０から取り外した後、別の芯体１２１を芯体ホルダー１２０に取り付けることによって、芯体１２１の交換を行う。
【００３７】
図５（ａ）〜（ｃ）は、それぞれ図３に示した芯体１２１のバリエーションである芯体１２１Ａ〜１２１Ｃを示す図である。また、図５（ｄ）は、図５（ａ）に示したＢ−Ｂ線に対応する芯体１２１Ａの断面を示す図であり、図５（ｅ）は、図５（ｂ）に示したＣ−Ｃ線に対応する芯体１２１Ｂの断面を示す図であり、図５（ｆ）は、図５（ｃ）に示したＤ−Ｄ線に対応する芯体１２１Ｃの断面を示す図である。
【００３８】
芯体１２１Ａ〜１２１Ｃは、一体に構成される電極１０２の構造、及び、末端部に設けられる端子１２３の構造の点で互いに異なっている。初めに電極１０２について説明すると、芯体１２１Ａに設けられる電極１０２は棒状の導電性部材であり、芯体１２１Ａの先端付近の内側に配置される。一方、芯体１２１Ｂに設けられる電極１０２は円錐台を対称軸に沿ってくり抜いてなる形状の導電性部材であり、芯体１２１Ｂの先端付近を取り囲むように配置される。また、芯体１２１Ｃに設けられる電極１０２は２つの電極１０２−１，１０２−２によって構成される。電極１０２−１は芯体１２１Ａの先端付近の内側に配置され、電極１０２−２は芯体１２１Ａの末端付近の内側に配置される。電極１０２−１，１０２−２はいずれも棒状の導電性部材であるが、電極１０２−１の方が電極１０２−２に比べて長く形成されている。
【００３９】
次に端子１２３について説明するが、その前に芯体ホルダー１２０の断面構造について説明する。
【００４０】
図６は、図３に示したＡ−Ａ線に対応する芯体ホルダー１２０の断面を示す図である。同図に示すように、芯体ホルダー１２０は、側面に３つの凹部Ｈ１〜Ｈ３を有する略円形の断面を有している。凹部Ｈ１〜Ｈ３は、凹部Ｈ１から順に９０度ずつ離れて配置される。凹部Ｈ１〜Ｈ３には、それぞれ端子Ｔ１〜Ｔ３が設けられる。端子Ｔ１はバッファを介して端子Ｄ１に接続され、端子Ｔ２は接地され、端子Ｔ３はバッファを介して端子Ｄ０に接続されている。端子Ｔ１，Ｔ３はそれぞれ、抵抗素子を介して、電源電位Ｖｄｄが供給される電源配線にも接続される。なお、端子Ｄ０，Ｄ１は、図３に示すようにスタイラスコントローラＩＣ１０６の入力端子であり、図４に示すように、端子Ｄ０，Ｄ１に入力された信号は機能情報更新部１１１に供給される。
【００４１】
図５に戻る。図５（ｄ）〜（ｆ）に示すように、芯体１２１Ａ〜１２１Ｃはいずれも、３つの凸部を有する略円形の断面を有している。これら３つの凸部は、図６に示した凹部Ｈ１〜Ｈ３に嵌合するように構成される。
【００４２】
図５（ｄ）に示す芯体１２１Ａにおいては、３つの凸部のうち凹部Ｈ２，Ｈ３に対応する２つに端子１２３が形成される。これら２つの端子１２３は、配線Ｌ１により互いに接続されている。芯体１２１Ａが芯体ホルダー１２０に取り付けられると、凹部Ｈ２，Ｈ３に対応する２つの端子１２３がそれぞれ端子Ｔ２，Ｔ３と導通するので、端子Ｔ３に接地電位が供給され、端子Ｄ０にハイレベル（１）が現れる。一方、端子１２３が接続されていない端子Ｔ１に対応する端子Ｄ１には、ローレベル（０）が現れる。機能情報更新部１１１は、こうして端子Ｄ１，Ｄ０に供給される電位レベル「０」「１」から、芯体１２１Ａの芯体種別ＩＤ「０１」を検出するよう構成される。
【００４３】
図５（ｅ）に示す芯体１２１Ｂにおいては、３つの凸部のうち凹部Ｈ１，Ｈ２に対応する２つに端子１２３が形成される。これら２つの端子１２３は、配線Ｌ２により互いに接続されている。芯体１２１Ｂが芯体ホルダー１２０に取り付けられると、凹部Ｈ１，Ｈ２に対応する２つの端子１２３がそれぞれ端子Ｔ１，Ｔ２と導通するので、端子Ｔ１に接地電位が供給され、端子Ｄ１にハイレベル（１）が現れる。一方、端子１２３が接続されていない端子Ｔ３に対応する端子Ｄ０には、ローレベル（０）が現れる。機能情報更新部１１１は、こうして端子Ｄ１，Ｄ０に供給される電位レベル「１」「０」から、芯体１２１Ａの芯体種別ＩＤ「０１」を検出するよう構成される。
【００４４】
図５（ｆ）に示す芯体１２１Ｃにおいては、３つの凸部のすべてに端子１２３が形成される。各端子１２３は、配線Ｌ３により互いに接続されている。芯体１２１Ｃが芯体ホルダー１２０に取り付けられると、凹部Ｈ１〜Ｈ３に対応する３つの端子１２３がそれぞれ端子Ｔ１〜Ｔ３と導通するので、端子Ｔ１，Ｔ３に接地電位が供給され、端子Ｄ１，Ｄ０の両方にハイレベル（１）が現れる。機能情報更新部１１１は、こうして端子Ｄ１，Ｄ０に供給される電位レベル「１」「１」から、芯体１２１Ａの芯体種別ＩＤ「１１」を検出するよう構成される。
【００４５】
図７は、電子機器３の構成を示す図である。同図に示すように、センサ３０は、複数の線状電極３０Ｘと複数の線状電極３０Ｙとがマトリクス状に配置された構成を有しており、これら線状電極３０Ｘ，３０Ｙによってスタイラス１００と容量結合する。また、センサコントローラ３１は、送信部６０、選択部４０、受信部５０、ロジック部７０、及び、ＭＣＵ８０を有して構成される。
【００４６】
送信部６０は、図１に示したビーコン信号ＢＳを送信するための回路である。具体的には、第１の制御信号供給部６１、スイッチ６２、直接拡散部６３、拡散符号保持部６４、及び送信ガード部６５を含み構成される。
【００４７】
第１の制御信号供給部６１は検出パターンｃ１を保持しており、ロジック部７０から供給される制御信号ｃｔｒｌ＿ｔ１の指示に従って、所定の連続送信期間（例えば、３ｍｓｅｃ）の間、検出パターンｃ１を連続して繰り返し出力し、その後、終了パターンＳＴＰを出力する機能を有する。
【００４８】
検出パターンｃ１は、スタイラス１００がセンサコントローラ３１の存在を検出するために用いられるシンボルのパターンであり、事前に（スタイラス１００がセンサコントローラ３１を検出する前に）スタイラス１００に既知にされている。ここでいうシンボルは、後述する直接拡散部６３により１つの拡散符号列に変換される値の単位を意味し、シンボルを受信したスタイラス１００によってビット列に変換される値（以下、「ビット列対応シンボル」と称する）と、シンボルを受信したスタイラス１００によってビット列に変換されない値（以下、「ビット列非対応シンボル」と称する）とを含むことができる。前者にかかるシンボルは、「０」「０００１」など変換後のビット列そのものによって表記される。こうしてビット列により表記される各シンボルのビット長は、直接拡散部６３の仕様により決定される。一方、後者にかかるシンボルは、「Ｐ」「Ｍ」などと表記される。一例では、「Ｐ」と「Ｍ」はそれぞれ、所定の拡散符号列とその反転符号列とに対応付けられる。
【００４９】
検出パターンｃ１の具体的な例を挙げる。例えば検出パターンｃ１をビット長１のビット列対応シンボルのパターンにより表すことができ、その場合、例えば「０１０１０１・・・」のように検出パターンｃ１を構成することができる。また、検出パターンｃ１をビット長４のビット列対応シンボルのパターンにより表すこともでき、その場合、例えば「００００，１０００，００００，１０００，・・・」のように検出パターンｃ１を構成することができる。さらに、検出パターンｃ１をビット列非対応シンボルのパターンにより表すのであれば、例えば「ＰＭＰＭＰＭ・・・」のように検出パターンｃ１を構成することができる。いずれにおいても、検出パターンｃ１は互いに異なるシンボルの値を交互に繰り返してなるシンボルパターンとすることが好適である。
【００５０】
終了パターンＳＴＰは、上記連続送信期間の終了をスタイラス１００に通知するためのシンボルのパターンであり、検出パターンｃ１の繰り返し中に現れないシンボルのパターンによって構成される。一例を挙げると、上記のように検出パターンｃ１を「ＰＭＰＭＰＭ・・・」と構成する場合、終了パターンＳＴＰは、ビット列非対応シンボル「Ｐ」を２回連続させてなるシンボルパターン「ＰＰ」により構成することができる。
【００５１】
スイッチ６２は、ロジック部７０から供給される制御信号ｃｔｒｌ＿ｔ２に基づいて第１の制御信号供給部６１及びＭＣＵ８０のいずれか一方を選択し、選択した一方の出力を直接拡散部６３に供給する機能を有する。スイッチ６２が第１の制御信号供給部６１を選択した場合、直接拡散部６３には上記検出パターンｃ１又は終了パターンＳＴＰが供給される。一方、スイッチ６２がＭＣＵ８０を選択した場合、直接拡散部６３には制御情報ｃ２が供給される。
【００５２】
制御情報ｃ２は、スタイラス１００への指示内容を示すコマンドを含む情報であり、ＭＣＵ８０によって生成される。制御情報ｃ２は、スタイラス１００に対して機能情報ＣＰを要求したり、データＤの送信方法を設定したりするためのコマンドなどを構成する、スタイラス１００との間でその値が事前に共有されていない複数のビット（任意のビット列）を含む情報である。
【００５３】
拡散符号保持部６４は、ロジック部７０から供給される制御信号ｃｔｒｌ＿ｔ３に基づき、自己相関性を有する拡散符号を生成する機能を有する。拡散符号保持部６４によって生成された拡散符号は、直接拡散部６３に供給される。
【００５４】
直接拡散部６３は、拡散符号保持部６４から供給される拡散符号を用いてスイッチ６２から供給される信号（検出パターンｃ１、終了パターンＳＴＰ、制御情報ｃ２）を変換することにより、ビーコン信号ＢＳを生成する。
【００５５】
具体的な例を挙げると、例えば検出パターンｃ１、終了パターンＳＴＰ、制御情報ｃ２がビット列対応シンボル「０」「１」の組み合わせによって構成され、かつ、拡散符号保持部６４から供給される拡散符号が「０００１００１０１１１」である場合、直接拡散部６３は、表１に示すように、シンボル「０」を拡散符号「０００１００１０１１１」に変換し、シンボル「１」を拡散符号「０００１００１０１１１」の反転符号「１１１０１１０１０００」に変換することにより、ビーコン信号ＢＳを生成すればよい。
【００５６】
【表１】
2018026165.tif 000003
【００５７】
また、例えば検出パターンｃ１、終了パターンＳＴＰ、制御情報ｃ２がビット列対応シンボル「００００」〜「１１１１」及びビット列非対応シンボル「Ｐ」「Ｍ」の組み合わせによって構成され、かつ、拡散符号保持部６４から供給される拡散符号が「０００１００１０１１１」である場合、直接拡散部６３は、表２に示すように、ビット列非対応シンボル「Ｐ」を「０００１００１０１１１」の先頭に「１」を付けてなる符号列に変換し、ビット列非対応シンボル「Ｍ」を「０００１００１０１１１」の反転符号「１１１０１１０１０００」の先頭に「０」を付けてなる符号列に変換し、ビット列対応シンボル「００００」〜「０１００」をそれぞれ「０００１００１０１１１」を所定のシフト量で巡回シフトしてなる符号の先頭に「１」を付けてなる符号列に変換し、ビット列対応シンボル「１０００」〜「１１００」をそれぞれ「０００１００１０１１１」の反転符号「１１１０１１０１０００」を所定のシフト量で巡回シフトしてなる符号の先頭に「０」を付けてなる符号列に変換することにより、ビーコン信号ＢＳを生成すればよい。
【００５８】
【表２】
2018026165.tif 000004
【００５９】
なお、直接拡散部６３により生成されたビーコン信号ＢＳは、検出パターンｃ１、終了パターンＳＴＰ、制御情報ｃ２をこの順で含む信号となる。
【００６０】
送信ガード部６５は、ロジック部７０から供給される制御信号ｃｔｒｌ＿ｔ４に基づき、ビーコン信号ＢＳの送信期間（図２に示した時間スロットｓ０）の最後に、送信動作と受信動作を切り替えるために送信と受信の両方を行わない期間であるガード期間を挿入する機能部である。図２では、ビーコン信号ＢＳの終端と時間スロットｓ０の終端との間にある空白部分が、このガード期間に当たる。
【００６１】
選択部４０は、ロジック部７０の制御に基づいて、センサ３０から信号を送信する送信期間と、センサ３０により信号を受信する受信期間とを切り替えるスイッチである。具体的に説明すると、選択部４０は、スイッチ４４ｘ，４４ｙと、導体選択回路４１ｘ，４１ｙとを含んで構成される。スイッチ４４ｘは、ロジック部７０から供給される制御信号ｓＴＲｘに基づき、送信期間には、送信部６０の出力端を導体選択回路４１ｘの入力端に接続し、受信期間には、導体選択回路４１ｘの出力端を受信部５０の入力端に接続するよう動作する。スイッチ４４ｙは、ロジック部７０から供給される制御信号ｓＴＲｙに基づき、送信期間には、送信部６０の出力端を導体選択回路４１ｙの入力端に接続し、受信期間には、導体選択回路４１ｙの出力端を受信部５０の入力端に接続するよう動作する。導体選択回路４１ｘは、ロジック部７０から供給される制御信号ｓｅｌＸに基づき、複数の線状電極３０Ｘのうちの１つを選択し、選択したものをスイッチ４４ｘに接続するよう動作する。導体選択回路４１ｙは、ロジック部７０から供給される制御信号ｓｅｌＹに基づき、複数の線状電極３０Ｙのうちの１つを選択し、選択したものをスイッチ４４ｙに接続するよう動作する。
【００６２】
受信部５０は、ロジック部７０の制御信号ｃｔｒｌ＿ｒに基づいて、スタイラス１００が送信するダウンリンク信号ＤＳを受信する回路である。具体的には、増幅回路５１、検波回路５２、及び、アナログデジタル（ＡＤ）変換器５３を含み構成される。
【００６３】
増幅回路５１は、選択部４０から供給されるダウンリンク信号ＤＳを増幅して出力する。検波回路５２は、増幅回路５１の出力信号のレベルに対応した電圧を生成する回路である。ＡＤ変換器５３は、検波回路４９から出力される電圧を所定時間間隔でサンプリングすることによって、デジタルデータを生成する回路である。ＡＤ変換器５３が出力するデジタルデータはＭＣＵ８０に供給される。
【００６４】
ＭＣＵ８０は、内部にＲＯＭおよびＲＡＭを有し、所定のプログラムに基づき動作するマイクロプロセッサである。ロジック部７０は、ＭＣＵ８０の制御に基づき、上述した各制御信号を出力する。ＭＣＵ８０はまた、ＡＤ変換器５３から供給されるデジタルデータに基づいてスタイラス１００の位置を示す座標データ（Ｘ，Ｙ）等を導出し、システムコントローラ３２に対して出力する役割を担う。
【００６５】
ここで、システムコントローラ３２において動作するいくつかの描画アルゴリズムやシグネチャ検証アルゴリズムは、センサコントローラ３１から供給される位置情報（Ｘ，Ｙ）や筆圧値ＴｉＰ等のデータＤが、時間軸上で等間隔に取得されたものであるという前提に立って実装されている。したがって、非インタラクティブデータＤＩＮＦが時々送出されることにより、本来はインタラクティブデータＤＦが送出されるべきであった時間スロットにおいてインタラクティブデータＤＦが送信できなくなる（すなわち、データＤが「どもる(stutter)」）場合があるとすると、上記の描画アルゴリズムやシグネチャ検証アルゴリズムが正常に動作しなくなるおそれがある。そこで、非インタラクティブデータＤＩＮＦの送信に使用する時間スロットは、インタラクティブデータＤＦの通信の等間隔性を損なわないように選択される。この点の詳細については、図１８及び図１９を参照しながら後述する。
【００６６】
また、前述した通り、機能情報ＣＰは、センサコントローラ３１のセンシング範囲ＳＲの外にスタイラス１００が存在する間に変化する可能性がある。一方で、センサコントローラ３１のホストであるシステムコントローラ３２側で実行されるインキング処理（座標データのシーケンスに対して、色情報や線幅等の情報を与えるための処理）には、機能情報ＣＰ（特に、図８に示す色Ｃｏｌ、線幅やブラシのタイプを決めるスタイルＳｔｙｌなど）がセンサコントローラ３１に既知となっていることが必要である。同様に、ＭＣＵ８０がスタイラス１００の位置を示す座標データ（Ｘ，Ｙ）等を導出する際には、機能情報ＣＰに含まれる芯体種別ＩＤがセンサコントローラ３１に既知となっていることが必要である。そこで、機能情報ＣＰは、スタイラス１００がセンシング範囲ＳＲに入る都度、必ずセンサコントローラ３１に新たに既知とされる。具体的には、機能情報ＣＰは、スタイラス１００からセンサコントローラ３１に対してデータＤ（インタラクティブデータＤＦ）を送信するより前の段階で、ビーコン信号ＢＳへの応答信号として、センサコントローラ３１に送信される。この点の詳細については、図１６及び図１７を参照しながら後述する。
【００６７】
図８は、機能情報ＣＰの構成を示す図である。同図に示すように、機能情報ＣＰは、互いに異なる「情報名」が与えられた複数の個別機能情報の集合である。各個別機能情報は、機能情報ＣＰが送信される際、「送信サイズ」に示されるビット長で、機能情報ＣＰ内に配置される。また、各個別機能情報には、機能情報ＣＰ内に配置することが必須のもの（Ｙ）とそうでないもの（Ｎ）とがあり、機能情報に必要なビット数の典型例を示すためにその別（Ｙ）と（Ｎ）が例示されている。
【００６８】
機能情報ＣＰを構成する個別機能情報として具体的には、同図に示すように、ベンダ識別子ＶＩＤ、シリアル番号ＳＮ、色Ｃｏｌ、スタイルＳｔｙｌ、テイルスイッチ１０３の状態、バージョンＶｅｒ、芯体種別ＩＤ、データフォーマットＤＦｍｔが含まれる。
【００６９】
ベンダ識別子ＶＩＤは、スタイラス１００のベンダを示す８ビットの情報である。シリアル番号ＳＮは、各ベンダが独自に付与するベンダごとにユニークな５６ビットの情報である。シリアル番号ＳＮにベンダ識別子ＶＩＤを付加することで、６４ビットのユニークなユーザ識別子ＵＩＤ（スタイラス１００の固有ＩＤ）が生成される。
【００７０】
色Ｃｏｌは、ＣＳＳ(Cascading Style Sheets)内で使用可能な１４０の色を８ビットで表現する情報であり、テイルスイッチ１０３の操作により変更される。
【００７１】
スタイルＳｔｙｌは、スタイラス１００のペン先が例えばブラシ又はボールペンのいずれかであるかを特定することにより、インキング処理の効果を決定する３ビットの情報である。
【００７２】
テイルスイッチ１０３の状態は、テイルスイッチ１０３のＯＮＯＦＦの操作状態を示す情報である。機能情報ＣＰを構成する個別機能情報の１つであるが、他の個別機能情報の変更に反映されることになるため、それ自体をセンサコントローラ３１に通知する必要はない。したがって、テイルスイッチ１０３の状態の送信サイズは、Ｎ／Ａ(Not Applicable)となる。
【００７３】
バージョンＶｅｒは、スタイラス１００が使用する通信プロトコルのバージョンを示す４ビットの情報である。
【００７４】
芯体種別ＩＤは、スタイラス１００に装着されている芯体１２１の種別を示す情報であり、図５及び図６を参照しながら説明したように、図４に示した機能情報更新部１１１により取得される。センサコントローラ３１は、芯体種別ＩＤを参照することにより、スタイラス１００が信号送信のために使用する電極１０２が芯体１２１の内外いずれにあるか、また、そのような電極１０２の個数及び配置といった電極１０２に関する情報を取得する。なお、芯体種別ＩＤは上述したスタイラス１００の固有ＩＤの一部であるとしてもよい。
【００７５】
データフォーマットＤＦｍｔは、データＤ（インタラクティブデータＤＦ等）の送信に用いられるデータ信号のフォーマットを識別する１０ビット〜４４ビットの情報である。データフォーマットＤＦｍｔの詳細については、図９を参照しながら後述する。
【００７６】
このように、機能情報ＣＰは各種の個別機能情報を含むが、そのうち機能情報ＣＰへの配置が例えば必須（Ｙ）とした情報（ユーザ識別子ＵＩＤ及びデータフォーマットＤＦｍｔ）だけでも、７０ビットを超える大きな送信サイズを有している。したがって、上述したように１つの時間スロットで送信可能なビット数が１６ビットである場合、１つの時間スロットで機能情報ＣＰの全体の送信を完了することはできない。
【００７７】
図９は、図８に示したデータフォーマットＤＦｍｔの内容を示す図である。同図に示すように、データフォーマットＤＦｍｔは、互いに異なる「名称」が与えられた複数の個別フォーマットの集合である。各個別フォーマットは、機能情報ＣＰが送信される際、「送信サイズ」に示されるビット長で、データフォーマットＤＦｍｔ内に配置される。
【００７８】
データフォーマットＤＦｍｔを構成する個別フォーマットとして具体的には、筆圧段階指示数ＰＬ、バレルボタン数ＢＢＮ、接線方向筆圧フラグＴａＰｆ、オリエンテーションコードＯＲＣ、カスタムデータフラグＣＤｆ、オリエンテーション分解能ＯＲＲ、カスタム筆圧サイズＣＰＳ、カスタムボタンサイズＣＢＳ、カスタムオリエンテーションサイズＣＯＳ、カスタムデータサイズＣＤＳが含まれる。図９の「定義」欄には、それぞれの意味を記述している。これらの内容は、スタイラス１００が取得可能な１以上の個別インタラクティブデータ（後述）の種別と、それぞれの送信サイズとを示しており、後述する図１４に示すステップＳ１，Ｓ３において、スタイラス１００が取得可能な１以上の個別インタラクティブデータに基づいて決定される。以下、それぞれについて詳しく説明する。
【００７９】
筆圧段階指示数ＰＬは、インタラクティブデータＤＦの一つである筆圧値ＴｉＰ（図１２参照）の段階数（解像度）を示す３ビットの情報であり、その値が０〜６である場合、段階数が２５６×２ＰＬであることを示す。なお、ＰＬ＝０である場合はＰＬ＝−８である場合であると言うこともできるが、その場合の筆圧段階数は２５６×２０＝２５６となる。ＰＬ＝７である場合には、別途カスタム筆圧サイズＣＰＳとして筆圧段階数が規定される。
【００８０】
バレルボタン数ＢＢＮは、スタイラス１００が有するバレルボタン１０４（図３参照）の数を示す２ビットの情報であり、その値が０〜２である場合、ＢＢＮ個のバレルボタン１０４を有していることを示す。スタイラス１００がバレルボタン１０４以外の操作部を有する場合、バレルボタン数ＢＢＮにはその数も加算される。ＢＢＮ＝３である場合には、別途カスタムボタンサイズＣＢＳとしてバレルボタン１０４を含む操作部の数が規定される。このバレルボタン数ＢＢＮは、第１のバレルボタン乃至第ＢＢＮのバレルボタンの各々の有無を示すビットとしてもよい。例えば２ビットであれば、第１のバレルボタン及び第２のバレルボタンを備えているかをそれぞれが示す２つのビットとしても良い。
【００８１】
接線方向筆圧フラグＴａＰｆは、スタイラス１００が接線方向筆圧値（タッチ面３ａの接線方向に加わる圧力）の取得に対応しているか否かを示す１ビットの情報であり、０である場合に未対応、１である場合に対応を示す。スタイラス１００が接線方向筆圧に対応している場合のその段階数としては、筆圧段階指示数ＰＬと同じ段階数が用いられる。
【００８２】
オリエンテーションコードＯＲＣは、インタラクティブデータＤＦの一つであるオリエンテーションＯＲ（図１２参照）のフォーマットを定める３ビットの情報である。オリエンテーションコードＯＲＣの詳細は、後に図１０を参照しながら詳しく説明するが、ＯＲＣ＝７である場合には、オリエンテーションＯＲのデータサイズのみがカスタムオリエンテーションサイズＣＯＳとして規定される。
【００８３】
カスタムデータフラグＣＤｆは、スタイラス１００がカスタムデータＣＤ（インタラクティブデータＤＦの一つとして規格化されていないベンダ独自のデータ。図１２参照）の取得を行うか否かを示す１ビットの情報であり、０である場合にカスタムデータＣＤがないことを示し、１である場合にカスタムデータＣＤがあることを示す。
【００８４】
オリエンテーション分解能ＯＲＲは、オリエンテーションＯＲ（図１２参照）の分解能を示す０〜２ビットの情報であり、オリエンテーションコードＯＲＣの値が０より大きい場合、すなわちスタイラス１００がオリエンテーションＯＲの取得に対応している場合にのみ、データフォーマットＤＦｍｔ内に配置される。オリエンテーション分解能ＯＲＲにより示されるオリエンテーションＯＲの分解能は（８＋ＯＲＲ）ビットとなる。
【００８５】
カスタム筆圧サイズＣＰＳは、筆圧段階数のカスタム値を示す８ビットの情報であり、筆圧段階指示数ＰＬが７である場合にのみデータフォーマットＤＦｍｔ内に配置される。８ビットであることから、カスタム筆圧サイズＣＰＳによって表せる筆圧段階数は最大で２５６段階となる。
【００８６】
カスタムボタンサイズＣＢＳは、バレルボタン１０４を含む操作部の数を示す８ビットの情報であり、バレルボタン数ＢＢＮが３である場合にのみデータフォーマットＤＦｍｔ内に配置される。８ビットであることから、カスタムボタンサイズＣＢＳによって表せる操作部の数は最大で２５６個となる。
【００８７】
カスタムオリエンテーションサイズＣＯＳは、オリエンテーションＯＲのバイト数を示す８ビットの情報であり、オリエンテーションコードＯＲＣが７である場合にのみデータフォーマットＤＦｍｔ内に配置される。８ビットであることから、カスタムオリエンテーションサイズＣＯＳによって表せるオリエンテーションＯＲのバイト数は最大で２５６バイトとなる。ただし、図１２を参照して後述するように、実際のオリエンテーションＯＲのサイズの最大値は７２ビットである。
【００８８】
カスタムデータサイズＣＤＳは、カスタムデータＣＤのバイト数を示す８ビットの情報であり、カスタムデータフラグＣＤｆが１である場合にのみデータフォーマットＤＦｍｔ内に配置される。８ビットであることから、カスタムデータサイズＣＤＳによって表せるカスタムデータＣＤのバイト数は最大で２５６バイトとなる。ただし、図１２を参照して後述するように、実際のカスタムデータＣＤのサイズの最大値は２５６ビットである。
【００８９】
ここまでで説明したように、システム１においては、カスタム筆圧サイズＣＰＳ、カスタムボタンサイズＣＢＳ、カスタムオリエンテーションサイズＣＯＳ、及びカスタムデータサイズＣＤＳのそれぞれによって示されるカスタム値のデータサイズを、いずれも、データフォーマットＤＦｍｔ内に配置される場合に８ビット、配置されない場合に０ビットとなるようにしている。これは、データフォーマットＤＦｍｔを可変長としつつも終了位置を示すビットを不要とし、それによってデータフォーマットＤＦｍｔの構成を簡易化するための構成である。
【００９０】
図１０は、図９に示したオリエンテーションコードＯＲＣの定義を示す図（オリエンテーションコードテーブルＯＣＴ）である。同図中、左端の「ＯＲＣ」はオリエンテーションコードＯＲＣの値を示し、右端の「データサイズ」は、オリエンテーションＯＲのデータサイズを、占用時間スロット数（オリエンテーションＯＲを１回送信するために必要となる時間スロット数）により表したものである。
【００９１】
オリエンテーションコードＯＲＣの値が「０」であることは、スタイラス１００がオリエンテーションＯＲの取得を行わない（又は取得機能を有しない）ことを示す。後述する図２１に示すように、インタラクティブデータＤＦ内にオリエンテーションＯＲが配置される場合、インタラクティブデータＤＦを送信するために追加の時間スロットを用意する必要があるが、オリエンテーションコードＯＲＣの値が「０」である場合には、このような追加の時間スロットの用意は不要となる。
【００９２】
オリエンテーションコードＯＲＣの値が「１」であることは、スタイラス１００が、２方向（Ｘチルト，Ｙチルト）の値で２次元（２Ｄ）の傾きを示すオリエンテーションＯＲを取得可能であり、そのオリエンテーションＯＲを１回送信するために２つの時間スロットの利用を要することを示している。後述する図２１の例では、オリエンテーションＯＲの送信用に連続した２つの時間スロットを割り当てているが、２つの時間スロットは連続していても連続していなくても良い。
【００９３】
オリエンテーションコードＯＲＣの値が「２」であることは、スタイラス１００が、２方向（Ｘチルト，Ｙチルト）の値によって表される２次元（２Ｄ）の傾きと、ペン軸まわりの回転量であるツイストとからなる３次元（３Ｄ）の値を示すオリエンテーションＯＲを取得可能であり、そのオリエンテーションＯＲを１回送信するために、連続あるいは非連続の３つの時間スロットの利用を要することを示している。
【００９４】
オリエンテーションコードＯＲＣの値が「３」であることは、スタイラス１００が、２方向（高度，方位角）の値で２次元（２Ｄ）の傾きを示すオリエンテーションＯＲを取得可能であり、そのオリエンテーションＯＲを１回送信するために２つの時間スロットの利用を要することを示している。
【００９５】
オリエンテーションコードＯＲＣの値が「４」であることは、スタイラス１００が、２方向（高度，方位角）の値によって表される２次元（２Ｄ）の傾きと、ペン軸まわりの回転量であるツイストとからなる３次元（３Ｄ）の値を示すオリエンテーションＯＲを取得可能であり、そのオリエンテーションＯＲを１回送信するために３つの時間スロットの利用を要することを示している。
【００９６】
オリエンテーションコードＯＲＣの値が「５」であることは、スタイラス１００が、加速度計及びジャイロを含む６軸慣性測定装置（ＩＭＵ）による測量値であるオリエンテーションＯＲを取得可能であり、そのオリエンテーションＯＲを１回送信するために３つの時間スロットの利用を要することを示している。
【００９７】
オリエンテーションコードＯＲＣの値が「６」であることは、スタイラス１００が、９軸慣性測定装置（ＩＭＵ）による測量値であるオリエンテーションＯＲを取得可能であり、そのオリエンテーションＯＲを１回送信するために３つ以上の時間スロットの利用を要することを示している。
【００９８】
オリエンテーションコードＯＲＣの値が「７」であることは、上述したように、図９に示したカスタムオリエンテーションサイズＣＯＳによってオリエンテーションＯＲのバイト数が表されることを示している。
【００９９】
このように、オリエンテーションコードＯＲＣを使うことで、スタイラス１００の機能の有無、あるいは、慣性測定装置（ＩＭＵ）のタイプに応じて様々な情報となり得るオリエンテーションＯＲの種別を、３ビットの短い情報によりセンサコントローラ３１に通知することが可能になる。また、オリエンテーションＯＲの種別によって連続あるいは非連続の異なる数の時間スロットを使用することに関しても、必要な時間スロット数をセンサコントローラ３１に通知することが可能になる。
【０１００】
図１１は、図８に示したデータフォーマットＤＦｍｔの記述例を示す図である。同図（ａ）に示す記述例１及び同図（ｂ）に示す記述例２は、データフォーマットＤＦｍｔがカスタム値を含まず、９ビットで示される例を示している。記述例１では、オリエンテーションコードＯＲＣの値が０（０ｂ０００）、すなわちスタイラス１００がオリエンテーションＯＲを取得しないため、オリエンテーションＯＲ用に追加の時間スロットを用意することは不要となる。一方、記述例２では、オリエンテーションコードＯＲＣの値が６（０ｂ１１０）であるため、オリエンテーションＯＲ用に３つ以上の時間スロットを追加で用意することが必要となる。また、同図（ｃ）に示す記述例３は、筆圧段階指示数ＰＬがカスタマイズされ、カスタム筆圧サイズＣＰＳによって表される例を示している。この場合、８ビットのカスタム筆圧サイズＣＰＳがデータフォーマットＤＦｍｔの末尾に記述され、データフォーマットＤＦｍｔのビット数が１７ビットとなる。
【０１０１】
以上説明したように、本実施の形態による機能情報ＣＰに含まれるデータフォーマットＤＦｍｔは、１０ビット〜４４ビットのビット列によって表される。そして、このデータフォーマットＤＦｍｔがスタイラス１００からセンサコントローラ３１に通知されることにより、インタラクティブデータＤＦの要素、サイズ、及びオプションデータの有無が、インタラクティブデータＤＦが送出される前の段階でセンサコントローラ３１に既知とされる。インタラクティブデータＤＦは、その後にスタイラス１００から送信される。
【０１０２】
図１２は、インタラクティブデータＤＦの構成を示す図である。同図に示すように、インタラクティブデータＤＦは、互いに異なる「名称」が与えられた複数の個別インタラクティブデータの集合である。各個別インタラクティブデータは、インタラクティブデータＤＦが送信される際、「送信サイズ」に示されるビット長で、インタラクティブデータＤＦ内に配置される。また、各個別インタラクティブデータには、インタラクティブデータＤＦ内に配置することが必須のもの（Ｙ）とそうでないもの（Ｎ）とがあり、図では、典型的に必要となる合計ビット数をカウントするためこの区別の例を示している。また、同図は個別インタラクティブデータの送信順も示しており、スタイラス１００は、同図の上側にあるものから順に送信するよう構成される。
【０１０３】
インタラクティブデータＤＦを構成する個別インタラクティブデータとして具体的には、筆圧値ＴｉＰ、接線方向筆圧値ＴａＰ、バレルボタン状態ＢＢ、反転Ｉｎｖ、オリエンテーションＯＲ、カスタムデータＣＤが含まれる。
【０１０４】
筆圧値ＴｉＰは、スタイラス１００の先端に付加された筆圧値を示す８〜２５６ビットの情報であって、図３に示した操作状態検出部１０５によって検出される。筆圧値ＴｉＰは、インタラクティブデータＤＦ内に必ず配置される（Ｙ）。筆圧値ＴｉＰのビット数は、図９に示したデータフォーマットＤＦｍｔ内の筆圧段階指示数ＰＬ又はカスタム筆圧サイズＣＰＳから導かれる。例えば、筆圧段階指示数ＰＬが０（又は−８）である場合、筆圧段階数が２５６となることから、筆圧値ＴｉＰのビット数はｌｏｇ２２５６＝８となる。典型的な例では、筆圧値ＴｉＰのビット数は８（２５６段階）〜１１（２０４８段階）である。
【０１０５】
接線方向筆圧値ＴａＰは、接線方向の筆圧値を示す０〜２５６ビットの情報であって、図３に示した操作状態検出部１０５によって検出される。接線方向筆圧値ＴａＰはオプショナルのデータであり、図９に示した接線方向筆圧フラグＴａＰｆが１である場合にのみ、インタラクティブデータＤＦ内に配置される（Ｎ）。インタラクティブデータＤＦ内に配置される場合の接線方向筆圧値ＴａＰのビット数は、筆圧値ＴｉＰと同じ値となる。典型的な例では、接線方向筆圧値ＴａＰは０ビットの情報であり、インタラクティブデータＤＦ内に配置されない。
【０１０６】
バレルボタン状態ＢＢは、図３に示したバレルボタン１０４の押下状態を示す２〜２５６ビットの情報である。バレルボタン状態ＢＢは、インタラクティブデータＤＦ内に必ず配置される（Ｙ）。バレルボタン状態ＢＢのビット数は、図９に示したデータフォーマットＤＦｍｔ内のバレルボタン数ＢＢＮ又はカスタムボタンサイズＣＢＳによって示されるバレルボタン１０４の数に等しい値となる。例えば、バレルボタン数ＢＢＮが１である場合、スタイラス１００が有するバレルボタン１０４の数が２個となることから、バレルボタン状態ＢＢのビット数は２となる。典型的な例では、バレルボタン状態ＢＢのビット数は２である。
【０１０７】
反転Ｉｎｖは、１ビットの情報であって、インタラクティブデータＤＦ内に配置される（Ｙ）。
【０１０８】
オリエンテーションＯＲは、スタイラス１００の向きを示す０〜７２ビットのデータであって、図３に示した操作状態検出部１０５によって検出される。オリエンテーションＯＲはオプショナルのデータであり、図９に示したオリエンテーションコードＯＲＣが０でない場合（図１０参照）にのみ、インタラクティブデータＤＦ内に配置される（Ｎ）。オリエンテーションＯＲの具体的な意味は、図１０を参照して説明したように、オリエンテーションコードＯＲＣによって表される。また、オリエンテーションＯＲのサイズは、図１０に示したデータサイズ（カスタムオリエンテーションサイズＣＯＳによって指定する場合を含む）によって示される。例えば、２次元又は３次元の値を表すオリエンテーションＯＲは、図１０に示したオリエンテーションコードテーブルＯＣＴの規定に従って、２つの時間スロット又は３つの時間スロットを使って送信される（図２１参照）。
【０１０９】
カスタムデータＣＤは、スタイラス１００のベンダが独自に規定する０〜２５６ビットの情報である。カスタムデータＣＤはオプショナルのデータであり、図９に示したカスタムデータフラグＣＤｆが１である場合にのみ、インタラクティブデータＤＦ内に配置される（Ｎ）。カスタムデータＣＤのビット数は、図９に示したカスタムデータサイズＣＤＳによって表される。例えば、カスタムデータサイズＣＤＳが１である場合、カスタムデータＣＤのバイト数が１となることから、カスタムデータＣＤのビット数は８となる。
【０１１０】
インタラクティブデータＤＦのビット数は、最小の例では、８ビットの接線方向筆圧値ＴａＰ、２ビットのバレルボタン状態ＢＢ、及び１ビットの反転Ｉｎｖの合計で１１ビット（４ビットの誤り検出符号を加えると１５ビット）となる。また、典型的な例では、１１ビットの接線方向筆圧値ＴａＰ、２ビットのバレルボタン状態ＢＢ、及び１ビットの反転Ｉｎｖの合計で１４ビット（４ビットの誤り検出符号を加えると１８ビット）となる。上述したように、１つの時間スロットで１６ビット分のデータを送信可能であることから、オリエンテーションＯＲやカスタムデータＣＤを含まないインタラクティブデータＤＦの送信は、１つの時間スロットで完了することができる（図１８及び図１９参照）。一方、オリエンテーションＯＲやカスタムデータＣＤを含むインタラクティブデータＤＦの送信については、通常１６ビットを超えることになるので、１つの時間スロットで完了することはできず、複数の時間スロットを使用することになる（図２０及び図２１参照）。
【０１１１】
図１３は、非インタラクティブデータＤＩＮＦの構成を示す図である。同図に示すように、非インタラクティブデータＤＩＮＦは、互いに異なる「名称」が与えられた複数の個別非インタラクティブデータの集合である。各個別非インタラクティブデータは、非インタラクティブデータＤＩＮＦが送信される際、「送信サイズ」に示されるビット長で、非インタラクティブデータＤＩＮＦ内に配置される。
【０１１２】
非インタラクティブデータＤＩＮＦを構成する個別非インタラクティブデータの例として、図１３にはバッテリーレベルＢＬのみを示している。バッテリーレベルＢＬは、図３に示したバッテリー１０１の残量のレベルを示す４ビットの情報である。他の種類の個別非インタラクティブデータを非インタラクティブデータＤＩＮＦに含めてもよいのは勿論である。
【０１１３】
非インタラクティブデータＤＩＮＦは、上述したように、複数のフレームＦごと（例えば、数百フレームごと）に１回送信される（図１８〜図２１参照）。
【０１１４】
次に、スタイラス１００及びセンサコントローラ３１の動作について、図１４〜図２１を参照しながら詳しく説明する。
【０１１５】
まず図１４は、スタイラス１００の動作フローを示す図である。スタイラス１００は、電源がオンされた後、センシング範囲ＳＲの外に存在する間に、次のＡ１で説明する動作を行う。
【０１１６】
＜Ａ１．機能情報ＣＰの更新処理（センシング範囲ＳＲの外での動作）＞
スタイラス１００は、電源がオンされた後、データフォーマットＤＦｍｔを含む機能情報ＣＰを一旦決定する（ステップＳ１）。このときスタイラス１００は、図３に示した端子Ｄ１，Ｄ０に供給される電位レベルから、芯体種別ＩＤを取得する。また、自身が取得可能な１以上のインタラクティブデータＤＦに基づいて、データフォーマットＤＦｍｔの具体的な内容を決定する。すなわち、上述したように、例えばスタイラス１００が接線方向筆圧の取得に対応していれば、データフォーマットＤＦｍｔ内の接線方向筆圧フラグＴａＰｆが１になり、対応していなければ、データフォーマットＤＦｍｔ内の接線方向筆圧フラグＴａＰｆが０になる。その後、スタイラス１００はユーザによる機能情報ＣＰの変更操作（具体的には、芯体１２１の交換やテイルスイッチ１０３の操作）の有無を判定する（ステップＳ２）。そして、変更操作がなされた場合には、操作の内容に応じて、ステップＳ１で決定した機能情報ＣＰの変更を行う（ステップＳ３）。
【０１１７】
ステップＳ２，Ｓ３の処理の後、スタイラス１００は、ビーコン信号ＢＳを検出したか否かを判定する（ステップＳ４）。このステップＳ４は、図１を参照して説明したペンダウン操作Ｃ１が行われたか否かを判定するためのものであり、本実施の形態によるスタイラス１００は、このビーコン信号ＢＳの検出をトリガ（ペンダウン操作が発生した場合に生ずる所定のトリガ）として芯体種別ＩＤを含む機能情報ＣＰの送信を行う（後述するステップＳ６〜Ｓ８）。ステップＳ４で検出していないと判定した場合（すなわち、スタイラス１００がセンサコントローラ３１のセンシング範囲ＳＲの外にいる場合）、スタイラス１００は、ステップＳ２に戻ってここまでの処理を繰り返す。一方、ステップＳ４で検出したと判定した場合、スタイラス１００は次のＡ２で説明する動作を行う。
【０１１８】
＜Ａ２．スタイラス１００がセンシング範囲ＳＲ内に入った後の動作＞
スタイラス１００は、ユーザがペンダウン操作Ｃ１をしたことによってセンサコントローラ３１のセンシング範囲ＳＲ内に入った後（Ｓ４の肯定判定）、検出したビーコン信号ＢＳを基準としてセンサコントローラ３１が規定するフレームＦに同期し、その時間スロットｓ０〜ｓ１５を決定する（ステップＳ５）。
【０１１９】
＜Ａ２−１．機能情報ＣＰの通信＞
続いてスタイラス１００は、機能情報ＣＰをセンサコントローラ３１に既知とする（センサコントローラ３１との間で共有する）ための処理を行う（ステップＳ６〜Ｓ８）。ここで、上述した通り、システム１では、１つの時間スロットで送信できるビット数が例えば１６ビットに制限されている。一方で、機能情報ＣＰは、上記したように７０ビットを超える情報であるので、機能情報ＣＰの全部を１つの時間スロットで送ることはできず、全部を送る場合には複数の時間スロットを使用して分割送信する必要が生ずる。しかしながら、このような分割送信を１回目のみならず２回目、３回目と行っていると、スタイラス１００がタッチ面３ａ（図１参照）にタッチするまでに機能情報ＣＰの送信が完了せず、その結果、スタイラス１００がタッチ面３ａにタッチしているにも関わらず、線が描かれないというユーザにとって不快な状況が生ずるおそれがある。そこで本実施の形態では、以下で説明するように、一度機能情報ＣＰの全部を送ったセンサコントローラ３１に対しては、機能情報ＣＰそのものではなく、機能情報ＣＰに対応する情報（具体的には機能情報ＣＰのハッシュ値）を送るようにしている。以下、具体的に説明する。
【０１２０】
スタイラス１００はまず、ビーコン信号ＢＳを送出するセンサコントローラ３１と既にペアリング済みか否かを判定する（ステップＳ６）。この判定は、例えばスタイラス１００内部のレジスタの値を判定することで行うことができる。なお、ビーコン信号ＢＳにはセンサコントローラ３１を特定する情報は含まれていないので、ここでの判定は、特定のセンサコントローラ３１ではなく、いずれかのセンサコントローラ３１とペアリング済みか否かについての判定となる。
【０１２１】
ステップＳ６の判定の結果、センサコントローラ３１とペアリング済みでないと判定した場合（Ｓ６の否定判定）、スタイラス１００は、現時点の機能情報ＣＰ（図８に示した７０ビットを超える情報。データフォーマットＤＦｍｔと、シリアル番号ＳＮ及びベンダ識別子ＶＩＤからなるユーザ識別子ＵＩＤとを含む）を、複数の時間スロットに分けて繰り返し送出する（ステップＳ７）。
【０１２２】
図１６は、機能情報ＣＰに対する時間スロットの割り当て例を示す図である。同図の例によるスタイラス１００は、機能情報ＣＰを複数の部分機能情報ＣＰ１，ＣＰ２，・・・に分割し、それぞれをフレームＦｎ，Ｆｎ＋１，・・・の時間スロットｓ１で送信している。このように機能情報ＣＰの送信には複数時間スロット分（この例では複数フレーム分）の時間がかかるが、初めに１回は必要な処理である。なお、図１６にも示すように、機能情報ＣＰは、時間スロットｓ１を用いて送信する必要がある。これは、機能情報ＣＰあるいは短縮情報（ハッシュ値ＣＰ＿Ｈａｓｈ）を、コマンドが含まれるビーコン信号ＢＳに対する応答信号が送信されるべき時間に送信することで、センサコントローラ３１が、ビーコン信号ＢＳを送信した後の時間スロットｓ１で受信される信号だけを監視することでビーコン信号ＢＳに対する応答信号の有無（スタイラス１００の有無）を認識することができ、かつ、時間スロットｓ１に後続する時間スロットｓ２〜ｓ１５をデータＤの受信用に確保することができるようにするためである。
【０１２３】
他方、ステップＳ６の判定の結果、センサコントローラ３１とペアリング済みであると判定した場合（Ｓ６の肯定判定）には、スタイラス１００は、ステップＳ７でデータフォーマットＤＦｍｔを含む機能情報ＣＰの全部を送信するのではなく、機能情報ＣＰを特定するための情報であって１つの時間スロットで送出可能なサイズの情報（短縮情報）のみを、１つの時間スロットｓ１を使用して送信する（ステップＳ８）。この情報は、例えば、機能情報ＣＰの２０ビット以下（例えば１６ビット）のハッシュ値ＣＰ＿Ｈａｓｈ等、所定の確率で、対応する機能情報ＣＰが真性であるか否かを識別可能な情報とすることが好適である。以下の説明では、短縮情報としてハッシュ値ＣＰ＿Ｈａｓｈを用いることを前提とする。ステップＳ８でハッシュ値ＣＰ＿Ｈａｓｈを送信する場合、スタイラス１００は、送信に先立ち、機能情報ＣＰからハッシュ値ＣＰ＿Ｈａｓｈを導出する処理を行う。
【０１２４】
図１７は、機能情報ＣＰのハッシュ値ＣＰ＿Ｈａｓｈに対する時間スロットの割り当て例を示す図である。同図に示すように、ハッシュ値ＣＰ＿Ｈａｓｈの送信はフレームＦｎの時間スロットｓ１のみで完了し、次のフレームＦｎ＋１からは、時間スロットｓ１においてインタラクティブデータＤＦを送信することが可能になる。
【０１２５】
このように、本実施の形態によるシステム１によれば、スタイラス１００は、機能情報ＣＰが一旦センサコントローラ３１に既知となった後（センサコントローラ３１とペアリング済みになった後）には、センシング範囲ＳＲに入る都度、１度送信済みの機能情報ＣＰの送信に代えて短縮情報（具体的にはハッシュ値ＣＰ＿Ｈａｓｈ）の送信を行うことによって、機能情報ＣＰ（データフォーマットＤＦｍｔを含む）をセンサコントローラ３１に通知することが可能になる。センサコントローラ３１としては、１つの時間スロットで短縮情報を受信するだけで、実用上問題のおこらない確率で、接近中のスタイラス１００の機能情報ＣＰを特定することが可能になる。
【０１２６】
なお、本実施の形態では、スタイラス１００が送信した機能情報ＣＰをセンサコントローラ３１が無条件で受け入れるものとして説明するが、センサコントローラ３１は、自身のリソースに応じて機能情報ＣＰ内に規定される情報の一部又は全部を受け入れないと決定し、決定の内容をスタイラス１００に通知することとしてもよい。この場合、スタイラス１００は、センサコントローラ３１が受け入れない情報を送信しない。この点についての詳細は、後に図２２を参照しながら説明する。
【０１２７】
＜Ａ２−２．データＤの通信＞
スタイラス１００は、機能情報ＣＰ又はハッシュ値ＣＰ＿Ｈａｓｈの送信が完了した後、データＤを含むデータ信号の送信を行う（ステップＳ１０〜Ｓ１５）。具体的には、まずビーコン信号ＢＳの検出を行う（ステップＳ１０）。
【０１２８】
ステップＳ１０でビーコンＢＳを検出した場合（ステップＳ１０の肯定判定）、スタイラス１００は、連続不検出カウンタを０にリセットする（ステップＳ１１）。そして、機能情報ＣＰのデータフォーマットＤＦｍｔに規定されるフォーマット（典型的には１１〜１４ビット）でインタラクティブデータＤＦを含むデータ信号を、少なくとも１つのフレームＦに１回送出する（ステップＳ１２）。
【０１２９】
なお、本実施の形態ではデータＤの送信に用いる時間スロットをスタイラス１００が決めるものとして説明するが、センサコントローラ３１がデータＤの送信に用いる時間スロットを決定し、決定の内容をスタイラス１００に通知することとしてもよい。この点についての詳細も、後に図２２を参照しながら説明する。
【０１３０】
図１８は、インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロットの割り当て例を示す図である。同図の例では、１４ビットの典型的なサイズを有するインタラクティブデータＤＦが、１つのフレームＦあたり４つの時間スロットｓ２，ｓ６，ｓ１０，ｓ１４で送信されている（データ信号ＤＦ１，ＤＦ２，ＤＦ３，ＤＦ４）。これら４つの時間スロットｓ２，ｓ６，ｓ１０，ｓ１４においては、１つずつインタラクティブデータＤＦが送信される。この例による時間スロットの割り当てによれば、図１８に示すように、個々のフレームＦ内は勿論、フレームＦを跨る場合にも、インタラクティブデータＤＦの送信に用いる時間スロット間のインターバルが維持される（フレームＦｎ＋１において最後に送信されるデータ信号ＤＦ４（時間スロットｓ１４）と、次のフレームＦｎ＋２において最初に送信されるデータ信号ＤＦ５（時間スロットｓ２）との間隔が、個々のフレームＦ内における間隔と同じ３時間スロットとなっている）。したがって、一定の周期Ｔ（＝４時間スロット）で周期的に、インタラクティブデータＤＦを送信することが可能になる。このようなシステム１の特徴は、インタラクティブデータＤＦが等間隔で取得されることを必要とするシステムコントローラ３２のアプリケーションに好適である。
【０１３１】
なお、図１８に示す周期Ｔの４時間スロットという値は、時間スロットｓ０，ｓ１（及び後述する時間スロットｓ１５）が予約されている条件の下で（すなわち、時間スロットｓ０がビーコン信号ＢＳの送信用、時間スロットｓ１がビーコン信号ＢＳに対する応答信号の送信用、時間スロットｓ１５が非インタラクティブデータＤＩＮＦの送信用としてそれぞれ予約されている条件の下で）最短である。このように周期Ｔを最短の値に設定することで、インタラクティブデータＤＦの送信回数を向上することができる。センサコントローラ３１にとっては、スタイラス１００の座標データをより詳細に取得することも可能になる。
【０１３２】
図１９は、インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロットの割り当ての他の例を示す図である。同図の例では、１４ビットの典型的なサイズを有するインタラクティブデータＤＦが、１つのフレームＦあたり４つの時間スロットｓ３，ｓ７，ｓ１１，ｓ１５で送信されている（データ信号ＤＦ１，ＤＦ２，ＤＦ３，ＤＦ４）。このような時間スロットの割り当てによっても、図１８の例と同じ最短の周期Ｔ（＝４時間スロット）で、インタラクティブデータＤＦを周期的に送信することが可能になる。
【０１３３】
図１４に戻り、スタイラス１００は、複数フレームＦに１回（数百フレームＦに１回）の割合で、非インタラクティブデータＤＩＮＦの送信も行う（ステップＳ１３）。なお、上述したように、スタイラス１００は、センサコントローラ３１からのポーリング（送信要求）に応じて、非インタラクティブデータＤＩＮＦの送信も行うこととしてもよい。この場合、センサコントローラ３１からのポーリングは、ビーコン信号ＢＳ内にコマンドのひとつとして配置される。
【０１３４】
再度図１８を参照すると、この例では、非インタラクティブデータＤＩＮＦが時間スロットｓ１５で送信されている。図１８の例では時間スロットｓ１５は普段は不使用とされているが、そのような時間スロットｓ１５を複数フレームＦに一度非インタラクティブデータＤＩＮＦの送出時間スロットとすることで、インタラクティブデータＤＦの送信周期Ｔに影響を及ぼさずに非インタラクティブデータＤＩＮＦを送信することが可能になる。
【０１３５】
一方、図１９の例では、非インタラクティブデータＤＩＮＦが時間スロットｓ１で送信されている。時間スロットｓ１は本来、上述したように、ビーコン信号ＢＳに対する応答信号（機能情報ＣＰ又はハッシュ値ＣＰ＿Ｈａｓｈ）の送信に用いられるものであるが、時間スロットｓ１が実際に応答信号の送信のために利用される確率は、他の時間スロットに比して低い。時間スロットｓ１で非インタラクティブデータＤＩＮＦを送信し、その結果、応答信号と非インタラクティブデータＤＩＮＦの衝突が発生するのは、スタイラス１００が複数フレームＦに１度、非インタラクティブデータＤＩＮＦを通信したタイミングで、偶然、新たなスタイラス１００がセンシング範囲ＳＲに入り、ビーコン信号ＢＳへの応答信号を送信した場合に限られる。したがって、スタイラス１００が時間スロットｓ１で非インタラクティブデータＤＩＮＦを送信したとしても実用上は問題なく、また、有限の時間スロットを有効に活用することができる。加えて、非インタラクティブデータＤＩＮＦを時間スロットｓ１５で送信するのをやめ時間スロットｓ１５を解放することで、時間スロットｓ３，ｓ７，ｓ１１，ｓ１５を他のデータＤ（インタラクティブデータＤＦ）の送信に用いることが可能になる。この場合、時間スロットｓ２，ｓ６，ｓ１０，ｓ１４と時間スロットｓ３，ｓ７，ｓ１１，ｓ１５とを互いに異なるスタイラス１００に割り当てることもでき、そうすることにより、複数のスタイラス１００がそれぞれ送信周期Ｔで（すなわち時分割多重で）、インタラクティブデータＤＦを送信することが可能になる。
【０１３６】
図２０は、インタラクティブデータＤＦがカスタムデータＣＤを含む場合における、インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロットの割り当て例を示す図である。図２０には、インタラクティブデータＤＦが、１１ビットの筆圧値ＴｉＰ、２ビットのバレルボタン状態ＢＢ、１ビットの反転Ｉｎｖ、及び、８ビットのカスタムデータＣＤを含む場合を描いている。なお、この場合、図９に示したカスタムデータフラグＣＤｆ及びカスタムデータサイズＣＤＳの値はともに１となる。この場合のインタラクティブデータＤＦのサイズは１つの時間スロットで送信可能な１６ビットより大きい２２ビットとなるため、スタイラス１００は、図２０に示すように、連続した２つの時間スロットを使用してインタラクティブデータＤＦの送信を行う。このような時間スロットの割り当てを用いることで、インタラクティブデータＤＦのサイズが１つの時間スロットで送信可能なサイズより大きくても、一定の周期Ｔでの送信が実現される。
【０１３７】
図２１は、インタラクティブデータＤＦがオリエンテーションＯＲを含む場合における、インタラクティブデータＤＦ及び非インタラクティブデータＤＩＮＦに対する時間スロット及び周波数の割り当て例を示す図である。同図の例では、２つの周波数ｆ０，ｆ１が利用され、周波数ｆ０では３つの時間スロット、周波数ｆ１では４つの時間スロットがインタラクティブデータＤＦの送信のために使用される。そして、オリエンテーションＯＲは、周波数ｆ０で２つの時間スロット、周波数ｆ１で３つの時間スロットの合計５つの時間スロットを使用して送信される。このような時間スロット及び周波数の割り当てを用いることで、インタラクティブデータＤＦのサイズが７つの時間スロットで送信しなければならないほどに大きいとしても、一定の周期Ｔでの送信が実現される。ただし、この場合の周期Ｔは、図２１と図１８〜図２０を比較すると理解されるように、図１８〜図２０における周期Ｔよりも長くなる。なお、このように周波数多重を利用できない場合には、合計７つの時間スロットを２以上のフレームＦにまたがって送信するとしてもよい。
【０１３８】
＜Ａ２−３．センシング範囲ＳＲ内から出た後のスタイラス１００の動作＞
図１４に戻る。ステップＳ１０でビーコン信号ＢＳが検出されなくなった場合（ステップＳ１０の否定判定）、スタイラス１００は、連続不検出カウンタの値が所定の閾値Ｔｈより大きいか否かを判定し（ステップＳ１４）、大きくないと判定した場合には、連続不検出カウンタの値を１インクリメントして（ステップＳ１５）、ステップＳ１０に戻る。一方、ステップＳ１４で大きいと判定した場合には、図１に示したペンアップ操作Ｃ４，Ｃ５が行われ、スタイラス１００がセンシング範囲ＳＲの外に移動したということを意味するので、スタイラス１００は、ステップＳ２、すなわちユーザによる芯体１２１の交換やテイルスイッチ１０３の操作を受け付ける状態に戻る。
【０１３９】
次に、図１５は、センサコントローラ３１の動作フローを示す図である。センサコントローラ３１は、電源がオンされた後、次のＢ１で説明する動作を開始する。
【０１４０】
＜Ｂ１．機能情報ＣＰの受信＞
センサコントローラ３１は、時間スロットｓ０でビーコン信号ＢＳを繰り返し送出し（ステップＳ２０）、その都度、時間スロットｓ１でスタイラス１００からの応答信号Ａｃｋを待機する（ステップＳ２１）。
【０１４１】
ステップＳ２１で応答信号Ａｃｋであるダウンリンク信号ＤＳ（すなわち、時間スロットｓ１で受信されるダウンリンク信号ＤＳ）を受信した場合（Ｓ２１の肯定判定）、センサコントローラ３１は、受信した応答信号Ａｃｋに含まれていたデータを機能情報ＣＰのハッシュ値ＣＰ＿Ｈａｓｈとみなして取得する（ステップＳ２２）。そして、後述するステップＳ３３で過去に記憶していたハッシュ値ＣＰ＿Ｈａｓｈの中に一致するものがあるか否かを判定し（ステップＳ２３）、あると判定した場合には、そのハッシュ値ＣＰ＿Ｈａｓｈに対応づけて記憶していた機能情報ＣＰにより、現在接近中のスタイラス１００の機能情報ＣＰ（データフォーマットＤＦｍｔを含む）の内容を決定する（ステップＳ３０）。
【０１４２】
一方、ステップＳ２３で一致するものがないと判定した場合、センサコントローラ３１は、応答信号Ａｃｋに含まれていたデータを機能情報ＣＰの一部として蓄積する（ステップＳ２４）。そして、ここまでの処理を繰り返した結果、機能情報ＣＰの全部が蓄積されたか否かを判定し（ステップＳ２５）、全部が蓄積されたと判定した場合には、蓄積された機能情報ＣＰにより、現在接近中のスタイラス１００の機能情報ＣＰ（データフォーマットＤＦｍｔを含む）の内容を決定する（ステップＳ３０）。一方、まだ全部は蓄積されていないと判定した場合には、ステップＳ２０に戻ってビーコン信号ＢＳの送信を繰り返す。
【０１４３】
ステップＳ３０で機能情報ＣＰの内容を決定したセンサコントローラ３１は、そのハッシュ値を導出し、機能情報ＣＰと対応づけて対応データとして記憶領域に記憶する（ステップＳ３３）。こうして作成される対応データの記憶領域（対応データ記憶領域）は、ハッシュ値をキーとして値を関連付けて保持するいわゆるハッシュテーブルとして実装できる。
【０１４４】
続いてセンサコントローラ３１は、機能情報ＣＰに含まれる芯体種別ＩＤを取得する。そして、取得した芯体種別ＩＤに基づいて、位置導出パラメータの設定を行う（ステップＳ３４）。位置導出パラメータは、センサ３０に受信されるデータ信号からスタイラス１００の位置を導出するためにセンサコントローラ３１が使用するパラメータであり、電極１０２の形状によって異なる。つまり、例えば図５（ａ）に示した芯体１２１Ａの電極１０２と図５（ｂ）に示した芯体１２１Ａの電極１０２とでは、タッチ面３ａにおけるデータ信号の広がりが異なるため、センサコントローラ３１が位置を導出する際に参照すべき範囲が異なる。また、図５（ｃ）に示した芯体１２１Ａについては、位置導出には電極１０２−１から送出されるデータ信号のみが使用され、電極１０２−２から送出されるデータ信号はスタイラス１００の傾きを検出するために使用される。したがってセンサコントローラ３１は、例えばデータ信号の受信強度等から、電極１０２−１，１０２−２がそれぞれ送出したデータ信号を区別する必要がある。位置導出パラメータは、このような電極１０２の形状によって異なる位置導出方法を規定するもので、後述するステップＳ４２に示すように、センサコントローラ３１は、スタイラス１００から受信したデータ信号を位置導出パラメータに基づいて処理することにより、スタイラス１００の位置導出を行うよう構成される。
【０１４５】
＜Ｂ２．データＤの受信＞
次に、センサコントローラ３１は、時間スロットｓ０においてビーコン信号ＢＳを再度送信する（ステップＳ４０）。そして、時間スロットｓ０，ｓ１以外で何らかのデータ信号を検出したか否かを判定し（ステップＳ４１）、検出したと判定した場合には、ステップＳ３４で設定した位置導出パラメータに基づいてスタイラス１００の位置導出を行う（ステップＳ４２）とともに、連続不受信カウンタの値を０にリセットする（ステップＳ４３）。その後、検出したデータ信号からインタラクティブデータＤＦを抽出することにより、インタラクティブデータＤＦを受信する（ステップＳ４４）。また、複数フレームＦに一度、検出したデータ信号から非インタラクティブデータＤＩＮＦを抽出することにより、非インタラクティブデータＤＩＮＦも受信する（ステップＳ４５）。
【０１４６】
他方、ステップＳ４１でデータ信号を検出していないと判定した場合、連続不受信カウンタの値が所定の閾値Ｔｈより大きいか否かを判定し（ステップＳ４６）、大きくないと判定した場合には、連続不受信カウンタの値を１インクリメントして（ステップＳ４７）、ステップＳ４０に戻る。一方、ステップＳ４６で大きいと判定した場合には、スタイラス１００がセンシング範囲ＳＲの外に退出したということを意味するので、センサコントローラ３１は、ステップＳ２０に戻って処理を継続する。
【０１４７】
以上説明したように、本実施の形態による、スタイラス１００及びセンサコントローラ３１を用いた方法、センサコントローラ３１、及びスタイラス１００によれば、スタイラス１００が、ペンダウン操作Ｃ１が発生した場合に生ずる所定のトリガ、すなわちビーコン信号ＢＳの受信に基づいて芯体種別ＩＤを含む機能情報ＣＰの送信を行うので、スタイラス１００からセンサコントローラ３１に対し、ペンダウン操作Ｃ１が行われたときのみに芯体種別ＩＤを送信することが可能になる。したがって、スタイラス１００からセンサコントローラ３１に対し、芯体種別ＩＤを効率よく送ることが可能になる。
【０１４８】
また、一度機能情報ＣＰをセンサコントローラ３１と共有した後には、機能情報ＣＰの全体ではなくハッシュ値ＣＰ＿Ｈａｓｈのみを送ることによって機能情報ＣＰをセンサコントローラ３１に通知することができるので、スタイラス１００がセンシング範囲ＳＲに頻繁に出入りを繰り返す状況でも、センサコントローラ３１が機能情報ＣＰを特定するために必要な時間を短くすることが可能となる。
【０１４９】
なお、本実施の形態において、図１４のステップＳ８でハッシュ値ＣＰ＿Ｈａｓｈを送信する際には、送信に先立ち機能情報ＣＰからハッシュ値ＣＰ＿Ｈａｓｈを導出する処理を行うと説明したが、この導出は、機能情報ＣＰの全体に基づいて行ってもよいし、一部のみに基づいて行ってもよい。以下、機能情報ＣＰの一部のみに基づいてハッシュ値ＣＰ＿Ｈａｓｈを導出する処理について、詳しく説明する。
【０１５０】
初めに、図８に示した機能情報ＣＰには、ユーザ操作又はセンサコントローラ３１からの設定によって変更されない第１の機能情報と、ユーザ操作又はセンサコントローラ３１からの設定によって変更可能な第２の機能情報とが含まれる。第１の機能情報は、例えばスタイラス１００が有する筆圧センサや角度センサなどのセンサの種別を示す情報であり、具体的には、スタイラス１００がバレルボタン１０４を有しているか否かを示す情報（図９に示したバレルボタン数ＢＢＮより示される情報。ＢＢＮ＝０はスタイラス１００がバレルボタン１０４を有していないことを示し、ＢＢＮ≠０はスタイラス１００がバレルボタン１０４を有していることを示す。）、スタイラス１００が傾き検出センサ又はツイスト検出センサを有しているか否かを示す情報（図１０に示したオリエンテーションコードＯＲＣにより示される情報。例えばＯＲＣ＝１はスタイラス１００がツイスト検出センサを有していないことを示し、ＯＲＣ＝２はスタイラス１００がツイスト検出センサを有していることを示す。）、及び、スタイラス１００がその他のセンサを有しているか否かを示す情報（図９に示したカスタムデータフラグＣＤｆにより示される情報）などである。スタイラス１００が、当該スタイラス１００によって描かれる線の色を特定するか否かを示す情報（図８に示した色Ｃｏｌによって示される情報）も、第１の機能情報に含まれる。図８等には示していないが、機能情報ＣＰには１以上のバレルボタン１０４それぞれに付与された機能を特定する情報を含むことができ、その場合には、この情報も第１の情報のひとつとなる。この情報には、例えば、２つのバレルボタン１０４がある場合にプライマリとセカンダリを区別するための情報や、そのバレルボタン１０４が押されている間、スタイルＳｔｙｌが消しゴムになることを示す情報などが含まれる。
【０１５１】
一方、第２の機能情報は、芯体種別ＩＤの他、例えばスタイラス１００によって描かれる線の色、幅、及び、鉛筆やボールペンなどブラシのタイプを特定する情報などである。これらは、図８に示した色Ｃｏｌ及びスタイルＳｔｙｌによって示される。ユーザ識別子（ＵＩＤ）は、色、幅などインキングの情報を特定することができる情報であるため、ユーザ識別子（ＵＩＤ）についても第２の機能情報に含めるとしてもよい。
【０１５２】
スタイラス１００がハッシュ値ＣＰ＿Ｈａｓｈを導出する際には、機能情報ＣＰのうち第２の機能情報にかかる部分のみに基づいて、ハッシュ値ＣＰ＿Ｈａｓｈを導出することとしてもよい。こうすることで、異なる機能情報ＣＰに対して同じハッシュ値ＣＰ＿Ｈａｓｈが導出されてしまう可能性（ハッシュ値が衝突する可能性）を減らすことができる。例えば、上記のように第２の機能情報にかかる部分のみに基づいてハッシュ値ＣＰ＿Ｈａｓｈを導出するようにすることにより、機能情報ＣＰの全体に基づいてハッシュ値ＣＰ＿Ｈａｓｈを導出する場合に比べ、ハッシュ値の導出のもとになる情報のサイズを小さくすることができる。ハッシュ値の衝突の可能性は、ハッシュ値の導出のもとになる情報のサイズが小さいほど小さくなるので、上記のようにすることにより、ハッシュ値が衝突する可能性を減らすことが可能になる。
【０１５３】
また、センサコントローラ３１は、図１５のステップＳ２３で、受信したハッシュ値ＣＰ＿Ｈａｓｈと一致するものが対応データ記憶領域内に記憶されていないと判定した場合に、スタイラス１００に対して、機能情報ＣＰの全体の送信要求を送信することとしてもよい。なお、この送信は、ビーコン信号ＢＳ内にコマンドのひとつとして上記送信要求を配置することによって行うことが好適である。この場合のスタイラス１００は、この送信要求を受け取った場合に、図１４のステップＳ６でペアリング済みでないと判定することとすればよい。そうすることで、スタイラス１００からセンサコントローラ３１に対し、機能情報ＣＰの全体を送信することが可能になる。
【０１５４】
また、センサコントローラ３１は、上述したように、スタイラス１００が送信した機能情報ＣＰを無条件に受け入れるのではなく、自身のリソースに応じて機能情報ＣＰ内に規定される情報の一部又は全部を受け入れないと決定してもよく、また、データＤの送信に用いる時間スロットを自身で決定することとしてもよい。以下、これらの点について図２２を参照しながら説明する。
【０１５５】
図２２は、図１５に示したセンサコントローラ３１の動作フローの変形例を示す図である。同図には、図１５に示したフローの一部のみを抜き出して描いている。
【０１５６】
図２２に示すように、本変形例によるセンサコントローラ３１は、ステップＳ２５ですべての機能情報ＣＰを受信するか、若しくは、ステップＳ２３で対応データ記憶領域から機能情報ＣＰを取得すると、これらと、利用可能なリソースに関する情報とに基づき、データフォーマットＤＦｍｔを仮に決定する（ステップＳ２６）。利用可能なリソースの情報とは、例えば時間スロットの空き状況である。そして、仮決定したデータフォーマットＤＦｍｔを指定するコマンドを、ビーコン信号ＢＳの一部としてスタイラス１００に通知する（ステップＳ２７）。
【０１５７】
その後、センサコントローラ３１はスタイラス１００が送信する応答信号Ａｃｋの検出を試み（ステップＳ２８）、検出しなかった場合には、スタイラス１００がセンシング範囲ＳＲの外に退出したか、又は、仮決定したデータフォーマットＤＦｍｔを受け入れなかったということであるとして、センサコントローラ３１は自身の処理を図１５のステップＳ２０に戻す。一方、ステップＳ２８で応答信号Ａｃｋを検出した場合には、仮決定した内容により機能情報ＣＰ（データフォーマットＤＦｍｔを含む）の内容を決定する（ステップＳ３０）。
【０１５８】
ステップＳ３０の後、センサコントローラ３１は、決定したデータフォーマットＤＦｍｔに基づいて、オフセット情報及びインターバル情報を決定する（ステップＳ３１）。オフセット情報は、フレームＦを構成する複数の時間スロットのうち少なくとも一部のインタラクティブデータＤＦの送信に用いるものを示す情報であり、より具体的には、フレームＦを構成する複数の時間スロットの中でインタラクティブデータＤＦが最初に送信される時間スロットの、フレームＦの先頭からの時間的な距離を示す情報である。例えば、図１８、図２０、及び図２１の例ではオフセット情報は２となり、図１９の例ではオフセット情報は３となる。一方、インターバル情報は、インタラクティブデータＤＦの送信周期を示す情報である。例えば、図１８乃至図２０の例ではインターバル情報は４となり、図２１の例ではインターバル情報は８となる。オフセット情報及びインターバル情報は、要するに、１以上の個別インタラクティブデータのうちどの個別インタラクティブデータをどのタイミングで送信するかを規定するものであり、上述したデータフォーマットＤＦｍｔとともに、データＤを含むデータ信号の構成を決めるフォーマットを構成する。インターバル情報は、オフセット情報と異なり送信頻度で表わすことも可能であり、又、送信周期あるいは送信頻度を示す識別子で示すこともできる。
【０１５９】
ステップＳ３１でオフセット情報及びインターバル情報を決定したセンサコントローラ３１は、次いで、決定したオフセット情報及びインターバル情報を指定するコマンドを、ビーコン信号ＢＳの一部としてスタイラス１００に通知する（ステップＳ３２）。これ以降、スタイラス１００は、指定されたオフセット情報及びインターバル情報により示される時間スロットを利用して、インタラクティブデータＤＦを送信することになる。
【０１６０】
このように、センサコントローラ３１が、スタイラス１００の機能情報ＣＰと、スタイラス１００がデータＤの送信に用いる時間スロットとを決定することとしてもよい。こうすることで、センサコントローラ３１がスタイラス１００との通信を主導することが可能になる。
【０１６１】
次に、本発明の第２の実施の形態によるシステム１について説明する。本実施の形態によるシステム１は、機能情報ＣＰのハッシュ値として２つのハッシュ値を用いる点で、第１の実施の形態によるシステム１と相違する。以下、第１の実施の形態と同一の構成には同一の符号を付し、以下では、第１の実施の形態との相違点に着目して説明する。
【０１６２】
図２３は、本実施の形態によるスタイラス１００及びセンサコントローラ３１の動作フローを示す図である。同図には、センサコントローラ３１がスタイラス１００から機能情報ＣＰを受け取る処理にかかる動作フローを図示している。以下、同図を参照しながら、本実施の形態によるスタイラス１００及びセンサコントローラ３１の動作について説明する。
【０１６３】
まずスタイラス１００は、電源がオンされたときや、ハッシュ値に影響を及ぼす変更が機能情報ＣＰに加えられたとき（図１４のステップＳ２における肯定判定に相当）に、自身の機能情報ＣＰに基づいて２つのハッシュ値＃１，＃２（第１及び第２のハッシュ値）を導出する（ステップＳ５０，Ｓ５１）。この２つのハッシュ値＃１，＃２は、例えば１３ビットＣＲＣと１６ビットＦＮＶのような互いに異なる２種類のハッシュ関数（アルゴリズム）を用いて導出してもよいし、１つのハッシュ関数により導出されたハッシュ値の上位ビット列と下位ビット列をそれぞれハッシュ＃１，＃２としてもよい。また、上述した第１の機能情報に基づいてハッシュ＃１を導出し、第２の機能情報に基づいてハッシュ＃２を導出する、といった処理も可能である。
【０１６４】
スタイラス１００がセンサコントローラ３１のセンシング範囲ＳＲ（図１参照）に入り、センサコントローラ３１によって送信されたビーコン信号ＢＳを検出すると（ステップＳ６０，Ｓ５２）、スタイラス１００はまず、ハッシュ値＃１のみを送信する（ステップＳ５３）。この送信は、ビーコン信号ＢＳに対する応答信号の中にハッシュ値＃１を配置することによって行う。
【０１６５】
センサコントローラ３１は、ビーコン信号ＢＳに対する応答信号を検出すると（ステップＳ６１）、その中からハッシュ値＃１（と思われる情報）を取り出し、対応データ記憶領域に記憶しているか否かを判定する（ステップＳ６２）。ステップＳ６１で応答信号を検出しなかった場合には、ステップＳ６０に戻り、次のフレームで再度ビーコン信号ＢＳを送信する。
【０１６６】
ステップＳ６２で対応データ記憶領域に記憶していないと判定した場合、センサコントローラ３１は、スタイラス１００から機能情報ＣＰを読み出す（ステップＳ６３）。この読み出しは、具体的には、次のフレームで送信するビーコン信号ＢＳの中に、機能情報ＣＰの送信要求を示すコマンドＧｅｔ（ＣＰ）を配置することによって行う。これに応じてスタイラス１００が機能情報ＣＰを送信すると（ステップＳ５４）、センサコントローラ３１は、受信した機能情報ＣＰに基づいてハッシュ値＃２を導出し、受信したハッシュ値＃１及び機能情報ＣＰと対応付けて対応データ記憶領域に記憶する（ステップＳ６４）。なお、このステップＳ６４では、センサコントローラ３１がハッシュ値＃１も新たに導出することとしてもよい。
【０１６７】
一方、ステップＳ６２で対応データ記憶領域に記憶していると判定した場合、センサコントローラ３１は、受信したハッシュ値＃１と対応付けて記憶しているハッシュ値＃２を読み出し、スタイラス１００に送信する（ステップＳ６５）。この送信も、次のフレームで送信するビーコン信号ＢＳの中に、読み出したハッシュ値＃２を配置することによって行う。こうして送信されたハッシュ値＃２を受信したスタイラス１００は、それがステップＳ５１で導出したものと一致するか否かを判定し（ステップＳ５６）、一致する場合には応答信号Ａｃｋを、一致しない場合には失敗信号Ｆａｉｌを送信する。これらの送信は、ビーコン信号ＢＳに対する応答信号の中に応答信号Ａｃｋ又は失敗信号Ｆａｉｌを配置することによって行う。そして、失敗信号Ｆａｉｌを送信した場合にはステップＳ５２に戻って処理を継続し、応答信号Ａｃｋを送信した場合には、センサコントローラ３１の検出処理を終了して上述したデータ信号の送信処理（図１４に示したステップＳ１０以降の処理）に移行する。センサコントローラ３１は、ステップＳ６５で送信したハッシュ値＃２に対して応答信号Ａｃｋを検出したかを判定し（ステップＳ６６）、応答信号Ａｃｋを検出した場合にはスタイラス１００の検出処理を終了してデータ信号の受信処理（図１５に示したステップＳ４０以降の処理）に移行し、応答信号Ａｃｋを検出しなかった場合（又は失敗信号Ｆａｉｌを検出した場合）には、ステップＳ６３に戻って再度機能情報ＣＰの読み出し処理を行う。
【０１６８】
以上説明したように、本実施の形態によるシステム１によれば、センサコントローラ３１は、受信したハッシュ値＃１と対応付けて記憶しているハッシュ値＃２により、自身の対応データ記憶領域に記憶している機能情報ＣＰとスタイラス１００が有している機能情報ＣＰとの一致を再確認することができる。したがって、正しい機能情報ＣＰによる通信をより確実に行うことが可能になる。
【０１６９】
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【０１７０】
例えば、上記各実施の形態では、同一のダウンリンク信号ＤＳにより、スタイラス１００の位置を示す座標データ（Ｘ，Ｙ）の導出と、インタラクティブデータＤＦ等の送信とが行われていたが、図２４に示すように、これらを別々のダウンリンク信号ＤＳにより実現することとしてもよい。すなわち、図２４には、座標データの導出専用の位置信号であるダウンリンク信号ＤＳと、インタラクティブデータＤＦを送信するためのダウンリンク信号ＤＳとを時分割で送信し、センサコントローラ３１は、前者のダウンリンク信号ＤＳのみに基づいてスタイラス１００の位置を示す座標データ（Ｘ，Ｙ）を導出する例を示している。このようにしても、センサコントローラ３１は、スタイラス１００の位置を示す座標データ（Ｘ，Ｙ）と、スタイラス１００が送信したインタラクティブデータＤＦとを好適に取得することができる。
【０１７１】
また、上記各実施の形態では、スタイラス１００とセンサコントローラ３１とが双方向に通信を行う例を取り上げて説明したが、本発明は、スタイラス１００からセンサコントローラ３１に対する一方向の通信のみを行う場合にも好適に適用可能である。以下、図面を参照しながら詳しく説明する。
【０１７２】
図２５は、本発明の変形例によるスタイラス１００の動作フローを示す図である。また、図２６は、本変形例によるセンサコントローラ３１の動作フローを示す図である。
【０１７３】
初めに図２５を参照してスタイラス１００の動作について説明すると、まずステップＳ１〜Ｓ３については、図１４を参照して説明した動作と同じである。ステップＳ３の後、本変形例によるスタイラス１００は、図１４に示したビーコン信号ＢＳの検出（ステップＳ４）ではなく、操作状態検出部１０５（図３参照）により検出される筆圧値が０より大きい値（所定の値）となったか否かの判定を行う（ステップＳ７０）。ビーコン信号ＢＳの検出を行わないのは、本変形例ではセンサコントローラ３１がビーコン信号ＢＳの送信を行わないからである。筆圧値が０より大きいということは、通常、ペンタッチ操作Ｃ２（図１参照）がなされ、現在ペンムーブ操作Ｃ３（図１参照）の最中である、ということを意味する。したがって、ステップＳ７０では、実質的にペンタッチ操作Ｃ２の検出が行われることになる。
【０１７４】
本変形例によるスタイラス１００は、ステップＳ７０の肯定判定（すなわち、ペンタッチ操作Ｃ２の検出）をトリガ（ペンダウン操作が発生した場合に生ずる所定のトリガ）として、芯体種別ＩＤを含む機能情報ＣＰに関する情報の送信を行う（ステップＳ７１）。ここで送信する情報は、機能情報ＣＰそのものであってもよいし、機能情報ＣＰに変更がないことを示す情報（変更無情報）であってもよい。また、センサコントローラ３１に予め機能情報ＣＰを記憶させておくことができる場合には、上述したハッシュ値ＣＰ＿Ｈａｓｈやユーザ識別子ＵＩＤのような、センサコントローラ３１側で機能情報ＣＰを特定できるようにするための情報により、機能情報ＣＰに関する情報を構成することとしてもよい。その他、スタイラス１００は、機能情報ＣＰのサイズが大きいために１回で送り切ることができない場合などには、図１４のステップＳ７と同様、複数回に分けて機能情報ＣＰを送信することとしてもよい。
【０１７５】
ステップＳ７１で機能情報ＣＰに関する情報を送信した後の処理は、図１４で説明したステップＳ１０以降の処理と基本的に同様である。ただし、本変形例では、ステップＳ１０でのビーコン信号ＢＳの検出に代えて、筆圧値が０であるか否かが判定される（ステップＳ７２）。ビーコン信号ＢＳの検出を行わないのは、ステップＳ７０と同じ理由による。筆圧値が０であるということは、通常、ペンアップ操作Ｃ４，Ｃ５（図１参照）がなされたということを意味する。したがって、ステップＳ７２では、実質的にペンアップ操作Ｃ４，Ｃ５の検出が行われることになる。
【０１７６】
次に、図２６を参照しながら、本変形例によるセンサコントローラ３１の動作について説明する。本変形例によるセンサコントローラ３１は、まずスタイラス１００からの信号の検出を行う（ステップＳ８０）。そして、その信号内に機能情報ＣＰ（の一部）が含まれているか否かを判定する（ステップＳ８１）。機能情報ＣＰ（の一部）が含まれていた場合、信号内に含まれていたデータを機能情報ＣＰ（の一部）として蓄積する（ステップＳ８３）。そして、ここまでの処理を繰り返した結果、機能情報ＣＰの全部が蓄積されたか否かを判定し（ステップＳ８４）、全部が蓄積されたと判定した場合には、ステップＳ８３での蓄積された機能情報ＣＰに基づき、現在接近中のスタイラス１００の機能情報ＣＰ（データフォーマットＤＦｍｔを含む）の内容を決定する（ステップＳ８５）。一方、まだ全部は蓄積されていないと判定した場合には、ステップＳ８０に戻って信号の検出を繰り返す。
【０１７７】
一方、ステップＳ８１で含まれていないと判定した場合には、以前の蓄積結果に基づき、現在接近中のスタイラス１００の機能情報ＣＰ（データフォーマットＤＦｍｔを含む）の内容を決定する（ステップＳ８６）。具体的に説明すると、まずスタイラス１００からの信号に上述した変更無情報が含まれていた場合には、以前に受信して蓄積した最新の機能情報ＣＰに基づき、現在接近中のスタイラス１００の機能情報ＣＰの内容を決定する。また、センサコントローラ３１がハッシュ値ＣＰ＿Ｈａｓｈと対応付けて機能情報ＣＰを蓄積可能に構成されている場合には、スタイラス１００からの信号に含まれるハッシュ値ＣＰ＿Ｈａｓｈに対応する機能情報ＣＰを読み出し、読み出した機能情報ＣＰに基づいて、現在接近中のスタイラス１００の機能情報ＣＰの内容を決定する。さらに、センサコントローラ３１がユーザ識別子ＵＩＤと対応付けて機能情報ＣＰを蓄積可能に構成されている場合には、スタイラス１００からの信号に含まれるユーザ識別子ＵＩＤに対応する機能情報ＣＰを読み出し、読み出した機能情報ＣＰに基づいて、現在接近中のスタイラス１００の機能情報ＣＰの内容を決定する。
【０１７８】
ステップＳ８５又はステップＳ８６で機能情報ＣＰの内容を決定した後の処理は、図１４で説明したステップＳ３４以降の処理と基本的に同様である。ただし、本変形例によるセンサコントローラ３１は信号の送信を行わないので、ステップＳ４０でのビーコン信号ＢＳの送信は行わない。また、図１４のステップＳ３３の処理、すなわち機能情報ＣＰのハッシュ値を導出し、機能情報ＣＰと対応づけて対応データとして記憶領域に記憶する処理も行わない。詳しく説明すると、本変形例によるセンサコントローラ３１は、ハッシュ値と機能情報ＣＰを対応付けて記憶することはあり得るものの、その記憶処理をペンダウン時に行うことはあり得ない。仮にペンダウン時に受信した機能情報ＣＰに基づいてハッシュ値を算出し、機能情報ＣＰと対応付けて記憶したとしても、スタイラス１００ではセンサコントローラ３１の状況を一切知ることができないため、ハッシュ値のみを送信して正しく機能情報ＣＰを伝達できるか否かを判定することができない。したがって、正しく機能情報ＣＰを伝達できることを保証するためには、結局、機能情報ＣＰそのものを送信する他ないからである。これは、ユーザ識別子ＵＩＤと機能情報ＣＰを対応付けて記憶する場合においても同様であり、本変形例によるセンサコントローラ３１がハッシュ値又はユーザ識別子ＵＩＤ等と機能情報ＣＰを対応付けて記憶するには、ペンダウン時ではなくユーザの明確な指示による制御の下で記憶処理を行う必要がある。
【０１７９】
本変形例では、筆圧値が０より大きい値となったこと（すなわち、ペンタッチ操作Ｃ２の検出）をトリガとして機能情報ＣＰの送信を行うようスタイラス１００を構成したが、このようなトリガは、上記第１及び第２の実施の形態においても適用することができる。例えば、図１４のステップＳ１４や図２３のステップＳ５２におけるビーコン信号ＢＳの検出有無の判定に加え、筆圧値が０より大きい値となったことの判定も行うようにスタイラス１００を構成することにより、ビーコン信号ＢＳの検出と筆圧値が０より大きい値となることとのいずれか一方が満たされた場合にスタイラス１００に機能情報ＣＰを送信させる、という構成を実現することが可能になる。
【０１８０】
他に、上記各実施の形態では、センサコントローラ３１が芯体種別ＩＤに基づいて位置導出パラメータを設定する例について説明したが、本発明は、センサコントローラ３１が位置導出パラメータの設定に加えて他の用途に芯体種別ＩＤを利用する場合にも適用することができる。以下、図面を参照し、その一例について説明する。
【０１８１】
図２７（ａ）（ｂ）はそれぞれ、本発明の変形例によるスタイラス１００を示す図である。図２７（ａ）は、硬いペン先を有する芯体１２１Ｄをスタイラス１００に装着した場合を、図２７（ｂ）は、筆のような柔らかいペン先を有する芯体１２１Ｅをスタイラス１００に装着した場合をそれぞれ示している。なお、図２７（ａ）（ｂ）では、電極１０２の記載は省略している。
【０１８２】
図２７（ａ）の例では、ユーザがペン先を通じてタッチ面３ａに圧力Ｐ（あるいは力Ｐ）を与えた場合、その圧力Ｐがすべてダイレクトに操作状態検出部１０５に印加される。したがって、スタイラス１００からセンサコントローラに送信される筆圧値は、タッチ面３ａからペン先に与えられた圧力と同じ値Ｐとなる。一方、図２７（ｂ）の例では、ユーザがペン先を通じてタッチ面３ａに圧力Ｐを与えた場合であっても、操作状態検出部１０５に印加される圧力は、Ｐより小さな値（以下、図示する例ではＰ／３とする）となる。これは、筆の柔軟性や筐体と芯体１２１Ｅの間に生ずる圧力（あるいは力）によって、操作状態検出部１０５に伝達されるべき圧力Ｐの一部が吸収されるからである。したがって、スタイラス１００からセンサコントローラ３１に送信される筆圧値は、Ｐではなくそれより小さい値、例えばＰ／３や、特殊な非線形関数となる。
【０１８３】
このように、芯体１２１の種類によっては、本来の筆圧値Ｐよりも小さな筆圧値がセンサコントローラ３１に伝達されることになる。本変形例によるセンサコントローラ３１は、このように本来の筆圧値より小さな値となって伝達され得る筆圧値を本来の筆圧値（以下、「筆圧レベル」と称する）に変換する目的で、芯体種別ＩＤを利用する。
【０１８４】
詳しく説明すると、本変形例によるセンサコントローラ３１は、芯体種別ＩＤごとに、スタイラス１００から受信される筆圧値を筆圧レベルに変換するための関数（筆圧カーブ。筆圧レベルを導出する方法）を記憶している。そして、スタイラス１００から受信した芯体種別ＩＤに基づいて筆圧カーブを選択し、選択した筆圧カーブにより、スタイラス１００から受信した筆圧値を筆圧レベルに変換する。
【０１８５】
例えば、センサコントローラ３１は、図２７（ａ）の芯体１２１Ｄについて、筆圧カーブとしてＰｂ＝Ｐａを記憶している。ただし、Ｐａはスタイラス１００から受信される筆圧値であり、Ｐｂは変換後の筆圧レベルである。また、センサコントローラ３１は、図２７（ｂ）の芯体１２１Ｅについて、筆圧カーブとしてＰｂ＝Ｐａ×３を記憶している。これにより、芯体１２１Ｄ，１２１Ｅのいずれについても、ユーザがペン先を通じてタッチ面３ａに圧力Ｐを与えた場合の筆圧レベルＰｂはＰとなる。このように、本変形例によれば、センサコントローラ３１は、芯体１２１の種類によらず本来の筆圧値を得ることが可能になる。
【０１８６】
また、さらに他の用途として、筆圧のみならずスタイラス１００の傾き角などを検出する上で、適切な電極あるいは信号分布の形状を特定するために芯体情報を利用することも可能である。本発明によれば、このような場合にも芯体情報を、繰り返し送信されるデータとは別に効率的にセンサコントローラ３１に対して伝えることが可能となる。
【符号の説明】
【０１８７】
１                              システム
３                              電子機器
３ａ                            タッチ面
３０                            センサ
３０Ｘ，３０Ｙ                  線状電極
３１                            センサコントローラ
３２                            システムコントローラ
４０                            選択部
４１ｘ，４１ｙ                  導体選択回路
４４ｘ，４４ｙ                  スイッチ
４９                            検波回路
５０                            受信部
５１                            増幅回路
５２                            検波回路
５３                            ＡＤ変換器
６０                            送信部
６１                            制御信号供給部
６２                            スイッチ
６３                            直接拡散部
６４                            拡散符号保持部
６５                            送信ガード部
７０                            ロジック部
８０                            ＭＣＵ
１００                          スタイラス
１０１                          バッテリー
１０２                          電極
１０３                          テイルスイッチ
１０４                          バレルボタン
１０５                          操作状態検出部
１０６                          スタイラスコントローラＩＣ
１１０                          通信部
１１１                          機能情報更新部
１１２                          インタラクティブデータ取得部
１１３                          非インタラクティブデータ取得部
１２０                          芯体ホルダー
１２１，１２１Ａ〜１２１Ｃ      芯体
１２３，Ｄ１〜Ｄ０，Ｔ１〜Ｔ３  端子
ＢＢ                            バレルボタン状態
ＢＢＮ                          バレルボタン数
ＢＬ                            バッテリーレベル
ＢＳ                            ビーコン信号
Ｃ１                            ペンダウン操作
Ｃ２                            ペンタッチ操作
Ｃ３                            ペンムーブ操作
Ｃ４，Ｃ５                      ペンアップ操作
ＣＢＳ                          カスタムボタンサイズ
ＣＤ                            カスタムデータ
ＣＤｆ                          カスタムデータフラグ
ＣＤＳ                          カスタムデータサイズ
ＣＯＳ                          カスタムオリエンテーションサイズ
ＣＰ                            機能情報
ＣＰ＿Ｈａｓｈ                  ハッシュ値
ＣＰＳ                          カスタム筆圧サイズ
Ｃｏｌ                          色
Ｄ                              データ
ＤＦ                            インタラクティブデータ
ＤＦｍｔ                        データフォーマット
ＤＩＮＦ                        非インタラクティブデータ
ＤＳ                            ダウンリンク信号
Ｆ                              フレーム
Ｈ１〜Ｈ３                      凹部
Ｌ１〜Ｌ３                      配線
ＯＣＴ                          オリエンテーションコードテーブル
ＯＲ                            オリエンテーション
ＯＲＣ                          オリエンテーションコード
ＯＲＲ                          オリエンテーション分解能
ＰＬ                            筆圧段階指示数
Ｒｘ                            受信部
ＳＲ                            センシング範囲
Ｓｔｙｌ                        スタイル
ＴａＰ                          接線方向筆圧値
ＴａＰｆ                        接線方向筆圧フラグ
ＴｉＰ                          筆圧値
Ｔｘ                            送信部
【図１】
2018026165.tif 000005
【図２】
2018026165.tif 000006
【図３】
2018026165.tif 000007
【図４】
2018026165.tif 000008
【図５】
2018026165.tif 000009
【図６】
2018026165.tif 000010
【図７】
2018026165.tif 000011
【図８】
2018026165.tif 000012
【図９】
2018026165.tif 000013
【図１０】
2018026165.tif 000014
【図１１】
2018026165.tif 000015
【図１２】
2018026165.tif 000016
【図１３】
2018026165.tif 000017
【図１４】
2018026165.tif 000018
【図１５】
2018026165.tif 000019
【図１６】
2018026165.tif 000020
【図１７】
2018026165.tif 000021
【図１８】
2018026165.tif 000022
【図１９】
2018026165.tif 000023
【図２０】
2018026165.tif 000024
【図２１】
2018026165.tif 000025
【図２２】
2018026165.tif 000026
【図２３】
2018026165.tif 000027
【図２４】
2018026165.tif 000028
【図２５】
2018026165.tif 000029
【図２６】
2018026165.tif 000030
【図２７】
2018026165.tif 000031