Fra oracle wiki (USB-kontroller):

USB-vertskontrolleren har et innebygd knutepunkt kalt rotnavet. Portene som er synlige på systemets bakpanel er portene til rotnavet.

Det jeg forstår av dette er at rotnavet bare er et punkt der alle usb-hubber kommer sammen.

-Er rotnavet et stykke maskinvare, eller er det et begrep som brukes til å betegne det punktet hvor alle data fra usb-enheter kommer sammen?

-Det er forskjellige typer grensesnitt mellom rotnavet og kontrolleren (UHCI, OHCI, EHCI), er det da riktig å tenke på kontrolleren som en «mellommann» mellom rotnavet og den faktiske datamaskinen?

Svar

Du kan ha mer enn ett rotnav, så nei, det er ikke poenget der alle navene kommer sammen. Det kan være mer praktisk å tenke på rotnav som et av de mange utgangspunktene for oppregning.

Rotnav er et stykke maskinvare. Mer spesifikt er det en del av vertskontrolleren (som i seg selv kan være separat brikke eller en del av brikkesettet).

Grensesnittene som du nevner er Host Controller Interfaces (HCI), dvs. grensesnitt for vertskontroller, ikke root hub. I utgangspunktet er de registre som programvaren kan få tilgang til for å kommunisere med vertskontrolleren.

Fra ovenstående tror jeg ikke begrepet «mellommann» er aktuelt slik du avbildet det.

OPPDATERING :

Her er en enkel analog som illustrerer forholdet:

Et kjøretøy er en kontroller. Det har et grensesnitt (pedaler) som programvare (driver) kan bruke til å betjene kontrolleren. Den har også en motor (rotnav) som utfører en viktig del av bilfunksjonaliteten.

Du kan si at sjåføren bruker en motor ved hjelp av pedaler, og det ville være riktig, men ikke presis, fordi det er ganske mange deler mellom pedalene og en motor. Disse delene tilsvarer interne logiske kretsløp i kontrolleren.

Så, mer presis uttalelse ville være «fører styrer bilen ved hjelp av pedaler, styring hjul og en pinne, og siden motoren er en del av bilen, gjør den jobben sin i hele kjøreprosessen. «I et datamaskintilstand som vil oversettes til» programvare styrer vertskontroller som bruker HCI, og siden root hub er en del av vertskontrolleren, gjør den jobben sin med å støtte USB-kommunikasjon «.

Kommentarer

  • Så Host Controller er en brikke som kommuniserer med programvare gjennom vertskontrolleren grensesnitt (HCI) og at brikken er også koblet til en eller flere rotnav slik at data kan overføres mellom USB-enheten og kontrolleren (og fra kontroller til programvare)?
  • Du har nesten fått det riktig. Vertkontrolleren er ikke " koblet til " til rotnav, rotnavet er en del av kontrolleren. Og siden PC-er vanligvis har flere kontrollere (innebygd i brikkesett samt separate brikker på hovedkortet) har du i dag flere rotnav i systemet ditt. Jeg ' Jeg oppdaterer svaret med bedre forklaring.

Svar

En vanlig USB-hub er en USB enhet som kan dele USB-trafikk fra en (oppstrøms) lenke til flere nedstrøms porter, og mux den kommende trafikken fra mange porter til en oppstrøms. For å gjøre det, har hvert hub et spesielt kontrollrør som styrer portfunksjoner som koble til / koble fra / suspendere / gjenoppta / deaktivere osv. Disse funksjonene styres via USB-type kontrolltransaksjoner, som blir dirigert til hver spesielle port, alt ved hjelp av USB-pakke -tegnet protokoll. Denne protokollen fungerer opp til et hvilket som helst gyldig nivå av hub-stackup, og hver port har veldefinerte statusbiter i USB-svar.

En rotnav utfører lignende funksjon, bortsett fra (a) oppstrøms er tilknyttet direkte til verten kontrollerrør / -buss, og (b) forskjellige statusbiter for hver porter blir kartlagt direkte i 32-bitersregistre i verts-PCI-plass. Dette er en maskinvare.

For å opprettholde bitvis kompatibilitet mellom ALLE porter i USB-treet og gi universell tilgang til alle porter, har vertskontrollerdriverprogramvaren vanligvis et spesielt lag som konverterer de registerbaserte portkontrollstatusene (PORTSC ) i standard USB-port statusformat. Dette er liksom illustrert i følgende Microsoft-dokumentasjon .

skriv inn bildebeskrivelse her

der det sirklede laget, tror jeg, gir denne portstatusoversettelsen. Etter det kjenner systemet ingen forskjell mellom en rotnavport og en hvilken som helst vanlig hubport.

Svar

Dette er en implementeringsdetalj , for det meste.

USB-hubber implementerer innsettings- / fjerningsdeteksjon, portstrømkontroll og oppstrøms siden av opptellingsprotokollen som brukes før enheten tildeles et nummer.

Den samme funksjonaliteten er nødvendig for hver USB-nedstrømsport, enten den er koblet direkte til kontrolleren eller en del av en separat enhet, og det ville være dumt å ha to forskjellige spesifikasjoner.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *