Van de oracle wiki (usb-controller):
De USB-hostcontroller heeft een embedded hub genaamd de root hub. De poorten die zichtbaar zijn op het achterpaneel van het systeem zijn de poorten van de root-hub.
Wat ik hieruit begrijp is dat de root-hub slechts is een punt waar alle usb-hubs bij elkaar komen.
-Is de root-hub een stuk hardware, of is het een term die wordt gebruikt om het punt aan te duiden waar alle gegevens van usb-apparaten samenkomen?
-Er zijn verschillende soorten interfaces tussen de root-hub en de controller (UHCI, OHCI, EHCI), is het dan correct om de controller te beschouwen als een “tussenpersoon” tussen de root-hub en de eigenlijke computer?
Answer
Je kunt meer dan één root-hub hebben, dus nee, het is niet het punt waar alle hubs samenkomen. het is handiger om root-hub te beschouwen als een van de verschillende startpunten voor opsomming.
Root-hub is een stuk hardware. Meer specifiek is het een onderdeel van de hostcontroller (die zelf afzonderlijk kan zijn chip of een deel van chipset).
De interfaces die u noemt zijn Host Controller Interfaces (HCI), d.w.z. interfaces van hostcontroller, niet root-hub. In feite zijn het registers waartoe de software toegang heeft om te communiceren met de hostcontroller.
Uit het bovenstaande denk ik niet dat de term “tussenpersoon” van toepassing is zoals u die voorstelt.
UPDATE :
Hier is een eenvoudig analoog om relaties te illustreren:
Een voertuig is een controller Het heeft een interface (pedalen) die software (bestuurder) kan gebruiken om de controller te bedienen. Het heeft ook een motor (root-hub) die een essentieel deel van de autofunctionaliteit uitvoert.
Je kunt zeggen dat de bestuurder een motor bedient met pedalen, en dat zou correct zijn, maar niet precies, omdat er nogal wat onderdelen tussen de pedalen en een motor zitten. Deze onderdelen komen overeen met het interne logische circuit van de controller.
Dus, preciezer zou zijn: “bestuurder bestuurt de auto met pedalen, wiel en een stok, en aangezien de motor deel uitmaakt van de auto, doet hij zijn werk om deel te nemen aan het hele rijproces “. In computertermen zou dat zich vertalen in” software bestuurt de hostcontroller die HCI gebruikt, en aangezien root-hub deel uitmaakt van de hostcontroller, doet het zijn taak om USB-communicatie te ondersteunen “.
Opmerkingen
- Dus de hostcontroller is een chip die communiceert met software via de hostcontrollerinterface (HCI) en die chip is ook verbonden met een of meer root-hubs zodat gegevens kunnen worden uitgewisseld tussen usb-apparaat en controller (en van controller naar software)?
- Je hebt het bijna goed. Hostcontroller is niet " " verbonden met roothubs, de roothub maakt deel uit van de controller. En aangezien pcs meestal meerdere controllers hebben (zowel ingebouwd in de chipset als aparte chips op het moederbord), heb je tegenwoordig meerdere root-hubs in je systeem. Ik ' werk het antwoord bij met een betere uitleg.
Antwoord
Een gewone USB-hub is een USB -apparaat dat USB-verkeer kan splitsen van één (upstream) link naar verschillende downstream-poorten, en het aankomende verkeer van vele havens in één stroomopwaarts samenvoegen. Om dit te doen, heeft elke hub een speciale besturingspijp die poortfuncties bestuurt, zoals verbinden / verbreken / onderbreken / hervatten / uitschakelen enz. Deze functies worden bestuurd via USB-type besturingstransacties, die naar elke specifieke poort worden geleid, allemaal met behulp van een USB-pakket -token protocol. Dit protocol werkt tot elk geldig niveau van hub-stackup, en elke poort heeft goed gedefinieerde statusbits binnen USB-responsen.
Een root-hub voert een vergelijkbare functie uit, behalve (a) de upstream is direct geassocieerd met host controller pipe / bus, en (b) verschillende statusbits van elke poort worden direct toegewezen aan 32-bits registers in host PCI-ruimte. Dit is een stuk hardware.
Om bitsgewijze compatibiliteit tussen ALLE poorten in de USB-structuur te behouden en universele toegang tot alle poorten te bieden, heeft de stuurprogrammasoftware van de hostcontroller meestal een speciale laag die de registergebaseerde poortcontrolestatussen converteert (PORTSC ) naar het standaard statusformaat van de USB-poort. Dit wordt min of meer geïllustreerd in de volgende Microsoft-documentatie .
waar de omcirkelde laag, naar ik meen, deze poortstatusvertaling geeft. Daarna kent het systeem geen verschil tussen een root-hubpoort en een gewone hub-poort.
Answer
Dit is een implementatiedetail , voor het grootste gedeelte.
USB-hubs implementeren invoeg- / verwijderingsdetectie, poortstroomregeling en de stroomopwaartse zijde van het opsommingsprotocol dat wordt gebruikt voordat het apparaat een nummer krijgt toegewezen.
Dezelfde functionaliteit is vereist voor elke USB-downstreampoort, of deze nu rechtstreeks op de controller is aangesloten of op een afzonderlijk apparaat is aangesloten, en het zou dom zijn om twee verschillende specificaties te hebben.