Teoricamente, você pode ter até 127 dispositivos conectados a um PC host, mas existem limitações práticas de energia e largura de banda de dados que impediriam isso. Esses 127 dispositivos podem ser organizados em uma rede hierárquica de hubs de até sete níveis, contando o host do PC como nível 1 e o dispositivo mais distante como nível 7. O PC fornece 5 unidades de energia para um hub. Cada unidade é de 100 mA e cada porta requer um mínimo de 1 unidade. O hub em si consome um, deixando 4 unidades para até 4 portas. Então você nunca encontrará um hub alimentado por barramento com mais de quatro portas.
Os hubs alimentados por barramento têm uma limitação adicional. Como cada porta tem apenas uma única unidade de energia, ela só pode se conectar a um único dispositivo. Você não pode conectá-los a outro hub para expansão porque esse hub requer 5 unidades adicionais. E nem todos os dispositivos podem funcionar em uma única unidade. Um dispositivo de baixa potência como um mouse funcionará, mas um dispositivo de alta potência pode exigir até 5 unidades. Os dispositivos USB de alta potência funcionarão somente quando conectados diretamente a um host de PC ou a um hub auto-alimentado que possa fornecer 5 unidades à porta.
Quando você conecta um dispositivo, o PC consulta o dispositivo em busca de seus recursos e requisitos. Assim, por exemplo, o PC sabe que está conectado a um hub alimentado por barramento de 4 portas, o que significa que cada porta só pode conduzir uma unidade. Se você tentar conectar um dispositivo de alta potência a esse hub, o sistema operacional exibirá uma mensagem de erro e se recusará a ativar o dispositivo.
Os hubs alimentados por barramento geralmente são uma má ideia devido a essas limitações e são destinados principalmente para uso em dispositivos móveis, e não para desktop.
Por outro lado, se os dispositivos que estão conectados à porta forem eles próprios auto-alimentados, eles podem não precisar de mais do que uma unidade do hub. Por exemplo, unidades de disco externas têm sua própria energia, portanto devem funcionar bem em um hub alimentado por barramento.
Um hub auto-alimentado será capaz de fornecer 5 unidades para cada porta, permitindo dispositivos de alta potência e mais níveis de hubs. Assim, você poderia conectar um hub auto-alimentado de 7 portas e, em seguida, mais sete hubs de 7 portas, oferecendo 49 portas disponíveis na quarta camada.
Alguns hubs auto-alimentados permitem que você os use também no modo de barramento, mas se você tentar conectar muitos dispositivos, o sistema operacional fornecerá uma mensagem de erro.
A maioria dos chips controladores de hub tem 4 portas, então você geralmente vê hubs de 4 portas. Quando eles querem construir um hub maior, eles usam apenas dois chips de 4 portas. Mas eles precisam vinculá-los com o primeiro chip conectado ao host e o segundo conectado a uma das portas a jusante do primeiro chip. Isso deixa apenas sete portas para o usuário, três no primeiro chip e quatro no segundo - daí o hub comum de 7 portas.
O USB é plug-and-play no sentido de que você não precisa saber nada disso quando conecta as coisas. O sistema operacional acompanha o orçamento de energia de cada hub e dispositivo, informa se a conexão não funcionará e se você precisa usar uma porta com alimentação própria.
edit: os pacotes USB são assim:
Token: Packet ID: 8 bits Address: 7 bits Endpoint: 4 bits CRC: 5 bits Start of frame: Packet ID: 8 bits Frame Number: 11 bits CRC: 5 bits Data Packet: Packet ID: 8 bits Data: 0-1023 bytes CRC: 16 bits Handshake: Packet ID: 8 bits
Como o endereço é de apenas 7 bits, você pode ter apenas 128 dispositivos em todo o barramento (com 7 bits que podem estar ligados e desligados, existem apenas 128 combinações totais de bits possíveis). Isso inclui o seu computador, deixando 127 outras coisas que você pode anexar a ele.