Fra oracle wiki (usb-controller):

USB-værtscontrolleren har en indbygget hub kaldet rodnavet. De porte, der er synlige på systemets bagpanel, er porte til rodhubben.

Hvad jeg forstår af dette er, at rodhubet kun er er et punkt, hvor alle usb-hubs kommer sammen.

-Er rodhubet et stykke hardware, eller er det et udtryk, der bruges til at betegne det punkt, hvor alle data fra usb-enheder kommer sammen?

-Der er forskellige typer grænseflader mellem rodnavet og controlleren (UHCI, OHCI, EHCI), er det så korrekt at tænke på controlleren som en “mellemmand” mellem rodnavet og den aktuelle computer?

Svar

Du kan have mere end en rodhub, så nej, det er ikke det punkt, hvor alle hubber mødes. Det kan være mere bekvemt at tænke på root hub som et af de mange startpunkter for optælling.

Root hub er et stykke hardware. Mere specifikt er det en del af værtscontroller (som i sig selv kan være enten separat chip eller en del af chipset).

Grænsefladerne som du nævner er Host Controller Interfaces (HCI), dvs. grænseflader til host controller, ikke root hub. Dybest set er de registre, som software kan få adgang til for at kommunikere med værtscontroller.

Fra ovenstående tror jeg ikke, at begrebet “mellemmand” kan anvendes, som du afbilledet det.

UPDATE :

Her er en enkel analog, der illustrerer forholdet:

Et køretøj er en controller.Den har en grænseflade (pedaler), som software (driver) kan bruge til at betjene controlleren. Den har også en motor (rodnav), der udfører en væsentlig del af bilens funktionalitet.

Du kan sige, at føreren betjener en motor ved hjælp af pedaler, og det ville være korrekt, men ikke præcis, fordi der er en hel del mellem pedalerne og en motor. Disse dele svarer til det interne logiske kredsløb i controlleren.

Så en mere præcis erklæring ville være “føreren styrer bilen ved hjælp af pedaler, styring hjul og en pind, og da motoren er en del af bilen, udfører den sit job i hele køreprocessen. “På computerudtryk, der ville oversættes til” software styrer værtscontroller, der bruger HCI, og da root hub er en del af værtscontrolleren, deler den sit job med at understøtte USB-kommunikation “.

Kommentarer

  • Så Host Controller er en chip, der kommunikerer med software via vært controller interface (HCI), og at chip er også forbundet til en eller flere rodhubs, så data kan overføres mellem USB-enhed og controller (og fra controller til software)?
  • Du har næsten fået det rigtigt. Værtscontroller er ikke " tilsluttet " til rodhubs, rodnavet er en del af controlleren. Og da pcer normalt har flere controllere (indbygget i chipsæt såvel som separate chips på bundkortet), har du i dag flere rodhubs i dit system. Jeg ' Jeg opdaterer svaret med bedre forklaring.

Svar

En almindelig USB-hub er en USB enhed , der kan opdele USB-trafik fra et (opstrøms) link til flere downstream-porte, og mux den kommende trafik fra mange havne til en opstrøms. For at gøre dette har hver hub specielt kontrolrør, der styrer portfunktioner såsom tilslutning / frakobling / suspendering / genoptagelse / deaktivering osv. Disse funktioner styres via USB-type kontroltransaktioner, der er rettet til hver enkelt port, alt sammen ved hjælp af USB-pakke -token-protokol. Denne protokol fungerer op til ethvert gyldigt niveau af hub-stackup, og hver port har veldefinerede statusbits inden for USB-svar.

En root-hub udfører en lignende funktion, undtagen (a) upstream er tilknyttet direkte til værten controller rør / bus, og (b) forskellige statusbits i hver porte kortlægges direkte i 32-bit-registre i værts-PCI-plads. Dette er et stykke hardware.

For at opretholde bitvis kompatibilitet mellem ALLE porte i USB-træet og give universel adgang til alle porte har værtscontrollerdriversoftwaren normalt et specielt lag, der konverterer de registerbaserede portkontrolstatusser (PORTSC ) i standard USB-port statusformat. Dette er slags illustreret i følgende Microsoft-dokumentation .

indtast billedbeskrivelse her

hvor det cirklede lag, tror jeg, giver denne portstatusoversættelse. Derefter kender systemet ingen forskel mellem en root hub-port og en hvilken som helst almindelig hub-port.

Svar

Dette er en implementeringsdetalje , for det meste.

USB-hubs implementerer detektion af indsættelse / fjernelse, styring af portstrøm og den opstrøms side af optællingsprotokollen, der bruges, før enheden tildeles et nummer.

Den samme funktionalitet er påkrævet for hver USB-downstream-port, uanset om den er direkte tilsluttet controlleren eller en del af en separat enhed, og det ville være fjollet at have to forskellige specifikationer.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *