JP2016526325A - Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期 - Google Patents

Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期 Download PDF

Info

Publication number
JP2016526325A
JP2016526325A JP2016513982A JP2016513982A JP2016526325A JP 2016526325 A JP2016526325 A JP 2016526325A JP 2016513982 A JP2016513982 A JP 2016513982A JP 2016513982 A JP2016513982 A JP 2016513982A JP 2016526325 A JP2016526325 A JP 2016526325A
Authority
JP
Japan
Prior art keywords
usb
frames
host device
client devices
clock signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016513982A
Other languages
English (en)
Other versions
JP2016526325A5 (ja
JP6333963B2 (ja
Inventor
ヨセフ・ツファティ
シャオドン・ワン
アリレザ・ライシニア
ヴィジャヤラクシュミー・ラジャスンダラム・ラヴィーンドラン
シャオロン・ファン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016526325A publication Critical patent/JP2016526325A/ja
Publication of JP2016526325A5 publication Critical patent/JP2016526325A5/ja
Application granted granted Critical
Publication of JP6333963B2 publication Critical patent/JP6333963B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

通信チャネルを介してユニバーサルシリアルバス(USB)フレームを送信する方法が開示される。USBデバイスは、ネットワークを介して1つまたは複数のUSBフレームをホストデバイスから受信し、1つまたは複数のUSBフレームが、ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のデータパケット内にカプセル化される。USBデバイスは、通信プロトコルのクロック同期機構を使用して、ローカルクロック信号をホストデバイスのクロック信号とさらに同期させる。USBデバイスは、次いで、ホストデバイスによって送信されたUSBフレームの数を決定し、少なくとも部分的に、同期させたローカルクロック信号に基づいて、1つまたは複数のUSBフレームを処理する。いくつかの実施形態では、USBデバイスは、フレームカウント値および対応する媒体時間値をホストデバイスから受信することができる。

Description

本実施形態は、一般に通信システムに関し、詳細には、Wi-Fiチャネルを介してユニバーサルシリアルバス(USB)プロトコルパケットを送ることに関する。
コンピュータ、外部周辺機器、およびネットワークを接続するための様々なインターフェース規格が、単純な接続性を高速で提供するために採用されている。たとえば、ユニバーサルシリアルバス(USB)は、PCやラップトップなどのコンピュータをマウス、キーボード、プリンタ、フラッシュドライブ、スピーカなどの実に様々な周辺デバイスに接続するのに一般に使用される高速シリアルバスプロトコルである。より具体的には、USBプロトコルは、信じられないほどに多様な範囲の周辺機器をそれらのコンピュータにプラグアンドプレイ式に接続するための機能強化された、使いやすいインターフェースをユーザに提供するために開発された。
最近になって、PC、ラップトップ、タブレットおよびスマートフォンなどの通信デバイスが物理的配線やケーブルなしで他の通信デバイスに接続することを可能にするためにワイヤレス通信プロトコルが開発された。たとえば、IEEE802.11規格は、RF信号を使用したワイヤレス通信を可能にする様々なWi-Fiプロトコルを定義している。たとえば、Wi-Fiアクセスポイントは、移動局(STA)などの1つまたは複数のクライアントデバイスが互いに通信するおよび/またはインターネットなどの外部ワイヤードネットワークに接続することを可能にするワイヤレスローカルエリアネットワーク(WLAN)を提供することができる。
したがって、ホストデバイス(たとえば、コンピュータ、ラップトップ、タブレット、スマートフォン)が、関連するWLANを使用していくつかのクライアントデバイス(たとえば、マウス、キーボード、プリンタ、フラッシュドライブ、スピーカ)とUSBデータを交換して、たとえば、ホストデバイスとクライアントデバイスとの間にケーブルを敷設する必要がなくなることは、望ましいことである。Bluetooth(登録商標)技術により、ホストデバイスとクライアントデバイスとの間でワイヤレス通信が可能となり得るが、WLAN通信はBluetooth(登録商標)通信よりもずっと範囲が広い。
本概要は以下の発明を実施するための形態においてさらに説明する選択された概念を簡略化した形で紹介するために提供される。本概要は、特許請求される主題の主要な特徴または不可欠な特徴を識別することが意図されていないし、特許請求される主題の範囲を限定することも意図されていない。
ネットワークを介してユニバーサルシリアルバス(USB)フレームを送信する方法が開示される。USBデバイスは、1つまたは複数のUSBフレームをホストデバイスからネットワークを介して受信し、1つまたは複数のUSBフレームは、ネットワークに関連付けられた通信プロトコルに基づいて1つまたは複数のデータパケット内にカプセル化される。USBデバイスは、通信プロトコルのクロック同期機構を使用して、ローカルクロック信号をホストデバイスのクロック信号とさらに同期させる。たとえば、通信プロトコルは、IEEE802.11ワイヤレスプロトコルに対応することができる。したがって、USBデバイスは、ホストデバイスから受信したタイミング同期機能(TSF)に基づいて(たとえば、1つまたは複数のビーコンフレームで)、そのローカルクロック信号を調整することができる。USBデバイスは、次いで、ホストデバイスによって送信されたUSBフレームの数を決定し、少なくとも部分的に、同期させたローカルクロック信号に基づいて、1つまたは複数のUSBフレームを処理する。
USBデバイスは、ホストデバイスから受信した1つまたは複数のUSBフレームを一時的に記憶するデータバッファを含むことができる。USBデバイスは、部分的に、データバッファに記憶されたUSBフレームの数に基づいて、ローカルフレームカウンタをさらに更新することができる。したがって、USBデバイスは、ローカルフレームカウンタに基づいて、ホストデバイスによって送信されたUSBフレームの数を決定することができる。USBデバイスは、次いで、ローカルフレームカウンタが第1の閾値に達したとき、データバッファに記憶されたUSBフレームの処理を開始することができる。
いくつかの実施形態では、USBデバイスは、ホストデバイスによって送信されたUSBフレームの数を示すフレームカウント値をホストデバイスから受信することができる。USBデバイスは、フレームカウント値が記録される時間を示す、フレームカウント値に関連した媒体時間値を受信することもできる。たとえば、フレームカウント値および媒体時間値は、USBフレームのうちの少なくとも1つにおいて共に受信することができる。USBデバイスは、部分的にローカルクロック信号、フレームカウント値、および媒体時間値に基づいて、そのローカルフレームカウンタをホストデバイス内のUSBフレームカウンタとさらに同期させることができる。
他の実施形態では、コンピューティングデバイスは、ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のUSBフレームを1つまたは複数のデータパケット内にカプセル化することができる。コンピューティングデバイスは、次いで、カプセル化されたUSBフレームを含む、1つまたは複数のデータパケットを1つまたは複数のデバイスにネットワークを介して送信することができる。コンピューティングデバイスは、同期データの組を1つまたは複数のデバイスにさらに送信して、1つまたは複数のデバイスの各々が1つまたは複数のUSBフレームを処理することを可能にすることができる。
同期データは、1つまたは複数のデバイスの各々が、それぞれのローカルクロック信号をコンピューティングデバイスのクロック信号と同期させることを可能にするクロック同期データを含むことができる。たとえば、通信プロトコルは、802.11ワイヤレスプロトコルに対応することができる。したがって、コンピューティングデバイスは、1つまたは複数のビーコンフレームとともにクロック同期データをブロードキャストすることができ、クロック同期データはTSF値を含む。
同期データは、フレームカウント値と、フレームカウント値に関連付けられた媒体時間値とをさらに含むことができる。たとえば、コンピューティングデバイスは、1つまたは複数のデバイスに送信されたUSBフレームの数に基づいて、USBフレームカウンタを更新することができる。フレームカウント値は、USBフレームカウンタの現在の値を示すことができ、一方、媒体時間値は、フレームカウント値が記録される時間を示すことができる。いくつかの実施形態では、フレームカウント値および媒体時間値は、共に、1つまたは複数のUSBフレームのうちの少なくとも1つのフレーム内にカプセル化することができる。
いくつかの実施形態では、コンピューティングデバイスは、1つまたは複数のデバイスに処理要求をさらに送信することができる。処理要求は、1つまたは複数のUSBフレームの処理を開始させる命令を含むことができる。たとえば、処理要求は、フレームカウント閾値を含むことができる。1つまたは複数のデバイスは、コンピューティングデバイスによって送信されたUSBフレームの数がフレームカウント閾値に等しいとき、1つまたは複数のUSBフレームの処理を開始することになっている。
本実施形態は、例として示され、添付の図面の図によって限定されることは意図されていない。
いくつかの実施形態による、ネットワークデバイスのブロック図である。 いくつかの実施形態による、ワイヤレスUSB通信システムを示す図である。 USBクライアントデバイスをホストデバイスとワイヤレスで同期させることに伴う潜在的な問題を示す例示的なタイミング図である。 いくつかの実施形態による、例示的なワイヤレスUSB同期動作を示すシーケンス図である。 いくつかの実施形態による、例示的なワイヤレスUSB同期動作を示すシーケンス図である。 いくつかの実施形態による、USBクライアントデバイスを動作させる例示的な方法を示す例示的なフローチャートである。 いくつかの実施形態による、USBホストデバイスを動作させる例示的な方法を示す例示的なフローチャートである。 いくつかの実施形態による、ワイヤレスUSB同期動作を示す例示的なフローチャートである。 いくつかの実施形態による、USB使用可能クライアントデバイスのブロック図である。 いくつかの実施形態による、USB使用可能ホストデバイスのブロック図である。
図面の図全体を通して同じ参照番号は対応する部分を表す。
本実施形態は、簡単にするだけのために、WLAN通信プロトコルを使用してUSBデータを交換する文脈で以下に説明する。本実施形態は、他の適切なワイヤレス規格にわたってUSBデータの交換に等しく適用可能であると理解されたい。本明細書では、WLANおよびWi-Fiという用語は、IEEE802.11規格、Bluetooth(登録商標)、HiperLAN(主にヨーロッパで使用されるIEEE802.11規格に匹敵するワイヤレス規格の組)および相対的に狭い無線伝搬範囲を有する他の技術によって支配される通信を含むことができる。本明細書では、「ホストデバイス」という用語は、USBデータを他のUSB使用可能デバイスに送信することができる(たとえば、ワイヤレス通信チャネルを介して)任意のUSB使用可能デバイスを表すのに本明細書では使用することができる。さらに、「クライアントデバイス」という用語は、USBデータをホストデバイスから受信することができる(たとえば、ワイヤレス通信チャネルを介して)任意のUSB使用可能デバイスを表すのに本明細書では使用することができる。いくつかの実施形態では、ホストデバイスは、クライアントデバイスとして動作可能でもあり得、逆も同様であることに留意されたい。
以下の説明では、本開示の完全な理解を与えるために具体的な構成要素、回路、および処理の例など、数多くの具体的な詳細が記載される。本明細書では「結合された」という用語は、1つまたは複数の介在構成要素または回路に直接接続されるか、またはそれらを介して接続されることを意味する。また、以下の説明では、説明の目的で、本実施形態の完全な理解を与えるために具体的な名称が記載される。しかし、これらの具体的な詳細が本実施形態を実施するのに必要でなくてもよいことは当業者には明らかであろう。他の場合には、本開示が不明瞭になることを回避するために、周知の回路およびデバイスをブロック図形式で示す。本明細書で説明する様々なバスを介して与えられる信号のいずれも、他の信号で時分割多重化され、1つまたは複数の共通バスを介して与えられ得る。さらに、回路要素間またはソフトウェアブロック間の相互接続は、バスとしてまたは単一信号線として示され得る。バスの各々は代替として単一信号線であってもよく、単一信号線の各々は代替としてバスであってもよく、単一信号線またはバスは構成要素間の通信のための無数の物理的または論理的機構のうちの任意の1つまたは複数を表し得る。本実施形態は、本明細書に説明する具体的な例に限定されるものと見なしてはならず、むしろ、それらの範囲内に添付の特許請求の範囲によって定義されるすべての実施形態を含むものと見なすべきである。
上述のように、ホストデバイス(たとえば、コンピュータ、ラップトップ、タブレット、スマートフォンなど)が、対応するWLANを介してUSBデータを1つまたは複数のクライアントデバイス(たとえば、スピーカ、プリンタ、キーボード、マウスなど)と交換することが望ましい。WLANを介してUSBデータを1つまたは複数のクライアントデバイスと交換することに伴う問題のうちの少なくとも1つは、ワイヤード接続の存在なしでクライアントデバイス内のクロックおよび/またはカウンタをホストデバイス内のクロックおよび/またはカウンタと同期させることである。たとえば、USB規格は、関連するUSBケーブルを介した通信プロトコルを定義しており、典型的には、USBケーブルを介したクロックおよびカウンタ情報の交換を利用して、クライアントデバイス内のクロックおよび/またはカウンタが、ホストデバイス内のクロックおよび/またはカウンタと同期したままであることを確実にする。したがって、WLAN通信は、ワイヤード接続(たとえば、USBケーブル)を使用しないので、USB規格によって定義されたクロック同期技法は、WLANに関連付けられたワイヤレスチャネルを介してUSBデータを送信しようとするとき、利用可能でない可能性がある。
本明細書における本開示では、7つの論理層を含む開放型システム間相互接続(OSI)モデルを参照することができる。すなわち、層1は物理層、層2はデータリンク層、層3はネットワーク層、層4は輸送層、層5はセッション層、層6はプレゼンテーション層、および層7はアプリケーション層である。OSI層は、階層が高ければ高いほど、エンドユーザに近く、階層が低ければ低いほど、物理チャネルに近くなる。たとえば、OSIモデル階層の最上部にアプリケーション層があり、エンドユーザのソフトウェアアプリケーションと直接相互作用する。OSIモデル階層の最下部に物理層があり、ネットワークデバイスと物理的通信媒体との関係を定義する。
物理層は、物理媒体の電気および物理仕様を提供し、媒体を介して送信/受信されるべきデータを変調/復調することができるトランシーバを含む。データリンク層は、デバイス間のデータ伝送のためにアドレス指定およびチャネルアクセス制御機構などの機能的および/または手続き的詳細を提供する。データリンク層は、論理リンク制御(LLC)層と、媒体アクセス制御(MAC)層との2つの副層を含む。
MAC層とPHY層との間にインターフェースが存在して、2つの層の間の情報の交換を容易にする。このインターフェースは、MAC層がデータ伝送に使用される物理媒体に関して不可知(および、したがって、採用された特定のPHYデバイスに関して不可知)であるので、媒体独立インターフェース(MII)と呼ばれる。このようにして、MIIにより、所与のMACデバイスは実に様々なPHYデバイスに使用することが可能である。MIIという用語は、種類全体を表すことに加えて、特有のタイプの媒体独立インターフェースを表すこともできる。本明細書では、「媒体アクセスインターフェース」および「MII」という用語は、特に他の記述がない限り、そのようなインターフェースの種類全体を表す。MIIの例には、接続機構インターフェース(AUI)、MII、低減されたMII、ギガビットMII(GMII)、低減されたGMII、シリアルGMII(SGMII)、クアッドSGMII(QSGMII)、10GMII、およびソース同期シリアルMII(S3MII)が含まれる。
図1は、いくつかの実施形態による、ネットワークデバイス100のブロック図である。具体的には、ネットワークデバイス100は、媒体M1(たとえば、ワイヤレスチャネル)を介して別のデバイス(簡単にするために図示せず)と通信することができ得る。ネットワークデバイス100は、プロセッサ110と、メモリ120と、PHYデバイス130と、MACデバイス140とを含む。PHYデバイス130は、ワイヤレス媒体M1に結合されたトランシーバ135を含む。トランシーバ135はPHYデバイス130に含まれるものとして図1に示すが、トランシーバ135は独立型のデバイスまたは集積回路でもよい。メモリ120は、たとえば、EEPROMまたはフラッシュメモリを含む、任意の適切なメモリ素子またはデバイスでよい。プロセッサ110は、たとえば、メモリ120に記憶された1つまたは複数のソフトウェアプログラムのスクリプトまたは命令を実行することができる任意の適切なプロセッサでよい。
PHYデバイス130およびMACデバイス140は各々、信号路160の組を介して、それぞれ、2つのデバイスの間で信号を送信するための媒体独立インターフェース(MII)150-1および150-2を含む。いくつかの実施形態では、MII150-1は、それぞれ、MACデバイス140との間でデータを送信および受信するための第1および第2のPHY側差動トランジスタ対(簡単にするために図示せず)を含むことができ、MII150-2は、それぞれ、PHYデバイス130との間でデータを送信および受信するための第1および第2のMAC側差動トランジスタ対(簡単にするために図示せず)を含むことができる。したがって、MII150-1は本明細書ではPHY側MIIと呼ぶことができ、MII150-2は本明細書ではMAC側MIIと呼ぶことができる。
MACデバイス140は、OSIMAC副層の機能を実装する任意のデバイスまたは集積回路でもよく、独立型のデバイスでもよく、またはネットワークデバイス100中に統合されてもよい。同様に、PHYデバイス130は、OSI物理層の機能を実装する任意のデバイスまたは集積回路でもよく、独立型のデバイスでもよく、またはネットワークデバイス100中に統合されてもよい。
データ送信動作の間、ネットワークデバイス100上のエンドユーザソフトウェアアプリケーションが媒体M1を介してデータを別のデバイスに送信するとき、プロセッサ110はOSIモデルの最上層に従ってデータを処理し、次いで、データをMACデバイス140を通じてPHYデバイス130に送信する。次いで、PHYデバイス130は、トランシーバ135を介してデータを媒体M1上に送信する。
図2は、いくつかの実施形態による、通信システム200を示す。システム200は、通信チャネル230を使用して互いに通信することができるホストデバイス210と3つのクライアントデバイス220(1)〜220(3)とを含むように示される。いくつかの実施形態では、通信チャネル230は、他の適切なワイヤレス通信プロトコルが使用され得るが、IEEE802.11規格により通信を容易にするワイヤレス(たとえば、WLANまたはWi-Fi)チャネルでよい。他の実施形態では、通信チャネル230は、ワイヤードリンク(たとえば、10GBASE-T Ethernet(登録商標)チャネル)でよい。さらに、簡単にするために、3つのクライアントデバイス220(1)〜220(3)が図2に示されるが、システム200は通信チャネル230を介してホストデバイス210に接続された任意の数のクライアントデバイス220を含み得る。
コンピュータ、ラップトップ、タブレット、スマートフォン、または他の適切なコンピューティングまたは通信デバイスであり得るホストデバイス210は、プロセッサ211と、USBコントローラ212と、プロトコル適応層(PAL)ステーション管理エンティティ(SME)213とWLANインターフェース214とを含む。プロセッサ211は、USBコントローラ212に結合され、USBコントローラ212および/またはホストデバイス210の他の構成要素の動作を制御することができる。USBコントローラ212は、プロセッサ211とPAL SME213との間のUSB通信を容易にすることができる任意の適切なUSBコントローラでよい。少なくともいくつかの実施形態では、USBコントローラ212は、USB通信の符号化機能を提供するために物理符号化副層(PCS)回路(簡単にするために図示せず)を含み得るまたはそれに関連付けられ得る。Wi-Fiギガビットアライアンス(WGA)によって定義されたプロトコルにより動作することができるPAL SME213は、ワイヤレスチャネル230を介してホストデバイス210とクライアントデバイス220(1)〜220(3)との間のUSBデータの交換を可能にすることができる。PAL SME213に結合されるWLANインターフェース214は、ワイヤレスチャネル230を介してクライアントデバイス220(1)〜220(3)との間でデータを送信および受信するためにトランシーバを含むことができる。
クライアントデバイス220は、任意の適切なUSB周辺デバイス(たとえば、スピーカ、プリンタ、キーボード、マウスなど)でよい。簡単にするために図2には示していないが、クライアントデバイス220(1)〜220(3)の各々は、ワイヤレスチャネル230を介してUSBデータのワイヤレス交換を容易にするために、プロセッサと、USBコントローラと、PAL SMEと、WLANインターフェースとを含むことができる。
ホストデバイス210がクライアントデバイス220(1)〜220(3)にアイソクロナスUSBデータを正確な時点で(たとえば、互いに同時に)提供(render)させる場合、ホストUSBコントローラ212内のUSBフレームカウンタは、クライアントデバイス220(1)〜220(3)内のUSBフレームカウンタと同期させなければならない。たとえば、USBデータがクライアントデバイス(たとえば、スピーカとして働く)によって再生されるべきオーディオ情報を含む場合、複数のデバイス220(1)〜220(3)から同時にオーディオ情報の再生を可能にすることが望ましいことであり得る。したがって、クライアントデバイス220(1)〜220(3)をホストデバイス210と、および/または互いに、同期させることは望ましいことであり得る。
いくつかの実施形態では、ホストデバイス210とクライアントデバイス220(1)〜220(3)との間の通信は、双方向でよい。たとえば、場合によっては、クライアントデバイス220(1)〜220(3)の各々は、ホストデバイスとして働くことができ、ホストデバイス210は、クライアントデバイスとして働くことができる。より具体的には、ホストデバイス210およびクライアントデバイス220(1)〜220(3)は、ワイヤレス通信チャネル(たとえば、ワイヤレスチャネル230)を介してUSBフレームを送信し受信することが両方できる実質的に同様のコンピューティングデバイスであり得る。
図3は、クライアントデバイス220(1)〜220(3)をホストデバイス210と同期させることに伴う潜在的な問題を示す例示的なタイミング図300である。図2も参照すると、USBコントローラ212がプロセッサ211からデータを受信するとき、USBコントローラ212は、タイムスタンプ(Tp)をデータに添付し、後でクライアントデバイス220(1)〜220(3)に送信するためにデータをパケット中にカプセル化することができる。しかし、ホストデバイス210のMAC層とPHY層との間(たとえば、USBコントローラ212とWLANインターフェース214との間)には伝送遅延(Td)があり得る。データパケットが異なると一定でない可能性があるこの伝送遅延により、ホストデバイス210から送信されたデータパケットを受信し、処理しおよび/または表示するクライアントデバイス220(1)〜220(3)のうちの1つまたは複数に関連付けられたタイミングエラーが起こり得る。
このタイミング問題の1つの解決策は、ホストデバイス210内のデータパケットを解析し、オリジナルのタイムスタンプ(Tp)を抽出し、伝送遅延(Td)を計算し、次いで、オリジナルのタイムスタンプを更新して、伝送遅延を反映することを必要とし得る。ホストデバイス210内のディープパケットインスペクション(DPI)動作が関与し得るこのプロセスは、貴重な処理資源を消費し、時間のかかるものであり得る。さらに、多くの既存のホストデバイスは、USBコントローラ212から受信したUSBデータパケット/フレーム上のDPI動作を実行することができる回路またはソフトウェアモジュールを含まない可能性がある。
いくつかの実施形態では、ホストデバイス210および/またはクライアントデバイス220(1)〜220(3)は、クライアントデバイス220(1)〜220(3)をホストデバイス210に同期させるためにIEEE802.11規格によって定義されたWLAN動作を利用することができる。より具体的には、ホストデバイス210は、クライアントデバイス220(1)〜220(3)のカウンタおよび/またはクロックが、確実にホストデバイス210のそれぞれのカウンタおよび/またはクロックと同期化される(および同期させたままである)ようにするために、IEEE802.11規格によって具現化される技法を採用することができる。たとえば、図4A〜図4Bは、いくつかの実施形態による、例示的なワイヤレスUSB同期動作を示すシーケンス図である。
たとえば、図4Aを参照すると、ホストデバイス210は、クライアントデバイス220(1)〜220(3)への(および/または、からの)データの送信(および/または受信)を計時するのに使用され得る内部クロック信号(ClkH)を生成する。同様に、クライアントデバイス220(1)〜220(3)の各々は、ホストデバイス210からの(および/または、への)データの受信(および/または送信)を計時するのに使用され得る、対応するローカルクロック信号(Clk1〜Clk3)を生成することができる。いくつかの実施形態では、ホストデバイス210は、ローカルクロック信号Clk1〜Clk3をホストクロック信号ClkHと同期させるために、クロック同期(Clk_Sync)データをクライアントデバイス220(1)〜220(3)の各々に送信することができる。クライアントデバイス220(1)〜220(3)の各々は、次いで、そのローカルクロックをホストクロックClkHに整合させるために(たとえば、それぞれのタイミングオフセットをローカルクロックClk1〜Clk3に適用することにより)、Clk_Syncデータを使用することができる。
いくつかの実施形態では、クロック同期動作は、通信チャネル230に関連付けられた通信プロトコルによってすでに提供されている1つまたは複数のクロック同期機構または技法を使用して実行され得る。たとえば、ホストクロック信号ClkHおよびローカルクロック信号Clk1〜Clk3は、IEEE802.11ワイヤレスプロトコルによって定義されたタイミング同期機能(TSF)に基づいて生成され得る。あるいは、および/または、さらに、ホストクロック信号ClkHは、特定の適用例に所望される精度のレベルにより、他のクロック同期技法(たとえば、802.1AS、802.11v、および/または802.11mc規格によって定義されたクロック同期技法など)を使用して、ローカルクロック信号Clk1〜Clk3と同期され得る。
TSFタイマは、マイクロ秒単位でインクリメントする(たとえば、「時を刻む」)係数264カウンタであり得、したがって、264=102,400マイクロ秒の最大カウント値を有する(他の適切なタイマ、クロック、および/またはカウンタを使用することができるが)。いくつかの実施形態では、ホストデバイス210は、そのTSFタイマ値を1つまたは複数のビーコンフレームにおいて、クライアントデバイス220(1)〜220(3)にブロードキャストすることができる。ビーコンフレームを受信すると、クライアントデバイス220(1)〜220(3)の各々は、それ自体のローカルTSFタイマを、受信したTSFタイマ値に設定することができる。これによって、クライアントデバイス220(1)〜220(3)のローカルTSFタイマ(たとえば、Clk1〜Clk3)が確実にホストデバイス210のTSFタイマ(たとえば、ClkH)と同期されるようになる。
いくつかの実施形態では、Clk_Syncデータは、ホストデバイス210とクライアントデバイス220(1)〜220(3)との間でクロック同期を維持するために周期的にブロードキャストおよび/または送信され得る。たとえば、通信チャネル230がWi-Fiチャネルである場合、802.11仕様は、ホストデバイス210が周期的にビーコンフレームをクライアントデバイス220(1)〜220(3)にブロードキャストする、クロック同期機構を定義している。したがって、クライアントデバイス220(1)〜220(3)およびホストデバイス210は、ビーコン間隔(たとえば、ビーコンフレーム内に設けられる)によって離隔される一連のターゲットビーコン送信時間(TBTT)を確立することができる。クライアントデバイス220(1)〜220(3)は、次いで、新たなビーコンフレームを受信するたびにそれらのローカルTSFタイマをホストデバイス210のTSFタイマと再同期させることができる。
ローカルクロック信号Clk1〜Clk3がホストクロック信号ClkHと同期すると、ホストデバイス210は、通信チャネル230を介して、カプセル化されたUSBフレームをクライアントデバイス220(1)〜220(3)に送信し始めることができる。たとえば、USBフレームは、普通ならUSBケーブルを介してクライアントデバイス220(1)〜220(2)のうちの1つまたは複数に送信されるはずのUSBデータに対応することができる。代わりに、いくつかの実施形態では、USBフレームは、ワイヤレス通信プロトコルに基づいて、通信チャネル230を介して送信されるべき1つまたは複数のデータパケット内にカプセル化され(たとえば、に書き込まれ、および/または、によって運ばれ)得る。クライアントデバイス220(1)〜220(3)は、オリジナルのUSBフレームを取り戻すために受信したデータパケットのカプセル開放を行うことができる。いくつかの実施形態では、クライアントデバイス220(1)〜220(3)の各々は、ホストデバイス210から受信したUSBフレームごとにローカルフレームカウンタ(たとえば、Cnt1〜Cnt3)を更新することができる。
たとえば、図4Bを参照すると、ホストデバイス210は、ホストデバイス210のフレームカウンタCntHをクライアントデバイス220(1)〜220(3)のローカルフレームカウンタCnt13と同期させるために、それぞれ、カウント値に関連付けられたフレームカウント値(F_Count)および媒体時間(M_Time)を識別する情報をクライアントデバイス220(1)〜220(3)に送信することができる。フレームカウンタCntHは、ホストデバイス210によって送信されたUSBフレームの数を示すことができる。たとえば、ホストデバイス210は、クライアントデバイス220(1)〜220(3)に送信されたUSBフレームごとにフレームカウンタCntHを更新することができる。
F_Count値は、任意の所与の時間にホストデバイス210によって送信されたUSBフレームの総数(たとえば、ホストフレームカウンタCntHに基づく)を示すことができる。より具体的には、M_Time値は、F_Count値が決定されたおよび/または発信データパケットおよび/またはUSBフレーム内に埋め込まれた特定の時間(たとえば、ホストクロック信号ClkHに基づく)を指定することができる。いくつかの実施形態では、M_Time値は、各データパケットおよび/またはホストデバイス210によって送信されたフレーム内に埋め込まれた送信タイムスタンプ(たとえば、802.11仕様によって定義された)に対応することができる。いくつかの実施形態では、F_CountおよびM_Time値は、実質的に同じ時間で符号化することができ、したがって、互いに「対にする」ことができる。たとえば、F_CountおよびM_Time値は、1つまたは複数のUSBフレーム内にカプセル化され得、他のカプセル化されたUSBデータが提供され得る。あるいは、F_CountおよびM_Time値は、USBデータとは別個に送信され得る(たとえば、独立した管理フレームの一部として)。
ローカルフレームカウンタCnt1〜Cnt3の各々は、それぞれ、F_Count値、M_Time値、および対応するローカルクロック信号Clk1〜Clk3に基づいてホストフレームカウンタCntHと同期され得る。たとえば、フレームカウント同期動作は、以下の式に基づいて任意のクライアントデバイス220に対して実行され得る。
Figure 2016526325
したがって、ローカルクロック信号Clk1〜Clk3の各々をホストクロック信号ClkHと同期させた後(たとえば、図4Aに関して上に説明したように)、ホストデバイス210によるF_Count値の符号化とクライアントデバイス220(1)〜220(3)のうちの1つによるその受信との間で経過した時間の量は、F_Count値が受信される時間(たとえば、ローカルクロック信号Clk1〜Clk3に基づいて)を計り、M_Time値を減算することによって決定され得る。この経過時間の間、ホストデバイス210によって送信された可能性がある追加のUSBフレームの数は、経過時間をホストデバイス210の伝送速度(たとえば、クロックサイクル別に送信され得るUSBフレームの総数)で乗算することによって決定され得る。結果は、次いで、ホストカウンタCntHの現在のカウント値を決定するためにF_Count値に追加され得る。
クライアントデバイス220(1)〜220(3)は、次いで、続いて受信したUSBフレームに基づいてそれらのそれぞれのローカルカウンタCnt13を更新することができる。しかし、個々のクライアントデバイス220(1)〜220(3)がUSBフレームを受信する速度は異なり得ることに留意されたい。たとえば、ホストデバイス210によるデータの送信の遅延、通信チャネル230に沿った伝搬遅延、および/またはマルチパス状態により、クライアントデバイス220(1)〜220(3)の各々は、異なる時間にUSBフレームを受信することができる。したがって、任意の所与の時間において、クライアントデバイス220(1)〜220(3)のうちの1つによってバッファリングされたUSBフレームの数は、別のクライアントデバイスによってバッファリングされたUSBフレームの数とは異なり得る。たとえば、特定の時間Tにおいて、ホストカウンタCntHは、Nのカウント値を有することができ、ローカルカウンタCnt1は、Nのカウント値を記憶することができ、ローカルカウンタCnt2は、N-1のカウント値を記憶することができ、ローカルカウンタCnt3は、N-2のカウント値を記憶することができる。いくつかの実施形態では、ホストデバイス210は、ホストカウンタCntHとローカルカウンタCnt1〜Cnt3の各々との間の同期を維持するために、新たなF_CountおよびM_Time値をクライアントデバイス220(1)〜220(3)に周期的に送信することができる。これによって、ローカルフレームカウンタCnt1〜Cnt3の各々は、クライアントデバイス220(1)〜220(3)のそれぞれの1つによって受信されおよび/またはバッファリングされたUSBフレーム数だけでなく、ホストデバイス210によって送信されたフレームの総数のカウントを維持することが可能になる。
いくつかの実施形態では、ホストデバイス210は、特定のフレームカウントに基づいて、受信したUSBフレームを処理し、および/または提供することを開始する命令とともに、処理要求メッセージをクライアントデバイス220(1)〜220(3)のうちの1つまたは複数に送信することができる。たとえば、クライアントデバイス220(1)〜220(3)の各々は、ホストデバイス210から受信したUSBフレームをバッファリングする内部記憶素子を含むことができる。クライアントデバイス220(1)〜220(3)は、ホストデバイス210によって、バッファリングされたUSBフレームの処理または提供を開始するように命令されるまで、USBフレームをバッファリングすることを継続することができる。いくつかの実施形態では、処理要求メッセージは、ローカルフレームカウンタが特定のフレームカウント閾値に達した後、クライアントデバイス220(1)〜220(3)にUSBフレームの処理を開始するように命令することができる。しかし、上に説明したように、ローカルフレームカウンタCnt1〜Cnt3は、ホストカウンタCntHに対してドリフトすることがある。それにもかかわらず、クライアントデバイス220(1)〜220(3)の各々が実質的に同じ時間に(たとえば、クライアントデバイス220(1)〜220(3)の各々が同じオーディオ信号を再生するように構成されたスピーカである場合のように)、記憶されたUSBフレームの処理または提供を開始することは、望ましいことであり得る。したがって、ローカルフレームカウンタCnt1〜Cnt3の各々をホストカウンタCntHと同期させることによって、複数のクライアントデバイス220(1)〜220(3)が同時にUSBの処理を開始することが可能になり得る。
通信チャネル230用に設けられた既存のクロックプロトコルを活用することによって、システム200は、ディープパケットインスペクションを必要とせずにホストデバイス210とクライアントデバイス220(1)〜220(3)との間で同期させたUSBフレームカウントを効率的におよび正確に維持することができる。その上、本実施形態によれば、クライアントデバイス220(1)〜220(3)の各々は、クライアントデバイス220(1)〜220(3)が異なる時間においてそのような値を受信しても、F_CountおよびM_Time値を使用して、ホストデバイス210の現在のフレームカウントを決定することができる。
図5は、いくつかの実施形態による、USBクライアントデバイスを動作させる例示的な方法500を示す例示的なフローチャートである。たとえば、方法500は、図2および図4A〜図4Bに関して上に説明したクライアントデバイス220のうちのいずれかによって実装され得る。具体的には、クライアントデバイス220は、ネットワークを介して1つまたは複数のUSBフレームをホストデバイス210から受信することができる(501)。いくつかの実施形態では、1つまたは複数のUSBフレームは、ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のデータパケット内にカプセル化され得る。クライアントデバイス220は、1つまたは複数のUSBフレームを取り戻すために、受信したデータパケットのカプセル開放を行うことができる。さらに、いくつかの実施形態では、クライアントデバイス220は、受信したUSBフレームをデータバッファに記憶することができる。
クライアントデバイス220は、そのローカルクロック信号をホストデバイスのクロック信号とさらに同期させる(502)。具体的には、クライアントデバイス220は、通信プロトコルのクロック同期機構に基づいて、そのローカルクロック信号をホストクロック信号と同期させることができる。たとえば、ホストデバイス210は、そのローカルクロック信号を調整するためにクライアントデバイス220によって使用され得るクロック同期(Clk_Sync)データを周期的に送信またはブロードキャストすることができる。802.11ワイヤレスネットワークでは、クロック同期データは、1つまたは複数のビーコンフレームにおいて、ホストデバイス210によってブロードキャストされたTSF値に対応することができる。クライアントデバイス220は、次いで、ホストデバイス210のTSF値に一致するように(たとえば、図4Aに関して上に説明するように)それ自体のTSF値を(必要に応じ)調整することができる。
クライアントデバイス220は、次いで、ホストデバイス210によって送信されたUSBフレームの数を決定する(503)。具体的には、クライアントデバイス220は、同期させたローカルクロック信号に基づいて、ホストデバイス210によって送信されたUSBフレームの数を決定することができる。たとえば、クライアントデバイス220は、ホストデバイス210から受信したUSBフレームごとにローカルフレームカウンタを更新することができる。しかし、上に説明したように、クライアントデバイス220によって受信されたUSBフレームの数は、ホストデバイス210によって送信されたUSBフレームの数に必ずしも一致するとは限らない可能性がある(たとえば、ドリフトおよび/または中止したデータパケットにより)。したがって、いくつかの実施形態では、ローカルフレームカウンタは、ホストデバイス210によって送信された同期データに基づいて、ホストデバイス210内のUSBフレームカウンタを追跡することができる。同期データは、たとえば、フレームカウント(F_Count)値および媒体時間(M_Time)値を含むことができる。より具体的には、F_Count値は、M_Time値によって指定された時間にホストデバイス210によって送信されたUSBフレームの数を示すことができる。クライアントデバイス220は、次いで、M_Time値によって示された時間以来送信された追加のUSBフレームの数を決定するために、同期させたローカルクロック信号を使用することができる(たとえば、図4Bに関して上に説明したように)。いくつかの実施形態では、クライアントデバイス220は、そのローカルフレームカウンタをホストデバイス210のフレームカウンタと周期的に再同期させることができる。
最後に、クライアントデバイス220は、ホストデバイス210によって送信されたUSBフレームの数に基づいて、受信したUSBフレームを処理することができる(504)。たとえば、ホストデバイス210は、ローカルフレームカウンタが特定のフレームカウント閾値に達すると、クライアントデバイス220に、受信したUSBフレームの処理および/または提供を開始するように命令することができる。ローカルフレームカウンタは、ホストフレームカウンタと同期され得るので、クライアントデバイス220は、ホストデバイス210によって示されたときにいつでもUSBフレームの処理を開始することができる。これにより、複数のクライアントデバイス220が、そのときに各クライアントデバイス220によって実際に受信されたUSBフレームの数にかかわらず、実質的に同時にUSBフレームの処理を開始することが可能になり得る。
図6は、いくつかの実施形態による、USBホストデバイスを動作させる例示的な方法600を示す例示的なフローチャートである。たとえば、方法600は、図2および図4A〜4Bに関して上に説明したホストデバイス210によって実装され得る。具体的には、ネットワーク上のホストデバイス210は、ネットワークに関連付けられた通信プロトコルに基づいて、USBフレームをデータパケット内にカプセル化することができる(601)。上に説明したように、USBフレームは、普通であればUSBケーブルを介して1つまたは複数のクライアントデバイス220に送信されるはずのUSBデータに対応することができる。ホストデバイス210は、たとえば、対応するUSBデータを特定のタイプの通信チャネルを介して送信されるべき1つまたは複数のデータパケット内に埋め込むことによって、USBフレームをカプセル化することができる。
ホストデバイス210は、次いで、ネットワークを介して、カプセル化されたUSBフレームを含むデータパケットを1つまたは複数のクライアントデバイス220に送信することができる(602)。たとえば、ネットワークは、IEEE802.11規格によって定義されたWi-Fiネットワークに対応することができる。したがって、ホストデバイス210は、1つまたは複数の802.11ワイヤレスプロトコルに基づいて、データパケットを1つまたは複数のクライアントデバイス220に送信することができる。いくつかの実施形態では、ホストデバイス210は、同時に、データパケットを複数のクライアントデバイス220に送信することができる。さらに、いくつかの実施形態では、ホストデバイス210は、1つまたは複数のクライアントデバイス220に送信されたUSBフレームの数の経過を追跡するために、USBフレームカウンタを含むことができる。たとえば、ホストデバイス210は、送信されたUSBフレームごとに、そのUSBフレームカウンタを更新することができる。
ホストデバイス210は、各クライアントデバイス220がUSBフレームを処理することを可能にするために、同期データの組を1つまたは複数のクライアントデバイス220にさらに送信することができる(603)。同期データは、たとえば、クロック同期(Clk_Sync)データ、フレームカウント(F_Count)値、および/または媒体時間(M_Time)値を含むことができる。より具体的には、Clk_Syncデータは、ホストデバイス210のクロック信号を1つまたは複数のクライアントデバイス220のローカルクロック信号と同期させるのに使用され得る(たとえば、図4Aに関して上に説明したように)。いくつかの実施形態では、Clk_Syncデータは、ワイヤレス通信プロトコルに関連付けられたクロック同期機構によって提供され得る。F_CountおよびM_Time値は、ホストデバイス210のUSBフレームカウンタを1つまたは複数のクライアントデバイス220のローカルフレームカウンタと同期させるのに使用され得る(たとえば、図4Bに関して上に説明したように)。上に説明したように、F_Count値は、M_Time値によって指定された時間にホストデバイス210によって送信されたUSBフレームの数を示すことができる。いくつかの実施形態では、ホストデバイス210は、1つまたは複数のクライアントデバイス220の各々との同期を維持するために、更新された同期データを周期的に送信することができる。
図7は、いくつかの実施形態による、ワイヤレスUSB同期動作700を示す例示的なフローチャートである。たとえば、図4A〜図4Bを参照すると、ホストデバイス210は、まず、ワイヤレス通信チャネル230を介して、クロック同期データをクライアントデバイスに送信する(たとえば、クライアントデバイス220(1))(701)。いくつかの実施形態では、クロック同期データは、ビーコンフレーム内に設けられたTSFタイマ値に対応することができる。クライアントデバイス220(1)は、ワイヤレス通信チャネル230を介してクロック同期データを受信し(702)、通信チャネル230に関連付けられたクロック同期機構を使用して、そのローカルクロック信号Clk1をホストクロック信号ClkHと同期させる(704)。たとえば、クライアントデバイス220(1)は、ホストデバイスのTSFタイマ値を使用して、そのローカルクロック信号Clk1と同期させることができる(たとえば、図4Aに関して上に説明したように)。
ホストデバイス210は、ワイヤレス通信チャネル230を介して送信するためにUSBフレームをカプセル化する(703)。たとえば、図2を参照すると、PAL SME213は、Wi-Fiプロトコルにより、Wi-Fiチャネルを介して送信されるべきUSBフレーム(たとえば、USBコントローラ212を介して受信した)をカプセル化することができる。いくつかの実施形態では、カプセル化は、WGAプロトコルにより実行され得る。ホストデバイス210は、現在のフレームカウントおよび媒体時間値をカプセル化されたUSBフレーム内に埋め込む(705)。たとえば、F_Count値は、ホストフレームカウンタCntHから記録され得、対応するM_Time値は、ホストクロック信号ClkHから記録され得る。いくつかの実施形態では、F_CountおよびM_Time値は、互いに対にされ、実質的に同時に記録される。最後に、ホストデバイス210は、ワイヤレス通信チャネル230を介して、カプセル化されたUSBフレームをクライアントデバイス220(1)に送信する(707)。
クライアントデバイス220(1)は、ワイヤレス通信チャネルを介して、カプセル化されたUSBフレームを受信し(706)、それとともに提供されたF_CountおよびM_Time値を解析する(708)。いくつかの実施形態では、クライアントデバイス220(1)は、USBデータのカプセル開放を行うことなく、受信したデータパケットからF_CountおよびM_Time値を解析することができる。クライアントデバイス220(1)は、次いで、受信したF_CountおよびM_Time値ならびに同期させたローカルクロック信号Clk1に基づいて、そのローカルフレームカウンタCnt1をホストフレームカウンタCntHと同期させる(710)。たとえば、クライアントデバイス220(1)は、式1に基づいて、そのローカルフレームカウンタCnt1を更新することができる(たとえば、図4Bに関して上に説明したように)。
いくつかの実施形態では、ホストデバイス210は、続いて特定のフレームカウントから始まるUSBフレームを処理させおよび/または提供させる命令を発することができる(709)。たとえば、ホストデバイス210によって指定されたフレームカウントは、ホストフレームカウンタCntHのカウント値に対応することができる。そのような命令を受信すると、クライアントデバイス220(1)は、次に、そのローカルフレームカウンタCnt1に基づいて、バッファリングされたUSBフレームを処理しおよび/または提供する(712)。具体的には、ローカルフレームカウンタCnt1がホストフレームカウンタCntHと同期しているので、クライアントデバイス220(1)は、クライアントデバイス220(1)によって実際に受信したおよび/またはバッファリングされたUSBフレームの数にかかわらず、所望の時間にそのバッファリングされたUSBデータの処理を開始することができる。
簡単にするためだけに、前述の同期動作700が、クライアントデバイス220(1)に関して説明されている。しかし、動作700は、ホストデバイス210とクライアントデバイス220(1)〜220(3)のうちのいずれかとの間で実質的に同様のやり方で実行され得る。さらに、同期動作700により、ワイヤレスチャネル230を介して複数のクライアントデバイス220(1)〜220(3)に送信されたUSBデータパケットは、正確な時間に(たとえば、同期して)再生されおよび/または提供される(たとえば、クライアントデバイス220(1)〜220(3)に関連付けられたスピーカから出力される)ことが確実になり得る。
図8は、いくつかの実施形態による、USB使用可能クライアントデバイス800のブロック図である。クライアントデバイス800は、ワイヤレスインターフェース810と、USBインターフェース820と、プロセッサ830と、メモリ840とを含む。ワイヤレスインターフェース810は、プロセッサ830に結合され、ワイヤレス通信チャネルを介して、データ信号を受信および/または送信するのに使用され得る。たとえば、ワイヤレス通信チャネルは、IEEE802.11ワイヤレスチャネルに対応することができる。USBインターフェース820は、プロセッサ830にも結合され、クライアントデバイス800へのおよび/またはからUSBデータを通信するのに使用され得る(たとえば、USBケーブルを介して)。いくつかの実施形態では、ワイヤレスインターフェース810は、データパケット内にカプセル化された、普通であればUSBインターフェース820を介して受信されるはずのUSBフレームを受信することができる。
メモリ840は、デバイス800によって処理および/または再生されるべきUSBフレームをバッファリングするのに使用され得るデータストア842を含むことができる。たとえば、ワイヤレスインターフェース810を介して受信したUSBフレームは、データストア842に記憶され得る。さらに、メモリ840は、以下のソフトウェアモジュールを記憶することができる、非一時的コンピュータ可読記憶媒体(たとえば、EPROM、EEPROM、フラッシュメモリ、ハードドライブなどの1つまたは複数の不揮発性メモリ素子)も含むことができる。
ローカルクロック信号をホストデバイスのクロック信号と同期させるためのクロック同期モジュール844、
ローカルフレームカウンタをホストデバイスのUSBフレームカウンタと同期させるためのフレーム同期モジュール846、および
ローカルフレームカウンタのフレームカウント値に基づいて、受信したUSBフレームを処理するためのUSB処理モジュール848。
各ソフトウェアモジュールは、プロセッサ830によって実行されたとき、デバイス800に、対応する機能を実行させることができる命令を含むことができる。したがって、メモリ840の非一時的コンピュータ可読記憶媒体は、図5および図7に関して説明した動作の全部または一部を実行するための命令を含むことができる。
メモリ840に結合されたプロセッサ830は、クライアントデバイス800に(たとえば、メモリ840内)に記憶された1つまたは複数のソフトウェアプログラムの命令のスクリプトを実行することができる任意の適切なプロセッサでよい。たとえば、プロセッサ830は、クロック同期モジュール844、フレーム同期モジュール846、および/またはUSB処理モジュール848を実行することができる。
クロック同期モジュール844は、ローカルクロック信号をホストデバイスのクロック信号と同期させるためにプロセッサ830によって実行され得る。たとえば、クライアントデバイス800は、ワイヤレスインターフェース810を介してホストデバイスからクロック同期(Clk_Sync)データを受信することができる。いくつかの実施形態では、Clk_Syncデータは、ホストデバイスによって周期的にブロードキャストされる(たとえば、ビーコンフレームにおいて)TSF値に対応することができる。クロック同期モジュール844は、プロセッサ830によって実行されたとき、それ自体のローカルTSFタイマを、受信したTSF値に設定することによって、そのローカルクロック信号をホストクロック信号と同期させることができる(たとえば、図4Aに関して上に説明したように)。
フレーム同期モジュール846は、ローカルフレームカウンタをホストデバイスのUSBフレームカウンタと同期させるためにプロセッサ830によって実行され得る。たとえば、クライアントデバイス800は、フレームカウント(F_Count)値および媒体時間(M_Time)値をホストデバイスからワイヤレスインターフェース810を介してさらに受信することができる。上に説明したように、F_Count値は、M_Time値によって示された特定の時間においてホストデバイスによって送信されたUSBフレームの数を示すことができる。フレーム同期モジュール846は、プロセッサ830によって実行されたとき、F_CountおよびM_Time値、ローカルクロック信号ならびにホストデバイスの伝送速度に基づいて、そのローカルフレームカウンタをホストフレームカウンタと同期させることができる(たとえば、図4Bに関して上に説明したように)。いくつかの実施形態では、プロセッサ830は、フレーム同期モジュール846を実行する際に、ホストデバイスから受信したUSBフレームごとに、ローカルフレームカウンタを連続して更新する(たとえば、インクリメントする)ことができる。
USB処理モジュール848は、ローカルフレームカウンタのフレームカウント値に基づいて、受信したUSBフレームを処理するために、プロセッサ830によって実行され得る。たとえば、USB処理モジュール848は、プロセッサ830によって実行されたとき、ローカルフレームカウンタが特定のフレームカウント閾値に達すると、データストア842に記憶されたUSBフレームの処理を開始することができる。いくつかの実施形態では、フレームカウント閾値は、ホストデバイスによって指定され得る(たとえば、クライアントデバイス800に処理要求メッセージを送信することによって)。ローカルフレームカウンタがホストフレームカウンタと同期され得るので、プロセッサ830は、USB処理モジュール848を実行する際に、ホストデバイスによって示されるときはいつでもUSBフレームの処理を開始することができる。
図9はいくつかの実施形態による、USB使用可能ホストデバイス900のブロック図である。ホストデバイス900は、ワイヤレスインターフェース910と、プロセッサ920と、メモリ930とを含む。ワイヤレスインターフェース910は、プロセッサ920に結合され、ワイヤレス通信チャネルを介して、データ信号を送信および/または受信するのに使用され得る。たとえば、ワイヤレス通信チャネルは、IEEE802.11ワイヤレスチャネルに対応することができる。いくつかの実施形態では、ワイヤレスインターフェース910は、データパケット内にカプセル化されたUSBフレームをワイヤレスで送信することができる。
メモリ930は、カプセル化されるべき、および1つまたは複数のクライアントデバイスに送信されるべきUSBフレームをバッファリングするのに使用され得るデータストア932を含むことができる。さらに、メモリ930は、以下のソフトウェアモジュールを記憶することができる非一時的コンピュータ可読記憶媒体(たとえば、EPROM、EEPROM、フラッシュメモリ、ハードドライブなどの1つまたは複数の不揮発性メモリ素子)も含むことができる。
ホストクロック信号をクライアントデバイスのローカルクロック信号と同期させるためのクロック同期モジュール934、
ホストフレームカウンタをクライアントデバイスのローカルフレームカウンタと同期させるためのフレーム同期モジュール936、および
ワイヤレスインターフェース910を介して送信するためにUSBフレームをデータパケット中に符号化するためのUSBカプセル化モジュール938。
各ソフトウェアモジュールは、プロセッサ920によって実行されたとき、デバイス900に、対応する機能を実行させることができる命令を含むことができる。したがって、メモリ930の非一時的コンピュータ可読記憶媒体は、図6および図7に関して説明した動作の全部または一部を実行するための命令を含むことができる。
メモリ930に結合されたプロセッサ920は、ホストデバイス900(たとえば、メモリ930内)に記憶された1つまたは複数のソフトウェアプログラムの命令のスクリプトを実行することができる任意の適切なプロセッサでよい。たとえば、プロセッサ920は、クロック同期モジュール934、フレーム同期モジュール936、および/またはUSB処理モジュール938を実行することができる。
クロック同期モジュール934は、ホストクロック信号をクライアントデバイスのローカルクロック信号と同期させるために、プロセッサ920によって実行され得る。たとえば、クロック同期モジュール934は、プロセッサ920によって実行されたとき、ワイヤレスインターフェース910を介して、1つまたは複数のクライアントデバイスに送信されるべきクロック同期(Clk_Sync)データを生成することができる。いくつかの実施形態では、Clk_Syncデータは、ホストデバイス900のTSFタイマ(たとえば、IEEE802.11仕様によって定義された)に基づいてTSF値に対応することができる。1つまたは複数のクライアントデバイスの各々は、次いで、Clk_Syncデータを使用して、そのローカルクロック信号をホストクロック信号と同期させることができる(たとえば、図4Aに関して上に説明したように)。いくつかの実施形態では、プロセッサ920は、クロック同期モジュール934を実行する際に、クロック_Syncデータを周期的に(たとえば、ビーコンフレーム内で)複数のクライアントデバイスに同時にブロードキャストすることができる。
フレーム同期モジュール936は、ホストフレームカウンタをクライアントデバイスのローカルフレームカウンタと同期させるためにプロセッサ920によって実行され得る。たとえば、フレーム同期モジュール936は、プロセッサ920によって実行されたとき、ワイヤレスインターフェース910を介して1つまたは複数のクライアントデバイスに送信されるべきフレームカウント(F_Count)値および媒体時間(M_Time)値を生成することができる。いくつかの実施形態では、F_Count値は、M_Time値によって示される特定の時間におけるホストフレームカウンタのカウント値に対応することができる。1つまたは複数のクライアントデバイスの各々は、次いで、F_CountおよびM_Time値、ローカルクロック信号、ならびにホストデバイスの伝送速度に基づいて、そのローカルフレームカウンタをホストフレームカウンタと同期させることができる(たとえば、図4Bに関して上に説明したように)。いくつかの実施形態では、プロセッサ920は、フレーム同期モジュール936を実行する際に、1つまたは複数のクライアントデバイスに送信されたUSBフレームごとに、ホストフレームカウンタを連続的に更新する(たとえば、インクリメントする)ことができる。
USB処理モジュール938は、ワイヤレスインターフェース910を介して送信するためのUSBフレームをデータパケット中に符号化するためにプロセッサ920によって実行され得る。たとえば、USB処理モジュール938は、プロセッサ920によって実行されたとき、対応するUSBデータをワイヤレスで送信されるべき1つまたは複数のデータパケットに書き込むことによってUSBフレームをカプセル化することができる。いくつかの実施形態では、カプセル化は、WGAプロトコルにより実行され得る。さらに、いくつかの実施形態では、プロセッサ920は、USB処理モジュール938を実行する際に、USBフレームとともに1つまたは複数のクライアントデバイスに送信されるべき処理要求メッセージを生成することができる。上に説明したように、処理要求メッセージは、対応するUSBフレームを処理するための命令を含むことができる(たとえば、特定のUSBフレームカウントに基づいて)。
いくつかの実施形態では、クライアントデバイス800は、ホストデバイス900の1つまたは複数の機能を実行することができ、逆も同様であることに留意されたい。たとえば、クライアントデバイス800は、ホストデバイス900の1つまたは複数のソフトウェアモジュール(たとえば、934〜938)を含むことができる。同様に、ホストデバイス900は、クライアントデバイス800のうちの1つまたは複数のソフトウェアモジュール(たとえば、844〜848)を含むことができる。
上記の明細書において、本実施形態について、その特定の例示的な実施形態を参照しながら説明してきた。しかし、添付の特許請求の範囲に記載された本開示のより広い範囲から逸脱することなく、様々な修正および変更をそれに加えることができることは明らかであろう。したがって、本明細書および図面は、限定的ではなく例示的であると見なされるべきである。たとえば、図5〜図7のフローチャートに示す方法ステップは他の適切な順序で実行することができ、複数のステップは組み合わせて単一のステップにすることができ、および/またはいくつかのステップは省略することができる。
100 ネットワークデバイス
110 プロセッサ
120 メモリ
130 PHYデバイス
135 トランシーバ
140 MACデバイス
150-1 媒体独立インターフェース(MII)
150-2 媒体独立インターフェース(MII)
160 信号路
200 通信システム
210 ホストデバイス
211 プロセッサ
212 USBコントローラ
213 プロトコル適応層(PAL)ステーション管理エンティティ
214 WLANインターフェース
220(1) クライアントデバイス
220(2) クライアントデバイス
220(3) クライアントデバイス
230 通信チャネル
300 タイミング図
500 例示的な方法
600 例示的な方法
700 ワイヤレス同期動作
800 USB使用可能クライアントデバイス
810 ワイヤレスインターフェース
820 USBインターフェース
830 プロセッサ
840 メモリ
842 データストア
844 クロック同期モジュール
846 フレーム同期モジュール
848 USB処理モジュール
900 USB使用可能ホストデバイス
910 ワイヤレスインターフェース
920 プロセッサ
930 メモリ
932 データストア
934 クロック同期モジュール
936 フレーム同期モジュール
938 USBカプセル化モジュール
M1 ワイヤレス媒体

Claims (40)

  1. ネットワーク上のユニバーサルシリアルバス(USB)デバイスを動作させる方法であって、
    前記ネットワークを介してホストデバイスから1つまたは複数のUSBフレームを受信するステップであって、前記1つまたは複数のUSBフレームが、ネットワークに関連付けられた通信プロトコルに基づいて1つまたは複数のデータパケット内にカプセル化される、受信するステップと、
    前記通信プロトコルのクロック同期機構を使用して、前記USBデバイスのローカルクロック信号を前記ホストデバイスのクロック信号と同期させるステップと、
    少なくとも部分的に、前記同期させたローカルクロック信号に基づいて、前記ホストデバイスによって送信されたUSBフレームの数を決定するステップと、
    少なくとも部分的に、前記ホストデバイスによって送信されたUSBフレームの数に基づいて、前記1つまたは複数のUSBフレームを処理するステップと、を含む方法。
  2. 前記通信プロトコルが、IEEE802.11ワイヤレスプロトコルに対応する、請求項1に記載の方法。
  3. 前記ローカルクロック信号を同期させるステップが、
    前記ホストデバイスから1つまたは複数のビーコンフレームを受信するステップであって、前記ビーコンフレームのうちの少なくとも1つが、タイミング同期機能(TSF)値を含む、受信するステップと、
    前記受信したTSF値に基づいて前記ローカルクロック信号を調整するステップとを含む、請求項1に記載の方法。
  4. 前記1つまたは複数のUSBフレームをデータバッファに記憶するステップをさらに含む、請求項1に記載の方法。
  5. 前記ホストデバイスによって送信されたUSBフレームの前記数を決定するステップが、
    少なくとも部分的に、前記データバッファに記憶された前記USBフレームの数に基づいて、ローカルフレームカウンタを更新するステップと、
    前記ローカルフレームカウンタに基づいて、前記ホストデバイスによって送信されたUSBフレームの前記数を決定するステップとを含む、請求項4に記載の方法。
  6. 前記ホストデバイスからフレームカウント値を受信するステップであって、前記フレームカウント値が、前記ホストデバイスによって送信されたUSBフレームの前記数を示す、受信するステップと、
    前記ホストデバイスから媒体時間値を受信するステップであって、前記媒体時間値が、前記フレームカウント値が記録される時間を示す、受信するステップとをさらに含む、請求項5に記載の方法。
  7. 前記フレームカウント値および前記媒体時間値が、前記USBフレームのうちの少なくとも1つにおいて共に受信される、請求項6に記載の方法。
  8. 前記ホストデバイスによって送信されたUSBフレームの前記数を決定するステップが、
    少なくとも部分的に、前記ローカルクロック信号、前記フレームカウント値、および前記媒体時間値に基づいて、前記ローカルフレームカウンタを前記ホストデバイス内のUSBフレームカウンタと同期させるステップをさらに含む、請求項6に記載の方法。
  9. 前記1つまたは複数のUSBフレームを処理するステップが、
    前記ローカルフレームカウンタが第1の閾値に達したとき、前記1つまたは複数のUSBフレームを処理するステップを含む、請求項8に記載の方法。
  10. ネットワーク上のコンピューティングデバイスを動作させる方法であって、
    前記ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のユニバーサルシリアルバス(USB)フレームを1つまたは複数のデータパケット内にカプセル化するステップと、
    前記ネットワークを介して、前記1つまたは複数のカプセル化されたUSBフレームを含む、前記1つまたは複数のデータパケットを1つまたは複数のクライアントデバイスに送信するステップと、
    前記1つまたは複数のクライアントデバイスが前記1つまたは複数のUSBフレームを処理することを可能にする同期データの組を前記1つまたは複数のクライアントデバイスに送信するステップであって、前記同期データの組が、前記1つまたは複数のクライアントデバイスがそれぞれのローカルクロック信号を前記コンピューティングデバイスのクロック信号と同期させることを可能にするクロック同期データを含む、送信するステップとを含む、方法。
  11. 前記通信プロトコルが、IEEE802.11ワイヤレスプロトコルに対応する、請求項10に記載の方法。
  12. 前記クロック同期データを送信するステップが、
    1つまたは複数のビーコンフレーム内の前記クロック同期データをブロードキャストするステップであって、前記クロック同期データが、タイミング同期機能(TSF)値を含む、ブロードキャストするステップを含む、請求項11に記載の方法。
  13. 前記1つまたは複数のクライアントデバイスに送信されたUSBフレームの数に基づいてUSBフレームカウンタを更新するステップをさらに含む、請求項10に記載の方法。
  14. 前記同期データの組を送信するステップが、
    フレームカウント値を前記1つまたは複数のクライアントデバイスに送信するステップであって、前記フレームカウント値が、前記USBフレームカウンタの現在の値を示す、送信するステップと、
    媒体時間値を前記1つまたは複数のクライアントデバイスに送信するステップであって、前記媒体時間値が、前記フレームカウント値が記録される時間を示す、送信するステップとを含む、請求項13に記載の方法。
  15. 前記フレームカウント値および前記媒体時間値を、共に、前記1つまたは複数のUSBフレームのうちの少なくとも1つのフレーム内にカプセル化するステップをさらに含む、請求項14に記載の方法。
  16. 処理要求を前記1つまたは複数のクライアントデバイスに送信するステップであって、前記処理要求が、前記1つまたは複数のUSBフレームの処理を開始させる命令を含む、送信するステップをさらに含む、請求項10に記載の方法。
  17. 前記処理要求が、フレームカウント閾値を含み、前記1つまたは複数のクライアントデバイスが、前記コンピューティングデバイスによって送信されたUSBフレームの数が前記フレームカウント閾値に等しいとき、前記1つまたは複数のUSBフレームの処理を開始することになっている、請求項16に記載の方法。
  18. 前記同期データの組により、前記1つまたは複数のクライアントデバイスが、同時に前記1つまたは複数のUSBフレームの処理を開始することを可能にする、請求項17に記載の方法。
  19. ネットワークを介してホストデバイスから1つまたは複数のUSBフレームを受信する受信機であって、前記1つまたは複数のUSBフレームが、前記ネットワークに関連付けられた通信プロトコルに基づいて1つまたは複数のデータパケット内にカプセル化される、受信機と、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されたとき、前記USBデバイスに、
    前記通信プロトコルのクロック同期機構を使用して、前記USBデバイスのローカルクロック信号を前記ホストデバイスのクロック信号と同期させ、
    少なくとも部分的に、前記同期させたにローカルクロック信号に基づいて、前記ホストデバイスによって送信されたUSBフレームの数を決定させ、
    少なくとも部分的に、前記ホストデバイスによって送信されたUSBフレームの前記数に基づいて、前記1つまたは複数のUSBフレームを処理させる命令を記憶するメモリとを備える、ユニバーサルシリアルバス(USB)デバイス。
  20. 前記ワイヤレス通信プロトコルが、IEEE802.11ワイヤレスプロトコルに対応し、前記受信機が、
    前記ホストデバイスから1つまたは複数のビーコンフレームをさらに受信することになっており、前記ビーコンフレームのうちの少なくとも1つが、タイミング同期機能(TSF)値を含む、請求項19に記載のUSBデバイス。
  21. 前記ローカルクロック信号を前記ホストデバイスの前記クロック信号と同期させる前記命令の実行により、前記USBデバイスが、
    前記受信したTSF値に基づいて、前記ローカルクロック信号を調整する、請求項19に記載のUSBデバイス。
  22. 前記1つまたは複数のUSBフレームを記憶するデータバッファをさらに備える、請求項19に記載のUSBデバイス。
  23. 前記ホストデバイスよって送信されたUSBフレームの前記数を決定する前記命令の実行により、前記USBデバイスが、
    少なくとも部分的に、前記データバッファに記憶された前記USBフレームの数に基づいて、ローカルフレームカウンタを更新し、
    前記ローカルフレームカウンタに基づいて、前記ホストデバイスによって送信されたUSBフレームの前記数を決定する、請求項22に記載のUSBデバイス。
  24. 前記命令の前記実行により、さらに、前記USBデバイスが、
    前記ホストデバイスから、前記ホストデバイスによって送信されたUSBフレームの数を示すフレームカウント値を受信し、
    前記ホストデバイスから、前記フレームカウント値が記録される時間を示す媒体時間値を受信する、請求項23に記載のUSBデバイス。
  25. 前記フレームカウント値および前記媒体時間値が、前記1つまたは複数のUSBフレームのうちの少なくとも1つにおいて共に受信される、請求項24に記載のUSBデバイス。
  26. 前記ホストデバイスによって送信されたUSBフレームの前記数を決定する前記命令の実行により、前記USBデバイスが、
    少なくとも部分的に、前記ローカルクロック信号、前記フレームカウント値、および前記媒体時間値に基づいて、前記ローカルフレームカウンタを前記ホストデバイス内のUSBフレームカウンタと同期させる、請求項24に記載のUSBデバイス。
  27. 前記1つまたは複数のUSBフレームを処理させる前記命令の実行により、前記USBデバイスが、
    前記ローカルフレームカウンタが第1の閾値に達したとき、前記1つまたは複数のUSBフレームを処理する、請求項26に記載のUSBデバイス。
  28. コンピューティングデバイスであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されたとき、前記コンピューティングデバイスに、ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のユニバーサルシリアルバス(USB)フレームを1つまたは複数のデータパケット内にカプセル化させる命令を記憶するメモリと、
    前記ネットワークを介して1つまたは複数のクライアントデバイスに、前記1つまたは複数のカプセル化されたUSBフレームを含む、前記1つまたは複数のデータパケットを送信し、
    前記1つまたは複数のクライアントデバイスが前記1つまたは複数のUSBフレームを処理することを可能にする同期データの組を前記1つまたは複数のクライアントデバイスに送信する、送信機であって、前記同期データの組が、前記1つまたは複数のクライアントデバイスがそれぞれのローカルクロック信号を前記コンピューティングデバイスのクロック信号と同期させることを可能にするクロック同期データを含む、送信機とを備える、コンピューティングデバイス。
  29. 前記通信プロトコルが、IEEE802.11ワイヤレスプロトコルに対応し、前記送信機が、
    1つまたは複数のビーコンフレーム内の前記クロック同期データをブロードキャストすることによって、前記クロック同期データを送信することになっており、前記クロック同期データが、タイミング同期機能(TSF)値を含む、請求項28に記載のコンピューティングデバイス。
  30. 前記命令の実行により、さらに、前記コンピューティングデバイスが、
    前記1つまたは複数のクライアントデバイスに送信されたUSBフレームの数に基づいて、USBフレームカウンタを更新する、請求項28に記載のコンピューティングデバイス。
  31. 前記送信機が、
    前記USBフレームカウンタの現在値を示すフレームカウント値を前記1つまたは複数のクライアントデバイスに送信し、
    前記フレームカウント値が記録される時間を示す媒体時間値を前記1つまたは複数のクライアントデバイスに送信することによって、前記同期データの組を送信することになっている、請求項30に記載のコンピューティングデバイス。
  32. 前記命令の実行により、さらに、前記コンピューティングデバイスが、
    前記フレームカウント値および前記媒体時間値を、共に、前記1つまたは複数のUSBフレームのうちの少なくとも1つのフレーム内にカプセル化する、請求項31に記載のコンピューティングデバイス。
  33. 前記命令の実行により、さらに、前記コンピューティングデバイスが、
    処理要求を生成し、前記処理要求が、前記1つまたは複数のUSBフレームの処理を開始させる命令を含む、請求項28に記載のコンピューティングデバイス。
  34. 前記送信機が、さらに、
    前記処理要求を前記1つまたは複数のクライアントデバイスに送信することになっている、請求項33に記載のコンピューティングデバイス。
  35. 前記処理要求が、フレームカウント閾値を含み、前記1つまたは複数のクライアントデバイスが、前記コンピューティングデバイスによって送信されたUSBフレームの数が前記フレームカウント閾値に等しいとき、前記1つまたは複数のUSBフレームの処理を開始することになっている、請求項34に記載のコンピューティングデバイス。
  36. 前記同期データの組により、前記1つまたは複数のクライアントデバイスが、同時に、前記1つまたは複数のUSBフレームの処理を開始することが可能になる、請求項35に記載のコンピューティングデバイス。
  37. ユニバーサルシリアルバス(USB)デバイス内に設けられたプロセッサによって実行されたとき、前記USBデバイスに、
    ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のデータパケット内にカプセル化される、1つまたは複数のUSBフレームを、前記ネットワークを介してホストデバイスから、受信させ、
    前記通信プロトコルのクロック同期機構を使用して、前記USBデバイスのローカルロック信号を前記ホストデバイスのクロック信号と同期させ、
    少なくとも部分的に、前記同期させたローカルクロック信号に基づいて、前記ホストデバイスによって送信されたUSBフレームの数を決定させ、
    少なくとも部分的に、前記ホストデバイスによって送信されたUSBフレームの前記数に基づいて、前記1つまたは複数のUSBフレームを処理させるプログラム命令を含むコンピュータ可読記憶媒体。
  38. コンピューティングデバイス内のプロセッサによって実行されたとき、前記コンピューティングデバイスに
    ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のユニバーサルシリアルバス(USB)フレームを1つまたは複数のデータパケット内にカプセル化させ、
    前記ネットワークを介して1つまたは複数のクライアントデバイスに、前記1つまたは複数のカプセル化されたUSBフレームを含む、前記1つまたは複数のデータパケットを送信させ、
    前記1つまたは複数のクライアントデバイスが前記1つまたは複数のUSBフレームを処理することを可能にする同期データの組を前記1つまたは複数のクライアントデバイスに送信させる、プログラム命令であって、前記同期データの組が、前記1つまたは複数のクライアントデバイスがそれぞれのローカルクロック信号を前記コンピューティングデバイスのクロック信号と同期させることを可能にするクロック同期データを含む、プログラム命令を含むコンピュータ可読記憶媒体。
  39. ネットワークを介してホストデバイスから1つまたは複数のUSBフレームを受信するための手段であって、前記1つまたは複数のUSBフレームが、前記ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のデータパケット内にカプセル化される、受信するための手段と、
    前記通信プロトコルのクロック同期機構を使用して、前記USBデバイスのローカルクロック信号を前記ホストデバイスのクロック信号と同期させるための手段と、
    少なくとも部分的に、前記同期させたローカルクロック信号に基づいて、前記ホストデバイスによって送信されたUSBフレームの数を決定するための手段と、
    少なくとも部分的に、前記ホストデバイスによって送信されたUSBフレームの前記数に基づいて、前記1つまたは複数のUSBフレームを処理するための手段とを備える、ユニバーサルシリアルバス(USB)デバイス。
  40. コンピューティングデバイスであって、
    ネットワークに関連付けられた通信プロトコルに基づいて、1つまたは複数のユニバーサルシリアルバス(USB)フレームを1つまたは複数のデータパケット内にカプセル化するための手段と、
    前記ネットワークを介して、1つまたは複数のクライアントデバイスに、前記1つまたは複数のカプセル化されたUSBフレームを含む、前記1つまたは複数のデータパケットを送信するための手段と、
    前記ワイヤレスネットワークを介して、前記1つまたは複数のクライアントデバイスに、前記1つまたは複数のクライアントデバイスが前記1つまたは複数のUSBフレームを処理することを可能にする同期データの組を送信するための手段であって、前記同期データの組が、前記1つまたは複数のクライアントデバイスがそれぞれのローカルクロック信号を前記コンピューティングデバイスのクロック信号と同期させることを可能にするクロック同期データを含む、送信するための手段とを備える、コンピューティングデバイス。
JP2016513982A 2013-05-15 2014-05-06 Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期 Active JP6333963B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361823805P 2013-05-15 2013-05-15
US61/823,805 2013-05-15
US14/270,124 2014-05-05
US14/270,124 US9830298B2 (en) 2013-05-15 2014-05-05 Media time based USB frame counter synchronization for Wi-Fi serial bus
PCT/US2014/037035 WO2014186179A1 (en) 2013-05-15 2014-05-06 Media time based usb frame counter synchronization for wi-fi serial bus

Publications (3)

Publication Number Publication Date
JP2016526325A true JP2016526325A (ja) 2016-09-01
JP2016526325A5 JP2016526325A5 (ja) 2017-06-08
JP6333963B2 JP6333963B2 (ja) 2018-05-30

Family

ID=51896736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016513982A Active JP6333963B2 (ja) 2013-05-15 2014-05-06 Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期

Country Status (9)

Country Link
US (1) US9830298B2 (ja)
EP (1) EP2997485B1 (ja)
JP (1) JP6333963B2 (ja)
KR (1) KR102249244B1 (ja)
CN (1) CN105247500B (ja)
AR (1) AR099254A1 (ja)
ES (1) ES2638212T3 (ja)
TW (1) TWI552558B (ja)
WO (1) WO2014186179A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026505A1 (en) * 2013-07-17 2015-01-22 Kabushiki Kaisha Toshiba Storage device, storage system, and background processing execution method
US9723610B2 (en) * 2015-04-07 2017-08-01 Qualcomm Incorporated Multi-layer timing synchronization framework
JP6534913B2 (ja) * 2015-11-06 2019-06-26 日立オートモティブシステムズ株式会社 情報処理装置および不正メッセージ検知方法
US10095653B2 (en) * 2016-04-02 2018-10-09 Intel Corporation Apparatuses, systems, and methods for accurately measuring packet propagation delays through USB retimers
SG11201900499SA (en) * 2016-07-29 2019-02-27 Razer Asia Pacific Pte Ltd Interface devices, methods for controlling an interface device, and computer-readable media
US10915490B2 (en) * 2018-02-15 2021-02-09 Qualcomm Incorporated Audio streams over peripheral component interconnect (PCI) express (PCIE) links
KR20190119400A (ko) * 2018-04-12 2019-10-22 (주)에프씨아이 비콘 신호의 수신 시간을 효율적으로 추정하기 위한 방법 및 이를 위한 수신 장치
DE102018206934A1 (de) 2018-05-04 2019-11-07 Continental Automotive Gmbh Gateway zur Datenkommunikation in einem Fahrzeug
US10896106B2 (en) 2018-05-10 2021-01-19 Teradyne, Inc. Bus synchronization system that aggregates status
TWI772574B (zh) * 2018-12-07 2022-08-01 新唐科技股份有限公司 通用序列匯流排裝置及其操作方法
CN115913442A (zh) * 2019-01-22 2023-04-04 华为技术有限公司 通信方法和光模块
US11245985B2 (en) * 2019-03-27 2022-02-08 Microsoft Technology Licensing, Llc Architecture for USB-synchronized array of speakers
CN114051711B (zh) * 2019-06-18 2023-07-18 雷蛇(亚太)私人有限公司 用于优化在无线人性化接口装置系统中的输入延迟的方法及设备
CN110768739B (zh) * 2019-09-27 2021-04-20 上海鹰钛智能科技有限公司 一种同步串行控制系统及方法
CN114780469A (zh) * 2022-06-24 2022-07-22 浙江地芯引力科技有限公司 时钟频率校准装置、数据芯片以及时钟频率校准方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216015A (ja) * 2004-12-03 2006-08-17 Microsoft Corp 無線usbハードウェアのスケジューリング
JP2007194791A (ja) * 2006-01-18 2007-08-02 Kawasaki Microelectronics Kk データ転送装置
JP2008160581A (ja) * 2006-12-25 2008-07-10 Sony Corp コンテンツ再生システム、再生装置、再生制御方法及びプログラム
JP2009003677A (ja) * 2007-06-21 2009-01-08 Nec Electronics Corp Usbホスト、usbスレーブ、無線通信方式、及びデータ転送方法
US20100318860A1 (en) * 2009-06-12 2010-12-16 Sony Corporation Information processing apparatus, synchronization correction method and computer program
JP2011527855A (ja) * 2008-07-10 2011-11-04 マーベル ワールド トレード リミテッド 無線デバイスの電力消費を低減させるシステムおよび方法
WO2013041829A1 (en) * 2011-09-23 2013-03-28 Imagination Technologies Limited Method and apparatus for time synchronisation in wireless networks

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943328A (en) * 1996-08-13 1999-08-24 Lucent Technologies Inc. Frame counter for synchronized communication
JP3045985B2 (ja) * 1997-08-07 2000-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
US6389029B1 (en) * 1998-11-10 2002-05-14 Nortel Networks Limited Local area network incorporating universal serial bus protocol
US6978412B1 (en) * 1999-08-16 2005-12-20 Advanced Micro Devices, Inc. Method and apparatus for adaptive frame tracking
US6678747B2 (en) 1999-08-23 2004-01-13 Honeywell International Inc. Scalable data collection and computing apparatus
US6934752B1 (en) * 2000-03-23 2005-08-23 Sharewave, Inc. Quality of service extensions for multimedia applications in wireless computer networks
US7734758B1 (en) 2000-07-19 2010-06-08 Cisco Technology, Inc. USB encapsulation for network transmission
US7065036B1 (en) * 2001-03-19 2006-06-20 Cisco Systems Wireless Networking (Australia) Pty Limited Method and apparatus to reduce latency in a data network wireless radio receiver
US6898652B2 (en) * 2001-08-22 2005-05-24 General Atomics Wireless device attachment and detachment system, apparatus and method
CN1326057C (zh) 2001-09-28 2007-07-11 皇家飞利浦电子股份有限公司 用于与总线连接的总线系统和总线接口
EP2040175B1 (en) 2002-07-17 2010-11-03 Chronologic Pty Ltd Synchronized multichannel universal serial bus
US7284081B2 (en) 2004-01-27 2007-10-16 Atmel Corporation Method and system for routing data between USB ports
US7668243B2 (en) * 2004-05-18 2010-02-23 Texas Instruments Incorporated Audio and video clock synchronization in a wireless network
US8560753B1 (en) * 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US7406476B1 (en) * 2005-04-04 2008-07-29 Apple Inc. Updating a data structure
US7539889B2 (en) * 2005-12-30 2009-05-26 Avega Systems Pty Ltd Media data synchronization in a wireless network
US8069294B2 (en) * 2006-03-30 2011-11-29 Intel Corporation Power-optimized frame synchronization for multiple USB controllers with non-uniform frame rates
US20070294456A1 (en) * 2006-06-16 2007-12-20 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Data communication interface and communication devices incorporating same
JP4835345B2 (ja) * 2006-09-19 2011-12-14 ソニー株式会社 無線通信装置、無線通信方法、無線通信システムおよびコンピュータプログラム
US7697522B2 (en) * 2006-11-20 2010-04-13 Broadcom Corporation Systems and methods for aggregation of packets for transmission through a communications network
US8412975B2 (en) * 2007-05-15 2013-04-02 Chronologic Pty. Ltd. USB based synchronization and timing system
KR101141276B1 (ko) * 2007-06-04 2012-05-04 삼성전자주식회사 무선 usb를 이용하여 디바이스와 접속 가능한 호스트장치의 통신 방법 및 호스트 장치와 디바이스를 포함하는무선 접속 시스템
WO2010007578A1 (en) * 2008-07-17 2010-01-21 Jungo Ltd. Cableless usb connectivity over ieee 802.11 networks
US8503596B2 (en) 2008-10-02 2013-08-06 Aliphcom Wireless clock regeneration and synchronization
US20140075567A1 (en) * 2009-01-28 2014-03-13 Headwater Partners I Llc Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device
US8493992B2 (en) * 2010-02-04 2013-07-23 Texas Instruments Incorporated Interrelated WiFi and USB protocols and other application framework processes, circuits and systems
EP2608444B1 (en) * 2011-12-19 2014-10-22 GN Netcom A/S Method and system for synchronizing isochronous usb audio data to a rf communication device clock
EP2958279B1 (en) * 2013-03-15 2017-05-10 Huawei Technologies Co., Ltd. Service transfer device and method for optical channel data unit
US9532043B2 (en) * 2013-08-02 2016-12-27 Blackberry Limited Wireless transmission of real-time media
US9412332B2 (en) * 2013-12-20 2016-08-09 Blackberry Limited Method for wirelessly transmitting content from a source device to a sink device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216015A (ja) * 2004-12-03 2006-08-17 Microsoft Corp 無線usbハードウェアのスケジューリング
JP2007194791A (ja) * 2006-01-18 2007-08-02 Kawasaki Microelectronics Kk データ転送装置
JP2008160581A (ja) * 2006-12-25 2008-07-10 Sony Corp コンテンツ再生システム、再生装置、再生制御方法及びプログラム
JP2009003677A (ja) * 2007-06-21 2009-01-08 Nec Electronics Corp Usbホスト、usbスレーブ、無線通信方式、及びデータ転送方法
JP2011527855A (ja) * 2008-07-10 2011-11-04 マーベル ワールド トレード リミテッド 無線デバイスの電力消費を低減させるシステムおよび方法
US20100318860A1 (en) * 2009-06-12 2010-12-16 Sony Corporation Information processing apparatus, synchronization correction method and computer program
JP2010288158A (ja) * 2009-06-12 2010-12-24 Sony Corp 情報処理装置、同期補正方法及びコンピュータプログラム
WO2013041829A1 (en) * 2011-09-23 2013-03-28 Imagination Technologies Limited Method and apparatus for time synchronisation in wireless networks
JP2014528217A (ja) * 2011-09-23 2014-10-23 イマジネイション テクノロジーズ リミテッド 無線ネットワーク時刻同期のための方法及び装置

Also Published As

Publication number Publication date
US20140344490A1 (en) 2014-11-20
US9830298B2 (en) 2017-11-28
TW201448539A (zh) 2014-12-16
KR20160008602A (ko) 2016-01-22
ES2638212T3 (es) 2017-10-19
CN105247500A (zh) 2016-01-13
TWI552558B (zh) 2016-10-01
AR099254A1 (es) 2016-07-13
KR102249244B1 (ko) 2021-05-06
WO2014186179A1 (en) 2014-11-20
EP2997485B1 (en) 2017-06-14
CN105247500B (zh) 2018-04-27
EP2997485A1 (en) 2016-03-23
JP6333963B2 (ja) 2018-05-30

Similar Documents

Publication Publication Date Title
JP6333963B2 (ja) Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期
US10644867B2 (en) Method, device, and system for synchronizing clocks of processors
US10129839B2 (en) Techniques for synchronizing timing of wireless streaming transmissions to multiple sink devices
US8023976B2 (en) Method and system for accurate clock synchronization for communication networks
US20200195363A1 (en) Packet Processing Method and Network Device
WO2015196685A1 (zh) 时钟同步方法及装置
EP3098987B1 (en) Time slot synchronization training method for optical burst transport network node, node device and network
US9019949B2 (en) Adapter, base band processing unit and base station system
JP2017512414A5 (ja)
EP3281317A1 (en) Multi-layer timing synchronization framework
WO2010102565A1 (zh) 时间同步的方法、装置和系统
US11064452B2 (en) Wireless apparatus, processing method for a wireless apparatus, and program
EP2774291B1 (en) Services, systems and methods for precisely estimating a delay within a network

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170419

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180326

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180425

R150 Certificate of patent or registration of utility model

Ref document number: 6333963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250