USB-programvarestruktur
Sep 01, 2022
Bussgrensesnitt
USB-buss-grensesnittet håndterer sammenkoblingen mellom det elektriske laget og protokolllaget. Fra sammenkoblingsperspektivet leveres lignende bussgrensesnitt av enheten og verten på samme tid, for eksempel seriell grensesnittmaskin (SIE). USB-bussgrensesnittet realiseres av hovedkontrolleren.
USB-systemet bruker hovedkontrolleren til å administrere dataoverføringen mellom verten og USB-enheten. Grensesnittet mellom den og hovedkontrolleren avhenger av maskinvaredefinisjonen til hovedkontrolleren. Samtidig er USB-systemet også ansvarlig for å administrere USB-ressurser, som båndbredde og bussenergi, som gjør det mulig for kunder å få tilgang til USB. USB-systemet har også tre grunnleggende komponenter:
Vertskontrollerdriver (HCD) denne kan tilordne forskjellige vertskontrollerenheter til USB-systemet. Grensesnittet mellom HCD og USB kalles HCDI. Den spesifikke HCDI er definert av operativsystemet som støtter forskjellige hovedkontrollere. Den universelle masterkontrollerdriveren (uhcd) er nederst i den myke strukturen, og den administrerer og kontrollerer masterkontrolleren. Uhcd kommuniserer med og kontrollerer USB-vertskontrolleren, og den er skjult fra andre deler av systemprogramvaren. Det høyeste laget i systemprogramvaren kommuniserer med hovedkontrolleren gjennom programvaregrensesnittet til uhcd.
USB-driver (usbd), som er basert på uhcd-driver, gir grensesnitt på drivernivå for å møte kravene til eksisterende enhetsdriverdesign. Usbd gir en dataoverføringsarkitektur i form av I/O-forespørselspakker (IRP), som består av kravene for å overføre data gjennom spesifikke rør. I tillegg får usbd klienten til å fremstå som en abstraksjon av enheten for å lette abstraksjon og administrasjon. Som en del av abstraksjonen har usbd en standard pipeline. Gjennom hvilken alle USB-enheter kan nås for standard USB-kontroll. Dette standardrøret beskriver en logisk kanal for kommunikasjon mellom usbd-en og USB-enheten.
Vertsprogramvare
I noen operativsystemer leveres ikke USB-systemprogramvare. Denne programvaren brukes opprinnelig til å gi konfigurasjonsinformasjon og lastestruktur til enhetsdrivere. I disse operativsystemene bruker enhetsdriveren grensesnittet som tilbys av applikasjonen i stedet for direkte tilgang til USBDI-strukturen (USB Driver Interface).
USB-klientprogramvare
Den er plassert på det høyeste nivået av programvarestrukturen og er ansvarlig for å håndtere spesifikke USB-enhetsdrivere. Klientlaget beskriver alle programvareportaler som virker direkte på enheten. Når enheten oppdages av systemet, vil disse klientprogrammene virke direkte på den perifere maskinvaren. Denne delte funksjonen plasserer USB-systemprogramvaren mellom klienten og enheten, som må behandles av klientprogrammet i henhold til enhetsbildet som dannes av usbd på klienten.
Hvert lag av verten har følgende funksjoner:
Oppdag tilkoblede og fjernede USB-enheter.
Administrer dataflyten mellom verten og USB-enheten.
Tilkobling USB-status og aktivitetsstatistikk.
Kontroller det elektriske grensesnittet mellom hovedkontrolleren og USB-enheten, inkludert begrenset energiforsyning.
HCD gir en abstraksjon av hovedkontrolleren og en abstraksjon av hovedkontrollerens perspektiv på data som overføres via USB. Usbd gir en abstraksjon av USB-enheter og dataoverføring mellom usbd-kunder og USB-funksjoner. USB-systemet fremmer dataoverføring mellom kunder og funksjoner, og fungerer som et kontrollpunkt for det standardiserte grensesnittet til USB-enheter. USB-systemet gir mulighet for bufferhåndtering og lar dataoverføring synkroniseres med behovene til kunder og funksjoner.







