説明

映像および音声用デジタル相互インターフェース(DiiVA)上のマルチメディアUSBデータ転送

DiiVAネットワーク上でUSBデータを送るシステムは、USBホストコントローラと、少なくとも1つのUSBデバイスと、USB上流ポートを介してUSBホストコントローラに接続される第1DiiVAデバイスと、USB下流ポートを介して前記USBデバイスに接続される第2DiiVAデバイスと、DiiVA双方向ハイブリッドリンクを通じて、USBプロトコルに従って第1DiiVAデバイスと第2DiiVAデバイスとの間でデータを転送するように構成されたネットワークと、を有している。ネットワークは、少なくとも1つのライン状態情報パケット、および、USB上流ポートとUSB下流ポートとの間のハイブリッドリンクを介して送信された少なくとも1つのUSBデータパケット、を通じて、USBプロトコルの内容を送信するために、USBホストコントローラに応答する。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2008年3月27日に出願された「映像および音声用双方向デジタルインタフェース(DIVA)(Bi-Directional Digital Interface For Video And Audio (DIVA))」と称する米国特許出願第12/057,051号、および、2009年12月11日に提出された「映像および音声用デジタルインタフェースへの電源供給(DiiVA)(Power Delivery Over Digital INTERFACE FOR VIDEO AND AUDIO (DiiVA))」と称する米国特許出願第12/636,063号に関する。
【背景技術】
【0002】
DiiVA(ディーバ:Digital Interactive Interface For Video And Audio)は、非圧縮のハイビジョン映像、多重チャネル音声、および、双方向データを1つのケーブルで送信可能にする双方向音声/映像インターフェースである。一方向映像チャネルに加えて、DiiVAは、音声データ、制御データ、イーサネット(登録商標)データ、バルクデータのような多種多様なデータを送信可能とする双方向ハイブリッドデータチャネルを実現する。
【0003】
USB(ユニバーサル・シリアル・バス)の仕様は、さまざまなデバイスとパソコンのようなホストコントローラとの間の通信を行うために、広く用いられている。また、USBは、シリアルポートおよびパラレルポートのような予め実行される多くのインターフェースに代わるものとして、現在用いられている。
【0004】
DiiVAのようなネットワークを通じてUSBデータを確実に転送するための方法およびシステムが、必要とされている。
【発明の概要】
【0005】
図面は例示可能な実施形態を開示する。これらが、すべての実施形態を明らかにするものではなく、他の実施形態が追加または代替で用いられる。同じ参照番号が異なる図面に現れる場合は、同じまたは同様の構成要素またはステップを参照するものである。
【図面の簡単な説明】
【0006】
【図1】本発明の一実施形態においてDiiVAネットワークに接続されるUSBの1つの例を示す図である。
【図2】本発明の一実施形態においてDiiVAネットワーク上でUSBデータを通信するために構成されたシステムのブロック図である。
【図3】本発明の一実施形態においてUSBのターンアラウンドタイムの制約を示す図である。
【図4A】本発明の一実施形態においてハイブリッドリンクUSBパケットの1つの例を示す図である。
【図4B】図3に示すハイブリッドリンクUSBパケットのSSINFOフィールドを示すテーブルである。
【図5】本発明の一実施形態においてハイスピードUSBエニュメレーションの1つの例を示す概略図である。
【図6】本発明の一実施形態においてDiiVAUSBでコントロール転送の1つの例を示す図である。
【発明を実施するための形態】
【0007】
本開示では、一方向リンクだけでなく双方向ハイブリッドリンクを含むDiiVAのようなネットワークを通じて、USBデータ転送およびマルチメディアデータ転送に関する方法およびシステムが、開示される。DiiVAは、1つのケーブルで非圧縮ハイビジョン映像、多重チャネル音声、高帯域幅データ、および、双方向データを転送することが可能な双方向音声/映像インターフェースである。特に、DiiVAは、音声データ、制御データ、バルクデータ、および、ステータス情報を運ぶことが可能な双方向ハイブリッドリンクを実現する。また、DiiVAは、非圧縮映像画素データおよび同期を運ぶための専用の一方向映像リンクを有する。
【0008】
ある実施形態では、DiiVAケーブルは、4つのツイストペアを有する。4つのうち1つは、ハイブリッドリンクであり、残りの3つは、一方向映像リンクである。DiiVAは、ユーザが、デジタルTVまたは他のDiiVAノードから複数の家庭用電子機器(例えば、DVDプレーヤ、デジタルビデオレコーダ、セットアップボックス、パーソナルコンピュータ、カムコーダ、カメラ、および、ホームステレオシステムなど、但しこれらに限定されない)を接続したり、構成したり、制御したりすること可能にする。
【0009】
USBに関する詳細は、「USB2.0の仕様書」や「USB3.0の仕様書」のような参考文献を利用することが可能である。それらの仕様書は、インターネットを通じて公衆に利用可能であり、それらの内容は本明細書に組み込まれる。
【0010】
本開示で明らかにされる技術は、1つのケーブルで一方向データ転送および双方向データ転送の両方の機能を有する他の様々なシステム(DiiVA以外のシステム)において、マルチメディアデータ転送およびネットワーク管理で用いることができる。
【0011】
例示する実施形態について、以下に説明する。他の実施形態は、追加または代替で用いることが可能である。
【0012】
図1は、DiiVAネットワークでUSB接続の1つの例を概略的に示す図である。図1に示すように、本開示のある実施形態において、1つ以上のDiiVAハイブリッドリンクが、DiiVAネットワーク10を通じてUSB接続を広げるために役立つ。本開示で記載されている方法およびシステムを用いることは、DiiVAにおけるUSBが、DiiVAネットワーク110を通じて、USBホスト120を少なくとも1つのUSBデバイス130に途切れなく接続させることができる。また、DiiVAネットワーク110は、USBホスト120とUSBデバイス130との間でUSBケーブルだけであるかのように、機能することができる。つまり、DiiVAネットワークは、全体として、USBデバイス130を含んでおり、USBケーブルおよびUSB上流ポート(すなわち、上流に位置するUSBポート)を通じてUSBホスト120に接続されるUSBデバイス130のみであるかのように、機能する。
【0013】
図2は、本発明の一実施形態におけるDiiVAネットワーク210上でUSBデータと通信するように構成されたシステム200の概略ブロック図である。システム200は、USB接続を通じて、少なくとも1つのUSBデバイス230(例えば、ウェブカメラやメモリスティック)に接続されるUSBホストコントローラ220(例えば、パーソナルコンピュータ)、を有する。USB接続は、2つのDiiVAデバイス、すなわち、DiiVAデバイスA(図2の参照番号205で示す)およびDiiVAデバイスB(図2の参照番号206で示す)を必要とする。一方のDiiVAデバイスAが、USBホスト220に接続され、他方のDiiVAデバイスBが、USBデバイス230に接続されている。
【0014】
図2に示す実施形態では、USBホスト220が、DiiVAデバイスA205のUSB上流ポート225に接続されており、また、USBデバイス230が、DiiVAデバイスB206のUSB下流ポート226に接続されている。通常、図2に示すように、DiiVAデバイスは、複数のUSB上流ポートまたは複数のUSB下流ポートを有することができる。すなわち、システム200は、USB上流ポート225を介してUSBホストコントローラ220に接続される第1DiiVAデバイス205と、USB下流ポート226を介してUSBデバイス230に接続される第2DiiVAデバイス206と、2つのDiiVAデバイス205、206を接続するDiiVAネットワーク210と、を有する。
【0015】
DiiVAネットワーク210は、少なくとも1つの双方向DiiVAハイブリッドリンク240を有し、USBプロトコルに従って第1DiiVAデバイス205と第2DiiVAデバイス206との間のリンクを通じてデータを転送する。
【0016】
DiiVAネットワーク210における要素は、ハイブリッドリンク240と、第1DiiVAデバイス205と、第2DiiVAデバイス206と、を有する。また、それら要素は、本明細書に記載されている機能を実行するように構成された処理装置や制御装置のようなハードウェアを有する。なお、ここで述べた要素に限定されない。
【0017】
ネットワーク210は、USBプロトコルの内容を送って、USBホストコントローラ220に応答する。USBプロトコルの内容は、USB上流ポート225とUSB下流ポート226との間で、少なくとも1つのライン状態情報パケット(line state information packet)、および、少なくとも1つのUSBデータパケットを、ハイブリッドリンク240を通じて送信することにより、送られる。
【0018】
第1、第2DiiVAデバイス205、206は、それぞれ、インターフェース236を介して論理モジュール234に接続されるUSB物理層(USB PHY)232を有する。論理モジュール234は、双方向接続を有し、複数のプロトコルデータを運んで共有するように構成される送受信機であってもよい。ある実施形態では、インターフェース236は、UTMI(USB 2.0. Transceiver Macrocell Interface)またはULPI (UTMI+ Low Pin Interface)である。他の実施形態では、UTMIまたはULPI以外のインターフェースを用いることもできる。
【0019】
通常、USBプロトコルは、ライン状態情報またはD+およびD−の状態に依存し、ターンアラウンドタイム(turn-around time)およびケーブルの長さの制約を有する。しかしながら、DiiVAネットワークは、送信時間を保証しないので、長い時間がかかる。
【0020】
図3は、本発明の一実施形態において、USBでそのようなターンアラウンドタイム制約を説明する図である。USBプロトコルは、バスターンアラウンドタイム(bus turn-around time limitation)制限を定義する。応答が、所定の時間内に到達しなかった場合には、それはエラーとして見なされる。しかしながら、DiiVAプロトコル自体は、ハイブリッドリンクパケット遅延を保証していない。この制約を解決するために、DiiVAにおけるUSBは、バルク転送/コントロール転送/インタラプト転送に対してNAK応答を備えたUSBフローコントロールプロトコル(USB flow-control protocol)を、使用する。
【0021】
USBプロトコルは、ターンアラウンドタイムの最小期間および最大期間と、インターパケット遅延(inter-packet delay)と、の両方を定義する。最小期間は、USBデータパケットをバッファリングすることによって制御することができる。しかしながら、最大期間は、DiiVAネットワークが、固有のネットワーク遅延を有し、また、インターパケット遅延を保証していないので、簡単に行うことはできない。この問題は、2つの状態のときにバスターンアラウンドタイミングに影響を及ぼす。図3に示すように、1つは、USBホストが待機しているとき、もう1つは、USBデバイスが待機しているときである。
【0022】
本開示では、USBのDiiVA特有のプロトコルが、それら制約を解決することが記載されている。実施形態では、ライン状態エミュレーション、フローコントロール機構、および、推測のACK応答/NAK応答の制約は、ない。それらプロトコルを使用することによって、任意のUSBホストと任意のUSBデバイスとのニ地点間接続が、DiiVAネットワークを通じで行うことができる。また、複数の二地点間接続は、DCL管理下で行うことが可能である。
【0023】
USBライン状態情報(USB line state information)は、USBホストとUSBデバイスとが物理的に接続されているときにだけ、利用できる。図2に示すように、DiiVAネットワーク210、USBホスト220、および、USBデバイス230、が直接接続されていない場合には、ライン状態情報は、容易に利用することはできない。
【0024】
DiiVAでは、すべてのライン状態情報および汎用USBパケットが、ハイブリッドリンクパケットの形式で送られる。本開示の実施形態では、UTMI(またはULPI)インターフェース260で、USBホスト220およびUSBデバイス230の一方のライン状態情報が、ハイブリッドリンクUSBパケットによって、DiiVAネットワーク210上におけるUSBホスト220およびUSBデバイス230の他方に送られる。ハイブリッドリンク240を介して送られたライン状態情報パケットは、1つ以上のイベントに関してパケット化されたライン状態情報を含んでいる。
【0025】
図4Aは、本発明の一実施形態において、そのようなハイブリッドリンクUSBパケット400の例を示した図である。送信元情報および送信先情報、例えば、正確なUSBポートは、CH_ID情報とサービスID情報との組合せで、特定することができる。
【0026】
送信元情報および送信先情報以外では、ハイブリッドリンクUSBパケットが、様々なUSBの関連する情報を含む。ハイブリッドリンクUSBパケットのSSINFOフィールドは、この情報を運ぶ。図4Bは、図4Aに示されたハイブリッドリンクUSBパケットのSSINFOフィールドの情報を含むライン状態イベントを示すテーブルである。
【0027】
図4Bに示すテーブルでは、先頭の文字UU_は、USB上流対向ポートからUSB下流対向ポートへのパケット方向を示し、先頭の文字UD_は、その逆方向を示す。図4Bに示されるJステート(J State)およびKステート(K State)の定義は、USB2.0の仕様書に記載のフルスピード(Full-speed)USBに従う。16ビットと27ビットとの間のアドレスおよびエンドポイントフィールド(Endpoint fields)は、汎用USBパケットのUSBアドレス(USB address)およびUSBエンドポイント(USB endpoint)を示す。
【0028】
図4Aおよび図4Bに記載されているライン状態情報パケットを使用することにより、USBエニュメレーション(USB enumeration)、USB一時停止(suspend)/再開(resume)、および、フローコントロールのような操作が、DiiVAネットワーク上で行うことができる。図2に示すシステム200では、送信USBポートが、すべてのライン状態情報をパケット化し、パケット化された情報を受信USBポートに送信する。受信USBポートは、送信USBポートのライン状態動作をエニュメレートするために、UTMIまたはULPIインターフェースを設定する。
【0029】
ある実施形態では、USB上流ポート225が送信USBポートであり、USB下流ポート226が受信USBポートである。別の実施形態では、USB上流ポート225が受信USBポートであり、USB下流ポート226が送信USBポートである。
【0030】
USBのエニュメレーションは、どのデバイスがバスに接続されていて、どのパラメータ(例えば、消費電力やエンドポイントの数など)が必要なのかを、決定する処理である。USBデバイスが、最初にUSBホストに接続されると、USBデバイスのエニュメレーション処理が開始する。USBホストは、そのデバイスに固有のアドレスを割り当てて、そのデバイスがバスのデータを転送することができるような構成に設定する。
【0031】
図5は、本発明の一実施形態において、DiiVAネットワークでハイスピードUSB(High-speed USB)のエニュメレーションを実行する方法500の1つの例を示した概略図である。
【0032】
この実施形態では、ハイスピードUSBデバイスは、ステップ510(すなわち、USBデバイス取付)に示されているように、USB下流ポート515に取り付けられる。その後、UD_FS_DEVICE_READYパケット518が、USB上流ポート516に送信される。USBホストは、ステップ520(すなわち、USBホストプラグイン)に示されているように、プラグインされる。USB上流ポート516でVBusアサーションが検出されると、USB上流ポート516は、UU_VBSU_DELETCT524をUSB下流ポート515に送信し、USB下流ポート515は、ステップ525(VBUSアサート停止)に示されているように、VBusのアサート停止をする。
【0033】
USB上流ポート516は、UU_VBUS_ENABLE 532をUSB下流ポート515に送信する。USB下流ポート515は、ステップ522(VBUSアサーション)に示すように、Busをアサートする。USB下流ポート515は、ステップ534でJステート(J State)を検出すると、UD_J_STATE536をUSB上流ポート516に送信する。USB上流ポート516は、ステップ540で、USBホストからUSBリセットを検出すると、UU_USB_REST542をUSB下流ポート515に送信する。
【0034】
その後、USB下流ポート515が、ステップ546でKチャープ(K chirp)を検出すると、UD_K_STATE 544をUSB上流ポート516に送信する。また、USB下流ポート515が、SE0 stateを検出すると、UD_SEO_STATE548をUSB上流ポート516に送信する。
【0035】
ステップ550では、トグリングK-Jチャープ(toggling K-J Chirps)が検出されると、UU_K_STATE 552およびUU_J_STATE 544が、USB下流ポート515に送信される。最終的に、ステップ560で、SOFがUSBホストから検出されると、ハイスピードエニュメレーション(high-speed enumeration)が終了する。
【0036】
本発明の他の実施形態では、USBフルスピードエニュメレーション(USB Full Speed enumeration)および/またはUSBロースピードエニュメレーション(USB Low Speed enumeration)が行われる。それらの実施形態では、フルスピードエニュメレーションは、フルスピードUSBデバイスをUSB下流ポートに取り付けて、FSデバイス準備完了イベントパケット(FS Device Ready event packet)を上流UBSポートに送信する工程と、USBホストコントローラを取り付けて、バスがアサートされると、上流UBSポートは、バス検出イベントパケット(Bus detect event packet)をUSB下流ポートに送信し、USB下流ポートのバスをアサート停止する工程と、上流UBSポートが、バス使用可能イベントパケット(Bus Enable event packet)をUSB下流ポートに送信して、USB下流ポートがバスをアサートする工程と、USB下流ポートがJステート(J State)を検出すると、Jステートイベントパケット(J State event packet)を前記USB上流ポートに送る工程と、前記上流UBSポートがUSBホストコントローラからUSBリセットを検出すると、USBリセットイベントパケット(USB Reset event packet)を前記下流USBポートに送信する工程と、前記USB上流ポートでJステートを検出すると、Jステートイベントパケット(J State Event packet)をUSB下流ポートに送る工程と、USBホストからSOFパケットを検出すると、フルスピードエニュメレーションを終了する工程と、を有する。
【0037】
また、ロースピードエニュメレーションで構成されるUSBエニュメレーションにおいて、前記ロースピードエニュメレーションを実行する方法は、ロースピードUSBデバイスを前記USB下流ポートに取り付けて、LSデバイス準備完了イベントパケット(LS Device Ready event packet)を前記USB上流ポートに送信する工程と、前記USBホストコントローラを取り付けて、VBusがアサートされた時、前記USB上流ポートがVBus検出イベントパケットを前記USB下流ポートに送信して、前記USB下流ポートでアサートを停止する工程と、前記USB上流ポートが、VBus使用可能イベントパケットを前記USB下流ポートに送信し、前記USB下流ポートが、VBusをアサートする工程と、前記USB下流ポートが、Kステート(K State)を検出すると、Kステートイベントパケット(K State event packet)を前記USB上流ポートに送信する工程と、前記USB上流ポートが、前記USBホストコントローラからUSBリセットを検出すると、USBリセットイベントパケットを前記USB下流ポートに送信する工程と、前記USB上流ポートがKステート(K State)を検出すると、前記Kステートイベントパケットを前記USB下流ポートに送信する工程と、前記USBホストからSOFパケットを検出すると、ロースピードエニュメレーションを終了する工程と、を有する。
【0038】
他の実施形態では、USB一時停止および再開の操作を行うことが可能である。USB一時停止および再開は、3ミリ秒アイドルステート(3 ms Idle State)を検出すると、3ミリ秒アイドルイベントパケット(3 ms Idle event packet)を生成し、前記3ミリ秒アイドルイベントパケットを前記USB下流ポートに送信する工程と、前のスピードが、ハイスピードUSBだった場合、前記USB上流ポートは、USB仕様書およびUTMI仕様書に従って、3ミリ秒アイドルが一時停止状態、または、USBリセット状態かをチェックする工程と、前記USB上流ポートが、Kステート(K State)を検出した場合、前記USB上流ポートは、Kステートイベントパケット(K State event packet)生成して、再開状態に進む工程と、を有する。
【0039】
入力が、バスの最大ターンアラウンドタイム内で実行された後、入力トランザクション(IN transaction)中、USBホストは、データパケットまたは応答確認を求める。出力トランザクション(OUT transaction)は、出力/セットアップおよびデータが送信された後、応答確認で同じ制約を必要とする。USBホスト側でこの問題を解決するために、DiiVAデバイスにおけるUSB上流対向ポートは、本発明の一実施形態において、図6に示すフローコントロール機構でNAK応答を使用する。
【0040】
セットアップ段階610では、USB上流ポート625は、セットアップ(SETUP)を受信すると、セットアップUSBパケット(SETUP USB packet)をUSB下流ポート626に送信する。USB下流ポート626は、次のデータ(next DATA)がUSB下流ポートで利用可能になるまで、このセットアップをバッファリングする。一方、USBデバイスからのACK応答が利用できない場合でも、USB上流ポート625は、推測のACK応答を送る。データがUSB下流ポート626に到達したとき、USB下流ポート626は、セットアップおよびデータを送信することを開始し、ACK応答を受信する。
【0041】
データ/ステータス段階620では、入力トランザクションおよび出力トランザクションが以下のように行われる。USB上流ポート625は、入力を受信してその入力をUSB下流ポート626に送信する。USB下流ポート626は、入力を送信し、USBデバイスから応答を取得する。一方、USB上流ポート625は、データまたは応答確認がUSBデバイスから入手可能になるまで、入力(IN)または出力データ(OUT/DATA)に対してNAK応答を最初に送信する。
【0042】
USBデバイス側では、USBデバイスが入力または出力データに対してNAK応答を送信して、NAK応答がUSB下流ポート625に到達した場合、USB上流ポート625は、次に来る入力または出力データを非ブロック化して、それをUSB下流ポート626に送る。つまり、USB上流ポートは、USBホストに対しての応答確認であるNAK応答と共にその入力または出力データをUSBデバイスに送る。USBデバイスが、入力のデータ、または、出力データのACK応答を送って、その入力のデータ、または、出力データのACK応答が、USB上流ポート625に到達した場合、USB下流ポート626は、入力トランザクションに対してACK応答で応答し、入力のそのデータ、または、出力データのACK応答をUSB上流ポート625に送る。USB上流ポート625は、利用可能な次の入力のデータ、または、利用可能な次の出力データのACK応答を送信する。
【0043】
USB上流ポート625は、セットアップおよびデータを受信することが必要され、また、USBの仕様に従ってACK応答で応答するので、USB上流ポート625は、セットアップのトランザクションに対してACK応答で常に応答する。
【0044】
USB下流ポート626は、出力/セットアップ(OUT/SETUP)とデータとの間のインターパケットディレイ(inter-packet delay)を保証するために、次のデータがUSB下流ポート626で利用可能となるまで、出力(OUT)またはセットアップ(SETUP)をバッファリングする。
【0045】
USBは、アイソクロナス転送、インタラプト転送、バルク転送、コントロール転送といったような多種多様なデータ転送をサポートしている。アイソクロナス転送は、保証されたデータ転送速度で行われるが、リアルタイム音声や映像といったような考えられるデータの損失が生じる。インタラプト転送は、保証された簡単な応答(限界待ち時間)を必要とする、ポインティングデバイスやキーボードのようなデバイスで用いられる。バルク転送は、大量の突発的な転送であり、残っている利用可能な帯域すべてを使用するが、ファイル転送のような帯域または待ち時間の保証は有していない。コントロール転送は、一般的に短い時間で、デバイスに対するシンプルなコマンド、および、バスコントロールパイプメンバー0(bus control pipe number 0)で使用されるステータス応答で用いられる。
【0046】
フローコントロール機構を用いる代わりに、入力または出力データに対してNAK応答を送信することによって、アイソクロナス転送は、ゼロデータを使用し、入力トランザクションスキーム(IN transaction scheme)をパイプライン処理する。最初の複数のアイソクロナス入力に対して、USB上流ポートは、USBの仕様において妥当なゼロデータで応答する。この最初の入力は、USB下流ポートに送られ、アイソクロナスUSBデバイスからデータを取得する。この最初のデータは、そのデータがUSB上流モジュールに到達した際に、次のアイソクロナス入力に応答するために用いられる。このように、USBホストは、USBデバイスから、遅延されパイプライン化されたアイソクロナスデータを受信する。
【0047】
USBホストが、アイソクロナス入力の送信を停止した場合、最後に残っているデータパケットは、破棄される。
【0048】
アイソクロナス出力トランザクション(isochronous OUT transaction)は、NAK応答なしで、USB下流ポートに送られる。出力とデータとの間のインターパケットディレイは、データがUSB下流ポートで利用可能になるまで、出力をバッファリングすることによって、維持される。
【0049】
NAK応答レスポンスなしでアイソクロナス入力に対して適切に応答するために、USB上流ポートは、どのUSBアドレスおよびUSBエンドポイントが、アイソクロナス転送で用いられるかを、知るべきである。この情報を得るために、DiiVA USBは、USBデバイスからディスクリプタ(記述子)をデコードする機能を有する。
【0050】
デコーディングディスクリプタは、ハイブリッドリンクUBSパケットを分析することによって、実行することができる。あるいは、USB下流ポートが、USB上流ポートとUSB下流ポートとが接続する前に、エニュメレートして、そのディスクリプタをUSBデバイスから読み出しする機能を有するUSBホスト、を有していてもよい。ディスクリプタデコーディング方法は、実装依存であり、他の実装が可能である。
【0051】
USBの仕様によれば、高帯域アイソクロナス入力エンドポイントは、データサイズに基づいて、データPIDシーケンス(data PID sequencing)をサポートしなければならない。アイソクロナスUSBデバイスからのデータサイズは、変化するので、マイクロフレームごとの入力数が、フレーム毎で異なる。したがって、USB上流ポートからUSB下流ポートにアイソクロナス入力を送る簡単な装置は、USBの仕様を満たすことができない。
【0052】
DiiVAUSBは、以下の方法で、高帯域アイソクロナス入力エンドポイントをサポートしている。マイクロフレームごとに最初のアイソクロナス入力だけが、送られる。USB下流ポートが、アイソクロナス入力のデータを受信した場合、USB下流ポート自体が、データPID(DATA PID)に基づいて、どれぐらい入力を送信する必要があるかを決める。最初のデータPIDが、データ0(DATA0)だった場合、USB下流ポートは、上述のパイプライン化されたアイソクロナス転送スキームのように、動作する。最初のデータPIDが、データ2(DATA2)だった場合、USB下流ポートは、同じマイクロフレームで2つの同じ入力を生成する。最初のデータPIDが、データ1(DATA1)だった場合、USB下流ポートは、1つの同じ入力を生成する。USB上流ポートは、高帯域アイソクロナスエンドポイントでフレームごとに最大のデータサイズを収容するために十分なバッファを有するべきである。
【0053】
ある実施形態では、アイソクロナス入力トークンでハイブリッドリンクを通じて、USBデータを送信する方法は、前記データパケットが、ゼロデータを使用して、状態の数が接続待ち時間に依存する入力データをパイプライン処理する工程と、第1アイソクロナス入力パケットまたは第1マルチプルアイソクロナス入力パケットに対して、前記USB上流ポートは、1つ以上のゼロデータパケットで応答する工程と、前記第1アイソクロナス入力パケットまたは前記第1マルチプルアイソクロナス入力パケットを前記USB下流ポートに送信して、前記アイソクロナスUSBデバイスからデータ0パケット、データ1パケット、または、データ2パケットを受信する工程と、アイソクロナス入力パケットで応答するために、前記データ0パケット、前記データ1パケット、または、前記データ2パケットをパイプライン処理する工程と、前記USBホストが、前記アイソクロナス入力パケットを送信することを停止した場合、最後の残っているデータを破棄する工程と、前記USB上流ポートが、データパケットストリームからUSBディスクリプタを監視してデコードすることにより、どのエンドポイントおよびどのアドレスが、アイソクロナスエンドポイントで用いられているかを見つけ出す工程と、を有する。
【0054】
ある実施形態では、アイソクロナス出力トークンでハイブリッドリンクを通じてUSBデータを送信する方法は、前記USB下流ポートにアイソクロナス出力トランザクションを送信すると共に、前記USB上流ポートはUSBプロトコルに従って送らない工程と、データ0パケット、データ1パケット、データ2パケット、または、Mデータパケットが利用可能になるまで、前記USB下流ポートが出力パケットをバッファリングする工程と、前記データ0パケット、前記データ1パケット、前記データ2パケット、または、前記Mデータパケットが利用可能なった場合、前記出力パケット、および、前記データ0パケット、前記データ1パケット、前記データ2パケット、または、前記Mデータパケット、を前記USBデバイスに送信する工程と、前記USB上流ポートが、データパケットストリームからUSBディスクリプタを監視してデコードすることにより、どのエンドポイントおよびどのアドレスが、アイソクロナスエンドポイントで用いられているかを見つけ出す工程と、を有する。
【0055】
本開示では、USBデータの非アイソクロナス転送が、DiiVA固有のプロトコルを用いて行われる。ある実施形態では、USBデータは、非アイソクロナス入力トークン(non-isochronous IN token)で送られる。非アイソクロナス入力トークンでハイブリッドリンクを通じてUSBデータを送信する工程は、前記USB上流ポートが、入力パケットを受信し、前記入力パケットを前記USB下流ポートに送信する工程と、前記USB下流ポートが、前記入力パケットを送信し、前記USBデバイスからデータパケットまたは応答確認パケットを受信する工程と、前記USB上流ポートが、NAK応答パケットを送信し、前記USBデバイスからの応答が利用可能になるまで、NAK応答パケットを備えた次の入力パケットをブロックする工程と、前記USBデバイスが、前記入力パケットに対してNAK応答パケットを送信して、前記NAK応答が、前記USB下流ポートから前記USB上流ポートに到達した場合、前記USB上流ポートは、前記次の入力パケットのブロックを解除し、前記次の入力パケットを前記下流ポートに送信し、再度、前記入力パケットをUSBデバイスに送信する工程と、前記USBデバイスが、データ0またはデータ1のパケットを送信して、前記データ0またはデータ1のパケットが、前記USB上流ポートに到達した場合、前記USB下流ポートはACK応答パケットで応答し、前記データ0またはデータ1のパケットを前記上流ポートに送信する工程と、前記上流ポートが、次の利用可能な前記入力パケットに対して、前記データ0またはデータ1のパケットを送信する工程と、を有する。
【0056】
ある実施形態では、USBデータが、非アイソクロナス出力トークン(non-isochronous OUT token)で送られる。非アイソクロナス出力トークンでUSBデータを送信する工程は、前記USB上流ポートが、出力パケット、および、データ0またはデータ1のパケットを受信し、前記USB下流ポートに送信する工程と、前記データ0またはデータ1のパケットが利用可能になるまで、前記USB下流ポートは、前記出力パケットをバッファリングし、前記データ0またはデータ1のパケットが利用可能になった場合には、前記出力パケット、および、前記データ0またはデータ1のパケットを前記USBデバイスに送信する工程と、前記USB上流ポートは、前記出力トランザクションに対して、NAK応答パケットを送信し、前記USB下流ポートからの応答が利用可能になるまで、次の出力パケット、および、データ0またはデータ1のパケットを送信しない工程と、前記USBデバイスが、前記出力トランザクションに対してNAK応答パケットを送信し、前記USB下流ポートがNAK応答パケットを前記USB上流ポートに送信した場合、前記USB上流ポートは、前記次の出力パケット、および、前記データ0またはデータ1のパケットを前記USB下流ポートに再度送信する工程と、前記USBデバイスが、ACK応答パケットを送信した場合、前記USB上流ポートが、前記次の出力トランザクションに対してACK応答を送信する工程と、を有する。
【0057】
本開示において、USBデータの転送が、PINGパケットを用いて行われていてもよい。
【0058】
ある実施形態では、USBホストが、出力トランザクションに対するNAK応答を取得した場合、PINGプロトコルが、実行される。この実施形態では、USB上流ポートが、NAK応答で応答し、PINGパケットをUSB下流ポートに送信しない。USB上流ポートは、USBデバイスからの出力トランザクションの応答が利用可能になるまで、PINGをブロックし、送信NAK応答を保持する。
【0059】
USBデバイスが、出力トランザクションに対してACK応答で応答する場合、USB上流ポートは、次のPINGに対してACK応答で応答すると共に、次の出力トランザクションに対してもACK応答で応答する。USBデバイスは、もう既に最初の出力トランザクションを受け入れているので、この最後の出力トランザクションは、USB下流ポートに送信されない。
【0060】
USBデバイスが、出力トランザクションに対してNAK応答で応答する場合、USB上流ポートは、次のPINGをUSB下流ポートに送信する。
【0061】
USBデバイスが、PINGに対してACK応答で応答して、PINGがUSB上流モジュールに到達した場合、USB上流モジュールは、次のPINGに対してACK応答で応答すると共に、次の出力トランザクションに対してもACK応答で応答する。最後のトランザクションは、USBデバイスに送られ、ACK応答で応答されることが予想される。
【0062】
USBデバイスは、PINGに対してNAK応答で応答して、PINGがUSB上流モジュールに到達した場合、USB上流モジュールは、次のPINGに対してACK応答で応答して、PINGが、再度USBデバイスに送信される。このステップは、USBデバイスがPINGに対してACK応答で応答するまで、繰り返される。また、USBデバイスがACK応答で応答した場合は、その手順は、上述のステップに従う。
【0063】
前記USB上流ポートが、出力トランザクションに対してNAK応答パケットで応答するように、構成されており、USB PINGパケットを用いて前記USBデータを送信する工程を、さらに有する。前記USB PINGパケットを用いて前記USBデータを送信する工程は、前記USB上流ポートは、出力トランザクションに対してNAK応答パケットで応答する工程と、前記USB上流ポートが、NAK応答パケットで応答し、前記USB下流ポートにPINGパケットを送信する工程と、前記USBデバイスの応答が利用可能になるまで、前記USB上流ポートが、PINGパケットを送信せずに、NAK応答パケットを送信続ける工程と、前記USBデバイスが、出力トランザクションに対してACK応答パケットで応答した場合、前記USB上流ポートは、次のPINGパケットに対してACK応答パケットで応答すると共に、次の出力トランザクションに対してACK応答で応答し、最後の出力トランザクションを前記USB下流ポートに送信しない工程と、前記USBデバイスが、出力トランザクションに対してNAK応答パケットで応答して、NAK応答パケットが、前記USB上流ポートに送信される場合、前記USB上流ポートは、次のPINGパケットを前記USB下流ポートに送信する工程と、前記USBデバイスが、PINGパケットを備えたNAK応答パケットで応答して、前記NAK応答パケットが、USB上流ポートに送信される場合、前記USB上流ポートが、次のPINGパケットを前記USB下流ポートに送信する工程と、前記USBデバイスが、PINGパケットを備えたACK応答パケットで応答し、前記ACK応答パケットが、前記USB上流ポートに送信される場合、前記USB上流ポートが、次のPINGパケットに対してACK応答パケットで応答する工程と、前記次の出力トランザクションが、ACK応答パケットで応答する工程と、前記出力パケット、および、前記データ0パケットまたは前記データ1パケット、を前記USB下流ポートに送信して、前記USBデバイスに送信する工程と、を有する。
【0064】
他の実施形態では、PINGは、前の出力トランザクションがない場合に、用いられる。この実施形態では、USB上流ポートが、NAK応答で応答し、PINGをUSB下流ポートに送信する。USBデバイスからの応答が利用可能になるまで、USB上流ポートは、PINGを受信せず、送信するNAK応答を保持する。
【0065】
USBデバイスは、PINGに対してACK応答で応答する場合、USB上流ポートは次のPINGに対してACK応答で応答すると共に、次の出力トランザクションに対してACK応答で応答する。この場合、出力トランザクションが、まだUSBデバイスに送信されていないので、最後の出力トランザクションが、最初の手順とは異なり、USB下流ポートに送信される。
【0066】
USBデバイスが、PINGに対してNAK応答で応答して、PINGがUSB上流ポートに到達する場合、USB上流ポートは、次のPINGに対してNAKで応答して、PINGをUSB下流ポートに送信する。このステップは、USB下流ポートがUSBデバイスからACK応答を取得するまで、繰り返される。USBデバイスが、上述したように、ACK応答で応答する場合の動作は、以下のように行われる。
【0067】
USBデバイスが、出力トランザクションに対してNYETで応答するとき、DiiVAUSBモジュールは、NYETをACK応答として見なし、USB上流ポートは常にNYETの代わりにACK応答を送信する。
【0068】
つまり、USBPINGパケット(USB PING packet)を用いて、ハイブリッドリンクを通じてデータを送信する方法は、以下のように行われる。USB上流ポートは、NAK応答パケットで応答して、PINGパケットをUSB下流ポートに送信し、USB上流ポートは、USBデバイスからの応答が利用可能になるまで、PINGパケットを送信せずに、NAK応答パケットを送り続ける。そして、応答パケットがUSB上流ポートに送信され、USB上流ポートが、次のPINGパケットに対して、ACK応答パケットで応答すると共に、次の出力トランザクションに対してACK応答で応答し、出力パケット、および、データ0パケット(DATA0 Packet)またはデータ1パケット(DATA1 Packet)を下流ポートに送信する。USB上流ポートがPINGパケットを受信する前に、前の出力トランザクション処理は行われない。
【0069】
ある実施形態では、DiiVAネットワークにおけるUSBアドレス管理は、以下のように行われる。USB上流ポートは、どんなハブ下流ポートにでも取り付けられることができる。さまざまなUSBアドレスを備えたパケットは、USB上流ポートに送られることができる。したがって、USB上流ポートは、どのUSBアドレスがUSB上流ポートに割り当てられたかを認識しなければならない。また、USB上流ポートは、他のどんなUSBデバイスに対しても、汎用USBパケットに応答するべきではない。
【0070】
USBリセットが、USB上流ポートで検出された後、USB上流ポートは、USBアドレス0(USB Address 0)を備えた汎用USBパケットだけを受け入れる。セットアドレス標準USBデバイス要求(SET ADDRESS standard USB device request)を監視し、デコードすることにより、USB上流ポートは、USB下流ポートでどのUSBアドレスがUSBデバイスに割り当てられているかを認識することができる。
【0071】
セットアドレス標準USBデバイス要求を検出した後、USB上流ポートは、新しく割り当てられたUSBアドレスを備えた汎用USBパケットで応答だけする。USBリセットが、USB上流ポートで検出された場合、割り当てられたUSBアドレスをゼロにリセットし、セットアドレス標準USBデバイス要求を待つ。セットアドレスデバイス要求をデコードすることは、特有の実行である。
【0072】
つまり、DiiVAネットワークにおけるUSBアドレス管理の方法は、以下のように行われる。USBリセットが、USB上流ポートで検出された後、USB上流ポートは、USBアドレス0を有するパケットのみを受け入れる。そして、USB上流ポートは、セットアドレス標準USBデバイス要求を監視し、デコードすることによって、下流ポートでどのUSBアドレスがUSBデバイスに割り当てられているかを認識する。セットアドレス標準USBデバイス要求を検出した後、上流ポートは、セットアドレス標準USBデバイス要求で割り当てられた新しいUSBアドレスを備えたパケットで応答だけする。USBリセットは、割り当てられたUSBアドレスをゼロにリセットし、再度、セットアドレス標準USBデバイス要求を待つ。
【0073】
ある実施形態では、DiiVAネットワークにおいてキープアライブ転送(Keep-Alive forwarding)が、次のように行われる。エニュメレーション状態が、LS_ENUM_DONEに進むと、USB上流ポートは、ライン状態の監視を開始する。ライン状態の最初のトグリングが検出されると、最初のキープアライブシグナル伝達(USB Keep-Alive signaling)として見なされる。USB上流ポートは、T_KEEP_ALIVEに対して、内蔵タイマーを設定する。その設定された期間が終了すると、キープアライブを再度検出するために、ライン状態のトグリングの監視を開始する。ある実施形態では、T_KEEP_ALIVEは、0.98ミリ秒(ms)に設定されている。キープアライブ信号は、UU_KEEP_ALIVEを介してUSB下流モジュールに送信される。
【0074】
つまり、DiiVAネットワークにおいて、USBロースピードキープアライブシグナル伝達(USB low speed Keep-Alive signaling)を実行する方法は、以下のように行われる。ロースピードUSBエニュメレーションが行われた後、USB上流ポートは、ライン状態の監視を開始する。ライン状態の最初の変化を検出したときが、最初のキープアライブ信号として見なされ、USB上流ポートは、T_KEEP_ALIVEに対して内部タイマーを設定する。その設定された期間が終了すると、USB上流ポートは、キープアライブを検出するために、ライン状態が再度トグリング状態であるかを監視し、キープアライブイベントパケット(Keep Alive event packet)をUSB下流ポートに送信する。
【0075】
本開示において、方法およびシステムは、DiiVA上でUSBおよびマルチメディアデータの転送、および、DiiVAのネットワーク管理に関することが記載されている。そこで記載されている構成要素、ステップ、機能、目的、利益、効果は、単に記載しただけであり、それらに限定されるものではない。すわなち、本発明は、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。ある実施形態において、DiiVA上のUSBデータ転送に関するシステムおよび方法が記載されているが、一方でこれら実施形態の中で黙示される主旨が他の実施形態で用いられても良いことは明白である。また、より少ない、補助の、および/または異なる構成要素、工程、機能、目的、効果、優位な点を有する実施形態を含め、多くの他の実施形態が考えられる。構成要素およびステップを相違して配置したり、並べたりすることも可能である。説明され例示されたものが、構成要素、工程、機能、目的、効果、優位な点の何れに特化する、または公然と同等にする意図は、まったく無い。
【0076】
本開示において、要素の単一の参照は、特別にそのように言及しない限りは、「1つまたは1つだけ」を意味するものではなく、「1つまたは複数」を意味するものである。本開示を通して説明した多数の実施形態の要素に等価な、当技術分野の当業者に知られているまたは今後知られるすべての構造および機能が、本明細書に組み込まれる。
【符号の説明】
【0077】
110、210 DiiVAネットワーク
120、220 USBホスト
130、230 USBデバイス
205 DiiVAデバイスA
206 DiiVAデバイスB
225、516、625 USB上流ポート
226、515、626 USB下流ポート
232 USB物理層(USB PHY)
234 USB上流モジュール
240 DiiVAハイブリッドリンク

【特許請求の範囲】
【請求項1】
USB(ユニバーサルシリアルバス)ホストコントローラと、
少なくとも1つのUSBデバイスと、
USB上流ポートを通じて前記USBホストコントローラに接続される第1デバイスと、
USB下流ポートを通じて前記USBデバイスに接続される第2デバイスと、
ハイブリッドリンクを備え、USBプロトコルに従って前記第1デバイスと前記第2デバイスとの間でデータを転送するように構成されたネットワークと、を有するシステムにおいて、
前記ハイブリッドリンクが、前記USB上流ポートと前記USB下流ポートとの間で、1つ以上のイベントについてパケット化されたライン状態情報を含む少なくとも1つのライン状態情報パケット、および、少なくとも1つのUSBデータパケット、を送信することによって、前記USBプロトコルの内容を送信するように、構成されていることを特徴とするシステム。
【請求項2】
前記ハイブリッドリンクが、前記ライン状態情報パケットに従って、前記ネットワークを通じてUSBエニュメレーションプロトコル、および、USB一時停止/再開プロトコルを実行するように、構成され、
前記USBエニュメレーションプロトコルが、ハイスピードエニュメレーションプロトコル、フルスピードエニュメレーションプロトコル、および、ロースピードエニュメレーションプロトコルの1つを有している
ことを特徴とする請求項1に記載のシステム。
【請求項3】
前記第1デバイスおよび前記第2デバイスの少なくとも1つが、DiiVA(ディーバ: Digital Interactive Interface For Video And Audio)デバイスであり、
前記ネットワークが、DiiVAネットワークであり、
前記ハイブリッドリンクが、データ送信時間を保証せずに、前記DiiVAネットワークを通じて双方向マルチプロトコルデータを送信するように、構成されたDiiVA双方向リンクである
ことを特徴とする請求項1に記載のシステム。
【請求項4】
前記イベントが、ライン変更イベント、USBリセットイベント、3ミリ秒(ms)アイドルイベント、VBus検出イベント、VBus使用可能イベント、USBホスト準備中イベント、キープアライブイベント、FSデバイス準備完了ベント、LSデバイス準備完了イベント、および、デバイス切断イベント、の少なくとも1つで構成されており、
前記ライン変更イベントが、SEO(シングルエンドゼロ:Single Ended Zero)イベント、Jステート(J State)イベント、および、Kステート(K State)イベント、の少なくとも1つで構成されている
ことを特徴とする請求項1に記載のシステム。
【請求項5】
前記第1デバイスおよび前記第2デバイスが、それぞれ、インターフェースを通じて論理モジュールに接続されるUSB PHY (物理層)と、双方向接続を備えマルチプロトコル データを運んで共有するために構成された送受信機と、を有している
ことを特徴とする請求項1に記載のシステム。
【請求項6】
前記インターフェースが、UTMI(USB 2.0. Transceiver Macrocell Interface)およびULPI(UTMI+ Low Pin Interface)の1つで構成されている
ことを特徴とする請求項5に記載のシステム。
【請求項7】
前記USB上流ポートおよび前記USB下流ポートは、それぞれ、前記ライン状態情報のすべてをパケット化して送信するように構成された送信USBポート、および、前記インターフェースを設定して、前記送信USBポートの前記ライン状態の動作をエニュメレートするように構成された受信USBポート、のうちの1つである
ことを特徴とする請求項1に記載のシステム。
【請求項8】
前記第1デバイスおよび前記第2デバイスの少なくとも1つが、複数のUSBポートを有する
ことを特徴とする請求項1に記載のシステム。
【請求項9】
前記USBホストコントローラが、さらに、前記ネットワークを通じて、USBフローコントロールプロトコル、USB PINGプロトコル、USBアドレス管理、および、USBロースピードキープアライブシグナル伝達(USB low speed Keep-Alive signaling)、の少なくとも1つを行うように、構成されている
ことを特徴とする請求項1に記載のシステム。
【請求項10】
前記ネットワークが、双方向リンクおよび一方向リンクの両方を備えたケーブル、を有している
ことを特徴とする請求項1に記載のシステム。
【請求項11】
第1デバイスを第2デバイスに接続するネットワークを通じてUSBデータと通信する方法において、
前記ネットワークにおける双方向ハイブリッドリンクを通じて、前記第1デバイスをUSBホストコントローラに接続するUSB上流ポートと前記第2デバイスをUSBデバイスに接続するUSB下流ポートとの間で、少なくとも1つのライン状態情報パケットと通信する工程と、
前記双方向ハイブリッドリンクを通じて、前記USB上流ポートと前記USB下流ポートとの間で少なくとも1つのUSBデータパケットと通信する工程と、
前記ライン状態情報パケットを用いて、USBエニュメレーションおよびUSB一時停止/再開操作を行う工程と、を有し、
前記ライン状態情報パケットが、1つ以上のイベントに関する情報をパケット化する
ことを特徴とする、第1デバイスを第2デバイスに接続するネットワークを通じてUSBデータと通信する方法。
【請求項12】
前記1つ以上のイベントが、ライン変更イベント、USBリセットイベント、3ミリ秒(ms)アイドルイベント、VBus検出イベント、VBus使用可能イベント、USBホスト準備中イベント、キープアライブイベント、FSデバイス準備完了イベント、LSデバイス準備完了イベント、および、デバイス切断イベント、の少なくとも1つで構成されており、
前記ライン変更イベントが、SEO(シングルエンドゼロ:Single Ended Zero)イベント、Jステート(J State)イベント、および、Kステート(K State)イベント、の少なくとも1つで構成されている
ことを特徴とする請求項11に記載の方法。
【請求項13】
前記ネットワークが、DiiVA(ディーバ:Digital Interactive Interface For Video And Audio)ネットワークであり、
前記双方向ハイブリッドリンクが、データ送信時間を保証することなく、前記DiiVAネットワークを通じて双方向マルチプロトコルデータを送信するように、構成されている
ことを特徴とする請求項11に記載の方法。
【請求項14】
前記USBエニュメレーションが、ハイスピードエニュメレーションで構成されており、
前記ハイスピードエニュメレーションを実行する方法は、
ハイスピードUSBデバイスが、前記USB下流ポートに取り付けられた後、FSデバイス準備完了イベントパケットを前記USB上流ポートに送信する工程と、
前記USBホストコントローラを取り付けて、VBusがアサートされた時、前記USB上流ポートが、VBus検出イベントパケットを前記USB下流ポートに送信して、前記USB下流ポートでアサートを停止する工程と、
前記USB上流ポートが、VBus使用可能イベントパケットを前記USB下流ポートに送信して、前記USB下流ポートが、VBusをアサートする工程と、
前記USB下流ポートが、Jステート(J State)を検出すると、Jステートイベントパケット(J State event packet)を前記USB上流ポートに送信する工程と、
前記USB上流ポートが、前記USBホストコントローラからUSBリセットを検出すると、USBリセットイベントパケットを前記USB下流ポートに送信する工程と、
前記USB上流ポートでJステート(J State)を検出すると、Jステートイベントパケット(J State event packet)を前記USB下流ポートに送信する工程と、
前記USB上流ポートでK チャープ(K Chirp)を検出すると、Kステートイベントパケット(K State event packet)を前記USB下流ポートに送信する工程と、
前記USB上流ポートでSEO Stateを検出すると、SEO Stateイベントパケットを前記USB下流ポートに送信する工程と、
前記USB下流ポートでトグリングK-Jチャープ(toggling K-J Chirps)を検出すると、前記Kステートイベントパケットおよび前記Jステートイベントパケットを前記USB上流ポートに送信する工程と、
前記USBホストからSOFパケットを検出すると、ハイスピードエニュメレーションを終了する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項15】
前記USBエニュメレーションが、フルスピードエニュメレーションで構成されており、
前記フルスピードエニュメレーションを実行する方法は、
フルスピードUSBデバイスを前記USB下流ポートに取り付けて、FSデバイス準備完了イベントパケットを前記USB上流ポートに送信する工程と、
前記USBホストコントローラを取り付けて、VBusがアサートされた時、前記USB上流ポートがVBus検出イベントパケットを前記USB下流ポートに送信して、前記USB下流ポートでアサートを停止する工程と、
前記USB上流ポートが、VBus使用可能イベントパケットを前記USB下流ポートに送信して、前記USB下流ポートが、VBusをアサートする工程と、
前記USB下流ポートが、Jステート(J State)を検出すると、Jステートイベントパケット(J State event packet)を前記USB上流ポートに送信する工程と、
前記USB上流ポートが、前記USBホストコントローラからUSBリセットを検出すると、USBリセットイベントパケットを前記USB下流ポートに送信する工程と、
前記USB上流ポートでJステート(J State)を検出すると、Jステートイベントパケット(J State event packet)を前記USB下流ポートに送信する工程と、
前記USBホストからSOFパケットを検出すると、フルスピードエニュメレーションを終了する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項16】
前記USBエニュメレーションが、ロースピードエニュメレーションで構成されており、
前記ロースピードエニュメレーションを実行する方法は、
ロースピードUSBデバイスを前記USB下流ポートに取り付けて、LSデバイス準備完了イベントパケットを前記USB上流ポートに送信する工程と、
前記USBホストコントローラを取り付けて、VBusがアサートされた時、前記USB上流ポートがVBus検出イベントパケットを前記USB下流ポートに送信して、前記USB下流ポートでアサートを停止する工程と、
前記USB上流ポートが、VBus使用可能イベントパケットを前記USB下流ポートに送信し、前記USB下流ポートが、VBusをアサートする工程と、
前記USB下流ポートが、Kステート(K State)を検出すると、Kステートイベントパケット(K State event packet)を前記USB上流ポートに送信する工程と、
前記USB上流ポートが、前記USBホストコントローラからUSBリセットを検出すると、USBリセットイベントパケットを前記USB下流ポートに送信する工程と、
前記USB上流ポートがKステート(K State)を検出すると、前記Kステートイベントパケットを前記USB下流ポートに送信する工程と、
前記USBホストからSOFパケットを検出すると、ロースピードエニュメレーションを終了する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項17】
一時停止および再開を行う工程をさらに有し、
前記一時停止および再開を実行する方法は、
3ミリ秒アイドルステート(3 ms Idle State)を検出すると、3ミリ秒アイドルイベントパケット(3 ms Idle event packet)を生成し、前記3ミリ秒アイドルイベントパケットを前記USB下流ポートに送信する工程と、
前のスピードが、ハイスピードUSBだった場合、前記USB上流ポートは、USB仕様書およびUTMI仕様書に従って、3ミリ秒アイドルが一時停止状態、または、USBリセット状態かをチェックする工程と、
前記USB上流ポートが、Kステート(K State)を検出した場合、前記USB上流ポートは、Kステートイベントパケット(K State event packet)生成して、再開状態に進む工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項18】
非アイソクロナス入力トークン(non-isochronous IN token)で前記ハイブリッドリンクを通じて前記USBデータを送信する工程をさらに有し、
前記非アイソクロナス入力トークンで前記ハイブリッドリンクを通じて前記USBデータを送信する工程は、
前記USB上流ポートが、入力パケットを受信し、前記入力パケットを前記USB下流ポートに送信する工程と、
前記USB下流ポートが、前記入力パケットを送信し、前記USBデバイスからデータパケットまたは応答確認パケットを受信する工程と、
前記USB上流ポートが、NAK応答パケットを送信し、前記USBデバイスからの応答が利用可能になるまで、NAK応答パケットを備えた次の入力パケットをブロックする工程と、
前記USBデバイスが、前記入力パケットに対してNAK応答パケットを送信して、前記NAK応答が、前記USB下流ポートから前記USB上流ポートに到達した場合、前記USB上流ポートは、前記次の入力パケットのブロックを解除し、前記次の入力パケットを前記下流ポートに送信し、再度、前記入力パケットをUSBデバイスに送信する工程と、
前記USBデバイスが、データ0またはデータ1のパケットを送信して、前記データ0またはデータ1のパケットが、前記USB上流ポートに到達した場合、前記USB下流ポートはACK応答パケットで応答し、前記データ0またはデータ1のパケットを前記上流ポートに送信する工程と、
前記上流ポートが、次の利用可能な前記入力パケットに対して、前記データ0またはデータ1のパケットを送信する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項19】
非アイソクロナス出力トークン(non-isochronous OUT token)で前記USBデータを送信する工程をさらに有し、
前記非アイソクロナス出力トークン(non-isochronous OUT token)で前記USBデータを送信する工程は、
前記USB上流ポートが、出力パケット、および、データ0またはデータ1のパケットを受信し、前記USB下流ポートに送信する工程と、
前記データ0またはデータ1のパケットが利用可能になるまで、前記USB下流ポートは、前記出力パケットをバッファリングし、前記データ0またはデータ1のパケットが利用可能になった場合には、前記出力パケット、および、前記データ0またはデータ1のパケットを前記USBデバイスに送信する工程と、
前記USB上流ポートは、前記出力トランザクションに対して、NAK応答パケットを送信し、前記USB下流ポートからの応答が利用可能になるまで、次の出力パケット、および、データ0またはデータ1のパケットを送信しない工程と、
前記USBデバイスが、前記出力トランザクションに対してNAK応答パケットを送信し、前記USB下流ポートがNAK応答パケットを前記USB上流ポートに送信した場合、前記USB上流ポートは、前記次の出力パケット、および、前記データ0またはデータ1のパケットを前記USB下流ポートに再度送信する工程と、
前記USBデバイスが、ACK応答パケットを送信した場合、前記USB上流ポートが、前記次の出力トランザクションに対してACK応答を送信する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項20】
前記USBデバイスは、アイソクロナスUSBデバイスで構成され、
アイソクロナス入力トークンで前記USBデータを送信する工程をさらに有し、
前記アイソクロナス入力トークンで前記USBデータを送信する工程は、
前記データパケットが、ゼロデータを使用して、状態の数が接続待ち時間に依存する入力データをパイプライン処理する工程と、
第1アイソクロナス入力パケットまたは第1マルチプルアイソクロナス入力パケットに対して、前記USB上流ポートは、1つ以上のゼロデータパケットで応答する工程と、
前記第1アイソクロナス入力パケットまたは前記第1マルチプルアイソクロナス入力パケットを前記USB下流ポートに送信して、前記アイソクロナスUSBデバイスからデータ0パケット、データ1パケット、または、データ2パケットを受信する工程と、
アイソクロナス入力パケットで応答するために、前記データ0パケット、前記データ1パケット、または、前記データ2パケットをパイプライン処理する工程と、
前記USBホストが、前記アイソクロナス入力パケットを送信することを停止した場合、最後の残っているデータを破棄する工程と、
前記USB上流ポートが、データパケットストリームからUSBディスクリプタを監視してデコードすることにより、どのエンドポイントおよびどのアドレスが、アイソクロナスエンドポイントで用いられているかを見つけ出す工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項21】
アイソクロナス出力トークンで前記ハイブリッドリンクを通じてUSBデータを送信する工程を、さらに有し、
前記アイソクロナス出力トークンで前記ハイブリッドリンクを通じてUSBデータを送信する工程は、
前記USB下流ポートにアイソクロナス出力トランザクションを送信すると共に、前記USB上流ポートはUSBプロトコルに従って送らない工程と、
データ0パケット、データ1パケット、データ2パケット、または、Mデータパケットが利用可能になるまで、前記USB下流ポートが出力パケットをバッファリングする工程と、
前記データ0パケット、前記データ1パケット、前記データ2パケット、または、前記Mデータパケットが利用可能なった場合、前記出力パケット、および、前記データ0パケット、前記データ1パケット、前記データ2パケット、または、前記Mデータパケット、を前記USBデバイスに送信する工程と、
前記USB上流ポートが、データパケットストリームからUSBディスクリプタを監視してデコードすることにより、どのエンドポイントおよびどのアドレスが、アイソクロナスエンドポイントで用いられているかを見つけ出す工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項22】
前記USB上流ポートが、出力トランザクションに対してNAK応答パケットで応答するように、構成されており、
USB PINGパケットを用いて前記USBデータを送信する工程を、さらに有し、
前記USB PINGパケットを用いて前記USBデータを送信する工程は、
前記USB上流ポートは、出力トランザクションに対してNAK応答パケットで応答する工程と、
前記USB上流ポートが、NAK応答パケットで応答し、前記USB下流ポートにPINGパケットを送信する工程と、
前記USBデバイスの応答が利用可能になるまで、前記USB上流ポートが、PINGパケットを送信せずに、NAK応答パケットを送信続ける工程と、
前記USBデバイスが、出力トランザクションに対してACK応答パケットで応答した場合、前記USB上流ポートは、次のPINGパケットに対してACK応答パケットで応答すると共に、次の出力トランザクションに対してACK応答で応答し、最後の出力トランザクションを前記USB下流ポートに送信しない工程と、
前記USBデバイスが、出力トランザクションに対してNAK応答パケットで応答して、NAK応答パケットが、前記USB上流ポートに送信される場合、前記USB上流ポートは、次のPINGパケットを前記USB下流ポートに送信する工程と、
前記USBデバイスが、PINGパケットを備えたNAK応答パケットで応答して、前記NAK応答パケットが、USB上流ポートに送信される場合、前記USB上流ポートが、次のPINGパケットを前記USB下流ポートに送信する工程と、
前記USBデバイスが、PINGパケットを備えたACK応答パケットで応答し、前記ACK応答パケットが、前記USB上流ポートに送信される場合、前記USB上流ポートが、次のPINGパケットに対してACK応答パケットで応答する工程と、
前記次の出力トランザクションが、ACK応答パケットで応答する工程と、
前記出力パケット、および、前記データ0パケットまたは前記データ1パケット、を前記USB下流ポートに送信して、前記USBデバイスに送信する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項23】
以前の出力トランザクションが前記USB上流ポートの前にない場合、USB PINGパケットを使用して、前記USBデータを送信する工程をさらに有し、
前記USB PINGパケットを使用して、前記USBデータを送信する工程は、
前記USB上流ポートが、NAK応答パケットで応答し、PINGパケットを前記USB下流ポートに送信する工程と、
前記USBデバイスからの応答が利用可能になるまで、前記上流UBSポートが、PINGパケットを送信せずに、NAK応答パケットを送り続ける工程と、
前記USBデバイスが、PINGパケットに対してACK応答パケットで応答し、ACK応答パケットが、前記USB上流ポートに送信される場合、前記USB上流ポートが、次のPINGパケットに対してACK応答パケットで応答すると共に、次の出力トランザクションに対してACK応答で応答する工程と、
前記出力パケット、および、前記データ0パケットまたは前記データ1パケット、を前記USB下流ポートに送信する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項24】
前記ネットワークでUSBアドレス管理を行う工程をさらに有し、
前記ネットワークでUSBアドレス管理を行う工程は、
USBリセットが、前記USB上流ポートで検出された後、前記USB上流ポートは、USBアドレスを備えたパケットだけを受け入れる工程と、
セットアドレス標準USBデバイス要求(SET ADDRESS standard USB device request)を監視しデコードすることにより、前記USB上流ポートが、どのUSBアドレスが、前記USB下流ポートで前記USBデバイスに割り当てられているのかを認識する工程と、
前記セットアドレス標準USBデバイス要求を検出した後、前記上流ポートは、前記セットアドレス標準USBデバイス要求で割り当てられた新しいUSBアドレスを備えたパケットで応答だけする工程と、
前記USBリセットが割り当てられたUSBアドレスをゼロにリセットし、前記セットアドレス標準USBデバイス要求を再度待つ工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項25】
前記ネットワークでUSBキープアライブシグナル伝達(USB Keep-Alive signaling)を行う工程さらに有し、
前記ネットワークでUSBキープアライブシグナル伝達を行う工程は、
ロースピードUSBエニュメレーションが終了した後、前記上流UBSポートが、ライン状態を監視することを開始する工程と、
前記ライン状態の最初の変化が、検出されると、最初のキープアライブシグナル伝達であると見なす工程と、
前記USB上流ポートが、T_KEEP_ALIVEに対して内蔵タイマーを設定して、前記設定した期間が終了すると、前記USB上流ポートが、ライン状態が再度トグリング状態であるかどうかを監視し、キープアライブ(Keep-Alive)を検出すると、キープアライブイベントパケット(Keep Alive event packet)を前記USB下流ポートに送信する工程と、を有する
ことを特徴とする請求項11に記載の方法。
【請求項26】
前記T_KEEP_ALIVEが、約0.95ミリ秒〜約0.99ミリ秒の間で設定される
ことを特徴とする請求項25に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2013−517694(P2013−517694A)
【公表日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2012−549056(P2012−549056)
【出願日】平成23年1月12日(2011.1.12)
【国際出願番号】PCT/US2011/021031
【国際公開番号】WO2011/088154
【国際公開日】平成23年7月21日(2011.7.21)
【出願人】(512183460)シナーチップ ユーエスエイ コーポレイション (2)
【Fターム(参考)】