(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022175997
(43)【公開日】2022-11-25
(54)【発明の名称】通信方法
(51)【国際特許分類】
G06F 3/03 20060101AFI20221117BHJP
G06F 3/041 20060101ALI20221117BHJP
【FI】
G06F3/03 400F
G06F3/03 400A
G06F3/041 500
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021082840
(22)【出願日】2021-05-14
(71)【出願人】
【識別番号】000139403
【氏名又は名称】株式会社ワコム
(74)【代理人】
【識別番号】100130982
【弁理士】
【氏名又は名称】黒瀬 泰之
(72)【発明者】
【氏名】久野 晴彦
(72)【発明者】
【氏名】原 英之
(72)【発明者】
【氏名】今田 吉史
(57)【要約】 (修正有)
【課題】通常データの周期性を維持しつつ、アップリンク信号内のコマンドによりペンにデータを設定できる通信方法を提供する。
【解決手段】アクティブペンとセンサコントローラとの間で実行される通信のための通信方法であって、センサコントローラが、第1のフレームにおいて、アクティブペンに対して次以降のフレームにて値を送信する予定の属性BrushColorを示す識別子を含むコマンドSetDataTypeを送信しS20、センサコントローラが、第1のフレームの次以降のフレームである第2のフレームにおいて、属性BrushColorの値を含むコマンドSetDataValueを送信するS27。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ペンと、前記ペンに対してフレーム周期ごとにアップリンク信号を送信するセンサコントローラとの間で実行される通信のための通信方法であって、
前記センサコントローラが、第1のフレームにおいて、前記ペンに対して次以降のフレームにて値を送信する予定のデータの種別を識別する識別子を含む前記アップリンク信号である第1のアップリンク信号を送信するステップと、
前記センサコントローラが、前記第1のフレームの次以降のフレームである第2のフレームにおいて、前記識別子に対応するデータの値を含む前記アップリンク信号である第2のアップリンク信号を送信するステップと、
を含む通信方法。
【請求項2】
前記ペンが、前記第1のアップリンク信号への応答として、前記識別子により示される種別のデータを設定可能であることを示す応答データを含むダウンリンク信号を送信するステップ、
をさらに含む請求項1に記載の通信方法。
【請求項3】
前記ダウンリンク信号は、筆圧値の上位所定数ビットからなる短縮筆圧値を含む、
請求項2に記載の通信方法。
【請求項4】
前記センサコントローラは、前記ダウンリンク信号により受信された前記短縮筆圧値から復元した筆圧値をホストプロセッサにレポートする、
請求項3に記載の通信方法。
【請求項5】
前記ペンが、前記第1のアップリンク信号内の前記識別子により示される種別のデータを設定可能であるか否かを判定するステップと、
前記ペンが、前記判定するステップにおいて設定可能であると判定した場合に、前記第1のアップリンク信号への応答として、前記識別子により示される種別のデータを設定可能であることを示す応答データを含む第1のダウンリンク信号を送信する一方、前記判定するステップにおいて設定可能でないと判定した場合に、前記応答データを含まない第2のダウンリンク信号を送信するステップと、
をさらに含む請求項1に記載の通信方法。
【請求項6】
前記第1のダウンリンク信号は、筆圧値の上位所定数ビットからなる短縮筆圧値を含み、
前記第2のダウンリンク信号は、前記筆圧値を含む、
請求項5に記載の通信方法。
【請求項7】
前記センサコントローラは、前記第1のアップリンク信号への応答として前記第2のダウンリンク信号を受信した場合、前記第2のアップリンク信号の送信を行わない、
請求項5又は6に記載の通信方法。
【請求項8】
前記センサコントローラが、前記第1のフレームよりも前のフレームにおいて、前記ペンのバージョンを取得するためのコマンドを含む前記アップリンク信号である第3のアップリンク信号を送信するステップ、
をさらに含む請求項1に記載の通信方法。
【請求項9】
前記ペンが、前記第3のアップリンク信号への応答として、前記ペンのバージョンを示す情報を含むダウンリンク信号を送信するステップ、
をさらに含む請求項8に記載の通信方法。
【請求項10】
前記センサコントローラは、前記ダウンリンク信号により受信された前記ペンのバージョンにより、前記識別子により示される種別のデータを前記ペンに設定可能でないことが示される場合に、前記第1のアップリンク信号の送信を行わない、
請求項9に記載の通信方法。
【請求項11】
出力部を含むペンと、前記ペンに対してアップリンク信号を送信するセンサコントローラとの間で実行される通信のための通信方法であって、
前記センサコントローラが、前記ペンがコンタクト中であることを検出している場合に、前記出力部を制御するための制御情報を含む前記アップリンク信号である第1のアップリンク信号を送信するステップと、
前記ペンが、前記第1のアップリンク信号の受信に応じて、前記出力部を制御するステップと、
を含む通信方法。
【請求項12】
前記センサコントローラが、前記ペンが前記タッチ面上で摺動していることを検出するステップ、をさらに含み、
前記センサコントローラは、前記ペンが前記タッチ面上で摺動していることが検出されている場合に前記第1のアップリンク信号を送信する一方、前記ペンが前記タッチ面上で摺動していることが検出されていない場合に前記第1のアップリンク信号を送信しない、
請求項11に記載の通信方法。
【請求項13】
前記センサコントローラは、前記ペンに対してフレーム周期ごとに前記アップリンク信号を送信するよう構成され、
前記センサコントローラが、前記ペンの認識結果を示す認識情報を取得するステップと、
前記センサコントローラが、第1のフレームにおいて、最新の前記認識情報の値を含む前記アップリンク信号である第2のアップリンク信号を送信するステップと、を含み、
前記センサコントローラは、前記第1のフレームの次以降のフレームである1以上の第2のフレームのそれぞれにおいて、前記第1のアップリンク信号を送信する、
請求項11に記載の通信方法。
【請求項14】
前記認識情報は、前記ペンの筆圧値、前記ペンの移動速度、又は、前記ペンの角度である、
請求項13に記載の通信方法。
【請求項15】
前記出力部は、ハプティクス素子、発光素子、又は、音響素子である、
請求項13又は14に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信方法に関し、特に、アクティブペンとセンサコントローラの間で実行される双方向通信のための通信方法に関する。
【背景技術】
【0002】
センサコントローラ及びペンを含み、これらの間で双方向に通信可能に構成された位置検出システムが知られている。以下では、センサコントローラからペンに対して送信される信号を「アップリンク信号」と称し、ペンからセンサコントローラに対して送信される信号を「ダウンリンク信号」と称する。
【0003】
アップリンク信号は、センサコントローラからペンへの命令を示すコマンドを含む信号である。アップリンク信号を受信したペンは、その中に含まれるコマンドに応じた動作を行う。一方、ダウンリンク信号は、センサコントローラに位置を検出させるための位置信号と、ペンからセンサコントローラに対して送信するデータによって変調されてなるデータ信号とを含む信号である。データ信号によって送信されるデータには、描画のために周期的に送信されるデータ(筆圧値など。以下「通常データ」という)と、コマンドへの応答として送信されるデータ(以下「応答データ」という)とが含まれる。
【0004】
アップリンク信号は、アップリンク信号及びダウンリンク信号の送受信スケジュール(つまり、ダウンリンク信号の送信タイミング、及び、次のアップリンク信号の受信タイミング)の基準となるタイミングをペンに知らせる役割も有しており、センサコントローラはアップリンク信号を周期的に送信するよう構成される。ペンは、アップリンク信号の受信タイミングに基づいてアップリンク信号及びダウンリンク信号の送受信スケジュールを決定し、決定した送受信スケジュールに従って、ダウンリンク信号の送信と、次のアップリンク信号の受信とを実行する。
【0005】
特許文献1,2には、位置検出システムの例が開示されている。これらの例においては、送信するコマンドのサイズに応じて、アップリンク信号のサイズが可変とされている。こうすることでセンサコントローラは、ペンに対し、様々なサイズのコマンドを送信することが可能になる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第6603435号公報
【特許文献2】特許第6644200号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで出願人は、アップリンク信号内のコマンドにより、描画色(BrushColor)などのデータをペンに設定できるようにすることを考えている。具体的には、設定データの種別及び値を含むコマンドをアップリンク信号内に配置し、このコマンドによってペン内にデータを設定することを検討している。
【0008】
しかしながら、設定データの種別及び値を含むコマンドはサイズが大きなものになることから、アップリンク信号内に配置することとすると、アップリンク信号のサイズが大きくなってしまう。そうすると、ダウンリンク信号の送信に割り当てられる時間が減り、通常データの周期性に影響が及ぶので、改善が必要であった。
【0009】
したがって、本発明の目的の一つは、通常データの周期性を維持しつつ、アップリンク信号内のコマンドによりペンにデータを設定できる通信方法を提供することにある。
【0010】
また、近年では筆圧値のビット数が多くなっている(例えば12ビット)ことから、1つのダウンリンク信号内に応答データと通常データの両方を配置することが難しくなっている。そうすると、応答データを送信する際には通常データが欠落してしまうことになるので、改善が必要であった。
【0011】
したがって、本発明の目的の他の一つは、通常データの周期性を維持しつつ、ペンからセンサコントローラに対して応答データを送信できる通信方法を提供することにある。
【0012】
また、出願人は、ハプティクス素子、発光素子、音響素子などの出力部をペン内に配置し、ペンで検出中の筆圧値に応じて出力部を制御することにより、よりリアルな書き心地を提供することを検討している。出力部の制御には、ハプティクス素子の振動制御、発光素子の発光制御、音響素子の鳴動制御などが含まれる。
【0013】
しかしながら、ペンで検出中の筆圧値に応じて出力部を制御することとすると、壁などのタッチ面以外の表面にペン先が押し当てられているときにも、出力部の制御が実行されることになる。そうすると、不必要なときにハプティクス素子が振動したり、発光素子が発光したり、音響素子が鳴動したりすることになってしまうので、改善が必要であった。
【0014】
したがって、本発明の目的のさらに他の一つは、ペン内に配置した出力部の制御を適切なタイミングで実行できる通信方法を提供することにある。
【0015】
この点、センサコントローラからペンの出力部を制御することとすれば、センサコントローラがペンを検出しているときだけ出力部を制御することが可能になるので、ペン内に配置した出力部の制御を適切なタイミングで実行できるようになると考えられる。そしてさらに、例えばペンの移動速度など、センサコントローラによって認識され得るペンの情報(以下「認識情報」という)をアップリンク信号によってペンに送信すれば、ペンの移動速度に応じた振動量でペンを振動させるなど、より高度な出力部の制御が可能になると考えられる。
【0016】
しかしながら、認識情報はデータサイズが大きいことから、認識情報を頻繁に送信することは困難である。そうすると、認識情報を送信した後、次に認識情報を送信するまでの間に、ペンの状況によらず出力部の制御が継続することになる。一例を挙げると、ペンがタッチ面から離れた後であっても、そのことを認識したセンサコントローラによって次の認識情報が送信されるまでの間、最後に送信した認識情報に応じた制御量で出力部の制御が継続してしまうことになる。これではペン内に配置した出力部の制御を適切に実行できているとは言えないので、改善が必要であった。
【0017】
したがって、本発明の目的のさらに他の一つは、ペン内に配置した出力部の認識情報による制御を適切に実行できる通信方法を提供することにある。
【課題を解決するための手段】
【0018】
本発明の第1の側面による通信方法は、ペンと、前記ペンに対してフレーム周期ごとにアップリンク信号を送信するセンサコントローラとの間で実行される通信のための通信方法であって、前記センサコントローラが、第1のフレームにおいて、前記ペンに対して次以降のフレームにて値を送信する予定のデータの種別を識別する識別子を含む前記アップリンク信号である第1のアップリンク信号を送信するステップと、前記センサコントローラが、前記第1のフレームの次以降のフレームである第2のフレームにおいて、前記識別子に対応するデータの値を含む前記アップリンク信号である第2のアップリンク信号を送信するステップと、を含む通信方法である。
【0019】
本発明の第2の側面による通信方法は、本発明の第1の側面による通信方法において、前記ペンが、前記第1のアップリンク信号への応答として、前記識別子により示される種別のデータを設定可能であることを示す応答データを含むダウンリンク信号を送信するステップ、をさらに含み、前記ダウンリンク信号は、筆圧値の上位所定数ビットからなる短縮筆圧値を含む、通信方法である。
【0020】
本発明の第3の側面による通信方法は、出力部を含むペンと、前記ペンに対してアップリンク信号を送信するセンサコントローラとの間で実行される通信のための通信方法であって、前記センサコントローラが、前記ペンがコンタクト中であることを検出している場合に、前記出力部を制御するための制御情報を含む前記アップリンク信号である第1のアップリンク信号を送信するステップと、前記ペンが、前記第1のアップリンク信号の受信に応じて、前記出力部を制御するステップと、を含む通信方法である。
【0021】
本発明の第4の側面による通信方法は、本発明の第3の側面による通信方法において、前記センサコントローラは、前記ペンに対してフレーム周期ごとに前記アップリンク信号を送信するよう構成され、前記センサコントローラが、前記ペンの認識結果を示す認識情報を取得するステップと、前記センサコントローラが、第1のフレームにおいて、最新の前記認識情報の値を含むアップリンク信号である第2のアップリンク信号を送信するステップと、を含み、前記センサコントローラは、前記第1のフレームの次以降のフレームである1以上の第2のフレームのそれぞれにおいて、前記第1のアップリンク信号を送信する、通信方法である。
【発明の効果】
【0022】
本発明の第1の側面によれば、データの種別とデータの値とを別々のフレームで送信するようにしたので、通常データの周期性を維持しつつ、アップリンク信号内のコマンドによりペンにデータを設定することが可能になる。
【0023】
本発明の第2の側面によれば、ダウンリンク信号内に筆圧値を配置することは難しくても、代わりに短縮筆圧値を配置できるので、通常データの周期性を維持しつつ、ペンからセンサコントローラに対して応答データを送信することが可能になる。
【0024】
本発明の第3の側面によれば、制御情報を含む第1のアップリンク信号に応じて出力部の制御が行われるので、ペン内に配置した出力部の制御を適切なタイミングで実行することが可能になる。
【0025】
本発明に第4の側面によれば、認識情報を毎フレーム送信しなくても、最新の認識情報に基づいて出力部の制御のオンオフを切り替えることができるので、ペン内に配置した出力部の認識情報による制御を適切に実行することが可能になる。
【図面の簡単な説明】
【0026】
【
図1】本発明の第1の実施の形態による位置検出システム1の構成を示す図である。
【
図2】アップリンク信号US及びダウンリンク信号DSの送受信スケジュールを説明する図である。
【
図3】アップリンク信号USの構成を示す図である。
【
図4】データ信号のビット長が16ビットである場合について、
図2に示したダウンリンク信号DS1,DS2それぞれのデータ信号の部分の構成を示す図である。
【
図5】データ信号のビット長が12ビットである場合について、
図2に示したダウンリンク信号DS1,DS2それぞれのデータ信号の部分の構成を示す図である。
【
図6】センサコントローラ31がアクティブペン2からデータを取得する場合の処理を示すシーケンス図である。
【
図7】センサコントローラ31からアクティブペン2にデータを設定する場合の処理を示すシーケンス図である。
【
図8】アクティブペン2の出力部26の制御をセンサコントローラ31から行うための処理を示すシーケンス図である。
【
図9】アクティブペン2が行う出力部制御処理を示す図である。
【発明を実施するための形態】
【0027】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
【0028】
図1は、本発明の実施の形態による位置検出システム1の構成を示す図である。同図に示すように、位置検出システム1は、アクティブペン2と、アクティブペン2を検出する位置検出装置である電子機器3とを備えて構成される。
【0029】
電子機器3は、例えばタブレットコンピュータやデジタイザなどのタッチ面3aを有するコンピュータである。電子機器3内には、タッチ面3aの直下に配置されたセンサ30と、センサ30に接続されたセンサコントローラ31と、センサ30と重畳して配置されたディスプレイ32と、これらを含む電子機器3の各部を制御するホストプロセッサ33とが設けられる。
【0030】
ホストプロセッサ33は電子機器3の中央処理装置であり、図示しないメモリから各種のプログラムを読み出し、実行するように構成される。こうして実行されるプログラムには、電子機器3のオペレーティングシステムや描画アプリケーションを含む各種のアプリケーションが含まれる。このうち描画アプリケーションは、センサコントローラ31から供給される位置及びデータに基づいてデジタルインクを生成し、電子機器3内のメモリに記憶する処理や、生成したデジタルインクをレンダリングし、その結果を示す映像信号を生成してディスプレイ32に供給する処理を実行するためのプログラムである。ディスプレイ32は、ホストプロセッサ33から供給される映像信号を表示する装置であり、例えば液晶ディスプレイ又は有機ELディスプレイによって構成される。
【0031】
センサコントローラ31は、センサ30を介してアクティブペン2と双方向に通信することによって、タッチ面3a内におけるアクティブペン2の位置を導出するとともに、アクティブペン2からデータを取得し、導出した位置及び取得したデータを、都度ホストプロセッサ33に供給する機能を有する集積回路である。センサコントローラ31は、センサ30を介して複数のアクティブペン2のそれぞれと双方向に通信することによって、各アクティブペン2の位置を導出するとともに、各アクティブペン2からデータを取得することも可能に構成される。
【0032】
センサコントローラ31とアクティブペン2の間の通信は、例えばアクティブ静電方式又は電磁誘導方式によって実現される。アクティブ静電方式を用いる場合のセンサ30は、それぞれy方向に延在し、x方向に等間隔で配置される複数のx側線状電極と、それぞれx方向に延在し、y方向に等間隔で配置される複数のy側線状電極とを含んで構成される。一方、電磁誘導方式を用いる場合のセンサ30は、それぞれy方向に延在する複数のx側ループコイルと、それぞれx方向に延在する複数のy側ループコイルとを含んで構成される。以下では、センサコントローラ31からアクティブペン2に対して送信される信号をアップリンク信号USと称し、アクティブペン2からセンサコントローラ31に対して送信される信号をダウンリンク信号DSと称する。
【0033】
センサコントローラ31は、所定のフレーム周期ごとにアップリンク信号USを送信し、アップリンク信号USのインターバルでダウンリンク信号DSを受信するよう構成される。アップリンク信号USは、アップリンク信号US及びダウンリンク信号DSの送受信スケジュール(つまり、ダウンリンク信号DSの送信タイミング、及び、次のアップリンク信号USの受信タイミング)の基準となるタイミングをアクティブペン2に知らせる役割を有している。アクティブペン2は、アップリンク信号USの受信タイミングに基づいてアップリンク信号US及びダウンリンク信号DSの送受信スケジュールを決定し、決定した送受信スケジュールに従って、ダウンリンク信号DSの送信と、次のアップリンク信号USの受信とを実行する。アップリンク信号USのインターバル内におけるダウンリンク信号DSの送信タイミング及び送信継続時間は、通信プロトコルにより予め規定されている。
【0034】
センサコントローラ31とアクティブペン2の間の通信をアクティブ静電方式により行う場合、電子機器3を、所謂「インセル型」の位置検出装置として構成してもよい。この場合、センサ30を構成する複数のx側線状電極及び複数のy側線状電極の一方がディスプレイ32の共通電極(各画素に共通に接地電位を供給するための電極)を兼ねる。したがってセンサコントローラ31は、ディスプレイ32内の画素を駆動するタイミングでは、センサ30を用いてアップリンク信号USの送信やダウンリンク信号DSの受信を行うことができない。そこでセンサコントローラ31は、ホストプロセッサ33からディスプレイ32内の画素を駆動するタイミングを取得し、画素の駆動周期によって定まる一定の周期を上記フレーム周期としてアップリンク信号USの送信を行うとともに、それぞれ画素の駆動インターバルに相当する複数の時間スロットをアップリンク信号USの送信インターバルに設定し、各時間スロット内の時間を用いてアクティブペン2からのダウンリンク信号DSを受信するよう構成される。
【0035】
アップリンク信号US及びダウンリンク信号DSの構成について簡単に説明すると、まずアップリンク信号USは、アクティブペン2に対する命令を示すコマンドによって変調された信号であり、各送信ビットを所定のチップ列(拡散符号)により拡散してなるパルス波(矩形波)によって構成される。一方、ダウンリンク信号DSは、センサコントローラ31にアクティブペン2の位置を検出させるための位置信号と、センサコントローラ31に対して送信するデータによって変調されたデータ信号とを含む信号である。データ信号により送信されるデータには、筆圧値など、描画のために周期的に送信される通常データと、コマンドへの応答として送信される応答データとが含まれる。ただし、位置信号の送信は必須ではなく、センサコントローラ31は、データ信号からもアクティブペン2の位置を検出し得る。
【0036】
アクティブペン2は、芯体20と、ペン先電極21と、圧力センサ22と、サイドスイッチ23と、バッテリー24と、集積回路25と、出力部26とを有して構成される。芯体20は、アクティブペン2のペン軸を構成する部材である。芯体20の先端はアクティブペン2のペン先を構成し、末端は圧力センサ22に当接している。ペン先電極21はペン先に設けられた導電体であり、集積回路25と電気的に接続されている。
【0037】
圧力センサ22は、芯体20の先端に加わる圧力を検出するセンサである。圧力センサ22が検出した圧力は、例えば12ビットの筆圧値として集積回路25に供給される。芯体20の先端に圧力が加わっていない場合、圧力センサ22から集積回路25に供給される筆圧値は0となる。このように筆圧値が0である状態を、以下の説明では「ホバー中」と称する。一方、芯体20の先端に圧力が加わっている場合、圧力センサ22から集積回路25に供給される筆圧値は0より大きい値となる。このように筆圧値が0より大きい値である状態を、以下の説明では「コンタクト中」と称する。
【0038】
サイドスイッチ23は、アクティブペン2の表面に設けられた押しボタン式のスイッチであり、ユーザによりオンオフ操作可能に構成される。サイドスイッチ23の操作状態(オンオフ状態)は、例えば2ビットのスイッチ情報として集積回路25に供給される。なお、
図1にはサイドスイッチ23を1つだけ図示しているが、複数のサイドスイッチ23を設けることとしてもよい。
【0039】
集積回路25は、バッテリー24から供給される電力によって動作する集積回路であり、アップリンク信号USの受信、ダウンリンク信号DSの生成及び送信を含む各種の処理を実行する役割を有している。具体的には、ペン先電極21の電位の変化を検出することによってアップリンク信号USを受信し、受信したアップリンク信号USに基づいてダウンリンク信号DSを生成し、生成したダウンリンク信号DSに基づいてペン先電極21の電位に変化を与えることによって、ダウンリンク信号DSを送信する。集積回路25がアップリンク信号USに基づいて行う処理には、他に、アップリンク信号USの受信タイミングを基準時刻として、上述した送受信スケジュールを決定する処理が含まれる。
【0040】
集積回路25には、センサコントローラ31から各種のデータを設定可能に構成される。このデータには、例えば、属性BrushColorが含まれる。属性BrushColorは、描画アプリケーションがデジタルインクをレンダリングする際の描画色を決める属性であり、後述するペアリングの際、センサコントローラ31からの要求(具体的には、後述するコマンドGetVersion又はコマンドGetData)に応じて、アクティブペン2からセンサコントローラ31に送信される。
【0041】
出力部26は、アクティブペン2のユーザに対して感覚的なフィードバックを与えるための装置であり、例えばアクチュエータなどのハプティクス素子、例えば発光ダイオードなどの発光素子、又は、例えばスピーカーなどの音響素子によって構成される。集積回路25は、センサコントローラ31から受信される認識情報及び制御情報に応じて出力部26を制御することにより、ユーザに感覚的なフィードバックを与える処理も行う。この点の詳細については、後ほど
図8及び
図9を参照して詳しく説明する。
【0042】
図2は、アップリンク信号US及びダウンリンク信号DSの送受信スケジュールを説明する図である。同図に示すように、まずセンサコントローラ31は、一定のフレーム周期Fでアップリンク信号USを送信するよう構成される。個々のアップリンク信号USの時間長TLは一定値である。また、センサコントローラ31は、アップリンク信号USの送信インターバルには、ダウンリンク信号DSの受信動作(図では「R」と表記している)を行うよう構成される。
【0043】
アクティブペン2は、アップリンク信号USが受信されるようになるまでの間、連続的又は断続的にアップリンク信号USの受信動作を繰り返す。その結果としてアップリンク信号USを受信すると、アクティブペン2は、センサコントローラ31との間でペアリングを行うことによってセンサコントローラ31との通信を開始する。ペアリングの詳細については後述するが、ペアリングによって、センサコントローラ31が通信中の各アクティブペン2を識別するためのローカル識別子がアクティブペン2に付与される。
【0044】
センサコントローラ31とのペアリングを確立したアクティブペン2は、アップリンク信号USの送信インターバルにダウンリンク信号DSを送信するよう構成される。ダウンリンク信号DSの具体的な送信タイミングは、通信プロトコルの中でローカル識別子ごとに予め決められている。
図2には、アップリンク信号USの送信インターバルの開始から時間Dの経過後に1回目のダウンリンク信号DS(以下「ダウンリンク信号DS1」という場合がある)の送信を開始し、そこからさらに時間Intvの経過後に2回目のダウンリンク信号DS(以下「ダウンリンク信号DS2」という場合がある)の送信を開始するように通信プロトコルの中で決められている例を示している。この例において、時間D及び時間Intvの具体的な値は、
図2に示すように、ダウンリンク信号DS2の送信開始から、その後に送信されるダウンリンク信号DS1の送信開始までの経過時間が時間Intvに等しくなるように決定されることが好ましい。こうすることでセンサコントローラ31は、一定の周期でアクティブペン2の位置を検出し、アクティブペン2が送信したデータを受信することが可能になる。
【0045】
図3は、アップリンク信号USの構成を示す図である。初めに上側の図を参照すると、アップリンク信号USは、ローカル識別子LID、コマンドCOM、ローカル識別子NLID、及び誤り検出符号CSをこの順で含んで構成される。このうちローカル識別子LID,NLIDは、上述したローカル識別子である。また、コマンドCOMは、センサコントローラ31からアクティブペン2への命令を示すデータである。アップリンク信号US内のローカル識別子LIDはコマンドCOMの宛先を示す役割を有しており、ローカル識別子LIDを記憶しているアクティブペン2のみがコマンドCOMに応じた処理(コマンドCOMに応じたダウンリンク信号DSの生成など)を行う。誤り検出符号CSは、アップリンク信号USを受信したアクティブペン2が通信経路で発生したビット誤りを検出するために用いる符号である。
【0046】
ここで、センサコントローラ31とアクティブペン2のペアリングについて詳しく説明すると、まず、どのアクティブペン2ともペアリングしていない状態のセンサコントローラ31は、最初にペアリングしたアクティブペン2に割り当てるためのローカル識別子をアップリンク信号US内のローカル識別子NLIDに設定する。このアップリンク信号USを受信したアクティブペン2は、その中に含まれるローカル識別子NLIDを抽出し、自身のローカル識別子LIDとして記憶することによって、センサコントローラ31とのペアリングを確立する。その後のアクティブペン2は、記憶したローカル識別子に割り当てられているタイミングで、ダウンリンク信号DSの送信を行う。
【0047】
一方、センサコントローラ31は、ローカル識別子NLIDに設定したローカル識別子に割り当てられているタイミングでダウンリンク信号DSを受信したか否かを判定し、受信した場合には、そのローカル識別子NLIDをペアリング済みのローカル識別子として記憶することにより、アクティブペン2とのペアリングを確立する。その後のセンサコントローラ31は、ペアリングを確立したアクティブペン2との間で双方向の通信を開始するとともに、アップリンク信号US内のローカル識別子NLIDに新たなローカル識別子を設定する。このローカル識別子NLIDを記憶する新たなアクティブペン2が発生した場合には、上記と同様の手順で再度ペアリングが実行されることになる。また、センサコントローラ31は、ペアリングを確立する際、以下で説明するコマンドGetVersion又はコマンドGetDataをアクティブペン2に対して送信することにより、アクティブペン2から、そのバージョンや上述した属性BrushColorなどの各種情報を取得し、ホストプロセッサ33にレポートする処理を行う。
【0048】
図3には、GetVersion、SetDataType、SetDataValue、GetDataという4種類のコマンドCOMも示している。なお、ここには4種類のコマンドCOMのみを示しているが、実際には、より多くの種類のコマンドCOMが存在している。以下の説明では、例えばコマンドGetVersionを含むアップリンク信号USを単に「コマンドGetVersion」というように、コマンドCOMの名称でアップリンク信号USを表す場合がある。
【0049】
図3に示すように、各コマンドCOMは、ヘッダーHD1と、データCOMTypeと、制御情報MOVとを含んで構成される。このうちヘッダーHD1は、この信号がコマンドCOMであることを示す2ビットのデータである。また、データCOMTypeは、コマンドCOMの種類を示すデータである。アクティブペン2は、まずヘッダーHD1を参照することによって、受信されたアップリンク信号USにコマンドCOMが含まれていることを検出し、次いでデータCOMTypeを参照することによって、コマンドCOMの種類を取得する。制御情報MOVは、センサコントローラ31からアクティブペン2の出力部26を制御するための1ビットのデータである。制御情報MOVについては、後ほど
図8及び
図9を参照して詳しく説明する。
【0050】
各コマンドCOMの種類ごとの役割及び構成について説明すると、まずコマンドGetVersionは、アクティブペン2のバージョン(例えば、集積回路25に読み込まれているファームウェアのバージョン)又はアクティブペン2に予め割り当てられているグローバルIDを取得するためのコマンドであり、取得するデータの種類を示す2ビットのデータTypeを含んで構成される。コマンドSetDataTypeは、アクティブペン2に対して次以降のフレームにて値を送信する予定のデータの種別を通知するためのコマンドであり、4ビットの識別子SetDataTypeを含んで構成される。コマンドSetDataValueは、コマンドSetDataTypeで通知したデータの値を実際に送信するためのコマンドであり、識別子SetDataTypeに対応するデータの値SetDataValueを含んで構成される。データの値SetDataValueのビット数は最大で8ビットである。コマンドGetDataは、アクティブペン2から任意のデータを取り出すためのコマンドであり、取り出すデータの種類を示す4ビットのデータGetDataTypeを含んで構成される。
【0051】
図4及び
図5はそれぞれ、
図2に示したダウンリンク信号DS1,DS2のそれぞれについて、上述したデータ信号の部分の構成を示す図である。
図4は、データ信号のビット長が16ビットである場合を示し、
図5は、データ信号のビット長が12ビットである場合を示している。
【0052】
図4及び
図5に示すように、ダウンリンク信号DS1,DS2の構成はコンタクト中とホバー中とで異なるが、いずれの場合においても、Normal、DataType、Ack、DataValueという4種類のデータ信号のいずれかを含んで構成される。このうちデータ信号Normalは通常データを含む信号であり、他の種類のデータ信号を送信する必要がないときに送信される。一方、データ信号DataType、Ack、DataValueは、アップリンク信号USにより受信されたコマンドCOMへの応答として送信される応答データを含む信号である。データ信号DataType、Ack、DataValueには、後述する一部の例外を除き、通常データも含まれる。
【0053】
図4及び
図5に示すように、各種類のデータ信号は、2ビットのヘッダーHD2と、2ビット又は4ビットの誤り検出符号CSとを含んで構成される。このうち誤り検出符号CSは、データ信号を受信したセンサコントローラ31が通信経路で発生したビット誤りを検出するために用いる符号である。
【0054】
ヘッダーHD2は、アクティブペン2がコンタクト中である場合には「00」、「01」、「10」のいずれかの値を取り、ホバー中である場合には「11」の値を取るデータである。センサコントローラ31は、最初にこのヘッダーHD2を参照することにより、アクティブペン2のコンタクト状態(具体的には、コンタクト中及びホバー中のいずれか)を取得する。
【0055】
コンタクト中である場合のヘッダーHD2は、
図1に示したサイドスイッチ23の押下状態、又は、アクティブペン2が未ペアリングの状態であることを示す役割も有している。アクティブペン2が2つのサイドスイッチ23を有する場合を例に取って具体的に説明すると、一例では、「00」に2つのサイドスイッチ23がいずれも押下されていない状態、「01」に1つ目のサイドスイッチ23が押下されている状態、「10」に2つ目のサイドスイッチ23が押下されている状態がそれぞれ割り当てられ得る。他の一例では、ダウンリンク信号DS1,DS2の「00」に2つのサイドスイッチ23がいずれも押下されていない状態、ダウンリンク信号DS1の「01」に1つ目のサイドスイッチ23が押下されている状態、ダウンリンク信号DS2の「01」に2つ目のサイドスイッチ23が押下されている状態、ダウンリンク信号DS1,DS2の「10」にアクティブペン2が未ペアリングの状態であることがそれぞれ割り当てられ得る。ヘッダーHD2を参照することによってアクティブペン2がコンタクト中であることを検出したセンサコントローラ31は、ヘッダーHD2をさらに参照することにより、上記の各状態を取得する。
【0056】
以下、各種類のデータ信号の構成について、詳しく説明する。初めに
図4を参照し、データ信号が16ビットであり、かつ、アクティブペン2がコンタクト中である場合について説明すると、この場合のデータ信号Normalは、ダウンリンク信号DS1,DS2ともに、圧力センサ22から集積回路25に供給される12ビットの筆圧値PREの全体を含んで構成される。これによりセンサコントローラ31は、
図2に示した時間Intvの周期で、アクティブペン2から筆圧値PREを取得することが可能になる。
【0057】
データ信号DataTypeは、
図3に示したコマンドSetDataTypeへの応答として送信される信号であり、ダウンリンク信号DS1,DS2ともに、筆圧値PREの上位8ビットからなる短縮筆圧値CPRE1と、コマンドSetDataTypeに含まれていた識別子SetDataTypeに等しいデータTypeInfoとを含んで構成される。データ信号DataTypeを受信したセンサコントローラ31は、短縮筆圧値CPRE1に4つの「0」をパディングすることにより、12ビットの筆圧値PREを復元するよう構成される。また、センサコントローラ31は、コマンドSetDataTypeを送信したフレーム内で受信された2つのデータ信号のうちのいずれか一方の10ビット目~13ビット目と、送信した識別子SetDataTypeとを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataTypeを正しく受信したと判定するよう構成される。
【0058】
ここで、アクティブペン2がコマンドSetDataTypeを正しく受信しておらず、データ信号Normalを送信した場合においても、コマンドSetDataTypeと同じフレーム内で送信される2つのデータ信号のいずれかの10ビット目~13ビット目が識別子SetDataTypeに偶然一致することはあり得る。しかし、滅多に発生しない一致であることから、位置検出システム1においては、この一致をエラーの1つとして許容することとしている。この点は、これから説明する他の種類のデータ信号についても同様である。
【0059】
データ信号Ackは、
図3に示したコマンドSetDataValueへの応答として送信される信号であり、ダウンリンク信号DS1,DS2ともに、短縮筆圧値CPRE1と、コマンドSetDataValueに含まれていたデータの値SetDataValueのハッシュ値である応答Ackとを含んで構成される。データ信号Ackを受信したセンサコントローラ31が短縮筆圧値CPRE1から筆圧値PREを復元する点は、データ信号DataTypeの場合と同様である。
【0060】
上記ハッシュ値を導出するためのハッシュ関数は、予めアクティブペン2とセンサコントローラ31との間で共有されている。アクティブペン2は、このハッシュ関数によって受信したデータの値SetDataValueのハッシュ値を導出することにより、応答Ackを生成するよう構成される。センサコントローラ31も、このハッシュ関数を用いてデータの値SetDataValueのハッシュ値を導出している。コマンドSetDataValueを送信したセンサコントローラ31は、自身で導出したデータの値SetDataValueのハッシュ値と、コマンドSetDataValueを送信したフレーム内で受信された2つのデータ信号のうちのいずれか一方の10ビット目~13ビット目とを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataValueを正しく受信したと判定するよう構成される。
【0061】
データ信号DataValueは、
図3に示したコマンドGetDataへの応答として送信される信号であり、ダウンリンク信号DS1,DS2とに、筆圧値PREの上位4ビットからなる短縮筆圧値CPRE2と、コマンドGetVersion又はコマンドGetDataにより送信を要求されたデータDataの少なくとも一部とを含んで構成される。データ信号DataValueを受信したセンサコントローラ31は、短縮筆圧値CPRE2に8つの「0」をパディングすることにより、12ビットの筆圧値PREを復元する。
【0062】
1フレーム内で送信可能なデータDataのビット数は最大で16ビットであり、ダウンリンク信号DS1により送信されるデータ信号DataValue内に下位8ビット、ダウンリンク信号DS2により送信されるデータ信号DataValue内に上位8ビットがそれぞれ配置される。センサコントローラ31は、コマンドGetVersion又はコマンドGetDataを送信したフレーム内で受信された2つのデータ信号のそれぞれから6ビット目~13ビット目を取り出すことにより、アクティブペン2が送信したデータDataを取得するよう構成される。
【0063】
次に、引き続き
図4を参照し、データ信号が16ビットであり、かつ、アクティブペン2がホバー中である場合について説明する。ホバー中に送信されるデータ信号は、少なくとも直接的には筆圧値又は短縮筆圧値をいずれも含まない点で、コンタクト中に送信されるデータ信号と相違する。ただし、筆圧値が0であることは、ヘッダーHD2を「11」とすることによって、センサコントローラ31に間接的に通知されている。
【0064】
また、ホバー中のデータ信号Normal、DataType、Ackはそれぞれ、偶数番目のビットと奇数番目のビットとが同じ値になるように構成される。これは、コンタクト中に比べてセンサ30とペン先電極21の間の距離が長いホバー中においても、センサコントローラ31がデータ信号を正常に受信できるようにするための構成である。この構成を採用したことにより、データ信号Normal、DataType、Ackにより実質的に送信できるビット数は、8ビットに半減する。ホバー中のデータ信号Normal、DataType、Ackにおける誤り検出符号CSは4ビットのデータにより構成されており、これにより、実質的に2ビットの誤り検出符号CSが実現されている。一方、ホバー中のデータ信号DataValueは、コンタクト中のデータ信号DataValueと同様、実質的にも16ビットの信号により構成される。
【0065】
ホバー中のデータ信号Normalは、ダウンリンク信号DS1,DS2ともに、実質的に1ビットのデータSW1と、実質的に1ビットのデータSW2と、実質的に2ビットのデータBTとを含んで構成される。データSW1,SW2はそれぞれ、1つ目及び2つ目のサイドスイッチ23のオンオフ状態を示すデータである。データBTは、バッテリー24の残量を示すデータである。センサコントローラ31は、受信したデータ信号Normalを復調することにより、データSW1,SW2,BTを取得するよう構成される。この点は、後述する他のデータ信号DataType、Ack,DataValueについても同様である。
【0066】
ホバー中のデータ信号DataTypeは、まずダウンリンク信号DS2内においては、ホバー中のデータ信号Normalと同様の構成を有している。一方、ホバー中に送信されるダウンリンク信号DS1内のデータ信号DataTypeは、データSW1,SW2,BTに代え、実質的に4ビットのデータTypeInfoを含んで構成される。データTypeInfoは、上述したように、コマンドSetDataTypeに含まれていた識別子SetDataTypeに等しいデータである。センサコントローラ31は、コマンドSetDataTypeを送信したフレーム内で受信されたダウンリンク信号DS1内のデータ信号の1ビット目~4ビット目と、送信した識別子SetDataTypeとを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataTypeを正しく受信したと判定する。
【0067】
ホバー中のデータ信号Ackも、まずダウンリンク信号DS2内においては、ホバー中のデータ信号Normalと同様の構成を有している。一方、ホバー中に送信されるダウンリンク信号DS1内のデータ信号Ackは、データSW1,SW2,BTに代え、実施的に4ビットの応答Ackを含んで構成される。応答Ackは、上述したように、コマンドSetDataValueに含まれていたデータの値SetDataValueのハッシュ値である。センサコントローラ31は、自身で導出したデータの値SetDataValueのハッシュ値と、コマンドSetDataValueを送信したフレーム内で受信されたダウンリンク信号DS1内のデータ信号の1ビット目~4ビット目とを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataValueを正しく受信したと判定する。
【0068】
ホバー中のデータ信号DataValueは、ダウンリンク信号DS1,DS2ともに、コマンドGetVersion又はコマンドGetDataにより送信を要求されたデータDataの少なくとも一部を含んで構成される。1フレーム内で送信可能なデータDataのビット数は、コンタクト中と同じ最大16ビットであり、ダウンリンク信号DS1により送信されるデータ信号DataValue内に下位8ビット、ダウンリンク信号DS2により送信されるデータ信号DataValue内に上位8ビットがそれぞれ配置される。センサコントローラ31は、コマンドGetVersion又はコマンドGetDataを送信したフレーム内で受信された2つのデータ信号のそれぞれから6ビット目~13ビット目を取り出すことにより、アクティブペン2が送信したデータDataを取得する。また、ダウンリンク信号DS2内のデータ信号DataValueは、データSW1,SW2,BTをさらに含んで構成される。
【0069】
次に
図5を参照し、データ信号が12ビットである場合について、
図4に示したデータ信号が16ビットである場合との相違点に着目して説明する。まずコンタクト中のデータ信号Normalは、ダウンリンク信号DS1,DS2ともに、筆圧値PREの一部を含んで構成される。具体的には、ダウンリンク信号DS1により送信されるデータ信号Normal内に筆圧値PREの下位4ビット、ダウンリンク信号DS2により送信されるデータ信号Normal内に筆圧値PREの上位8ビットが配置される。センサコントローラ31は、これらを合成することにより、12ビットの筆圧値PREの全体を取得するよう構成される。したがって、データ信号が12ビットである場合のセンサコントローラ31がアクティブペン2から筆圧値PREを取得する周期は、後述するデータ信号DataValueが送信される場合を除き、
図2に示したフレーム周期Fに等しくなる。
【0070】
コンタクト中に送信されるダウンリンク信号DS1内のデータ信号DataTypeは、上述したデータTypeInfoを含んで構成される。センサコントローラ31は、コマンドSetDataTypeを送信したフレーム内で受信されたダウンリンク信号DS1内のデータ信号の6ビット目~9ビット目と、送信した識別子SetDataTypeとを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataTypeを正しく受信したと判定する。
【0071】
一方、コンタクト中に送信されるダウンリンク信号DS2内のデータ信号DataTypeは、上述した短縮筆圧値CPRE1を含んで構成される。センサコントローラ31は、データ信号が16ビットである場合と同様に、短縮筆圧値CPRE1から筆圧値PREを復元するよう構成される。なお、ダウンリンク信号DS1により送信されるデータ信号DataType内に筆圧値PREの下位4ビットを配置することで、データ信号DataTypeを送信する場合においても、1フレームで筆圧値PREの全体を送信するようにしてもよい。
【0072】
コンタクト中に送信されるダウンリンク信号DS1内のデータ信号Ackは、上述した応答Ackを含んで構成される。センサコントローラ31は、自身で導出したデータの値SetDataValueのハッシュ値と、コマンドSetDataValueを送信したフレーム内で受信されたダウンリンク信号DS1内のデータ信号の6ビット目~9ビット目とを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataValueを正しく受信したと判定する。
【0073】
一方、コンタクト中に送信されるダウンリンク信号DS2内のデータ信号Ackは、上述した短縮筆圧値CPRE1を含んで構成される。センサコントローラ31がこの短縮筆圧値CPRE1から筆圧値PREを復元する点、及び、ダウンリンク信号DS1により送信されるデータ信号Ack内に筆圧値PREの下位4ビットを配置することにより1フレームで筆圧値PREの全体を送信するようにしてもよい点は、データ信号DataTypeの場合と同様である。
【0074】
コンタクト中のデータ信号DataValueは、ダウンリンク信号DS1,DS2ともに、上述したデータDataの少なくとも一部を含んで構成される。具体的には、ダウンリンク信号DS1により送信されるデータ信号DataValue内にデータDataの下位8ビット、ダウンリンク信号DS2により送信されるデータ信号DataValue内にデータDataの上位8ビットがそれぞれ配置される。センサコントローラ31は、コマンドGetVersion又はコマンドGetDataを送信したフレーム内で受信された2つのデータ信号のそれぞれから2ビット目~9ビット目を取り出すことにより、アクティブペン2が送信したデータDataを取得する。この場合のセンサコントローラ31は、1フレーム周期F内に一度も筆圧値又は短縮筆圧値を取得できないことになる。
【0075】
ホバー中のデータ信号Normal、DataType、Ackを偶数番目のビットと奇数番目のビットとが同じ値になるように構成する点は、データ信号が16ビットである場合と同様である。ホバー中のデータ信号Normal、DataType、Ackにおける誤り検出符号CSは、実質的に1ビットのデータにより構成される。
【0076】
ホバー中のデータ信号Normalは、ダウンリンク信号DS1,DS2ともに、上述したデータSW1,SW2,BTを含んで構成される。
【0077】
ホバー中のデータ信号DataTypeは、まずダウンリンク信号DS2内においては、ホバー中のデータ信号Normalと同様の構成を有している。一方、ホバー中に送信されるダウンリンク信号DS1内のデータ信号DataTypeは、データSW1,SW2,BTに代え、実質的に4ビットのデータTypeInfoを含んで構成される。データTypeInfoの具体的な内容は、コンタクト中の場合と同様である。センサコントローラ31は、コマンドSetDataTypeを送信したフレーム内で受信されたダウンリンク信号DS1内のデータ信号の1ビット目~4ビット目と、送信した識別子SetDataTypeとを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataTypeを正しく受信したと判定するよう構成される。
【0078】
ホバー中のデータ信号Ackも、まずダウンリンク信号DS2内においては、ホバー中のデータ信号Normalと同様の構成を有している。一方、ホバー中に送信されるダウンリンク信号DS1内のデータ信号Ackは、データSW1,SW2,BTに代え、実施的に4ビットの応答Ackを含んで構成される。応答Ackの具体的な内容は、コンタクト中の場合と同様である。センサコントローラ31は、自身で導出したデータの値SetDataValueのハッシュ値と、コマンドSetDataValueを送信したフレーム内で受信されたダウンリンク信号DS1内のデータ信号の1ビット目~4ビット目とを比較し、これらが一致している場合に、アクティブペン2がコマンドSetDataValueを正しく受信したと判定するよう構成される。
【0079】
ホバー中のデータ信号DataValueは、コンタクト中のデータ信号DataValueと同じ構成を有している。したがって、センサコントローラ31は、コマンドGetVersion又はコマンドGetDataを送信したフレーム内で受信された2つのデータ信号のそれぞれから2ビット目~9ビット目を取り出すことにより、アクティブペン2が送信したデータDataを取得する。ホバー中においても、アクティブペン2がデータ信号DataValueを送信するフレームでは、データSW1,SW2,BTが一度も送信されないことになる。
【0080】
次に、
図6~
図8を参照しながら、センサコントローラ31及びアクティブペン2が行う処理について、詳しく説明する。以下の説明では、例えばデータ信号Normalを含むダウンリンク信号DSを「データ信号Normal」というように、データ信号の名称でダウンリンク信号DSを表す場合がある。
【0081】
図6は、センサコントローラ31がアクティブペン2からデータを取得する場合の処理を示すシーケンス図である。ここでは、アクティブペン2に設定されている属性BrushColorの値を取得する場合を例に取って説明するが、他のデータを取得する場合についても同様である。
【0082】
まずセンサコントローラ31からアクティブペン2に対し、コマンドGetVersion(第3のアップリンク信号)が送信される(ステップS1)。するとアクティブペン2は、自身のバージョンを示すデータDataを含むデータ信号DataValueを生成し、送信する(ステップS2)。このデータ信号DataValueを受信したセンサコントローラ31は、受信したデータ信号DataValueからアクティブペン2のバージョンを抽出する(ステップS3)。この抽出は、まずヘッダーHD2を参照することによってアクティブペン2がコンタクト中及びホバー中のいずれの状態であるかを判定し、アクティブペン2の状態に応じて決定されるフォーマットに従って、アクティブペン2が送信したデータを抽出することによって行う。この点は、後述する他のデータ信号からのデータの抽出においても同様である。
【0083】
図示していないが、ステップS3においてセンサコントローラ31は、筆圧値PRE、短縮筆圧値CPRE1,CPRE2、データSW1,SW2,BTなどの通常データの抽出も行う。短縮筆圧値CPRE1,CPRE2を抽出した場合には、0を追加することによって筆圧値PREを復元する処理も行う。センサコントローラ31は、抽出又は復元したデータを、その都度、ホストプロセッサ33にレポートするよう構成される。これらの点も、後述する他のデータ信号からのデータの抽出においても同様である。
【0084】
次にセンサコントローラ31は、抽出したバージョンが所定値以上であるか否かを判定する(ステップS4)。ここでいう所定値は、取得しようとするデータの種類に応じて決定されるもので、ここでは、アクティブペン2が属性BrushColorに対応しているか否かを示すBrushColor使用可能フラグを組み込んだバージョンを示す値となる。
【0085】
ステップS4の判定の結果、所定値以上でないと判定したセンサコントローラ31は、データを取得することなく処理を終了する。一方、所定値以上であると判定したセンサコントローラ31は、次のフレームにおいて、BrushColor使用可能フラグを示すデータGetDataTypeを含むコマンドGetDataを送信する(ステップS5)。このコマンドGetDataを受信したアクティブペン2は、自身が記憶しているBrushColor使用可能フラグの値を示すデータDataを含むデータ信号DataValueを生成し、送信する(ステップS6)。
【0086】
ステップS6で送信されたデータ信号DataValueを受信したセンサコントローラ31は、受信したデータ信号DataValueからBrushColor使用可能フラグの値を抽出する(ステップS7)。そして、抽出した値に基づいて、アクティブペン2が属性BrushColorに対応しているか否かを判定する(ステップS8)。判定の結果、属性BrushColorに対応していないと判定したセンサコントローラ31は、データを取得することなく処理を終了する。一方、属性BrushColorに対応していると判定したセンサコントローラ31は、次のフレームにおいて、属性BrushColorを示すデータGetDataTypeを含むコマンドGetDataを送信する(ステップS9)。
【0087】
ここで、センサコントローラ31は、ステップS1~S8の処理を事前に行っておくこととしてもよい。そして、アクティブペン2が属性BrushColorに対応していると分かっている場合にのみ、ステップS9から処理を開始することとしてもよい。
【0088】
ステップS9で送信されたコマンドGetDataを受信したアクティブペン2は、自身が記憶している属性BrushColorの値を示すデータDataを含むデータ信号DataValueを生成し、送信する(ステップS10)。
【0089】
ステップS10で送信されたデータ信号DataValueを受信したセンサコントローラ31は、受信したデータ信号DataValueから属性BrushColorの値を抽出する(ステップS11)。そして、属性BrushColorの値の取得に成功したか否かを判定する(ステップS12)。この判定が否となる場合としては、例えばステップS9においてアクティブペン2がコマンドGetDataの受信に失敗した場合や、送信しようとするデータDataのサイズが大きいために2フレーム以上にわたってデータDataを送信する必要がある場合の1フレーム目などが挙げられる。
【0090】
ステップS12において取得に成功したと判定したセンサコントローラ31は、取得した属性BrushColorの値をメインルーチンにリターンし(ステップS14)、処理を終了する。一方、ステップS12において取得に失敗したと判定したセンサコントローラ31は、試行回数が所定のn回に達したか否かを判定し(ステップS13)、達していないと判定した場合にはステップS9に戻って処理を繰り返す一方、達したと判定した場合には、データを取得することなく処理を終了する。
【0091】
図7は、センサコントローラ31からアクティブペン2にデータを設定する場合の処理を示すシーケンス図である。ここでは、属性BrushColorの値をアクティブペン2に設定する場合を例に取って説明するが、他のデータを設定する場合についても同様である。
【0092】
センサコントローラ31は、まず初めに、
図6に示したステップS1~S8の処理を実行する。そして、アクティブペン2が属性BrushColorに対応している場合に、ステップS20以降の処理を実行する。ステップS1~S8の処理を事前に行っておくこととしてもよいのは、
図6の場合と同様である。
【0093】
ステップS20においてセンサコントローラ31は、属性BrushColorを示す識別子SetDataTypeを含むコマンドSetDataType(第1のアップリンク信号)を送信する。このコマンドSetDataTypeを受信したアクティブペン2は、属性BrushColorを自身に設定可能か否かを判定し(ステップS21)、可能でなければ、データ信号Normal(第2のダウンリンク信号)を送信する一方(ステップS22)、可能であれば、属性BrushColorを示すデータTypeInfo(属性BrushColorを設定可能であることを示す応答データ)を含むデータ信号DataType(第1のダウンリンク信号)を送信する(ステップS23)。
【0094】
センサコントローラ31は、ステップS20で送信したコマンドSetDataTypeと同じフレーム内で受信されたデータ信号をデータ信号DataTypeとみなし、データTypeInfoの抽出を行う(ステップS24)。そして、抽出したデータTypeInfoと、送信した識別子SetDataTypeとが一致しているか否かを判定する(ステップS25)。その結果、これらが一致していればステップS27に処理を進める一方、一致していなければ、試行回数が所定のn回に達したか否かを判定する(ステップS26)。そして、達していないと判定した場合にはステップS20に戻って処理を繰り返す一方、達したと判定した場合には、データを取得することなく処理を終了する。
【0095】
ここで、ステップS25で一致していないと判定した場合、センサコントローラ31は、ステップS20で送信したコマンドSetDataTypeと同じフレーム内で受信されたデータ信号をデータ信号Normalとみなし、改めて通常データの抽出を行うことが好ましい。こうすることでセンサコントローラ31は、アクティブペン2が送信した筆圧値PREの全体を受信することが可能になる。
【0096】
ステップS27に処理を進めたセンサコントローラ31は、ステップS20でアップリンク信号USを送信したフレーム(第1のフレーム)の次以降のフレーム(第2のフレーム)を用いて、属性BrushColorの値を示す値SetDataValueを含むコマンドSetDataValue(第2のアップリンク信号)を送信する。このコマンドSetDataValueを受信したアクティブペン2は、受信した属性BrushColorの値を自身のメモリに設定したうえで(ステップS28)、受信した属性BrushColorの値のハッシュ値である応答Ackを含むデータ信号Ackを生成し、送信する(ステップS29)。
【0097】
ステップS29で送信されたデータ信号Ackを受信したセンサコントローラ31は、受信したデータ信号Ackから応答Ackを抽出する(ステップS30)。そして、抽出した応答Ackと、送信した値SetDataValueのハッシュ値とが一致しているか否かを判定する(ステップS31)。その結果、これらが一致していれば、設定した属性BrushColorの値をメインルーチンにリターンし(ステップS33)、処理を終了する。一方、一致していなければ、試行回数が所定のn回に達したか否かを判定する(ステップS31)。そして、達していないと判定した場合にはステップS27に戻って処理を繰り返す一方、達したと判定した場合には、データを設定することなく処理を終了する。
【0098】
図8は、アクティブペン2の出力部26の制御をセンサコントローラ31から行うための処理を示すシーケンス図である。なお、同図に示す処理においては、アクティブペン2に認識情報を設定するために
図7と同様の処理が行われるが、図面が過度に複雑化することを避けるため、
図8では一部の処理の記載を省略している。
【0099】
図8に示す処理を開始したセンサコントローラ31はまず、アクティブペン2の認識情報を取得する(ステップS40)。認識情報はセンサコントローラ31によって認識され得るペンの情報であり、ステップS40は、出力部26の制御を行うか否かに関わらず、センサコントローラ31がダウンリンク信号DSを受信するたびに行われる。認識情報の具体的な例を挙げると、例えば、アクティブペン2から受信される筆圧値又は短縮筆圧値により示されるアクティブペン2の筆圧値であってもよいし、アクティブペン2の位置であってもよいし、アクティブペン2の位置の変化から算出されるアクティブペン2の移動速度であってもよい。また、センサコントローラ31がアクティブペン2の角度(チルト角など)を取得できる場合には、アクティブペン2の角度を認識情報として用いることとしてもよい。
【0100】
次にセンサコントローラ31は、ステップS40で取得した認識情報に基づき、出力部26の制御が必要か否かを判定する(ステップS41)。具体的には、認識情報(この場合には、例えば上述したヘッダーHD2の値)によりアクティブペン2がコンタクト中であることが示される場合に必要と判定し、それ以外の場合に不要と判定すればよい。また、過去に取得した認識情報を含む一連の認識情報によりアクティブペン2がコンタクト中の状態を維持しながらタッチ面3a上を移動している(すなわち、アクティブペン2がタッチ面3a上で摺動している)ことが示される場合に必要、それ以外の場合に不要と判定することとしてもよい。
【0101】
ステップS41において不要と判定したセンサコントローラ31は、
図3に示した制御情報MOVに0を設定した後(ステップS42)、ステップS40に処理を戻す。ステップS42で制御情報MOVに0を設定したことにより、この後に送信されるアップリンク信号US内の制御情報MOVは0となる。一方、ステップS41において必要と判定したセンサコントローラ31は次に、認識情報の送信が必要か否かを判定する(ステップS43)。
【0102】
ステップS43について詳しく説明すると、認識情報によって出力部26を制御するためには認識情報をアクティブペン2に供給する必要があるが、認識情報はデータサイズの大きい情報であるため、頻繁には送信できない。そこでセンサコントローラ31は、認識情報の送信を例えば10フレームおきなどの低頻度で行うこととし、認識情報を送信していないときには、制御情報MOVを用いて、出力部26の制御の要否だけをアクティブペン2に伝える。こうすることで、認識情報を毎フレーム送信しなくても、最新の認識情報に基づいて出力部26の制御のオンオフを切り替えることが可能になる。
【0103】
さて、ステップS43において認識情報の送信が必要であると判定したセンサコントローラ31は、
図7に示した処理と同様の処理により、ステップS40で取得した認識情報をアクティブペン2に設定する。具体的に説明すると、センサコントローラ31はまず、ステップS43で送信必要と判定した後にコマンドSetDataTypeを送信済みか否かを判定する(ステップS44)。そして、送信済みでなければ、認識情報を示す識別子SetDataTypeを含むコマンドSetDataTypeを送信する(ステップS45)。このコマンドSetDataTypeを受信したアクティブペン2は、受信した識別子SetDataTypeを示すデータTypeInfoを含むデータ信号DataTypeを送信する(ステップS46)とともに、出力部制御処理を実行する(ステップS47)。
【0104】
図9は、アクティブペン2が行う出力部制御処理を示す図である。同図に示すように、アクティブペン2はまず、受信した最新のアップリンク信号USから制御情報MOVを取得し(ステップS60)、その値が1及び0のいずれであるかを判定する(ステップS61)。そして、1と判定した場合には、後述するステップS50で記憶する認識情報に基づいて出力部26の制御を開始する(ステップS62)。具体的には、出力部26が例えばハプティクス素子であれば振動制御を開始し、例えば発光素子であれば発光制御を開始し、例えば音響素子であれば鳴動制御を開始する。一方、ステップS61において0と判定したアクティブペン2は、出力部26の制御中であれば制御を停止する(ステップS63)。これにより、センサコントローラ31が制御情報MOVを1にしている間、出力部26の制御が継続して行われることになる。
【0105】
図8に戻る。ステップS46で送信されたデータ信号DataTypeを受信したセンサコントローラ31は、ステップS40に戻って処理を続ける。ステップS44でコマンドSetDataTypeを送信済みであると判定したセンサコントローラ31は、制御情報MOVに1を設定した後(ステップS48)、認識情報の値を示す値SetDataValueを含むコマンドSetDataValue(第2のアップリンク信号)を送信する(ステップS49)。
【0106】
ステップS49で送信されたコマンドSetDataValueを受信したアクティブペン2は、受信したコマンドSetDataValueから認識情報を抽出し、メモリに記憶する(ステップS50)。続いてアクティブペン2は、記憶した認識情報の値のハッシュ値である応答Ackを含むダウンリンク信号DSを生成して送信するとともに(ステップS51)、
図9を参照して説明した出力部制御処理を再び実行する(ステップS52)。このとき、制御情報MOVは1になっているので、
図9のステップS62が実行され、出力部26は制御中の状態となる。
【0107】
ステップS43において認識情報の送信が不要であると判定したセンサコントローラ31は、その時点で送信が必要となっている任意のアップリンク信号US(第1のアップリンク信号)を送信する(ステップS53)。このアップリンク信号USを受信したアクティブペン2は、
図9を参照して説明した出力部制御処理を再び実行する(ステップS54)。
【0108】
ステップS49でコマンドSetDataValueを送信したフレーム(第1のフレーム)の次以降の1以上のフレーム(第2のフレーム)であって、ステップS42が実行される前のフレームにおいてステップS53の送信が実行される場合、送信されるアップリンク信号US内の制御情報MOVは1となる。したがって、ステップS54では
図9のステップS62が実行され、出力部26は制御中の状態を継続することになる。
【0109】
以上説明したように、本実施の形態による通信方法によれば、データの種別を通知するためのコマンドSetDataTypeと、データの値を実際に送信するためのコマンドSetDataTypeとを別々のフレームで送信するようにしたので、アップリンク信号USのサイズが大きくなってしまうことを回避できる。したがって、筆圧値などの通常データの周期性を維持しつつ、アップリンク信号US内のコマンドによりアクティブペン2にデータを設定することが可能になる。
【0110】
また、本実施の形態による通信方法によれば、ダウンリンク信号DS内に筆圧値PREを配置することは難しくても、代わりに短縮筆圧値CPRE1又は短縮筆圧値CPRE2を配置できるので、筆圧値などの通常データの周期性を維持しつつ、アクティブペン2からセンサコントローラ31に対して応答データを送信することが可能になる。
【0111】
さらに、本実施の形態による通信方法によれば、制御情報MOVを含むアップリンク信号USに応じて出力部26の制御が行われるので、アクティブペン2内に配置した出力部26の制御を適切なタイミングで、すなわち、壁などタッチ面3a以外の表面にペン先が押し当てられているタイミングを避けて実行することが可能になる。
【0112】
また、本実施の形態による通信方法によれば、認識情報を毎フレーム送信しなくても、最新の認識情報に基づいて出力部26の制御のオンオフを切り替えることが可能になる。したがって、アクティブペン2内に配置した出力部26の認識情報による制御を適切に実行することが可能になる。
【0113】
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【0114】
例えば、上記実施の形態においてセンサコントローラ31が行う処理として説明した処理の一部を、ホストプロセッサ33が行うこととしても構わない。
【符号の説明】
【0115】
1 位置検出システム
2 アクティブペン
3 電子機器
3a タッチ面
20 芯体
21 ペン先電極
22 圧力センサ
23 サイドスイッチ
24 バッテリー
25 集積回路
26 出力部
30 センサ
31 センサコントローラ
32 ディスプレイ
33 ホストプロセッサ
Normal,DataType,Ack,DataValue データ信号
COM,GetVersion,SetDataType,SetDataValue,GetData コマンド
CPRE1,CPRE2 短縮筆圧値
CS 誤り検出符号
DS,DS1,DS2 ダウンリンク信号
F フレーム周期
HD1,HD2 ヘッダー
LID,NLID ローカル識別子
MOV 制御情報
PRE 筆圧値
US アップリンク信号