(57)【要約】【課題】アクティブスタイラスの位置検出にセンサコントローラを用いる場合においても、ホストプロセッサ上で動作するアプリケーションがアクティブスタイラスに対してコマンドを発行し、アクティブスタイラスからその結果を受信することを可能にする。【解決手段】アクティブスタイラスと相互作用するように構成されたセンサに結合されたセンサコントローラを介して行われる、ホストプロセッサとアクティブスタイラスとの間の通信の方法である。ホストプロセッサは、該ホストプロセッサ上で動作するアプリケーションから受信したコマンドを送信する。センサコントローラは、ホストプロセッサからコマンドを受信し、アクティブスタイラスに該コマンドを転送する。アクティブスタイラスは、コマンドに応答して、コマンドに従って動作するとともに、コマンド応答をセンサコントローラに対して送信する。【選択図】図１６
2020198137.tif 000002
【特許請求の範囲】
【請求項１】
アクティブスタイラスと相互作用するように構成されたセンサに結合されたセンサコントローラを介して行われる、ホストプロセッサと前記アクティブスタイラスとの間の通信の方法であって、
前記ホストプロセッサが、該ホストプロセッサ上で動作するアプリケーションから受信したコマンドを送信し、
前記センサコントローラが、前記ホストプロセッサから前記コマンドを受信し、前記アクティブスタイラスに該コマンドを転送し、
前記アクティブスタイラスが、前記コマンドに応答して、前記コマンドに従って動作するとともに、コマンド応答を前記センサコントローラに対して送信する、
方法。
【請求項２】
前記センサコントローラは、前記アクティブスタイラスから受信した前記コマンド応答をメモリ装置に記憶する、
請求項１に記載の方法。
【請求項３】
前記ホストプロセッサは、前記センサコントローラの前記メモリ装置から前記コマンド応答を読み出すように要求する、
請求項２に記載の方法。
【請求項４】
前記センサコントローラと前記ホストプロセッサとは、ユニバーサルシリアルバス（ＵＳＢ）インターフェイスを介して接続されるよう構成される、
請求項１に記載の方法。
【請求項５】
前記センサコントローラと前記ホストプロセッサとは、集積回路間（Ｉ２Ｃ）バス又はシリアルペリフェラルインタフェース（ＳＰＩ）バスを介して接続されるように構成される、
請求項１に記載の方法。
【請求項６】
前記コマンドは、前記アクティブスタイラスの属性を特定する要求コマンドである、
請求項１に記載の方法。
【請求項７】
前記コマンドは、推奨色値、推奨線幅値、及び、推奨線スタイル値のうちの１つ以上を特定するように前記アクティブスタイラスに対して要求する、
請求項６に記載の方法。
【請求項８】
前記コマンドは、前記アクティブスタイラスの属性を設定する設定コマンドである、
請求項１に記載の方法。
【請求項９】
前記コマンドは、推奨色値、推奨線幅値、及び、推奨線スタイル値のうちの１つ以上を前記アクティブスタイラスに設定する、
請求項８に記載の方法。
【請求項１０】
前記アクティブスタイラスに推奨線スタイル値を設定する前記コマンドは、さらに、該コマンド内にセットされた前記推奨線スタイル値に対応する線スタイルを有する伝統的マーキングツールの力応答曲線により適合するように前記アクティブスタイラスの圧力曲線を調節する、
請求項９に記載の方法。
【請求項１１】
前記コマンドは、規定のフォーマットでダウンリンク信号を送信するよう前記アクティブスタイラスに要求する、
請求項１に記載の方法。
【請求項１２】
前記規定のフォーマットは、前記アクティブスタイラスがダウンリンク信号を送信するのに用いる送信周波数及び送信時間長の少なくとも一方を指定する、
請求項１１に記載の方法。
【請求項１３】
前記コマンド応答は、前記コマンドに従う動作が成功したか否かを示すフラグを含む、
請求項１に記載の方法。
【請求項１４】
前記コマンド応答は、前記コマンドに従う動作の結果として得られたデータを含む、
請求項１に記載の方法。
【請求項１５】
前記ホストプロセッサ上で動作する前記アプリケーションから受信される前記コマンドはＮビットからなり、前記スタイラスに転送されるコマンドはＮビットからなる、
請求項１に記載の方法。
【請求項１６】
アクティブスタイラスから信号を受信するとともに前記アクティブスタイラスに対して信号を送信するマトリクス状の電極を有するセンサと、ホストプロセッサとに結合されたセンサコントローラであって、
動作中に前記ホストプロセッサ上で動作するアプリケーションからコマンドを受信する受信回路と、
メモリ装置と、
前記受信回路及び前記メモリ装置に結合された処理回路と、を含み、
前記処理回路は、動作中に、
受信された前記コマンドを前記センサの前記マトリクス状の電極を介して前記アクティブスタイラスに転送し、
前記アクティブスタイラスから前記センサの前記マトリクス状の電極を介してコマンド応答を受信し、
受信した前記コマンド応答を前記メモリ装置に格納する、
センサコントローラ。
【請求項１７】
ユニバーサルシリアルバス（ＵＳＢ）インターフェイスを介して前記ホストプロセッサと接続するように構成された請求項１６に記載のセンサコントローラ。
【請求項１８】
集積回路間（Ｉ２Ｃ）バス又はシリアルペリフェラルインタフェース（ＳＰＩ）バスを介して前記ホストプロセッサと接続するように構成された請求項１６に記載のセンサコントローラ。
【請求項１９】
ホストプロセッサであって、
アクティブスタイラスと相互作用するように構成されたセンサに結合されたセンサコントローラに対して、動作中に、前記ホストプロセッサ上で動作するアプリケーションからのコマンドを送信する送信回路と、
前記送信回路に結合され、前記コマンドに応答して前記アクティブスタイラスから返されて前記センサコントローラのメモリ装置に格納されたコマンド応答の読み出しを要求するように構成された処理回路と、
動作中に、前記センサコントローラの前記メモリ装置から読み出された前記コマンド応答を受信する受信回路と、
を含むホストプロセッサ。
【請求項２０】
ユニバーサルシリアルバス（ＵＳＢ）インターフェイスを介して前記センサコントローラと接続するように構成された請求項１９に記載のホストプロセッサ。
【請求項２１】
集積回路間（Ｉ２Ｃ）バス又はシリアルペリフェラルインタフェース（ＳＰＩ）バスを介して前記センサコントローラと接続するように構成された請求項１９に記載のホストプロセッサ。
【請求項２２】
前記コマンドは、前記アクティブスタイラスの属性を特定する要求コマンドである、
請求項１９に記載のホストプロセッサ。
【請求項２３】
前記コマンドは、推奨色値、推奨線幅値、及び、推奨線スタイル値のうちの１つ以上を特定するように前記アクティブスタイラスに対して要求する、
請求項２２に記載のホストプロセッサ。
【請求項２４】
前記コマンドは、前記アクティブスタイラスの属性を設定する設定コマンドである、
請求項１９に記載のホストプロセッサ。
【請求項２５】
前記コマンドは、推奨色値、推奨線幅値、及び、推奨線スタイル値のうちの１つ以上を前記アクティブスタイラスに設定する、
請求項２４に記載のホストプロセッサ。
【請求項２６】
ホストプロセッサ上で動作するアプリケーションからのコマンドを送信するよう構成された前記ホストプロセッサと、
センサと相互作用するように構成されたアクティブスタイラスと、
前記センサに結合されたセンサコントローラと、を含むシステムであって、
前記センサコントローラは、
動作中に前記ホストプロセッサから前記コマンドを受信するセンサ受信回路と、
メモリ装置と、
前記センサ受信回路及び前記メモリ装置に結合され、受信された前記コマンドを前記アクティブスタイラスに転送するように構成された処理回路と、を含み、
前記アクティブスタイラスは、前記コマンドに応答して、前記コマンドに従って動作するとともに、コマンド応答を前記センサコントローラに対して送信する、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１５年４月２０日に出願された「位置入力方法、位置入力システム、センサコントローラ、およびスタイラス」と題する米国仮特許出願第６２／１４９，９０７号、２０１５年５月１５日に出願された「位置入力方法、位置入力システム、センサコントローラ、およびスタイラス」と題する米国仮特許出願第６２／１６２，５２７号、２０１５年１０月１９日に出願された「位置入力方法、位置入力システム、センサコントローラ、およびスタイラス」と題する米国仮特許出願第６２／２４３，４２７号、２０１６年２月４日に出願された「スタイラスとスタイラスセンサコントローラとの間の双方向通信に供されるシステムおよび方法」と題する米国仮特許出願第６２／２９１，３７３号、２０１５年４月２５日に出願された「位置入力方法および位置入力システム」と題する米国仮特許出願第６２／１５２，８７０号、２０１５年７月１３日に出願された「位置入力方法および位置入力システム」と題する米国仮特許出願第６２／１９１，９１３号、２０１５年１０月１３日に出願された「位置入力方法および位置入力システム」と題する米国仮特許出願第６２／２４０，９８４号、および２０１６年２月４日に出願された「位置入力方法および位置入力システム」と題する米国仮特許出願第６２／２９１，３５６号の優先権を主張し、それらの全体は引用によりここに組み込まれる。
【０００２】
本出願は、アクティブスタイラス、スタイラスセンサに対するセンサコントローラ、該スタイラスセンサに結合したホストプロセッサ、ならびにこのようなスタイラス、センサコントローラ、およびホストプロセッサに基づく位置入力システムおよび方法に関し、より詳細には、該スタイラスと該センサコントローラとの間の、および該センサコントローラと該ホストプロセッサとの間の双方向通信プロトコルを利用する位置入力システムおよび方法に関する。
【背景技術】
【０００３】
タブレットコンピュータ、スマートフォンなどの電子装置のスタイラス検知スクリーン（センサ）上にユーザが文字および図形を手書きすることが可能な各種のスタイラスが入手可能である。例えば、アクティブ静電容量式（容量性）スタイラスは電源およびシグナルプロセッサを備え、スタイラスの先端に備えられた電極に送信信号に応じた電荷を供給することによって信号を送信し、これにより先端が示す（指し示す）位置またはその近傍における電界に変化を生じさせる。電子装置のスタイラス検知スクリーン（センサ）はマトリクス状のＸ電極およびＹ電極を備え、スタイラス先端による上述の電界の変化がスタイラス先端またはその近傍のマトリクス電極における相応の電荷の変化を誘起する。センサおよび／または電子装置のホストプロセッサに結合したセンサコントローラは、マトリクス電極におけるこのような電荷の変化を検出することによってスタイラスからの送信信号を検出する。センサコントローラおよび／またはホストプロセッサは、次いで、送信信号を検出したマトリクス電極の位置に基づき、センサ上においてスタイラスにより示された位置を判別する。
【０００４】
異なる種類のアクティブスタイラスは、ペン（スタイラス）先端圧力を検出することができる異なる段階がいくつあるかというペン（スタイラス）先端圧力検出機能、ペンツイスト（回転）検出機能およびペンチルト検出機能を含むペンオリエンテーション検出機能、スタイラス上に備えられた異なる数および種類のバレルボタン（スイッチ）などの、異なるスタイラス機能または作用を有する。通常、スタイラスからセンサコントローラへの通信に使用されるデータフォーマットは、対象としているスタイラスセンサシステムに固定して設定され、異なる種類のスタイラス機能および作用をサポートすること、およびスタイラス機能および作用のバリエーションを拡大することはできない。
【０００５】
各スタイラスはセンサコントローラと共に使用される（すなわち、センサコントローラの検知領域に入る）たびに常にスタイラスの全機能情報をセンサコントローラに送信することが可能である一方、このような全機能情報の送信は、対象としている通信プロトコルにおいて使用可能な多数の時間スロットまたはフレームを消費する。１つまたは複数のスタイラスが絶えずセンサコントローラの検知領域に入る、および検知領域から出る通常の状況において、センサコントローラは、入る各スタイラスの機能情報を即座に取得してスタイラスの個別の機能に適した態様でスタイラスとの通信を開始することができない可能性がある。これによりセンサコントローラの応答時間が低速化し、したがってセンサコントローラとアクティブスタイラスとの間において通信を確立することが遅延し得る。例えば、センサコントローラは、センサコントローラがスタイラスのオリエンテーション検出機能を即座に確認することができないというだけで、スタイラスからのペンオリエンテーションデータを、スタイラスにこのようなオリエンテーションデータを十分に送信する能力がある場合でも速やかに受信することができない可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示は、検知領域に入る１つまたは複数のアクティブスタイラスの機能情報をセンサコントローラが即座に判別することによってスタイラスとの双方向通信を開始することを可能とする技術的解決手段を提供する。本開示は、異なる機能情報を有する異なるアクティブスタイラスをサポートする汎用のスタイラス−センサコントローラ間インタフェースを提供する。本開示は、さらに、ホストプロセッサに結合し得る異なる種類のセンサコントローラをサポートし、ひいては種々のセンサコントローラと共に使用される異なる種類のアクティブスタイラスをサポートするセンサコントローラ−ホストプロセッサ間インタフェースを提供する。
【課題を解決するための手段】
【０００７】
一態様によれば、アクティブスタイラスとインタラクトするように構成されたセンサに結合したセンサコントローラとホストプロセッサとの間の通信に供される方法が提供される。本方法は、概して３つのステップを含む。第１に、前記センサコントローラと前記ホストプロセッサとの間の接続が確立されたときに、定義されたスタイラス属性セットからなるデフォルトのディスクリプタをサポートする前記センサコントローラは、前記デフォルトのディスクリプタを前記ホストプロセッサに送信する。前記定義されたスタイラス属性セットは、異なる種類のアクティブスタイラスによってサポートされ得るすべての（存在し得る）スタイラス属性を含む。第２に、前記センサコントローラは、前記定義されたスタイラス属性セットの第１のサブセットに関してレポートすることが可能な第１のアクティブスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第１のスタイラスレポートであって、前記第１のアクティブスタイラスからレポートされた値を埋め込んだ前記第１のサブセットのスタイラス属性のフィールドを有する第１のスタイラスレポートを、前記ホストプロセッサに送信する。第３に、前記センサコントローラは、前記第１のサブセットと異なる前記定義されたスタイラス属性セットの第２のサブセットに関してレポートすることが可能な第２のアクティブスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第２のスタイラスレポートであって、前記第２のアクティブスタイラスからレポートされた値を埋め込んだ前記第２のサブセットのスタイラス属性のフィールドを有する第２のスタイラスレポートを、前記ホストプロセッサに送信する。
【０００８】
本方法によれば、前記ホストプロセッサは、前記ホストプロセッサが前記センサコントローラに接続されているときに、前記定義されたスタイラス属性セットからなる前記デフォルトのディスクリプタを受信する。したがって、どのような種類のアクティブスタイラスが次に前記センサコントローラと共に使用されるかにかかわらず、前記ホストプロセッサは異なるアクティブスタイラスから前記センサコントローラを介して異なる種類のスタイラスレポートを受信および処理し得る。例えば、前記第１のアクティブスタイラスが第１のサブセットの属性（例えば、位置およびペン圧力）をレポートすることが可能であり、前記第２のアクティブスタイラスが第２のサブセットの属性（例えば、位置、ペン圧力、ペンオリエンテーション、およびペンスイッチステータス）をレポートすることが可能であれば、前記ホストプロセッサは、前記第１のアクティブスタイラスからレポートされた値を埋め込んだ第１のサブセットのスタイラス属性のフィールドを有する第１のスタイラスレポートと、前記第２のアクティブスタイラスからレポートされた値を埋め込んだ第２のサブセットのスタイラス属性のフィールドを有する第２のスタイラスレポートとのいずれかを受信および処理することが可能であり、これは、前記ホストプロセッサが前記センサコントローラから受信した前記デフォルトのディスクリプタによって前記第１のスタイラスレポートおよび前記第２のスタイラスレポートの両方がサポートされることによる。
【０００９】
一態様によれば、前記センサコントローラと前記ホストプロセッサとはユニバーサルシリアルバス（ＵＳＢ）インタフェース、集積回路間（Ｉ２Ｃ）バス、またはシリアルペリフェラルインタフェース（ＳＰＩ）バスを介して接続されるように構成されている。
【００１０】
一態様によれば、前記センサコントローラは、前記第１のアクティブスタイラスまたは前記第２のアクティブスタイラスからレポートされないスタイラス属性に対する前記第１のスタイラスレポートまたは前記第２のスタイラスレポート内のフィールドに既定値を埋め込む。
【００１１】
他の態様によれば、前記センサコントローラは、前記第１のアクティブスタイラスからレポートされた前記第１のサブセットのスタイラス属性、または前記第２のアクティブスタイラスからレポートされた前記第２のサブセットのスタイラス属性に対して、サブサンプリング、スーパーサンプリング、内挿、または外挿などの平滑化アルゴリズムを適用して前記第１のスタイラスレポートまたは前記第２のスタイラスレポート内のフィールドに埋め込む。
【００１２】
一態様によれば、デフォルトのディスクリプタに含まれる前記定義されたスタイラス属性セットは、ｉ）スタイラス座標値、ｉｉ）先端圧力値およびバレルプレッシャ値のうちの少なくとも１つを含むスタイラス圧力値、ｉｉｉ）先端スイッチ値、第１のバレルスイッチ値、および第２のスイッチ値のうちの少なくとも１つを含むスタイラススイッチ値、ｉｖ）スタイラス反転インジケータ値、（ｖ）スタイラスイレーサインジケータ、（ｖｉ）Ｘチルト値、Ｙチルト値、ツイスト値、高度値、方位角値、加速度計値、ジャイロスコープ値、および地磁気計値のうちの少なくとも１つを含むスタイラスオリエンテーション値、（ｖｉｉ）スタイラスバッテリステータス値、（ｖｉｉｉ）スタイラスＩＤ、（ｉｘ）スタイラス推奨色値、（ｘ）スタイラス推奨線幅値、および（ｘｉ）スタイラス推奨線スタイル値を含む。
【００１３】
他の態様によれば、アクティブスタイラスとインタラクトするように構成されたセンサに結合したセンサコントローラとホストプロセッサとの間の通信に供される方法が提供される。本方法は、概して３つのステップを含む。第１に、前記センサコントローラは、定義されたスタイラス属性セットからなる第１の記述と前記定義されたスタイラス属性セットのサブセットからなる第２の記述とを含むデフォルトのディスクリプタをサポートし、前記センサコントローラと前記ホストプロセッサとの間の接続が確立されたときに前記デフォルトのディスクリプタを前記ホストプロセッサに送信する。第２に、前記センサコントローラは、前記定義されたスタイラス属性セットに関して実質的にレポートすることが可能な第１のアクティブスタイラスに結合している場合に、前記第１の記述により定義された第１のスタイラスレポートであって、前記第１のアクティブスタイラスからレポートされた値を埋め込んだ前記定義されたスタイラス属性セットのフィールドを実質的に有する第１のスタイラスレポートを、前記ホストプロセッサに送信する。第３に、前記センサコントローラは、スタイラス属性の前記サブセットに関して実質的にレポートすることが可能な第２のアクティブスタイラスに結合している場合に、前記第２の記述により定義された第２のスタイラスレポートであって、前記第２のアクティブスタイラスからレポートされた値を埋め込んだスタイラス属性の前記サブセットのフィールドを実質的に有する第２のスタイラスレポートを、前記ホストプロセッサに送信する。
【００１４】
本方法によれば、スタイラスレポートを送信するのに用いられる種類のアクティブスタイラスに応じて、定義されたスタイラス属性セットからなる第１の記述により定義された第１のスタイラスレポートと、前記定義されたスタイラス属性セットのサブセットからなる第２の記述により定義された第２のスタイラスレポートとのいずれかが前記ホストプロセッサによって受信される。前記第１の記述および前記第２の記述の両方を含む前記デフォルトのディスクリプタを前記センサコントローラから受信済みであれば、前記ホストプロセッサは、前記第１のスタイラスレポートまたは前記第２のスタイラスレポートのいずれかを受信および処理し得る。典型的には、前記第１のスタイラスレポートは前記第２のスタイラスレポートより大きいデータサイズを有する。
【００１５】
他の態様によれば、アクティブスタイラスとインタラクトする、センサに結合されるセンサコントローラが提供される。前記センサコントローラは処理回路を備え、該処理回路は動作中に、定義されたスタイラス属性セットからなるデフォルトのディスクリプタをサポートする。前記センサコントローラは、さらに、前記処理回路に結合した送信回路を備え、前記送信回路は動作中に、前記センサコントローラと前記ホストプロセッサとの間の接続が確立されたときに前記デフォルトのディスクリプタを前記ホストプロセッサに送信する。前記送信回路は、前記センサコントローラが前記定義されたスタイラス属性セットの第１のサブセットに関してレポートすることが可能な第１のアクティブスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第１のスタイラスレポートであって、前記第１のアクティブスタイラスからレポートされた値を埋め込んだ前記第１のサブセットのスタイラス属性のフィールドを有する第１のスタイラスレポートを、前記ホストプロセッサに送信する。前記送信回路は、前記センサコントローラが前記定義されたスタイラス属性セットの第２のサブセットに関してレポートすることが可能な第２のスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第２のスタイラスレポートであって、前記第２のアクティブスタイラスからレポートされた値を埋め込んだ前記第２のサブセットのスタイラス属性のフィールドを有する第２のスタイラスレポートを、前記ホストプロセッサに送信する。
【００１６】
他の態様によれば、ホストプロセッサが提供される。前記ホストプロセッサは受信回路を備え、該受信回路は動作中に、アクティブスタイラスとインタラクトするように構成されたセンサに結合したセンサコントローラから、前記ホストプロセッサと前記センサコントローラとの間の接続が確立されたときにデフォルトのディスクリプタを受信し、前記デフォルトのディスクリプタは定義されたスタイラス属性セットを含む。前記ホストプロセッサは、さらに、前記受信回路に結合した処理回路を含む。前記処理回路は、前記センサコントローラが前記定義されたスタイラス属性セットの第１のサブセットに関してレポートすることが可能な第１のアクティブスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第１のスタイラスレポートであって、前記第１のアクティブスタイラスからレポートされた値を埋め込んだ前記第１のサブセットのスタイラス属性のフィールドを有する第１のスタイラスレポートを、前記センサコントローラから受信する。前記処理回路は、前記センサコントローラが前記定義されたスタイラス属性セットの第２のサブセットに関してレポートすることが可能な第２のスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第２のスタイラスレポートであって、前記第２のアクティブスタイラスからレポートされた値を埋め込んだ前記第２のサブセットのスタイラス属性のフィールドを有する第２のスタイラスレポートを、前記センサコントローラから受信する。
【００１７】
さらに他の態様によれば、（ａ）センサとインタラクトするように構成されたアクティブスタイラス、（ｂ）前記センサに結合したセンサコントローラ、および（ｃ）ホストプロセッサを備えるシステムが提供される。前記センサコントローラは、（ｂ）動作中に定義されたスタイラス属性セットからなるデフォルトのディスクリプタをサポートするセンサ処理回路、および前記センサ処理回路に結合したセンサ送信回路を備える。前記ホストプロセッサは、（ｃ）動作中に前記センサコントローラから前記デフォルトのディスクリプタを受信するホスト受信回路、および前記ホスト受信回路に結合したホスト処理回路を備える。前記センサコントローラの前記センサ送信回路は、前記センサコントローラと前記ホストプロセッサとの間の接続が確立されたときに前記デフォルトのディスクリプタを前記ホストプロセッサに送信する。前記センサコントローラの前記センサ送信回路は、前記センサコントローラが前記定義されたスタイラス属性セットの第１のサブセットに関してレポートすることが可能な第１のアクティブスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第１のスタイラスレポートであって、前記第１のアクティブスタイラスからレポートされた値を埋め込んだ前記第１のサブセットのスタイラス属性のフィールドを有する第１のスタイラスレポートを、前記ホストプロセッサに送信する。前記センサコントローラの前記センサ送信回路は、前記センサコントローラが前記第１のサブセットと異なる前記定義されたスタイラス属性セットの第２のサブセットに関してレポートすることが可能な第２のスタイラスに結合している場合に、前記デフォルトのディスクリプタにより定義された第２のスタイラスレポートであって、前記第２のアクティブスタイラスからレポートされた値を埋め込んだ前記第２のサブセットのスタイラス属性のフィールドを有する第２のスタイラスレポートを、前記ホストプロセッサに送信する。
【００１８】
一態様によれば、センサコントローラを介したホストプロセッサとアクティブスタイラスとの間の通信に供される方法が提供され、前記センサコントローラは前記アクティブスタイラスとインタラクトするように構成されたセンサに結合している。本方法は、概して３つのステップを含む。第１に、前記ホストプロセッサは、前記ホストプロセッサ上で動作するアプリケーションから受信したコマンドを送信する。第２に、前記センサコントローラは前記ホストプロセッサから前記コマンドを受信して前記コマンドを前記アクティブスタイラスに転送する。第３に、前記アクティブスタイラスは、前記コマンドに応答して、前記コマンドに従って動作して前記センサコントローラにコマンド応答を送信する。
【００１９】
本方法によれば、前記ホストプロセッサ、またはより詳細には前記ホストプロセッサ上で動作するアプリケーション（例えば、ドローイングアプリケーション）は、前記アクティブスタイラスに、例えば前記アクティブスタイラスのステータスを問い合わせるコマンド、または前記アクティブスタイラスの特定の属性を構成する（設定する）コマンドを送信し得る。
【００２０】
一態様によれば、前記センサコントローラは、前記アクティブスタイラスから返信される前記コマンド応答を、前記センサコントローラに結合したメモリ装置に記憶する。前記ホストプロセッサは、続いて前記センサコントローラの前記メモリ装置から前記コマンド応答を読み出すように要求し得る。
【００２１】
一態様によれば、前記センサコントローラと前記ホストプロセッサとはユニバーサルシリアルバス（ＵＳＢ）インタフェース、集積回路間（Ｉ２Ｃ）バス、またはシリアルペリフェラルインタフェース（ＳＰＩ）バスを介して接続されるように構成されている。
【００２２】
一態様によれば、前記コマンドは前記アクティブスタイラスに対する要求コマンドからなる。
【００２３】
一態様によれば、前記コマンドは、前記アクティブスタイラスの推奨色値、推奨線幅値、または推奨線スタイル値などの、前記アクティブスタイラスの属性を特定する要求コマンドからなる。
【００２４】
他の態様によれば、前記コマンドは、前記アクティブスタイラスの推奨色値、推奨線幅値、または推奨線スタイル値などの、前記アクティブスタイラスの属性を設定する設定コマンドからなる。
【００２５】
一態様によれば、前記アクティブスタイラスからの前記コマンド応答は、前記コマンドに従って動作することの結果として取得されるデータを含む。
【００２６】
他の態様によれば、センサに結合するとともにホストプロセッサに結合するセンサコントローラが備えられ、前記センサコントローラは前記アクティブスタイラスから信号を受信するとともにアクティブスタイラスに信号を送信するマトリクス状の電極を備える。前記センサコントローラは受信回路を備え、該受信回路は動作中に、前記ホストプロセッサ上で動作するアプリケーションからのコマンドを受信する。前記センサコントローラは、さらに、メモリ装置と、前記受信回路および前記メモリ装置に結合した処理回路とを含む。前記処理回路は動作中に、受信した前記コマンドを前記センサの前記マトリクス状の電極を介して前記アクティブスタイラスに転送する。前記処理回路は、前記アクティブスタイラスから前記センサの前記マトリクス状の電極を介してコマンド応答を受信する。前記処理回路は、受信した前記コマンド応答を前記メモリ装置に記憶する。
【００２７】
他の態様によれば、ホストプロセッサが提供される。前記ホストプロセッサは送信回路を備え、該送信回路は動作中に、前記ホストプロセッサ上で動作するアプリケーションからのコマンドを、アクティブスタイラスとインタラクトするように構成されたセンサに結合したセンサコントローラに送信する。前記ホストプロセッサは、さらに、前記送信回路に結合した処理回路を含む。前記処理回路は、前記コマンドに応答して前記アクティブスタイラスから返信されて前記センサコントローラのメモリ装置に記憶されたコマンド応答の読出しを要求するように構成されている。前記ホストプロセッサは、さらに、動作中に前記センサコントローラの前記メモリ装置から前記コマンド応答を読み出すように要求する受信回路を備える。
【００２８】
さらに他の態様によれば、（ａ）ホストプロセッサであって、前記ホストプロセッサ上で動作するアプリケーションからのコマンドを送信するように構成されたホストプロセッサ、（ｂ）センサとインタラクトするように構成されたアクティブスタイラス、および（ｃ）前記センサと結合したセンサコントローラを備えるシステムが提供される。前記センサコントローラは、（ｃ）動作中に前記ホストプロセッサから前記コマンドを受信するセンサ受信回路と、メモリ装置と、前記センサ受信回路および前記メモリ装置に結合しているとともに受信したコマンドを前記アクティブスタイラスに転送するように構成されたセンサ処理回路とを備える。前記アクティブスタイラスは、前記コマンドに応答して、前記コマンドに従って動作して前記センサコントローラにコマンド応答を返信する。
【図面の簡単な説明】
【００２９】
【図１】アクティブスタイラスおよび電子装置（例えば、タブレットコンピュータ）を備え、該電子装置がセンサ、該センサに結合したセンサコントローラ、および該センサコントローラに結合した電子装置のホストプロセッサを備える、システム全体を示す図である。
【図２Ａ】アクティブスタイラス例の機能ブロック図である。
【図２Ｂ】センサコントローラ例の機能ブロック図である。
【図３】スタイラスとセンサコントローラとの間の双方向通信に用いられ、フレームが１６個の（１６）時間スロットｓ０〜ｓ１５に分割されるフレームフォーマット例である。
【図４Ａ】予め定義された（予め設定された）アクティブスタイラスの機能に関する機能情報とユーザ設定可能なアクティブスタイラスの設定に関する設定情報とを含む、アクティブスタイラスのスタイラス機能情報の種類例を列挙したテーブルである。
【図４Ｂ】アクティブスタイラスによって該アクティブスタイラスの機能情報をセンサコントローラに送信するのに用いられるデータフォーマット例を列挙したテーブルである。
【図４Ｃ】アクティブスタイラスによって該アクティブスタイラスのオリエンテーション検出機能に関する機能情報を送信するのに用いられるオリエンテーションコード例を列挙したテーブルである。
【図４Ｄ】機能情報、特にアクティブスタイラスのオリエンテーション検出機能を列挙した他の例のテーブルである。
【図４Ｅ】予め定義されたアクティブスタイラスの機能に関するスタイラス機能情報の３つの例を説明する。
【図５Ａ】ダウンリンク時間スロット割当てにより設定されたスケジュールに従ってアクティブスタイラスからセンサコントローラに送信される、アクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。
【図５Ｂ】ある種類の動作データ、すなわちＩＭＵ（内蔵計測ユニット（ｉｎｅｒｔｉａｌ  ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ））データに対するダウンリンクデータパケットフォーマットを示すテーブルである。
【図５Ｃ】センサコントローラによってポーリングされる（要求される）とセンサコントローラに送信される、アクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。
【図６】アクティブスタイラスの処理フロー例を示すフローチャートである。
【図７】センサコントローラの、特にアクティブスタイラスとのペアリング動作を実行するフロー例を示すフローチャートであって、センサコントローラはアクティブスタイラスからスタイラス機能情報（例えば、設定情報）を示すハッシュ値を受信し、受信したハッシュ値を認識するか否かを判定し、そうであれば、ペアリング動作を迅速化するフローチャートである。
【図８Ａ】センサコントローラがアクティブスタイラスにビーコン信号（ＢＳ）を送信し、アクティブスタイラスがそれに応答してスタイラス機能情報（ＣＰまたはハッシュ＃１）を含む信号をセンサコントローラに返信するフレームフォーマット例を示す。
【図８Ｂ】センサコントローラがアクティブスタイラスにビーコン信号（ＢＳ）を送信し、アクティブスタイラスがそれに応答してスタイラス機能情報（ＣＰまたはハッシュ＃１）を含む信号をセンサコントローラに返信するフレームフォーマット例を示す。
【図９Ａ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図９Ｂ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図９Ｃ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図９Ｄ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図９Ｅ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図９Ｆ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図９Ｇ】センサコントローラによって特定された異なる６種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。
【図１０】アクティブスタイラスとセンサコントローラとの間のペアリング動作例を示すフローチャートであって、アクティブスタイラスはアクティブスタイラスの機能情報を示すハッシュ値を送信し、センサコントローラが受信したハッシュ値を認識するか否かを判定し、認識する場合は、ペアリング動作を迅速化するフローチャートである。センサコントローラは、さらに、受信した機能情報が以前にペアリングしたことのあるスタイラスからのものであることの別の検証に、第２のハッシュ値を用いる。
【図１１】アクティブスタイラスおよび電子装置を備え、該電子装置がセンサ、該センサに結合したセンサコントローラ、および該センサコントローラに結合した電子装置のホストプロセッサを備える、システム全体を示す図であり、特に、センサコントローラとホストプロセッサとの間の双方向通信を示す。
【図１２Ａ】種々のスタイラス属性セットを含むスタイラスレポートの送信をサポートするデフォルトのディスクリプタに基づいた、センサコントローラとホストプロセッサとの間の通信に供される方法を示すフローチャートである。
【図１２Ｂ】種々のスタイラス属性セットを含むスタイラスレポートの送信をサポートするデフォルトのディスクリプタに基づいた、センサコントローラとホストプロセッサとの間の通信に供される方法を示す他のフローチャートである。
【図１２Ｃ】アクティブスタイラスに宛てられたコマンドをセンサコントローラに送信し、該コマンドをアクティブスタイラスに転送し、アクティブスタイラスから返信されるコマンド応答をホストプロセッサによる後の読出しに備えて記憶する、ホストプロセッサとの間の通信に供される方法を示すフローチャートである。
【図１３】定義されたスタイラス属性セットを含むデフォルトのディスクリプタの例を示す。
【図１４】デフォルトのディスクリプタの第１の（全体の）記述によってサポートされるフルレポート、および図１３のデフォルトのディスクリプタの第２の（部分的な）記述によってサポートされるショートレポートに含まれるスタイラス属性を示すテーブルである。
【図１５】定義されたスタイラス属性セットのサブセットを含む、図１３のデフォルトのディスクリプタの一部をなす部分的記述例を示す。
【図１６】センサコントローラにコマンドを送信し、該コマンドをアクティブスタイラスに転送し、次いでコマンド応答を返信する、ホストプロセッサのインタラクティブ動作を示す図１２Ｃの方法のシーケンス図である。
【発明を実施するための形態】
【００３０】
図１は、アクティブスタイラス１００および電子装置（例えば、ＰＣ、タブレットコンピュータ、スマートフォン）３を含むシステム全体を示す。電子装置３は、センサ２０１、センサ２０１に結合したセンサコントローラ２００、およびセンサコントローラ２００に結合した電子装置３のホストプロセッサ３００を備える。図１はセンサコントローラ２００およびホストプロセッサ３００を電子装置３に備えられるように示しているが、ホストプロセッサ３００が、センサコントローラ２００を含む電子装置３（例えば、タブレット周辺装置）に結合するように独立して備えられ得る種々の実施形態が挙げられる。
【００３１】
ＰＣ、タブレットコンピュータ、スマートフォンなどの電子装置３は、典型的には、センサ２０１の下に存在する、または上に存在するスクリーンを備え、ユーザはアクティブスタイラス１００を用いて該スクリーン上に文字および図形を手書きする。ここで用いるアクティブスタイラスは、電子回路、バッテリまたは内蔵のエネルギーコンジットなどの電源１０５を含むスタイラスである。センサ２０１は、容量性タッチ／スタイラスセンサ、抵抗式タッチ／スタイラスセンサ、電磁共鳴スタイラスセンサ、光学式スタイラスセンサ、超音波スタイラスセンサなどの任意の適当な公知のスタイラス検知センサからなり得る。スタイラスセンサもあれば、アクティブスタイラスおよび指タッチの両方を検出することが可能なセンサもある。以下で図２Ｂを参照して詳述するセンサコントローラ２００は、センサ２０１の動作を制御し、アクティブスタイラス１００との双方向通信を実行し、さらにホストプロセッサ３００と通信する。例えば、センサコントローラ２００は、アクティブスタイラス１００からの手書き入力データを処理してセンサ２０１上においてアクティブスタイラス１００により示された（指し示された）位置の（Ｘ，Ｙ）座標および色を判別し、該（Ｘ，Ｙ）座標および色情報を電子装置３のホストプロセッサ３００に転送する。ホストプロセッサ３００は、典型的には、メモリを備えたコントローラまたはＣＰＵなどからなる。センサコントローラ２００およびホストプロセッサ３００は、ＵＳＢヒューマンインタフェース装置（ＨＩＤ）プロトコル（ＰＴＣＬ）などの適当なインタフェースを介して接続される。図１〜１０を参照して、まずアクティブスタイラス１００とセンサコントローラ２００との間の通信を概説し、その後に図１１〜１６を参照して、ホストプロセッサ３００と（アクティブスタイラス１００との通信に代えて）センサコントローラ２００との間の通信を概説する。
【００３２】
以下で図２Ａを参照して詳述するアクティブスタイラス１００は、例えばテーブル（ＴＢＬ）の形態で該スタイラスのスタイラス機能情報を記憶するメモリ／キャッシュを有するスタイラス機能情報マネージャ１１０を備える。以下でより詳細に説明するように、スタイラス機能情報は、典型的には変更可能でない予め定義された（例えば、製造者により設定された）スタイラスの機能に関する機能情報と、ユーザにより調整可能なスタイラスの設定に関する設定情報とを含み得る。スタイラス機能情報マネージャ１１０は、ユーザが例えばスタイラス１００に備えられたスイッチ（ボタン）１１１を用いてスタイラス色およびスタイラス線幅などのスタイラス設定を変更するたびに、設定情報を更新する。図１に、１つのテイルボタン１１１Ａおよび１つのサイドボタン１１１Ｂからなる、このような２つのボタンを示す。アクティブスタイラス１００は、さらに、スタイラス（ペン）先端圧力データおよびスタイラスオリエンテーションデータ（例えば、センサ表面に対してスタイラスがどの程度ツイストまたはチルトしているか）などのアクティブスタイラスの動作状態を示す動作データを予め作成するデータマネージャ１１２を備える。
【００３３】
スタイラス機能情報マネージャ１１０およびデータマネージャ１１２は、両方とも、送信（ＴＸ）回路および受信（ＲＸ）回路を備える通信モジュール１３０に結合している。通信モジュール１３０は、以下でより詳細に説明するように、アクティブスタイラス１００のスタイラス機能情報および動作データをセンサコントローラ２００に送信し、センサコントローラ２００から（ビーコン信号内の）種々のコマンドおよび他の情報を受信する。本双方向通信プロトコルにおいて、センサコントローラ２００はマスタ装置であり、アクティブスタイラス１００はスレーブ装置である。本開示において、センサコントローラ２００からアクティブスタイラス１００への送信方向を「アップリンク（ｕｐｌｉｎｋ）」と称し、アクティブスタイラス１００からセンサコントローラ２００への送信方向を「ダウンリンク（ｄｏｗｎｌｉｎｋ）」と称する。
【００３４】
図１に概略的に示すように、アクティブスタイラス１００とセンサコントローラ２００との間の典型的な双方向通信フローは、アクティブスタイラス１００が下向き矢印によって示されるペンダウン動作の間にセンサコントローラ２００の検知領域（ＳＺ）に入ることによって開始される。アクティブスタイラス１００が検知領域内に入ると、アクティブスタイラス１００はセンサコントローラ２００からセンサ２０１を介して周期的に送信されるビーコン信号を検出し得る。ビーコン信号を検出すると、アクティブスタイラス１００は、スタイラス機能情報マネージャ１１０から受信したスタイラス機能情報を含む応答信号を送信する。以下で図１０を参照して詳述するように、アクティブスタイラス１００の設定情報をハッシュ化して、１時間スロットでセンサコントローラ２００に送信することができる利点がある、固定された（より小さい）サイズのハッシュ値（「ハッシュ＃１（Ｈａｓｈ＃１）」）を生成し得る。ハッシュ＃１には、対応する固定サイズのハッシュ値（「ハッシュ＃２（Ｈａｓｈ＃２）」）が存在する。アクティブスタイラス１００が以前にセンサコントローラ２００とペアリングしたことがあれば、アクティブスタイラス１００およびセンサコントローラ２００の両方が、アクティブスタイラス１００がセンサコントローラ２００とペアリングしたときのアクティブスタイラス１００の特定の設定情報から算出されるハッシュ＃１およびハッシュ＃２を有する。それゆえ、センサコントローラ２００が受信したハッシュ＃１を認識すれば、センサコントローラ２００が以前にアクティブスタイラス１００とペアリングしており、したがって特定の設定情報を含むアクティブスタイラス１００のスタイラス機能情報が既知であることが、センサコントローラ２００に分かる。センサコントローラ２００は、次いで、以前にアクティブスタイラス１００に割り当てられたのと同じダウンリンク時間スロット割当てを用いてアクティブスタイラス１００との双方向通信を開始し得る。さらに、センサコントローラ２００は、受信したハッシュ＃１に対応するハッシュ＃２をアクティブスタイラス１００に返信してセンサコントローラ２００がアクティブスタイラス１００を正しく認識したことを検証し得る。以下でより詳細に説明するように、ハッシュ＃１の使用によって、アクティブスタイラス１００がセンサコントローラ２００の検知領域に再入するたびに、アクティブスタイラス１００とセンサコントローラ２００との間のペアリング処理が迅速化され、このことはアクティブスタイラス１００が繰り返し、検知領域から出て（「ペンアップ（Ｐｅｎ  ｕｐ）」矢印を参照）検知領域に再入する（「ペンダウン（Ｐｅｎ  ｄｏｗｎ）」矢印を参照）場合に特に有利な技術的特徴である。
【００３５】
本明細書で用いる「ペアリング（ｐａｉｒｉｎｇ）」動作とは、センサコントローラ２００からの開始（発見）ビーコン信号を検出したアクティブスタイラス１００からの応答信号の送信によって開始され、センサコントローラ２００からの、アクティブスタイラス１００に対するダウンリンク時間スロット割当てを含む他のビーコン信号の送信によって終了する処理のことを指す。センサコントローラ２００は、アクティブスタイラスのスタイラス機能情報に照らして対象としているアクティブスタイラスに対するダウンリンク時間スロット割当てを決定することによって、スタイラス機能情報を十分にサポートするアクティブスタイラスとの固有の通信リンクを確立する。こうして、ペアリング動作の終了時に、アクティブスタイラスは、新たに確立された固有の通信リンクを用いてセンサコントローラとの双方向通信を開始し得る。
【００３６】
ハッシュ＃１の使用は「迅速インキング（ｆａｓｔ  ｉｎｋｉｎｇ）処理」を達成することにも有利である。アプリケーションプログラムが描画を開始することが可能になるには、該アプリケーションプログラムがスクリーン上に描画しようとする線のパラメータを知る必要がある。これらのパラメータは、例えば、線の色またはブラシスタイル（エアブラシ、チョークなど）を含む。ハッシュ＃１の使用によって、センサコントローラは、検知領域に入った特定のスタイラスに対するこれらのパラメータをセンサコントローラがキャッシュ済みであることを即座に認識し、アプリケーションプログラムがほぼ瞬時に描画、すなわち「インキング（ｉｎｋｉｎｇ）処理」を開始するのにこれらのパラメータを利用可能とすることができる。
【００３７】
図２Ａは、例としてのアクティブスタイラス１００の機能ブロック図である。アクティブスタイラス１００は、アクティブスタイラス１００の先端において、ＴＸ／ＲＸ電極１１５、ＴＸ／ＲＸ電極１１５に結合したスイッチＳＷ、受信回路１１７、送信回路１１９、およびマイクロコントローラユニット（ＭＣＵ）１２０を備える。ＭＣＵ１２０は、ＲＯＭおよびＲＡＭを内蔵するマイクロプロセッサからなり、規定のプログラムに従って動作するように構成されている。スイッチＳＷは、ＭＣＵ１２０からのスイッチ制御信号ＳＷＣにより指示されて、ＴＸ／ＲＸ電極１１５を受信端子Ｒと送信端子Ｔとのいずれかに結合させる。最初に、アクティブスタイラス１００がセンサコントローラ２００からのビーコン信号を待ち受ける間、スイッチＳＷはＴＸ／ＲＸ電極１１５を受信端子Ｒに接続する。受信回路１１７は、ＴＸ／ＲＸ電極１１５からの信号を受信および処理してＭＣＵ１２０により使用可能なデジタル形式で出力するのに必要な電子構成部品を備える。ＭＣＵ１２０がセンサコントローラ２００からのビーコン信号を検出すると、ＭＣＵ１２０は、送信回路１１９と協働して応答信号（例えば、ＡＣＫ信号）を生成しておき、さらにスイッチ制御信号ＳＷＣをスイッチＳＷに送出してＴＸ／ＲＸ電極１１５を送信端子Ｔに接続させることにより、該応答信号をＴＸ／ＲＸ電極１１５を介してセンサコントローラ２００に送信する。
【００３８】
送信回路１１９は、ＭＣＵ１２０からの信号を受信および処理してＴＸ／ＲＸ電極１１５を介しセンサコントローラ２００に送信されるように出力するのに必要な電子構成部品を備える。例えば、送信回路１１９は、ＭＣＵ１２０により規定された周波数のキャリア信号を生成し、該キャリア信号を、センサコントローラ２００がアクティブスタイラス１００により示された位置を判別する（算出する）のに用いる「位置パケット（ｐｏｓｉｔｉｏｎ  ｐａｃｋｅｔｓ）」として無変調で出力し得る。これに代えて、送信回路１１９は、ＰＳＫ（位相偏移）、Ｄ−ＢＰＳＫ（差動二相ＰＳＫ）、ＱＡＭ（直交振幅変調）、およびＤＳＳＳ（直接シーケンススペクトラム拡散）などの任意の適当な変調方式を用いて、設定情報を示すハッシュ＃１などのアクティブスタイラス１００のスタイラス機能情報によりキャリア信号を変調してもよい。次いで、スタイラス機能情報により変調された信号をＴＸ／ＲＸ電極１１５を介してセンサコントローラ２００に送信する。
【００３９】
送信回路１１９は、アクティブスタイラス１００の動作状態を示す動作データなどのスタイラス機能情報以外の情報によりキャリア信号を変調し得る。動作データは、例えば、スタイラス（ペン）先端圧力データ、スタイラスバレルプレッシャデータ、スタイラスオリエンテーション（例えば、ツイスト／チルト）データ、スタイラススイッチステータス、およびスタイラスバッテリレベルを含み得る。このような動作データを生成するために、アクティブスタイラス１００は、スタイラス先端に加わる圧力を検知するように構成されたスタイラス（ペン）先端圧力センサ１２２ａ（例えば、可変キャパシタからなる）、スタイラスバレルに加わる圧力を検知するように構成されたバレルプレッシャセンサ、９軸以下の軸を有するＩＭＵ（内蔵計測ユニット）１２２ｂ（３軸ジャイロスコープ、３軸加速度計、および３軸地磁気計のうちの１つまたは複数の組合せから構成される）、センサ２０１のＸ電極（またはＹ電極）の各々の方向に対するアクティブスタイラス１００の軸の周りのアクティブスタイラス１００のツイスト／回転を検知するように構成されたツイストセンサ１２２ｃ、センサ２０１の表面に対するアクティブスタイラス１００の軸のＸ方向チルトおよびＹ方向チルトを検知するように構成されたチルトセンサ１２２ｄなどの１つまたは複数のセンサ１２２を備える（スタイラス先端圧力センサ１２２ａ以外のセンサ１２２ｂ〜１２２ｄの図を省略した）。ＭＣＵ１２０および送信回路１１９は、これらのセンサからの出力を、ＴＸ／ＲＸ電極１１５を介してセンサコントローラ２００に送信する「データパケット」に予め整える。該データパケットをセンサコントローラ２００に送信するために、ＭＣＵ１２０は、ＴＸ／ＲＸ電極１１５を送信端子Ｔに接続させるスイッチ制御信号ＳＷＣをスイッチＳＷに送出する。
【００４０】
種々のアクティブスタイラスは種々の検知機能を有しており、多様なセンサを取りそろえるように装備したセンサが存在する一方で、スタイラス先端圧力センサ１２２ａのみを備えたセンサも存在する。以下でより詳細に説明するように、本発明は、検知領域に入る、対象としているアクティブスタイラスの、個々の機能をセンサコントローラ２００が即座に確認することを可能とするによって、スタイラスの機能をサポートする固有の通信リンクを（特定のダウンリンク時間スロット割当てに基づいて）構成する双方向通信プロトコルを提案する。
【００４１】
図２Ｂは、例としてのセンサコントローラ２００の機能ブロック図である。センサコントローラ２００は電子装置３の一部であって（図１を参照）、Ｘ電極２０１ＸおよびＹ電極２０１Ｙを備えるセンサ２０１に結合しており、センサ２０１上においてアクティブスタイラス１００が様々な手書き動作を行う。センサコントローラ２００は、さらに、電子装置３のホストプロセッサ３００に結合している。
【００４２】
センサコントローラ２００は、送信回路２１０、セレクタ２２０、受信回路２３０、論理ユニット２３５、およびＭＣＵ（マイクロコントローラユニット）２４０を備える。ＭＣＵ２４０は、ＲＯＭおよびＲＡＭを内蔵するマイクロプロセッサからなり、規定のプログラムに従って動作するように構成されている。ＭＣＵ２４０は、論理ユニット２３５に、送信回路２１０、セレクタ２２０、および受信回路２３０の動作を制御する制御信号伝達（ｃｔｒ、ｓＴＲｘ、ｓＴＲｙ、ｓｅｌＸ、ｓｅｌＹなど）を発するように指示する。ＭＣＵ２４０は、受信回路２３０から受信したデジタルデータを処理して、センサ２０１のアクティブスタイラス１００により示された位置のＸ座標およびＹ座標、色、不透明度（暗さ）などを判別／算出し、例えば、表示のために電子装置３のホストプロセッサ３００に算出した位置データを出力する。
【００４３】
送信回路２１０は、ＭＣＵ２４０からの信号を、センサ２０１のマトリクス電極を介してアクティブスタイラス１００に送信されるように受信および処理して出力するのに必要な電子構成部品を備える。具体的には、ＭＣＵ２４０の制御下において、送信回路２１０は、周期的なビーコン信号を生成してセンサ２０１のマトリクス電極を介してアクティブスタイラス１００に送信する。以下でより詳細に説明するように、ビーコン信号は、センサコントローラ２００を発見するためにアクティブスタイラスの近傍で用いられ（検出され）、アクティブスタイラスがセンサコントローラ２００と同期するタイミング基準として機能する。さらに、ビーコン信号は、上述のように、アクティブスタイラス１００からハッシュ＃１を受信したセンサコントローラ２００が検証用にアクティブスタイラス１００に返信するハッシュ＃２を含み得る。ビーコン信号は、アクティブスタイラスに対して決定されるダウンリンク時間スロット割当てを含むことが可能であり、それによりどのようなダウンリンク時間スロットを用いてどのような種類のパケットをセンサコントローラに送信するかをアクティブスタイラスに通知する。またさらに、ビーコン信号は、アクティブスタイラス１００の動作を制御する種々のコマンドを含み得る。例えば、ビーコン信号は、センサコントローラ２００に（付加的な）スタイラス機能情報を送信するようにアクティブスタイラス１００に要求する読出しコマンド、またはアクティブスタイラス１００に関する機能情報を設定する（書き込む）書込みコマンドを含み得る。ビーコン信号は、さらに、アクティブスタイラスのバッテリレベルなどのアクティブスタイラスの動作データをセンサコントローラに送信するようアクティブスタイラスに要求する（ポーリングする）ポーリングコマンドを含み得る。送信回路２１０は、ビーコン信号を形成するキャリア信号を、ＰＳＫ、Ｄ−ＢＰＳＫ、ＱＡＭ、およびＤＳＳＳなどの任意の適当な変調方式を用い、ハッシュ＃２によって、ダウンリンク時間スロット割当てによって、またはＭＣＵ２４０から受信したこれらの種々のコマンドによって変調し得る。
【００４４】
受信回路２３０は、アクティブスタイラス１００から受信した信号を処理してセンサ２０１のマトリクス電極を介しＭＣＵ２４０により使用可能なデジタル形式で出力するのに必要な電子構成部品を備える。例えば、受信回路２３０は、アクティブスタイラス１００から受信した、（ビーコン信号に応答した）応答信号、（アクティブスタイラスの動作データを含む）データパケット、および位置パケットを処理してＭＣＵ２４０へと出力する。センサ２０１がアクティブスタイラス１００に加えて指タッチを検出することが可能である場合、受信回路２３０は、アクティブスタイラス１００から送信された信号に加えて指タッチを示す信号をセンサ２０１のマトリクス電極を介して受信および処理して、アクティブスタイラス１００によって示された位置に加えて指タッチ位置を判別するＭＣＵ２４０へと出力する。
【００４５】
セレクタ２２０は、論理ユニット２３５からの制御信号伝達に基づいて、送信モードと受信モードとの間でセンサ２０１の動作モードを切り替える。セレクタ２２０は、スイッチ２２２ｘおよび２２２ｙと電極選択回路２２４ｘおよび２２４ｙとを備える。論理ユニット２３５からの制御信号伝達ｓＴＲｙおよびｓＴＲｘに基づいて、スイッチ２２２ｘ、２２２ｙは、センサ２０１のＸ電極２０１ＸおよびＹ電極２０１Ｙをそれぞれ、送信回路２１０に結合した送信端子Ｔと受信回路２３０に結合した受信端子Ｒとのいずれかに接続する。送信モードでは送信回路２１０に結合した電極を用いてアクティブスタイラス１００に信号を送信し、受信モードでは受信回路２３０に結合した電極を用いてアクティブスタイラス１００からの信号を受信する。さらに、アクティブスタイラス１００に信号を送信する、またはアクティブスタイラス１００から信号を受信するために、制御信号伝達ｓｅｌＸ、ｓｅｌＸに基づいて、電極選択回路２２４ｘ、２２４ｙは、それぞれＸ電極２０１Ｘ、Ｙ電極２０１Ｙを選択する。論理ユニット２３５は、さらに、ＭＣＵ２４０に指示されて、送信回路２１０および受信回路２３０に制御信号伝達「ｃｔｒ」を送出して送信回路２１０および受信回路２３０の動作を制御する。
【００４６】
図３は、アクティブスタイラス１００とセンサコントローラ２００との間の双方向通信に用いられるフレームフォーマット例であり、双方向通信リソースは、時間軸に沿ってフレームに分割されると共に周波数軸に沿って異なる周波数に分割される。各フレームは、さらに、時間軸に沿って１６個の（１６）時間スロットｓ０〜ｓ１５に分割され、各時間スロットは、例えば２０ビット（１６情報ビットに４ＣＲＣビットが加わる）まで収容するサイズに定められている。一例として、フレーム長は１６ｍｓｅｃであり、時間スロット長は１ｍｓｅｃである。なお、フレームを１６より少ないまたは多い時間スロットに分割してもよく、本発明はここで説明する１６時間スロットの例に限定されない。例えば、１６ｍｓｅｃのフレームを６４時間スロットに分割して、各時間スロットを２５０μｓｅｃの長さとしてもよい。
【００４７】
実施例として、各フレームの開始時における１つまたは複数の時間スロットは、センサコントローラ２００によって、周期的なビーコン信号（ＢＳ）をアクティブスタイラス１００に送信するのに「アップリンク（ｕｐｌｉｎｋ）」において用いられる。したがって、フレームを、２つの連続するビーコン信号の開始時の間の間隔とみなし得る。各フレームにおける他の時間スロットは、以降で図８Ａ〜９Ｇの種々の例に示すように、アクティブスタイラス１００によって、信号（例えば、ビーコン信号に対する応答信号）、データパケット、および位置パケットをセンサコントローラ２００に送信するのに「ダウンリンク（ｄｏｗｎｌｉｎｋ）」において用いられる。図示しないが、アップリンク時間スロット（図３におけるｓ０）とダウンリンク時間スロット（図３におけるｓ１〜ｓ１５）との間に、アップリンク送信とダウンリンク送信との間の衝突を避けるように、アップリンクにもダウンリンクにも送信がスケジューリングされない期間であるギャップ時間スロットを設けてもよい。
【００４８】
ビーコン信号は、近傍のアクティブスタイラスがセンサコントローラ２００を発見することができるように、またセンサコントローラ２００とアクティブスタイラス１００との間の双方向通信に用いられる時間スロットのタイミング基準として機能するようにセンサコントローラ２００によって送信される周期信号である。したがって、通常の実施形態において、ビーコン信号は、すべてのアクティブスタイラスによって検出可能となるようにすべての周波数で送信される。各アクティブスタイラス１００はビーコン信号を待ち受け、アクティブスタイラス１００がビーコン信号を検出した後に、アクティブスタイラス１００はビーコン信号に基づいてアクティブスタイラス１００のタイミング基準を設定する。センサコントローラ２００を発見するアクティブスタイラス１００によって検出される最初のビーコン信号に続くビーコン信号は、アクティブスタイラス１００が以前にセンサコントローラ２００とペアリングしたことを検証するのに用いられるハッシュ＃２などの種々の情報と、ペアリング動作中およびペアリング動作後にアクティブスタイラス１００の動作を制御するコマンドとを含み得る。アクティブスタイラス１００に宛てられたハッシュ＃２またはコマンドを含むビーコン信号は、典型的には、いずれのビーコン信号が（存在し得る他のアクティブスタイラスにではなく）アクティブスタイラス１００に宛てられているかをアクティブスタイラス１００が識別することができるように、アクティブスタイラス１００のスタイラスＩＤを含む。センサコントローラ２００からのビーコン信号は、さらに、典型的には、センサコントローラ２００のセンサコントローラＩＤを含む。
【００４９】
種々の実施形態に従って、センサコントローラ２００は、センサコントローラ２００の検知領域に入りつつある各アクティブスタイラス１００の機能情報を即座に確認し、確認した機能情報に基づいてアクティブスタイラス１００のダウンリンク時間スロット割当てを決定する。アクティブスタイラス１００は、次いで、アクティブスタイラス１００の機能をサポートする決定したダウンリンク時間スロット割当てに従って、データパケットおよび／または位置パケットをセンサコントローラに送信することにより、センサコントローラとの双方向通信を開始する。例えば、対象としているアクティブスタイラスがスタイラスオリエンテーション検出機能を有するとセンサコントローラ２００が判定する場合に、センサコントローラ２００はアクティブスタイラス１００がスタイラスオリエンテーションデータをセンサコントローラ２００に送信するようにダウンリンク時間スロットを割り当てる一方、このようなスタイラスオリエンテーション検出機能を有していないアクティブスタイラスにはこのようなダウンリンク時間スロットを割り当てない。こうして、センサコントローラ２００は、アクティブスタイラスの機能情報に応じて、異なるダウンリンク時間スロット割当てをアクティブスタイラスに割り当て得る。アクティブスタイラスがセンサコントローラ２００の検知領域外に存在する間に、ユーザにより調整可能なアクティブスタイラスの設定に関する設定情報（例えば、スタイラス線幅）が変更され得るため、該センサコントローラは、該アクティブスタイラスが以前に該センサコントローラとペアリングしたことがある場合であっても、該アクティブスタイラスが検知領域に再入するたびに現在の設定情報を確認する必要がある。
【００５０】
図４Ａは、アクティブスタイラスのスタイラス機能情報の種類例を列挙したテーブルであり、機能情報および設定情報を含む。機能情報は、通常はスタイラスベンダ（製造者）により予め設定され、かつ通常はユーザにより変更可能でない、アクティブスタイラスの予め定義された機能に関連する。例えば、スタイラス上に備えられたバレルスイッチの数はユーザにより変更可能でない。機能情報は、さらに、アクティブスタイラスがいずれのバージョンの双方向通信プロトコルに準拠するかを示すバージョン番号（４ビット）を含み得る。機能情報は、さらに、センサ２０１の画面上に表示するアクティブスタイラスの推奨の、またはデフォルト色である「推奨色」（１４０ＣＳＳ（カスケーディングスタイルシート）色のうちの１つを示す８ビット）を含み得る。機能情報は、さらに、図４Ｂを参照して以下でより詳細に説明するように、ベンダによりアクティブスタイラスに対して設定され得る種々の他の機能に関連し得る。
【００５１】
図４Ａは、さらに、スタイラス線幅およびスタイラス先端タイプ（例えば、０＝ペン、１＝イレーサ、２＝チゼル先端マーカ、３＝エアブラシ、４＝鉛筆、５〜７＝カスタム／ベンダ仕様先端スタイル用に確保）を含む「ペンスタイル（ｐｅｎ  ｓｔｙｌｅ）」などのユーザにより調整可能なアクティブスタイラスの設定に関する設定情報と、アクティブスタイラスのテイル／バレルボタン（スイッチ）１１１Ａ／１１１Ｂに割り当てられた機能とを記述する。例えば、ユーザは、ボタン（スイッチ）を操作することによってペンスタイルを変更し、またはボタン（スイッチ）に割り当てられた機能を変更し得る。設定情報は、アクティブスタイラスに対して設定され得るユーザにより変更可能な他の設定に関連し得る。アクティブスタイラスの固有の識別番号は、アクティブスタイラス上に配置された１つまたは複数のスイッチを用いてユーザにより変更可能とし得る。例えば、共に各スタイラスに対する６４ビットグローバルＩＤを構成し得るベンダＩＤ（８ビット）およびシリアル番号（５６ビット）は、ユーザにより変更可能とし得る。（グローバルＩＤがユーザにより変更可能でない実施形態が挙げられる。）さらに、機能情報の１つの種類として上述したアクティブスタイラスの「推奨色（ｐｒｅｆｅｒｒｅｄ  ｃｏｌｏｒ）」は、ユーザにより調整可能な設定情報に変更し得るものであり、ユーザは例えばボタン（スイッチ）を用いて推奨（既定）色を自由に調整し得る。「推奨色（ｐｒｅｆｅｒｒｅｄ  ｃｏｌｏｒ）」の例が示すように、機能情報と設定情報との差異は厳密でなく、ベンダごとに、またはスタイラスごとに変わり得る。さらに、機能情報として取り扱い得るといったように、ユーザによって一回のみ、または非常に低頻度で設定され得る設定情報も存在し得る。
【００５２】
図４Ｂは、アクティブスタイラスによって該アクティブスタイラスの機能情報をセンサコントローラ２００に送信するのに用いられるデータフォーマット例を列挙したテーブルである。機能情報は、図４Ｃを参照して以下でより詳細に説明するように、例えば、いくつの異なる段階（例えば、２５６、５１２、１０２４など）のペン先端圧力を検出することが可能か、アクティブスタイラス上に備えられたバレルボタン数（例えば、１１１Ａ／１１１Ｂ）の数値、バレルプレッシャを検出するスタイラスの機能（可不可であって、可であれば、いくつの異なる段階のバレルプレッシャを検出することが可能か）、およびスタイラスオリエンテーション（例えば、スタイラスツイストおよびチルト）を検出するスタイラスの機能に関する情報を含む。
【００５３】
図４Ｂの機能情報は、さらに、データパケットに対してカスタム（カスタマイズされた）データサイズが設定されているか否か、そして設定されている場合はカスタムデータバイト数の数値、スタイラスのオリエンテーションを検出することが可能なオリエンテーション分解能（例えば、０は８ビット分解能を示し、１は９ビット分解能を示し、２は１０ビット分解能を示す）、ペン先端圧力を検出することが可能な異なる段階の（デフォルト値とは異なって）カスタマイズされた値、アクティブスタイラスに設けられるバレルボタンの（デフォルト数とは異なって）カスタマイズされた数、およびオリエンテーションデータを送信するのに用いられる（デフォルトのデータバイト数とは異なって）カスタマイズされたデータバイト数に関する情報を含み得る。
【００５４】
図４Ｃは、アクティブスタイラスによって該アクティブスタイラスのオリエンテーション検出機能に関する機能情報をセンサコントローラに送信するのに用いられるオリエンテーションコード例を列挙したテーブルである。オリエンテーションコード０は、アクティブスタイラスがオリエンテーション検出機能を有していないことを示し、１は、アクティブスタイラスがＸ方向およびＹ方向の両方におけるチルトを検出することが可能であること、および検出されたＸチルトデータおよびＹチルトデータをフレーム当たり２時間スロットで送信することが可能であることを示し、２は、アクティブスタイラスがＸチルトおよびＹチルトに加えてツイスト（回転）データをフレーム当たり３時間スロットで検出および送信することが可能であることを示し、３は、アクティブスタイラスがセンサ表面に対するアクティブスタイラスの高度データおよび方位角データをフレーム当たり２時間スロットで検出および送信することが可能であることを示し、４は、アクティブスタイラスが高度および方位角データならびにツイスト（回転）データをフレーム当たり３時間スロットで検出および送信することが可能であることを示し、５は、アクティブスタイラスが３軸ジャイロスコープおよび３軸加速度計の組合せからなる６軸ＩＭＵ（内蔵計測ユニット）を備えること、および６軸ＩＭＵデータをフレーム当たり３時間スロットで送信することが可能であることを示し、６は、アクティブスタイラスが３軸ジャイロスコープ、３軸加速度計、および３軸地磁気計の組合せからなる９軸ＩＭＵを備えること、および９軸ＩＭＵデータをフレーム当たり３時間スロットで送信することが可能であることを示し、７は、アクティブスタイラスによって検出および送信され得るオリエンテーションデータのカスタマイズされた形式を示す。
【００５５】
図４Ｃのオリエンテーションコードテーブルは異なる種類のオリエンテーションセンサを表す０〜７の異なる値を示すが、図４Ｄに示すように、代替手法は、アクティブスタイラスが該アクティブスタイラスのオリエンテーション機能をセンサコントローラに通知するのに用い得る機能のビットフィールドを備えることである。機能情報において設定されるビットの各々は、スタイラスが該当するアイテムを計測することが可能であることを示す。機能情報フィールドにバレルプレッシャビットが設定される場合、そのことはスタイラスがバレルプレッシャを示すものを有することを示す。チルトビットが設定される場合、そのことはスタイラスがＸチルトおよびＹチルトを計測することが可能であることを示す。ツイストビットが設定される場合、そのことはスタイラスが軸の周りのツイストを計測することが可能であることを示す。高度および方位角ビットが設定される場合、そのことはスタイラスがスタイラスの高度および方位角を計測することが可能であることを示す。ＩＭＵｈａｓＡｃｃｅｌビットが設定される場合、そのことはスタイラスが３軸加速度計値を備えることを示す。ＩＭＵｈａｓＧｒｙｏフラグが設定される場合、そのことはスタイラスが３軸ジャイロスコープを備えることを示す。ＩＭＵｈａｓＭａｇｎｅｔビットが設定される場合、そのことはスタイラスが３軸地磁気計を備えることを示す。設定されるこれらのビットの各々は、そのデータに時間スロットを割り当てる必要性を示し、後述することであるが、ＩＭＵに関しては単一の時間スロットまたは時間スロットのセットにデータを多重させることが可能である。
【００５６】
図４Ｅは、アクティブスタイラスの機能情報の３つの例を記述している。例１は、１０２４の異なる段階でスタイラス先端圧力を検出することが可能である第１のアクティブスタイラスの機能情報であり、１つのバレルボタンを有し、接線方向（バレル）圧力検知機能、スタイラスオリエンテーション検知機能、およびカスタム機能を有していない。例２は、２０４８の異なる段階でスタイラス先端圧力を検出することが可能である第２のアクティブスタイラスの機能情報であり、２つのバレルボタン、接線方向（バレル）圧力検知機能、および９軸ＩＭＵ（図４Ｃにおけるオリエンテーションコード６）に基づくスタイラスオリエンテーション検知機能を有し、カスタム機能を有していない。例３は、各圧力段階（値）が１６ビットで表されるカスタマイズされた数値からなる異なる段階でスタイラス先端圧力を検出することが可能である第３のアクティブスタイラスの機能情報であり、バレルボタン、接線方向（バレル）圧力検知機能を有しておらず、アクティブスタイラスの高度および方位角データならびにツイスト（回転）データを検出およびレポートするスタイラスオリエンテーション検知機能を有する（図４Ｃにおけるオリエンテーションコード４）。
【００５７】
図５Ａは、アクティブスタイラスに対してダウンリンク時間スロット割当てにより設定されたスケジュールに従って、アクティブスタイラスからセンサコントローラに送信され得るアクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。スケジュールに従って送信される動作データが、センサコントローラがセンサコントローラとアクティブスタイラスとの間の適切なインタラクティブ動作を達成するのに必要とする動作データからなる、種々の実施形態が挙げられる。このような動作データは、例えば、先端圧力データ、接線方向（バレル）圧力データ、各バレルボタンのステータス（例えば、各バレルボタンのオン／オフ状態）、アクティブスタイラスが該アクティブスタイラスの所期のオリエンテーションから反転している（すなわち、スタイラス先端が上方を向く、つまりスタイラステイルがセンサ表面の方を向いて、およびセンサ表面と接触して、例えば「イレーサ（ｅｒａｓｅｒ）」として用いられる）か否かを示す反転データ、スタイラスオリエンテーションデータ、およびアクティブスタイラスの何らかの動作状態を示す任意の他のカスタマイズされた動作データを含む。
【００５８】
場合によっては、スタイラス内のセンサからの動作データの量が多大となり得る。このことは特にＩＭＵに当てはまる。これらのセンサは次のいずれかまたはすべて、すなわち１〜３軸を有する加速度計、１〜３軸を有するジャイロスコープ、および１〜３軸を有する地磁気計のいずれかまたはすべてを備え得る。これにより、最大で９軸のデータを送信する必要性が生じ得る。このデータを指定された種類（例えば、加速度計のＸ軸、Ｙ軸、Ｚ軸、ジャイロスコープのＸ軸、Ｙ軸、Ｚ軸、および地磁気計のＸ軸、Ｙ軸、Ｚ軸）からなる９時間スロットで送信することに代えて、１つまたは複数の時間スロットにデータを多重させ得る。
【００５９】
多重を実現するために、いずれのセンサ（加速度計、ジャイロスコープ、または地磁気計）からデータが生じたかを示すフラグ（ＩＭＵフラグ）によってＩＭＵデータをタグ付けする。図５Ｂは、ＩＭＵデータを送信するデータパケット（またはレポート）の例である。図５Ｂにおいて、「ＩＭＵデータ（ＩＭＵ  ｄａｔａ）」フィールドは、ＩＭＵデータ自体を含み、「ＩＭＵフラグ（ＩＭＵ  Ｆｌａｇ）」フィールドはいずれのセンサがＩＭＵデータを生成したかを示す。例えば、ＩＭＵフラグがゼロである場合はそのことはデータが加速度計から生じたことを示し、ＩＭＵフラグが１である場合はそのことはデータがジャイロスコープから生じたことを示し、ＩＭＵフラグが２である場合はそのことはデータが地磁気計から生じたことを示し得る。ＩＭＵデータフィールドは、ＩＭＵフラグにより示されるセンサによって生成されたＸ軸データ、Ｙ軸データ、Ｚ軸データを含み得る。
【００６０】
例えば、９軸のデータ（例えば、加速度計のＸ軸、Ｙ軸、Ｚ軸、ジャイロスコープのＸ軸、Ｙ軸、Ｚ軸、および地磁気計のＸ軸、Ｙ軸、Ｚ軸）を、共通のレポートフォーマット（またはデータパケット）の３時間スロット（または３つのデータフィールド）に多重させて、以下のように３つの異なる時点において３つのレポートを作成し得る。
（レポート１）
センサタグ−「加速度計（Ａｃｃｅｌｅｒｏｍｅｔｅｒ）」
Ｘ軸データフィールド−加速度計Ｘ軸データ
Ｙ軸データフィールド−加速度計Ｙ軸データ
Ｚ軸データフィールド−加速度計Ｚ軸データ
（レポート２）
センサタグ−「ジャイロスコープ（Ｇｙｒｏｓｃｏｐｅ）」
Ｘ軸データフィールド−ジャイロスコープＸ軸データ
Ｙ軸データフィールド−ジャイロスコープＹ軸データ
Ｚ軸データフィールド−ジャイロスコープＺ軸データ
（レポート３）
センサタグ−「地磁気計（Ｍａｇｎｅｔｏｍｅｔｅｒ）」
Ｘ軸データフィールド−地磁気計Ｘ軸データ
Ｙ軸データフィールド−地磁気計Ｙ軸データ
Ｚ軸データフィールド−地磁気計Ｚ軸データ
【００６１】
他の例として、９軸のデータを共通のレポートフォーマット（またはデータパケット）の１時間スロット（または１つのデータフィールド）に多重させて、９つの異なる時点において９つのレポートを作成し得る。
（レポート１）
センサタグ−「加速度計（Ａｃｃｅｌｅｒｏｍｅｔｅｒ）」
軸タグ−「Ｘ」
データフィールド−加速度計Ｘ軸データ
（レポート２）
センサタグ−「加速度計（Ａｃｃｅｌｅｒｏｍｅｔｅｒ）」
軸タグ−「Ｙ」
データフィールド−加速度計Ｙ軸データ
（レポート３）
センサタグ−「加速度計（Ａｃｃｅｌｅｒｏｍｅｔｅｒ）」
軸タグ−「Ｚ」
データフィールド−加速度計Ｚ軸データ
（レポート４）
センサタグ−「ジャイロスコープ（Ｇｙｒｏｓｃｏｐｅ）」
軸タグ−「Ｘ」
データフィールド−ジャイロスコープＸ軸データ
（レポート５）
センサタグ−「ジャイロスコープ（Ｇｙｒｏｓｃｏｐｅ）」
軸タグ−「Ｙ」
データフィールド−ジャイロスコープＹ軸データ
（レポート６）
センサタグ−「ジャイロスコープ（Ｇｙｒｏｓｃｏｐｅ）」
軸タグ−「Ｚ」
データフィールド−ジャイロスコープＺ軸データ
（レポート７）
センサタグ−「地磁気計（Ｍａｇｎｅｔｏｍｅｔｅｒ）」
軸タグ−「Ｘ」
データフィールド−地磁気計Ｘ軸データ
（レポート８）
センサタグ−「地磁気計（Ｍａｇｎｅｔｏｍｅｔｅｒ）」
軸タグ−「Ｙ」
データフィールド−地磁気計Ｙ軸データ
（レポート９）
センサタグ−「地磁気計（Ｍａｇｎｅｔｏｍｅｔｅｒ）」
軸タグ−「Ｚ」
データフィールド−地磁気計Ｚ軸データ
【００６２】
このようにしてＩＭＵデータを１つまたは複数の時間スロット（１つまたは複数のデータフィールド）に多重させることには、各レポートにおいて必要とされる時間スロットの数が削減され、ＩＭＵデータを送信するのに必要なレポートの数が増加して全体のＩＭＵデータレートを低下させずに済むという利点がある。
【００６３】
複数のＩＭＵセンサからのデータを「センサフュージョン（ｓｅｎｓｏｒ  ｆｕｓｉｏｎ）」として知られる処理によって結合して所望の位置情報および動き情報を生成する実施形態が挙げられる。例えば、アクティブスタイラスのいずれの方向が「下方（ｄｏｗｎ）」であるかを判定したい場合に、動きの方向を示すジャイロスコープデータを、動きの加速方向および重力の加速方向の両方を示す加速度計データから減算し得る。減算の結果は、重力のみに起因する加速方向、すなわち「下方」基準座標系を示す。
【００６４】
「センサフュージョン（ｓｅｎｓｏｒ  ｆｕｓｉｏｎ）」を実行するときに、極力正確な結果を与えるように、種々のＩＭＵセンサからのデータを可能な限り互いに時間的に接近させて計測するとよい。図５Ｂに示す「エンド（Ｅｎｄ）」ビットを用い、以下のようにして種々のＩＭＵセンサからのデータ間の同期を達成し得る。複数のＩＭＵセンサの計測値を取得してアクティブスタイラス内にバッファする。バッファされたデータを、エンドビットをクリアした（例えば、「０」）利用可能なＩＭＵ時間スロット割当てによって送信する。図９Ｇは、ＩＭＵデータパケットの例および「エンドビット（Ｅｎｄ  ｂｉｔ）」の用法を示す。最後のバッファされたデータ要素が時間スロット内に配置されると、エンドビットは複数のＩＭＵセンサによって同時にまたは時間的に接近して取得されたＩＭＵデータのセットにおける最後であることを示すように、エンドビットが（例えば、「１」に）設定される。センサコントローラにおいて、エンドビットがクリアされて受信した任意のＩＭＵデータがバッファに追加される。センサコントローラがエンドビットセットを有するＩＭＵデータを受信すると、センサコントローラは、次いでバッファ内のデータを複数のＩＭＵセンサからのＩＭＵデータの一式のセットとして用い、センサフュージョンを実行するホストプロセッサに転送し得る。
【００６５】
図５Ｃは、アクティブスタイラスのバッテリレベルなどの、センサコントローラによってポーリングされる（要求される）とアクティブスタイラスがセンサコントローラに送信する、アクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。したがって、この種類の動作データは、低頻度でしかセンサコントローラに送信されない。
【００６６】
なお、図４Ａ〜４Ｅを参照して上述したスタイラス機能情報、および図５Ａ〜５Ｃを参照して上述した動作データは一例にすぎず、本発明は図４Ａ〜５Ｃに記載した特定の例を用いることに限定されない。
【００６７】
図６は、アクティブスタイラスの処理フロー例を示すフローチャートである。ステップＳ６０１において、アクティブスタイラスは、例えばスタイラス機能情報マネージャ１１０（図１）のテーブルＴＢＬに格納されたアクティブスタイラス自体が有するスタイラス機能情報を決定する。ステップＳ６０３において、アクティブスタイラスの設定（例えば、スタイラス線幅、色など）を変更するユーザ操作をアクティブスタイラスが検出すると、ステップＳ６０５において、アクティブスタイラスはこれに応じて設定情報を更新する。図６に示すように、ステップＳ６０１〜Ｓ６０５は、通常、アクティブスタイラス１００がセンサコントローラ２００の検知領域外に存在する間に生じる。ステップＳ６１１において、アクティブスタイラスはセンサコントローラ２００からのビーコン信号を待ち受け、ビーコン信号が検出されない場合はステップＳ６０３に戻り、必要に応じて設定情報を更新することを継続し、ビーコン信号を待ち受ける。
【００６８】
ステップＳ６１１において、アクティブスタイラスは、センサコントローラ２００の検知領域に入るときに、センサコントローラ２００からのビーコン信号を検出する。ステップＳ６１３において、アクティブスタイラスは、タイミング基準としてのビーコン信号を用いて、アクティブスタイラスのフレーム／時間スロット設定をセンサコントローラのものに同期させる。ステップＳ６１５において、アクティブスタイラスは、単一のダウンリンク時間スロットを用いて設定情報のハッシュ値（ハッシュ＃１）を送信し、センサコントローラが該アクティブスタイラスをセンサコントローラが以前にペアリングしたことのあるアクティブスタイラスと認識するか否かをセンサコントローラに判定させる。センサコントローラがハッシュ＃１に基づいてアクティブスタイラスを認識しない場合は、ステップＳ６１７において、アクティブスタイラスは、センサコントローラから受信した機能情報要求（読出し）コマンドに応答して、場合によっては複数のダウンリンク時間スロットを用い、アクティブスタイラスの（一式の）スタイラス機能情報をセンサコントローラに送信する。これに対して、センサコントローラがハッシュ＃１に基づいてアクティブスタイラスを認識する場合は、ステップＳ６１９において、センサコントローラは、好ましくは単一のアップリンク時間スロットを用い、設定情報のハッシュ値（「ハッシュ＃２（Ｈａｓｈ＃２）」）を検証のためにアクティブスタイラスに送信する。以下でさらに図７および図１０を参照して、ハッシュ＃１およびハッシュ＃２を用いるアクティブスタイラスとセンサコントローラとの間のペアリング動作または「迅速インキング（ｆａｓｔ  ｉｎｋｉｎｇ）処理」の動作を説明する。
【００６９】
ステップＳ６１７において非ハッシュ化スタイラス機能情報を送信した後、またはステップＳ６１９において設定情報のハッシュ＃２を受信した後は、ステップＳ６３１において、アクティブスタイラスはセンサコントローラ２００からのビーコン信号を再度待ち受ける。このときに検出されるビーコン信号は、センサコントローラがアクティブスタイラスのスタイラス機能情報に基づいてアクティブスタイラスに対して決定したダウンリンク時間スロット割当てを含む。ダウンリンク時間スロット割当てを含むビーコン信号が検出されると、アクティブスタイラスは、ステップＳ６３３においてカウンタを０にリセットし、ステップＳ６３５において検出されたビーコン信号に含まれるダウンリンク時間スロット割当てにより設定されたスケジュールに従ってセンサコントローラにパケットを送信し始める。送信するパケットは、アクティブスタイラスの位置、および／またはアクティブスタイラスの動作データ（例えば、送信された圧力データ、送信されたオリエンテーションデータなど）を含むデータパケットを判別するのにセンサコントローラによって用いられる位置パケットからなり得る。さらに、ステップＳ６３１において検出されるビーコン信号において、または続いて検出される任意のビーコン信号（図６において不図示）においてセンサコントローラによりポーリングされる（要求される）と、ステップＳ６３７において、アクティブスタイラスは、アクティブスタイラスのバッテリレベルなどのポーリングされた動作データを含むデータパケットを、ダウンリンク時間スロット割当てに従ってセンサコントローラに送信する。例えば、アクティブスタイラスは、上述のステップＳ６３５においてスケジュールされたパケットを送信するのに用いられない任意の時間スロットを用い、ポーリングされた動作データを含むデータパケットを送信する。
【００７０】
ステップＳ６１７において非ハッシュ化スタイラス機能情報を送信した後、またはステップＳ６１９において設定情報のハッシュ＃２を受信した後に、ステップＳ６３１においてアクティブスタイラスが返信されるビーコン信号を検出しない場合は、ステップＳ６４１においてアクティブスタイラスはカウンタが閾値を超えたか否かを判定し、超えていなければステップＳ６４３においてカウンタ値をインクリメントする。ステップＳ６４１においてカウンタが閾値を超える場合は、アクティブスタイラスがセンサコントローラ２００の検知領域から出ており（すなわち、ユーザがアクティブスタイラスをセンサ２０１から遠ざけるように移動させており）、アクティブスタイラスは該センサコントローラからのビーコン信号の圏外に存在するものとする。したがって、アクティブスタイラスはステップＳ６０３、Ｓ６０５、およびＳ６１１に戻り、必要に応じて設定情報を更新することを再開し、（開始）ビーコン信号を待ち受ける。
【００７１】
図７は、センサコントローラの処理フロー例を示すフローチャートである。図７は、さらに、センサコントローラとアクティブスタイラスとの間のペアリング動作例を示し、該ペアリング動作においてセンサコントローラはアクティブスタイラスからスタイラス機能情報（例えば、設定情報）を示すハッシュ値（「ハッシュ＃１（Ｈａｓｈ＃１）」）を受信する。センサコントローラが受信したハッシュ＃１を認識すると、それによってペアリング動作が迅速化され得る。
【００７２】
ステップＳ７１１において、センサコントローラは、第１の時間スロット「ｓ０」などの各フレームの開始時間スロットにおいて、ビーコン信号を送信する。ステップＳ７１４において、センサコントローラは、ビーコン信号を検出したアクティブスタイラスから返信された応答（例えば、ＡＣＫ）信号から、スタイラス機能情報のハッシュ値（ハッシュ＃１）を抽出する。ハッシュ＃１は、機能情報および設定情報の両方を含む一式の形態をなすスタイラス機能情報のハッシュ値からなり得る、または設定情報のハッシュ値からなり得る。
【００７３】
ステップＳ７１５において、センサコントローラは、抽出したハッシュ＃１が、センサコントローラ内にキャッシュされたスタイラス機能情報（例えば、設定情報）のハッシュ値（ハッシュ＃１）に一致するか否かを判定する。特に、ステップＳ７１５は、センサコントローラが該アクティブスタイラスをセンサコントローラが以前にペアリングしたことのあるアクティブスタイラスとして認識するか否かを判定するステップであり、認識する場合は、センサコントローラはアクティブスタイラスのスタイラス機能情報を既にそろえている。
【００７４】
ステップＳ７１５においてセンサコントローラがハッシュ＃１を認識しない場合は、ステップＳ７１７において、センサコントローラは、アクティブスタイラスにアクティブスタイラスのスタイラス機能情報を送信するように要求する読出しコマンドを含むビーコン信号を送信する。それに代えて、またはそれに追加して、センサコントローラは、アクティブスタイラスに対するある一定の設定を強制的に構成する（設定する）書込みコマンドを含むビーコン信号を送信し得る。例えば、センサコントローラは、アクティブスタイラスに対してある一定のデフォルト色を設定する書込みコマンドを発行し得る。
【００７５】
ステップＳ７１９において、センサコントローラは、センサコントローラが複数のダウンリンク時間スロットを用いて一式の形態で受信した（図６におけるステップＳ６１７を参照）アクティブスタイラスのスタイラス機能情報をセンサコントローラが有していることを確認する、またはハッシュ＃１に基づいてセンサコントローラ内にキャッシュ済みであることを確認済みである。センサコントローラは、次いで、スタイラス機能情報に基づき、アクティブスタイラスに対するダウンリンク時間スロット割当てを決定する。ダウンリンク時間スロット割当ては、フレーム内のいずれのダウンリンク時間スロットがアクティブスタイラスに割り当てられるかを特定し、さらにアクティブスタイラスがいずれの種類のパケット（例えば、データパケットまたは位置パケット）をいずれのダウンリンク時間スロットにおいて送信すべきであるかを特定し得る。センサコントローラは、アクティブスタイラスの特定の機能情報に基づき、各アクティブスタイラスに対するダウンリンク時間スロット割当てを決定する。例えば、スタイラス先端圧力センサに加えてスタイラスオリエンテーションセンサおよびバレルプレッシャセンサを備えるアクティブスタイラスに対して、センサコントローラは、スタイラス先端圧力センサのみを備えるアクティブスタイラスと比較して、これらの種々のセンサからの出力を示す動作データを送信するための、より多くのダウンリンク時間スロットを割り当て得る。種々の機能および設定がなされた複数のアクティブスタイラスをセンサコントローラと共に使用する場合に、センサコントローラは、複数のアクティブスタイラス間におけるダウンリンク時間スロット衝突を回避しながら、各アクティブスタイラスに対するダウンリンク時間スロット割当てを決定する。すなわち、各時間スロットを１つのアクティブスタイラスに割り当て、複数のスタイラスによって共有しない実施形態が挙げられる。センサコントローラが、アクティブスタイラスに対するダウンリンク時間スロット割当ての一部として各アクティブスタイラスに特定の周波数を割り当てる実施形態も挙げられる。その場合に、複数の周波数が割り当てられる複数のアクティブスタイラスにそれぞれ同じ時間スロットを割り当て得る。ダウンリンク時間スロット割当ての種々の例を、図８Ａ〜９Ｇを参照して後述する。
【００７６】
図７を再度参照し、ステップＳ７３１において、センサコントローラは、決定したダウンリンク時間スロット割当てを含むビーコン信号を、ＡＣＫ信号を送信してきたアクティブスタイラスに返信する。次いで、ステップＳ７３２において、センサコントローラは、ダウンリンク時間スロット割当てに従って、アクティブスタイラスから送信されるパケットを待ち受ける。センサコントローラがアクティブスタイラスからのパケットを検出する場合は、ステップＳ７３３においてセンサコントローラはカウンタを０にリセットし、ステップＳ７３５においてセンサコントローラは、ダウンリンク時間スロット割当てにより設定されたスケジュールに従ってパケット（位置パケットおよび／または動作データを含むデータパケット）を受信し続ける。さらに、センサコントローラが、ビーコン信号のいずれかによって、アクティブスタイラスのバッテリレベルなどのある一定の動作データをレポートするようにアクティブスタイラスにポーリングすると、ステップＳ７３７において、センサコントローラは、アクティブスタイラスからのポーリングされた動作データを含むデータパケットを受信する。
【００７７】
ステップＳ７３１においてダウンリンク時間スロット割当てを含むビーコン信号を送信した後に、ステップＳ７３２においてセンサコントローラが割り当てられたダウンリンク時間スロットにおいて返信されたパケットを全く検出しない場合は、ステップＳ７４１においてセンサコントローラは、カウンタが閾値を超えたか否かを判定し、越えなければ、ステップＳ７４３においてカウンタ値をインクリメントする。ステップＳ７４１においてカウンタが閾値を超えない場合は、アクティブスタイラスがセンサコントローラ２００の検知領域から出ており（すなわち、ユーザがアクティブスタイラスをセンサ２０１から遠ざけるように移動させており）、アクティブスタイラスは該センサコントローラからのビーコン信号の圏外に存在するものとする。したがって、センサコントローラはステップＳ７１１およびＳ７１３に戻り、周期ビーコン信号を送信し続け、アクティブスタイラスからの応答信号を待つ。
【００７８】
図８Ａおよび８Ｂは、センサコントローラがアクティブスタイラスにビーコン信号（ＢＳ）を送信し、アクティブスタイラスがスタイラス機能情報（ＣＰまたはハッシュ＃１）を含む応答信号をセンサコントローラに返信するフレームフォーマット例を示す。図８Ａにおいて、第１のフレームＦｎの時間スロットｓ０において、センサコントローラはビーコン信号を送信し、次の時間スロットｓ１において、ビーコン信号を検出したアクティブスタイラスはアクティブスタイラスの非ハッシュ化スタイラス機能情報（「ＣＰ１」）を含む応答信号を返信する。本例において、アクティブスタイラスは該センサコントローラとペアリングしたことがなく、したがって該センサコントローラを認識しない（図６のステップＳ６１５においてＮＯ）。したがって、アクティブスタイラスは時間スロットｓ１において一式の（非ハッシュ化）スタイラス機能情報を送信し、これが該一式のスタイラス機能情報のサイズに応じた複数のフレームに亘り得る。図８Ａは、アクティブスタイラスが少なくとも２つのフレームＦｎ、Ｆｎ＋１の時間スロットｓ１において非ハッシュ化スタイラス機能情報をＣＰ１、ＣＰ２として送信することを示す。
【００７９】
図８Ｂにおいて、アクティブスタイラスは該センサコントローラと以前にペアリングしたことがあり、したがって該センサコントローラを認識する（図６のステップＳ６１５においてＹＥＳ）。したがって、アクティブスタイラスは、時間スロットｓ１において送信する応答信号において、アクティブスタイラスの設定情報（「ハッシュ＃１（Ｈａｓｈ＃１）」）のハッシュ値を送信する。設定情報のハッシュ値が通常２０ビット以下であって単一の時間スロットで送信し得る一定のデータサイズからなることは利点である。それゆえ、上述した図８Ａの例とは異なり、アクティブスタイラスの設定情報を表すハッシュ＃１を、単一のフレーム（Ｆｎ）の時間スロットｓ１を用いてセンサコントローラに短時間で送信することができる。
【００８０】
センサコントローラは、ハッシュ＃１を受信および認識すると（図７のステップＳ７１５においてＹＥＳ）、アクティブスタイラスのスタイラス機能情報を既に有していること、したがってさらにはアクティブスタイラスに対するダウンリンク時間スロット割当てを認識する。こうして、次のフレームＦｎ＋１の時間スロットｓ０において、センサコントローラは、アクティブスタイラスによってセンサコントローラにパケットを送信するのに用いられるダウンリンク時間スロット割当てを含むビーコン信号を送信する。
【００８１】
センサコントローラは、種々の方法によりアクティブスタイラスにダウンリンク時間スロット割当てを通知し得る。例えば、アクティブスタイラスから送信されたハッシュ＃１を認識すると、センサコントローラはハッシュ＃１に対応するハッシュ＃２をアクティブスタイラスに返信し得る。センサコントローラから送信されたハッシュ＃２がアクティブスタイラス内に記憶されたハッシュ＃２に一致する（ハッシュ＃２およびハッシュ＃１は同じ設定情報から算出される）ことをアクティブスタイラスが確認すると、アクティブスタイラスは、アクティブスタイラスが以前にセンサコントローラとペアリングしたときに用いられたのと同じダウンリンク時間スロット割当てを用いることができると判定する。こうして、本例において、センサコントローラは、ハッシュ＃１の受信に応答してビーコン信号によりハッシュ＃２を送信することによって、アクティブスタイラスにダウンリンク時間スロット割当てを送信する。他の例として、センサコントローラは、特定のダウンリンク時間スロット割当てを示す予め定義されたコードをアクティブスタイラスに送信することが可能であり、この場合に、センサコントローラおよびアクティブスタイラスは、予め定められたコードと各コードがどのようなダウンリンク時間スロット割当てを示すかとのリストを共有する。本例において、センサコントローラは、ビーコン信号により予め定義されたコードの１つを送信することによって、アクティブスタイラスにダウンリンク時間スロット割当てを送信する。さらに他の例として、センサコントローラは、図９Ａ〜９Ｇを参照して以下でより詳細に説明するように、例えばフレーム当たりにアクティブスタイラスに割り当てられるダウンリンク時間スロットの位置を特定するオフセット値および間隔値を送信することによって、ダウンリンク時間スロット割当てを送信し得る。本例において、センサコントローラは、例えばビーコン信号によりオフセット値および間隔値を送信することによって、アクティブスタイラスにダウンリンク時間スロット割当てを送信する。
【００８２】
図８Ｂにおいて、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号は、アクティブスタイラスに対して決定されたダウンリンク時間スロット割当てを含む。こうして、アクティブスタイラスはダウンリンク時間スロット割当てを決定するビーコン信号を読み取り、決定されたダウンリンク時間スロット割当てに従い、フレームＦｎ＋１の時間スロットｓ２において、スタイラスの動作データを含むデータパケット（ＤＰ）を送信することを開始する。
【００８３】
図９Ａ〜９Ｇは、センサコントローラによって特定された異なる７種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、７つの異なるフレームフォーマットを示す。図９Ａ〜９Ｇの各々において、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号はアクティブスタイラスに対して決定されたダウンリンク時間スロット割当てを含み、これによりアクティブスタイラスは、決定されたダウンリンク時間スロット割当てに従い、フレームＦｎ＋１の時間スロットｓ１から開始してセンサコントローラにパケット（データパケットおよび／または位置パケット）を送信し得る。
【００８４】
図９Ａにおいて、ダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ２から開始して等間隔（Ｔ）にある４つの（４）時間スロット、すなわちフレームＦｎ＋１における時間スロットｓ６、ｓ１０、およびｓ１４、フレームＦｎ＋２における時間スロットｓ２、ｓ６、ｓ１０、およびｓ１４などにおいて、動作データ（例えば、１４ビット）を含むデータパケットをアクティブスタイラスが送信することとすることを規定する。この場合に、センサコントローラは、ｉ）アクティブスタイラスによってパケットを送信するのに用いられる開始時間スロットを示すオフセット値と、ｉｉ）開始時間スロットから開始されるアクティブスタイラスに割り当てられた時間スロット間の間隔を示す間隔値とを特定することによってダウンリンク時間スロット割当てを定義し得る。例えば、図９Ａの例のダウンリンク時間スロット割当ては、開始時間スロットがｓ２であることを示す「２」というオフセットと、等間隔（Ｔ）にある４時間スロットからなる後続の時間スロットがアクティブスタイラスによって用いられることを示す「４」という間隔値とによって規定され得る。センサコントローラは、これらの値（オフセット：２、間隔：４）をビーコン信号において符号化し、これによってアクティブスタイラスにダウンリンク時間スロット割当てを送信し得る。ダウンリンク時間スロット割当ては、さらに、例えば、送信するパケットの全数（例えば、図９Ａの例において「５」（ＤＰ１〜ＤＰ５））および／またはパケットのデータフォーマット（例えば、パケットごとの全ビット数はいくつであるか、そのうちの何ビットがペン圧力を示して何ビットがバレルプレッシャデータを示すかなど）を規定し得る。
【００８５】
図９Ａは、さらに、各フレームＦｎ＋１、Ｆｎ＋２などの時間スロットｓ１を、必要に応じてセンサコントローラにアクティブスタイラスのスタイラス機能情報（ＣＰ）を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。例えば、ユーザがセンサコントローラとの双方向通信セッション中にアクティブスタイラスの設定を調整する（例えば、ユーザがスタイラス線幅を変更する）場合に、アクティブスタイラスは、調整した設定情報を後続フレームの時間スロットｓ１においてセンサコントローラに送信し得る。それに追加して、またはそれに代えて、センサコントローラからのビーコン信号がアクティブスタイラスのスタイラス機能情報を要求する読出しコマンドを含む場合に、アクティブスタイラスは、後続フレームの時間スロットｓ１において、要求された機能情報および／または設定情報を応答に含める。
【００８６】
図９Ａは、さらに、センサコントローラからの前のビーコン信号においてポーリングされた（要求された）動作データを含むデータパケットを送信するために、フレームＦｎ＋１の時間スロットｓ１５をアクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。例えば、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号がアクティブスタイラスにアクティブスタイラスのバッテリレベルをレポートするように要求する場合に、応答においてアクティブスタイラスは、フレームＦｎ＋１の時間スロットｓ１５において、ポーリングされた動作データ（「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」）を含むデータパケットを送信する。
【００８７】
図９Ｂにおいて、ダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ３から開始して等間隔（Ｔ）にある４つの（４）時間スロット、すなわちフレームＦｎ＋１における時間スロットｓ７、ｓ１１、およびｓ１５、フレームＦｎ＋２における時間スロットｓ３、ｓ７、ｓ１１、およびｓ１５などにおいて、動作データ（例えば、１４ビット）を含むデータパケットをアクティブスタイラスが送信することとすることを規定する。上述した図９Ａの例と同様に、図９Ｂの例のダウンリンク時間スロット割当ては、開始時間スロットがｓ３であることを示す「３」というオフセットと、用いる後続の時間スロットが等間隔（Ｔ）にある４時間スロットからなることを示す「４」という間隔値とによって規定され得る。図９Ｂは、さらに、各フレームＦｎ＋１、Ｆｎ＋２などの時間スロットｓ１を、必要に応じてセンサコントローラにスタイラス機能情報（ＣＰ）を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。さらに、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号が、スタイラスのバッテリレベルなどのアクティブスタイラスのある一定の動作データをレポートするようにアクティブスタイラスにポーリングする（要求する）場合に、応答においてアクティブスタイラスは、フレームＦｎ＋１の時間スロットｓ１において、ポーリングされた動作データ（「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」）を含むデータパケットを送信する。
【００８８】
各フレームにおけるビーコン信号時間スロット（ｓ０）の後に、アクティブスタイラスが前の時間スロット（ｓ０）におけるビーコン信号の受信を受諾する応答信号（例えば、ＡＣＫ）を送信するのに１つまたは複数の時間スロット（例えば、ｓ１）を確保する、種々の実施形態が挙げられる。したがって、ここで用いる「応答信号（ｒｅｓｐｏｎｓｅ  ｓｉｇｎａｌ）」は、アクティブスタイラスが開始（発見）ビーコン信号に応答してセンサコントローラの検知領域に入るときに送信する第１の応答信号に限定されない。この代わりに、応答信号に、アクティブスタイラスがアクティブスタイラスに宛てられた種々のコマンドまたは他の情報を含む後続のビーコン信号に応答して送信する後続の応答信号が含まれてもよい。例えば、アクティブスタイラスは、変更されたアクティブスタイラスの設定に起因して双方向通信セッション中にセンサコントローラによって更新された新たなダウンリンク時間スロット割当てを含む後続のビーコン信号に応答する応答信号を送信し得る。他の例として、後続のビーコン信号がアクティブスタイラスにスタイラス機能情報を送信するように要求する読出しコマンドを含む場合に、アクティブスタイラスは、要求されたスタイラス機能情報を含む応答信号を送信する（図９Ａを参照すると、フレームＦｎ＋１およびＦｎ＋２の時間スロットｓ１において送信される「ＣＰ」は、要求されたスタイラス機能情報を含む応答信号であるとみなせる）。さらに他の例として、後続のビーコン信号がアクティブスタイラスにアクティブスタイラスのある一定の動作データ（例えば、スタイラスバッテリレベル）を送信するように要求するポーリングコマンドを含む場合に、アクティブスタイラスは、ポーリングされた動作データを含む応答信号を送信する（図９Ｂを参照すると、フレームＦｎ＋１の時間スロットｓ１において送信される「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」は、ポーリングされた動作データを含む応答信号であるとみなせる）。
【００８９】
図９Ｃにおいて、ダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ２から開始して２つの（２）時間スロットを単位として等間隔（Ｔ）にある４つの（４）時間スロット、すなわちフレームＦｎ＋１、フレームＦｎ＋２などにおける時間スロット［ｓ２／ｓ３］、［ｓ６／ｓ７］、［ｓ１０／ｓ１１］、および［ｓ１４／ｓ１５］において、（例えば、１４ビットより多い）比較的大きいデータパケットをアクティブスタイラスが送信することとすることを規定する。図９Ｃの例のダウンリンク時間スロット割当ては、開始時間スロットがｓ２であることを示す「２」というオフセットと、用いる後続の時間スロットが等間隔（Ｔ）にある４時間スロットからなることを示す「４」という間隔値とによって、またさらには、データパケットの各々（ＤＰ１、ＤＰ２、ＤＰ３、ＤＰ４、ＤＰ５など）を形成するのに２時間スロットからなる単位を用いることを示す「２」という単位サイズによって規定され得る。「２」という単位サイズは、アクティブスタイラスによって用いられるパケット長であるとみなせる。このような比較的大きいデータは、例えば、アクティブスタイラスのカスタマイズされた動作データ（ＣＤ）をセンサコントローラに送信するのに必要となり得る。
【００９０】
図９Ａおよび図９Ｂにおけるように、図９Ｃは、さらに、各フレームＦｎ＋１、Ｆｎ＋２などの時間スロットｓ１を、必要に応じてセンサコントローラにスタイラス機能情報（ＣＰ）を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。図９Ｃは、さらに、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号がアクティブスタイラスにある一定の動作データ（例えば、スタイラスバッテリレベル）をレポートするようにポーリングする（要求する）場合に、応答においてアクティブスタイラスは、フレームＦｎ＋１の時間スロットｓ１において、ポーリングされた動作データ（「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」）を含むデータパケットを送信することを示す。
【００９１】
図９Ｄは、第１のアクティブスタイラスに周波数ｆ０を割り当てる第１のダウンリンク時間スロット割当てと、第１のアクティブスタイラスと異なる第２のアクティブスタイラスに周波数ｆ０と異なる周波数ｆ１を割り当てる第２のダウンリンク時間スロット割当てとの組合せを示す。
【００９２】
第１のダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ２から開始して３つの（３）時間スロットを単位として等間隔（Ｔ）にある８つの（８）時間スロット、すなわちフレームＦｎ＋１、フレームＦｎ＋２などにおける時間スロット［ｓ２／ｓ３／ｓ４］および［ｓ１０／ｓ１１／ｓ１２］において、比較的大きいデータパケット（例えば、フレーム当たり２時間スロットを占有するスタイラスオリエンテーションデータ（ＯＲ）を含むデータパケットであり、図４ＣにおけるＯＲＣ１またはＯＲＣ３を参照）を第１のアクティブスタイラスが送信することとすることを規定する。第１のダウンリンク時間スロット割当ては、開始時間スロットがｓ２であることを示す「２」というオフセットと、用いる後続の時間スロットが等間隔（Ｔ）にある８時間スロットからなることを示す「８」という間隔値と、データパケットの各々（ＤＰ１、ＤＰ２、ＤＰ３など）を形成するのに３時間スロットからなる単位を用いることを示す「３」という単位サイズ値（またはパケット長）とによって規定され得る。
【００９３】
第２のダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ２から開始して４つの（４）時間スロットを単位として等間隔（Ｔ）にある８つの（８）時間スロット、すなわちフレームＦｎ＋１、フレームＦｎ＋２などにおける時間スロット［ｓ２／ｓ３／ｓ４／ｓ５］および［ｓ１０／ｓ１１／ｓ１２／ｓ１３］において、比較的大きいデータパケット（例えば、フレーム当たり３時間スロットを占有するスタイラスオリエンテーションデータ（ＯＲ）を含むデータパケットであり、図４ＣにおけるＯＲＣ２または４を参照）を、第１の周波数ｆ１で動作する第２のアクティブスタイラスが同様に送信することとすることを規定する。第２のダウンリンク時間スロット割当ては、開始時間スロットがｓ２であることを示す「２」というオフセットと、用いる後続の時間スロットが等間隔（Ｔ）にある８時間スロットからなることを示す「８」という間隔値と、データパケットの各々（ＤＰ１、ＤＰ２、ＤＰ３など）を形成するのに４時間スロットからなる単位を用いることを示す「４」という単位サイズ値（またはパケット長）とによって規定され得る。
【００９４】
図９Ｄにおいては、以前の例に示すように、各フレームＦｎ＋１、Ｆｎ＋２などの時間スロットｓ１を、必要に応じてセンサコントローラにスタイラス機能情報（ＣＰ）を送信するための、周波数ｆ０で動作する第１のアクティブスタイラスと周波数ｆ１で動作する第２のアクティブスタイラスとの両方に対するダウンリンク時間スロットとして確保する。図９Ｄは、さらに、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号が第１のアクティブスタイラスと第２のアクティブスタイラスとのいずれかにある一定の動作データ（例えば、スタイラスバッテリレベル）をレポートするようにポーリングする（要求する）場合に、応答においてアクティブスタイラスは、フレームＦｎ＋１の時間スロットｓ１５において、ポーリングされた動作データ（「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」）を含むデータパケットを送信することを示す。図９Ｄの例において、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号は周波数ｆ０で動作する第１のアクティブスタイラスにポーリングし、これにより第１のアクティブスタイラスは、フレームＦｎ＋１の時間スロットｓ１５において、ポーリングされた動作データ（「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」）を含むデータパケットを送信することによって応答する。
【００９５】
センサコントローラが複数のアクティブスタイラスの各々に個々の周波数（例えば、ｆ０、ｆ１）を割り当てると、センサコントローラは、個々のアクティブスタイラスに宛てたコマンドを、そのアクティブスタイラスに割り当てたビーコン信号の周波数部分にのみ含め得る。
【００９６】
図９Ａと類似する図９Ｅにおいて、ダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ２から開始して等間隔（Ｔ）にある４つの（４）時間スロット、すなわちフレームＦｎ＋１における時間スロットｓ６、ｓ１０、およびｓ１４、フレームＦｎ＋２における時間スロットｓ２、ｓ６、ｓ１０、およびｓ１４などにおいて、動作データ（例えば、１６ビット）を含むデータパケットをアクティブスタイラスが送信することとすることを規定する。本例のダウンリンク時間スロット割当ては、開始時間スロットがｓ２であることを示す「２」というオフセットと、用いる後続の時間スロットが等間隔（Ｔ）にある４時間スロットからなることを示す「４」という間隔値とによって規定され得る。図９Ｅは、さらに、各フレームＦｎ＋１、Ｆｎ＋２などの時間スロットｓ１を、必要に応じてセンサコントローラにスタイラス機能情報（ＣＰ）を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。図９Ｅは、さらに、フレームＦｎ＋１の時間スロットｓ０におけるビーコン信号がアクティブスタイラスにある一定の動作データ（例えば、スタイラスバッテリレベル）をレポートするようにポーリングする（要求する）場合に、応答においてアクティブスタイラスは、フレームＦｎ＋１の時間スロットｓ１５において、ポーリングされた動作データ（「ポーリングＤＰ（Ｐｏｌｌ  ＤＰ）」）を含むデータパケットを送信することを示す。
【００９７】
図９Ａ〜９Ｅのダウンリンク時間スロット割当て例は、すべて、アクティブスタイラスの動作データを含むデータパケット（ＤＰ１、ＤＰ２、ＤＰ３、ＤＰ４、ＤＰ５など）のダウンリンク送信を規定する。これに対して、図９Ｆのダウンリンク時間スロット割当ては、フレームにおいていずれのダウンリンク時間スロットを用いるかのみならず、アクティブスタイラスがいずれのダウンリンク時間スロットにおいてどのような種類のパケット（データパケット（ＤＰ）または位置パケット（ＸＹ））を送信すべきであるかをも規定する。
【００９８】
特に、図９Ｆのダウンリンク時間スロット割当ては、フレームＦｎ＋１の時間スロットｓ２から開始して等間隔（Ｔ）にある４つの（４）時間スロット、すなわち各フレームにおける時間スロットｓ２、ｓ６、ｓ１０、およびｓ１４において、センサコントローラによってアクティブスタイラスがセンサ２０１上で指し示す位置を判別するのに用いることとなる位置パケット（ＸＹ）をアクティブスタイラスが送信することとすることを規定する。ダウンリンク時間スロット割当ては、さらに、各フレームの時間スロットｓ３、ｓ７、ｓ１１、およびｓ１５において送信されるデータパケット（ＤＰ１、ＤＰ２、ＤＰ３、ＤＰ４、ＤＰ５など）が各位置パケット（ＸＹ）の直後に続くことを規定する。したがって、２時間スロット［ｓ２／ｓ３］、［ｓ６／ｓ７］、［ｓ１０／ｓ１１］、および［ｓ１４／ｓ１５］からなる単位を用いて位置パケット（ＸＹ）およびデータパケット（ＤＰ）を送信する。図９Ｆの例のダウンリンク時間スロット割当ては、開始時間スロットがｓ２であることを示す「２」というオフセットと、用いる後続の時間スロットが等間隔（Ｔ）にある４時間スロットからなることを示す「４」という間隔値と、連続する位置パケット（ＸＹ）およびデータパケット（ＤＰ）を送信するのに２時間スロットからなる単位を用いることを示す「２」という単位サイズと、各単位においてどのような種類のパケットを送信するかを示すパケットタイプ値とによって規定され得る。例えば、パケットタイプ値０は各単位（ＤＰ／ＤＰ）においてデータパケットのみを送信することを示し得るものであり、１は各単位（ＸＹ／ＸＹ）において位置パケットのみを送信することを示し得るものであり、２は図９Ｆの例におけるように各単位（ＸＹ／ＤＰ）において位置パケットの直後にデータパケットが続くように送信することを示し得るものであり、３は各単位（ＤＰ／ＸＹ）においてデータパケットの直後に位置パケットが続くように送信することを示し得る。
【００９９】
ダウンリンク時間スロット割当ての以前の例におけるように、図９Ｆは、さらに、各フレームＦｎ＋１、Ｆｎ＋２などの時間スロットｓ１を、必要に応じてセンサコントローラにスタイラス機能情報（ＣＰ）を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。
【０１００】
なお、図８Ａ〜９Ｇのダウンリンク時間スロット割当ては一例にすぎず、本発明は図８Ａ〜９Ｇの特定の例を用いることに限定されない。
【０１０１】
ホストコントローラ３００側で動作するオペレーティングシステムおよびアプリケーションが、センサコントローラ２００によって提供されるデータに対して平滑化を適用することがしばしばある。このことには、圧力またはチルトなどのスタイラスデータに加えてセンサコントローラ２００によって生成される座標データに対する平滑化が含まれる。該アプリケーションのアルゴリズムは、平滑化を適用する場合にデータが均等に時間間隔をおいて計測されることを前提とする場合が多い。センサコントローラ２００が、均等に隔てられた位置パケットまたは均等に隔てられたデータパケットを供給する時間スロット割当てを提供することができない場合がある。これらの場合に、センサコントローラ２００は、データが均等に時間間隔をおいて出現するように、データをサブサンプリング、スーパーサンプリング、内挿、外挿、または何らかの手段によって調整する必要があり得る。
【０１０２】
本手法は、座標および／または動作データを時間スロット割当てに起因した異なるレートで計測する場合にも適する。センサコントローラ２００からホストプロセッサ３００へのデータパケットから欠落データを見出すすべはないため、欠落データを上述のように生成して（例えば、サブサンプリング、スーパーサンプリング、内挿、外挿などによって）、これらの中間パケットを有効なデータによって補充する必要がある。例えば、オリエンテーションデータが座標データの半分のレートで得られる場合に、オリエンテーションデータをスーパーサンプルまたは外挿して、データレートを座標データレートに一致させるように２倍する必要がある。
【０１０３】
図１０は、アクティブスタイラスとセンサコントローラとの間のペアリング動作（および「迅速インキング（ｆａｓｔ  ｉｎｋｉｎｇ）」処理の動作）例を示すフローチャートであり、該動作においてアクティブスタイラスはアクティブスタイラスの設定情報を示すハッシュ値（「ハッシュ＃１（Ｈａｓｈ＃１）」）をセンサコントローラに送信する。センサコントローラは、受信したハッシュ＃１を認識した後に、センサコントローラが該アクティブスタイラスを以前にペアリングしたスタイラスであると正しく認識するさらなる検証として、アクティブスタイラスに第２のハッシュ値（「ハッシュ＃２（Ｈａｓｈ＃２）」）を返信する。
【０１０４】
センサコントローラが受信したハッシュ＃１を認識する（つまり、センサコントローラが以前にアクティブスタイラスとペアリングしたことがある）ならば、センサコントローラは、センサコントローラ内にキャッシュ済みであるアクティブスタイラスのスタイラス機能情報および／またはダウンリンク時間スロット割当てを用いてペアリング動作を迅速化し得る。
【０１０５】
ステップＳ３０１において、アクティブスタイラスはアクティブスタイラスの設定情報にハッシュ演算を適用し、例えば、典型的には２０ビットまで収容する単一の時間スロットで送信することができる固定サイズ（例えば、１６ビット）のハッシュ値（「ハッシュ＃１（Ｈａｓｈ＃１）」）を算出する。ステップＳ３０２において、アクティブスタイラスは、以下でより詳細に説明するように、ハッシュ＃１に対応し、したがってハッシュ＃１を検証するのに用いることができる第２のハッシュ値（「ハッシュ＃２（Ｈａｓｈ＃２）」）を算出する。ハッシュ＃１およびハッシュ＃２は、起動時に、およびユーザがアクティブスタイラスの設定（例えば、スタイラス線幅）を変更するときなどのハッシュ値に影響を与える変化が生じる任意の時点において算出し得る。ハッシュ＃１およびハッシュ＃２を算出するのに、任意の適当なハッシュ演算を用い得る。例えば、公知のＭｕｒｍｕｒＨａｓｈ３（商標）を用いて、任意長の機能情報に基づいて３２ビットハッシュ値を算出し得る。その場合に、ハッシュ値の１６ＬＳＢをハッシュ＃１として用い、ハッシュ値の１６ＭＳＢをハッシュ＃２として用い得る。算出したハッシュ＃１およびハッシュ＃２は、アクティブスタイラス、例えばスタイラス機能情報マネージャ１１０（図１を参照）のテーブル（ＴＢＬ）内に格納される。
【０１０６】
ハッシュ演算を、アクティブスタイラスのスタイラス機能情報のいくつかまたはすべてに適用し得る。例えば、２つのアクティブスタイラスに対して、または１つのアクティブスタイラスの２つの異なる設定に対して同じハッシュ値が算出されるハッシュ衝突のおそれを低減するためには、同じベンダによって製造された複数のアクティブスタイラス間で機能情報が共通であり得ることから機能情報をハッシュ計算から除外することが望ましい場合がある。したがって、アクティブスタイラスがアクティブスタイラスのスタイラス機能情報の設定情報部分とアクティブスタイラスのグローバルＩＤとに基づいてハッシュ＃１およびハッシュ＃２を算出し、他のアクティブスタイラス、または異なる設定を有する同じアクティブスタイラスと衝突しにくいアクティブスタイラスの固有の「ハッシュＩＤ（Ｈａｓｈ  ＩＤ）」を生成する、種々の実施例が挙げられる。本発明の実施形態として、２つのハッシュ関数を用いてハッシュ＃１およびハッシュ＃２を算出し、それぞれハッシュ衝突のおそれを低減するものが挙げられる。例えば、１３ビットのハッシュ値を生成するように適合されたＣＲＣ（巡回冗長検査）の変形などのアルゴリズム１をスタイラス機能情報に対して用いてハッシュ＃１を算出し、１６ビットのハッシュ値を生成するように適合されたＦＮＶ（Ｆｏｗｌｅｒ−Ｎｏｌｌ−Ｖｏ）などのアルゴリズム２をスタイラス機能情報に対して用いてハッシュ＃２を算出し得る。
【０１０７】
ステップＳ４０１において、センサコントローラはビーコン信号（ＢＳ）を送信する。ステップＳ３０３においてアクティブスタイラスがビーコン信号を検出する場合に、ステップＳ３０４において、アクティブスタイラスは上記のステップＳ３０１において算出したハッシュ＃１を応答信号の一部としてセンサコントローラに送信する。
【０１０８】
ステップＳ４０３においてセンサコントローラがアクティブスタイラスからの応答信号を検出する場合に、ステップＳ４０５において、センサコントローラは、応答信号に含まれるハッシュ＃１がセンサコントローラ内にキャッシュ済みであるか否かを判定する。キャッシュ済みでない場合は、ステップＳ４０７において、センサコントローラは、アクティブスタイラスに一式の（非ハッシュ化）スタイラス機能情報（ＣＰ）を送信するように後続のビーコン信号によって読出しコマンドを送信する。ステップＳ３０５において、アクティブスタイラスは、センサコントローラからの読出しコマンドに応答して、要求されたスタイラス機能情報（ＣＰ）をセンサコントローラに送信する。センサコントローラは、ステップＳ４０９において、受信したスタイラス機能情報（ＣＰ）に基づいてハッシュ＃１およびハッシュ＃２を算出して今後の使用に備えてキャッシュ内に記憶する。これに代わるものとして、ステップＳ４０９において、センサコントローラはハッシュ＃２のみを算出し、算出したハッシュ＃２を、上記のステップＳ４０５において受信および評価したハッシュ＃１と共に記憶する。ステップＳ４０９において、センサコントローラは、アクティブスタイラスによってステップＳ３０１およびＳ３０２において用いられたのと同じハッシュ演算を用いてハッシュ＃１およびハッシュ＃２を算出する。
【０１０９】
ステップＳ４０５に戻り、センサコントローラがアクティブスタイラスからの応答信号に含まれるハッシュ＃１がセンサコントローラ内にキャッシュ済みであると判定する場合に、ハッシュ＃１に対応するハッシュ＃２もセンサコントローラ内にキャッシュする（ステップＳ４０９を参照）。こうして、ステップＳ４１１において、センサコントローラは、ハッシュ＃１に対応するハッシュ＃２を、検証目的でアクティブスタイラスに返信する。特に、ステップＳ３０７において、アクティブスタイラスは、上記のステップＳ３０４においてアクティブスタイラスが送信したハッシュ＃１に対応するセンサコントローラから返信されたハッシュ＃２が、アクティブスタイラス内にキャッシュされたハッシュ＃２に一致するか否かを判定する。一致する場合は、アクティブスタイラスは、センサコントローラが該アクティブスタイラスを以前にペアリングしたことのあるアクティブスタイラスであると正しく認識したことを確認する。その場合はステップＳ３０９において、アクティブスタイラスは、センサコントローラが既に（設定情報を含む）スタイラス機能情報および／またはアクティブスタイラスのダウンリンク時間スロット割当てを有していることを検証する応答信号をセンサコントローラに送信する。ステップＳ４１３において、センサコントローラはアクティブスタイラスから応答信号を受信して検証処理を終了する。この時点において、アクティブスタイラスおよびセンサコントローラは、それらが以前にペアリングしたときに用いたのと同じダウンリンク時間スロット割当てを用いて双方向通信を開始する準備ができている。またこの時点において、センサコントローラはアクティブスタイラスによって形成される線描画を開始するのにアプリケーションが必要とするアクティブスタイラスの設定情報をすべて有するため、センサコントローラはすぐに「インキング（ｉｎｋｉｎｇ）処理」動作を開始し得る。
【０１１０】
ステップＳ３０７において、センサコントローラから受信したハッシュ＃２がアクティブスタイラスに記憶されたハッシュ＃２に一致しないとアクティブスタイラスが判定する場合は、ステップＳ３１１においてアクティブスタイラスは検証失敗を示す失敗メッセージ（ＦＡＩＬ）をセンサコントローラに送信し、ステップＳ３０３に戻ってセンサコントローラからのビーコン信号を待ち受けることを再開する。
【０１１１】
ステップＳ４１３において、センサコントローラは、アクティブスタイラスから送信された失敗メッセージ（ＦＡＩＬ）（ステップＳ３１１）を受信することと、アクティブスタイラスから成功検証を示す応答信号（ステップＳ３０９）を受信しないこととのいずれかによって、検証失敗を知らされる。検証失敗の場合に、センサコントローラはステップＳ４０７に戻り、アクティブスタイラスにアクティブスタイラスの一式の（非ハッシュ化）スタイラス機能情報（ＣＰ）を送信するように要求する。
【０１１２】
図１１は、アクティブスタイラス１００および電子装置（例えば、ＰＣ、タブレットコンピュータ、スマートフォン）３を含むシステム全体を示す、図１と同様の図である。図１１は、特に、電子装置３内でのセンサコントローラ２００とホストプロセッサ３００との間の双方向通信を示す。
【０１１３】
センサコントローラ２００は処理回路２０２を備え、処理回路２０２にはセンサ受信（ＲＸ）回路、センサ送信（ＴＸ）回路、およびメモリ装置が結合されている。ホストプロセッサ３００は処理回路３０１を備え、処理回路３０１はホスト受信（ＲＸ）回路およびホスト送信（ＴＸ）回路に結合されている。一方向においてホスト送信（ＴＸ）回路からセンサ受信（ＲＸ）回路へ向かい、他方向においてセンサ送信（ＴＸ）回路からホスト受信（ＲＸ）回路へ向かう双方向通信を、ユニバーサルシリアルバス（ＵＳＢ）インタフェース（ＵＳＢ  ＨＩＤ−ＰＴＣＬ）によって、または集積回路間（Ｉ２Ｃ）バス、シリアルペリフェラルインタフェース（ＳＰＩ）バス、もしくは他の適当なハードウェアによってサポートし得る。
【０１１４】
さらに図１２Ａを参照すると、センサコントローラ２００とホストプロセッサ３００との間の通信に供される方法は、概して３つのステップを含む。まず、ステップＳ１２０２において、定義されたスタイラス属性セットからなるデフォルトのディスクリプタをサポートするセンサコントローラは、ホストプロセッサ３００にデフォルトのディスクリプタを送信する。デフォルトのディスクリプタは、センサコントローラ２００の処理回路２０２によって特定およびサポートされる。簡潔には、デフォルトのディスクリプタは、センサコントローラ２００によってホストプロセッサ３００に送信されるＨＩＤ（ヒューマンインタフェースデバイス）クラスレポートのフォーマットを定義する。換言すれば、デフォルトのディスクリプタは、このようなレポートにどのような情報がどのようなフォーマットで含まれるかを定義する。デフォルトのディスクリプタ内の定義されたスタイラス属性セットが、異なる種類のアクティブスタイラスによってサポートされ得るすべての（存在し得る）スタイラス属性を含む、種々の実施形態が挙げられる。以下でより詳細に説明するように、このことによって、新たに発見されたスタイラス１００が、アクティブスタイラスの機能および嗜好に依存するデフォルトのディスクリプタによってサポートされるすべての存在し得るスタイラス属性の最小セットまたは全範囲を提供することが可能となる。
【０１１５】
図１３は、センサコントローラ２００からホストプロセッサ３００に送信されるスタイラスレポートのデフォルトのディスクリプタ例である。スタイラスレポートは、スタイラスの位置、先端圧力値、バレルプレッシャ値、スタイラスオリエンテーション（例えば、チルトおよび回転）などの、アクティブスタイラス１００からレポートされたとおりのスタイラス属性を含む。図１４は、図１３のデフォルトのディスクリプタに含まれるスタイラス属性のテーブルである。図１４に示すように、スタイラス属性値は、スタイラス座標値（「Ｘ、Ｙ」）、スタイラスがセンサの検知領域の範囲内にある間に各スタイラスに割り当てられるスタイラスロ−カルＩＤ（「トランスデューサインデックス（Ｔｒａｎｓｄｕｃｅｒ  Ｉｎｄｅｘ）」）、先端圧力値（「先端圧力（Ｔｉｐ  Ｐｒｅｓｓｕｒｅ）」）、およびバレルプレッシャ値（「バレルプレッシャ（Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ）」）のうちの少なくとも１つを含むスタイラス圧力値、先端スイッチ値（「先端スイッチ（Ｔｉｐ  Ｓｗｉｔｃｈ）」）、第１のバレルスイッチ値（「バレルスイッチ（Ｂａｒｒｅｌ  Ｓｗｉｔｃｈ）」）、および第２のスイッチ値（「セカンダリバレルスイッチ（Ｓｅｃｏｎｄａｒｙ  Ｂａｒｒｅｌ  Ｓｗｉｔｃｈ）」）のうちの少なくとも１つを含むスタイラススイッチ（スイッチステータス）値、スタイラスがスタイラスの所期のオリエンテーションから反転している（すなわち、スタイラス先端が上方を向いている）か否かを示すスタイラス反転インジケータ値（「反転（Ｉｎｖｅｒｔ）」）、スタイラスの一方の先端（例えば、反転した先端）がイレーサとして機能しているか否かを示すスタイラスイレーサインジケータ（「イレース（Ｅｒａｓｅ）」）、スタイラスがセンサ表面の検知領域内にあるか否かを示すスタイラスインレンジ値（「インレンジ（Ｉｎ  Ｒａｎｇｅ）」）、Ｘチルト値（「Ｘチルト（Ｘ  Ｔｉｌｔ）」）、Ｙチルト値（「Ｙチルト（Ｙ  Ｔｉｌｔ）」）、ツイスト値（「ツイスト（Ｔｗｉｓｔ）」）、高度値、方位角値、加速度計値、ジャイロスコープ値、および地磁気計値のうちの少なくとも１つを含むスタイラスオリエンテーション値、スタイラスバッテリステータス値（「バッテリ強度（Ｂａｔｅｒｙ  Ｓｔｒｅｎｇｔｈ）」）、スタイラスグローバルＩＤ（「トランスデューサシリアル番号（Ｔｒａｎｓｄｕｃｅｒ  Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ）」）、（以下で説明するように、スタイラスユーザによって、またはセンサコントローラ／ホストプロセッサによって後に変更され得る）アクティブスタイラスのメモリ内に設定された元来セットされた色を示すスタイラス推奨色値（「推奨色（Ｐｒｅｆｅｒｒｅｄ  Ｃｏｌｏｒ）」）、アクティブスタイラスがどのような線幅を描画するのが好ましいかを示すスタイラス推奨線幅値、アクティブスタイラスがどのようなどのようなスタイルで描画するのが好ましいか（例えば、インキングペン、鉛筆、ハイライタ、チゼル先端マーカ、ブラシなど）を示すスタイラス推奨線スタイル値、およびアクティブスタイラスベンダ／製造者によって設定され得るカスタム属性（「ベンダ使用（Ｖｅｎｄｅｒ  Ｕｓａｇｅ）」）を含む。
【０１１６】
推奨色値、推奨線幅値、および推奨線スタイル値の導入をアクティブスタイラス１００内に設定することには技術的に利点があり、それは（ユーザによって例えばアクティブスタイラス１００上に備えられたスイッチの１つを操作することによって）アクティブスタイラス１００内で自由に設定および変更し得ることである。従来技術において、これらの値は、通常、ホストプロセッサ３００上で動作するアプリケーション３０２（例えば、ドローイングアプリケーション）のみによって制御されていた。このように、従来技術においてアクティブスタイラス１００は、大抵、入力位置座標および圧力データを入力装置として用いられ、アクティブスタイラス１００の色、線幅、線スタイルなどを指定することができるようになっていなかった。スタイラスがより普及するにつれ、同じスタイラスが複数のアプリケーションにおいて、または複数のシステム上で使用される可能性が増大する。アプリケーション間またはシステム間で移動するときに、ユーザにとって、仮想オンスクリーンインクがこれらのアプリケーションおよびシステム間において持続しているかどうかは感覚によるところが大きいであろう。本発明の実施形態は、アクティブスタイラス１００がアクティブスタイラス１００の推奨の色、線幅、および／または線スタイルなどのアクティブスタイラス１００の属性を示し得るようにすることによって、ホストプロセッサ３００上で動作するアプリケーション３０２がユーザの嗜好に従って仮想オンスクリーンインクを持続的に描画することを容易にする。本発明の種々の実施形態によれば、以下で説明するように、アクティブスタイラス１００に対するユーザ操作に基づいて、またはホストプロセッサ３００上で動作するアプリケーション３０２からのコマンドに基づいて、仮想オンスクリーンインクの見栄えに影響を与えるこれらの値をアクティブスタイラス１００内で自由に設定および調整することができる。
【０１１７】
一具体例によるデフォルトのディスクリプタ内に定義された１７個の（１７）スタイラス属性のさらなる詳細を以下に説明する。
【０１１８】
１．Ｒｅｐｏｒｔ  ＩＤ
［レポートＩＤ］：
・レポートＩＤ（Ｒｅｐｏｒｔ  ＩＤ）は適宜他のＩＤに変更することが可能である。
【０１１９】
２．Ｃｏｏｄｉｎａｔｅｓ（Ｕｓａｇｅ（Ｘ）  ａｎｄ  Ｕｓａｇｅ（Ｙ））
［座標（用法（Ｘ）および用法（Ｙ））］：
・センサコントローラ２００は付属のセンサについての全情報を有することから、物理的最大値（Ｐｈｉｓｙｃａｌ  Ｍａｘｉｍｕｍ）、ユニット（Ｕｎｉｔ）、およびユニットエクスポーネント（Ｕｎｉｔ  Ｅｘｐｏｎｅｎｔ）はセンサの実際のサイズおよび分解能を反映させるように変更されることとする。
・また、論理的最大値（Ｌｏｇｉｃａｌ  Ｍａｘｉｍｕｍ）はセンサのセンサコントローラ２００によって出力される真の最大値を示すこととする。
・論理的最大値（Ｌｏｇｉｃａｌ  Ｍａｘｉｍｕｍ）が６５５３５より大きい場合、レポートサイズを減少することがあり、必要に応じて補充分を追加する。
【０１２０】
３．Ｔｒａｎｓｄｕｃｅｒ  Ｉｎｄｅｘ（Ｕｓａｇｅ（Ｔｒａｎｓｄｕｃｅｒ  Ｉｎｄｅｘ））
［トランスデューサインデックス（用法（トランスデューサインデックス））］：
・複数のスタイラスを同時に追跡する場合、トランスデューサインデックス（Ｔｒａｎｓｄｕｃｅｒ  Ｉｎｄｅｘ）はいずれのスタイラス１００がレポートを生成したかを示す。
・スタイラス１００が検出された場合にスタイラス１００に固有のトランスデューサインデックス（Ｔｒａｎｓｄｕｃｅｒ  Ｉｎｄｅｘ）を割り当て、スタイラス１００が範囲を外れるまで維持する。
・トランスデューサインデックス（Ｔｒａｎｓｄｕｃｅｒ  Ｉｎｄｅｘ）は任意である。値は再使用可能である。
【０１２１】
４．Ｔｉｐ  Ｐｒｅｓｓｕｒｅ（ＴｉＰ）（Ｕｓａｇｅ（Ｔｉｐ  Ｐｒｅｓｓｕｒｅ））
［先端圧力（ＴｉＰ）（用法（先端圧力））］：
・スタイラス１００によって出力される先端圧力（Ｔｉｐ  Ｐｒｅｓｓｕｒｅ）値は１２ビットの値である。
【０１２２】
５．Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ（Ｕｓａｇｅ（Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ））
［バレルプレッシャ（用法（バレルプレッシャ））］：
・スタイラス１００によって出力されるバレルプレッシャ（Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ）値は１２ビットの値である。
・スタイラス１００がバレルプレッシャ（Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ）をサポートしない場合、レポートされる値は最大値（４０９５）に設定される。
・理由：バレルプレッシャ（Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ）は不透明度などのブラシ動力を変化させるのに用いられる。バレルプレッシャ（Ｂａｒｒｅｌ  Ｐｒｅｓｓｕｒｅ）を最大値に設定することにより、ブラシ動力の最大の効果が適用される。
【０１２３】
６．Ｔｉｐ  Ｓｗｉｔｃｈ（Ｕｓａｇｅ（Ｔｉｐ  Ｓｗｉｔｃｈ）
［先端スイッチ（用法（先端スイッチ））］：
・スタイラス１００ではなくセンサコントローラ２００が、以下のようにして先端スイッチ（Ｔｉｐ  Ｓｗｉｔｃｈ）ビットを生成する。
・理由：スタイラス１００が先端スイッチ（Ｔｉｐ  Ｓｗｉｔｃｈ）ビットを送信する必要性を解消するために、センサコントローラ２００は、
ｉ）．スタイラス１００によってレポートされた先端圧力がゼロである場合は先端スイッチ（Ｔｉｐ  Ｓｗｉｔｃｈ）を０に設定し、そうでない場合は先端スイッチ（Ｔｉｐ  Ｓｗｉｔｃｈ）を１に設定し、
ｉｉ）．（レポートされた先端圧力がゼロ以外である場合にイレーサ（Ｅｒａｓｅｒ）ビットが設定される代わりに）反転（Ｉｎｖｅｒｔ）ビットが設定されている場合は、先端スイッチ（Ｔｉｐ  Ｓｗｉｔｃｈ）を設定しない。
【０１２４】
７．Ｂａｒｒｅｌ  Ｓｗｉｔｃｈｅｓ（ＢＢ）（Ｕｓａｇｅ（Ｂａｒｒｅｌｌ  Ｓｗｉｔｃｈ）  ａｎｄ  Ｕｓａｇｅ（Ｓｅｃｏｎｄａｒｙ  Ｂａｒｒｅｌ  Ｓｗｉｔｃｈ））
［バレルスイッチ（ＢＢ）（用法（バレルスイッチ）および用法（セカンダリバレルスイッチ）］：
・バレルスイッチのうちの１つがイレーサ分に指定された場合、そのことはスタイラス１００によってバレルスイッチとしてレポートされない。代わりに、そのことは反転（Ｉｎｖｅｒｔ）ビットとしてレポートされる。これはスタイラス１００内で行われる。
・セカンダリバレルスイッチ（Ｓｅｃｏｎｄａｒｙ  Ｂａｒｒｅｌ  Ｓｗｉｔｃｈ）は、オペレーティングシステムによって提供されるデータパーサにおいてサポートされない場合がある比較的新しいＨＩＤ使用法である。
【０１２５】
８．Ｉｎｖｅｒｔ（Ｉｎｖ）（Ｕｓａｇｅ（Ｉｎｖｅｒｔ））
［反転（Ｉｎｖ）（用法（反転））］：
・スタイラス１００が反転（Ｉｎｖｅｒｔ）ビットを供給し、センサコントローラ２００は供給しない。このビットはイレーサ分が使用中である場合に設定され、スタイラスのテイル端が表面に最も近いこと（テイルにイレーサスイッチおよびセンサがある場合）、またはイレースに指定されたバレルボタンが押下されたことのいずれかを意味する。
【０１２６】
９．Ｅｒａｓｅｒ（Ｕｓａｇｅ（Ｅｒａｓｅｒ））
［イレーサ（用法（イレーサ））］：
・スタイラス１００ではなくセンサコントローラ２００が、以下の機能を扱う。
・理由：スタイラス１００がイレース（Ｅｒａｓｅ）ビットを送信する必要性を解消するために、センサコントローラ２００は、
ｉ）反転（Ｉｎｖｅｒｔ）ビットが０に設定されている場合はイレーサビットを０に設定し、
ｉｉ）反転（Ｉｎｖｅｒｔ）ビットが１に設定されており、かつスタイラス１００によってレポートされた先端圧力（Ｔｉｐ  Ｐｒｅｓｓｕｒｅ）がゼロである場合は、イレーサビットを０に設定し、
ｉｉｉ）反転（Ｉｎｖｅｒｔ）ビットが１に設定されており、かつスタイラス１００によってレポートされた先端圧力（Ｔｉｐ  Ｐｒｅｓｓｕｒｅ）がゼロでない場合は、イレーサビットを１に設定する。
【０１２７】
１０．Ｉｎ  Ｒａｎｇｅ（Ｕｓａｇｅ（Ｉｎ  Ｒａｎｇｅ））
［インレンジ（用法（インレンジ））］：
・センサコントローラ２００はインレンジ（Ｉｎ  Ｒａｎｇｅ）ビットを生成する。
・センサコントローラ２００は、センサコントローラ２００がスタイラス１００を検出した後にレポートにおいてインレンジ（Ｉｎ  Ｒａｎｇｅ）ビットを設定する。
・スタイラス１００からデータを受信する間のすべての後続レポートはインレンジ（Ｉｎ  Ｒａｎｇｅ）セットを有する。
・スタイラス１００がそれ以上検出されないときにインレンジ（Ｉｎ  Ｒａｎｇｅ）を消去した少なくとも１つのレポートが送信され得る。
【０１２８】
１１．Ｏｒｉｅｎｔａｔｉｏｎ（ＯＲ）（Ｕｓａｇｅ（Ｘ  Ｔｉｌｔ），Ｕｓａｇｅ（Ｙ  Ｔｉｌｔ），  ａｎｄ  Ｕｓａｇｅ（Ｔｗｉｓｔ））
［オリエンテーション（ＯＲ）（用法（Ｘチルト）、用法（Ｙチルト）、および用法（ツイスト））］：
・スタイラス１００によってレポートされないいずれのオリエンテーション値もゼロとしてレポートされる。
・スタイラス１００からのオリエンテーションは高度（Ａｌｔｉｔｕｄｅ）および方位角（Ａｚｉｍｕｔｈ）としてレポートされ、それらはセンサコントローラ２００によってＸチルト（Ｘ  Ｔｉｌｔ）およびＹチルト（Ｙ  Ｔｉｌｔ）に変換される。
・ＩＭＵ値はセンサコントローラ２００によってＴｉｌｔ値およびツイスト（Ｔｗｉｓｔ）値に変換されるようにする。
・Ｔｉｌｔ値は−９０〜９０度の物理的な範囲を有するが、それらは好みに応じてラジアンでレポートされ得る。
・ツイスト（Ｔｗｉｓｔ）値は０〜３６０度の物理的な範囲を有するが、それらは好みに応じてラジアンでレポートされ得る。
・物理的な範囲および論理的な範囲は、度に関して小数点以下２桁の分解能を有し、またはラジアンに関して小数点以下４桁の分解能を有するものとし得る。
【０１２９】
１２．Ｂａｔｔｅｒｙ  Ｌｅｖｅｌ（ＢＬ）（Ｕｓａｇｅ（Ｂａｔｔｅｒｙ  Ｓｔｒｅｎｇｔｈ））
［バッテリレベル（ＢＬ）（用法（バッテリ強度））］：
・バッテリレベル（Ｂａｔｔｅｒｙ  Ｌｅｖｅｌ）はパーセントでレポートされる。
・スタイラスによってレポートされる当該レベルは１６段階を有し得るものであり、調整する必要があり得る。
・バッテリレベル（Ｂａｔｔｅｒｙ  Ｌｅｖｅｌ）は以下のように算出される。バッテリ強度（Ｂａｔｔｅｒｙ  Ｓｔｒｅｎｇｔｈ）＝スタイラス１００段階×（１００／１６）
【０１３０】
１３．Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ（ＳＮ）（Ｕｓａｇｅ（Ｔｒａｎｃｅｄｕｃｅｒ  Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ））
［シリアル番号（ＳＮ）（用法（トランスデューサシリアル番号））］：
・シリアル番号（Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ）はスタイラス１００の５６ビットシリアル番号（Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ）であり、スタイラス１００の８ビットベンダＩＤ（Ｖｅｎｄｏｒ  ＩＤ）が先頭に追加されて６０ビット値をなす。
・シリアル番号（Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ）は、オペレーティングシステムによって提供されるデータパーサにおいてサポートされない場合がある比較的新しいＨＩＤ使用法である。
【０１３１】
１４．Ｐｒｅｆｅｒｒｅｄ  Ｃｏｌｏｒ（Ｃｏｌ）（Ｕｓａｇｅ（Ｐｒｅｆｅｒｒｅｄ  Ｃｏｌｏｒ））
［推奨色（Ｃｏｌ）（用法（推奨色））］：
・スタイラス１００の機能のうち推奨色はｐｒｅｆｅｒｒｅｄ  Ｃｏｌｏｒ（Ｃｏｌ）に配置される。スタイラス１００に推奨色が存在しない場合は、用法に０ｘＦＦ（推奨なし）が埋め込まれる。
・スタイラスダウンからスタイラスアップまで推奨色（ｐｒｅｆｅｒｒｅｄ  Ｃｏｌｏｒ）はそれほど頻繁には変更されないため、この情報はフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）（図１４）に含めてショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）（図１４）には含めないことが好ましい。
【０１３２】
１５．Ｐｒｅｆｅｒｒｅｄ  Ｌｉｎｅ  Ｗｉｄｔｈ
［推奨線幅］：
・これはスタイラスの先端の物理的な幅を示すものであり得る。ディスクリプタは論理的および物理的な最小値および最大値を含むことになると考えられる。推奨の物理的な分解能は０．１ｍｍである。ゼロ線幅は、（任意の拡大率における１画素幅などの）取り得る最小の幅を示し得る。
【０１３３】
１６．Ｐｒｅｆｅｒｒｅｄ  Ｌｉｎｅ  Ｓｔｙｌｅ
［推奨線スタイル］：
・スタイラスが描画するのにどのような線スタイルが好ましいかを示すもの。これはスタイラスの物理的特性を示すものであり得る。
【０１３４】
１７．Ｖｅｎｄｏｒ  Ｄｅｆｉｎｅｄ  Ｄａｔａ  ａｎｄ  Ｕｓａｇｅ（Ｕｓａｇｅ  Ｐａｇｅ（Ｖｅｎｄｏｒ  Ｄｅｆｉｎｅｄ  Ｕｓａｇｅ  Ｐａｇｅ１）Ｕｓａｇｅ（Ｖｅｎｄｏｒ  Ｕｓａｇｅ２））
［ベンダ定義データおよび用法（用法ページ（ベンダ定義用法ページ１）用法（ベンダ用法２））］：
・スタイラスから受信した１または２カスタムバイトが、レポートの末尾におけるベンダ定義使用に配置される。
・使用されないバイトはゼロに設定される。
【０１３５】
図１２Ａを再度参照すると、ステップＳ１２０２において、センサコントローラ２０２はセンサＴＸ回路によってデフォルトのディスクリプタを、ホストプロセッサ３００にホストＲＸ回路経由で送信する。センサコントローラ２００とホストプロセッサ３００との間の接続が確立されたときにホストプロセッサ３００へのデフォルトのディスクリプタの送信が発生する、種々の実施例が挙げられる。ホストプロセッサ３００は、デフォルトのディスクリプタを受信すると、その後、デフォルトのディスクリプタによってサポートされると共にセンサコントローラ２００から送信されたスタイラスレポートを処理および受信し得る。
【０１３６】
ステップＳ１２０３において、センサコントローラ２００は、定義されたスタイラス属性セットの第１のサブセットに関してレポートすることが可能な第１のアクティブスタイラス１００Ａ（図１１を参照）に結合している場合に、デフォルトのディスクリプタにより定義された第１のスタイラスレポートであって、第１のアクティブスタイラス１００Ａからレポートされた値１１３Ａを埋め込んだスタイラス属性の第１のサブセットのフィールドを有する第１のスタイラスレポートを、ホストプロセッサ３００に送信する。ステップＳ１２０４において、センサコントローラ２００は、第１のサブセットと異なる定義されたスタイラス属性セットの第２のサブセットに関してレポートすることが可能な第２のアクティブスタイラス１００Ｂに結合している場合に、デフォルトのディスクリプタにより定義された第２のスタイラスレポートであって、第２のアクティブスタイラス１００Ｂからレポートされた値１１３Ｂを埋め込んだスタイラス属性の第２のサブセットのフィールドを有する第２のスタイラスレポートを、ホストプロセッサ３００に送信する。例えば、第１のアクティブスタイラス１００Ａは、デフォルトのディスクリプタにおいて定義されたスタイラス属性のほぼすべてに関してレポートすることが可能であり得る一方、第２のアクティブスタイラス１０１Ｂは、僅かなスタイラス属性（例えば、位置およびペン圧力）に関してのみレポートすることが可能であり得る。第１のサブセットのスタイラス属性と第２のサブセットのスタイラス属性とは、第１のサブセットおよび第２のサブセットにそれぞれ含まれるスタイラス属性の種類、および／または第１のサブセットおよび第２のサブセットにそれぞれ含まれるスタイラス属性の数の点で異なり得る。センサコントローラ２００と共に用いられるアクティブスタイラスの機能にかかわらず、センサコントローラ２００は個々のアクティブスタイラス１００からレポートされたスタイラス属性に基づいてスタイラスレポートを作成し、スタイラスレポートをホストプロセッサ３００に送信することができる。センサコントローラ２００から送信されるすべてのスタイラスレポートはデフォルトのディスクリプタによってサポートされるため、スタイラスからレポートされるスタイラス属性を他のレポートより多く含むレポートも存在するものの、デフォルトのディスクリプタを受信したホストプロセッサ３００はこのようなスタイラスレポートをすべて解釈および処理することができる。
【０１３７】
場合によっては、アクティブスタイラス１００は、デフォルトのディスクリプタにおいて定義された全スタイラス属性に関してレポートすることが可能であり得る。このような場合に、サブセットのスタイラス属性は、デフォルトのディスクリプタに含まれる定義されたスタイラス属性セットと同じである。異なるアクティブスタイラス（１００Ａ、１００Ｂ）が、共々デフォルトのディスクリプタに含まれる定義されたスタイラス属性セットより少ない、異なるサブセットのスタイラス属性を尊重してサポートする場合もある。
【０１３８】
図１２Ｂは、種々のスタイラス属性セットを含むスタイラスレポートの送信をサポートするデフォルトのディスクリプタに基づいた、センサコントローラ２００とホストプロセッサ３００との間の通信に供される方法を示す他のフローチャートである。ステップＳ１２１１において、センサコントローラ２００は、定義されたスタイラス属性セットのデフォルトのディスクリプタをホストプロセッサ３００に送信する。ステップＳ１２１２において、センサコントローラ２００はアクティブスタイラス１００からスタイラス属性を受信する。ステップＳ１２１３において、センサコントローラ２００は、どのような（いずれの）サブセットのスタイラス属性を受信したかを判定する。第１のサブセットのスタイラス属性を受信した場合は、ステップＳ１２１４において、センサコントローラ２００は、デフォルトのディスクリプタによってサポートされる、第１のサブセットのスタイラス属性の受信した値を埋め込んだ第１のスタイラスレポートを生成する。一方、（第１のサブセットと異なる）第２のサブセットのスタイラス属性を受信した場合は、ステップＳ１２１６において、センサコントローラ２００は、デフォルトのディスクリプタによってサポートされる、第２のサブセットのスタイラス属性の受信した値を埋め込んだ第２のスタイラスレポートを生成する。以下でより詳細に説明するように、いずれの場合も、ステップＳ１２１５において、またはステップＳ１２１７において必要に応じ、センサコントローラ２００は、アクティブスタイラス１００からレポートされていないスタイラス属性に対するレポートにおける何らかのフィールドにデフォルトの値を埋め込むことによって、および／または適当な平滑化アルゴリズムを適用してそれらの（レポートされていない）フィールドに「平滑化された（ｓｍｏｏｔｈｅｄ）」データを埋め込むことによってレポートを完成させる。ステップＳ１２１８において、必要に応じてデフォルト値、および／または、平滑化されたデータが埋め込まれ得る、生成された第１または第２のスタイラスレポートは、ホストプロセッサ３００に送信される。
【０１３９】
センサコントローラ２００が、デフォルトのディスクリプタによって定義された、定義されたスタイラス属性セットのすべてに関してレポートすることは可能でないアクティブスタイラスと結合している場合に、センサコントローラ２００は、スタイラスレポートを生成するときに、アクティブスタイラスからレポートされていないスタイラス属性に対するデフォルト値をレポート内のフィールドに埋め込み得る。デフォルト値は、予め定義され得るし、または予め定義されたアルゴリズムに従って算出され得る。例えば、デフォルトのディスクリプタにおいて定義されたスタイラス属性のいずれも特定のアクティブスタイラスによってサポートされず、したがってレポートもされない場合に、それらのスタイラス属性に対するレポートフィールドに、該特定のスタイラス属性がアクティブスタイラスによってサポート／レポートされないことを示すデフォルト値（例えば、最大値）を埋め込み得る。他の特定の例として、アクティブスタイラスが推奨色を有しない場合に、推奨色に対するレポートフィールドを、推奨色が存在しないことを示すデフォルト値に設定し得る。
【０１４０】
センサコントローラ２００が、スタイラスレポート内のフィールドに埋め込む、アクティブスタイラス１００からレポートされたスタイラス属性に対して平滑化アルゴリズムを適用する、種々の実施例が挙げられる。例えば、センサコントローラ２００は、アクティブスタイラス１００からレポートされたスタイラス属性に対して、サブサンプリング、スーパーサンプリング、内挿、または外挿処理のうちの１つまたは複数を適用し得る。このような平滑化は、アクティブスタイラス１００からレポートされたスタイラス属性に加えて、センサコントローラ２００によってアクティブスタイラス１００からの信号に基づいて生成された座標データを平滑化することを含む。ホストプロセッサ３００上において動作するオペレーティングシステムおよびアプリケーション（図１１における３０２）は、通常どおり、アクティブスタイラス１００からセンサコントローラ２００を介してレポートされたデータが等しい時間間隔で発生するものとする。したがって、センサコントローラ２００がスタイラス属性を等間隔で受信しない場合は、センサコントローラ２００は適当な平滑化アルゴリズムを適用して欠落データを生成し、ホストプロセッサ３００にレポートするデータが等しい時間間隔をおいて現れるようにする。ホストコントローラ３００上で動作するアプリケーション（図１１における３０２）によって平滑化アルゴリズムを代替的にまたは追加で適用する他の実施形態が挙げられる。
【０１４１】
センサコントローラ２００は、スタイラスレポートを生成するときに、アクティブスタイラス１００からレポートされる任意のスタイラス属性のフォーマットを、スタイラスレポートに含めるのに適したフォーマットに変換し得る。例えば、アクティブスタイラス１００の推奨色（図１３における１３００）が第１のフォーマット（例えば、６５５３６ＲＧＢフォーマット色のうちの１つを示す１６ビット）でレポートされた場合に、センサコントローラ２００は第１のフォーマットをスタイラスレポートに適した第２のフォーマット（１４０ＣＳＳ（カスケーディングスタイルシート）のうちの１つを示す８ビット）に変換し得る。センサコントローラ２００は、その場合に、ホストプロセッサ３００に送信するスタイラスレポートに第２のフォーマットで推奨色を含め得る。
【０１４２】
図１４を再度参照すると、他の実施形態として、デフォルトのディスクリプタは、「フルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）」をサポートする、定義されたスタイラス属性セットからなる第１の記述と、「ショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）」をサポートする、定義されたスタイラス属性セットのサブセットからなる第２の記述とを含み得る。図１５は、ショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）をサポートする、図１３のデフォルトのディスクリプタ内の定義されたスタイラス属性セットのサブセットの第２の記述例である。図示のように、第２の記述は、より少ない数のスタイラス属性を含む。図１４において、「Ｘ」は特定のスタイラス属性がフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）に含まれること、および／またはショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）に含まれることを示し、ショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）に含まれるスタイラス属性の数はフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）と比較して少ないことを示す。このように、種々の実施例において、ショートレポートはフルレポートより小さいデータサイズを有する。アクティブスタイラス１００がショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）に含まれるスタイラス属性を提供するだけである場合は、センサコントローラ２００はフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）の代わりにより小さいデータサイズを有するショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）を生成および送信し得る。アクティブスタイラス１００がショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）に含まれない何らかのスイラス属性を提供する場合は、センサコントローラ２００はフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）を生成および送信し得る。
【０１４３】
フルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）およびショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）を用いる実施形態において、センサコントローラ２００は、定義されたスタイラス属性セットに関して実質的にレポートすることが可能な第１のアクティブスタイラス１００Ａと結合している場合に、デフォルトのディスクリプタに含まれる第１の記述により定義されたフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）であって、第１のアクティブスタイラス１００Ｂからレポートされた値を埋め込んだ定義されたスタイラス属性セットスタイラス属性のフィールドを実質的に有するフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）を、ホストプロセッサ３００に送信する。センサコントローラ２００は、スタイラス属性のサブセットに関して実質的にレポートすることが可能な第２のアクティブスタイラス１００Ｂと結合している場合に、第２の記述により定義されたショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）であって、第２のアクティブスタイラス１００Ｂからレポートされた値を埋め込んだスタイラス属性のサブセットのフィールドを実質的に有するショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）を、ホストプロセッサ３００に送信する。本明細書では、属性セットに関して「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」レポートすることは、属性セットのすべてまたはほぼすべてに関してレポートすることを意味する。例えば、図１４において、フルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）は１８個のスタイラス属性を含み、ショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）は１０個のスタイラス属性を含む。アクティブスタイラスが１０個のショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）属性すべてと少なくとも１つの付加的な属性とをサポートする場合に、センサコントローラ２００はアクティブスタイラスに対して１１〜１８個の属性を含むフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）を生成する。すなわち、アクティブスタイラスが１１個の属性のみをサポートしていても、フルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）を生成し、定義された属性セットを「実質的に」含むとみなす。本実施形態によれば、個々のアクティブスタイラス１００の機能に応じて、センサコントローラ２００はフルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）とショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）とのいずれかを生成し、いずれにしてもアクティブスタイラスからレポートされたスタイラス属性を実質的にレポートするように適合させる。本実施形態においても、フルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）とショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）とのいずれかに含めるスタイラス属性が必ずしもアクティブスタイラスからレポートされない場合があるため、センサコントローラ２００は、アクティブスタイラスからレポートされないスタイラス属性に対する選択したレポート内のフィールドにデフォルト値を埋め込み得る。さらに、センサコントローラ２００は、選択したレポート内のフィールドに埋め込むアクティブスタイラスからレポートされたスタイラス属性に対して平滑化アルゴリズム（サブサンプリング、スーパーサンプリング、内挿、外挿など）を適用し得る。センサコントローラ２００は、アクティブスタイラス１００からレポートされた、アクティブスタイラス１００によってサポートされる属性を示すスタイラス機能情報を用いて、フルレポート（Ｆｕｌｌ  Ｒｅｐｏｒｔ）とショートレポート（Ｓｈｏｒｔ  Ｒｅｐｏｒｔ）とのいずれを用いるかを選択し得る。（図１１における１１４を参照）
【０１４４】
図１１、１２Ｃ、および１６を参照して、概して５つのステップを含む、ホストプロセッサ３００とセンサコントローラ２００との間の他の通信方法を説明する。図１２ＣのステップＳ１２０５において、ホストプロセッサ３００は、ホストプロセッサ３００上で動作するアプリケーション（図１１における３０２）によって発行されるコマンド１２１をセンサコントローラ２００に送信する。ステップＳ１２０６において、センサコントローラ２００はコマンド１２１を受信してアクティブスタイラス１００に転送する。例えば、センサコントローラ２００は、センサコントローラ２００がアクティブスタイラス１００に送信する任意の信号（例えば、ビーコン信号）に該コマンドを含め得る。ステップＳ１２０７において、アクティブスタイラス１００は、コマンド１２１に応答して、コマンド１２１に従って動作してセンサコントローラ２００にコマンド応答１２３を送信する。例えば、アクティブスタイラス１００は、アクティブスタイラス１００がセンサコントローラ２００に送信する任意の信号（例えば、応答信号）に該コマンド応答を含め得る。ステップＳ１２０８において、センサコントローラ２００は、センサコントローラ２００のメモリにコマンド応答１２３を記憶する。ステップＳ１２０９において、ホストプロセッサ３００は、センサコントローラ２００のメモリからコマンド応答１２３を読み出すように要求する。図１６のシーケンス図に本方法をさらに示す。ホストプロセッサ３００とセンサコントローラ２００との間におけるコマンド１２１およびコマンド応答１２３の交換は、ユニバーサルシリアルバス（ＵＳＢ）インタフェース、集積回路間（Ｉ２Ｃ）バス、シリアルペリフェラルインタフェース（ＳＰＩ）バス、または他の適当なハードウェアインタフェースなどの任意の適当なインタフェースによってサポートされる。
【０１４５】
本方法によって、ホストプロセッサ３００上で動作するアプリケーション３０２がスタイラス１００にコマンドを発行し、スタイラス１００から結果を受信することが可能となる。センサコントローラ２００は、ホストプロセッサ３００から受信したコマンドを、該コマンドの内容を解釈することなくアクティブスタイラス１００に転送し、アクティブスタイラス１００から返信されたコマンド応答を、ホストプロセッサ３００上で動作するアプリケーション３０２による後の読出しに備えて受信および記憶する。センサコントローラ２００が、ホストプロセッサ３００から受信したコマンドを「そのまま（ａｓ  ｉｓ）」アクティブスタイラス１００に転送する、種々の実施形態が挙げられる。例えば、センサコントローラ２００がホストプロセッサ３００からＮビットからなるコマンドを受信する場合に、センサコントローラ２００はＮビットのコマンドを何らの変更または追加なしにアクティブスタイラス１００に転送する。このことには、ホストプロセッサ３００上で動作するアプリケーション３０２が、センサコントローラ２００の機能（例えば、ファームウェア）にかかわらず、アクティブスタイラス１００のためにコマンドを解釈／処理するように種々のコメントを発行することができることに技術的に利点があり得る。これらの実施形態において、コマンド１００はアクティブスタイラス１００によって動作可能／実施可能でありさえすればよい。このことは、アプリケーション３０２によって利用され得る種々の（追加の）コマンドを設計する際の自由度を、さらにはアクティブスタイラス１００にアプリケーション３０２が利用することができる種々の（追加の）属性／特徴を導入する際の自由度をもたらし得る。
【０１４６】
ホストプロセッサ３００上で動作するアプリケーション３０２からセンサコントローラ２００に種々の種類のコマンドが送信されてアクティブスタイラス１００へと転送され得る。
【０１４７】
コマンド１２１は、アクティブスタイラスの属性を特定する要求（または読出し）コマンドからなり得る。例えば、コマンドは、アクティブスタイラス１００の推奨色値、推奨線幅値、または推奨線スタイル値などを特定するようにアクティブスタイラス１００に要求し得る。アクティブスタイラス１００からのコマンド応答１２３は、その場合に、アクティブスタイラスの推奨色値、推奨線幅値、または推奨線スタイル値を含む。コマンド応答１２３は、次いで、センサコントローラ２００のメモリに記憶され得る。ホストプロセッサ３００上で動作するアプリケーション３０２は、その後、センサコントローラ２００のメモリから、記憶した属性（例えば、アクティブスタイラス１００の推奨色、推奨線幅、および／または推奨線スタイル）を読み出し得る。スタイラスがより普及するにつれ、同じスタイラスが複数のアプリケーションにおいて、または複数のシステム上で使用される可能性が増大する。アプリケーション間またはシステム間で移動するときに、ユーザにとって、仮想オンスクリーンインクがこれらのアプリケーションおよびシステム間において持続しているかどうかは感覚によるところが大きくなるであろう。本発明の実施形態は、アクティブスタイラス１００がアクティブスタイラス１００の推奨の色、線幅、および／または線スタイルなどのアクティブスタイラス１００の属性を示し得るようにすることによって、ホストプロセッサ３００上で動作するアプリケーション３０２がユーザの嗜好に従って仮想オンスクリーンインクを持続的に描画することを容易にする。さらなる例として、要求コマンド１２１は、アクティブスタイラス１００にバッテリレベル、ファームウェアバージョン、スタイラスバージョンなどを特定するように要求し得る。アクティブスタイラス１００は、バッテリレベル、ファームウェアバージョン、スタイラスバージョンなどを示すデータを含むコマンド応答１２３を返信し、該データはホストプロセッサ３００による読出しに備えてセンサコントローラ２００のメモリに記憶される。
【０１４８】
アクティブスタイラスの推奨色、推奨線幅、および／または推奨線スタイルなどのアクティブスタイラスの属性がセンサコントローラ２００によって読み出されるのみであって変更可能でない実施形態も挙げられる。このことは、例えば、アクティブスタイラスが、推奨色に適合する色を有する物理的なインクを備える場合、またはユーザによりセレクタスイッチを用いて推奨色が設定される場合に当てはまり得る。
【０１４９】
アクティブスタイラスの属性がセンサコントローラ２００によって（強制的に）設定または構成され得る他の実施形態も挙げられる。これを達成するために、センサコントローラ２００は、アクティブスタイラスの推奨色値、推奨線幅値、または推奨線スタイル値などの、アクティブスタイラスの属性を設定する設定コマンド１２１を送信し得る。ホストプロセッサ３００上で動作するアプリケーション３０２はセンサコントローラ２００に対して設定コマンド１２１を発行し、設定コマンド１２１は次いでアクティブスタイラス１００に転送される。アクティブスタイラス１００は、設定コマンド１２１を受信すると、設定コマンド１２１に従ってアクティブスタイラス１００の属性を設定し、設定コマンド１２１によって要求された動作を実行することができた（すなわち、推奨色値、推奨線幅値、および／または推奨線スタイル値を設定することができた）ことを示すフラグを含むコマンド応答１２３を送信する。
【０１５０】
他の実施形態として、ホストプロセッサ３００上で動作するアプリケーション３０２は、アクティブスタイラス１００に規定のフォーマットで（例えば、スタイラス属性を含む）ダウンリンク信号を送信するように要求するコマンド１２１を発行し得る。デフォルトフォーマットは、アクティブスタイラス１００がダウンリンク信号を送信するのに用いる送信周波数および送信時間長の少なくとも一方を指定し得る。センサコントローラ２００はこのようなコマンド１２１をアクティブスタイラス１００に転送し、アクティブスタイラス１００は、コマンド応答１２３の一部として、またはコマンド応答１２３とは別に、コマンド１２１によって特定された規定のフォーマットでダウンリンク信号を送信する。例えば、アクティブスタイラス１００は、コマンド１２１によって特定された送信周波数および／または送信時間長（所要時間）を用いてダウンリンク信号を送信する。
【０１５１】
さらに他の実施形態として、ホストプロセッサ３００上で動作するアプリケーション３０２は、アクティブスタイラス１００にデータを取得する規定の動作を実行するように要求するコマンド１２１を発行し得る。例えば、コマンド１２１はアクティブスタイラス１００に診断テストを実行するように要求し得る。このような「診断（ｄｉａｇｎｏｓｔｉｃ）」コマンドは「要求」コマンドの一種とみなし得る。アクティブスタイラス１００は、このようなコマンド１２１を受信すると、要求された診断テストを実行し、テスト結果データをコマンド応答１２３の一部として、またはコマンド応答１２３とは別にセンサコントローラ２００に返信する。返信されたデータは、次いで、ホストプロセッサ３００上で動作するアプリケーション３０２による読出しに備えて、センサコントローラ２００のメモリに記憶される。
【０１５２】
他の実施形態として、ホストプロセッサ３００上で動作するアプリケーション３０２は、アクティブスタイラス１００の圧力曲線を、アクティブスタイラス１００が模擬するように構成された線スタイルを有する既存のマーキングツール（例えば、鉛筆、ローラボールペン）の力応答曲線に接近させるようにアクティブスタイラス１００に指示するコマンド１２１を発行し得る。
【０１５３】
スタイラス１００によってレポートされた先端圧力データは、力センサによって計測された、スタイラス先端に加わる力の結果である。加わる力とレポートされた圧力値との間の関係は、「圧力曲線（ｐｒｅｓｓｕｒｅ  ｃｕｒｖｅ）」と呼ばれ、実際は通常、直線または対数である。
【０１５４】
鉛筆またはローラボールペンなどの既存のマーキングツールを用いる場合は、加わる力と視覚上の結果との間に、「力応答曲線（ｆｏｒｃｅ  ｒｅｓｐｏｎｓｅ  ｃｕｒｖｅ）」と呼ばれる関係が存在する。力応答曲線はマーキングツールごとに異なり、特定のスタイルのマーキングツール（例えば、鉛筆、ローラボールペン）を模擬するように構成されたスタイラスの圧力曲線と異なり得る。例えば、鉛筆は、明るい側の線および暗い側の線を伴う、加わる力の範囲に応答するより直線的な力応答曲線を有する一方、ローラボールペンは、追加で加わる力が描線にほとんど影響を与えない非常に急峻な力応答曲線を有する。したがって、スタイラスの圧力曲線を修正して、スタイラスが模擬するように構成された既存のマーキングツールの力応答曲線により適合させることは技術的に利点が存在し得る。
【０１５５】
スタイラス圧力曲線を既存のマーキングツールの力応答曲線に適合させるためには、ユーザがどのようなマーキングツールを使いたいかを知る必要がある。上述した本発明の種々の実施形態による推奨線スタイル値を導入するために、ホストプロセッサ３００上で動作するアプリケーション３０２は、アクティブスタイラス１００に対してユーザが意図する特定の線スタイルを判定し得る。例えば、アプリケーション３０２は、（例えば、ユーザによって）アクティブスタイラス１００に設定された線スタイル値を返信するようにアクティブスタイラス１００に要求する要求コマンド１２１を送信し得る。これに代えて、アプリケーション３０２は、アクティブスタイラス１００に特定の線スタイルを強制的に設定する設定コマンド（線スタイルコマンド）１２１を送信してもよい。線スタイルコマンド１２１において特定されたマーキングツールに基づいて、アクティブスタイラスが（自動的に）圧力曲線を調整して、特定された線スタイル値に対応するマーキングツールの近似した力応答曲線に接近させる、種々の実施例が挙げられる。例えば、アクティブスタイラス１００の線スタイル値が「鉛筆（ｐｅｎｃｉｌ）」に設定される場合に、アクティブスタイラス１００は、アクティブスタイラス１００の圧力曲線を調整して鉛筆の力応答曲線に接近させるように指示される。これらの実施形態において、アクティブスタイラス１００に対して特定の線スタイル値を（強制的に）設定する単一のコマンドは、さらに、アクティブスタイラス１００の圧力曲線を調整して、設定された線スタイル値に対応する力応答曲線に合わせるように指示し得る。
【０１５６】
上述した種々の実施形態を組み合わせてさらなる実施形態を提供することが可能であり、上述の詳細な説明に基づいて実施形態の態様を変更することが可能である。一般に、以下の請求項において、用いられる用語は明細書および請求項において開示された特定の実施形態に限定されると解釈すべきではなく、このような請求項が該当する等価物の全範囲と共にすべての存在し得る実施形態を含むと解釈すべきである。
【図１】
2020198137.tif 000003
【図２Ａ】
2020198137.tif 000004
【図２Ｂ】
2020198137.tif 000005
【図３】
2020198137.tif 000006
【図４Ａ】
2020198137.tif 000007
【図４Ｂ】
2020198137.tif 000008
【図４Ｃ】
2020198137.tif 000009
【図４Ｄ】
2020198137.tif 000010
【図４Ｅ】
2020198137.tif 000011
【図５Ａ】
2020198137.tif 000012
【図５Ｂ】
2020198137.tif 000013
【図５Ｃ】
2020198137.tif 000014
【図６】
2020198137.tif 000015
【図７】
2020198137.tif 000016
【図８Ａ】
2020198137.tif 000017
【図８Ｂ】
2020198137.tif 000018
【図９Ａ】
2020198137.tif 000019
【図９Ｂ】
2020198137.tif 000020
【図９Ｃ】
2020198137.tif 000021
【図９Ｄ】
2020198137.tif 000022
【図９Ｅ】
2020198137.tif 000023
【図９Ｆ】
2020198137.tif 000024
【図９Ｇ】
2020198137.tif 000025
【図１０】
2020198137.tif 000026
【図１１】
2020198137.tif 000027
【図１２Ａ】
2020198137.tif 000028
【図１２Ｂ】
2020198137.tif 000029
【図１２Ｃ】
2020198137.tif 000030
【図１３】
2020198137.tif 000031
【図１４】
2020198137.tif 000032
【図１５】
2020198137.tif 000033
【図１６】
2020198137.tif 000034