Din oracle wiki (controler USB):
Controlerul gazdă USB are un hub încorporat numit hub rădăcină. Porturile care sunt vizibile la panoul din spate al sistemului sunt porturile hub-ului rădăcină.
Ceea ce înțeleg de aici este că hub-ul rădăcină se limitează la este un punct în care toți hub-urile USB se unesc.
-Este hub-ul rădăcină o componentă hardware sau este un termen folosit pentru a desemna punctul în care toate datele de pe dispozitivele USB se unesc?
-Există diferite tipuri de interfețe între hub-ul rădăcină și controler (UHCI, OHCI, EHCI), este corect să te gândești la controler ca la un „intermediar” între hub-ul rădăcină și computerul real?
Răspuns
Puteți avea mai mult de un hub rădăcină, deci nu, nu este punctul în care toți hub-urile se reunesc. fi mai convenabil să te gândești la hub-ul rădăcină ca la unul dintre mai multe puncte de pornire pentru enumerare.
Hubul rădăcină este o piesă de hardware. Mai precis, este o parte a controlerului gazdă (care în sine poate fi fie separat chip sau o parte din chipset).
Interfețele pe care le menționați sunt Host Controller Interfaces (HCI), adică interfețele controlerului gazdă, nu hub-ul rădăcină. Practic sunt registre pe care software-ul le poate accesa pentru a comunica cu controlerul gazdă.
Din cele de mai sus, nu cred că termenul „intermediar” este aplicabil așa cum l-ați imaginat.
ACTUALIZARE :
Iată un analog simplu pentru a ilustra relațiile:
Un vehicul este un controler. Are o interfață (pedale) pe care software-ul (șoferul) o poate folosi pentru a acționa controlerul. De asemenea, are un motor (hub rădăcină) care efectuează o parte esențială a funcționalității mașinii.
Puteți spune că șoferul acționează un motor folosind pedale și ar fi corect, dar nu precise, deoarece există destul de puține părți între pedale și un motor. Aceste părți corespund circuitelor logice interne ale controlerului.
Deci, o afirmație mai precisă ar fi „șoferul controlează mașina folosind pedale, direcție roată și un băț și, întrucât motorul face parte din mașină, își îndeplinește rolul în întregul proces de conducere „. Într-un computer, termenii care s-ar traduce prin” software controlează controler gazdă care utilizează HCI și, din moment ce hub-ul rădăcină face parte din controlerul gazdă, își împarte sarcina în sprijinirea comunicării USB „.
Comentarii
- Deci Host Controller este un cip care comunică cu software prin interfața host controller (HCI) și acel cip este, de asemenea, conectat la unul sau mai multe hub-uri rădăcină, astfel încât datele pot fi transmise între dispozitivul USB și controler (și de la controler la software)?
- Aproape că ai înțeles. Controlerul gazdă nu este " conectat " la hub-urile rădăcină, hub-ul rădăcină face parte din controler. Și întrucât computerele au de obicei mai multe controlere (încorporate în chipset, precum și cipuri separate pe placa de bază) în zilele noastre aveți mai mulți hub-uri rădăcină în sistemul dvs. ' Voi actualiza răspunsul cu o explicație mai bună.
Răspuns
Un hub USB obișnuit este un dispozitiv USB care poate împărți traficul USB de la o legătură (în amonte) la mai multe porturi din aval, și mux traficul viitoare din mai multe porturi într-unul în amonte. Pentru a face acest lucru, fiecare hub are o conductă specială de control care controlează funcțiile portului, cum ar fi conectarea / deconectarea / suspendarea / reluarea / dezactivarea etc. Aceste funcții sunt controlate prin tranzacții de control de tip USB, care sunt direcționate către fiecare port special, toate folosind pachete USB -protocol jeton. Acest protocol funcționează până la orice nivel valid de stivuire a hub-ului și fiecare port are biți de stare bine definiți în cadrul răspunsurilor USB.
Un hub rădăcină îndeplinește o funcție similară, cu excepția (a) fluxului din amonte este asociat direct cu gazda conducta / magistrala controlerului și (b) diferiți biți de stare ai fiecărui port sunt mapați direct în registre pe 32 de biți din spațiul PCI gazdă. Aceasta este o piesă de hardware.
Cu toate acestea, pentru a menține compatibilitatea bit între toate porturile din arborele USB și a oferi acces universal la toate porturile, software-ul driverului controlerului gazdă are de obicei un strat special care convertește stările de control ale porturilor bazate pe registru (PORTSC ) în format standard de stare a portului USB. Acest lucru este ilustrat în următoarea documentație Microsoft .
unde, cred, stratul încercuit oferă această traducere a stării portului. După aceea, sistemul nu cunoaște nicio diferență între un port hub rădăcină și orice port hub obișnuit.
Răspuns
Acesta este un detaliu de implementare , în majoritatea cazurilor.
Huburile USB implementează detectarea inserării / eliminării, controlul puterii portului și partea din amonte a protocolului de enumerare care este utilizat înainte ca dispozitivului să i se atribuie un număr.
Aceeași funcționalitate este necesară pentru fiecare port USB din aval, indiferent dacă este conectat direct la controler sau la o parte a unui dispozitiv separat și ar fi o prostie să ai două specificații diferite.