Do wiki oracle (controlador usb):
O controlador de host USB tem um hub integrado denominado hub raiz. As portas visíveis no painel traseiro do sistema são as portas do hub raiz.
O que entendi disso é que o hub raiz apenas é um ponto em que todos os hubs USB se juntam.
-O hub raiz é uma peça de hardware ou é um termo usado para denotar o ponto onde todos os dados de dispositivos USB se unem?
– Existem diferentes tipos de interfaces entre o hub raiz e o controlador (UHCI, OHCI, EHCI). É correto pensar no controlador como um “intermediário” entre o hub raiz e o computador real?
Resposta
Você pode ter mais de um hub raiz, então não, não é o ponto em que todos os hubs se unem. Pode seja mais conveniente pensar no hub raiz como um dos vários pontos de partida para enumeração.
O hub raiz é uma peça de hardware. Mais especificamente, é uma parte do controlador de host (que pode ser separado chip ou uma parte do chipset).
As interfaces que você mencionou são interfaces de controlador de host (HCI), ou seja, interfaces de controlador de host, não hub raiz. Basicamente, eles são registros que o software pode acessar para se comunicar com o controlador de host.
Do exposto, não acho que o termo “intermediário” seja aplicável como você o imaginou.
ATUALIZAÇÃO :
Aqui está um análogo simples para ilustrar as relações:
Um veículo é um controlador. Ele tem uma interface (pedais) que o software (motorista) pode usar para operar o controlador. Ele também tem um motor (hub raiz) que executa parte essencial da funcionalidade do carro.
Você pode dizer que o motorista opera um motor usando pedais, e isso seria correto, mas não preciso, porque há algumas partes entre os pedais e um motor. Essas partes correspondem aos circuitos lógicos internos do controlador.
Portanto, uma declaração mais precisa seria “o motorista controla o carro usando pedais, direção roda e um manche, e como o motor faz parte do carro, ele cumpre o seu papel em todo o processo de direção ”. Em termos de computador, isso se traduziria em“ o software controla controlador de host usando HCI e, como o hub raiz faz parte do controlador de host, ele compartilha seu trabalho no suporte à comunicação USB “.
Comentários
- Então o Host Controller é um chip que se comunica com o software por meio da interface do controlador host (HCI) e esse chip também é conectado a um ou mais hubs raiz para que os dados possam ser passados entre o dispositivo USB e o controlador (e do controlador para o software)?
- Você quase acertou. O controlador de host não está " conectado " aos hubs raiz, o hub raiz faz parte do controlador. E como os PCs geralmente têm vários controladores (integrados ao chipset e também chips separados na placa-mãe), hoje em dia você tem vários hubs raiz em seu sistema. Eu ' atualizarei a resposta com uma explicação melhor.
Resposta
Um hub USB normal é um dispositivo USB que pode dividir o tráfego USB de um link (upstream) para várias portas downstream, e mux o tráfego próximo de muitas portas em um upstream. Para fazer isso, cada hub tem um tubo de controle especial que controla as funções da porta, como conectar / desconectar / suspender / retomar / desativar, etc. Essas funções são controladas por meio de transações de controle do tipo USB, que são direcionadas a cada porta específica, todas usando um pacote USB protocolo token. Este protocolo funciona em qualquer nível válido de empilhamento de hub, e cada porta tem bits de status bem definidos nas respostas USB.
Um hub raiz desempenha uma função semelhante, exceto (a) o upstream está associado diretamente ao host canal / barramento do controlador e (b) vários bits de status de cada porta são mapeados diretamente em registros de 32 bits no espaço PCI do host. Esta é uma peça de hardware.
No entanto, para manter a compatibilidade bit a bit entre TODAS as portas na árvore USB e fornecer acesso universal a todas as portas, o software do driver do controlador do host geralmente tem uma camada especial que converte os status de controle de porta com base em registro (PORTSC ) no formato de status da porta USB padrão. Isso é meio que ilustrado na seguinte documentação da Microsoft .
onde a camada circulada, acredito, fornece a tradução do status da porta. Depois disso, o sistema não sabe nenhuma diferença entre uma porta de hub raiz e qualquer porta de hub regular.
Resposta
Este é um detalhe de implementação , em geral.
Os hubs USB implementam a detecção de inserção / remoção, o controle de energia da porta e o lado upstream do protocolo de enumeração que é usado antes de o dispositivo receber um número.
A mesma funcionalidade é necessária para cada porta downstream USB, esteja diretamente conectada ao controlador ou parte de um dispositivo separado, e seria bobagem ter duas especificações diferentes.