Le bus USB (Universal Serial Bus, en français Bus série universel) est, comme son
nom l'indique, basé sur une architecture de type série.
Il s'agit toutefois d'une interface entrée-sortie beaucoup plus rapide que les ports série standards.
L'architecture qui a été retenue pour ce type de port est en série pour deux raisons principales :
- l'architecture série permet d'utiliser une cadence d'horloge beaucoup plus élevée qu'une interface
parallèle, car celle-ci ne supporte pas des fréquences trop élevées (dans une architecture
à haut débit, les bits circulant sur chaque fil arrivent avec des décalages, provoquant des erreurs) ;
- les câbles série coûtent beaucoup moins cher que les câbles parallèles.
Ainsi, dès 1995, le standard USB a été élaboré pour la connexion d’une grande variété de périphériques.
Le standard USB 1.0 propose deux modes de communication :
- 12 Mbps en mode haute vitesse,
- 1.5 Mbps à basse vitesse.
Le standard USB 1.1 permet d'obtenir des débits de 1,5 Mbit/s et 12 Mbit/s. Enfin le standard
Les périphériques certifiés USB 1.1 portent le logo suivant :
La norme USB 2.0 permet d'obtenir des débits pouvant atteindre 480 Mbit/s.
Les périphériques certifiés USB 2.0 portent le logo suivant :
En l'absence de logo la meilleure façon de déterminer s'il s'agit de
périphériques USB à bas ou haut débit est de consulter la documentation du produit
dans la mesure où les connecteurs sont les mêmes.
Il existe deux types de connecteurs USB :
- Les connecteurs dits de type A, dont la forme est rectangulaire et servant généralement
pour des périphériques peu gourmands en bande passante (clavier, souris, webcam, etc.) ;
- Les connecteurs dits de type B, dont la forme est carrée et utilisés principalement
pour des périphériques à haut débit (disques durs externes, etc.).
- Alimentation +5V (VBUS) 100mA maximum
- Données (D-)
- Données (D+)
- Masse (GND)
L’architecture USB a pour caractéristique de fournir l’alimentation électrique aux périphériques
qu’elle relie. Elle utilise pour cela un câble composé de quatre fils (la masse GND,
l’alimentation VBUS et deux fils de données appelés D- et D+).
La norme USB permet le chaînage des périphériques, en utilisant une topologie en bus ou en étoile. Les périphériques peuvent alors être
soit connectés les uns à la suite des autres, soit ramifiés.
La ramification se fait à l’aide de boîtiers appelés hubs (ou concentrateurs), comportant une seule entrée et plusieurs sorties.
Certains sont actifs (fournissant de l’énergie électrique), d’autres passifs.
La communication entre l’hôte (l’ordinateur) et les périphériques se fait selon un protocole
(langage de communication) basé sur le principe de l’anneau à jeton (token ring). Cela signifie que la
bande passante est partagée temporellement entre tous les périphériques connectés.
L’hôte (l'ordinateur) émet un signal de début de séquence chaque milliseconde (ms), intervalle de temps
pendant lequel il va donner simultanément la « parole » à chacun d’entre eux.
Lorsque l’hôte désire communiquer avec un périphérique, il émet un jeton (un paquet de données,
contenant l’adresse du périphérique, codé sur 7 bits) désignant un périphérique, c'est donc
l'hôte qui décide du « dialogue » avec les périphériques.
Si le périphérique reconnaît son adresse dans le jeton, il envoie un paquet de données
(de 8 à 255 octets) en réponse, sinon il fait suivre le paquet aux autres périphériques connectés.
Les données ainsi échangées sont codées
selon le codage NRZI.
Puisque l’adresse est codée sur 7 bits, 128 périphériques (2^7) peuvent être connectés simultanément à un port de ce type.
Il convient en réalité de ramener ce chiffre à 127 car l’adresse 0 est une adresse réservée. (cf plus loin).
A raison d'une longueur de câble maximale entre deux périphériques de 5 mètres et d'un nombre maximal
de 5 hubs (alimentés), il est possible de créer une chaîne longue de 25 mètres !
Les ports USB supportent le Hot plug and play. Ainsi, les périphériques peuvent être branchés sans éteindre l’ordinateur (branchement à chaud, en anglais hot plug). Lors de la connexion du périphérique à l’hôte, ce dernier détecte l’ajout
du nouvel élément grâce au changement de la tension entre les fils D+ et D-. A ce moment, l’ordinateur envoie un signal d’initialisation au périphérique pendant 10 ms, puis lui fournit du courant grâce aux fils GND et VBUS (jusqu’à 100mA).
Le périphérique est alors alimenté en courant électrique et récupère temporairement l’adresse par défaut (l’adresse 0). L’étape suivante consiste à lui fournir son adresse définitive (c’est la procédure d’énumération).
Pour cela, l’ordinateur interroge les périphériques déjà branchés pour connaître la leur et en attribue une au nouveau, qui en retour s’identifie. L’hôte, disposant de toutes les caractéristiques nécessaires est alors en mesure de
charger le pilote approprié...
Les spécifications complètes du standard USB peuvent être téléchargées sur
http://www.usb.org/developers/docs/.
|