USB-Softwarestruktur
Sep 01, 2022
Bus-Schnittstelle
Die USB-Busschnittstelle handhabt die Verbindung zwischen der elektrischen Schicht und der Protokollschicht. Aus der Perspektive der Verbindung werden ähnliche Busschnittstellen gleichzeitig von der Vorrichtung und dem Host bereitgestellt, wie z. B. eine serielle Schnittstellenmaschine (SIE). Die USB-Busschnittstelle wird durch den Hauptcontroller realisiert.
Das USB-System verwendet den Hauptcontroller, um die Datenübertragung zwischen dem Host und dem USB-Gerät zu verwalten. Die Schnittstelle zwischen ihm und dem Hauptcontroller hängt von der Hardwaredefinition des Hauptcontrollers ab. Gleichzeitig ist das USB-System auch für die Verwaltung von USB-Ressourcen wie Bandbreite und Busenergie verantwortlich, was den Kunden den Zugriff auf USB ermöglicht. Das USB-System hat auch drei grundlegende Komponenten:
Host-Controller-Treiber (HCD) Dieser kann verschiedene Host-Controller-Geräte im USB-System abbilden. Die Schnittstelle zwischen HCD und USB heißt HCDI. Die spezifische HCDI wird durch das Betriebssystem definiert, das verschiedene Master-Controller unterstützt. Der universelle Master-Controller-Treiber (uhcd) befindet sich am unteren Ende der Soft-Struktur und verwaltet und steuert den Master-Controller. Uhcd kommuniziert mit und steuert den USB-Host-Controller und ist vor anderen Teilen der Systemsoftware verborgen. Die höchste Schicht in der Systemsoftware kommuniziert mit dem Hauptcontroller über die Softwareschnittstelle von uhcd.
Der USB-Treiber (usbd), der auf dem uhcd-Treiber basiert, bietet eine Schnittstelle auf Treiberebene, um die Anforderungen des vorhandenen Gerätetreiberdesigns zu erfüllen. Usbd stellt eine Datenübertragungsarchitektur in Form von I/O-Anforderungspaketen (IRPs) bereit, die aus den Anforderungen zum Übertragen von Daten durch bestimmte Pipes besteht. Darüber hinaus lässt usbd den Client als eine Abstraktion des Geräts erscheinen, um die Abstraktion und Verwaltung zu erleichtern. Als Teil der Abstraktion hat usbd eine Standardpipeline. Über die auf alle USB-Geräte für die Standard-USB-Steuerung zugegriffen werden kann. Diese Standard-Pipe beschreibt einen logischen Kanal für die Kommunikation zwischen dem USB-Gerät und dem USB-Gerät.
Host-Software
Bei einigen Betriebssystemen wird keine USB-Systemsoftware bereitgestellt. Diese Software wird ursprünglich dazu verwendet, Gerätetreibern Konfigurationsinformationen und eine Ladestruktur bereitzustellen. In diesen Betriebssystemen verwendet der Gerätetreiber die von der Anwendung bereitgestellte Schnittstelle, anstatt direkt auf die USBDI-Struktur (USB Driver Interface) zuzugreifen.
USB-Client-Software
Es befindet sich auf der höchsten Ebene der Softwarestruktur und ist für die Behandlung bestimmter USB-Gerätetreiber verantwortlich. Die Client-Schicht beschreibt alle Software-Portale, die direkt auf dem Gerät agieren. Wenn das Gerät vom System erkannt wird, wirken diese Client-Programme direkt auf die Peripheriehardware. Diese gemeinsam genutzte Funktion platziert die USB-Systemsoftware zwischen dem Client und seinem Gerät, die vom Clientprogramm entsprechend dem von usbd beim Client erstellten Geräteabbild verarbeitet werden muss.
Jede Schicht des Hosts hat die folgenden Funktionen:
Angeschlossene und entfernte USB-Geräte erkennen.
Verwalten Sie den Datenfluss zwischen dem Host und dem USB-Gerät.
USB-Verbindungsstatus und Aktivitätsstatistik.
Steuerung der elektrischen Schnittstelle zwischen dem Hauptcontroller und dem USB-Gerät, einschließlich begrenzter Energieversorgung.
HCD bietet eine Abstraktion des Hauptcontrollers und eine Abstraktion der Perspektive des Hauptcontrollers von Daten, die über USB übertragen werden. Usbd bietet eine Abstraktion von USB-Geräten und Datenübertragung zwischen USB-Kunden und USB-Funktionen. Das USB-System fördert die Datenübertragung zwischen Kunden und Funktionen und dient als Kontrollpunkt für die standardisierte Schnittstelle von USB-Geräten. Das USB-System bietet eine Pufferverwaltungsfunktion und ermöglicht die Synchronisierung der Datenübertragung mit den Anforderungen von Kunden und Funktionen.







