回答:
USBは半二重であるため、送信速度が重要です。応答を送信するには、バスを回転させ、データを反対方向に送信する必要があります。そのため、ホストはデータを送信し、確認または応答を待ちます。すべての転送はホストによって制御されます。その後、デバイスは応答する一定の(かなり短い)時間を持ちます。この時間は、おおよそ5mのケーブルに沿った2つの信号のトリップにかかる時間です。
(今すぐ参照を見つけることはできませんが、関連する仕様書は公開されています)
編集:このセクションを見つけてくれたpsmearsに感謝
ケーブルと長距離ソリューション
- ケーブル長に制限があるのはなぜですか?
A:次のビットが送信される前に反射がトランスミッタで整定できるように、ケーブルの長さは26nsのケーブル遅延仕様によって制限されていました。USBはソースターミネーションと電圧モードドライバーを使用するため、これが当てはまる必要があります。これは、ライン電圧がビットの終わりまでに完全に安定したことを意味するものではありません。最悪の場合、不完全に終了します。ただし、ビットの終わりまでに十分な減衰があったため、反射の振幅は管理可能なレベルに減少しました。低速ケーブルの長さは18nsに制限され、伝送ラインの影響が低速信号に影響を与えないようにしています。
- 5メートルを超えるケーブルを作成したいのですが、なぜこれが機能しないのですか?
A:仕様に違反したとしても、文字通りそれほど遠くまでは行きません。最悪の場合の遅延時間を想定すると、5つのハブとケーブルの最下部にあるフルスピードデバイスのタイムアウトマージンは280psです。このマージンを0psに減らすと、余分な5cmが得られるだけで、問題になることはほとんどありません。
だから私の答えは半分正しいです:往復制限はハブとケーブルの最悪の場合のチェーン、合計深さ25mに対するものです。
Dan Neelyは、キーボード、マウス、プリンターなどの「遅い」周辺機器にとって、USBが常に最も低コストのソリューションであると想定されていたことも正しいです。より高速でより遠くに全二重が必要な場合は、100baseTイーサネットが自然な選択です。
このページ/superuser/64744/maximum-length-of-a-usb-cableを参照してください。
Q1:デバイスの接続に使用できるケーブルの長さはどれくらいですか?A1:実際には、USB仕様では、フルスピードデバイス間のケーブルの長さを5メートル(16フィート5インチ弱)に制限しています。低速デバイスの場合、制限は3メートル(9フィート10インチ)です。
Q2:3mまたは5mより長いケーブルを使用できないのはなぜですか?A2:USBの電気設計はそれを可能にしません。USBが設計されたとき、USBケーブルの最大長を4mの範囲に制限する方法でUSBデータライン上の電磁界の伝播を処理することが決定されました。この方法には多くの利点があり、USBはデスクトップ環境向けであるため、範囲の制限は許容できると見なされていました。伝送線路理論に精通していて、このトピックの詳細を知りたい場合は、開発者向けFAQのUSB信号のセクションをご覧ください。
少なくとも通常の意味では、USBを「バッファリング」することは実際には不可能です。通常、バッファリングとは、電気的な増幅とおそらく信号の再生を意味します。
USBでは、ホストがバス全体を駆動します。ホストは要求を送信し、デバイスはホストに応答を発行する必要があります。応答の開始は、要求の送信が完了した後、特定の時間にホストに到達する必要があります。ケーブルが長すぎると、伝播遅延が長すぎて応答が時間内にホストに届きません。
したがって、回避策があり、バッファリングによって遅延が追加されるため、単純な「バッファリング」を伴うものはなく、ホストをより長い遅延に耐えられるようにする必要があります。
回避策には2つのクラスがあります。
物理ハブまたは仮想ハブを挿入する回避策。ホストがバス上のハブを列挙する場合、ハブ自体が余分な遅延を追加し、ハブとホストの間に別の全長ケーブルが存在する可能性があります。ハブからダウンストリームに接続するデバイスに対する要求は、追加の遅延を伴ってスケジュールされます。
最大7つのハブを直列に接続して、ケーブルの4mごとに単一ポートのハブを挿入できます。制限は、ホストから最終的なデバイスまでの7レベルのハブであるため、トラッピングの上流にハブがある場合は、それに応じてハブの数を減らす必要があります。多くのUSBホストには単一レベルの内部ハブが含まれているため、6つのハブが直列に接続されたケーブルの長さは28mになるのが現実的です。最初のものを除くすべてのハブは、セルフパワーであるふりをする必要があります。
ホストに接続するプラグのすぐ近くにプリエンファシスを備えたより頑丈なトランシーバーを備えた仮想ハブを追加してから、より長いケーブルを介してUSBトラフィックを送信できます。そのような延長ケーブルの終端でデバイスが受信する信号が仕様の範囲内であり、レシーバーが標準デバイスが長いケーブルで送信したデータを復元できる限り、問題はありません。ホストが長い遅延を許容するように仮想ハブが追加されます-もちろん、物理ハブはなく、それらの偽装のみです。
より高いレベルのプロトコルで「遅い」ように見えるデバイスをエミュレートする回避策。これが一部のCat-5 USB「エクステンダー」の動作方法です。ここには5つのパートナーがあります。実際のホスト(rHost)、それによって見られるエミュレートされたデバイス(eDev)、長いケーブル、エミュレートされたホスト(eHost)、およびケーブルの遠端でそれを見るデバイス(rDev) 。
最初は、eDevはそこにいないふりをします。ある時点で、eHostはrDevがプラグインされたことを確認します。それを列挙し、データをeDevに転送します。次に、eDevはプラグインイベントをエミュレートし、rHostはそれを列挙します。rHostは、rDevを認識していると信じていますが、そこにいるのはeDevのふりだけです。同様に、rDevは、それがrHostを認識していると見なしますが、そこに存在するのはeHostだけのふりです。
最終的に、rHostは、それを使用するために、そこにあると信じているrDevに転送を発行したいと考えています。IN転送の場合、eDevはデータがないように見せかけます(NAKで応答します)。転送要求はeHostに転送され、eHostはrDevでそれを再実行します。この結果はeDevに転送され、eDevは次にホストが転送を試みるときにその結果を使用します。
OUT転送の場合、eDevはrDevの動作を推測する必要があります。ここで試行できるさまざまなヒューリスティックと動作があります。1つの方法は、eDevが常にデータを受信し、ACKで応答することです。転送はeHostに転送され、eHostは転送をrDevに再生します。理想的には、rDevは最終的にデータを消費してACKします。これが成功しない場合、またはrDevがSTALLで応答する場合、eDevが実行できる最善の方法は、ホストからの次の転送でこのように動作することです。あるいは、eDevは常に転送をNAKすることができます。通常は、ホストが後で同じ転送を再試行するだけであるという正しい仮定が当てはまります。元の転送はNAKで転送されましたが、eHostに転送され、rHostで転送が実行されます。rDevの応答が何であれ、eDevはそれを知るとすぐにeDevの応答になります。
現実的な実装は、NAKによって延期できるすべての転送について、rDevへの完全なラウンドトリップを伴う保守的なヒューリスティックから始まります。転送が進むにつれて、rDevの予想される動作が学習され、eDevの保守性が低下する可能性があります。「エクステンダー」は、標準のUSBクラスの知識と、ベンダー固有のクラス/デバイスの知識/ブラックリスト/ホワイトリストを使用して、パフォーマンスを向上させることもできます。
ほとんどのdata-transmission-over-cableスキームには、ケーブルの「特性インピーダンス」の仕様(これを抵抗と考えますが、ACに適用されます)、終端インピーダンス(接続の最後にある「抵抗」は、信号の反射がケーブルから送信機に跳ね返るのを避けるために必要です。多くの場合、指定された「スルーレート」(信号が信号から信号に遷移するのにかかる時間) 0状態から1状態へ、またはその逆)、つまり、1秒あたり0/1の間の遷移の最大数(つまり、kbps / Mbps / Gbps)、したがって信号の完全性が低下するまでのケーブルの長さ&ものは正しく機能しなくなります。
USBと比較して、RS232にはケーブルタイプ、特性インピーダンス、スルーレート、ケーブル長、コネクタタイプに関するすべての仕様があります。確かに、25ピンと9ピンの「D」コネクタは一般的でしたが、実際にはRS232はあらゆる種類のコネクタとケーブルと製品に組み込まれており、特に仕様はありません。実際には、RS232を使用すると、通常、1秒あたりのビット数(別名「ボー」)レートに落とすことで、より長い距離を移動できます。達成できる最大距離は、ケーブルがシールドされているかどうか、終端が終端であるかどうかなど、ケーブルのインピーダンスの重要な部分によっても決まります。
RS232をUSBと比較すると、1960年代の「標準」を115k2で(まれな例外を除いて)かなり上回っていますが、1990年代と2000年代の1.5Mbpsで開始したものと比較すると、桁違いに速いです。次に12Mbps(ほぼ100倍高速)、次に480Mbps(ほぼ5000倍高速)ですが、ケーブルパラメータとケーブル長が、確実に機能させるために重要な役割を果たしたことを意味します。それはデスクトップ周辺機器接続規格として設計されたので、5mは許容できると見なされ、ケーブルとコネクタと速度のすべてのパラメータがその時点から規定されました。USBを遅くする方法があった場合、おそらくそれを(リピーターなしで)より長いケーブルで実行させることができます。