Comprendre l'USB : Caractéristiques, Vitesses et Protocoles

Envoyé par Javi et classé dans Électronique

Écrit le en français avec une taille de 25,45 KB

Introduction au Bus USB

L'USB (Universal Serial Bus) est une interface de transmission de données et de distribution d'électricité qui a été introduite sur le marché des PC et des périphériques pour améliorer les anciennes interfaces série (RS-232) et parallèle, souvent fastidieuses. L'interface se compose de 4 fils, offre différentes vitesses de fonctionnement et est "plug and play", ne nécessitant aucune alimentation externe dans la plupart des cas.

L'Universal Serial Bus est un bus série qui permet de connecter jusqu'à 127 périphériques à une seule porte d'un PC, avec détection et configuration automatiques dès qu'il est physiquement connecté, sans nécessiter l'installation de matériel ou de logiciel supplémentaire, et sans avoir à redémarrer l'ordinateur. Il a été élaboré par les leaders de l'industrie des télécommunications et de l'informatique : Compaq, DEC, IBM, Intel, Microsoft, NEC et Northern Telecom.

Caractéristiques du Bus USB

Le bus USB prend en charge l'échange simultané de données entre un ordinateur hôte et un large éventail de périphériques. Tous les périphériques partagent la bande passante du bus par le biais d'un protocole à jeton (Token Passing) : l'ordinateur permet le contrôle aux périphériques sélectionnés, puis ces derniers retournent le jeton dans leur réponse. Ceci permet aux dispositifs d'être connectés/déconnectés du bus sans affecter les autres appareils.

Comme tous les périphériques partagent le bus, les informations peuvent être communiquées à tout moment. L'ensemble des données est divisé en paquets. Chaque en-tête de paquet contient un identificateur qui indique le destinataire cible. Les paquets utilisent un système de détection et de correction d'erreur très robuste, basé sur un CRC.

Vitesses de Transfert USB

Les périphériques USB sont classés en quatre types selon le taux de transfert de données :

  • Basse Vitesse (USB 1.0) : Offre un taux de transfert allant jusqu'à 1,5 Mbit/s (192 Ko/s). Utilisé principalement pour les dispositifs d'interface tels que les claviers, souris et manettes de jeu (encore en usage car moins coûteux).
  • Full Speed (USB 1.1) : Taux de transfert jusqu'à 12 Mbit/s (1,5 Mo/s). C'était la vitesse la plus rapide avant la spécification USB 2.0. Ces dispositifs partagent la bande passante de la connexion USB entre eux, basé sur un algorithme de tampons FIFO.
  • Haute Vitesse (USB 2.0) : Taux de transfert jusqu'à 480 Mbit/s (60 Mo/s).
  • Super Speed (USB 3.0) : Actuellement en phase de développement final, avec un taux de transfert allant jusqu'à 4,8 Gbit/s (600 Mo/s). La vitesse du bus est dix fois plus rapide que l'USB 2.0, grâce à une architecture de liaison améliorée qui, bien que basée sur des connecteurs en cuivre classiques pour la compatibilité avec les normes précédentes, permet des débits bien supérieurs.

Interface Physique USB

L'USB définit deux lignes de transmission de données (D+ et D-) et deux autres pour l'alimentation (VBUS et GND), évitant ainsi l'utilisation d'une alimentation externe. Pour la transmission de données, l'USB utilise un codage NRZI (Non Return to Zero Inverted).

L'USB transmet le signal et l'alimentation aux périphériques à l'aide d'un câble à 4 fils. Les câbles blindés sont utilisés pour les transmissions à 12 Mbps ou plus, tandis que les câbles non blindés sont suffisants pour les transmissions à 1,5 Mbps.

Dans le câble blindé, la paire de fils de signal est torsadée, et les fils d'alimentation et de masse sont droits. Dans le cas des câbles non blindés, tous les fils sont droits.

Détection de Niveau

Le câble USB transfère la puissance et le signal sur quatre fils.

Z

Niveau d'Alimentation

Le câble fournit une tension nominale de 5 V. Il est nécessaire de définir correctement le diamètre du fil afin d'éviter une chute de tension trop importante sur le câble. Une résistance de terminaison est installée sur la ligne de données pour détecter le port et connaître sa configuration et sa vitesse.

Niveau de Signal

L'impédance caractéristique est de 90 Ω. La sensibilité du récepteur doit être d'au moins 200 mV et capable de supporter un bon degré de rejet de la tension de mode commun. L'horloge est transmise dans le flux de données via un codage de type NRZ, et un dispositif génère un peu de remplissage (bit stuffing) qui garantit que la fréquence d'horloge reste constante. Chaque paquet est précédé d'un champ de synchronisation.

Types de Connecteurs USB

Deux types de connecteurs peuvent être trouvés, en fonction de la plateforme de l'appareil : Type A et Type B.

Les connecteurs de Type A, de forme rectangulaire, sont généralement utilisés pour les appareils qui ne nécessitent pas une bande passante élevée (comme les claviers, les souris, les webcams, etc.).

Les connecteurs de Type B, de forme carrée, sont principalement utilisés pour les dispositifs à haute vitesse (disques durs externes, etc.).

OcbEz9uze6e6v5UpqnrdcbJVIeVNVKYWiul4wdTHVbWSGFqrZSOH0x1WFkjham1Ujp emV1NuK + + + + MNVhZY0UptZK6fjBVIeVNVKYWiul47cnpoe92Df9h9SsrpQ8TwAAAABJRU5ErkJggg MNVhZY0UptZK6fjBVIeVNVKYWiul4wdTHVbWSGFqrZSOH0x1WFkjham1Ujp MNVhZY0UptZK6fjBVIeVNVKYWiul4wdTHVbWSGFqrZSOH0x1WFkjham1Ujp ==

y3bA + IL8y5CcqAKSi2LopA2yqRU6sDCAVxdZNGWBTLXJiZQCpKLZuJ2DgcnD5B1wtrgqJniN6AAAAAElFTkSuQmCC

Connecteurs USB Type A et Type B

Protocole de Transfert USB

Tous les périphériques USB sont composés d'une série de points de terminaison (endpoints) et d'une adresse unique attribuée par le système. Un point de terminaison est une mémoire tampon qui stocke les données sur le périphérique. Chaque point de terminaison a un identificateur unique qui lui est attribué en usine, ainsi qu'une direction de flux de données. Tous les appareils doivent supporter le point de terminaison 0, qui est utilisé pour la configuration.

Les associations entre les divers points de terminaison d'un périphérique et l'hôte sont appelées tubes (pipes). Les tubes permettent de déplacer des données entre le logiciel hôte et le point de terminaison du périphérique. Chaque tube est déterminé par le type de service, le numéro de point de terminaison, la taille des paquets, l'adresse, etc.

Il existe quatre types de points de terminaison distincts (contrôle, en bloc, isochrone et d'interruption), chacun étant utilisé pour un type de transfert spécifique, et les associations (tubes) qui se produisent entre ces points de terminaison sont les suivants :

  • Tubes de Contrôle ou de Message : Il s'agit d'un canal de communication entre deux points de terminaison de contrôle (un d'entrée et un de sortie), permettant une communication bidirectionnelle. Tous les appareils possèdent deux points de terminaison de contrôle à l'adresse 0, qui peuvent être définis avant la configuration du périphérique. Grâce à ces points de terminaison, l'hôte peut lire les informations du périphérique USB avant de commencer le transfert.
  • Tubes de Flux : Un canal de communication unidirectionnel entre le système et les points de terminaison de type bloc, isochrone et d'interruption.

Les transferts peuvent être, selon le type de point de terminaison :

- Transferts de Contrôle : Mode utilisé pour effectuer des réglages. Ils utilisent toujours le point de terminaison 0. Tous les périphériques USB doivent prendre en charge ce type de transfert.

Les données de contrôle sont utilisées pour configurer le périphérique lorsqu'il est connecté à l'USB. Certains pilotes spécifiques peuvent utiliser cette liaison pour télécharger leurs propres informations de contrôle.

Cette liaison n'entraîne pas de perte de données, car les dispositifs de détection et de reprise sur erreur sont actifs sur l'USB.

- Transfert Isochrone : Mode utilisé pour la transmission audio ou vidéo compressée. Ce type de transmission fonctionne en temps réel. C'est le mode de plus haute priorité.

Seuls les appareils Full Speed et High Speed peuvent utiliser des points de terminaison isochrones.

La transmission de la voix est un exemple de cette application. Si elle n'est pas transmise correctement, des parasites (glitches) peuvent se faire entendre et l'application peut détecter certaines erreurs appelées ruptures.

- Transfert d'Interruption : Mode utilisé pour la transmission de petits paquets rapides, destinés à l'interaction humaine (pointeurs de souris).

Ce type de transfert est destiné aux périphériques qui nécessitent une attention régulière, notamment les dispositifs à basse vitesse.

Ce type de transmission assure le transfert de petites quantités de données. Le temps de réponse ne peut être inférieur à la valeur spécifiée par l'interface. La souris ou autre dispositif de pointage est une application typique de ce mode de transmission.

- Transferts en Bloc : Ce mode est utilisé pour transmettre de grandes quantités d'informations. Comme pour les transferts de contrôle, cette liaison n'entraîne pas de perte de données. Ce type de transfert est utile lorsque le taux de transfert n'est pas critique, comme l'envoi d'un fichier à imprimer ou la réception de données d'un scanner.

Dans ces applications, le transfert est rapide, mais peut être mis en attente si nécessaire. Seuls les dispositifs à moyenne et haute vitesse utilisent ce type de transfert.

Processus d'Énumération USB

Lorsque vous connectez un périphérique USB à un PC, le processus d'énumération est lancé. Il consiste pour l'hôte à identifier le périphérique et à connaître ses paramètres, tels que :

  • Consommation électrique (exprimée en unités de charge)
  • Nombre et types de points de terminaison
  • Classe de produit
  • Type de transfert
  • Modèle de contrôle, et ainsi de suite.

Le processus d'énumération est initialisé par l'hôte lorsqu'il détecte qu'un nouvel appareil a rejoint le bus. L'hôte attribue une adresse au périphérique et permet sa configuration, autorisant ainsi le transfert des données.

Entrées associées :