Title: Le%20bus%20USB
1Le bus USB
- Universal Serial Bus
- LUSB et sa norme
Patrick MONASSIER INSAT - Tunis
2Naissance de lUSB
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,
PlugPlay, utilisable aussi bien pour une souris
que pour un moniteur Possibilté de brancher un
grand nombre dappareils 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 1.1 - ajoute
une vitesse de 480Mbps (High Speed) et optimise
la bande passante
3Avantages de lUSB
- Les avantages de lUSB
- Faible coût de linterface
- Indépendace vis-à-vis des machines hôtes
- Hot PlugPlay (branchement/débranchement
sous-tension) - Jusquà 127 périphériques possibles
- Fiable et sécurisé (détection et correction
derreurs) - Plusieurs vitesses possibles 1.5 12 et 480
Mb/s - 4 types de transferts (jeton, SOF, data,
handshake) - Possibilité dajouter 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)
- Lavantage du Hot PlugPlay
- l O.S. détecte automatiquement le périphérique
qui vient dêtre connecté - Il charge automatiquement le driver sil est
disponible - Si non, il demande le CD driver de lappareil
et facilite son installation - Pas de redémarrage nécessaire, lappareil est
prêt à lemploi après reconnaissance - Au prochain branchement, la reconnaissance de
lappareil est automatique - Pas dadresse de port à configurer (affectation
dynamique de 1 à 127, codée sur 7 bits)
4Dé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, derreur et les données. Dautre part,
plusieurs périphériques doivent se partagent le
bus - Débits réels selon la norme USB, hors contraintes
de lOS - 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
5Domaine dutilisation des différentes vitesses
Les raisons des 3 vitesses de lUSB 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
lUSB 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)
6Câ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 dun câble USB
Brochage des connecteurs de type A et B
Aspect des connecteurs de type A et B
7Norme USB
Norme USB 1.1 320 pages, Norme USB 2.0 650
pages
Principe du Bus USB Modèle hiérarchique
Maître/Esclave, cest lhôte qui décide des
transferts, les appareils ne peuvent pas
communiquer directement entre eux. Il ny a pas
de gestion de collisions et darbitrage 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
8Protocole USB
- Cest un protocole à encapsulation.
- Les unités dialoguent selon le principe exposé
sur le schèma. - Lapplication hôte dialogue avec le périphérique
(USB device) principalement à laide des drivers
USB. - LUSB 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)
9Transfert et Transactions
Les paquets Jeton Indiquent le type de
transaction qui va suivre et a pour but de
transporter ladresse USB et le sens du
transfert Les paquets SOF indiquent le
commencement dune nouvelle trame Les paquets
Data contiennent les données uitiles Les paquets
Handshake sont utilisé pour valider les données
ou rapporter les erreurs Lentité 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 dune autre transaction. On dit alors quun
transfert est composé dune succession de
transactions
Transaction USB
Indique le début de la transaction suivante
Paquet Jeton
Paquet Data
Paquet Ack
Paquet SOF
début
fin
10Structure dun paquet
Transaction USB
Paquet Jeton
Paquet Data
Paquet Ack
SOF
Structure dun 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.
11Le paquet Jeton
3 sortes de paquets Jeton IN Informe
lappareil USB que lhôte veut lire des
informations OUT Informe lappareil USB que
lhôte veut envoyer des informations SETUP
Utilisé pour commencer les transferts de commande
8 bits 7 bits 4 bits
3 bits
PID
ADDRESS
ENDP
CRC
IN OUT SETPUP
12Le 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 doctets
8 bits 0 à 1023 bytes
16 bits
PID
DATA
CRC
DATA0 DATA1 DATA2 MDATA
13Le paquet Handshake
3 sortes de paquets Handshake ACK validant
le paquet reçu correctement NACK Indique que
lappareil ne peut temporariement ni envoyer ou
recevoir des données. Aussi utilisé pendant les
transactions dinterruptions pour avertir lhôte
quil na pas de données à envoyer. STALL
(Bloqué) Lappareil se retrouve dans un état
qui va exiger lintervention de lhôte
8 bits
PID
ACK NACK STALL
14Le paquet SOF
Composé de 11 bits Envoyé par lhôte toutes
les 1ms /- 500ns sur bus Full Speed Envoyé par
lhôte toutes les 125us /- 62,5ns sur bus High
Speed
8 bits 11 bytes
5 bits
PID
Numéro de trame
CRC
SOF
15Dé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, cest à dire
un Time Out.
16Champs 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 lendroit 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 quil 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.
17Autres 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 sassurer dune bonne
connexion ADDR Ce champ détermine à quel
appareil le paquet est destiné. Codé sur 7 bits,
il permet de supporter 127 appareils. Ladresse 0
nest pas valide, tant quun appareil qui na pas
encore dadresse attribuée, doit répondre aux
paquets envoyés à ladresse 0. ENDP Champ de
terminaison constitué de 4 bits, autorisant 16
terminaisons possibles. CRC Contrôle à
Redondance Cyclique sur les données à lintérieur
du paquet. Paquets jetons CRC sur 5 bits.
Paquets de données CRC sur 16 bits. EOP End
Of Paquet Fin de Paquet
18Autres spécifications
Le branchement à chaud ou Hot Plug In Lors
du branchement dun appareil, un échange
dinformation a lieu avec lhôte. Cet échange est
dénommé énumération . Il permet de reconnaître
et de qualifeir le nouveau venu. 2 types
dappareils cohabitent sur USB - Ceux qui
exigent une bande passante garantie ISO
(isochrone) - Ceux qui se partagent la bande
passante BULK (flux) Lors du branchement dun
nouvel élément, une nouvelle adresse est assignée
par lhô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
lappareil connecté.
3.0/3,6vdc
1,5Kohm
1,5Kohm
Hôte
D D-
D D-
D D-
ou
Full Speed
Low Speed
15Kohm
15Kohm
Appareil connecté
19Temps
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 dalimentation sont plus longue sur les
connecteurs, pour assurer lalimentation à
linsertion, avant la transmission des
données. Cest la différence de potentiel sur le
port qui déclenche la phase dénumération. Le
soft de lhôte scanne continuellement les ports
et les hubs
gt2,5us
Courbe de déconnexion
20Courbes
21Codage 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 dhorloge)
22Consommation
- 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) - Cest une commande soft, issue des descripteur,
qui fait passer un appareil de 1 unité à 5
unités après énumération. - Différents types dalimentation 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 dalimentation 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 sactive après
3ms dinactivité du bus.
23Les 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
lenvoie quà lui. Chaque hub doit pouvoir
fournir 100mA par port. Un hub self powered
est alimenté par lexté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 500mA/port High-power ou
Low-power
Alimentation port 100mA/port Low-power
uniquement
24Les Transferts
Il existe 4 modes de transfert Contrôle
Utilisé principalement pour les opérations de
configurations et dinitialisations. Compatible
Low et Full speed Isochrone En Full speed
seulement, garantit la bande passante mais
nassure 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
à linitiative 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.
25Les différents types de transfert
Mode de transfert Contrôle
Isochrone Interrupt Bulk
26Enumé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 lidentification, dès son raccordement. Au
démarrage du PC, lhô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 dun appareil en
fonctionnement dynamique. Les descripteurs Ce
sont des blocs dinformations 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 lon connecte un appareil
à lhôte (typiquement le PC), le dispositif
PlugPlay 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 dajouter des descripteurs
complémentaires pour affiner la reconnaissance et
les conditions de fonctionnement de lappareil
USB.
27Les descripteurs
- Les 4 descripteurs standard indispensables
- sont les suivants
- Device descriptor
- Configuration descriptor
- Interface descriptor
- Endpoint descriptor
- Dautres descripteurs sont possibles,
- mais non indispensables
- Device qualifier descriptor
- Other speed configuration descriptor
- String descriptor
- Interface power descriptor
Identification des descripteurs
28Hiérarchie des descripteurs
Descripteur
Device Config Interface Endpoint
Diagramme hiérarchique des descripteurs
- Il existe deux types dinformations dans les
descripteurs - Les informations standard à tous les
périphériques USB - Les informations spécifiques à chaque
périphérique
29Device Descriptor
18
01
Cest le premier descripteur que vient lire
lhôte il donne les informations générales
sur lappareil connecté
VID
PID
30Configuration Descriptor
Ce descripteur renseigne sur les différents états
dans lequel peut se trouver le composant USB
9
02
31Interface descriptor
9
04
Le descripteur dinterface communique une
information unique à tous ses Endpoints
32Endpoint Descriptor
7
05
Un descripteur Endpoint indique la direction et
les types de transferts, et dautres
informations En fait, lordinateur hôte
communique uniquement avec ces Endpoints. Tous
les transferts de paquets de données transitant
sur le bus proviennent dun Endpoint ou sont
envoyés à un Endpoint.
USB Low Speed jusquà 3 Endpoints possibles USB
High Speed jusquà 15 Endpoints
possibles LEndpoint 0 est particulier cest
le seul qui est bi-directionnel et présent dans
tous les dispoitifs. Il est utilisé par lhôte
pour contrôler le système. Il fonctionne toujours
en mode Control
33HID Descriptor
21
Ce descripteur très utilisé concerne toute la
catégorie Human Interface Device (HID),
regroupant tous les appareils quutilisent
directement des personnes souris, claviers,
gamepads, écrans Les descripteurs relatifs aux
HID sont envoyés après les descripteurs
dinterface et avant les descripteurs dEndpoints.
34VID Vendor IDentifier / PID Product IDentifier
VID Vendor ID Identification du fabricant par
lorganisation USB-IF forum PID Product ID
Identification du produit par le
fabricant Chaque fabricant possède un VID vendu
par lorganisation USB http//www.usb.org et
codé sur 16 bits. Le PID sert à identifier le
produit du fabricant. Lallocation des PID est
faite par le fabricant et est aussi codé dur 16
bits Chaque couple VID/PID doit être unique sur
le marché.
35Les fichiers dinformation .INF
- Les fichier .INF (INFormation) sont des
fichiers texte qui servent au PlugPlay. Il
existe un jeu de fichiers dinformation
génériques livrés avec le système
dexploitation - 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 ..
36Champs des fichiers .INF
suite de la page précédente.
37Rôle des fichiers .INF
Lors du branchement dun appareil USB, le couple
PID / VID est transmis à lhôte (PC). Lhôte
scanne alors les fichiers dinformation .INF pour
trouver le fichier correspondant (dans
C/windows/inf ). Si le fichier nest pas
trouvé, lassistant dinstallation des drivers
est lancé automatiquement et guide lutilisateur
dans sa démarche. Les fichiers .INF standard
peuvent suffire à la reconnaissance complète de
lappareil dans ce cas là, son installation est
transparente pour lutilisateur. Il existe des
fichiers .INF qui nont 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é à lappareil
(C/windows/system32/drivers) Le driver assure
le lien entre le système dexploitation et le
matériel. Les fichiers .INF peuvent être générés
à laide de logiciels tels que Infedit, Geninf,
ChkINF et InfCatReadyou des petits FreeWare
accessibles par internet.
38FIN de Présentation
Patrick MONASSIER Université Lyon 1 France