Structure du logiciel USB

Sep 01, 2022

Interface bus

L'interface bus USB gère l'interconnexion entre la couche électrique et la couche protocole. Du point de vue de l'interconnexion, des interfaces de bus similaires sont fournies par le périphérique et l'hôte en même temps, comme la machine d'interface série (SIE). L'interface de bus USB est réalisée par le contrôleur principal.

Le système USB utilise le contrôleur principal pour gérer la transmission de données entre l'hôte et le périphérique USB. L'interface entre celui-ci et le contrôleur principal dépend de la définition matérielle du contrôleur principal. Dans le même temps, le système USB est également responsable de la gestion des ressources USB, telles que la bande passante et l'énergie du bus, ce qui permet aux clients d'accéder à l'USB. Le système USB comporte également trois composants de base :

Pilote de contrôleur hôte (HCD) qui peut mapper différents périphériques de contrôleur hôte dans le système USB. L'interface entre HCD et USB s'appelle HCDI. Le HCDI spécifique est défini par le système d'exploitation prenant en charge différents contrôleurs maîtres. Le pilote du contrôleur maître universel (uhcd) se trouve au bas de la structure logicielle, et il gère et contrôle le contrôleur maître. Uhcd communique avec et contrôle le contrôleur hôte USB, et il est caché des autres parties du logiciel système. La couche la plus élevée du logiciel système communique avec le contrôleur principal via l'interface logicielle de uhcd.

Le pilote USB (usbd), basé sur le pilote uhcd, fournit une interface au niveau du pilote pour répondre aux exigences de la conception de pilotes de périphériques existants. Usbd fournit une architecture de transmission de données sous la forme de paquets de requête d'E / S (IRP), qui comprend les exigences de transmission de données via des canaux spécifiques. De plus, usbd fait apparaître le client comme une abstraction de l'appareil pour faciliter l'abstraction et la gestion. Dans le cadre de l'abstraction, usbd a un pipeline par défaut. Par lequel tous les périphériques USB sont accessibles pour un contrôle USB standard. Ce canal par défaut décrit un canal logique pour la communication entre l'usbd et le périphérique USB.

Logiciel hôte

Dans certains systèmes d'exploitation, le logiciel système USB n'est pas fourni. Ces logiciels sont initialement utilisés pour fournir des informations de configuration et une structure de chargement aux pilotes de périphériques. Dans ces systèmes d'exploitation, le pilote de périphérique utilise l'interface fournie par l'application au lieu d'accéder directement à la structure USBDI (USB Driver Interface).

Logiciel client USB

Il est situé au niveau le plus élevé de la structure logicielle et est responsable de la gestion des pilotes de périphériques USB spécifiques. La couche client décrit tous les portails logiciels qui agissent directement sur l'appareil. Lorsque le périphérique est détecté par le système, ces programmes clients agissent directement sur le matériel périphérique. Cette fonction partagée place le logiciel système USB entre le client et son appareil, qui doit être traité par le programme client en fonction de l'image de l'appareil formée par usbd chez le client.

Chaque couche de l'hôte a les fonctions suivantes :

Détecter les périphériques USB connectés et retirés.

Gérer le flux de données entre l'hôte et le périphérique USB.

État de la connexion USB et statistiques d'activité.

Contrôlez l'interface électrique entre le contrôleur principal et le périphérique USB, y compris l'alimentation électrique limitée.

HCD fournit une abstraction du contrôleur principal et une abstraction de la perspective du contrôleur principal des données transmises via USB. Usbd fournit une abstraction des périphériques USB et de la transmission de données entre les clients usbd et les fonctions USB. Le système USB favorise la transmission de données entre les clients et les fonctions et sert de point de contrôle pour l'interface standardisée des périphériques USB. Le système USB offre une capacité de gestion de la mémoire tampon et permet de synchroniser la transmission des données avec les besoins des clients et des fonctions.