(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6193384
(24)【登録日】2017年8月18日
(45)【発行日】2017年9月6日
(54)【発明の名称】クライアント装置、ホスト装置、装置により実行される方法、コンピュータプログラム及びストレージ装置
(51)【国際特許分類】
G06F 13/38 20060101AFI20170828BHJP
H04L 12/951 20130101ALI20170828BHJP
G06F 13/42 20060101ALI20170828BHJP
【FI】
G06F13/38 340A
H04L12/951
G06F13/38 350
G06F13/42 310
【請求項の数】21
【全頁数】15
(21)【出願番号】特願2015-538166(P2015-538166)
(86)(22)【出願日】2013年11月19日
(65)【公表番号】特表2015-533438(P2015-533438A)
(43)【公表日】2015年11月24日
(86)【国際出願番号】US2013070660
(87)【国際公開番号】WO2014081681
(87)【国際公開日】20140530
【審査請求日】2015年4月17日
(31)【優先権主張番号】13/682,269
(32)【優先日】2012年11月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】トラン,ズン
(72)【発明者】
【氏名】トレザウェイ,ジェイムズ
【審査官】
田名網 忠雄
(56)【参考文献】
【文献】
特開2010−011255(JP,A)
【文献】
特開2012−113565(JP,A)
【文献】
特開2008−083842(JP,A)
【文献】
野崎 原生,USB3.0設計のすべて,CQ出版株式会社,2011年10月20日,第1版
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/10−13/14
G06F 13/20−13/42
H04L 12/951
(57)【特許請求の範囲】
【請求項1】
統合インタラプトパケットを送信するためにクライアント装置により実行される方法であって、
クライアント装置からホスト装置へ、前記統合インタラプトパケットのメタデータを送信するステップと、
少なくとも2つのセンサからの少なくとも2つのデータ群を検出するステップと、
1つの識別子と当該識別子に関連するデータ群との組み合わせを少なくとも2つ含む統合インタラプトパケットを生成するステップと、
前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信するステップと、
を有する方法。
【請求項2】
前記クライアント装置がUSB装置である、請求項1に記載の方法。
【請求項3】
前記メタデータは、前記クライアント装置が各々のデータ群で送信するバイト数と各々のデータバイトのフィールドとを示す、請求項1に記載の方法。
【請求項4】
前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信するステップが、前記統合インタラプトパケットをインターネットプロトコルパケットにカプセル化し、インターネットプロトコルを利用して前記統合インタラプトパケットを送信するステップを有する、請求項1に記載の方法。
【請求項5】
前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信するステップが、ワイヤレスプロトコルにより拡張されたUSB標準規格を利用して、前記統合インタラプトパケットを前記ホスト装置へ送信するステップを有する、請求項1に記載の方法。
【請求項6】
前記識別子が前記少なくとも2つのデータ群のソースを特定する、請求項1に記載の方法。
【請求項7】
前記クライアント装置がセンサコントローラを有する、請求項1に記載の方法。
【請求項8】
ホスト装置により実行される方法であって、
クライアント装置からメタデータを受信するステップと、
前記クライアント装置から統合インタラプトパケットを受信するステップであって、前記統合インタラプトパケットは、1つの識別子と当該識別子に関連するデータ群との組み合わせを少なくとも2つ含む、ステップと、
前記メタデータに基づいて、前記統合インタラプトパケットを、少なくとも2つのセンサからの少なくとも2つのデータ群に分割するステップと、
前記少なくとも2つのデータ群をアプリケーションに送るステップと、
を有する方法。
【請求項9】
統合インタラプトパケットを送信するクライアント装置であって、
プロセッサと、
前記プロセッサに方法を実行させる命令を保存するストレージ装置と、
を有し、前記方法は、
クライアント装置からホスト装置へ、前記統合インタラプトパケットのメタデータを送信するステップと、
少なくとも2つのセンサからの少なくとも2つのデータ群を検出するステップと、
1つの識別子と当該識別子に関連するデータ群との組み合わせを少なくとも2つ含む統合インタラプトパケットを生成するステップと、
前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信するステップと、
を有する、クライアント装置。
【請求項10】
前記クライアント装置がUSB装置である、請求項9に記載のクライアント装置。
【請求項11】
前記メタデータは、前記クライアント装置が各々のデータ群で送信するバイト数と各々のデータバイトのフィールドとを示す、請求項9に記載のクライアント装置。
【請求項12】
前記プロセッサは、前記統合インタラプトパケットをインターネットプロトコルパケットにカプセル化し、インターネットプロトコルを利用して前記統合インタラプトパケットを前記ホスト装置に送信する、請求項9に記載のクライアント装置。
【請求項13】
前記識別子が前記少なくとも2つのデータ群の各々のソースを特定する、請求項9に記載のクライアント装置。
【請求項14】
前記プロセッサは、ワイヤレスプロトコルによるUSB標準規格を利用して、前記統合インタラプトパケットを前記ホスト装置へ送信する、請求項9に記載のクライアント装置。
【請求項15】
ホスト装置であって、
プロセッサと、
前記プロセッサに方法を実行させる命令を保存するストレージ装置と、
を有し、前記方法は、
クライアント装置からメタデータを受信するステップと、
前記クライアント装置から統合インタラプトパケットを受信するステップであって、前記統合インタラプトパケットは、1つの識別子と当該識別子に関連するデータ群との組み合わせを少なくとも2つ含む、ステップと、
前記メタデータに基づいて、前記統合インタラプトパケットを、少なくとも2つのセンサからの少なくとも2つのデータ群に分割するステップと、
前記少なくとも2つのデータ群をアプリケーションに送るステップと、
を実行する、ホスト装置。
【請求項16】
前記クライアント装置がUSB装置である、請求項15に記載のホスト装置。
【請求項17】
前記統合インタラプトパケットは、前記少なくとも2つのデータ群の各々のソースを特定する識別子を有する、請求項15に記載のホスト装置。
【請求項18】
前記メタデータは、前記クライアント装置が各々の統合インタラプトパケットにおいて送信するバイト数と各々のデータバイトのフィールドとを含む、請求項15に記載のホスト装置。
【請求項19】
前記プロセッサは、インターネットプロトコルにより前記クライアント装置から前記統合インタラプトパケットを受信する、請求項15に記載のホスト装置。
【請求項20】
請求項1ないし8の何れか一項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【請求項21】
請求項20に記載のコンピュータプログラムを保存するストレージ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本願による開示内容は一般にコンピュータ装置におけるデータ送信に関連し、特にインタラプトパケット(interrupt packet)を送信することに関連するが、これに限定されない。
【背景技術】
【0002】
現在のコンピュータ装置は益々多くのコンポーネントを組み込みつつある。例えば、現在のコンピュータ装置は、特に、適切な任意の数のセンサやI/O装置を含む。各々のコンポーネントは共通バスを利用してストレージ装置又はプロセッサにデータを転送する。例えば、ユニバーサルシリアルバス(本願において「USB」(Universal Serial Bus)とも言及される)は、適切な任意の数のコンポーネントのためにデータを転送してもよい。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第6058441号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
ある種のコンピュータ装置では、USB装置がUSBインタラプトパケットによりデータを転送することが可能である。しかしながら、USBインタラプトパケットによりデータ送信することは、非効率的になることがある。例えば、USBインタラプトパケットは固定されたサイズを有し、各々のUSBコンポーネントは、USBインタラプトパケットにおいて、特定の量のデータを送信してよい。例えば、USBコンポーネントがデータをコンピュータ装置に送信するたびに、USBコンポーネントは、一定のバイト数のような一定のデータ量を送信してよい。しかしながら、USBコンポーネントは、USBインタラプトパケットが送信可能であるデータ量よりも少ないデータ量しかUSBインタラプトパケットに含んでいないかもしれない。例えば、USBコンポーネントは、64バイトのデータを送信することが可能なUSBパケットの中に10バイトのデータしか含まないかもしれない。この例の場合、USBインタラプトパケットにおけるデータの54バイト分は、USBコンポーネントに関する如何なるデータも送っていない。
【課題を解決するための手段】
【0005】
一実施形態による方法は、
統合インタラプトパケットを送信するための方法であって、
クライアント装置からホスト装置へメタデータを送信するステップと、
少なくとも2つのデータ群を前記クライアント装置により検出するステップと、
前記クライアント装置の識別子を検出するステップと、
前記クライアント装置についての前記識別子及び少なくとも2つのデータ群を有する統合インタラプトパケットを前記クライアント装置において生成するステップと、
前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信するステップと、
を有する方法である。
【図面の簡単な説明】
【0006】
【
図1】USB装置が統合インタラプトパケットをオペレーティングシステムに送信することを可能にするコンピュータシステム例を示すブロック図。
【
図2】クライアント装置からホスト装置へ統合インタラプトパケットを送信する方法例のプロセスフローを示す図。
【
図3】統合インタラプトパケットをオペレーティングシステムに送信するセンサコントローラの一例を示すブロック図。
【
図5】USB装置が統合インタラプトパケットをオペレーティングシステムに送信することを実行可能にする一時的でない有形のコンピュータ読み取り可能な媒体を示す図。
【発明を実施するための形態】
【0007】
本願により開示される対象の実施形態によれば、統合インタラプトパケット(aggregated interrupt packets)がクライアント装置からホスト装置に送信されることが可能である。文脈上適切であるならば「統合」は「アグリゲート」、「結合」、「併合」、「連結」等と言及されてもよい。「装置」は「デバイス」等と言及されてもよい。本願において言及されるようなクライアント装置は、コンピュータ装置、コンピュータコンポーネント、又は、ホスト装置へデータを送信することが可能なソフトウェアアプリケーション等のような任意の手段を含む。文脈上適切であるならば「コンポーネント」は「要素」、「部品」等と言及されてもよい。一実施形態において、クライアント装置は、特に、USB装置、ヒューマンインタフェース装置(本願において「HID」(Human Interface Device)と言及されてもよい)、コントローラ、センサコントローラ、タッチスクリーンセンサ等であってもよい。本願において言及されるようなホスト装置は、コンピュータ装置、コンピュータコンポーネント、又は、クライアント装置から送信されたデータを受信することが可能なソフトウェアアプリケーション等のような任意の手段を含む。一実施形態において、ホスト装置は、特に、コントローラ、ストレージ装置、記憶装置、又は、オペレーティングシステムを含んでもよい。統合インタラプトパケットは、適切な任意の数のコンポーネントにデータを送信するために使用されることが可能である。例えば、統合インタラプトパケットは、1つのUSBインタラプトパケットに統合される複数のUSBコンポーネント用のデータを含んでもよい。一実施形態において、USBコンポーネント各々のためのデータは、他のUSBコンポーネントからの関連するデータ(proximate data)において特定されてもよい。一実施形態において、統合インタラプトパケットは、特定のUSB装置についての複数のデータセットを含んでもよい。例えば、タッチスクリーン表示装置の複数の部分にユーザが同時に触れる場合に、タッチスクリーン表示装置は複数のデータセットを検出する。文脈上適切であるならば「データセット」は「データ群」、「一群のデータ」、「一組のデータ」等と言及されてもよい。一実施形態において、タッチスクリーン表示装置は、タッチスクリーン表示装置が検出した複数のデータセットを含む統合インタラプトパケットを生成することが可能である。USBコンポーネントからオペレーティングシステムへ統合インタラプトパケットを送信することは、複数の装置に関するデータを1つのインタラプトパケットで送信することにより、複数のUSBインタラプトパケットによる非効率性を減らすことが可能である。
【0008】
以下の説明及び特許請求の範囲において、「結合される(coupled)」及び「接続される(connected)」のような用語あるいはそれらの派生語が使用されるかもしれない。これらの用語は必ずしも互いに同義語として解釈されないことが理解されるべきである。具体的には、特定の実施形態において、「接続される」は、2つ以上の要素が直接的に物理的又は電気的に互いに接触していることを示すために使用されてよい。「結合される」は、2つ以上の要素が直接的に物理的又は電気的に接触することを意味してもよい。しかしながら、「結合される」は、2つ以上の要素が互いに直接的には接触していないが、それでも互いに協働又は相互作用することを意味してもよい。
【0009】
図1は、USB装置が統合インタラプトパケットをオペレーティングシステムに送信することを可能にするコンピュータシステム例のブロック図である。例えば、コンピュータシステム100は、特に、モバイルフォン、移動電話、ラップトップコンピュータ、ウルトラブック、デスクトップコンピュータ又はタブレットコンピュータ等であってもよい。コンピュータシステム100は、保存された命令を実行することに適したプロセッサ102に加えて、プロセッサ102により実行可能な命令を保存するメモリ装置104も含む。プロセッサ102は、1つのコアプロセッサ、マルチコアプロセッサ、コンピュータクラスタ、又は、任意の数の他の形態とすることが可能である。プロセッサ102は、複合命令セット(CISC)コンピュータ又は縮小命令セット(RISC)プロセッサ、x86命令セット対応プロセッサ、マルチコア、又は、他の何らかのマイクロプロセッサ或いは中央処理ユニット(CPU)等として実現されてもよい。一実施形態において、プロセッサ102は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ等を含む。
【0010】
メモリ装置104は、ランダムアクセスメモリ(例えば、SRAM、DRAM、ゼロキャパシタRAM、SONOS、eDRAM、EDORAM、DDRRAM、RRAM(登録商標)、PRAM等)、リードオンリメモリ(例えば、マスクROM、PROM、EPROM、EEPROM等)、フラッシュメモリ又は他の適切な任意のメモリシステムを含むことが可能である。メモリ装置104はコンピュータ読み取り可能な命令を保存するために使用可能であり、命令は、プロセッサにより実行されると、本願で説明される実施形態による様々な処理を実行するようにプロセッサを指図する。例えば、プロセッサ102により実行される命令は、統合インタラプトパケットを送信する方法を実現するために使用されてもよい。
【0011】
プロセッサ102はシステム相互接続部106(例えば、PCI、ISA、PCIエクスプレス(PCI-Express)(登録商標)、ハイパートランスポート(HyperTransport)(登録商標)、エヌユーインターコネクト(NuInterconnect))により入出力(I/O)装置インタフェース108に接続され、I/O装置インタフェース108はコンピュータシステム100を1つ以上のI/O装置110に接続することに適している。「システム相互接続部」は「システム相互コネクタ」等と言及されてもよい。I/O装置110は例えばキーボードやポインティングデバイスを含んでもよく、ポインティングデバイスは特にタッチパッドやタッチスクリーンを含んでもよい。I/O装置110は、コンピュータシステム100の内蔵コンポーネントであってもよいし、或いは、コンピュータシステム100に外的に接続される装置であってもよい。
【0012】
プロセッサ102は、システム相互コネクタ106を介して、コンピュータシステム100を表示装置114に接続することに適した表示インタフェース112にもリンク(又は結合)される。表示装置114は、コンピュータシステム100の内蔵コンポーネントである表示スクリーンを含んでもよい。表示装置114は、特に、コンピュータシステム100に外的に接続されるコンピュータモニタ、テレビジョン或いはプロジェクタ等を含んでもよい。プロセッサ102はシステム相互コネクタ106を介してネットワークインタフェースカード(NIC)116に結合されてもよい。NIC116はシステム相互コネクタ106を介してコンピュータシステム100をネットワーク(図示せず)に接続することに適している。ネットワークは、特に、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)又はインターネット等であってもよい。
【0013】
コンピュータシステム100はストレージ装置118も含む。ストレージ装置118は、ハードドライブ、光ドライブ、フラッシュドライブ、ドライブの配列(アレイ)又はそれらの任意の組み合わせ等のような物理メモリを含んでもよい。ストレージ装置118はリモートストレージドライブを含んでもよい。ストレージ装置118はオペレーティングシステム120を含んでもよい。一実施形態において、ストレージ装置118は、コントローラ122から統合インタラプトパケットを受信するための命令を保存してもよい。一実施形態において、オペレーティングシステム120は1つ以上のドライバを含んでもよい。ドライバは、ハードウェアコンポーネント又はアプリケーションが、オペレーティングシステム120と通信できるようにする。一実施形態において、ドライバは、オペレーティングシステム120を介してUSB装置124からアプリケーションへコントローラ122がデータを通信できるようにするために使用されてよい。一実施形態において、ドライバはメモリ装置104に保存される。メモリ装置104は、上記のオペレーティングシステム120に関して説明したのと同様な形式で、統合インタラプトパケットを処理するために使用される命令を含んでもよい。
【0014】
コントローラ122はホストインタフェースドライバ126(本願において「USBマイクロドライバ」と言及されてもよい)を含んでもよい。一実施形態において、コントローラ122が、少なくとも1つのUSB装置124からオペレーティングシステム120に送信するための少なくとも2つの組のデータ(データセット)を有する場合、USBマイクロドライバ126は統合インタラプトパケットをオペレーティングシステム120に送信することが可能である。例えば、USBマイクロドライバ126は、少なくとも1つのUSB装置からの適切な任意の数の組のデータ(データセット)を、1つの統合インタラプトパケットにコンバインしてもよい。文脈上適切であるならば「コンバイン」は「結合」、「併合」、「連結」、「連合」等と言及されてもよい。一実施形態において、USB装置124は、センサデータを収集する適切な任意の数のセンサを含んでもよい。センサデータはセンサにより検出される任意の情報を含むことが可能であり、例えばそのような情報は、特に、コンピュータ装置の傾き、コンピュータ装置が進行している方向、コンピュータ装置の速度等であってもよい。一実施形態において、センサにより収集されるセンサデータはコントローラ122に送信され、コントローラ122はUSBマイクロドライバ126とともに統合インタラプトパケットを生成することが可能である。コントローラ122は、統合インタラプトパケットによりカプセル化されたセンサデータをオペレーティングシステム120に送信することも可能である。
【0015】
図1のブロック図は、コンピュータシステム100が
図1に示される全てのコンポーネントを包含することを示すようには意図されていないことが、理解されるべきである。むしろ、コンピュータシステム100は、より少ないコンポーネントしか含んでいなくてもよいし、或いは、
図1に示されていない追加的なコンポーネント(例えば、追加的なUSB装置、センサ、センサコントローラ等)を含んでもよい。更に、USBマイクロドライバ126の任意の機能が、部分的又は全体的に、ハードウェア及び/又はプロセッサ102で実現されてもよい。例えば、それらの機能は、特定用途向け集積回路とともに、センサコントローラに含まれるUSBマイクロドライバ126において、USB装置124において、USB装置124のプロセッサにおいて、コプロセッサにおいて、又は、何らかの他の装置において実現されてもよい。
【0016】
図2は、クライアント装置からホスト装置へ統合インタラプトパケットを送信する方法例のプロセスフローを示す図である。方法200は例えば
図1のコンピュータシステム100のようなコンピュータシステムとともに実現されることが可能である。
【0017】
ブロック202において、USBマイクロドライバ126はクライアント装置におけるメタデータを検出する。一実施形態において、クライアント装置は、コンピュータ装置にデータを送信することが可能なUSB装置である。例えば、クライアント装置は、特に、USBセンサ、USBタッチスクリーン表示装置、又は、USBキーボードであってもよい。他の実施形態において、クライアント装置はコンピュータシステムのコントローラであってもよく、コントローラは、装置からのデータを検出し、そのデータを統合インタラプトパケットとしてオペレーティングシステムに送信することが可能である。一実施形態において、クライアント装置は、統合インタラプトパケットをオペレーティングシステムに送信する前に、メタデータを検出してもよい。メタデータは、特に、各々の統合インタラプトパケットでクライアント装置が送信する一定のバイト数(固定バイト数)、クライアント装置により送信されるデータが1つの値を示すのか或いは値の配列を示すのか、有効なデータ範囲の最小値及び最大値、測定の単位等の情報を含んでもよい。
【0018】
ブロック204において、USBマイクロドライバ126は、メタデータをホスト装置に送信する。一実施形態において、ホスト装置は、
図1のコンピュータシステム100のようなコンピュータシステムであってもよい。他の実施形態において、ホスト装置は、オペレーティングシステムを含むストレージ装置であってもよい。一例として、特に、メタデータは、USBインタフェースを利用して、USBコントローラから、ストレージ装置に常駐するオペレーティングシステムに送信されてもよい。
【0019】
ブロック206において、USBマイクロドライバ126は、クライアント装置からの少なくとも2つの組のデータを検出する。一実施形態において、そのデータは、クライアント装置がホスト装置に送信しようとする任意のデータを含むことが可能である。一例では、クライアント装置は適切な任意の数のセンサからのデータを検出する。例えば、データは、センサがUSBコントローラを介してオペレーティングシステムに送信するセンサデータを含んでもよい。一実施形態において、特に、データは、タッチスクリーン表示装置又はUSBキーボード装置により検出されるデータを含んでもよい。
【0020】
ブロック208において、USBマイクロドライバ126は、クライアント装置の識別子を検出することが可能である。一実施形態において、コンピュータシステムにおける各々の要素は固有の識別子を有してもよく、識別子は特定の要素をオペレーティングシステムと通信可能にするために使用される。例えば、特にセンサやタッチスクリーン表示装置のようなUSB装置の各々は、オペレーティングシステムに送信される各自のデータセットに関連する固有の識別子を有していてもよい。
【0021】
ブロック210において、USBマイクロドライバ126は、統合インタラプトパケットを生成することが可能である。一実施形態において、統合インタラプトパケットは、適切な任意の数のUSB装置からの一組のデータ(データセット)を含んでもよい。例えば、クライアント装置は、適切な任意の数のセンサからの一組のデータを検出し、その一組のデータを1つの統合インタラプトパケットに併合してもよい。一実施形態において、USB装置により生成される一組のデータに近接して(又は関連して)各々のUSB装置の識別子が統合インタラプトパケットに含められてもよい。
【0022】
ブロック212において、USBマイクロドライバ126は、統合インタラプトパケットをホスト装置に送信することが可能である。一実施形態において、ホスト装置は、ストレージ装置内に常駐するオペレーティングシステムを含むことが可能である。オペレーティングシステムは、統合インタラプトパケットを検出し、メタデータを利用して一組のデータを検出することが可能である。一実施形態において、メタデータは、特定の識別子の後に続くデータのバイト数を示すことが可能である。例えば、ホスト装置は、メタデータを利用して、何れのバイトのデータが識別子に対応するか、及び、何れのバイトのデータが特定のUSBコンポーネントについての一組のデータに対応するかを判定することが可能である。一実施形態において、ホスト装置は、メタデータに基づいて統合インタラプトパケットを少なくとも2つのデータ群に分割することが可能であり、ホスト装置は、その少なくとも2つのデータ群をアプリケーションに送信することが可能である。統合インタラプトパケットの具体例については
図4に関連して更に詳細に説明される。本プロセスはブロック214において終了する。
【0023】
図2のプロセスフローチャートは、方法200のステップが何らかの特定の順序で実行されるべきであることや、方法200のステップの全てが常に包含されるべきことを示すようには意図されていない。更に、具体的な応用例に依存して、任意の数の追加的なステップが方法200内に含められてもよい。例えば、クライアント装置は、クライアント装置及びデータ群に関する追加的な識別情報を送信してもよい。
【0024】
図3は、統合インタラプトパケットをオペレーティングシステムに送信するセンサコントローラの一例を示すブロック図である。一実施形態において、コンピュータシステム300はセンサコントローラ302を含んでもよい。一実施形態において、センサコントローラ302は、適切な任意の数のセンサと通信することが可能であり、例えばセンサは、特に、磁力計304、GPS無線機306、リアルタイムクロック308等である。磁力計304は、磁場の強度又は方向に関するデータを検出することが可能である。GPS無線機306はコンピュータ装置の位置に関するデータを検出することが可能である。例えば、GPS無線機306はコンピュータ装置の緯度及び経度を検出してもよい。リアルタイムクロック308は、例えば国際原子時間(International Atomic Time:IAT)のような標準的な時間基準による時間を検出することが可能である。
【0025】
一実施形態において、センサコントローラ302は、適切な任意の数のセンサと通信することが可能な適切な任意の数のマイクロドライバを含むことが可能である。例えば、センサコントローラ302は、磁力計マイクロドライバ310、GPS(無線)マイクロドライバ312及びリアルタイムクロックマイクロドライバ314を含んでもよい。磁力計マイクロドライバ310、GPS無線マイクロドライバ312及びリアルタイムクロックマイクロドライバ314は、センサとセンサ管理モジュール316との間の通信を実行可能にするファームウェアを含んでもよい。例えば、磁力計マイクロドライバ310は、特定の磁力計センサ304からのデータを検出し、そのデータを磁力計センサ304からセンサ管理モジュール316へ転送するファーウェアを含んでもよい。一実施形態において、GPS無線マイクロドライバ312は、特定のGPS無線機306からのデータを検出し、そのデータをGPS無線機306からセンサ管理モジュール316へ転送するファーウェアを含んでもよい。一実施形態において、リアルタイムクロックマイクロドライバ314は、特定のリアルタイムクロック308からのデータを検出し、そのデータをリアルタイムクロック308からセンサ管理モジュール316へ転送するファーウェアを含んでもよい。
【0026】
一実施形態において、センサ管理モジュール316は、1つ以上のセンサ304、306、308により収集されるデータを分析してもよい。例えば、1つ以上のマイクロドライバ310、312、314を介して1つ以上のセンサ304、306、308から受信されるデータに基づいて、特に、位置データや角速度データ等をコンピュータ装置のために判定してもよい。
【0027】
センサコントローラ302は、1つ以上のHID論理装置318、320、322を含んでもよい。一実施形態において、HID論理装置は、特に、HID論理コンパス318、HID論理GPS320及びHIDリアルタイムクロック322を含んでもよい。HID論理装置318、320、322は線管理モジュール316により受信されるデータのフォーマットを合わせるように形成されてもよい。例えば、1つのシステム相互コネクタ(例えば、バス)を介して送信される個々のセンサデータをオペレーティングシステム324が検出できるようにデータをパッケージ化することにより、センサコントローラ302は、センサ304、306、308のうちの1つ以上から受信されるデータのフォーマットを合わせてもよい。一実施形態において、HID論理装置318、320、322のうちの1つ以上は、センサコントローラ302がデータのフォーマットを合わせることを可能にし、HIDの仕様に従ってオペレーティングシステム324が個々のセンサを検出できるようにする。
【0028】
センサコントローラ302はホスト管理モジュール326も含み、ホスト管理モジュール326は、HID論理コンパス318、HID論理GPS320及びHIDリアルタイムクロック322から受信されるデータを、USBホストインタフェースマイクロドライバ328に送信することが可能である。USBホストインタフェースマイクロドライバ328(本願において、「USBマイクロドライバ」と言及されてもよい)は、ホスト管理モジュール326からのデータをアグリゲートし、オペレーティングシステム324におけるUSBドライバ330を介してホスト管理モジュール326からホストAPI332へデータを送信することが可能である。例えば、USBマイクロドライバ328は、センサ304、306、308により検出されるデータ(例えば、位置データ)をアグリゲートし、アグリゲートされたデータをオペレーティングシステム324に送信してもよい。一実施形態において、USBマイクロドライバ328は、フォーマットが合わせられたベンダ特有ではないデータを1つの統合インタラプトパケットにアグリゲートし、センサコントローラ302が1つのチャネルを介してフォーマット適合データをオペレーティングシステム324に提供できるようにする。複数のセンサからのセンサデータを含む統合インタラプトパケットについては
図4に関連して更に説明される。複数のセンサからのデータを1つの統合インタラプトパケットで提供することにより、センサコントローラ302は、より少ないインタラプトパケットとともに、より多くのデータをオペレーティングシステム324に送信することが可能である。
【0029】
図3のブロック図は、コンピュータシステム300が
図3に示される全てのコンポーネントを含むべきことを示すようには意図されていないことが、理解されるべきである。むしろ、コンピュータシステム300は
図3に示されるコンポーネントより少ない又は追加のコンポーネントを含むことが可能である(例えば、追加的なセンサ、追加的なドライバ、追加的な装置等が含まれていてもよい)。
【0030】
図4は統合インタラプトパケットの一例を示す。統合インタラプトパケット400は、適切な任意の個数の装置からのデータを含むことが可能である。例えば、統合インタラプトパケットは、適切な任意の数の装置からの任意の数のデータ群を含んでもよい。一実施形態において、統合インタラプトパケットにおいて、装置からのデータ群各々の前に、識別子0x01,0x02,0x03が含められてもよい。例えば、統合インタラプトパケットにおいて、装置からのデータ群の前に、特定の装置0x01,0x02,0x03を区別する或るバイト数の情報が含まれられてもよい。統合インタラプトパケットは、データ群を表現する任意のバイト数のデータを含んでもよい。一実施形態において、データ群における各バイトのデータは、特定のフィールドについてのデータを表現してもよい。例えば、加速度計は、A0,A1,A2,A3,A4,A5,A6,A7,A8というデータ群の9つのバイトを含んでもよい。加速度計により生成されるデータの9つのバイトの各々は異なるフィールドに対応してもよい。例えば、加速度計からのデータのうちの第1バイトA0は、X軸に関するコンピュータ装置の加速度に対応してもよい。加速度計からのデータのうちの第2バイトA1は、Y軸に関するコンピュータ装置の加速度に対応してもよく、加速度計からのデータのうちの第3バイトA2は、Z軸に関するコンピュータ装置の加速度に対応してもよい。
【0031】
第1識別子0x01及び装置からの第1データ群A0,...,A8に続いて、統合インタラプトパケット400は、第2識別子0x02及び第2データ群L0,L1,L2,L3を含んでもよい。例えば、第2識別子0x02は、周囲光(センサ)からの第2データ群が統合インタラプトパケットに含まれることを示してもよい。第2データ群L0,...,L3は、第2装置についてのデータを送信する適切な任意のバイト数を含むことが可能である。例えば、データの内の3つのバイトL0,L1,L2は、周囲光センサにより報告されるパラメータを示してもよい。一実施形態において、周囲光センサは、特に、可視光(例えば、ルクス単位で表現される)、赤外光(例えば、ルクス単位で表現される)及び光の色度(light chromaticity)(例えば、CIE表色系における光の色)のようなパラメータを報告することが可能である。
【0032】
一実施形態では、第2識別子0x02及び第2データ群L0,L1,L2,L3の後に、適切な任意の数の追加的な識別子0x03及びデータ群C0,...,C15が続いてもよい。データ群のうちの全てのバイトを統合インタラプトパケット400に含めることができない場合、データ群のうち一部のバイト数のデータが後続の統合インタラプトパケットに含められてもよい。例えば、統合インタラプトパケット400は64バイトの固定サイズを有してもよい。一実施形態において、データ群は10バイトを含むが、そのデータ群の第1バイト(先頭バイト)が、統合インタラプトパケットのバイト60の場所に含められるかもしれない。このような場合、データ群のうち先頭から5つのバイト(第1〜5バイト)が統合インタラプトパケット400に含められる一方、データ群のうちの後半の5バイトのデータは後続の統合インタラプトパケットに含められてもよい。
【0033】
一実施形態において、統合インタラプトパケット400はインターネットプロトコルパケットでカプセル化されることが可能である。例えば、TCP/IPパケットは、統合インタラプトパケットを、TCP/IPパケットに含まれるデータとして含んでもよい。インターネットプロトコルパケットにおいて統合インタラプトパケットをカプセル化する実施形態では、インターネットプロトコルは、インターネットプロトコルパケットが番号順に又は順番通りに配信されることを保証する。
【0034】
図5はUSB装置が統合インタラプトパケットをオペレーティングシステムに送信することを実行可能にする一時的でない有形のコンピュータ読み取り可能な媒体を示す。有形の一時的でないコンピュータ読み取り可能な媒体500は、コンピュータ相互接続部504を介してプロセッサ502によりアクセスされてもよい。更に、有形の一時的でないコンピュータ読み取り可能な媒体500は、現在説明している方法のステップを実行することをプロセッサ502に指図するコードを含んでもよい。この場合における「コード」は「命令」、「コンピュータプログラム」、「ソフトウェア」等と言及されてもよい。
【0035】
本願で言及される様々なソフトウェアコンポーネントは、
図5に示されるような有形の一時的でないコンピュータ読み取り可能な媒体500に保存されてもよい。ホストインタフェースドライバ506は、統合インタラプトパケットをホスト装置に送信するようにプロセッサ502を指図することに適している。具体的な応用例に依存して、
図5には示されていない任意の数の追加的なソフトウェアコンポーネントが、有形の一時的でないコンピュータ読み取り可能な媒体500の中に包含されてもよいことが、理解されるべきである。
【0036】
<具体例1>
統合インタラプトパケットを送信するための方法が本願において説明される。本方法は、クライアント装置からホスト装置へメタデータを送信するステップと、少なくとも2つのデータ群を前記クライアント装置により検出するステップとを含むことが可能である。本方法は、前記クライアント装置の識別子を検出するステップを含むことも可能である。更に、本方法は、前記クライアント装置についての前記識別子及び少なくとも2つのデータ群を有する統合インタラプトパケットを前記クライアント装置において生成するステップを含むことが可能である。更に、本方法は、前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信するステップを含むことが可能である。
【0037】
一実施形態において、前記クライアント装置はUSB装置である。例えば、クライアント装置は、特に、タッチスクリーンディスプレイ或いはセンサコントローラとすることが可能である。一実施形態において、前記メタデータは、前記クライアント装置が各々のデータ群で送信するバイト数と各々のデータバイトのフィールドとを示す。例えば、メタデータは、クライアント装置により送信されるデータが単独の値であるか否か、或いは、データが値の配列(複数の値)を表現するか否かを示すことが可能である。
【0038】
<具体例2>
統合インタラプトパケットを送信するためのシステムも本願において説明される。本システムは、前記統合インタラプトパケットを送信するクライアント装置と、コンピュータ読み取り可能な命令を実行するプロセッサと、コンピュータ読み取り可能な命令を保存するためのストレージ装置とを有する。前記コンピュータ読み取り可能な命令は、プロセッサにより実行されると、前記クライアント装置によりメタデータを検出し、クライアント装置からホスト装置へメタデータを送信することが可能である。コンピュータ読み取り可能な命令は、少なくとも2つのデータ群を前記クライアント装置により検出し、前記クライアント装置の識別子を検出することも可能である。更に、コンピュータ読み取り可能な命令は、前記クライアント装置についての前記識別子及び少なくとも2つのデータ群を有する統合インタラプトパケットを前記クライアント装置において生成し、前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信することが可能である。
【0039】
一実施形態において、前記コンピュータ読み取り可能な命令は、インターネットプロトコルパケットにおいて前記統合インタラプトパケットをカプセル化し、インターネットプロトコルを利用して前記統合インタラプトパケットを送信することをシステムに実行させることが可能である。一実施形態において、統合インタラプトパケットは、ワイヤレスプロトコルを用いてUSB標準規格とともに送信されることが可能である。一実施形態において、データ群は適切な任意の数のセンサに関するセンサデータを表現することが可能である。
【0040】
<具体例3>
統合インタラプトパケットを送信するためのシステムが本願において説明される。本システムは、前記統合インタラプトパケットを受信するホスト装置と、コンピュータ読み取り可能な命令を実行するプロセッサと、コンピュータ読み取り可能な命令を保存するためのストレージ装置とを有する。コンピュータ読み取り可能な命令は、クライアント装置からメタデータを受信し、前記クライアント装置から前記統合インタラプトパケットを受信することを、プロセッサに指図することが可能である。コンピュータ読み取り可能な命令は、前記統合インタラプトパケットを少なくとも2つのデータ群に分割することを、プロセッサに指図することも可能である。コンピュータ読み取り可能な命令は、前記少なくとも2つのデータ群をアプリケーションに送ることを、プロセッサに指図することが可能である。
【0041】
一実施形態において、前記統合インタラプトパケットは、前記少なくとも2つのデータ群の各々のソースを特定する識別子を有する。「ソース」は「出所」又は「発信元」等と言及されてもよい。一実施形態において、前記メタデータは、前記クライアント装置が各々の統合インタラプトパケットにおいて送信するバイト数と各々のデータバイトのフィールドとを含む。一実施形態において、前記コンピュータ読み取り可能な命令は、インターネットプロトコルにより前記クライアント装置から前記統合インタラプトパケットを受信することを、プロセッサに指図する。
【0042】
<具体例4>
マシン読み取り可能な一時的でない少なくとも1つの媒体であって、統合インタラプトパケットを送信することが可能な複数の命令を有する媒体が、本願において説明される。「マシン読み取り可能」は「コンピュータ読み取り可能」等と言及されてもよい。コンピュータ装置において実行されることに応答して、複数の命令は、クライアント装置からホスト装置へメタデータを送信し、少なくとも2つのデータ群を前記クライアント装置により検出することを、コンピュータ装置に実行させることが可能である。複数の命令は、前記クライアント装置の識別子を検出し、前記クライアント装置についての前記識別子及び少なくとも2つのデータ群を有する統合インタラプトパケットを前記クライアント装置において生成することを、コンピュータ装置に実行させることも可能である。更に、複数の命令は、前記統合インタラプトパケットを前記クライアント装置から前記ホスト装置へ送信することを、コンピュータ装置に実行させることが可能である。
【0043】
一実施形態において、複数の命令は、統合インタラプトパケットを送信することをセンサに実行させることが可能である。一実施形態において、前記メタデータは、前記クライアント装置が各々の統合インタラプトパケットで送信するバイト数と各々のデータバイトのフィールドとを示す。例えば、メタデータは、クライアント装置が統合インタラプトパケットにデータを組み込んだことを示し、データバイトの各々は特定のフィールドについてのデータを表現してもよい。一実施形態において、フィールドは、特に、コンピュータ装置の速度の変化、コンピュータ装置の角速度の変化、或いは、コンピュータ装置の方向の変化等に対応することが可能である。
【0044】
実施形態は、ハードウェア、ファームウェア及びソフトウェアのうちの1つ又は複数の組み合わせにより実現されてもよい。実施形態は、一時的でない有形のマシン読み取り可能な媒体に保存される命令として実現されてもよく、命令は、説明される処理を実行するように、コンピュータプラットフォームにより読み取られて実行される。更に、マシン読み取り可能な媒体は、マシン(例えば、コンピュータ)により読み取ることが可能な形式(又はフォーマット)で情報を保存又はやり取りする任意の手段を含む。例えば、マシン読み取り可能な媒体は、リードオンリメモリ(ROM);ランダムアクセスメモリ(RAM);磁気ディスクストレージ媒体;光ストレージ媒体;フラッシュメモリ装置を含んでもよいし、或いは、例えば、搬送波、赤外線信号、ディジタル信号のような電気的、光学的、音響的又はその他の形態の伝送される信号、或いは、信号を送信及び/又は受信するインタフェースを含んでもよい。
【0045】
実施形態は或る実現手段又は具体例である。明細書において「或る実施形態」、「一実施形態」、「何らかの実施形態」、「様々な実施形態」或いは「他の実施形態」のように参照される用語は、その実施形態に関連して説明される特定の特徴、構造又は特性が、その技術についての少なくとも或る実施形態に含まれることを意味するが、必ずしも全ての実施形態を示すわけではない。「実施形態」、「一実施形態」又は「何らかの実施形態」のような様々な表現は、必ずしも全て同じ実施形態を指すとは限らない。
【0046】
本願で説明及び図示されるコンポーネント、特徴、構造、特性等の全てが特定の実施形態又は各実施形態に含まれることは必須でない。本明細書でコンポーネント、特徴、構造又は特性を説明する場合に、「〜してもよい」、「〜かもしれない」、「〜できる」、「〜できた」等の言い回しが含まれる場合、例えば、特定のコンポーネント、特徴、構造又は特性が包含されることは必須でない。明細書又は特許請求の範囲において「ある」又は「或る」要素を指す場合、それは、必ずしもその要素が1つしか存在しないことを意味するわけではない。明細書又は特許請求の範囲において「追加的」な要素を指す場合、それは、追加的な要素が1つより多く存在することを排除するわけではない。
【0047】
実施形態は特定の実現手段に関連して説明されてきたが、実施形態に応じて他の実現手段も可能であることに留意すべきである。更に、図面に示される及び/又は本明細書で説明される回路要素又は他の特徴についての配置及び/又は順序は、図示及び説明された特定の形態に並べられる必要はない。実施形態に応じて他の多くの並べ方が可能である。
【0048】
図面に示される各々のシステムにおいて、場合によっては要素はそれぞれ同じ参照番号又は異なる参照番号を有し、表現される要素が類似する及び/又は異なることを示唆する。しかしながら、要素は、様々な実現手段をもたらしかつ本願で図示又は説明されたシステムの全部又は一部とともに動作する程度に十分に柔軟に使用可能である。図面に示される様々な要素は同一であってもよいし或いは異なっていてもよい。何れの要素が最初の要素として言及されるか、及び、何れの要素が2番目の要素と呼ばれるかは、任意的である。
【0049】
上記の具体例の詳細は1つ以上の実施形態の任意の箇所で使用されてもよいことが、理解されるべきである。例えば、上記のコンピュータ装置についての選択的な特徴の全ては、本願で説明される方法又はコンピュータ読み取り可能な媒体に関連して実施されてもよい。更に、フロー図及び/又は状態図は実施形態を説明するために本願で使用されてもよいが、技術的事項は図面或いは対応する説明箇所に限定されない。例えば、フローは、図示されたボックス又は状態の各々を通じて進行する必要はなく、或いは、本願で図示及び説明されたのと完全に同じ順序で進行する必要もない。
【0050】
本願による技術思想は、本願に示される特定の詳細事項に制限されない。実際、本願による恩恵を享受する当業者は、上記の説明及び図面から、他の多くの変形例が本願の技術思想の範囲内でなされてよいことを認めるであろう。従って、任意の補正も考慮した上で、本技術思想の範囲を規定するのは添付の特許請求の範囲である。