Les ports USB (Universal Serial Bus, ports séries
universels) sont, comme leur nom l'indique, basés 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, provocant des erreurs)
- Les câbles séries coûtent beaucoup moins chers que des câbles
parallèles
Ainsi, dès 1995, le standard USB a été élaboré. Il propose deux
modes de communication (12 Mbps en mode haute vitesse et 1.5 Mbps à
basse vitesse) pour la connexion d’une grande variété de
périphériques. 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 é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. Si ce dernier reconnaît son adresse dans le jeton, il
envoie un paquet de données en réponse. Sinon, il fait suivre le
paquet aux autres périphériques connectés à lui. 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 de 5m de câble maximum entre deux
périphériques, il est possible de créer une chaîne longue de 636m !
Les ports USB supportent le Hot plug and play. Ainsi, il est
possible de brancher les périphériques sans éteindre l’ordinateur
(branchement à chaud). 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é...
*Une
annotation est un commentaire d'un membre dont le but est
d'approfondir le sujet de l'article. Cela peut être une
remarque, un éclaircissement, ou bien une suggestion de liens
appropriés.
© Copyright 2001 Jean-François Pillou
Ce document issu de CommentCaMarche.net est
soumis à la licence
GNU FDL. Permission vous est donnée de distribuer, modifier des
copies de cette page tant que cette note apparaît clairement.
|