L'USB signifie Universal Serial Bus, qui a été développé et introduit par Ajay Bhatt à partir d'Intel en 1996. Il s'agit d'une norme d'interface largement adoptée utilisée pour connecter les appareils aux ordinateurs, permettant le transfert de données, la transmission d'alimentation et la communication entre les appareils.
Le protocole USB est un ensemble de règles et de normes qui gèrent la communication de l'appareil via les connexions USB. Pour les individus utilisant des appareils USB ou en développement d'applications USB, la compréhension du protocole est essentielle. Le protocole USB définit la structure des paquets de données, le synchronisation de la transmission des données et les caractéristiques électriques des connexions.
Le bus de série universel est conçu pour prendre en charge l'échange chaud et les capacités de plug-and-play améliorées. Le plug-and-play permet au système d'exploitation de configurer et de détecter automatiquement les nouveaux dispositifs périphériques sans avoir à redémarrer l'ordinateur, tandis que les moyens d'échanges à chaud peuvent être supprimés ou remplacés sans redémarrage. Divers types de connecteurs USB sont disponibles, le type A et le type B étant les plus courants. Les connecteurs plus anciens ont été remplacés par des câbles Mini-USB, micro-USB et USB-C. Le connecteur USB typique de type A a quatre broches, utilisé pour la connexion des appareils aux PC, et se caractérise par un connecteur élevé et étroit avec les quatre broches disposées dans une boîte.

Les broches du connecteur USB de type A sont codées en couleur pour des fonctions spécifiques:
PIN 1 (VBUS): Fil rouge, fournit de l'énergie.
PIN 2 (D-): broche de paire différentielle blanche, utilisée pour la connexion USB.
PIN 3 (D +): broche de paire différentielle verte, utilisée pour la connexion USB.
PIN 4 (GND): broche de terre noire.
Parmi ceux-ci, les broches D + et D sont utilisées pour la transmission des données. Lors de la transmission d'un "1", la ligne D + transporte un courant avant; Lors de la transmission d'un "0", le courant s'inverse.

Une fois que divers périphériques d'E / S sont connectés à un ordinateur via USB, ils forment une structure ressemblant à un arbre. Dans cette structure USB, chaque périphérique d'E / S est connecté point à point pour la transmission de données à l'aide d'un format de transfert en série.

Ces dispositifs d'E / S sont connectés via un hub, qui sert de point de connexion entre les appareils et l'ordinateur. Le centre racine de cette architecture relie toute la structure à l'ordinateur hôte. Les appareils d'E / S dans cette configuration peuvent inclure des claviers, des souris, des haut-parleurs, des caméras, etc.
Le protocole USB fonctionne basé sur le sondage. Dans le sondage, le processeur vérifie en continu si les appareils d'E / S sont prêts à transmettre des données. Cela signifie que les appareils d'E / S n'ont pas besoin de mettre à jour le processeur sur leur statut, car la tâche principale du processeur est de vérifier constamment. Cela fait de l'USB une solution à faible coût et simple. Chaque fois qu'un nouvel appareil se connecte au centre, il est initialement attribué l'adresse "0". Le système hôte interroge le centre pour vérifier son état, lui permettant de déterminer si un périphérique d'E / S a été connecté ou déconnecté. Une fois que l'hôte répond à un nouvel appareil, il lit les données disponibles à partir de la mémoire d'interface USB de l'appareil pour comprendre les capacités de l'appareil et communiquer avec lui en utilisant les pilotes appropriés. L'hôte attribue ensuite une nouvelle adresse à l'appareil, qui est écrit au registre de l'appareil. Cela permet des fonctionnalités de plug-and-play pour les périphériques USB.
Une autre caractéristique du protocole USB est «échange chaud», ce qui signifie que les périphériques d'E / S peuvent être connectés ou supprimés du système hôte sans le désactiver ou le redémarrer. Le système continue de fonctionner comme normal, que les dispositifs d'E / S soient connectés ou déconnectés. L'USB prend également en charge la communication isochrone, où les données sont transmises à des intervalles prédéfinis. La transmission des données isochrones est beaucoup plus rapide que le transfert de données synchrone et asynchrone. Pour maintenir le calendrier de la communication, le concentrateur racine transmet une série de bits sur USB qui indiquent le début des données isochrones, et les données réelles suivent cette série.
Diagramme de synchronisation du protocole USB: Ce diagramme est principalement utilisé dans les champs d'ingénierie pour expliquer les valeurs ON / OFF de la ligne USB le long d'une chronologie, où "1" ne représente aucune charge et "0" représente l'activité. Au fil du temps, vous pouvez observer les transitions ON / OFF. Le système démontre également le codage inversé (NRZI) non re-retour à zéro (NRZI), une méthode plus efficace de transmission des données.

Format d'information USB: les données du protocole USB sont transmises dans des paquets avec un bit un moins significatif (LSB) en premier. Les paquets USB sont de quatre types: jeton, données, poignée de main et démarrage du cadre. Chaque paquet se compose de divers champs, comme indiqué dans le diagramme du format d'information ci-dessous:

Sync: chaque paquet USB commence par un champ de synchronisation, qui est utilisé pour synchroniser l'expéditeur et le récepteur pour une transmission de données précise. Dans les systèmes USB à basse vitesse ou à grande vitesse, le champ de synchronisation contient trois paires de séquences KJ, suivies de deux KS pour former 8 bits de données. Dans les systèmes USB à grande vitesse, la synchronisation nécessite 15 paires de séquences de KJ, suivies de deux KS pour 32 bits de données. La longueur du champ en modes à basse vitesse et pleine vitesse est de 8 bits, et en mode haute vitesse, il est de 32 bits. Le champ Sync est de synchroniser les horloges de l'expéditeur et du récepteur. Les deux derniers bits indiquent le début du champ PID.
PID: Le champ Identifiant des paquets (PID) dans le protocole USB est utilisé pour identifier le type de données transmis et le format de paquet de données. Ce champ est de 8 bits de long, les 4 bits élevés identifiant le type de paquet et les 4 bits bas étant le complément des 4 bits élevés.
Adresse: Le champ d'adresse du protocole USB indique le périphérique pour lequel le paquet de données est prévu. La longueur 7 bits permet de prendre en charge jusqu'à 127 appareils. L'adresse 0 est réservée, car les appareils sans adresse attribuée doivent répondre aux paquets envoyés à l'adresse 0.
Point de terminaison: le champ de point de terminaison dans le protocole USB est de 4 bits de long, offrant une flexibilité dans l'adresse. Ces champs sont généralement divisés pour les données d'entrée / sortie. Le point de terminaison "0" est un cas spécial connu sous le nom de point de terminaison de contrôle, que chaque appareil contient.
Données: Le champ de données a une longueur variable, allant de 0 à 8192 bits. C'est toujours un multiple entier d'octets. Après cela, il y a un contrôle de redondance cyclique (CRC). Le CRC est appliqué à la charge utile des données, où les paquets de jeton contiennent un CRC 5 bits et les paquets de données contiennent un CRC 16 bits.
Chaque paquet se termine par un champ de fin de paquet (EOP), qui comprend un seul zéro final (SE0) de 2 bits, suivi d'un "J" durable 1 bit.