回答:
理論的には、1つのホストPCに最大127台のデバイスを接続できますが、それを妨げる実際的な電力およびデータ帯域幅の制限があります。これらの127台のデバイスは、最大7レベルのハブの階層型ネットワークに配置でき、PCホストをレベル1、最も遠いデバイスをレベル7としてカウントします。PCは、ハブに5ユニットの電力を供給します。各ユニットは100 mAであり、各ポートには最低1ユニットが必要です。ハブ自体が1つを消費し、最大4つのポート用に4つのユニットを残します。したがって、4つを超えるポートを備えたバスパワーハブはありません。
バスパワーのハブにはさらに制限があります。各ポートには単一の電力ユニットしかないため、ダウンストリームは単一のデバイスにしか接続できません。別のハブに接続して拡張することはできません。そのハブには追加の5ユニットが必要なためです。また、すべてのデバイスが1つのユニットで実行できるわけではありません。マウスのような低電力デバイスは機能しますが、高電力デバイスは最大5ユニットを要求できます。ハイパワーUSBデバイスは、PCホストまたはポートに5ユニットを供給できるセルフパワードハブに直接接続されている場合にのみ機能します。
デバイスを接続すると、PCはデバイスにその機能と要件を問い合わせます。したがって、たとえば、PCは、4ポートのバスパワーハブに接続されていることを認識しています。つまり、各ポートは1つのユニットしか駆動できません。高電力デバイスをそのハブに接続しようとすると、OSはエラーメッセージをスローし、デバイスの有効化を拒否します。
これらの制限があるため、バスパワーのハブは一般に悪い考えであり、主にデスクトップ用ではなくモバイル用に設計されています。
一方、ポートに接続されているデバイス自体が自己給電型である場合、ハブからのユニットを2つ以上必要としない場合があります。たとえば、外部ディスクドライブには独自の電力があるため、バスパワーのハブでも問題なく動作します。
セルフパワードハブは、各ポートに5ユニットを供給することができるため、ハイパワーデバイスとさらなるレベルのハブが可能になります。したがって、1つの7ポートセルフパワーハブをプラグインし、さらに7つの7ポートハブをプラグインして、4番目の層だけで49の使用可能なポートを提供できます。
一部のセルフパワードハブでは、バスパワードモードでも使用できますが、プラグインしようとするデバイスが多すぎると、OSからエラーメッセージが表示されます。
ほとんどのハブコントローラチップには4つのポートがあるため、一般的に4ポートハブが表示されます。より大きなハブを構築したい場合は、2つの4ポートチップを使用します。ただし、最初のチップをホストに接続し、2番目のチップを最初のチップのダウンストリームポートの1つに接続して、デイジーチェーン接続する必要があります。これにより、ユーザーに残されるポートは7つだけになり、最初のチップに3つ、2つ目のチップに4つ、つまり共通の7ポートハブになります。
USBは、プラグアンドプレイであり、接続するときにこのことを知る必要はありません。OSは各ハブとデバイスの電力バジェットを追跡し、接続が機能しないかどうか、およびセルフパワーポートを使用する必要があるかどうかを通知します。
編集:USBパケットは次のようになります。
トークン: パケットID:8ビット アドレス:7ビット エンドポイント:4ビット CRC:5ビット フレームの開始: パケットID:8ビット フレーム番号:11ビット CRC:5ビット データパケット: パケットID:8ビット データ:0-1023バイト CRC:16ビット ハンドシェーク: パケットID:8ビット
アドレスは7ビットしかないため、バス全体で128のデバイスしか使用できません(それぞれ7ビットでオンとオフを切り替えることができ、可能なビットの組み合わせは合計128しかありません)。これにはあなたのコンピュータが含まれるので、あなたがそれに接続できる他の127のものを残します。
したがって、USB3チップセットではハードデバイス数が32のデバイス制限(実際には96エンドポイントの制限)により、USB3チップセットでは実際には30デバイス程度の制限に達することがわかります。
私もこの問題に対処し、実際の問題と解決策を見つけるのにしばらく時間がかかりました。これは長いページなので、そこで読むことができますhttp://marc.merlins.org/perso/linux/post_2018-12-20_Getting-Around-USB3-xhci-32-Device-Limit- Max-number-of- devices-this-xHCI-host-supports-is-32 .html
基本的に、これらのこと
を要約すると、1)USB3には96エンドポイントの制限があります(32デバイスのみに変換されます)
2)ハブが原因でさらにエンドポイントが失われ、USB2ハブにUSB2ケーブルを使用すると、いくつかのスロットが戻ります
3)より一般的には、USB3をそれなしで実行できる場合は無効にする必要があります(USB3カーネルドライバーを削除するか、できれば簡単に、BIOSでUSB3を無効にします)。USB2モードでUSB3チップを使用しても効果がない場合は、USB3を無効にして、マザーボードがポートをそのエンドポイント制限のないUSB2コントローラに再ルーティングするようにする必要があります4)USB3を無効にできない場合は、USB2のみのPCIeカードを取得しますそしてそれは本当にあなたに120台のデバイスを与えるでしょう。
その他のリソース:https :
//www.spinics.net/lists/linux-usb/msg175224.html
https://forums.intel.com/s/question/0D50P00004905stSAA/hardware-limitations-on-usb-endpoints-xhci? language = en_US