Le bus USB Universal Serial Bus LUSB et

  • Slides: 38
Download presentation
Le bus USB Universal Serial Bus L’USB et sa norme Patrick MONASSIER INSAT -

Le bus USB Universal Serial Bus L’USB et sa norme Patrick MONASSIER INSAT - Tunis 1

Naissance de l’USB 1994, alliance de 7 partenaires industriels : Compaq, Dell, IBM, Intel,

Naissance de l’USB 1994, alliance de 7 partenaires industriels : Compaq, Dell, IBM, Intel, Microsoft, NEC et Northern Telecom – Ils commencent à créer la norme USB Objectif : connectique universelle, Plug&Play, utilisable aussi bien pour une souris que pour un moniteur Possibilté de brancher un grand nombre d’appareils : jusqu’à 127 Janvier 1996 : norme USB 1. 0, premiers produits sortis fin 1997 Septembre 1998 : spécifications de la norme USB 1. 1 (celle utilisée actuellement) avec 2 vitesses de fonctionnement : 1, 5 Mbps (Low Speed) et 12 Mbps (Full Speed) Avril 2000 : spécification USB 2. 0 – compatible 1. 1 - ajoute une vitesse de 480 Mbps (High Speed) et optimise la bande passante 2

Avantages de l’USB Les avantages de l’USB : • Faible coût de l’interface •

Avantages de l’USB Les avantages de l’USB : • Faible coût de l’interface • Indépendace vis-à-vis des machines hôtes • Hot Plug&Play (branchement/débranchement sous-tension) • Jusqu’à 127 périphériques possibles • Fiable et sécurisé (détection et correction d’erreurs) • Plusieurs vitesses possibles : 1. 5 – 12 et 480 Mb/s • 4 types de transferts (jeton, SOF, data, handshake) • Possibilité d’ajouter des Hubs USB (multiprises externes) • Connexion compacte avec détrompages • Alimentation possible des appareils via le câble • Passage automatique en basse consommation (Power conservation - en 3 ms : 500 u. A) L’avantage du Hot Plug&Play : • l’ O. S. détecte automatiquement le périphérique qui vient d’être connecté • Il charge automatiquement le driver s’il est disponible • Si non, il demande le CD driver de l’appareil et facilite son installation • Pas de redémarrage nécessaire, l’appareil est prêt à l’emploi après reconnaissance • Au prochain branchement, la reconnaissance de l’appareil est automatique • Pas d’adresse de port à configurer (affectation dynamique de 1 à 127, codée sur 7 bits) 3

Définition des différentes vitesses 3 vitesses sont supportées : • USB 1. 1 1,

Définition des différentes vitesses 3 vitesses sont supportées : • USB 1. 1 1, 5 Mbit/s Low Speed • USB 1. 1 12 Mbit/s Full Speed • USB 2. 0 480 Mbit/s High Speed Le taux de transfert réel est plus faible : le bus doit faire passer les bits de status, de contrôle, d’erreur et les données. D’autre part, plusieurs périphériques doivent se partagent le bus Débits réels selon la norme USB, hors contraintes de l’OS : • Low Speed : 64 kbit/s en mode interrupt avec 1 interruption réglable de 10 à 255 ms soit dans le meilleur des cas : 100 IR/s, paquets de 8 octets • Full Speed : 512 Kbits/s en mode ISO, interruptions de 1 à 255 ms : 1000 IR/s, paquets de 64 octets. En mode BULK, la bande passante passe à environ 1 Moctets /s • High Speed : 53 Mbit/s 4

Domaine d’utilisation des différentes vitesses Les raisons des 3 vitesses de l’USB : Low

Domaine d’utilisation des différentes vitesses Les raisons des 3 vitesses de l’USB : Low Speed : Faible coût, sorties souris pratiques, câbles souples car non blindés Full Speed : remplacer les liaisons séries et parallèles High Speed : Pour mettre en valeurs les possibilités de l’USB Low Speed : périphériques interactifs (claviers, souris, consoles) mais aussi des afficheurs, des lecteurs (de carte à puce) et des applications en automatisme (mesure, capteurs) appelés à se développer. Full Speed : téléphonie, modems, disques, imprimants, fax, scanner, autres cartes à puce, multimédia (jeux, audio, vidéo limitée) High speed : multimédia, avec performances supérieures (vidéo) 5

Câble USB Même structure quelque soit la vitesse : 2 paires de fils •

Câble USB Même structure quelque soit la vitesse : 2 paires de fils • Données D+ et D • Alimentation GND et VCC (+5 V) - VBUS Paire de fils de données non blindée en Low Speed (plus souple), blindée en Full Speed et High Speed (protection accrue). Longueur maxi selon la norme : 3 mètres en câble non blindé, 5 mètres en câble blindé Composition d’un câble USB Brochage des connecteurs de type A et B Aspect des connecteurs de type A et B 6

Norme USB 1. 1 : 320 pages, Norme USB 2. 0 : 650 pages

Norme USB 1. 1 : 320 pages, Norme USB 2. 0 : 650 pages Principe du Bus USB : Modèle hiérarchique Maître/Esclave, c’est l’hôte qui décide des transferts, les appareils ne peuvent pas communiquer directement entre eux. Il n’y a pas de gestion de collisions et d’arbitrage des périphériques. Les paquets sont en diffusion générale avec adresse, seul le périphérique concerné répondra. Topologie du bus USB : En « Etoile Série » (tiered star) qui tolère jusqu’à 5 niveaux de concentrateurs, 127 appareils maxi. Un périphérique norme 2. 0 pourra être connecté à un Hub 1. 1, mais il héritera des performances liées à la norme 1. 1 Hôte : PC Hubs Périphériques : appareils 7

Protocole USB = = C’est un protocole à encapsulation. Les unités dialoguent selon le

Protocole USB = = C’est un protocole à encapsulation. Les unités dialoguent selon le principe exposé sur le schèma. L’application hôte dialogue avec le périphérique (USB device) principalement à l’aide des drivers USB. L’USB est composé de plusieurs couches de protocoles bien défines Il y a 4 types de paquets (trames) : • Token (Jeton / en-tête) • SOF (Start Of Frame) • Data (Optionnel) • Acknowledge (Ack : Handshake) 8

Transfert et Transactions Les paquets Jeton Indiquent le type de transaction qui va suivre

Transfert et Transactions Les paquets Jeton Indiquent le type de transaction qui va suivre et a pour but de transporter l’adresse USB et le sens du transfert Les paquets SOF indiquent le commencement d’une nouvelle trame Les paquets Data contiennent les données uitiles Les paquets Handshake sont utilisé pour valider les données ou rapporter les erreurs L’entité de transfert USB est appelée Transaction, elle est généralement composée de paquets juxtaposés, la transition étant un paquet SOF qui indique le début d’une autre transaction. On dit alors qu’un transfert est composé d’une succession de transactions Transaction USB Paquet Jeton début Paquet Data Indique le début de la transaction suivante Paquet Ack Paquet SOF fin 9

Structure d’un paquet Transaction USB Paquet Jeton Paquet Ack Structure d’un Paquet 8 bits

Structure d’un paquet Transaction USB Paquet Jeton Paquet Ack Structure d’un Paquet 8 bits Synchronisation Paquet Data ID Informations spécifiques CRC SOF 2 bits EOP La structure des paquets étant identique, il faut préciser que le format est différent selon la nature du paquet : • Token (Jeton / en-tête) • SOF (Start Of Frame) • Data (Optionnel) • Acknowledge (Ack : Handshake) Les différents formats sont détaillés dans les pages qui suivent. Certains champs spécifiques (Sync, PID, ADDR… etc) sont décrits après ces pages. 10

Le paquet Jeton 3 sortes de paquets Jeton : IN : Informe l’appareil USB

Le paquet Jeton 3 sortes de paquets Jeton : IN : Informe l’appareil USB que l’hôte veut lire des informations OUT : Informe l’appareil USB que l’hôte veut envoyer des informations SETUP : Utilisé pour commencer les transferts de commande 8 bits PID 7 bits ADDRESS 4 bits 3 bits ENDP CRC IN OUT SETPUP 11

Le paquet Data 2 sortes de paquets de données pour la norme USB 1.

Le paquet Data 2 sortes de paquets de données pour la norme USB 1. 1 : DATA 0 et DATA 1 2 sortes de paquets de données pour la norme USB 2. 0 : DATA 2 et MDATA Low Speed : DATA 0 = 8 octets Full Speed : DATA 1 = 64 octets High Speed : DATA 2 = 1024 octets High Speed : MDATA = multiple d’octets 8 bits PID 0 à 1023 bytes 16 bits DATA CRC DATA 0 DATA 1 DATA 2 MDATA 12

Le paquet Handshake 3 sortes de paquets Handshake : ACK : validant le paquet

Le paquet Handshake 3 sortes de paquets Handshake : ACK : validant le paquet reçu correctement NACK : Indique l’appareil ne peut temporariement ni envoyer ou recevoir des données. Aussi utilisé pendant les transactions d’interruptions pour avertir l’hôte qu’il n’a pas de données à envoyer. STALL (Bloqué) : L’appareil se retrouve dans un état qui va exiger l’intervention de l’hôte 8 bits PID ACK NACK STALL 13

Le paquet SOF Composé de 11 bits : Envoyé par l’hôte toutes les 1

Le paquet SOF Composé de 11 bits : Envoyé par l’hôte toutes les 1 ms +/- 500 ns sur bus Full Speed Envoyé par l’hôte toutes les 125 us +/- 62, 5 ns sur bus High Speed 8 bits PID 11 bytes Numéro de trame 5 bits CRC SOF 14

Détection des erreurs Le standard USB assure une grande fiabilité des transferts par la

Détection des erreurs Le standard USB assure une grande fiabilité des transferts par la détection de nombreuses erreurs au niveau du matériel (hardware) : Liste des erreurs : • Erreurs de paquets • Paquet ID • Bit Stuff • CRC • Data Toggle • Time Out (absence de réponse) • ‘Babling’ • LOA (Loss Of Activity) Toute détection dune erreur de paquet est traduit par la non réponse du périphérique, c’est à dire un Time Out. 15

Champs des Paquets : explications Sync : Tous les paquets doivent commencer avec un

Champs des Paquets : explications Sync : Tous les paquets doivent commencer avec un champ Sync (8 bits en basse vitesse, 32 bits en haute vitesse) qui permet de synchroniser les horloges récepteur avec celle de l’émetteur. Les 2 derniers bits indiquent l’endroit où le PID commence PID : signifie Paquet Identification. Donne le type du paquet envoyé, selon le tableau suivant : Il y a 4 bits pour le PID, toutefois pour assurer qu’il a été reçu correctement, les 4 bits sont complémentés et répétés, faisant un PID de 8 bits au total. 16

Autres champs SOF : Start Of Frame – Début de trame SETUP : Configuration

Autres champs SOF : Start Of Frame – Début de trame SETUP : Configuration ACK : ACKnowledge – Validation NACK : No ACKnowledge – Pas de validation STALL : Bloqué PREamble : Synchronisation initiale Split : Partager Ping : s’assurer d’une bonne connexion ADDR : Ce champ détermine à quel appareil le paquet est destiné. Codé sur 7 bits, il permet de supporter 127 appareils. L’adresse 0 n’est pas valide, tant qu’un appareil qui n’a pas encore d’adresse attribuée, doit répondre aux paquets envoyés à l’adresse 0. ENDP : Champ de terminaison constitué de 4 bits, autorisant 16 terminaisons possibles. CRC : Contrôle à Redondance Cyclique sur les données à l’intérieur du paquet. Paquets jetons : CRC sur 5 bits. Paquets de données : CRC sur 16 bits. EOP : End Of Paquet – Fin de Paquet 17

Autres spécifications Le branchement à chaud ou « Hot Plug In » Lors du

Autres spécifications Le branchement à chaud ou « Hot Plug In » Lors du branchement d’un appareil, un échange d’information a lieu avec l’hôte. Cet échange est dénommé « énumération » . Il permet de reconnaître et de qualifeir le nouveau venu. 2 types d’appareils cohabitent sur USB : - Ceux qui exigent une bande passante garantie : ISO (isochrone) - Ceux qui se partagent la bande passante : BULK (flux) Lors du branchement d’un nouvel élément, une nouvelle adresse est assignée par l’hôte, de 1 à 127 Chaque appareil est assigné un driver qui lui est spécifique. Choix Low Speed – High Speed Se fait par hard, en positionnant une résistance de Pull. Up de 1. 5 Kohm sur D+ (high) ou sur D- (low) au niveau de l’appareil connecté. +3. 0/3, 6 vdc 1, 5 Kohm Hôte 1, 5 Kohm D+ D 15 Kohm D+ ou D 15 Kohm Full Speed D+ DLow Speed Appareil connecté 18

Temps de propagation : Quelques chiffres, selon la norme - Temps de propagation le

Temps de propagation : Quelques chiffres, selon la norme - Temps de propagation le long du câble : 30 ns / mètre - À travers un hub : 40 ns par hub - Temps de réponse de la fonction adressée : 700 ns maxi - Temps de propagation aller-retour entre hôte et la fonction adressée : 1300 ns maxi Temps de connexion et de déconnexion : Les pattes d’alimentation sont plus longue sur les connecteurs, pour assurer l’alimentation à l’insertion, avant la transmission des données. C’est la différence de potentiel sur le port qui déclenche la phase d’énumération. Le soft de l’hôte scanne continuellement les ports et les hubs >2, 5 us Courbe de déconnexion 19

Courbes 20

Courbes 20

Codage bit : NRZI USB utilise le codage bit NRZI (Non Retour à Zéro

Codage bit : NRZI USB utilise le codage bit NRZI (Non Retour à Zéro Inversé) • 1 logique = non changement d’état du bit • 0 logique = changement d’état du bit Bit stuffing inséré après 6 bits consécutifs identiques (synchronisation d’horloge) 21

Consommation Aucun appareil ou hub ne peut consommer plus de 100 m. A avant

Consommation Aucun appareil ou hub ne peut consommer plus de 100 m. A avant d’être énuméré. Après la consommation peut aller jusqu’à : - 500 m. A pour un « High Power device » - 100 m. A pour un « Low Power device » Généralement, les Low USB consomment 1 unité (100 m. A) et les High USB 5 unités(500 m. A) C’est une commande soft, issue descripteur, qui fait passer un appareil de 1 unité à 5 unités après énumération. Différents types d’alimentation du BUS USB - La tension fournie varie de 4. 4 V à 5. 25 V. La majorité des appareils fonctionnent en 3, 3 V et doivent posséder un régulateur. High-power bus-powered functions : - Toute l’énergie d’alimentation passe par le Bus USB (VBUS), soit 500 m. A maxi après configuration Self-powered functions : - Appareils avec alimentation mixte : 1 unité depuis le VBUS et le reste depuis une source externe. Courant de veille : - Un mode « suspend » consommation s’active après 3 ms d’inactivité du bus. Le courant de veille standard est de 500 u. A 22

Les Hubs Un hub est un boitier multi-connecteurs USB qui permet de multiplier les

Les Hubs Un hub est un boitier multi-connecteurs USB qui permet de multiplier les prises. La différence entre un hub et un switch est que le hub renvoi les paquets sur tous les ports alors que le switch identifie le destinataire du paquet et ne l’envoie qu’à lui. Chaque hub doit pouvoir fournir 100 m. A par port. Un hub « self powered » est alimenté par l’extérieur et doit pouvoir fournir 100 m. A + 500 m. A par port après énumération (avec protection 5 A maxi). On ne peut cascader directement que 2 Bus powered Hubs. Alimentation port amont (500 m. A) Logique Switch Bus-powered hub Alimentation port 100 m. A/port Low-power uniquement Alimentation port amont (100 m. A) Logique Limiteur Alimentation extérieure Self-powered hub Alimentation port 500 m. A/port High-power ou Low-power 23

Les Transferts Il existe 4 modes de transfert : Contrôle : Utilisé principalement pour

Les Transferts Il existe 4 modes de transfert : Contrôle : Utilisé principalement pour les opérations de configurations et d’initialisations. Compatible Low et Full speed Isochrone : En Full speed seulement, garantit la bande passante mais n’assure pas la reprise sur erreur. Utilisé pour les transferts nécessitant un flux régulier de données comme le camérs, téléphones… Interrupt : destiné à des échanges limités et périodiques, il garantit la fréquence des scrutations et des reprises sur erreurs. Utilisé pour des transferts à l’initiative du périphérique(asynchrone) et pour des transferts périodiques ou permanents comme les claviers. Compatible Low et Full speed Bulk : En Full speed seulement, pour les gros transferts de données. Le débit est variable et dépend de la disponibilité. Ce mode assure les reprises sur erreur. 24

Les différents types de transfert Mode de transfert Contrôle Isochrone Interrupt Bulk 25

Les différents types de transfert Mode de transfert Contrôle Isochrone Interrupt Bulk 25

Enumération et descripteurs Enumération : Processus dynamique qui sert à identifier un appareil USB

Enumération et descripteurs Enumération : Processus dynamique qui sert à identifier un appareil USB et à lui affecter une adresse unique. Principe : Le périphérique fournit un ensemble de « descripteurs » qui en permet l’identification, dès son raccordement. Au démarrage du PC, l’hôte scanne les appareils les uns après les autres, définit les drivers puis affecte les adresses uniques. Le processus est le même au raccordement d’un appareil en fonctionnement dynamique. Les descripteurs : Ce sont des blocs d’informations pré-formatés. Tous les appareils USB doivent obligatoirement posséder les descripteurs standard. Rôle descripteurs : Permet la reconnaissance de chaque composant USB. Lorsque l’on connecte un appareil à l’hôte (typiquement le PC), le dispositif Plug&Play utilise les informations descripteurs pour initialiser automatiquement la reconnaissance et le dialogue. Les descripteurs sont rassemblés dans un fichier texte. INF et fournissent des informations utiles telles que : type de périphérique, puissance, dispositif de transfert des données. . . etc. Il y a 4 descripteurs standard qui sont indispensables. Il est possible d’ajouter descripteurs complémentaires pour affiner la reconnaissance et les conditions de fonctionnement de l’appareil USB. 26

Les descripteurs Les 4 descripteurs standard indispensables sont les suivants : D’autres descripteurs sont

Les descripteurs Les 4 descripteurs standard indispensables sont les suivants : D’autres descripteurs sont possibles, • Device descriptor mais non indispensables : • Configuration descriptor • Interface descriptor • Device qualifier descriptor • Endpoint descriptor • Other speed configuration descriptor • String descriptor • Interface power descriptor Identification descripteurs 27

Hiérarchie descripteurs Descripteur Device Config Interface Endpoint Diagramme hiérarchique descripteurs Il existe deux types

Hiérarchie descripteurs Descripteur Device Config Interface Endpoint Diagramme hiérarchique descripteurs Il existe deux types d’informations dans les descripteurs : • Les informations standard à tous les périphériques USB • Les informations spécifiques à chaque périphérique 28

Device Descriptor 18 01 C’est le premier descripteur que vient lire l’hôte : il

Device Descriptor 18 01 C’est le premier descripteur que vient lire l’hôte : il donne les informations générales sur l’appareil connecté VID PID 29

Configuration Descriptor Ce descripteur renseigne sur les différents états dans lequel peut se trouver

Configuration Descriptor Ce descripteur renseigne sur les différents états dans lequel peut se trouver le composant USB 9 02 30

Interface descriptor 9 04 Le descripteur d’interface communique une information unique à tous ses

Interface descriptor 9 04 Le descripteur d’interface communique une information unique à tous ses Endpoints 31

Endpoint Descriptor 7 05 Un descripteur Endpoint indique la direction et les types de

Endpoint Descriptor 7 05 Un descripteur Endpoint indique la direction et les types de transferts, et d’autres informations En fait, l’ordinateur hôte communiquement avec ces Endpoints. Tous les transferts de paquets de données transitant sur le bus proviennent d’un Endpoint ou sont envoyés à un Endpoint. USB Low Speed : jusqu’à 3 Endpoints possibles USB High Speed : jusqu’à 15 Endpoints possibles L’Endpoint 0 est particulier : c’est le seul qui est bidirectionnel et présent dans tous les dispoitifs. Il est utilisé par l’hôte pour contrôler le système. Il fonctionne toujours en mode Control 32

HID Descriptor 21 Ce descripteur très utilisé concerne toute la catégorie Human Interface Device

HID Descriptor 21 Ce descripteur très utilisé concerne toute la catégorie Human Interface Device (HID), regroupant tous les appareils qu’utilisent directement des personnes : souris, claviers, gamepads, écrans… Les descripteurs relatifs aux HID sont envoyés après les descripteurs d’interface et avant les descripteurs d’Endpoints. 33

VID Vendor IDentifier / PID Product IDentifier VID : Vendor ID – Identification du

VID Vendor IDentifier / PID Product IDentifier VID : Vendor ID – Identification du fabricant par l’organisation USB-IF forum PID : Product ID – Identification du produit par le fabricant Chaque fabricant possède un VID vendu par l’organisation USB « http: //www. usb. org » et codé sur 16 bits. Le PID sert à identifier le produit du fabricant. L’allocation des PID est faite par le fabricant et est aussi codé dur 16 bits Chaque couple VID/PID doit être unique sur le marché. 34

Les fichiers d’information. INF - Les fichier. INF (INFormation) sont des fichiers texte qui

Les fichiers d’information. INF - Les fichier. INF (INFormation) sont des fichiers texte qui servent au Plug&Play. Il existe un jeu de fichiers d’information génériques livrés avec le système d’exploitation - Un fichier. INF est orgnaisé en plusieurs sections. Chaque section (il en existe une vingtaine) possède une utilité particulière. - Les fichiers. INF servent à la détection des appareils (installation driver), et leur installation automatique. Suite du tableau page suivante …. . 35

Champs des fichiers. INF … suite de la page précédente. 36

Champs des fichiers. INF … suite de la page précédente. 36

Rôle des fichiers. INF Lors du branchement d’un appareil USB, le couple PID /

Rôle des fichiers. INF Lors du branchement d’un appareil USB, le couple PID / VID est transmis à l’hôte (PC). L’hôte scanne alors les fichiers d’information. INF pour trouver le fichier correspondant (dans « C: /windows/inf » ). Si le fichier n’est pas trouvé, l’assistant d’installation des drivers est lancé automatiquement et guide l’utilisateur dans sa démarche. Les fichiers. INF standard peuvent suffire à la reconnaissance complète de l’appareil : dans ce cas là, son installation est transparente pour l’utilisateur. Il existe des fichiers . INF qui n’ont pas de couples VID/PID précis mais des plages de valeurs permettant de regrouper les appareils utilisant un driver identique. Les fichiers . INF contiennent des informations permettant de charger et de définir le driver (extension. SYS) adapté à l’appareil (C: /windows/system 32/drivers) Le driver assure le lien entre le système d’exploitation et le matériel. Les fichiers. INF peuvent être générés à l’aide de logiciels tels que Infedit, Geninf, Chk. INF et Inf. Cat. Ready…ou des petits Free. Ware accessibles par internet. 37

FIN de Présentation Patrick MONASSIER Université Lyon 1 France 38

FIN de Présentation Patrick MONASSIER Université Lyon 1 France 38