Dal wiki oracle (controller usb):
Il controller host USB ha un hub incorporato chiamato hub principale. Le porte visibili nel pannello posteriore del sistema sono le porte dellhub principale.
Quello che ho capito da questo è che lhub principale semplicemente è un punto in cui tutti gli hub USB si uniscono.
-Lhub principale è un pezzo di hardware o è un termine usato per indicare il punto in cui tutti i dati provenienti dai dispositivi USB si uniscono?
-Ci sono diversi tipi di interfacce tra lhub principale e il controller (UHCI, OHCI, EHCI), è quindi corretto pensare al controller come un “intermediario” tra lhub principale e il computer effettivo?
Risposta
Puoi avere più di un hub radice, quindi no, non è il punto in cui tutti gli hub si uniscono. Potrebbe è più conveniente pensare allhub di root come uno dei numerosi punti di partenza per lenumerazione.
Lhub di root è un pezzo di hardware. Più specificamente, è una parte del controller host (che a sua volta può essere separato chip o una parte di chipset).
Le interfacce che hai menzionato sono Host Controller Interfaces (HCI), cioè interfacce del controller host, non hub principale. Fondamentalmente sono registri a cui il software può accedere per comunicare con il controller host.
Da quanto sopra non penso che il termine “intermediario” sia applicabile come lhai immaginato.
AGGIORNAMENTO :
Ecco un semplice analogo per illustrare le relazioni:
Un veicolo è un controller, ha uninterfaccia (pedali) che il software (conducente) può utilizzare per azionare il controller. Ha anche un motore (hub principale) che esegue parte essenziale della funzionalità dellauto.
Puoi dire che il guidatore aziona un motore usando i pedali, e sarebbe corretto ma non preciso, perché ci sono parecchie parti tra i pedali e un motore. Queste parti corrispondono ai circuiti logici interni del controller.
Quindi, laffermazione più precisa sarebbe “il guidatore controlla lauto usando i pedali, sterzo ruota e un bastone, e poiché il motore fa parte dellauto, svolge la sua parte di lavoro nellintero processo di guida “. In termini informatici che si tradurrebbe in” il software controlla il controller host che utilizza HCI e poiché lhub principale fa parte del controller host, svolge la sua parte di lavoro nel supportare la comunicazione USB “.
Commenti
- Quindi il controller host è un chip che comunica con il software tramite linterfaccia del controller host (HCI) e quel chip è anche collegato a uno o più hub di root in modo che i dati possano essere passati tra il dispositivo USB e il controller (e dal controller al software)?
- Hai quasi capito bene. Il controller host non è " connesso " agli hub principali, lhub principale fa parte del controller. E poiché i PC di solito hanno diversi controller (integrati nel chipset e chip separati sulla scheda madre) oggigiorno hai diversi hub di root nel tuo sistema. ' aggiornerò la risposta con una spiegazione migliore.
Risposta
Un normale hub USB è un dispositivo che può dividere il traffico USB da un collegamento (upstream) a diverse porte downstream, e mux il traffico imminente da molte porte in uno a monte. Per fare ciò, ogni hub ha un tubo di controllo speciale che controlla le funzioni della porta come connetti / disconnetti / sospendi / riprendi / disabilita ecc. Queste funzioni sono controllate tramite transazioni di controllo di tipo USB, che sono dirette a ciascuna porta particolare, tutte utilizzando il pacchetto USB -token protocollo. Questo protocollo funziona fino a qualsiasi livello valido di stackup hub e ogni porta ha bit di stato ben definiti allinterno delle risposte USB.
Un hub root svolge una funzione simile, tranne (a) lupstream è associato direttamente allhost controller pipe / bus e (b) i vari bit di stato di ciascuna porta sono mappati direttamente in registri a 32 bit nello spazio PCI host. Questo è un pezzo di hardware.
Tuttavia, per mantenere la compatibilità in termini di bit tra TUTTE le porte nella struttura USB e fornire laccesso universale a tutte le porte, il software del driver del controller host di solito ha uno strato speciale che converte gli stati di controllo delle porte basati sui registri (PORTSC ) nel formato di stato della porta USB standard. Questo è come illustrato nella seguente documentazione Microsoft .
dove il livello cerchiato, credo, fornisce questa traduzione dello stato della porta. Dopodiché il sistema non conosce alcuna differenza tra una porta hub principale e qualsiasi porta hub regolare.
Risposta
Questo è un dettaglio di implementazione , per la maggior parte.
Gli hub USB implementano il rilevamento dellinserimento / rimozione, il controllo dellalimentazione delle porte e il lato a monte del protocollo di enumerazione utilizzato prima che al dispositivo venga assegnato un numero.
La stessa funzionalità è richiesta per ogni porta USB downstream, sia che sia collegata direttamente al controller o che faccia parte di un dispositivo separato, e sarebbe sciocco avere due specifiche diverse.