Autres liens concernant ce sujet:
  • Port série
  • Port parallèle

  • Bus d'extension
  • Interface SCSI
  • Accueil Forum Imprimer Contact

    USB

    L'USB (Universal Serial Bus ou bus série universel) a été conçu durant quatre ans, de 1994 à 1998, par plusieurs entreprises: Philips, NEC, Hewlett-Packard, Microsoft, Intel, Compaq et Lucent. Actuellement, il équipe la totalité des ordinateurs récents. Chaque périphérique actuel peut être utilisé sur un port USB. Le port USB a remplacé les ports série et parallèles. L'USB possède certains avantages, en particulier un grande facilité d'extension et d'utilisation.
    L'USB supporte le "plug and play" (détection automatique de nouveaux périphériques), et la transmission en temps réel de voix, de son et de vidéo compressées. L'une des caractéristiques particulière de l'USB est qu'il supporte le "Hot Plug And Play". Cela signifie qu'un périphérique USB peut être relié à l'ordinateur à n'importe quel moment. Il est par la suite configuré de manière automatique, sans redémarrer l'ordinateur. Cela est possible si le système d'exploitation le permet.
    Les topologies possibles de l'USB sont en étoile, en bus, ou arborescente.




    Connexion des périphériques

    Il existe de nombreux ports USB intégrés à la carte mère. Pour disposer d'encore plus de ports, nous pouvons avoir recours à un contrôleur USB. Celui-ci se présente sous la forme d'une carte d'extension munie de ports USB, à insérer dans un des connecteurs PCI ou PCI-E. En règle générale, une carte contrôleur USB dispose de quatre ou cinq ports. Une fois installée, il est possible de connecter des périphériques USB dans n'importe quel ordre. Nous disons alors que les périphériques sont connectés en "étoile". Ce terme provient du fait que tous les périphériques sont connectés sur une carte commune. Si nous voulons augmenter fortement le nombre de périphérique à utiliser, nous devons connecter un HUB USB sur un ou plusieurs ports du contrôleur. Un HUB est un élément servant à "multiplier" le nombre de ports disponible. Pour cela, nous plaçons à son entrée un câble le reliant au contrôleur. Le port est alors multiplié sur le HUB. L'image ci-dessous illustre un HUB USB.



    HUB USB




    Alimentation des HUB USB

    Un périphérique peut être alimenté soit directement par le port USB, soit, plus rarement, par le secteur (à l'aide d'un transformateur).
    Les HUB USB peuvent être alimentés eux aussi de deux manières différentes. Certains ont un circuit d'alimentation pour chaque port, et nécessitent un transformateur connecté au réseau électrique. Ils sont capable d'alimenter les périphérique qui utilisent directement le courant provenant du HUB USB. L'autre type d'alimentation utilise uniquement le courant délivré par le contrôleur. Ce type de HUB est en règle générale incapable d'alimenter des périphériques non reliés au réseau électrique. Il existe en réalité trois types d'alimentations qui équipent les HUB USB:




    Câbles et brochage

    Les contrôleurs et les HUBs sont équipés de plusieurs connecteurs dits de type "A". Sur les périphériques, nous trouvons des connecteurs dits de type "B". Le câble se compose de quatre fils. Deux d'entre eux servent à véhiculer les données et son torsadés pour éviter les perturbations extérieures. Les deux autres fils apportent le courant nécessaire. L'un d'entre eux est le potentiel +5V et le second est la masse. Plus la vitesse de transmission des donnée est importante, plus le câble est sensible aux perturbations électromagnétiques extérieures.
    Le schéma ci-dessous montre les connexions des ports et câbles USB. Les broches D+ et D- servent à la transmission des données. La broche D+ transmet les paquets de données, et la broche D- contient le signal logique inverse. Cela sert à contrôler le signal transmis et à garantir une sécurité de transmission optimale. Le schéma ci-dessous montre les broches utilisées pour les transmissions de données avec le port USB.



    Brochage USB

    1: Tension +5V (alimentation)
    2: D-: Transmission des données logiques inverses (contrôle d'erreurs)
    3: D+: Transmission des données
    4: Masse




    Mode de transmission

    La transmission des données par l'USB fonctionne selon le principe de l'anneau à jeton (token ring). Le principe de ce mode de communication repose sur le fait que les périphériques sont interrogés les uns après les autres, à intervalle de temps très réduit. Ainsi, lorsque l'ordinateur doit transmettre des données à l'un d'eux, il émet un jeton, c'est-à-dire un paquet de données contenant l'adresse du périphérique désiré. Celui-ci reçoit les données grâce à cette adresse. Bien entendu, les autres périphériques ne sont pas affectés, car ils possèdent tous une adresse différente.

    L'USB peut fonctionner selon trois modes différents. Il s'agit des modes basse vitesse (low speed, 1,5 Mo/s), pleine vitesse (full speed, 12 Mo/s) et haute vitesse (high speed 480 Mo/s). Cela est indépendant de la version utilisée. Ainsi, un périphérique qui exige un débit faible (clavier ou souris par exemple) fonctionnera avec un débit de 1,5 Mo/s même s'il fonctionne en USB 2.0. A l'inverse, un dispositif audio ou vidéo sera exploité en mode haute vitesse. Cela est donc réglé uniquement selon les besoins du périphérique.

    Notez que tous les échanges de donné sont effectués en utilisant le codage NRZI, dérivant du codage NRZ.




    Intégration de nouveaux périphériques

    Lorsqu'un nouveau périphérique est branché, il applique une tension de niveau HAUT sur la broche D+ ou D-. Si le niveau HAUT (tension HAUTE) se trouve sur le contact D+, il s'agit d'un périphérique fonctionnant en mode pleine vitesse. Si le niveau HAUT est appliqué à la broche D-, le périphérique fonctionnera en mode basse vitesse (low speed). Les périphériques fonctionnant en mode haute vitesse (high speed) donnent un niveau de tension HAUT sur la broche D+. L'ordinateur transmet ultérieurement un paquet les faisant fonctionner en mode haute vitesse.
    Lorsqu'un nouveau périphérique est branché alors que l'ordinateur est allumé, il reçoit une adresse générique, dite adresse 0. L'ordinateur interroge tous les autres périphériques pour connaître chaque adresse. Il attribue ensuite une adresse libre au nouveau périphérique.
    Pour attribuer une adresse au périphérique, l'ordinateur lui envoie une requête appelée SET_ADRESS, suivi d'un paquet IN. Le nouveau périphérique répond en envoyant un paquet DATA générique. L'ordinateur envoie ensuite un paquet appelé GET_DESCRIPTOR, auquel le périphérique répond en transmettant son fabricant, son modèle, le type de périphérique, etc, dans un paquet IN.




    Paquets

    Les échanges d'informations entre l'ordinateur et les périphériques USB reposent sur le principe de la transmission par paquets. Un paquet est une portion délimitée de donnée, composée de plusieurs parties. Il existe des paquets TOKEN (anneau) et DATA (données).

    Il y a plusieurs types de paquets: les paquets isochrones, les paquets de contrôle, les paquets d'interruption et les paquets en vrac (bulk). Les paquets de contrôle servent à interroger le périphérique pour connaître son état, à le configurer, et à lui envoyer des commandes. Les paquets isochrone sont envoyés aux périphérique temps réel par intervalle de temps réduit et régulier. Ces périphériques nécessitent en effet l'envoi ou la réception de données régulièrement et à des intervalles très réduits. Les paquets d'interruption sont indispensables, car l'USB ne supporte pas les interruptions. Enfin, les paquets en vrac sont envoyés vers des périphériques qui n'ont pas besoin de fonctionner en temps réel, par exemple les imprimantes.
    La structure des paquets est donnée ci-dessous.



    Structure du paquet TOKEN



    Structure du paquet DATA

    Les paquets TOKEN assurent les transactions et les négociations entre le périphérique et l'ordinateur afin que la transmission des données puisse s'effectuer. Les paquets TOKEN sont utilisés dans l'obtention d'une adresse et d'un numéro de terminaison (ENDP), par exemple.
    Les paquets DATA véhiculent les informations entre l'ordinateur et le périphérique, lorsque ce dernier est en cours d'utilisation.
    Nous pouvons observer plusieurs parties dans ces paquets. Ils commencent par SYNC, qui contient les informations de synchronisation entre l'ordinateur et le périphérique. Le type de paquet dont il s'agit est identifié par PID. Il est également composé de ENDP, signifiant "Endpoint". Il s'agit du numéro de terminaison du paquet. Les données contenues dans celui-ci sont rangées dans la partie PAYLOAD. Enfin, CRC signifie "Cyclic Redundancy check" et sert à la détection d'erreurs de transmission. La partie "ADRESS" présente dans les paquets TOKEN contiennent l'adresse du périphérique.


    Pour résumer:

    SYNC: Informations de synchronisation
    PID: ID pour identifier le type de paquet (paquet ID)
    ENDP: Numéro de terminaison (ENDPOINT)
    ADRESS: Adresse du périphérique
    PAYLOAD: Contient les données
    CRC: Sert à la détection d'erreurs


    Comme déjà dit, le PID sert à identifier le type du paquet. Les types possibles sont donnés ci-dessous. Ils ne s'appliquent qu'au Paquet ID (PID).

    SETUP: Annonce au périphérique l'envoi d'une commande en provenance de l'ordinateur.
    OUT: Annonce au périphérique que l'ordinateur va lui envoyer des données.
    DATA: Autorise l'ordinateur à envoyer des données.
    ACK: Indique que les données ont bien été reçues.
    IN: Autorise le périphérique à envoyer des données.
    NAK: Indique que le périphérique n'a plus de données à envoyer




    Versions de l'USB

    L'USB 1.0 et 1.1 sont les premières versions élaborées. Le voltage transmis dans le câble est de 3,3V. Ces versions étaient utilisées à des vitesses de 1,5 et 12 Mo/s. Ces vitesses étaient évidemment destinées aux périphériques ne nécessitant pas un débit particulièrement important. L'USB 1.1 permettait toutefois d'atteindre une vitesse suffisante par exemple pour des périphériques tels que des scanners. Au maximum 127 périphériques peuvent être exploités.
    L'USB 2.0 utilise une transmission des signaux de 0,4V. La réduction de la tension permet d'accroître la vitesse de transmission. le débit théorique atteint pour tous les périphériques est de 480Mbits par seconde. Les éléments USB 1.1 sont compatibles avec l'USB 2.0. Ils peuvent donc être utilisés sur des HUB ou contrôleurs USB 2.0. Si un HUB USB 1.1 est connecté à un contrôleur USB 2.0, les périphériques qui seront connectés sur les ports du HUB atteindront le débit maximal de l'USB 1.1. Autrement dit, sur un contrôleur USB 2.0, seuls des éléments USB 2.0 peuvent être connectés si nous voulons atteindre 480Mbits par seconde. Hormis ces différences, l'USB 2.0 est utilisé de la même façon que l'USB 1.1.
    La version 3.0 de l'USB, apparue en 2009, est appelée "SuperSpeed USB". Il s'agit d'une conception entièrement différente des versions précédentes. L'augmentation du débit théorique est très important, l'USB 3.0 offrant 5 Go par seconde. Il devient donc aisé d'utiliser des périphériques qui exigent un débit très importants. Les disques durs externes, et les périphériques de traitement de la vidéo et de l'image peuvent donc être utilisés avec l'USB 3.0. L'USB 3.0 est compatible avec l'USB 2.0, mais incompatible avec les versions précédentes. Cela signifie que les périphériques conçus pour l'USB 2.0 peuvent être utilisés avec l'USB 3.0. En revanche, s'ils sont prévus pour les versions 1.0 et 1.1, ils ne fonctionneront pas avec cette version. La version 3.0 de l'USB est donc compatible uniquement avec la version 2.0. L'USB 3.0 possède une gestion d'énergie très avancée. Il admet les états "inactif", "en veille" et "en suspension". La consommation de courant est donc considérablement réduite.
    La tableau ci-dessous montre l'évolution de la norme USB.


    VersionAnnéeDébit théorique
    1.019961,5 Mo/s.
    1.1199812 Mo/s.
    2.02000480 Mo/s.
    3.020095 Go/s.

    Tableau récapitulatif





    Ce manuel est gratuit mais n'est pas libre de droits.
    © J.BAUMANN