Explications sur les différents ports

URL: http://www.poirrier.be/~jean-etienne/notes/structordi/ports/usb.php

Dernière mise à jour : 31 janvier 2005


[Vue générale de (presque) tous les ports]
Figure 0.1. Vue générale de (presque) tous les ports

3. Port USB

En 1995, un groupe de constructeurs de PC ont élaboré la norme USB (Universal Serial Bus) 1.0 pour remplacer l'interface série qui montrait ses limites.

En effet, avec un port série, le principal désavantage est devenu sa lenteur (et le peu de bande passante associé). Mais les périphériques étaient souvent associés à un port et en changer nous obligait à tout reconfigurer. Et on ne pouvait pas non plus y attacher plus d'un appareil à la fois (sauf astuces). Etc.

Donc, l'USB a été créé pour résoudre ces problèmes et bien plus ...

  • vitesse beaucoup plus élevée que les ports série ou parallèle (12 Mbits par seconde pour la norme 1.1 ; 480 Mbits par seconde pour la norme 2.0 "Hi-Speed") ;
  • un périphérique USB peut se connecter sur n'importe quel port USB ;
  • les périphériques peuvent prendre leur alimentation électrique dans le port USB même (maximum 0.5 ampère de puissance pour 5 volts) ;
  • on peut connecter jusqu'à 127 périphériques sur un PC, soit directement, soir via un hub ;
  • un hub joue le rôle de multiplexeur (connection de plusieurs périphériques à un même câble) mais aussi de répétiteur, d'amplificateur, de contrôleur du signal et de fournisseur de courant ;
  • les câbles peuvent faire 5 mètres de long (30 mètres s'il y a un hub) ;
  • support du hot-swap : on peut brancher et débrancher les périphériques quand on veut, l'ordinateur charge et décharge automatiquement les pilotes ;
  • support des fonctions de mise en veille par l'ordinateur ;
  • ...

3.1. Principe de communication

L'ordinateur joue le rôle de hôte (host).

3.1.2. Enumération

Lors de son démarrage, l'ordinateur interroge tous les périphériques USB connectés à son bus et leur assigne à chacun une adresse. Lorsqu'on connecte un périphérique USB à chaud (càd. alors que la machine est déjà allumée), le même processus se produit. Le PC détecte également à ce moment quel type de transfert de données est adéquat.

Si le périphérique n'a jamais été rencontré auparavant, le système d'exploitation le détecte et demande pour le pilote (ou le charge s'il a déjà le pilote dans ses fichiers). Si le pilote est déjà installé, l'ordinateur l'active et commence à dialoguer avec le périphérique.

3.1.3. Types de transfert de données

Les périphériques n'ont pas tous les mêmes demandes en termes de transfert de données. Comme n'importe quel périphérique doit pouvoir se connecter sur un port USB, on a défini trois types de transferts de données.

  • Par interruption (interrupt), utilisé par les périphériques qui envoient très peu de données, seulement à des moments précis (engendrant des interruptions) : clavier, souris, ...
  • En gros (bulk), utilisé par les périphériques qui reçoivent (ou envoient) les données par gros paquets (exemple : imprimante). Dans ce mode, un bloc de données (64 bytes) est envoyé et vérifié (pour être sûr qu'il a été envoyé correctement).
  • Mode isochrone (isochronous), utilisé par les périphériques qui doivent échanger les données en temps réel (exemple : hauts-parleurs). Les données sont envoyées sous forme de flux, en temps réel, entre le PC et le périphérique. Il n'y a pas de correction d'erreur.

De plus, le PC peut envoyer et demander des paquets de contôles (qui seraient un 4ème type de transfert).

Notez que tous les transferts se font en série.

3.1.4. Bande passante et frames

Après l'énumération, le PC tient compte de toute la bande passante que les périphériques communiquant par interruption et de manière isochrone demandent. Ces périphériques peuvent consommer jusqu'à 90 % de la bande passante totale. Si les 90 % sont atteints, le PC interdit tout accès à de nouveaux périphériques par interruption ou isochrones. Les paquets de contrôle et les transferts en gros utilisent la bande passante restante (soit un minimum de 10 %).

Le contrôleur USB divise la bande passante en fenêtres (frames) et contrôle ces frames. Une frame contient 1500 bytes. Une nouvelle frame début chaque seconde. Durant une frame, les périphériques par interruption et isochrones en ont une partie afin de leur garantir la bande passante dont ils ont besoin. Les transferts en gros et les paquets de contôle utilisent l'espace restant.

3.1.5. USB 1.0 et USB 2.0

USB 1.0 (1995) était limité à 12 Mbits par secondes. Avec le standard USB 2.0 (aussi nommé "Hi-Speed", 2002), la limite est de 480 Mbits par secondes (40 fois plus rapide). C'est la principale différence entre les deux.

De nouveaux, le standard 2.0 est "backward compatible", càd qu'on pourra brancher un appareil "limité" à l'USB 1 sur un port ou hub USB 2. Le périphérique communiquera avec le port à 12 Mbit/s. Idem pour l'inverse : connecter un périphérique USB 2 sur un port USB 1 marchera sans problème, sauf que la vitesse de communication sera limitée à 12 Mbits/s.

[Logos USB 1 et 2]
Figure 3.1. Logos USB 1 et 2

3.2. Matériel

Sur les ordinateurs, les port série sont généralement de type A (voir les autres types ci-dessous).

[2 ports USB derrière un PC]
Figure 3.2. 2 ports USB derrière un PC

3.2.1. Connecteurs

Il y a 4 fils dans un câble USB :

  • 2 fils pour le courant (+5 volts et la terre) et
  • 2 fils pour les données.

[fils dans un câble USB]
Figure 3.3. Fils dans un câble USB : le rouge donne 5 volts, le brun fournit la terre et les jaune et vert transportent les données. Le câble est aussi blindé.

Le port USB de l'ordinateur est toujours de la même forme. De même, toute extrémité de câble USB qui se connecte à l'ordinateur est toujours de type "A".

[Connecteur A]
Figure 3.4. Connecteur USB de type A.

Afin de s'adapter à toutes les dimensions d'appareils, il y a deux types de connecteurs du côté périphérique : le B (notamment pour les imprimantes) et le mini (notamment pour les appareils photos).

[Connecteur B]
Figure 3.5. Connecteur USB de type B.

[Connecteur mini]
Figure 3.6. Connecteur USB de type mini.

3.2.x. A propos des hubs

Généralement, un PC possède de 2 à 4 ports USB. Mais, avec une webcam USB, une souris USB, une imprimante USB, un scanner USB, ... on arrive vite manquer de ports. La solution (pas très chère) est l'ajout d'un hub USB, sorte de réplicateur de ports. Connecté à un port USB du PC, le hub va permettre de connecter au-moins 4 périphériques. Et on peut connecter un hub à un autre hub, etc.

Un hub va jouer le rôle de multiplexeur (connection de plusieurs périphériques à un même câble) mais aussi de répétiteur, d'amplificateur, de contrôleur du signal et de fournisseur de courant. Normalement, faisant partie du standard, le hub doit être totalement transparent pour l'utilisateur.

Comme les périphériques peuvent prendre l'alimentation dans le port USB, le hub se doit de pouvoir jouer le même rôle. Bien sûr, les périphériques gros consommateurs d'énergie ont leur propre bloc fournisseur d'électricité (généralement, un transformateur). Mais les claviers, souris, webcam, etc. prennent généralement directement leur électricité dans le port. Si on a beaucoup de tel périphérique, cela peut devenir un problème (pas assez de puissance fournie par le PC) et le hub est la solution.

3.3. Jouons avec notre PC

3.3.1. Avec MS-Windows

Pour découvrir les ports USB qu'on a sous MS-Windows, il faut aller dans le panneau de contrôle, cliquer sur l'icône "Système" et y trouver le "Gestionnaire de périphériques". Dedans, il faut trouver l'entrée "Contrôleurs USB" et l'étendre. Cela devrait donner à peu près ceci ...

[Ports USB sous Windows]
Figure 3.7. Liste de ports USB sous MS-Windows

Pour connaître (et éventuellement modifier) les paramètres d'un port USB, il suffit de cliquer sur son item.

3.3.2. Avec GNU/Linux

Pour des informations sur les ports USB sous Linux, je vous conseille de consulter le projet Linux USB (en anglais) et leurs questions fréquemment posées (en anglais aussi). USBMan a aussi de bonnes ressources sur l'USB sous Linux.

Références et liens pour approfondir