L'infrastructure Gadget USB du noyau Linux facilite la création de périphériques USB, en proposant un cadre et un certain nombre de primitives qui permettent d'une part d'abstraire les contrôleurs matériels de périphériques USB, et d'autre part d'en utiliser les ressources et fonctionnalités afin de créer n'importe quelle fonction USB désirée : qu'elle réponde aux standards (tels que « Mass Storage », « CDC Eth »…), qu'elle soit l'incarnation de vos besoins particuliers, ou bien encore qu'elle soit une combinaison des deux.
1. Quelques notions d'USB
1.1 Vue d'ensemble
L'USB (Universal Serial Bus) est une interface de communication entre un système hôte (comme un ordinateur) et un ou plusieurs périphériques. Ces périphériques (127 au maximum par contrôleur USB) sont connectés à cet hôte sous forme arborescente. Les feuilles sont des périphériques finaux, alors que les nœuds intermédiaires sont des hubs USB. Le système hôte se compose d'un contrôleur USB (responsable des aspects bas niveau du protocole) et d'un hub, appelé root hub, lequel est directement connecté à ce contrôleur.
Un périphérique USB est constitué d'une ou plusieurs fonctions (clavier, mass storage, souris, etc.). Chaque périphérique se voit attribuer une adresse unique par l'hôte, laquelle est utilisée au cours des échanges entre l'hôte et le périphérique. Ces échanges se font au travers de ce qui est appelé un pipe. Il s'agit d'un canal de communication entre un hôte et un tampon de mémoire...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première