(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-22
(45)【発行日】2022-06-30
(54)【発明の名称】スタイラスとスタイラスセンサコントローラとの間の双方向通信に供されるシステムおよび方法
(51)【国際特許分類】
G06F 3/044 20060101AFI20220623BHJP
G06F 3/041 20060101ALI20220623BHJP
【FI】
G06F3/044 B
G06F3/041 512
(21)【出願番号】P 2021018146
(22)【出願日】2021-02-08
(62)【分割の表示】P 2017541772の分割
【原出願日】2016-04-13
【審査請求日】2021-03-09
(32)【優先日】2015-04-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2015-05-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2015-10-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-02-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-03-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-03-14
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2016-03-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000139403
【氏名又は名称】株式会社ワコム
(74)【代理人】
【識別番号】100130982
【氏名又は名称】黒瀬 泰之
(72)【発明者】
【氏名】フレック デイヴィッド チャールズ
(72)【発明者】
【氏名】山本 定雄
【審査官】永野 志保
(56)【参考文献】
【文献】米国特許出願公開第2003/0074562(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/044
G06F 3/041
(57)【特許請求の範囲】
【請求項1】
アクティブスタイラスを、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラとインタフェースする方法であって、
前記センサコントローラは、前記センサ上に前記アクティブスタイラスからの入力を表示するように実行されるアプリケーションプログラムにより用いられる、インキング処理のための設定情報を含む前記アクティブスタイラスのスタイラス機能情報をキャッシュし、
前記アクティブスタイラスは、前記スタイラス機能情報のハッシュ値を生成し、前記アクティブスタイラスが前記センサコントローラの検知領域に入るときに前記ハッシュ値を前記センサコントローラに送信する方法。
【請求項2】
請求項1に記載の方法であって、
前記アクティブスタイラスと前記センサとは静電容量結合する方法。
【請求項3】
請求項1に記載の方法であって、
前記インキング処理のための設定情報は、i)スタイラス線幅、ii)スタイラス先端タイプ、iii)色、およびiv)前記アクティブスタイラスの固有識別番号のうちの少なくとも1つを含む方法。
【請求項4】
請求項1に記載の方法であって、
前記インキング処理のための設定情報は、前記アクティブスタイラス上に配置された1つまたは複数のスイッチを用いてユーザにより変更可能である色指標を含む方法。
【請求項5】
請求項1に記載の方法であって、
前記インキング処理のための設定情報は、前記アクティブスタイラス上に配置された1つまたは複数のスイッチを用いてユーザにより変更可能である前記アクティブスタイラスの固有識別番号を含む方法。
【請求項6】
請求項1に記載の方法であって、
前記アクティブスタイラスの固有識別番号、スタイラス線幅、スタイラス先端タイプ、および前記アクティブスタイラスの色を含む前記スタイラス機能情報に基づいて前記ハッシュ値を生成する方法。
【請求項7】
請求項1に記載の方法であって、さらに、
前記センサコントローラは、前記アクティブスタイラスから受信した前記ハッシュ値が、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に一致するか否かを判定し、
前記ハッシュ値が一致する場合は、前記センサコントローラは、前記センサコントローラ内にキャッシュされた一致する前記スタイラス機能情報を用い、
前記ハッシュ値が一致しない場合は、前記センサコントローラは、前記スタイラス機能情報を前記センサコントローラに送信して前記センサコントローラ内にキャッシュさせるよう前記アクティブスタイラスに要求する読出しコマンドを送信することを含む方法。
【請求項8】
請求項1に記載の方法であって、さらに、
前記センサコントローラは、前記アクティブスタイラスから受信した前記ハッシュ値が、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に一致するか否かを判定し、
前記ハッシュ値が一致する場合は、前記センサコントローラは、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に対応する第2のハッシュ値を前記アクティブスタイラスに送信し、
前記アクティブスタイラスは、前記センサコントローラから受信した前記第2のハッシュ値が前記アクティブスタイラスの前記スタイラス機能情報の第2のハッシュ値に対応するか否かを判定することを含む方法。
【請求項9】
アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合されるセンサコントローラであって、
前記アクティブスタイラスに信号を送信する/前記アクティブスタイラスから信号を受信するように構成されたトランスミッタ/レシーバと、
前記アクティブスタイラスのスタイラス機能情報を記憶するように構成されたキャッシュであって、前記スタイラス機能情報は、前記センサ上に前記アクティブスタイラスからの入力を表示するように前記センサコントローラと連携して実行されて動作するアプリケーションプログラムにより用いられる設定情報を含むキャッシュと、
前記トランスミッタ/レシーバおよび前記キャッシュに結合したプロセッサであって、動作中に、前記アクティブスタイラスから前記スタイラス機能情報のハッシュ値を受信し、受信した前記ハッシュ値が前記センサコントローラの前記キャッシュに記憶された前記スタイラス機能情報に一致する場合は、キャッシュされた前記機能情報を用いるプロセッサとを備えるセンサコントローラ。
【請求項10】
請求項9に記載のセンサコントローラであって、
前記プロセッサは、受信した前記ハッシュ値が前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に一致しない場合は、前記スタイラス機能情報を前記センサコントローラに送信して前記センサコントローラ内にキャッシュさせるよう前記アクティブスタイラスに要求する読出しコマンドを送信するように、前記トランスミッタ/レシーバに指示するセンサコントローラ。
【請求項11】
請求項9に記載のセンサコントローラであって、
前記プロセッサは、受信した前記ハッシュ値が一致する場合は、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に対応する第2のハッシュ値を前記アクティブスタイラスに送信するように、前記トランスミッタ/レシーバに指示するセンサコントローラ。
【請求項12】
請求項9に記載のセンサコントローラであって、
前記ハッシュ値は、前記アクティブスタイラスのグローバルID、スタイラス線幅、スタイラス先端タイプ、および前記アクティブスタイラスの色のうちの少なくとも1つを含む前記スタイラス機能情報に基づくセンサコントローラ。
【請求項13】
アクティブスタイラスであって、
レシーバであって、動作中に、前記アクティブ
スタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラから送信される周期的なビーコン信号を受信し、前記ビーコン信号は前記アクティブスタイラスと前記センサコントローラとの間の双方向通信において用いられる時間スロットに対するタイミング基準として機能するレシーバと、
前記ビーコン信号を検出するとともにスタイラス機能情報のハッシュ値を生成するように前記レシーバに結合したプロセッサであって、前記スタイラス機能情報は、前記センサ上に前記アクティブスタイラスからの入力を表示するように前記センサコントローラと協働して動作するホストシステム上のアプリケーションプログラムにより用いられるインキング処理のための設定情報を含むプロセッサと、
前記ハッシュ値を前記センサコントローラに送信するように前記プロセッサに結合したトランスミッタとを備えるアクティブスタイラス。
【請求項14】
請求項13に記載のアクティブスタイラスであって、
静電容量方式のアクティブスタイラスからなるアクティブスタイラス。
【請求項15】
請求項13に記載のアクティブスタイラスであって、
前記設定情報は、i)スタイラス線幅、ii)スタイラス先端タイプ、iii)色、およびiv)前記アクティブスタイラスの固有識別番号のうちの少なくとも1つを含むアクティブスタイラス。
【請求項16】
請求項13に記載のアクティブスタイラスであって、
前記プロセッサは、前記アクティブスタイラスのグローバルID、スタイラス線幅、スタイラス先端タイプ、および前記アクティブスタイラスの色のうちの少なくとも1つを含む前記スタイラス機能情報に基づいて前記ハッシュ値を生成するアクティブスタイラス。
【請求項17】
請求項13に記載のアクティブスタイラスであって、
前記レシーバは、前記センサコントローラから、前記センサコントローラ内にキャッシュされたスタイラス機能情報に対応する第2のハッシュ値を受信し、
前記プロセッサは、受信した前記第2のハッシュ値が前記アクティブスタイラスの前記スタイラス機能情報の第2のハッシュ値に対応するか否かを判定するアクティブスタイラス。
【請求項18】
システムであって、
(a)センサと、
(b)前記センサに結合したセンサコントローラであって、
動作中に、周期的なビーコン信号の送信を発生させる送信コントローラであって、前記ビーコン信号は前記センサコントローラと1つまたは複数のアクティブスタイラスとの間の双方向通信において用いられる時間スロットに対するタイミング基準として機能する送信コントローラと、
前記送信コントローラに結合したセンサプロセッサとを有するセンサコントローラと、
(c)アクティブスタイラスであって、
動作中に、センサコントローラから送信される前記周期的なビーコン信号を受信するレシーバと、
前記ビーコン信号を検出するとともに前記アクティブスタイラスのスタイラス機能情報を含む信号を生成するように前記レシーバに結合したスタイラスプロセッサと、
スタイラス機能情報のハッシュ値を前記センサコントローラに送信するように前記スタイラスプロセッサに結合したトランスミッタであって、前記スタイラス機能情報は前記センサ上に前記アクティブスタイラスからの入力を表示するように実行されるアプリケーションプログラムにより用いられるインキングに対する設定情報を含むトランスミッタとを有するアクティブスタイラスとを備えるシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2015年4月20日に出願された「位置入力方法、位置入力システム、センサコントローラ、およびスタイラス」と題する米国仮特許出願第62/149,907号、2015年5月15日に出願された「位置入力方法、位置入力システム、センサコントローラ、およびスタイラス」と題する米国仮特許出願第62/162,527号、2015年10月19日に出願された「位置入力方法、位置入力システム、センサコントローラ、およびスタイラス」と題する米国仮特許出願第62/243,427号、2016年2月4日に出願された「スタイラスとスタイラスセンサコントローラとの間の双方向通信に供されるシステムおよび方法」と題する米国仮特許出願第62/291,373号、2016年3月14日に出願された「スタイラスとスタイラスセンサコントローラとの間の双方向通信に供されるシステムおよび方法」と題する米国仮特許出願第15/069,793号、2016年3月14日に出願された「スタイラスとスタイラスセンサコントローラとの間の双方向通信に供されるシステムおよび方法」と題する米国仮特許出願第15/069,848号、および2016年3月14日に出願された「スタイラスとスタイラスセンサコントローラとの間の双方向通信に供されるシステムおよび方法」と題する米国仮特許出願第15/069,852号の優先権を主張し、それらの全体は引用によりここに組み込まれる。
【0002】
本出願は、アクティブスタイラス、スタイラスセンサのセンサコントローラ、および位置入力システム、ならびにこのようなスタイラスおよびセンサコントローラに基づく方法に関し、より詳細には、スタイラスとセンサコントローラとの間の双方向通信プロトコルを利用する位置入力システムおよび方法に関する。
【背景技術】
【0003】
タブレットコンピュータ、スマートフォンなどの電子装置のスタイラス検知スクリーン(センサ)上にユーザが文字および図形を手書きすることが可能な各種のスタイラスが入手可能である。例えば、アクティブ静電容量式(容量性)スタイラスは電源およびシグナルプロセッサを備え、スタイラスの先端に備えられた電極に送信信号に応じた電荷を供給することによって信号を送信し、これにより先端が示す(指し示す)位置またはその近傍における電界に変化を生じさせる。電子装置のスタイラス検知スクリーン(センサ)はマトリクス状のX電極およびY電極を備え、スタイラス先端による上述の電界の変化がスタイラス先端またはその近傍のマトリクス電極における相応の電荷の変化を誘起する。センサおよび/または電子装置のホストプロセッサに結合したセンサコントローラは、マトリクス電極におけるこのような電荷の変化を検出することによってスタイラスからの送信信号を検出する。センサコントローラおよび/またはホストプロセッサは、次いで、送信信号を検出したマトリクス電極の位置に基づき、センサ上においてスタイラスにより示された位置を判別する。
【0004】
異なる種類のアクティブスタイラスは、ペン(スタイラス)先端圧力を検出することができる異なる段階がいくつあるかというペン(スタイラス)先端圧力検出機能、ペンツイスト(回転)検出機能およびペンチルト検出機能を含むペンオリエンテーション検出機能、スタイラス上に備えられた異なる数および種類のバレルボタン(スイッチ)などの、異なるスタイラス機能または作用を有する。通常、スタイラスからセンサコントローラへの通信に使用されるデータフォーマットは、対象としているスタイラスセンサシステムに固定して設定され、異なる種類のスタイラス機能および作用をサポートすること、およびスタイラス機能および作用のバリエーションを拡大することはできない。
【0005】
各スタイラスはセンサコントローラと共に使用される(すなわち、センサコントローラの検知領域に入る)たびに常にスタイラスの全機能情報をセンサコントローラに送信することが可能である一方、このような全機能情報の送信は、対象としている通信プロトコルにおいて使用可能な多数の時間スロットまたはフレームを消費する。1つまたは複数のスタイラスが絶えずセンサコントローラの検知領域に入る、および検知領域から出る通常の状況において、センサコントローラは、入る各スタイラスの機能情報を即座に取得してスタイラスの個別の機能に適した態様でスタイラスとの通信を開始することができない可能性がある。これによりセンサコントローラの応答時間が低速化し、したがってセンサコントローラとアクティブスタイラスとの間において通信を確立することが遅延し得る。例えば、センサコントローラは、センサコントローラがスタイラスのオリエンテーション検出機能を即座に確認することができないというだけで、スタイラスからのペンオリエンテーションデータを、スタイラスにこのようなオリエンテーションデータを十分に送信する能力がある場合でも速やかに受信することができない可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の態様は、検知領域に入る1つまたは複数のアクティブスタイラスの機能情報をセンサコントローラが即座に判別することによってスタイラスとの双方向通信を開始することを可能とする技術的解決手段を提供する。本態様は、異なる機能情報を有する異なるアクティブスタイラスをサポートするユニバーサルスタイラスセンサコントローラインタフェースを提供するのに特に適する。
【課題を解決するための手段】
【0007】
一態様によれば、アクティブスタイラスをセンサコントローラとインタフェースする方法が提供される。前記センサコントローラは、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合している。前記センサコントローラは、前記スタイラスからパケットを受信するのに使用可能な複数の時間スロットからなるデータフレームを定義する。前記アクティブスタイラスは、前記センサコントローラからの要求に応答して、スタイラス機能情報を含む信号を送信する。前記センサコントローラは、前記スタイラス機能情報に基づいて、前記アクティブスタイラスにより前記センサコントローラにパケットを送信するのに用いられるダウンリンク時間スロット割当てを決定する。前記センサコントローラは、前記ダウンリンク時間スロット割当てを前記アクティブスタイラスに送信する。
【0008】
他の態様によれば、前記スタイラス機能情報は、a)予め定義された前記アクティブスタイラスの機能に関する機能情報、およびb)ユーザにより調整可能な前記アクティブスタイラスの設定に関する設定情報のうちの少なくとも一方を含む。
【0009】
他の態様によれば、前記機能情報は、i)前記アクティブスタイラスがスタイラスオリエンテーションを検知することが可能であるか否か、ii)前記アクティブスタイラスがバレルプレッシャを検知することが可能であるか否か、iii)前記アクティブスタイラスがベンダ固有の特徴を有するか否か、iv)前記アクティブスタイラスが推奨色を有するか否か、およびv)前記アクティブスタイラスのグローバルIDのうちの少なくとも1つを含む。
【0010】
他の態様によれば、前記設定情報は、i)スタイラス線幅、ii)スタイラス先端タイプ、iii)色、およびiv)前記アクティブスタイラスの固有識別番号のうちの少なくとも1つを含む。
【0011】
他の態様によれば、前記設定情報は、前記アクティブスタイラス上に配置された1つまたは複数のスイッチを用いてユーザにより変更可能である前記アクティブスタイラスの固有識別番号を含む。
【0012】
他の態様によれば、前記ダウンリンク時間スロット割当ては、i)フレーム内のいずれのダウンリンク時間スロットを前記アクティブスタイラスに割り当てるか、およびii)前記アクティブスタイラスのどのような種類のパケットをどのようなダウンリンク時間スロットにおいて送信するかのうちの少なくとも一方を含む。
【0013】
他の態様によれば、前記ダウンリンク時間スロット割当ては、i)前記アクティブスタイラスによって用いられる開始時間スロットを示すオフセット値、およびii)前記開始時間スロットから開始する前記アクティブスタイラスに割り当てられた時間スロット間の間隔を示す間隔値を含む。
【0014】
他の態様によれば、前記ダウンリンク時間スロット割当てを受信した前記アクティブスタイラスは、前記ダウンリンク時間スロット割当てに従って割り当てられた前記時間スロットにおいてパケットを送信する。前記パケットは、i)前記アクティブスタイラスの動作状態を示す動作データを含むデータパケット、およびii)前記センサコントローラによって前記センサに対する前記アクティブスタイラスの位置を算出するのに用いられる非データパケットのうちの一方からなり得る。
【0015】
他の態様によれば、前記データパケットに含まれる前記動作データは、i)スタイラス先端圧力データ、ii)バレルプレッシャデータ、iii)スタイラスオリエンテーションデータ、iv)スタイラスバレルスイッチ状態データ、およびv)スタイラスバッテリレベルのうちの1つまたは複数を含む。
【0016】
別の態様によれば、アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合されるセンサコントローラが提供される。前記センサコントローラは、プロセッサであって、動作中に、前記アクティブスタイラスと前記センサコントローラとの間の通信に供される時間スロットからなるデータフレームを定義し、前記アクティブスタイラスから前記アクティブスタイラスのスタイラス機能情報を含む信号を受信し、受信した前記スタイラス機能情報に基づいて、前記アクティブスタイラスによって前記センサコントローラにパケットを送信するのに用いられるダウンリンク時間スロット割当てを決定するプロセッサを備える。前記センサコントローラは、さらに、前記プロセッサに結合した送信コントローラを備える。前記送信コントローラは、動作中に、前記アクティブスタイラスへの前記ダウンリンク時間スロット割当ての送信を発生させる。
【0017】
他の態様によれば、アクティブスタイラスが提供される。前記アクティブスタイラスは、レシーバであって、動作中に、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラから送信される周期的なビーコン信号を受信するレシーバを備える。前記ビーコン信号は、前記アクティブスタイラスと前記センサコントローラとの間の双方向通信において用いられる時間スロットに対するタイミング基準として機能する。前記アクティブスタイラスは、さらに、前記ビーコン信号を検出するとともに前記アクティブスタイラスのスタイラス機能情報を含む信号を生成するように前記レシーバに結合したプロセッサを備える。前記アクティブスタイラスは、さらに、前記スタイラス機能情報を含む前記信号を前記センサコントローラに送信するように前記プロセッサに結合したトランスミッタを備える。前記アクティブスタイラスの前記レシーバは、動作中に、前記センサコントローラからダウンリンク時間スロット割当てを受信する。前記アクティブスタイラスの前記トランスミッタは、動作中に、前記ダウンリンク時間スロット割当てに従って前記アクティブスタイラスに割り当てられた前記時間スロットにおいて前記センサコントローラにパケットを送信する。
【0018】
他の態様によれば、(a)センサと、(b)前記センサに結合したセンサコントローラと、(c)アクティブスタイラスとを備えるシステムが提供される。前記センサコントローラは、周期的なビーコン信号の送信を発生させる送信コントローラと、前記送信コントローラに結合したセンサプロセッサとを備える。前記アクティブスタイラスは、前記周期的なビーコン信号を受信するレシーバを備える。前記アクティブスタイラスは、さらに、前記ビーコン信号を検出するとともに前記アクティブスタイラスのスタイラス機能情報を含む信号を生成するように前記レシーバに結合したスタイラスプロセッサを備える。前記アクティブスタイラスは、さらに、前記スタイラス機能情報を含む前記信号を前記センサコントローラに送信するように前記スタイラスプロセッサに結合したトランスミッタを備える。前記センサコントローラは、受信した前記アクティブスタイラスの前記スタイラス機能情報に基づいて、前記アクティブスタイラスにより前記センサコントローラにパケットを送信するのに用いられるダウンリンク時間スロット割当てを決定し、前記ダウンリンク時間スロット割当てを前記アクティブスタイラスに送信する。
【0019】
本発明の他の態様は、前記検知領域に入る1つまたは複数のアクティブスタイラスの前記機能情報をセンサコントローラが即座に判別することによって前記スタイラスとの双方向通信を開始することを可能とする技術的解決手段を提供する。本態様は、異なる機能情報を有する異なるアクティブスタイラスをサポートするユニバーサルセンサコントローラインタフェースを提供するのに特に適する。
【0020】
一態様によれば、アクティブスタイラスをセンサコントローラとインタフェースする方法が提供される。前記センサコントローラは、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合している。前記センサコントローラは、前記アクティブスタイラスのスタイラス機能情報をキャッシュする。前記スタイラス機能情報は、前記センサ上に前記アクティブスタイラスからの入力を表示するように実行されるアプリケーションプログラムにより用いられるインキング処理のための設定情報を含む。前記アクティブスタイラスは、前記スタイラス機能情報のハッシュ値を生成し、前記アクティブスタイラスが前記センサコントローラの検知領域に入るときに前記ハッシュ値を前記センサコントローラに送信する。
【0021】
他の態様によれば、前記アクティブスタイラスと前記センサとは静電容量結合する。
【0022】
他の態様によれば、前記インキングのための設定情報は、i)スタイラス線幅、ii)スタイラス先端タイプ、iii)色、およびiv)前記アクティブスタイラスの固有識別番号のうちの少なくとも1つを含む。
【0023】
他の態様によれば、前記インキングのための前記設定情報は、前記アクティブスタイラス上に配置された1つまたは複数のスイッチを用いてユーザにより変更可能である、色指標または前記アクティブスタイラスの固有識別番号を含む。
【0024】
他の態様によれば、前記アクティブスタイラスの固有識別番号、スタイラス線幅、スタイラス先端タイプ、および前記アクティブスタイラスの色を含む前記スタイラス機能情報に基づいて前記ハッシュ値を生成する。
【0025】
他の態様によれば、前記センサコントローラは、前記アクティブスタイラスから受信した前記ハッシュ値が、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に一致するか否かを判定する。前記ハッシュ値が一致する場合は、前記センサコントローラは、前記センサコントローラ内にキャッシュされた一致する前記スタイラス機能情報を用いる。前記ハッシュ値が一致しない場合は、前記センサコントローラは、前記スタイラス機能情報を前記センサコントローラに送信して前記センサコントローラ内にキャッシュさせるよう前記アクティブスタイラスに要求する読出しコマンドを送信する。
【0026】
他の態様によれば、前記センサコントローラは、前記アクティブスタイラスから受信した前記ハッシュ値が、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に一致するか否かを判定する。前記ハッシュ値が一致する場合は、前記センサコントローラは、前記センサコントローラ内にキャッシュされた前記スタイラス機能情報に対応する第2のハッシュ値を前記アクティブスタイラスに送信する。前記アクティブスタイラスは、前記センサコントローラから受信した前記第2のハッシュ値が前記アクティブスタイラスの前記スタイラス機能情報の第2のハッシュ値に対応するか否かを判定する。
【0027】
他の態様によれば、アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合されるセンサコントローラが提供される。前記センサコントローラは、前記アクティブスタイラスに信号を送信する/前記アクティブスタイラスから信号を受信するように構成されたトランスミッタ/レシーバを備える。前記センサコントローラは、さらに、前記アクティブスタイラスのスタイラス機能情報を記憶するように構成されたキャッシュを備える。前記センサコントローラは、さらに、前記トランスミッタ/レシーバおよび前記キャッシュに結合したプロセッサを備える。前記プロセッサは、動作中に、前記アクティブスタイラスから前記スタイラス機能情報のハッシュ値を受信し、受信した前記ハッシュ値が前記センサコントローラの前記キャッシュに記憶された前記スタイラス機能情報に一致する場合は、キャッシュされた前記機能情報を用いる。
【0028】
他の態様によれば、アクティブスタイラスが提供される。前記アクティブスタイラスは、レシーバであって、動作中に、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラから送信される周期的なビーコン信号を受信するレシーバを備える。前記アクティブスタイラスは、さらに、前記ビーコン信号を検出するとともにスタイラス機能情報のハッシュ値を生成するように前記レシーバに結合したプロセッサを備える。前記スタイラス機能情報は、前記センサ上に前記アクティブスタイラスからの入力を表示するように前記センサコントローラと協働して動作するホストシステム上のアプリケーションプログラムにより用いられるインキング処理のための設定情報を含む。前記アクティブスタイラスは、さらに、前記ハッシュ値を前記センサコントローラに送信するように前記プロセッサに結合したトランスミッタを備える。
【0029】
他の態様によれば、(a)センサと、(b)前記センサに結合したセンサコントローラと、(c)アクティブスタイラスとを備えるシステムが提供される。前記センサコントローラは、周期的なビーコン信号の送信を発生させる送信コントローラと、前記送信コントローラに結合したセンサプロセッサとを備える。前記アクティブスタイラスは、レシーバであって、動作中に、センサコントローラから送信される前記周期的なビーコン信号を受信するレシーバを備える。前記アクティブスタイラスは、さらに、前記ビーコン信号を検出するとともに前記アクティブスタイラスのスタイラス機能情報を含む信号を生成するように前記レシーバに結合したスタイラスプロセッサを備える。前記アクティブスタイラスは、さらに、スタイラス機能情報のハッシュ値を前記センサコントローラに送信するように前記スタイラスプロセッサに結合したトランスミッタを備える。前記スタイラス機能情報は、前記センサ上に前記アクティブスタイラスからの入力を表示するように実行されるアプリケーションプログラムにより用いられるインキング処理のための設定情報を含む。
【0030】
本発明のさらに他の態様は、前記検知領域に入る1つまたは複数のアクティブスタイラスの前記機能情報をセンサコントローラが即座に判別することによって前記スタイラスとの双方向通信を開始することを可能とする技術的解決手段を提供する。本態様は、異なる機能情報を有する異なるアクティブスタイラスをサポートするユニバーサルセンサコントローラインタフェースを提供するのに特に適する。
【0031】
一態様によれば、アクティブスタイラスからのオリエンテーションデータを、センサコントローラであって前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラに送信する方法が提供される。本方法において、前記アクティブスタイラスは前記センサコントローラに、スタイラス機能情報であって前記アクティブスタイラスに1つまたは複数のオリエンテーションセンサが備えられているか否かを示すスタイラス機能情報を送信する。前記1つまたは複数のオリエンテーションセンサは、前記アクティブスタイラスに備えることが可能であって複数種類のオリエンテーションデータをそれぞれ計測するように構成された複数のオリエンテーションセンサの中から、前記アクティブスタイラスに備えられる。前記センサコントローラは、前記1つまたは複数のオリエンテーションセンサが前記アクティブスタイラスに備えられていることを示す、受信した前記スタイラス機能情報に基づいて、前記1つまたは複数のオリエンテーションセンサによって計測される対応した1つまたは複数の種類のオリエンテーションデータを送信するよう前記アクティブスタイラスに要求する。前記アクティブスタイラスは、前記センサコントローラからの前記要求に応答して、前記1つまたは複数の種類のオリエンテーションデータを送信する。
【0032】
前記複数のオリエンテーションセンサに、チルトセンサ、ツイストセンサ、加速度計、ジャイロスコープ、および地磁気計が含まれてもよく、それらから1つまたは複数のオリエンテーションセンサが選択されて前記アクティブスタイラスに備えられる(サポートされる)。例えば、前記アクティブスタイラスは、加速度計、ジャイロスコープ、および地磁気計の組合せからなる3軸内蔵計測ユニット(IMU)を備え得る。
【0033】
一態様によれば、前記アクティブスタイラスは、i)オリエンテーションセンサの種類を示すセンサフラグと、ii)示された前記種類のオリエンテーションセンサにより1時間スロットにおいて計測されるオリエンテーションデータとを1つのレポートにおいて送信することによって、前記1つまたは複数の種類のオリエンテーションデータを送信する。
【0034】
別の態様によれば、前記アクティブスタイラスは、互いに同時にまたは時間的に接近して計測される2つ以上の種類のオリエンテーションデータを送信する。前記2つ以上の種類のオリエンテーションデータは、前記データが1つのグループを形成することを示すエンドビットにそれぞれ関連付けられる。前記センサコントローラは、1つのグループを形成する前記データを受信して組み合わせ、組み合わせた前記データを、センサフュージョンなどのさらなる処理に備えてホストプロセッサに送信する。
【0035】
別の態様によれば、アクティブスタイラスによって実行される方法が提供される。本方法において、前記アクティブスタイラスは、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラにスタイラス機能情報を送信する。前記スタイラス機能情報は、複数種類のオリエンテーションデータをそれぞれ計測するように構成された複数のオリエンテーションセンサの中から1つまたは複数のオリエンテーションセンサが前記アクティブスタイラスに備えられているか否かを示す。前記アクティブスタイラスは、前記センサコントローラから受信したタイミング情報に基づいて、前記アクティブスタイラスに備えられた前記1つまたは複数のオリエンテーションセンサによってそれぞれ計測される1つまたは複数の種類のオリエンテーションデータを前記センサコントローラに送信する。
【0036】
別の態様によれば、アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラによって実行される方法が提供される。本方法において、前記センサコントローラは前記アクティブスタイラスからスタイラス機能情報を受信する。前記スタイラス機能情報は、複数種類のオリエンテーションデータをそれぞれ計測するように構成された複数のオリエンテーションセンサの中から1つまたは複数のオリエンテーションセンサが前記アクティブスタイラスに備えられているか否かを示す。前記センサコントローラは、前記アクティブスタイラスに含まれている前記スタイラス機能情報に示された前記1つまたは複数のオリエンテーションセンサによって計測される対応した1つまたは複数の種類のオリエンテーションデータを送信するよう前記アクティブスタイラスに要求する。
【0037】
さらに別の態様によれば、プロセッサ、トランスミッタ、およびレシーバを備えるアクティブスタイラスを提供する。前記プロセッサは記憶装置に結合しており、前記記憶装置は、複数種類のオリエンテーションデータをそれぞれ計測するように構成された複数のオリエンテーションセンサの中から1つまたは複数のオリエンテーションセンサが前記アクティブスタイラスに備えられているか否かを示すスタイラス機能情報を記憶する。前記トランスミッタは前記プロセッサに結合しており、前記アクティブスタイラスからの入力を受け付けるように構成されたセンサに結合したセンサコントローラに前記スタイラス機能情報を送信する。前記レシーバは、前記プロセッサに結合しており、前記アクティブスタイラスに備えられた前記1つまたは複数の種類のオリエンテーションセンサによってそれぞれ計測される1つまたは複数の種類のオリエンテーションデータを送信するよう前記センサコントローラから要求を受信する。
【図面の簡単な説明】
【0038】
【
図1】アクティブスタイラスおよび電子装置(例えば、タブレットコンピュータ)を備え、該電子装置がセンサ、該センサに結合したセンサコントローラ、および該センサコントローラに結合した電子装置のシステムコントローラ(ホストプロセッサ)を備える、システム全体を示す図である。
【
図2A】アクティブスタイラス例の機能ブロック図である。
【
図2B】センサコントローラ例の機能ブロック図である。
【
図3】スタイラスとセンサコントローラとの間の双方向通信に用いられ、フレームが16個の(16)時間スロットs0~s15に分割されるフレームフォーマット例である。
【
図4A】予め定義された(予め設定された)アクティブスタイラスの機能に関する機能情報とユーザ設定可能なアクティブスタイラスの設定に関する設定情報とを含む、アクティブスタイラスのスタイラス機能情報の種類例を列挙したテーブルである。
【
図4B】アクティブスタイラスによって該アクティブスタイラスの機能情報をセンサコントローラに送信するのに用いられるデータフォーマット例を列挙したテーブルである。
【
図4C】アクティブスタイラスによって該アクティブスタイラスのオリエンテーション検出機能に関する機能情報を送信するのに用いられるオリエンテーションコード例を列挙したテーブルである。
【
図4D】機能情報、特にアクティブスタイラスのオリエンテーション検出機能を列挙した他の例のテーブルである。
【
図4E】予め定義されたアクティブスタイラスの機能に関するスタイラス機能情報の3つの例を説明する。
【
図5A】ダウンリンク時間スロット割当てにより設定されたスケジュールに従ってアクティブスタイラスからセンサコントローラに送信される、アクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。
【
図5B】ある種類の動作データ、すなわちIMU(内蔵計測ユニット(inertial measurement unit))データに対するダウンリンクデータパケットフォーマットを示すテーブルである。
【
図5C】センサコントローラによってポーリングされる(要求される)とセンサコントローラに送信される、アクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。
【
図6】アクティブスタイラスの処理フロー例を示すフローチャートである。
【
図7】センサコントローラの、特にアクティブスタイラスとのペアリング動作を実行するフロー例を示すフローチャートであって、センサコントローラはアクティブスタイラスからスタイラス機能情報(例えば、設定情報)を示すハッシュ値を受信し、受信したハッシュ値を認識するか否かを判定し、そうであれば、ペアリング動作を迅速化するフローチャートである。
【
図8A】センサコントローラがアクティブスタイラスにビーコン信号(BS)を送信し、アクティブスタイラスがそれに応答してスタイラス機能情報(CPまたはハッシュ#1)を含む信号をセンサコントローラに返信するフレームフォーマット例を示す。
【
図8B】センサコントローラがアクティブスタイラスにビーコン信号(BS)を送信し、アクティブスタイラスがそれに応答してスタイラス機能情報(CPまたはハッシュ#1)を含む信号をセンサコントローラに返信するフレームフォーマット例を示す。
【
図9A】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図9B】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図9C】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図9D】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図9E】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図9F】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図9G】センサコントローラによって特定された異なる6種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
【
図10】アクティブスタイラスとセンサコントローラとの間のペアリング動作例を示すフローチャートであって、アクティブスタイラスはアクティブスタイラスの機能情報を示すハッシュ値を送信し、センサコントローラが受信したハッシュ値を認識するか否かを判定し、認識する場合は、ペアリング動作を迅速化するフローチャートである。センサコントローラは、さらに、受信した機能情報が以前にペアリングしたことのあるスタイラスからのものであることの別の検証に、第2のハッシュ値を用いる。
【発明を実施するための形態】
【0039】
図1は、アクティブスタイラス100および電子装置(例えば、PC、タブレットコンピュータ、スマートフォン)3を含むシステム全体を示す。電子装置3は、センサ201、センサ201に結合したセンサコントローラ200、およびセンサコントローラ200に結合した電子装置3のシステムコントローラ(ホストプロセッサ)300を備える。
【0040】
PC、タブレットコンピュータ、スマートフォンなどの電子装置3は、典型的には、センサ201の下に存在する、または上に存在するスクリーンを備え、ユーザはアクティブスタイラス100を用いて該スクリーン上に文字および図形を手書きする。ここで用いるアクティブスタイラスは、電子回路、バッテリまたは内蔵のエネルギーコンジットなどの電源105を含むスタイラスである。センサ201は、容量性タッチ/スタイラスセンサ、抵抗式タッチ/スタイラスセンサ、電磁共鳴スタイラスセンサ、光学式スタイラスセンサ、超音波スタイラスセンサなどの任意の適当な公知のスタイラス検知センサからなり得る。スタイラスセンサもあれば、アクティブスタイラスおよび指タッチの両方を検出することが可能なセンサもある。以下で
図2Bを参照して詳述するセンサコントローラ200は、センサ201の動作を制御し、アクティブスタイラス100との双方向通信を実行し、さらにホストプロセッサ300と通信する。例えば、センサコントローラ200は、アクティブスタイラス100からの手書き入力データを処理してセンサ201上においてアクティブスタイラス100により示された(指し示された)位置の(X,Y)座標および色を判別し、該(X,Y)座標および色情報を電子装置3のホストプロセッサ300に転送する。
【0041】
以下で
図2Aを参照して詳述するアクティブスタイラス100は、例えばテーブル(TBL)の形態で該スタイラスのスタイラス機能情報を記憶するメモリ/キャッシュを有するスタイラス機能情報マネージャ110を備える。以下でより詳細に説明するように、スタイラス機能情報は、典型的には変更可能でない予め定義された(例えば、製造者により設定された)スタイラスの機能に関する機能情報と、ユーザにより調整可能なスタイラスの設定に関する設定情報とを含み得る。スタイラス機能情報マネージャ110は、ユーザが例えばスタイラス100に備えられたスイッチ(ボタン)111を用いてスタイラス色およびスタイラス線幅などのスタイラス設定を変更するたびに、設定情報を更新する。
図1に、1つのテイルボタン111Aおよび1つのサイドボタン111Bからなる、このような2つのボタンを示す。アクティブスタイラス100は、さらに、スタイラス(ペン)先端圧力データおよびスタイラスオリエンテーションデータ(例えば、センサ表面に対してスタイラスがどの程度ツイストまたはチルトしているか)などのアクティブスタイラスの動作状態を示す動作データを予め作成するデータマネージャ112を備える。
【0042】
スタイラス機能情報マネージャ110およびデータマネージャ112は、両方とも、送信(TX)回路および受信(RX)回路を備える通信モジュール130に結合している。通信モジュール130は、以下でより詳細に説明するように、アクティブスタイラス100のスタイラス機能情報および動作データをセンサコントローラ200に送信し、センサコントローラ200から(ビーコン信号内の)種々のコマンドおよび他の情報を受信する。本双方向通信プロトコルにおいて、センサコントローラ200はマスタ装置であり、アクティブスタイラス100はスレーブ装置である。本開示において、センサコントローラ200からアクティブスタイラス100への送信方向を「アップリンク(uplink)」と称し、アクティブスタイラス100からセンサコントローラ200への送信方向を「ダウンリンク(downlink)」と称する。
【0043】
図1に概略的に示すように、アクティブスタイラス100とセンサコントローラ200との間の典型的な双方向通信フローは、アクティブスタイラス100が下向き矢印によって示されるペンダウン動作の間にセンサコントローラ200の検知領域(SZ)に入ることによって開始される。アクティブスタイラス100が検知領域内に入ると、アクティブスタイラス100はセンサコントローラ200からセンサ201を介して周期的に送信されるビーコン信号を検出し得る。ビーコン信号を検出すると、アクティブスタイラス100は、スタイラス機能情報マネージャ110から受信したスタイラス機能情報を含む応答信号を送信する。以下で
図10を参照して詳述するように、アクティブスタイラス100の設定情報をハッシュ化して、1時間スロットでセンサコントローラ200に送信することができる利点がある、固定された(より小さい)サイズのハッシュ値(「ハッシュ#1(Hash#1)」)を生成し得る。ハッシュ#1には、対応する固定サイズのハッシュ値(「ハッシュ#2(Hash#2)」)が存在する。アクティブスタイラス100が以前にセンサコントローラ200とペアリングしたことがあれば、アクティブスタイラス100およびセンサコントローラ200の両方が、アクティブスタイラス100がセンサコントローラ200とペアリングしたときのアクティブスタイラス100の特定の設定情報から算出されるハッシュ#1およびハッシュ#2を有する。それゆえ、センサコントローラ200が受信したハッシュ#1を認識すれば、センサコントローラ200が以前にアクティブスタイラス100とペアリングしており、したがって特定の設定情報を含むアクティブスタイラス100のスタイラス機能情報が既知であることが、センサコントローラ200に分かる。センサコントローラ200は、次いで、以前にアクティブスタイラス100に割り当てられたのと同じダウンリンク時間スロット割当てを用いてアクティブスタイラス100との双方向通信を開始し得る。さらに、センサコントローラ200は、受信したハッシュ#1に対応するハッシュ#2をアクティブスタイラス100に返信してセンサコントローラ200がアクティブスタイラス100を正しく認識したことを検証し得る。以下でより詳細に説明するように、ハッシュ#1の使用によって、アクティブスタイラス100がセンサコントローラ200の検知領域に再入するたびに、アクティブスタイラス100とセンサコントローラ200との間のペアリング処理が迅速化され、このことはアクティブスタイラス100が繰り返し、検知領域から出て(「ペンアップ(Pen up)」矢印を参照)検知領域に再入する(「ペンダウン(Pen down)」矢印を参照)場合に特に有利な技術的特徴である。
【0044】
本明細書で用いる「ペアリング(pairing)」動作とは、センサコントローラ200からの開始(発見)ビーコン信号を検出したアクティブスタイラス100からの応答信号の送信によって開始され、センサコントローラ200からの、アクティブスタイラス100に対するダウンリンク時間スロット割当てを含む他のビーコン信号の送信によって終了する処理のことを指す。センサコントローラ200は、アクティブスタイラスのスタイラス機能情報に照らして対象としているアクティブスタイラスに対するダウンリンク時間スロット割当てを決定することによって、スタイラス機能情報を十分にサポートするアクティブスタイラスとの固有の通信リンクを確立する。こうして、ペアリング動作の終了時に、アクティブスタイラスは、新たに確立された固有の通信リンクを用いてセンサコントローラとの双方向通信を開始し得る。
【0045】
ハッシュ#1の使用は「迅速インキング(fast inking)」を達成することにも有利である。アプリケーションプログラムが描画を開始することが可能になるには、該アプリケーションプログラムがスクリーン上に描画しようとする線のパラメータを知る必要がある。これらのパラメータは、例えば、線の色またはブラシスタイル(エアブラシ、チョークなど)を含む。ハッシュ#1の使用によって、センサコントローラは、検知領域に入った特定のスタイラスに対するこれらのパラメータをセンサコントローラがキャッシュ済みであることを即座に認識し、アプリケーションプログラムがほぼ瞬時に描画、すなわち「インキング処理(inking)」を開始するのにこれらのパラメータを利用可能とすることができる。
【0046】
図2Aは、例としてのアクティブスタイラス100の機能ブロック図である。アクティブスタイラス100は、アクティブスタイラス100の先端において、TX/RX電極115、TX/RX電極115に結合したスイッチSW、受信回路117、送信回路119、およびマイクロコントローラユニット(MCU)120を備える。MCU120は、ROMおよびRAMを内蔵するマイクロプロセッサからなり、規定のプログラムに従って動作するように構成されている。スイッチSWは、MCU120からのスイッチ制御信号SWCにより指示されて、TX/RX電極115を受信端子Rと送信端子Tとのいずれかに結合させる。最初に、アクティブスタイラス100がセンサコントローラ200からのビーコン信号を待ち受ける間、スイッチSWはTX/RX電極115を受信端子Rに接続する。受信回路117は、TX/RX電極115からの信号を受信および処理してMCU120により使用可能なデジタル形式で出力するのに必要な電子構成部品を備える。MCU120がセンサコントローラ200からのビーコン信号を検出すると、MCU120は、送信回路119と協働して応答信号(例えば、ACK信号)を生成しておき、さらにスイッチ制御信号SWCをスイッチSWに送出してTX/RX電極115を送信端子Tに接続させることにより、該応答信号をTX/RX電極115を介してセンサコントローラ200に送信する。
【0047】
送信回路119は、MCU120からの信号を受信および処理してTX/RX電極115を介しセンサコントローラ200に送信されるように出力するのに必要な電子構成部品を備える。例えば、送信回路119は、MCU120により規定された周波数のキャリア信号を生成し、該キャリア信号を、センサコントローラ200がアクティブスタイラス100により示された位置を判別する(算出する)のに用いる「位置パケット(position packets)」として無変調で出力し得る。これに代えて、送信回路119は、PSK(位相偏移)、D-BPSK(差動二相PSK)、QAM(直交振幅変調)、およびDSSS(直接シーケンススペクトラム拡散)などの任意の適当な変調方式を用いて、設定情報を示すハッシュ#1などのアクティブスタイラス100のスタイラス機能情報によりキャリア信号を変調してもよい。次いで、スタイラス機能情報により変調された信号をTX/RX電極115を介してセンサコントローラ200に送信する。
【0048】
送信回路119は、アクティブスタイラス100の動作状態を示す動作データなどのスタイラス機能情報以外の情報によりキャリア信号を変調し得る。動作データは、例えば、スタイラス(ペン)先端圧力データ、スタイラスバレルプレッシャデータ、スタイラスオリエンテーション(例えば、ツイスト/チルト)データ、スタイラススイッチステータス、およびスタイラスバッテリレベルを含み得る。このような動作データを生成するために、アクティブスタイラス100は、スタイラス先端に加わる圧力を検知するように構成されたスタイラス(ペン)先端圧力センサ122a(例えば、可変キャパシタからなる)、スタイラスバレルに加わる圧力を検知するように構成されたバレルプレッシャセンサ、9軸以下の軸を有するIMU(内蔵計測ユニット)122b(3軸ジャイロスコープ、3軸加速度計、および3軸地磁気計のうちの1つまたは複数の組合せから構成される)、センサ201のX電極(またはY電極)の各々の方向に対するアクティブスタイラス100の軸の周りのアクティブスタイラス100のツイスト/回転を検知するように構成されたツイストセンサ122c、センサ201の表面に対するアクティブスタイラス100の軸のX方向チルトおよびY方向チルトを検知するように構成されたチルトセンサ122dなどの1つまたは複数のセンサ122を備える(スタイラス先端圧力センサ122a以外のセンサ122b~122dの図を省略した)。MCU120および送信回路119は、これらのセンサからの出力を、TX/RX電極115を介してセンサコントローラ200に送信する「データパケット」に予め整える。該データパケットをセンサコントローラ200に送信するために、MCU120は、TX/RX電極115を送信端子Tに接続させるスイッチ制御信号SWCをスイッチSWに送出する。
【0049】
種々のアクティブスタイラスは種々の検知機能を有しており、多様なセンサを取りそろえるように装備したセンサが存在する一方で、スタイラス先端圧力センサ122aのみを備えたセンサも存在する。以下でより詳細に説明するように、本発明は、検知領域に入る、対象としているアクティブスタイラスの、個々の機能をセンサコントローラ200が即座に確認することを可能とするによって、スタイラスの機能をサポートする固有の通信リンクを(特定のダウンリンク時間スロット割当てに基づいて)構成する双方向通信プロトコルを提案する。
【0050】
図2Bは、例としてのセンサコントローラ200の機能ブロック図である。センサコントローラ200は電子装置3の一部であって(
図1を参照)、X電極201XおよびY電極201Yを備えるセンサ201に結合しており、センサ201上においてアクティブスタイラス100が様々な手書き動作を行う。センサコントローラ200は、さらに、電子装置3のホストプロセッサ300に結合している。
【0051】
センサコントローラ200は、送信回路210、セレクタ220、受信回路230、論理ユニット235、およびMCU(マイクロコントローラユニット)240を備える。MCU240は、ROMおよびRAMを内蔵するマイクロプロセッサからなり、規定のプログラムに従って動作するように構成されている。MCU240は、論理ユニット235に、送信回路210、セレクタ220、および受信回路230の動作を制御する制御信号伝達(ctr、sTRx、sTRy、selX、selYなど)を発するように指示する。MCU240は、受信回路230から受信したデジタルデータを処理して、センサ201のアクティブスタイラス100により示された位置のX座標およびY座標、色、不透明度(暗さ)などを判別/算出し、例えば、表示のために電子装置3のホストプロセッサ300に算出した位置データを出力する。
【0052】
送信回路210は、MCU240からの信号を、センサ201のマトリクス電極を介してアクティブスタイラス100に送信されるように受信および処理して出力するのに必要な電子構成部品を備える。具体的には、MCU240の制御下において、送信回路210は、周期的なビーコン信号を生成してセンサ201のマトリクス電極を介してアクティブスタイラス100に送信する。以下でより詳細に説明するように、ビーコン信号は、センサコントローラ200を発見するためにアクティブスタイラスの近傍で用いられ(検出され)、アクティブスタイラスがセンサコントローラ200と同期するタイミング基準として機能する。さらに、ビーコン信号は、上述のように、アクティブスタイラス100からハッシュ#1を受信したセンサコントローラ200が検証用にアクティブスタイラス100に返信するハッシュ#2を含み得る。ビーコン信号は、アクティブスタイラスに対して決定されるダウンリンク時間スロット割当てを含むことが可能であり、それによりどのようなダウンリンク時間スロットを用いてどのような種類のパケットをセンサコントローラに送信するかをアクティブスタイラスに通知する。またさらに、ビーコン信号は、アクティブスタイラス100の動作を制御する種々のコマンドを含み得る。例えば、ビーコン信号は、センサコントローラ200に(付加的な)スタイラス機能情報を送信するようにアクティブスタイラス100に要求する読出しコマンド、またはアクティブスタイラス100に関する機能情報を設定する(書き込む)書込みコマンドを含み得る。ビーコン信号は、さらに、アクティブスタイラスのバッテリレベルなどのアクティブスタイラスの動作データをセンサコントローラに送信するようアクティブスタイラスに要求する(ポーリングする)ポーリングコマンドを含み得る。送信回路210は、ビーコン信号を形成するキャリア信号を、PSK、D-BPSK、QAM、およびDSSSなどの任意の適当な変調方式を用い、ハッシュ#2によって、ダウンリンク時間スロット割当てによって、またはMCU240から受信したこれらの種々のコマンドによって変調し得る。
【0053】
受信回路230は、アクティブスタイラス100から受信した信号を処理してセンサ201のマトリクス電極を介しMCU240により使用可能なデジタル形式で出力するのに必要な電子構成部品を備える。例えば、受信回路230は、アクティブスタイラス100から受信した、(ビーコン信号に応答した)応答信号、(アクティブスタイラスの動作データを含む)データパケット、および位置パケットを処理してMCU240へと出力する。センサ201がアクティブスタイラス100に加えて指タッチを検出することが可能である場合、受信回路230は、アクティブスタイラス100から送信された信号に加えて指タッチを示す信号をセンサ201のマトリクス電極を介して受信および処理して、アクティブスタイラス100によって示された位置に加えて指タッチ位置を判別するMCU240へと出力する。
【0054】
セレクタ220は、論理ユニット235からの制御信号伝達に基づいて、送信モードと受信モードとの間でセンサ201の動作モードを切り替える。セレクタ220は、スイッチ222xおよび222yと電極選択回路224xおよび224yとを備える。論理ユニット235からの制御信号伝達sTRyおよびsTRxに基づいて、スイッチ222x、222yは、センサ201のX電極201XおよびY電極201Yをそれぞれ、送信回路210に結合した送信端子Tと受信回路230に結合した受信端子Rとのいずれかに接続する。送信モードでは送信回路210に結合した電極を用いてアクティブスタイラス100に信号を送信し、受信モードでは受信回路230に結合した電極を用いてアクティブスタイラス100からの信号を受信する。さらに、アクティブスタイラス100に信号を送信する、またはアクティブスタイラス100から信号を受信するために、制御信号伝達selX、selXに基づいて、電極選択回路224x、224yは、それぞれX電極201X、Y電極201Yを選択する。論理ユニット235は、さらに、MCU240に指示されて、送信回路210および受信回路230に制御信号伝達「ctr」を送出して送信回路210および受信回路230の動作を制御する。
【0055】
図3は、アクティブスタイラス100とセンサコントローラ200との間の双方向通信に用いられるフレームフォーマット例であり、双方向通信リソースは、時間軸に沿ってフレームに分割されると共に周波数軸に沿って異なる周波数に分割される。各フレームは、さらに、時間軸に沿って16個の(16)時間スロットs0~s15に分割され、各時間スロットは、例えば20ビット(16情報ビットに4CRCビットが加わる)まで収容するサイズに定められている。一例として、フレーム長は16msecであり、時間スロット長は1msecである。なお、フレームを16より少ないまたは多い時間スロットに分割してもよく、本発明はここで説明する16時間スロットの例に限定されない。例えば、16msecのフレームを64時間スロットに分割して、各時間スロットを250μsecの長さとしてもよい。
【0056】
実施例として、各フレームの開始時における1つまたは複数の時間スロットは、センサコントローラ200によって、周期的なビーコン信号(BS)をアクティブスタイラス100に送信するのに「アップリンク(uplink)」において用いられる。したがって、フレームを、2つの連続するビーコン信号の開始時の間の間隔とみなし得る。各フレームにおける他の時間スロットは、以降で
図8A~9Gの種々の例に示すように、アクティブスタイラス100によって、信号(例えば、ビーコン信号に対する応答信号)、データパケット、および位置パケットをセンサコントローラ200に送信するのに「ダウンリンク(downlink)」において用いられる。図示しないが、アップリンク時間スロット(
図3におけるs0)とダウンリンク時間スロット(
図3におけるs1~s15)との間に、アップリンク送信とダウンリンク送信との間の衝突を避けるように、アップリンクにもダウンリンクにも送信がスケジューリングされない期間であるギャップ時間スロットを設けてもよい。
【0057】
ビーコン信号は、近傍のアクティブスタイラスがセンサコントローラ200を発見することができるように、またセンサコントローラ200とアクティブスタイラス100との間の双方向通信に用いられる時間スロットのタイミング基準として機能するようにセンサコントローラ200によって送信される周期信号である。したがって、通常の実施形態において、ビーコン信号は、すべてのアクティブスタイラスによって検出可能となるようにすべての周波数で送信される。各アクティブスタイラス100はビーコン信号を待ち受け、アクティブスタイラス100がビーコン信号を検出した後に、アクティブスタイラス100はビーコン信号に基づいてアクティブスタイラス100のタイミング基準を設定する。センサコントローラ200を発見するアクティブスタイラス100によって検出される最初のビーコン信号に続くビーコン信号は、アクティブスタイラス100が以前にセンサコントローラ200とペアリングしたことを検証するのに用いられるハッシュ#2などの種々の情報と、ペアリング動作中およびペアリング動作後にアクティブスタイラス100の動作を制御するコマンドとを含み得る。アクティブスタイラス100に宛てられたハッシュ#2またはコマンドを含むビーコン信号は、典型的には、いずれのビーコン信号が(存在し得る他のアクティブスタイラスにではなく)アクティブスタイラス100に宛てられているかをアクティブスタイラス100が識別することができるように、アクティブスタイラス100のスタイラスIDを含む。センサコントローラ200からのビーコン信号は、さらに、典型的には、センサコントローラ200のセンサコントローラIDを含む。
【0058】
種々の実施形態に従って、センサコントローラ200は、センサコントローラ200の検知領域に入りつつある各アクティブスタイラス100の機能情報を即座に確認し、確認した機能情報に基づいてアクティブスタイラス100のダウンリンク時間スロット割当てを決定する。アクティブスタイラス100は、次いで、アクティブスタイラス100の機能をサポートする決定したダウンリンク時間スロット割当てに従って、データパケットおよび/または位置パケットをセンサコントローラに送信することにより、センサコントローラとの双方向通信を開始する。例えば、対象としているアクティブスタイラスがスタイラスオリエンテーション検出機能を有するとセンサコントローラ200が判定する場合に、センサコントローラ200はアクティブスタイラス100がスタイラスオリエンテーションデータをセンサコントローラ200に送信するようにダウンリンク時間スロットを割り当てる一方、このようなスタイラスオリエンテーション検出機能を有していないアクティブスタイラスにはこのようなダウンリンク時間スロットを割り当てない。こうして、センサコントローラ200は、アクティブスタイラスの機能情報に応じて、異なるダウンリンク時間スロット割当てをアクティブスタイラスに割り当て得る。アクティブスタイラスがセンサコントローラ200の検知領域外に存在する間に、ユーザにより調整可能なアクティブスタイラスの設定に関する設定情報(例えば、スタイラス線幅)が変更され得るため、該センサコントローラは、該アクティブスタイラスが以前に該センサコントローラとペアリングしたことがある場合であっても、該アクティブスタイラスが検知領域に再入するたびに現在の設定情報を確認する必要がある。
【0059】
図4Aは、アクティブスタイラスのスタイラス機能情報の種類例を列挙したテーブルであり、機能情報および設定情報を含む。機能情報は、通常はスタイラスベンダ(製造者)により予め設定され、かつ通常はユーザにより変更可能でない、アクティブスタイラスの予め定義された機能に関連する。例えば、スタイラス上に備えられたバレルスイッチの数はユーザにより変更可能でない。機能情報は、さらに、アクティブスタイラスがいずれのバージョンの双方向通信プロトコルに準拠するかを示すバージョン番号(4ビット)を含み得る。機能情報は、さらに、センサ201の画面上に表示するアクティブスタイラスの推奨の、または既定の色である「推奨色」(140CSS(カスケーディングスタイルシート)色のうちの1つを示す8ビット)を含み得る。機能情報は、さらに、
図4Bを参照して以下でより詳細に説明するように、ベンダによりアクティブスタイラスに対して設定され得る種々の他の機能に関連し得る。
【0060】
図4Aは、さらに、スタイラス線幅およびスタイラス先端タイプ(例えば、0=ペン、1=イレーサ、2=チゼル先端マーカ、3=エアブラシ、4=鉛筆、5~7=カスタム/ベンダ仕様先端スタイル用に確保)を含む「ペンスタイル(pen style)」などのユーザにより調整可能なアクティブスタイラスの設定に関する設定情報と、アクティブスタイラスのテイル/バレルボタン(スイッチ)111A/111Bに割り当てられた機能とを記述する。例えば、ユーザは、ボタン(スイッチ)を操作することによってペンスタイルを変更し、またはボタン(スイッチ)に割り当てられた機能を変更し得る。設定情報は、アクティブスタイラスに対して設定され得るユーザにより変更可能な他の設定に関連し得る。アクティブスタイラスの固有の識別番号は、アクティブスタイラス上に配置された1つまたは複数のスイッチを用いてユーザにより変更可能とし得る。例えば、共に各スタイラスに対する64ビットグローバルIDを構成し得るベンダID(8ビット)およびシリアル番号(56ビット)は、ユーザにより変更可能とし得る。(グローバルIDがユーザにより変更可能でない実施形態が挙げられる。)さらに、機能情報の1つの種類として上述したアクティブスタイラスの「推奨色(preferred color)」は、ユーザにより調整可能な設定情報に代替し得るものであり、ユーザは例えばボタン(スイッチ)を用いて推奨(既定)色を自由に調整し得る。「推奨色(preferred color)」の例が示すように、機能情報と設定情報との差異は厳密でなく、ベンダごとに、またはスタイラスごとに変わり得る。さらに、機能情報として取り扱い得るといったように、ユーザによって一回のみ、または非常に低頻度で設定され得る設定情報も存在し得る。
【0061】
図4Bは、アクティブスタイラスによって該アクティブスタイラスの機能情報をセンサコントローラ200に送信するのに用いられるデータフォーマット例を列挙したテーブルである。機能情報は、
図4Cを参照して以下でより詳細に説明するように、例えば、いくつの異なる段階(例えば、256、512、1024など)のペン先端圧力を検出することが可能か、アクティブスタイラス上に備えられたバレルボタン数(例えば、111A/111B)の数値、バレルプレッシャを検出するスタイラスの機能(可不可であって、可であれば、いくつの異なる段階のバレルプレッシャを検出することが可能か)、およびスタイラスオリエンテーション(例えば、スタイラスツイストおよびチルト)を検出するスタイラスの機能に関する情報を含む。
【0062】
図4Bの機能情報は、さらに、データパケットに対してカスタム(カスタマイズされた)データサイズが設定されているか否か、そして設定されている場合はカスタムデータバイト数の数値、スタイラスのオリエンテーションを検出することが可能なオリエンテーション分解能(例えば、0は8ビット分解能を示し、1は9ビット分解能を示し、2は10ビット分解能を示す)、ペン先端圧力を検出することが可能な異なる段階の(既定の数値とは異なって)カスタマイズされた数値、アクティブスタイラスに設けられるバレルボタンの(既定の数とは異なって)カスタマイズされた数、およびオリエンテーションデータを送信するのに用いられる(既定のデータバイト数とは異なって)カスタマイズされたデータバイト数に関する情報を含み得る。
【0063】
図4Cは、アクティブスタイラスによって該アクティブスタイラスのオリエンテーション検出機能に関する機能情報をセンサコントローラに送信するのに用いられるオリエンテーションコード例を列挙したテーブルである。オリエンテーションコード0は、アクティブスタイラスがオリエンテーション検出機能を有していないことを示し、1は、アクティブスタイラスがX方向およびY方向の両方におけるチルトを検出することが可能であること、および検出されたXチルトデータおよびYチルトデータをフレーム当たり2時間スロットで送信することが可能であることを示し、2は、アクティブスタイラスがXチルトおよびYチルトに加えてツイスト(回転)データをフレーム当たり3時間スロットで検出および送信することが可能であることを示し、3は、アクティブスタイラスがセンサ表面に対するアクティブスタイラスの高度データおよび方位角データをフレーム当たり2時間スロットで検出および送信することが可能であることを示し、4は、アクティブスタイラスが高度および方位角データならびにツイスト(回転)データをフレーム当たり3時間スロットで検出および送信することが可能であることを示し、5は、アクティブスタイラスが3軸ジャイロスコープおよび3軸加速度計の組合せからなる6軸IMU(内蔵計測ユニット)を備えること、および6軸IMUデータをフレーム当たり3時間スロットで送信することが可能であることを示し、6は、アクティブスタイラスが3軸ジャイロスコープ、3軸加速度計、および3軸地磁気計の組合せからなる9軸IMUを備えること、および9軸IMUデータをフレーム当たり3時間スロットで送信することが可能であることを示し、7は、アクティブスタイラスによって検出および送信され得るオリエンテーションデータのカスタマイズされた形式を示す。
【0064】
図4Cのオリエンテーションコードテーブルは異なる種類のオリエンテーションセンサを表す0~7の異なる値を示すが、
図4Dに示すように、代替手法は、アクティブスタイラスが該アクティブスタイラスのオリエンテーション機能をセンサコントローラに通知するのに用い得る機能のビットフィールドを備えることである。機能情報において設定されるビットの各々は、スタイラスが該当するアイテムを計測することが可能であることを示す。機能情報フィールドにバレルプレッシャビットが設定される場合、そのことはスタイラスがバレルプレッシャを示すものを有することを示す。チルトビットが設定される場合、そのことはスタイラスがXチルトおよびYチルトを計測することが可能であることを示す。ツイストビットが設定される場合、そのことはスタイラスが軸の周りのツイストを計測することが可能であることを示す。高度および方位角ビットが設定される場合、そのことはスタイラスがスタイラスの高度および方位角を計測することが可能であることを示す。IMUhasAccelビットが設定される場合、そのことはスタイラスが3軸加速度計値を備えることを示す。IMUhasGryoフラグが設定される場合、そのことはスタイラスが3軸ジャイロスコープを備えることを示す。IMUhasMagnetビットが設定される場合、そのことはスタイラスが3軸地磁気計を備えることを示す。設定されるこれらのビットの各々は、そのデータに時間スロットを割り当てる必要性を示し、後述することであるが、IMUに関しては単一の時間スロットまたは時間スロットのセットにデータを多重させることが可能である。
【0065】
図4Eは、アクティブスタイラスの機能情報の3つの例を記述している。例1は、1024の異なる段階でスタイラス先端圧力を検出することが可能である第1のアクティブスタイラスの機能情報であり、1つのバレルボタンを有し、接線方向(バレル)圧力検知機能、スタイラスオリエンテーション検知機能、およびカスタム機能を有していない。例2は、2048の異なる段階でスタイラス先端圧力を検出することが可能である第2のアクティブスタイラスの機能情報であり、2つのバレルボタン、接線方向(バレル)圧力検知機能、および9軸IMU(
図4Cにおけるオリエンテーションコード6)に基づくスタイラスオリエンテーション検知機能を有し、カスタム機能を有していない。例3は、各圧力段階(値)が16ビットで表されるカスタマイズされた数値からなる異なる段階でスタイラス先端圧力を検出することが可能である第3のアクティブスタイラスの機能情報であり、バレルボタン、接線方向(バレル)圧力検知機能を有しておらず、アクティブスタイラスの高度および方位角データならびにツイスト(回転)データを検出およびレポートするスタイラスオリエンテーション検知機能を有する(
図4Cにおけるオリエンテーションコード4)。
【0066】
図5Aは、アクティブスタイラスに対してダウンリンク時間スロット割当てにより設定されたスケジュールに従って、アクティブスタイラスからセンサコントローラに送信され得るアクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。スケジュールに従って送信される動作データが、センサコントローラがセンサコントローラとアクティブスタイラスとの間の適切なインタラクティブ動作を達成するのに必要とする動作データからなる、種々の実施形態が挙げられる。このような動作データは、例えば、先端圧力データ、接線方向(バレル)圧力データ、各バレルボタンのステータス(例えば、各バレルボタンのオン/オフ状態)、アクティブスタイラスが該アクティブスタイラスの所期のオリエンテーションから反転している(すなわち、スタイラス先端が上方を向く、つまりスタイラステイルがセンサ表面の方を向いて、およびセンサ表面と接触して、例えば「イレーサ(eraser)」として用いられる)か否かを示す反転データ、スタイラスオリエンテーションデータ、およびアクティブスタイラスの何らかの動作状態を示す任意の他のカスタマイズされた動作データを含む。
【0067】
場合によっては、スタイラス内のセンサからの動作データの量が多大となり得る。このことは特にIMUに当てはまる。これらのセンサは次のいずれかまたはすべて、すなわち1~3軸を有する加速度計、1~3軸を有するジャイロスコープ、および1~3軸を有する地磁気計のいずれかまたはすべてを備え得る。これにより、最大で9軸のデータを送信する必要性が生じ得る。このデータを指定された種類(例えば、加速度計のX軸、Y軸、Z軸、ジャイロスコープのX軸、Y軸、Z軸、および地磁気計のX軸、Y軸、Z軸)からなる9時間スロットで送信することに代えて、1つまたは複数の時間スロットにデータを多重させ得る。
【0068】
多重を実現するために、いずれのセンサ(加速度計、ジャイロスコープ、または地磁気計)からデータが生じたかを示すフラグ(IMUフラグ)によってIMUデータをタグ付けする。
図5Bは、IMUデータを送信するデータパケット(またはレポート)の例である。
図5Bにおいて、「IMUデータ(IMU data)」フィールドは、IMUデータ自体を含み、「IMUフラグ(IMU Flag)」フィールドはいずれのセンサがIMUデータを生成したかを示す。例えば、IMUフラグがゼロである場合はそのことはデータが加速度計から生じたことを示し、IMUフラグが1である場合はそのことはデータがジャイロスコープから生じたことを示し、IMUフラグが2である場合はそのことはデータが地磁気計から生じたことを示し得る。IMUデータフィールドは、IMUフラグにより示されるセンサによって生成されたX軸データ、Y軸データ、Z軸データを含み得る。
【0069】
例えば、9軸のデータ(例えば、加速度計のX軸、Y軸、Z軸、ジャイロスコープのX軸、Y軸、Z軸、および地磁気計のX軸、Y軸、Z軸)を、共通のレポートフォーマット(またはデータパケット)の3時間スロット(または3つのデータフィールド)に多重させて、以下のように3つの異なる時点において3つのレポートを作成し得る。
(レポート1)
センサタグ-「加速度計(Accelerometer)」
X軸データフィールド-加速度計X軸データ
Y軸データフィールド-加速度計Y軸データ
Z軸データフィールド-加速度計Z軸データ
(レポート2)
センサタグ-「ジャイロスコープ(Gyroscope)」
X軸データフィールド-ジャイロスコープX軸データ
Y軸データフィールド-ジャイロスコープY軸データ
Z軸データフィールド-ジャイロスコープZ軸データ
(レポート3)
センサタグ-「地磁気計(Magnetometer)」
X軸データフィールド-地磁気計X軸データ
Y軸データフィールド-地磁気計Y軸データ
Z軸データフィールド-地磁気計Z軸データ
【0070】
他の例として、9軸のデータを共通のレポートフォーマット(またはデータパケット)の1時間スロット(または1つのデータフィールド)に多重させて、9つの異なる時点において9つのレポートを作成し得る。
(レポート1)
センサタグ-「加速度計(Accelerometer)」
軸タグ-「X」
データフィールド-加速度計X軸データ
(レポート2)
センサタグ-「加速度計(Accelerometer)」
軸タグ-「Y」
データフィールド-加速度計Y軸データ
(レポート3)
センサタグ-「加速度計(Accelerometer)」
軸タグ-「Z」
データフィールド-加速度計Z軸データ
(レポート4)
センサタグ-「ジャイロスコープ(Gyroscope)」
軸タグ-「X」
データフィールド-ジャイロスコープX軸データ
(レポート5)
センサタグ-「ジャイロスコープ(Gyroscope)」
軸タグ-「Y」
データフィールド-ジャイロスコープY軸データ
(レポート6)
センサタグ-「ジャイロスコープ(Gyroscope)」
軸タグ-「Z」
データフィールド-ジャイロスコープZ軸データ
(レポート7)
センサタグ-「地磁気計(Magnetometer)」
軸タグ-「X」
データフィールド-地磁気計X軸データ
(レポート8)
センサタグ-「地磁気計(Magnetometer)」
軸タグ-「Y」
データフィールド-地磁気計Y軸データ
(レポート9)
センサタグ-「地磁気計(Magnetometer)」
軸タグ-「Z」
データフィールド-地磁気計Z軸データ
【0071】
このようにしてIMUデータを1つまたは複数の時間スロット(1つまたは複数のデータフィールド)に多重させることには、各レポートにおいて必要とされる時間スロットの数が削減され、IMUデータを送信するのに必要なレポートの数が増加して全体のIMUデータレートを低下させずに済むという利点がある。
【0072】
複数のIMUセンサからのデータを「センサフュージョン(sensor fusion)」として知られる処理によって結合して所望の位置情報および動き情報を生成する実施形態が挙げられる。例えば、アクティブスタイラスのいずれの方向が「下方(down)」であるかを判定したい場合に、動きの方向を示すジャイロスコープデータを、動きの加速方向および重力の加速方向の両方を示す加速度計データから減算し得る。減算の結果は、重力のみに起因する加速方向、すなわち「下方」基準座標系を示す。
【0073】
「センサフュージョン(sensor fusion)」を実行するときに、極力正確な結果を与えるように、種々のIMUセンサからのデータを可能な限り互いに時間的に接近させて計測するとよい。
図5Bに示す「エンド(End)」ビットを用い、以下のようにして種々のIMUセンサからのデータ間の同期を達成し得る。複数のIMUセンサの計測値を取得してアクティブスタイラス内にバッファする。バッファされたデータを、エンドビットをクリアした(例えば、「0」)利用可能なIMU時間スロット割当てによって送信する。
図9Gは、IMUデータパケットの例および「エンドビット(End bit)」の用法を示す。最後のバッファされたデータ要素が時間スロット内に配置されると、エンドビットは複数のIMUセンサによって同時にまたは時間的に接近して取得されたIMUデータのセットにおける最後であることを示すように、エンドビットが(例えば、「1」に)設定される。センサコントローラにおいて、エンドビットがクリアされて受信した任意のIMUデータがバッファに追加される。センサコントローラがエンドビットセットを有するIMUデータを受信すると、センサコントローラは、次いでバッファ内のデータを複数のIMUセンサからのIMUデータの一式のセットとして用い、センサフュージョンを実行するホストプロセッサに転送し得る。
【0074】
図5Cは、アクティブスタイラスのバッテリレベルなどの、センサコントローラによってポーリングされる(要求される)とアクティブスタイラスがセンサコントローラに送信する、アクティブスタイラスの動作状態を示す動作データ例を列挙したテーブルである。したがって、この種類の動作データは、低頻度でしかセンサコントローラに送信されない。
【0075】
なお、
図4A~4Eを参照して上述したスタイラス機能情報、および
図5A~5Cを参照して上述した動作データは一例にすぎず、本発明は
図4A~5Cに記載した特定の例を用いることに限定されない。
【0076】
図6は、アクティブスタイラスの処理フロー例を示すフローチャートである。ステップS601において、アクティブスタイラスは、例えばスタイラス機能情報マネージャ110(
図1)のテーブルTBLに格納されたアクティブスタイラス自体が有するスタイラス機能情報を決定する。ステップS603において、アクティブスタイラスの設定(例えば、スタイラス線幅、色など)を変更するユーザ操作をアクティブスタイラスが検出すると、ステップS605において、アクティブスタイラスはこれに応じて設定情報を更新する。
図6に示すように、ステップS601~S605は、通常、アクティブスタイラス100がセンサコントローラ200の検知領域外に存在する間に生じる。ステップS611において、アクティブスタイラスはセンサコントローラ200からのビーコン信号を待ち受け、ビーコン信号が検出されない場合はステップS603に戻り、必要に応じて設定情報を更新することを継続し、ビーコン信号を待ち受ける。
【0077】
ステップS611において、アクティブスタイラスは、センサコントローラ200の検知領域に入るときに、センサコントローラ200からのビーコン信号を検出する。ステップS613において、アクティブスタイラスは、タイミング基準としてのビーコン信号を用いて、アクティブスタイラスのフレーム/時間スロット設定をセンサコントローラのものに同期させる。ステップS615において、アクティブスタイラスは、単一のダウンリンク時間スロットを用いて設定情報のハッシュ値(ハッシュ#1)を送信し、センサコントローラが該アクティブスタイラスをセンサコントローラが以前にペアリングしたことのあるアクティブスタイラスと認識するか否かをセンサコントローラに判定させる。センサコントローラがハッシュ#1に基づいてアクティブスタイラスを認識しない場合は、ステップS617において、アクティブスタイラスは、センサコントローラから受信した機能情報要求(読出し)コマンドに応答して、場合によっては複数のダウンリンク時間スロットを用い、アクティブスタイラスの(一式の)スタイラス機能情報をセンサコントローラに送信する。これに対して、センサコントローラがハッシュ#1に基づいてアクティブスタイラスを認識する場合は、ステップS619において、センサコントローラは、好ましくは単一のアップリンク時間スロットを用い、設定情報のハッシュ値(「ハッシュ#2(Hash#2)」)を検証のためにアクティブスタイラスに送信する。以下でさらに
図7および
図10を参照して、ハッシュ#1およびハッシュ#2を用いるアクティブスタイラスとセンサコントローラとの間のペアリング動作または「急速インキング処理(fast inking)」動作を説明する。
【0078】
ステップS617において非ハッシュ化スタイラス機能情報を送信した後、またはステップS619において設定情報のハッシュ#2を受信した後は、ステップS631において、アクティブスタイラスはセンサコントローラ200からのビーコン信号を再度待ち受ける。このときに検出されるビーコン信号は、センサコントローラがアクティブスタイラスのスタイラス機能情報に基づいてアクティブスタイラスに対して決定したダウンリンク時間スロット割当てを含む。ダウンリンク時間スロット割当てを含むビーコン信号が検出されると、アクティブスタイラスは、ステップS633においてカウンタを0にリセットし、ステップS635において検出されたビーコン信号に含まれるダウンリンク時間スロット割当てにより設定されたスケジュールに従ってセンサコントローラにパケットを送信し始める。送信するパケットは、アクティブスタイラスの位置、および/またはアクティブスタイラスの動作データ(例えば、送信された圧力データ、送信されたオリエンテーションデータなど)を含むデータパケットを判別するのにセンサコントローラによって用いられる位置パケットからなり得る。さらに、ステップS631において検出されるビーコン信号において、または続いて検出される任意のビーコン信号(
図6において不図示)においてセンサコントローラによりポーリングされる(要求される)と、ステップS637において、アクティブスタイラスは、アクティブスタイラスのバッテリレベルなどのポーリングされた動作データを含むデータパケットを、ダウンリンク時間スロット割当てに従ってセンサコントローラに送信する。例えば、アクティブスタイラスは、上述のステップS635においてスケジュールされたパケットを送信するのに用いられない任意の時間スロットを用い、ポーリングされた動作データを含むデータパケットを送信する。
【0079】
ステップS617において非ハッシュ化スタイラス機能情報を送信した後、またはステップS619において設定情報のハッシュ#2を受信した後に、ステップS631においてアクティブスタイラスが返信されるビーコン信号を検出しない場合は、ステップS641においてアクティブスタイラスはカウンタが閾値を超えたか否かを判定し、超えていなければステップS643においてカウンタ値をインクリメントする。ステップS641においてカウンタが閾値を超える場合は、アクティブスタイラスがセンサコントローラ200の検知領域から出ており(すなわち、ユーザがアクティブスタイラスをセンサ201から遠ざけるように移動させており)、アクティブスタイラスは該センサコントローラからのビーコン信号の圏外に存在するものとする。したがって、アクティブスタイラスはステップS603、S605、およびS611に戻り、必要に応じて設定情報を更新することを再開し、(開始)ビーコン信号を待ち受ける。
【0080】
図7は、センサコントローラの処理フロー例を示すフローチャートである。
図7は、さらに、センサコントローラとアクティブスタイラスとの間のペアリング動作例を示し、該ペアリング動作においてセンサコントローラはアクティブスタイラスからスタイラス機能情報(例えば、設定情報)を示すハッシュ値(「ハッシュ#1(Hash#1)」)を受信する。センサコントローラが受信したハッシュ#1を認識すると、それによってペアリング動作が迅速化され得る。
【0081】
ステップS711において、センサコントローラは、第1の時間スロット「s0」などの各フレームの開始時間スロットにおいて、ビーコン信号を送信する。ステップS714において、センサコントローラは、ビーコン信号を検出したアクティブスタイラスから返信された応答(例えば、ACK)信号から、スタイラス機能情報のハッシュ値(ハッシュ#1)を抽出する。ハッシュ#1は、機能情報および設定情報の両方を含む一式の形態をなすスタイラス機能情報のハッシュ値からなり得る、または設定情報のハッシュ値からなり得る。
【0082】
ステップS715において、センサコントローラは、抽出したハッシュ#1が、センサコントローラ内にキャッシュされたスタイラス機能情報(例えば、設定情報)のハッシュ値(ハッシュ#1)に一致するか否かを判定する。特に、ステップS715は、センサコントローラが該アクティブスタイラスをセンサコントローラが以前にペアリングしたことのあるアクティブスタイラスとして認識するか否かを判定するステップであり、認識する場合は、センサコントローラはアクティブスタイラスのスタイラス機能情報を既にそろえている。
【0083】
ステップS715においてセンサコントローラがハッシュ#1を認識しない場合は、ステップS717において、センサコントローラは、アクティブスタイラスにアクティブスタイラスのスタイラス機能情報を送信するように要求する読出しコマンドを含むビーコン信号を送信する。それに代えて、またはそれに追加して、センサコントローラは、アクティブスタイラスに対するある一定の設定を強制的に構成する(設定する)書込みコマンドを含むビーコン信号を送信し得る。例えば、センサコントローラは、アクティブスタイラスに対してある一定の既定色を設定する書込みコマンドを発行し得る。
【0084】
ステップS719において、センサコントローラは、センサコントローラが複数のダウンリンク時間スロットを用いて一式の形態で受信した(
図6におけるステップS617を参照)アクティブスタイラスのスタイラス機能情報をセンサコントローラが有していることを確認する、またはハッシュ#1に基づいてセンサコントローラ内にキャッシュ済みであることを確認済みである。センサコントローラは、次いで、スタイラス機能情報に基づき、アクティブスタイラスに対するダウンリンク時間スロット割当てを決定する。ダウンリンク時間スロット割当ては、フレーム内のいずれのダウンリンク時間スロットがアクティブスタイラスに割り当てられるかを特定し、さらにアクティブスタイラスがいずれの種類のパケット(例えば、データパケットまたは位置パケット)をいずれのダウンリンク時間スロットにおいて送信すべきであるかを特定し得る。センサコントローラは、アクティブスタイラスの特定の機能情報に基づき、各アクティブスタイラスに対するダウンリンク時間スロット割当てを決定する。例えば、スタイラス先端圧力センサに加えてスタイラスオリエンテーションセンサおよびバレルプレッシャセンサを備えるアクティブスタイラスに対して、センサコントローラは、スタイラス先端圧力センサのみを備えるアクティブスタイラスと比較して、これらの種々のセンサからの出力を示す動作データを送信するための、より多くのダウンリンク時間スロットを割り当て得る。種々の機能および設定がなされた複数のアクティブスタイラスをセンサコントローラと共に使用する場合に、センサコントローラは、複数のアクティブスタイラス間におけるダウンリンク時間スロット衝突を回避しながら、各アクティブスタイラスに対するダウンリンク時間スロット割当てを決定する。すなわち、各時間スロットを1つのアクティブスタイラスに割り当て、複数のスタイラスによって共有しない実施形態が挙げられる。センサコントローラが、アクティブスタイラスに対するダウンリンク時間スロット割当ての一部として各アクティブスタイラスに特定の周波数を割り当てる実施形態も挙げられる。その場合に、複数の周波数が割り当てられる複数のアクティブスタイラスにそれぞれ同じ時間スロットを割り当て得る。ダウンリンク時間スロット割当ての種々の例を、
図8A~9Gを参照して後述する。
【0085】
図7を再度参照し、ステップS731において、センサコントローラは、決定したダウンリンク時間スロット割当てを含むビーコン信号を、ACK信号を送信してきたアクティブスタイラスに返信する。次いで、ステップS732において、センサコントローラは、ダウンリンク時間スロット割当てに従って、アクティブスタイラスから送信されるパケットを待ち受ける。センサコントローラがアクティブスタイラスからのパケットを検出する場合は、ステップS733においてセンサコントローラはカウンタを0にリセットし、ステップS735においてセンサコントローラは、ダウンリンク時間スロット割当てにより設定されたスケジュールに従ってパケット(位置パケットおよび/または動作データを含むデータパケット)を受信し続ける。さらに、センサコントローラが、ビーコン信号のいずれかによって、アクティブスタイラスのバッテリレベルなどのある一定の動作データをレポートするようにアクティブスタイラスにポーリングすると、ステップS737において、センサコントローラは、アクティブスタイラスからのポーリングされた動作データを含むデータパケットを受信する。
【0086】
ステップS731においてダウンリンク時間スロット割当てを含むビーコン信号を送信した後に、ステップS732においてセンサコントローラが割り当てられたダウンリンク時間スロットにおいて返信されたパケットを全く検出しない場合は、ステップS741においてセンサコントローラは、カウンタが閾値を超えたか否かを判定し、越えなければ、ステップS743においてカウンタ値をインクリメントする。ステップS741においてカウンタが閾値を超えない場合は、アクティブスタイラスがセンサコントローラ200の検知領域から出ており(すなわち、ユーザがアクティブスタイラスをセンサ201から遠ざけるように移動させており)、アクティブスタイラスは該センサコントローラからのビーコン信号の圏外に存在するものとする。したがって、センサコントローラはステップS711およびS713に戻り、周期ビーコン信号を送信し続け、アクティブスタイラスからの応答信号を待つ。
【0087】
図8Aおよび8Bは、センサコントローラがアクティブスタイラスにビーコン信号(BS)を送信し、アクティブスタイラスがスタイラス機能情報(CPまたはハッシュ#1)を含む応答信号をセンサコントローラに返信するフレームフォーマット例を示す。
図8Aにおいて、第1のフレームFnの時間スロットs0において、センサコントローラはビーコン信号を送信し、次の時間スロットs1において、ビーコン信号を検出したアクティブスタイラスはアクティブスタイラスの非ハッシュ化スタイラス機能情報(「CP1」)を含む応答信号を返信する。本例において、アクティブスタイラスは該センサコントローラとペアリングしたことがなく、したがって該センサコントローラを認識しない(
図6のステップS615においてNO)。したがって、アクティブスタイラスは時間スロットs1において一式の(非ハッシュ化)スタイラス機能情報を送信し、これが該一式のスタイラス機能情報のサイズに応じた複数のフレームに亘り得る。
図8Aは、アクティブスタイラスが少なくとも2つのフレームFn、Fn+1の時間スロットs1において非ハッシュ化スタイラス機能情報をCP1、CP2として送信することを示す。
【0088】
図8Bにおいて、アクティブスタイラスは該センサコントローラと以前にペアリングしたことがあり、したがって該センサコントローラを認識する(
図6のステップS615においてYES)。したがって、アクティブスタイラスは、時間スロットs1において送信する応答信号において、アクティブスタイラスの設定情報(「ハッシュ#1(Hash#1)」)のハッシュ値を送信する。設定情報のハッシュ値が通常20ビット以下であって単一の時間スロットで送信し得る一定のデータサイズからなることは利点である。それゆえ、上述した
図8Aの例とは異なり、アクティブスタイラスの設定情報を表すハッシュ#1を、単一のフレーム(Fn)の時間スロットs1を用いてセンサコントローラに短時間で送信することができる。
【0089】
センサコントローラは、ハッシュ#1を受信および認識すると(
図7のステップS715においてYES)、アクティブスタイラスのスタイラス機能情報を既に有していること、したがってさらにはアクティブスタイラスに対するダウンリンク時間スロット割当てを認識する。こうして、次のフレームFn+1の時間スロットs0において、センサコントローラは、アクティブスタイラスによってセンサコントローラにパケットを送信するのに用いられるダウンリンク時間スロット割当てを含むビーコン信号を送信する。
【0090】
センサコントローラは、種々の方法によりアクティブスタイラスにダウンリンク時間スロット割当てを通知し得る。例えば、アクティブスタイラスから送信されたハッシュ#1を認識すると、センサコントローラはハッシュ#1に対応するハッシュ#2をアクティブスタイラスに返信し得る。センサコントローラから送信されたハッシュ#2がアクティブスタイラス内に記憶されたハッシュ#2に一致する(ハッシュ#2およびハッシュ#1は同じ設定情報から算出される)ことをアクティブスタイラスが確認すると、アクティブスタイラスは、アクティブスタイラスが以前にセンサコントローラとペアリングしたときに用いられたのと同じダウンリンク時間スロット割当てを用いることができると判定する。こうして、本例において、センサコントローラは、ハッシュ#1の受信に応答してビーコン信号によりハッシュ#2を送信することによって、アクティブスタイラスにダウンリンク時間スロット割当てを送信する。他の例として、センサコントローラは、特定のダウンリンク時間スロット割当てを示す予め定義されたコードをアクティブスタイラスに送信することが可能であり、この場合に、センサコントローラおよびアクティブスタイラスは、予め定められたコードと各コードがどのようなダウンリンク時間スロット割当てを示すかとのリストを共有する。本例において、センサコントローラは、ビーコン信号により予め定義されたコードの1つを送信することによって、アクティブスタイラスにダウンリンク時間スロット割当てを送信する。さらに他の例として、センサコントローラは、
図9A~9Gを参照して以下でより詳細に説明するように、例えばフレーム当たりにアクティブスタイラスに割り当てられるダウンリンク時間スロットの位置を特定するオフセット値および間隔値を送信することによって、ダウンリンク時間スロット割当てを送信し得る。本例において、センサコントローラは、例えばビーコン信号によりオフセット値および間隔値を送信することによって、アクティブスタイラスにダウンリンク時間スロット割当てを送信する。
【0091】
図8Bにおいて、フレームFn+1の時間スロットs0におけるビーコン信号は、アクティブスタイラスに対して決定されたダウンリンク時間スロット割当てを含む。こうして、アクティブスタイラスはダウンリンク時間スロット割当てを決定するビーコン信号を読み取り、決定されたダウンリンク時間スロット割当てに従い、フレームFn+1の時間スロットs2において、スタイラスの動作データを含むデータパケット(DP)を送信することを開始する。
【0092】
図9A~9Gは、センサコントローラによって特定された異なる7種類のダウンリンク時間スロット割当てに従ってアクティブスタイラスがセンサコントローラにパケットを送信するのにそれぞれ用いる、7つの異なるフレームフォーマットを示す。
図9A~9Gの各々において、フレームFn+1の時間スロットs0におけるビーコン信号はアクティブスタイラスに対して決定されたダウンリンク時間スロット割当てを含み、これによりアクティブスタイラスは、決定されたダウンリンク時間スロット割当てに従い、フレームFn+1の時間スロットs1から開始してセンサコントローラにパケット(データパケットおよび/または位置パケット)を送信し得る。
【0093】
図9Aにおいて、ダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs2から開始して等間隔(T)にある4つの(4)時間スロット、すなわちフレームFn+1における時間スロットs6、s10、およびs14、フレームFn+2における時間スロットs2、s6、s10、およびs14などにおいて、動作データ(例えば、14ビット)を含むデータパケットをアクティブスタイラスが送信することとすることを規定する。この場合に、センサコントローラは、i)アクティブスタイラスによってパケットを送信するのに用いられる開始時間スロットを示すオフセット値と、ii)開始時間スロットから開始されるアクティブスタイラスに割り当てられた時間スロット間の間隔を示す間隔値とを特定することによってダウンリンク時間スロット割当てを定義し得る。例えば、
図9Aの例のダウンリンク時間スロット割当ては、開始時間スロットがs2であることを示す「2」というオフセットと、等間隔(T)にある4時間スロットからなる後続の時間スロットがアクティブスタイラスによって用いられることを示す「4」という間隔値とによって規定され得る。センサコントローラは、これらの値(オフセット:2、間隔:4)をビーコン信号において符号化し、これによってアクティブスタイラスにダウンリンク時間スロット割当てを送信し得る。ダウンリンク時間スロット割当ては、さらに、例えば、送信するパケットの全数(例えば、
図9Aの例において「5」(DP1~DP5))および/またはパケットのデータフォーマット(例えば、パケットごとの全ビット数はいくつであるか、そのうちの何ビットがペン圧力を示して何ビットがバレルプレッシャデータを示すかなど)を規定し得る。
【0094】
図9Aは、さらに、各フレームFn+1、Fn+2などの時間スロットs1を、必要に応じてセンサコントローラにアクティブスタイラスのスタイラス機能情報(CP)を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。例えば、ユーザがセンサコントローラとの双方向通信セッション中にアクティブスタイラスの設定を調整する(例えば、ユーザがスタイラス線幅を変更する)場合に、アクティブスタイラスは、調整した設定情報を後続フレームの時間スロットs1においてセンサコントローラに送信し得る。それに追加して、またはそれに代えて、センサコントローラからのビーコン信号がアクティブスタイラスのスタイラス機能情報を要求する読出しコマンドを含む場合に、アクティブスタイラスは、後続フレームの時間スロットs1において、要求された機能情報および/または設定情報を応答に含める。
【0095】
図9Aは、さらに、センサコントローラからの前のビーコン信号においてポーリングされた(要求された)動作データを含むデータパケットを送信するために、フレームFn+1の時間スロットs15をアクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。例えば、フレームFn+1の時間スロットs0におけるビーコン信号がアクティブスタイラスにアクティブスタイラスのバッテリレベルをレポートするように要求する場合に、応答においてアクティブスタイラスは、フレームFn+1の時間スロットs15において、ポーリングされた動作データ(「ポーリングDP(Poll DP)」)を含むデータパケットを送信する。
【0096】
図9Bにおいて、ダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs3から開始して等間隔(T)にある4つの(4)時間スロット、すなわちフレームFn+1における時間スロットs7、s11、およびs15、フレームFn+2における時間スロットs3、s7、s11、およびs15などにおいて、動作データ(例えば、14ビット)を含むデータパケットをアクティブスタイラスが送信することとすることを規定する。上述した
図9Aの例と同様に、
図9Bの例のダウンリンク時間スロット割当ては、開始時間スロットがs3であることを示す「3」というオフセットと、用いる後続の時間スロットが等間隔(T)にある4時間スロットからなることを示す「4」という間隔値とによって規定され得る。
図9Bは、さらに、各フレームFn+1、Fn+2などの時間スロットs1を、必要に応じてセンサコントローラにスタイラス機能情報(CP)を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。さらに、フレームFn+1の時間スロットs0におけるビーコン信号が、スタイラスのバッテリレベルなどのアクティブスタイラスのある一定の動作データをレポートするようにアクティブスタイラスにポーリングする(要求する)場合に、応答においてアクティブスタイラスは、フレームFn+1の時間スロットs1において、ポーリングされた動作データ(「ポーリングDP(Poll DP)」)を含むデータパケットを送信する。
【0097】
各フレームにおけるビーコン信号時間スロット(s0)の後に、アクティブスタイラスが前の時間スロット(s0)におけるビーコン信号の受信を受諾する応答信号(例えば、ACK)を送信するのに1つまたは複数の時間スロット(例えば、s1)を確保する、種々の実施形態が挙げられる。したがって、ここで用いる「応答信号(response signal)」は、アクティブスタイラスが開始(発見)ビーコン信号に応答してセンサコントローラの検知領域に入るときに送信する第1の応答信号に限定されない。この代わりに、応答信号に、アクティブスタイラスがアクティブスタイラスに宛てられた種々のコマンドまたは他の情報を含む後続のビーコン信号に応答して送信する後続の応答信号が含まれてもよい。例えば、アクティブスタイラスは、変更されたアクティブスタイラスの設定に起因して双方向通信セッション中にセンサコントローラによって更新された新たなダウンリンク時間スロット割当てを含む後続のビーコン信号に応答する応答信号を送信し得る。他の例として、後続のビーコン信号がアクティブスタイラスにスタイラス機能情報を送信するように要求する読出しコマンドを含む場合に、アクティブスタイラスは、要求されたスタイラス機能情報を含む応答信号を送信する(
図9Aを参照すると、フレームFn+1およびFn+2の時間スロットs1において送信される「CP」は、要求されたスタイラス機能情報を含む応答信号であるとみなせる)。さらに他の例として、後続のビーコン信号がアクティブスタイラスにアクティブスタイラスのある一定の動作データ(例えば、スタイラスバッテリレベル)を送信するように要求するポーリングコマンドを含む場合に、アクティブスタイラスは、ポーリングされた動作データを含む応答信号を送信する(
図9Bを参照すると、フレームFn+1の時間スロットs1において送信される「ポーリングDP(Poll DP)」は、ポーリングされた動作データを含む応答信号であるとみなせる)。
【0098】
図9Cにおいて、ダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs2から開始して2つの(2)時間スロットを単位として等間隔(T)にある4つの(4)時間スロット、すなわちフレームFn+1、フレームFn+2などにおける時間スロット[s2/s3]、[s6/s7]、[s10/s11]、および[s14/s15]において、(例えば、14ビットより多い)比較的大きいデータパケットをアクティブスタイラスが送信することとすることを規定する。
図9Cの例のダウンリンク時間スロット割当ては、開始時間スロットがs2であることを示す「2」というオフセットと、用いる後続の時間スロットが等間隔(T)にある4時間スロットからなることを示す「4」という間隔値とによって、またさらには、データパケットの各々(DP1、DP2、DP3、DP4、DP5など)を形成するのに2時間スロットからなる単位を用いることを示す「2」という単位サイズによって規定され得る。「2」という単位サイズは、アクティブスタイラスによって用いられるパケット長であるとみなせる。このような比較的大きいデータは、例えば、アクティブスタイラスのカスタマイズされた動作データ(CD)をセンサコントローラに送信するのに必要となり得る。
【0099】
図9Aおよび
図9Bにおけるように、
図9Cは、さらに、各フレームFn+1、Fn+2などの時間スロットs1を、必要に応じてセンサコントローラにスタイラス機能情報(CP)を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。
図9Cは、さらに、フレームFn+1の時間スロットs0におけるビーコン信号がアクティブスタイラスにある一定の動作データ(例えば、スタイラスバッテリレベル)をレポートするようにポーリングする(要求する)場合に、応答においてアクティブスタイラスは、フレームFn+1の時間スロットs1において、ポーリングされた動作データ(「ポーリングDP(Poll DP)」)を含むデータパケットを送信することを示す。
【0100】
図9Dは、第1のアクティブスタイラスに周波数f0を割り当てる第1のダウンリンク時間スロット割当てと、第1のアクティブスタイラスと異なる第2のアクティブスタイラスに周波数f0と異なる周波数f1を割り当てる第2のダウンリンク時間スロット割当てとの組合せを示す。
【0101】
第1のダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs2から開始して3つの(3)時間スロットを単位として等間隔(T)にある8つの(8)時間スロット、すなわちフレームFn+1、フレームFn+2などにおける時間スロット[s2/s3/s4]および[s10/s11/s12]において、比較的大きいデータパケット(例えば、フレーム当たり2時間スロットを占有するスタイラスオリエンテーションデータ(OR)を含むデータパケットであり、
図4CにおけるORC1またはORC3を参照)を第1のアクティブスタイラスが送信することとすることを規定する。第1のダウンリンク時間スロット割当ては、開始時間スロットがs2であることを示す「2」というオフセットと、用いる後続の時間スロットが等間隔(T)にある8時間スロットからなることを示す「8」という間隔値と、データパケットの各々(DP1、DP2、DP3など)を形成するのに3時間スロットからなる単位を用いることを示す「3」という単位サイズ値(またはパケット長)とによって規定され得る。
【0102】
第2のダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs2から開始して4つの(4)時間スロットを単位として等間隔(T)にある8つの(8)時間スロット、すなわちフレームFn+1、フレームFn+2などにおける時間スロット[s2/s3/s4/s5]および[s10/s11/s12/s13]において、比較的大きいデータパケット(例えば、フレーム当たり3時間スロットを占有するスタイラスオリエンテーションデータ(OR)を含むデータパケットであり、
図4CにおけるORC2または4を参照)を、第1の周波数f1で動作する第2のアクティブスタイラスが同様に送信することとすることを規定する。第2のダウンリンク時間スロット割当ては、開始時間スロットがs2であることを示す「2」というオフセットと、用いる後続の時間スロットが等間隔(T)にある8時間スロットからなることを示す「8」という間隔値と、データパケットの各々(DP1、DP2、DP3など)を形成するのに4時間スロットからなる単位を用いることを示す「4」という単位サイズ値(またはパケット長)とによって規定され得る。
【0103】
図9Dにおいては、以前の例に示すように、各フレームFn+1、Fn+2などの時間スロットs1を、必要に応じてセンサコントローラにスタイラス機能情報(CP)を送信するための、周波数f0で動作する第1のアクティブスタイラスと周波数f1で動作する第2のアクティブスタイラスとの両方に対するダウンリンク時間スロットとして確保する。
図9Dは、さらに、フレームFn+1の時間スロットs0におけるビーコン信号が第1のアクティブスタイラスと第2のアクティブスタイラスとのいずれかにある一定の動作データ(例えば、スタイラスバッテリレベル)をレポートするようにポーリングする(要求する)場合に、応答においてアクティブスタイラスは、フレームFn+1の時間スロットs15において、ポーリングされた動作データ(「ポーリングDP(Poll DP)」)を含むデータパケットを送信することを示す。
図9Dの例において、フレームFn+1の時間スロットs0におけるビーコン信号は周波数f0で動作する第1のアクティブスタイラスにポーリングし、これにより第1のアクティブスタイラスは、フレームFn+1の時間スロットs15において、ポーリングされた動作データ(「ポーリングDP(Poll DP)」)を含むデータパケットを送信することによって応答する。
【0104】
センサコントローラが複数のアクティブスタイラスの各々に個々の周波数(例えば、f0、f1)を割り当てると、センサコントローラは、個々のアクティブスタイラスに宛てたコマンドを、そのアクティブスタイラスに割り当てたビーコン信号の周波数部分にのみ含め得る。
【0105】
図9Aと類似する
図9Eにおいて、ダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs2から開始して等間隔(T)にある4つの(4)時間スロット、すなわちフレームFn+1における時間スロットs6、s10、およびs14、フレームFn+2における時間スロットs2、s6、s10、およびs14などにおいて、動作データ(例えば、16ビット)を含むデータパケットをアクティブスタイラスが送信することとすることを規定する。本例のダウンリンク時間スロット割当ては、開始時間スロットがs2であることを示す「2」というオフセットと、用いる後続の時間スロットが等間隔(T)にある4時間スロットからなることを示す「4」という間隔値とによって規定され得る。
図9Eは、さらに、各フレームFn+1、Fn+2などの時間スロットs1を、必要に応じてセンサコントローラにスタイラス機能情報(CP)を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。
図9Eは、さらに、フレームFn+1の時間スロットs0におけるビーコン信号がアクティブスタイラスにある一定の動作データ(例えば、スタイラスバッテリレベル)をレポートするようにポーリングする(要求する)場合に、応答においてアクティブスタイラスは、フレームFn+1の時間スロットs15において、ポーリングされた動作データ(「ポーリングDP(Poll DP)」)を含むデータパケットを送信することを示す。
【0106】
図9A~9Eのダウンリンク時間スロット割当て例は、すべて、アクティブスタイラスの動作データを含むデータパケット(DP1、DP2、DP3、DP4、DP5など)のダウンリンク送信を規定する。これに対して、
図9Fのダウンリンク時間スロット割当ては、フレームにおいていずれのダウンリンク時間スロットを用いるかのみならず、アクティブスタイラスがいずれのダウンリンク時間スロットにおいてどのような種類のパケット(データパケット(DP)または位置パケット(XY))を送信すべきであるかをも規定する。
【0107】
特に、
図9Fのダウンリンク時間スロット割当ては、フレームFn+1の時間スロットs2から開始して等間隔(T)にある4つの(4)時間スロット、すなわち各フレームにおける時間スロットs2、s6、s10、およびs14において、センサコントローラによってアクティブスタイラスがセンサ201上で指し示す位置を判別するのに用いることとなる位置パケット(XY)をアクティブスタイラスが送信することとすることを規定する。ダウンリンク時間スロット割当ては、さらに、各フレームの時間スロットs3、s7、s11、およびs15において送信されるデータパケット(DP1、DP2、DP3、DP4、DP5など)が各位置パケット(XY)の直後に続くことを規定する。したがって、2時間スロット[s2/s3]、[s6/s7]、[s10/s11]、および[s14/s15]からなる単位を用いて位置パケット(XY)およびデータパケット(DP)を送信する。
図9Fの例のダウンリンク時間スロット割当ては、開始時間スロットがs2であることを示す「2」というオフセットと、用いる後続の時間スロットが等間隔(T)にある4時間スロットからなることを示す「4」という間隔値と、連続する位置パケット(XY)およびデータパケット(DP)を送信するのに2時間スロットからなる単位を用いることを示す「2」という単位サイズと、各単位においてどのような種類のパケットを送信するかを示すパケットタイプ値とによって規定され得る。例えば、パケットタイプ値0は各単位(DP/DP)においてデータパケットのみを送信することを示し得るものであり、1は各単位(XY/XY)において位置パケットのみを送信することを示し得るものであり、2は
図9Fの例におけるように各単位(XY/DP)において位置パケットの直後にデータパケットが続くように送信することを示し得るものであり、3は各単位(DP/XY)においてデータパケットの直後に位置パケットが続くように送信することを示し得る。
【0108】
ダウンリンク時間スロット割当ての以前の例におけるように、
図9Fは、さらに、各フレームFn+1、Fn+2などの時間スロットs1を、必要に応じてセンサコントローラにスタイラス機能情報(CP)を送信するための、アクティブスタイラスに対するダウンリンク時間スロットとして確保することを示す。
【0109】
なお、
図8A~9Gのダウンリンク時間スロット割当ては一例にすぎず、本発明は
図8A~9Gの特定の例を用いることに限定されない。
【0110】
システム(ホスト)コントローラ300側で動作するオペレーティングシステムおよびアプリケーションが、センサコントローラ200によって提供されるデータに対して平滑化を適用することがしばしばある。このことには、圧力またはチルトなどのスタイラスデータに加えてセンサコントローラ200によって生成される座標データに対する平滑化が含まれる。該アプリケーションのアルゴリズムは、平滑化を適用する場合にデータが均等に時間間隔をおいて計測されることを前提とする場合が多い。センサコントローラ200が、均等に隔てられた位置パケットまたは均等に隔てられたデータパケットを供給する時間スロット割当てを提供することができない場合がある。これらの場合に、センサコントローラ200は、データが均等に時間間隔をおいて出現するように、データをサブサンプリング、スーパーサンプリング、内挿、外挿、または何らかの手段によって調整する必要があり得る。
【0111】
本手法は、座標および/または動作データを時間スロット割当てに起因した異なるレートで計測する場合にも適する。センサコントローラ200からホストプロセッサ300へのデータパケットから欠落データを見出すすべはないため、欠落データを上述のように生成して(例えば、サブサンプリング、スーパーサンプリング、内挿、外挿などによって)、これらの中間パケットを有効なデータによって補充する必要がある。例えば、オリエンテーションデータが座標データの半分のレートで得られる場合に、オリエンテーションデータをスーパーサンプルまたは外挿して、データレートを座標データレートに一致させるように2倍する必要がある。
【0112】
図10は、アクティブスタイラスとセンサコントローラとの間のペアリング動作(および「急速インキング処理(fast inking)」動作)例を示すフローチャートであり、該動作においてアクティブスタイラスはアクティブスタイラスの設定情報を示すハッシュ値(「ハッシュ#1(Hash#1)」)をセンサコントローラに送信する。センサコントローラは、受信したハッシュ#1を認識した後に、センサコントローラが該アクティブスタイラスを以前にペアリングしたスタイラスであると正しく認識するさらなる検証として、アクティブスタイラスに第2のハッシュ値(「ハッシュ#2(Hash#2)」)を返信する。
【0113】
センサコントローラが受信したハッシュ#1を認識する(つまり、センサコントローラが以前にアクティブスタイラスとペアリングしたことがある)ならば、センサコントローラは、センサコントローラ内にキャッシュ済みであるアクティブスタイラスのスタイラス機能情報および/またはダウンリンク時間スロット割当てを用いてペアリング動作を迅速化し得る。
【0114】
ステップS301において、アクティブスタイラスはアクティブスタイラスの設定情報にハッシュ演算を適用し、例えば、典型的には20ビットまで収容する単一の時間スロットで送信することができる固定サイズ(例えば、16ビット)のハッシュ値(「ハッシュ#1(Hash#1)」)を算出する。ステップS302において、アクティブスタイラスは、以下でより詳細に説明するように、ハッシュ#1に対応し、したがってハッシュ#1を検証するのに用いることができる第2のハッシュ値(「ハッシュ#2(Hash#2)」)を算出する。ハッシュ#1およびハッシュ#2は、起動時に、およびユーザがアクティブスタイラスの設定(例えば、スタイラス線幅)を変更するときなどのハッシュ値に影響を与える変化が生じる任意の時点において算出し得る。ハッシュ#1およびハッシュ#2を算出するのに、任意の適当なハッシュ演算を用い得る。例えば、公知のMurmurHash3(商標)を用いて、任意長の機能情報に基づいて32ビットハッシュ値を算出し得る。その場合に、ハッシュ値の16LSBをハッシュ#1として用い、ハッシュ値の16MSBをハッシュ#2として用い得る。算出したハッシュ#1およびハッシュ#2は、アクティブスタイラス、例えばスタイラス機能情報マネージャ110(
図1を参照)のテーブル(TBL)内に格納される。
【0115】
ハッシュ演算を、アクティブスタイラスのスタイラス機能情報のいくつかまたはすべてに適用し得る。例えば、2つのアクティブスタイラスに対して、または1つのアクティブスタイラスの2つの異なる設定に対して同じハッシュ値が算出されるハッシュ衝突のおそれを低減するためには、同じベンダによって製造された複数のアクティブスタイラス間で機能情報が共通であり得ることから機能情報をハッシュ計算から除外することが望ましい場合がある。したがって、アクティブスタイラスがアクティブスタイラスのスタイラス機能情報の設定情報部分とアクティブスタイラスのグローバルIDとに基づいてハッシュ#1およびハッシュ#2を算出し、他のアクティブスタイラス、または異なる設定を有する同じアクティブスタイラスと衝突しにくいアクティブスタイラスの固有の「ハッシュID(Hash ID)」を生成する、種々の実施例が挙げられる。本発明の実施形態として、2つのハッシュ関数を用いてハッシュ#1およびハッシュ#2を算出し、それぞれハッシュ衝突のおそれを低減するものが挙げられる。例えば、13ビットのハッシュ値を生成するように適合されたCRC(巡回冗長検査)の変形などのアルゴリズム1をスタイラス機能情報に対して用いてハッシュ#1を算出し、16ビットのハッシュ値を生成するように適合されたFNV(Fowler-Noll-Vo)などのアルゴリズム2をスタイラス機能情報に対して用いてハッシュ#2を算出し得る。
【0116】
ステップS401において、センサコントローラはビーコン信号(BS)を送信する。ステップS303においてアクティブスタイラスがビーコン信号を検出する場合に、ステップS304において、アクティブスタイラスは上記のステップS301において算出したハッシュ#1を応答信号の一部としてセンサコントローラに送信する。
【0117】
ステップS403においてセンサコントローラがアクティブスタイラスからの応答信号を検出する場合に、ステップS405において、センサコントローラは、応答信号に含まれるハッシュ#1がセンサコントローラ内にキャッシュ済みであるか否かを判定する。キャッシュ済みでない場合は、ステップS407において、センサコントローラは、アクティブスタイラスに一式の(非ハッシュ化)スタイラス機能情報(CP)を送信するように後続のビーコン信号によって読出しコマンドを送信する。ステップS305において、アクティブスタイラスは、センサコントローラからの読出しコマンドに応答して、要求されたスタイラス機能情報(CP)をセンサコントローラに送信する。センサコントローラは、ステップS409において、受信したスタイラス機能情報(CP)に基づいてハッシュ#1およびハッシュ#2を算出して今後の使用に備えてキャッシュ内に記憶する。これに代わるものとして、ステップS409において、センサコントローラはハッシュ#2のみを算出し、算出したハッシュ#2を、上記のステップS405において受信および評価したハッシュ#1と共に記憶する。ステップS409において、センサコントローラは、アクティブスタイラスによってステップS301およびS302において用いられたのと同じハッシュ演算を用いてハッシュ#1およびハッシュ#2を算出する。
【0118】
ステップS405に戻り、センサコントローラがアクティブスタイラスからの応答信号に含まれるハッシュ#1がセンサコントローラ内にキャッシュ済みであると判定する場合に、ハッシュ#1に対応するハッシュ#2もセンサコントローラ内にキャッシュする(ステップS409を参照)。こうして、ステップS411において、センサコントローラは、ハッシュ#1に対応するハッシュ#2を、検証目的でアクティブスタイラスに返信する。特に、ステップS307において、アクティブスタイラスは、上記のステップS304においてアクティブスタイラスが送信したハッシュ#1に対応するセンサコントローラから返信されたハッシュ#2が、アクティブスタイラス内にキャッシュされたハッシュ#2に一致するか否かを判定する。一致する場合は、アクティブスタイラスは、センサコントローラが該アクティブスタイラスを以前にペアリングしたことのあるアクティブスタイラスであると正しく認識したことを確認する。その場合はステップS309において、アクティブスタイラスは、センサコントローラが既に(設定情報を含む)スタイラス機能情報および/またはアクティブスタイラスのダウンリンク時間スロット割当てを有していることを検証する応答信号をセンサコントローラに送信する。ステップS413において、センサコントローラはアクティブスタイラスから応答信号を受信して検証処理を終了する。この時点において、アクティブスタイラスおよびセンサコントローラは、それらが以前にペアリングしたときに用いたのと同じダウンリンク時間スロット割当てを用いて双方向通信を開始する準備ができている。またこの時点において、センサコントローラはアクティブスタイラスによって形成される線描画を開始するのにアプリケーションが必要とするアクティブスタイラスの設定情報をすべて有するため、センサコントローラはすぐに「インキング処理(inking)」の動作を開始し得る。
【0119】
ステップS307において、センサコントローラから受信したハッシュ#2がアクティブスタイラスに記憶されたハッシュ#2に一致しないとアクティブスタイラスが判定する場合は、ステップS311においてアクティブスタイラスは検証失敗を示す失敗メッセージ(FAIL)をセンサコントローラに送信し、ステップS303に戻ってセンサコントローラからのビーコン信号を待ち受けることを再開する。
【0120】
ステップS413において、センサコントローラは、アクティブスタイラスから送信された失敗メッセージ(FAIL)(ステップS311)を受信することと、アクティブスタイラスから成功検証を示す応答信号(ステップS309)を受信しないこととのいずれかによって、検証失敗を知らされる。検証失敗の場合に、センサコントローラはステップS407に戻り、アクティブスタイラスにアクティブスタイラスの一式の(非ハッシュ化)スタイラス機能情報(CP)を送信するように要求する。
【0121】
上述した種々の実施形態を組み合わせてさらなる実施形態を提供することが可能であり、上述の詳細な説明に基づいて実施形態の態様を変更することが可能である。一般に、以下の請求項において、用いられる用語は明細書および請求項において開示された特定の実施形態に限定されると解釈すべきではなく、このような請求項が該当する等価物の全範囲と共にすべての存在し得る実施形態を含むと解釈すべきである。