USB-mjukvarustruktur
Sep 01, 2022
Buss gränssnitt
USB-bussgränssnittet hanterar sammankopplingen mellan det elektriska lagret och protokolllagret. Ur sammankopplingsperspektiv tillhandahålls liknande bussgränssnitt av enheten och värden samtidigt, såsom seriell gränssnittsmaskin (SIE). USB-bussgränssnittet realiseras av huvudstyrenheten.
USB-systemet använder huvudkontrollern för att hantera dataöverföringen mellan värden och USB-enheten. Gränssnittet mellan den och huvudstyrenheten beror på hårdvarudefinitionen för huvudstyrenheten. Samtidigt ansvarar USB-systemet också för att hantera USB-resurser, såsom bandbredd och bussenergi, vilket gör det möjligt för kunder att komma åt USB. USB-systemet har också tre grundläggande komponenter:
Host Controller-drivrutin (HCD) detta kan mappa olika värdkontrollenheter till USB-systemet. Gränssnittet mellan HCD och USB kallas HCDI. Den specifika HCDI definieras av operativsystemet som stöder olika huvudkontroller. Den universella huvudstyrenhetens drivrutin (uhcd) finns längst ner i den mjuka strukturen och den hanterar och styr huvudstyrenheten. Uhcd kommunicerar med och styr USB-värdstyrenheten, och den är dold från andra delar av systemprogramvaran. Det högsta lagret i systemprogramvaran kommunicerar med huvudstyrenheten via mjukvarugränssnittet på uhcd.
USB-drivrutin (usbd), som är baserad på uhcd-drivrutin, tillhandahåller gränssnitt på drivrutinsnivå för att möta kraven för befintlig drivrutindesign. Usbd tillhandahåller en dataöverföringsarkitektur i form av I/O-begäranpaket (IRP), som består av kraven för att överföra data genom specifika rör. Dessutom får usbd klienten att framstå som en abstraktion av enheten för att underlätta abstraktion och hantering. Som en del av abstraktionen har usbd en standardpipeline. Genom vilken alla USB-enheter kan nås för standard USB-kontroll. Detta standardrör beskriver en logisk kanal för kommunikation mellan usbd:n och USB-enheten.
Värdprogramvara
I vissa operativsystem tillhandahålls inte USB-systemprogramvara. Dessa program används ursprungligen för att tillhandahålla konfigurationsinformation och laddningsstruktur till drivrutiner. I dessa operativsystem använder drivrutinen gränssnittet som tillhandahålls av applikationen istället för att direkt komma åt USBDI-strukturen (USB Driver Interface).
USB-klientprogramvara
Den är placerad på den högsta nivån i mjukvarustrukturen och ansvarar för att hantera specifika USB-drivrutiner. Klientskiktet beskriver alla programvaruportaler som direkt verkar på enheten. När enheten upptäcks av systemet kommer dessa klientprogram att agera direkt på den perifera hårdvaran. Denna delade funktion placerar USB-systemmjukvaran mellan klienten och dess enhet, som måste bearbetas av klientprogrammet enligt enhetsbilden som bildas av usbd hos klienten.
Varje lager i värden har följande funktioner:
Upptäck anslutna och borttagna USB-enheter.
Hantera dataflödet mellan värden och USB-enheten.
Anslutning USB-status och aktivitetsstatistik.
Styr det elektriska gränssnittet mellan huvudkontrollern och USB-enheten, inklusive begränsad energiförsörjning.
HCD ger en abstraktion av huvudkontrollern och en abstraktion av huvudkontrollerns perspektiv på data som överförs via USB. Usbd tillhandahåller en abstraktion av USB-enheter och dataöverföring mellan usbd-kunder och USB-funktioner. USB-systemet främjar dataöverföring mellan kunder och funktioner och fungerar som en kontrollpunkt för det standardiserade gränssnittet för USB-enheter. USB-systemet ger bufferthanteringskapacitet och gör att dataöverföring kan synkroniseras med kundernas behov och funktioner.







