Télécharger la présentation
1
Universal Serial Bus L’USB et sa norme
Le bus USB Universal Serial Bus L’USB et sa norme Patrick MONASSIER INSAT - Tunis
2
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,5Mbps (Low Speed) et 12Mbps (Full Speed) Avril 2000 : spécification USB 2.0 – compatible ajoute une vitesse de 480Mbps (High Speed) et optimise la bande passante
3
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 3ms : 500uA) 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)
4
Définition des différentes vitesses
3 vitesses sont supportées : USB ,5 Mbit/s Low Speed USB Mbit/s Full Speed USB 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 : 64kbit/s en mode interrupt avec 1 interruption réglable de 10 à 255ms soit dans le meilleur des cas : 100 IR/s, paquets de 8 octets Full Speed : 512 Kbits/s en mode ISO, interruptions de 1 à 255ms : 1000 IR/s, paquets de 64 octets. En mode BULK, la bande passante passe à environ 1Moctets /s High Speed : 53 Mbit/s
5
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)
6
Câble USB Même structure quelque soit la vitesse : 2 paires de fils
Données D+ et D- Alimentation GND et VCC (+5V) - 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
7
Périphériques : appareils
Norme USB 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
8
Protocole USB = = = = C’est un protocole à encapsulation.
= = = = 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)
9
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 Indique le début de la transaction suivante Paquet Jeton Paquet Data Paquet Ack Paquet SOF début fin
10
Informations spécifiques
Structure d’un paquet Transaction USB Paquet Jeton Paquet Data Paquet Ack SOF Structure d’un Paquet 8 bits 2 bits Synchronisation ID Informations spécifiques CRC 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.
11
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 bits bits bits PID ADDRESS ENDP CRC IN OUT SETPUP
12
Le paquet Data 2 sortes de paquets de données pour la norme USB 1.1 : DATA0 et DATA1 2 sortes de paquets de données pour la norme USB 2.0 : DATA2 et MDATA Low Speed : DATA0 = 8 octets Full Speed : DATA1 = 64 octets High Speed : DATA2 = 1024 octets High Speed : MDATA = multiple d’octets 8 bits à 1023 bytes bits PID DATA CRC DATA0 DATA1 DATA2 MDATA
13
Le paquet Handshake 3 sortes de paquets Handshake :
ACK : validant le paquet reçu correctement NACK : Indique que 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
14
Le paquet SOF Composé de 11 bits :
Envoyé par l’hôte toutes les 1ms +/- 500ns sur bus Full Speed Envoyé par l’hôte toutes les 125us +/- 62,5ns sur bus High Speed 8 bits bytes bits PID Numéro de trame CRC SOF
15
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.
16
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.
17
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
18
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 PullUp de 1.5Kohm sur D+ (high) ou sur D- (low) au niveau de l’appareil connecté. +3.0/3,6vdc Hôte 1,5Kohm 1,5Kohm D+ D- D+ D- D+ D- ou Full Speed Low Speed 15Kohm 15Kohm Appareil connecté
19
Temps 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,5us Courbe de déconnexion
20
Courbes
21
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)
22
Consommation Aucun appareil ou hub ne peut consommer plus de 100mA avant d’être énuméré. Après la consommation peut aller jusqu’à : 500mA pour un « High Power device » 100mA pour un « Low Power device » Généralement, les Low USB consomment 1 unité (100mA) et les High USB 5 unités(500mA) C’est une commande soft, issue des 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.4V à 5.25V. La majorité des appareils fonctionnent en 3,3V et doivent posséder un régulateur. High-power bus-powered functions : - Toute l’énergie d’alimentation passe par le Bus USB (VBUS), soit 500mA 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 3ms d’inactivité du bus. Le courant de veille standard est de 500uA
23
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 100mA par port. Un hub « self powered » est alimenté par l’extérieur et doit pouvoir fournir 100mA + 500mA par port après énumération (avec protection 5A maxi). On ne peut cascader directement que 2 Bus powered Hubs. Alimentation port amont (500mA) Alimentation port amont (100mA) Alimentation extérieure Logique Switch Logique Limiteur Bus-powered hub Self-powered hub Alimentation port 100mA/port Low-power uniquement Alimentation port 500mA/port High-power ou Low-power
24
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.
25
Les différents types de transfert
Mode de transfert Contrôle Isochrone Interrupt Bulk
26
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 des 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 des 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 des descripteurs complémentaires pour affiner la reconnaissance et les conditions de fonctionnement de l’appareil USB.
27
Les descripteurs Les 4 descripteurs standard indispensables
sont les suivants : Device descriptor Configuration descriptor Interface descriptor Endpoint descriptor D’autres descripteurs sont possibles, mais non indispensables : Device qualifier descriptor Other speed configuration descriptor String descriptor Interface power descriptor Identification des descripteurs
28
Hiérarchie des descripteurs
Device Config Interface Endpoint Diagramme hiérarchique des 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
29
Device Descriptor C’est le premier descripteur que vient lire l’hôte :
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
30
Configuration Descriptor
Ce descripteur renseigne sur les différents états dans lequel peut se trouver le composant USB 9 02
31
Interface descriptor 9 04 Le descripteur d’interface communique une information unique à tous ses Endpoints
32
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 communique uniquement 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 bi-directionnel 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
33
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.
34
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 « 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é.
35
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 …..
36
Champs des fichiers .INF
… suite de la page précédente.
37
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/system32/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, ChkINF et InfCatReady…ou des petits FreeWare accessibles par internet.
38
FIN de Présentation Patrick MONASSIER Université Lyon 1 France
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.