Cours 19 - Université Laval

publicité
Ordinateurs, Structure
et Applications
GIF-1001
Cours 19, Le USB
Etienne Tremblay
Université Laval, Hiver 2012
GIF-1001
Cours 19, p.1
USB
•
•
•
•
USB signifie Universal Serial Bus
Le USB a été conçu afin de remplacer le port série
L’utilisation du USB implique des redevances. Être membre officiels des
développeurs de USB coûte 2500$ USD par année. Avoir un Vendor_ID
coûte 200$ USD par année…
Il existe trois normes USB principales:
– USB 1.1 (1998)
– USB 2.0 (2000, révisé en 2002).
– USB 3.0 (2008)
•
À moins que ce ne soit explicitement indiqué, ce document décrit USB2.0.
Une section à la fin du document présente USB3.0.
GIF-1001
Cours 19, p.2
Vitesses de communication
•
Le USB 2.0 supporte 3 vitesses de communication:
– Basse vitesse à 1.5 Mb/s pour les appareils comme les claviers, souris,
joystick
– Pleine vitesse 12 Mb/s pour des appareils à gros débits comme les
modems et téléphones.
– Haute vitesse 480 Mb/s pour des appareils multimédia à très haut débit
comme les caméoscope (une caméra numérique).
•
Le USB 3.0 supporte une vitesse additionnelle:
– Le SuperSpeed 5 Gigabit/s avec une vitesse effective autour de 4 Gbps.
GIF-1001
Cours 19, p.3
Caractéristique générales
•
•
•
•
•
•
•
Les transactions USB se font à l’aide de jetons (voir plus loin), c’est-à-dire à
l’aide de bytes transmis ayant des valeurs et significations précises.
Le port USB est totalement contrôlé par un contrôleur unique appelé hôte
(host). L’hôte, souvent le PC, initie toutes les communications (même les
interruptions). Il est le maître absolu du bus.
Les jetons et messages transitent dans des trames de 1ms ou de 125us
(haute vitesse) (voir plus loin).
Le bus USB peut fournir l’alimentation des appareils qui y sont connectés.
Quatre modes de transfert sont supportés: Contrôle, Interruptions, Bloc et
Isochrone. Ils sont tous détaillés plus loin.
Les appareils nouvellement branchés sur le port USB sont détectées
automatiquement.
Dans USB 3.0, les deux liens additionnels permettent aux slaves d’indiquer
des évènements de façon asynchrone au Master sans que celui-ci ait initié
la communication.
GIF-1001
Cours 19, p.4
Topologie d’un réseau USB
•
•
•
•
•
Un réseau USB a une topologie en
étoile. Les ports descendent de l’hôte
vers les appareils. Ils montent vers
l’hôte.
Les HUBs sont des appareils qui
permettent de relier plusieurs appareils
à un seul port USB. Le rôle principal
des HUBs est de transférer les
données de l’hôte aux périphériques.
Il y a 127 appareils maximum dans un
réseau USB. Chaque appareil a son
adresse.
Il peut y avoir 5 niveaux de hub en plus
de l’hub racine.
Chaque hub contrôle ses ports afin de
savoir si un appareil s’y connecte
Host
HUB Root
HUB 1
HUB 2
HUB 3
USB Device
USB Device
USB Device
USB Device
GIF-1001
Cours 19, p.5
Classes de devices USBs
•
•
Tous les appareils USB appartiennent à une classe. Les classes d’appareils
sont:
– Audio (Haut parleurs)
– Communication (Modem)
– Human Input Device (Souris, Clavier)
– Display (Écran)
– Physical feedback devices (Force feedback joystick)
– Power (Uninterruptible power supply)
– Printer
– Mass storage (Disque dur)
– Hub !
Une constante est associée à chaque classe. Cette constante se retrouve
dans le descripteur de l’appareil (voir plus loin) selon la classe de l’appareil.
GIF-1001
Cours 19, p.6
Composantes logiques d’une device USB
•
•
•
•
Chaque appareil USB contient une ou plusieurs connections logiques
appelées endpoints (terminaisons en français). L’hôte envoie ou reçoit des
données d’un endpoint.
Chaque appareil doit avoir au moins un endpoint, le endpoint 0. C’est avec
cet endpoint que l’hôte communique avec d’obtenir des informations sur les
configurations d’un appareil.
Un groupe de enpoints est appelé une interface. Un groupe d’interfaces est
appelé une configuration. Un appareil peut avoir plusieurs interfaces
réparties dans plusieurs configurations. Toutefois, la plupart des appareils
n’ont qu’une configuration avec une unique interface.
Le lien entre l’hôte et une terminaison est appelé pipe (canal en français).
GIF-1001
Cours 19, p.7
USB 2.0 Hardware
•
•
•
•
Le câble USB 2.0 est constitué de
4 fils: Vbus, GND, D+ et D-. Vbus
et GND sont l’alimentation 5Vdc
(entre 4.75V et 5.25V) et la
référence électrique. D+ et Dservent au transport des données.
Il y a deux types de connecteurs
USB tel que montré à droite.
Plus la fréquence est élevée, plus
les câbles doivent être courts. En
haute vitesse la longueur max.
d’un câble USB est 5m.
La puissance maximum pouvant
être tirée d’une connexion USB
est 5*(5V*100mA), soit 2.5W.
L’unité de courant de base est
100mA.
Mating face of USB
type A female
Mating face of USB
type B female
Tiré de usb_20.pdf (http://www.usb.org/developers/) et
http://www.networktechinc.com/technote.html
GIF-1001
Cours 19, p.8
USB 3.0 Hardware
•
•
Le câble USB 3.0 est constitué des 4 fils du câble USB2.0
auxquels sont ajoutés 4 autres fils pour créer 2 canaux de
transfert de données en mode différentiel.
Les deux liens additionnels sont en mode FULL-DUPLEX et il
existe deux connecteurs (A et B) pour brancher la transmission de
l’hôte sur la réception des périphériques et pour brancher la
transmission des périphériques sur la réception de l’hôte.
Signal
Broche
Signal
Couleur
Protocole
Connecteur A Connecteur B
Fil
Fil
Fil
Fil
1
2
3
4
Rouge
Blanc
Vert
Noir
VBUS
D?
D+
GND
USB 2 et USB 3
USB 2 et USB 3
USB 2 et USB 3
USB 2 et USB 3
Fil
5 Bleu
StdA_SSRX?
StdA_SSTX?
USB 3
Fil
Drain
StdA_SSRX+
6 Jaune
7 Armature GND_DRAIN
StdA_SSTX+
USB 3
USB 3
Fil
8 Mauve
StdA_SSTX?
StdA_SSRX?
USB 3
StdA_SSTX+
Fil
9 Orange
Armature Armature Armature Armature
StdA_SSRX+
USB 3
USB 2 et USB 3
GIF-1001
Cours 19, p.9
Encodage des bits USB et valeurs de D+ et D•
•
•
•
•
D+ et D- sont 2 lignes qui pourraient transporter des données en référence à
la masse ou Vcc. Toutefois, les données sont véhiculées par la différence
entre D+ et D-. En basse vitesse, D+ et D- sont dans l’état J lorsque D- > D+
d’au moins 200mV. D+ et D- sont dans l’état K lorsque D+ > D- d’au moins
200mV. Lorsque D+ et D- sont forcée près de la masse par l’hôte, cela
signifie une demande de reset.
Les bits de donnés sont encodés selon le format NRZI: un « 1 » est
représenté par l’absence de changement d’état alors qu’un « 0 » est
représenté par un changement d’état.
Les appareils doivent être connectés en état de haute impédance par
rapport aux les lignes D+ et D-. Par contre, la ligne D+ doit être connectée à
une tension entre 3 et 3.6Vdc par une résistance de 1.5KOhms pour un
appareil pleine vitesse. Pour un appareil basse vitesse, il faut polarise la
ligne D- ainsi. Un appareil haute vitesse doit se présenter comme un
appareil pleine vitesse, mais retirer la polarisation après initialisation de
l’appareil. Ces polarisations du voltage de D+ et D- permet de détecter la
présence de nouveaux appareils.
Tout appareil doit pouvoir supporter un court circuit entre Vbus/Masse et ou
D+/D-.
Dans USB 3.0, les octets sont transmis en symboles encodés 8bits/10bits.
Le but de cet encodage est d’éviter de longues séquences de 0 ou de 1 afin
de préserver le contenu fréquentiel du signal de communication.
GIF-1001
Cours 19, p.10
Types de transfert
•
Le USB supporte 4 types de transfert:
–
–
–
–
•
•
•
•
•
Transfert de contrôle
Transfert isochrone
Transfert par interruption
Transfert par bloc
Le transfert de contrôle sert à la configuration et à la commande d’un
appareil. Il se compose d’un jeton SETUP (voir plus loin) et de l’endpoint 0.
Le transfert isochrone est un mode de transfert pour lequel les données sont
transmises à l’intérieur d’une trame et elles sont synchronisées avec les
débuts de trames. Ce type de transfert est utilisé pour la pleine et la haute
vitesse.
Le transfert par interruption est utilisé par les appareils ayant peu de
données à transmettre, mais ayant des données qui doivent être transmises
rapidement (exemple: clavier ou souris). Les interruptions sont détectées par
polling (interrogation successives) de la par de l’hôte. La fréquence de polling
requise est donnée par les descripteurs de l’appareil.
Le transfert par bloc permet de transférer des volumes importants de
données lorsqu’il n’y a pas de contraintes temporelles (exemple:
imprimante).
Dans USB 3.0, le polling interruption n’est pas nécessaire pour détecter une
interruption les esclaves peuvent signaler des évènements sur le bus FULLDUPLEX.
GIF-1001
Cours 19, p.11
Protocole de bas niveau
Voir http://membres.lycos.fr/grandzebu/electronique/usb/usb_resume.htm
Branchement d’un périphérique
Voir http://membres.lycos.fr/grandzebu/electronique/usb/usb_resume.htm
Requêtes du jeton SETUP
Voir http://membres.lycos.fr/grandzebu/electronique/usb/usb_resume.htm
Les descripteurs
Voir http://membres.lycos.fr/grandzebu/electronique/usb/usb_resume.htm
GIF-1001
Cours 19, p.12
Figures reliées au items précédents (1/2)
Trame USB
Exemples de paquets USB
GIF-1001
Cours 19, p.13
Figures reliées au items précédents (2/2)
Transactions USB
Descripteurs USB
GIF-1001
Cours 19, p.14
Identification d’un appareil USB
•
•
•
Windows identifie un appareil USB grâce à ses Hardware IDs. Les
Hardware IDs sont formés des champs idVendor, idProduct et bcdDevice du
descripteur d’appareil.
Si Windows ne trouve pas de pilote de périphérique pour les Hardware IDs,
il cherche un pilote de périphérique avec les Compatibles IDs. Les
Compatibles IDs sont formés des champs bInterfaceClass,
bInterfaceSubClass et bInterfaceProtocl du descripteur d’interface.
Si Windows ne trouve pas de pilote compatible encore une fois, il demande
à l’usager de fournir le pilote.
GIF-1001
Cours 19, p.15
On-The-Go (OTG)
•
•
•
•
•
L’USB 1.1 et 2.0 est un protocole Master/Slave, le périphérique connecté à
l’ordinateur ne peut pas initier la communication. Pour certaines
périphériques, cette contrainte est inacceptable. Par exemple, une appareil
photo numérique USB peut transférer des photos à un ordinateur en mode
Slave, mais il serait intéressant d’envoyer des images directerement à une
imprimante en mode Master. Autre exemple: un I-pod permettant d’envoyer
des pièces de musiques à une chaine stéréo en master, mais recevant les
mêmes oeuvres musicales d’un ordinateur. Pour permettre à un
périphérique USB d’être tour à tour Master et Slave, le USB On-The-Go
(OTG) a été inventé.
Pour envoyer ou recevoir des données, un périphérique USB utilise le
protocole USB classique. Toutefois deux protocoles ont été ajoutés afin de
négocier qui sera le Maître du bus et afin de gérer la puissance. Le HNP
(Host Negociation Protocol) détermine qui est l’hôte, c’est-à-dire qui initie les
échanges. Le SRP (Session Request Protocol) permet de déterminer quand
le lien de puissance est actif, c’est-à-dire déterminer quand le Slave USB est
alimenté en 5V.
Le USB OTG a été créé pour relier deux appareils (souvent des gadgets)
qui fonctionnent souvent avec des batteries. La gestion de puissance est
une facette aussi importante du OTG que la détermination de l’hôte.
Les appareils OTG utilisent un connecteur de type mini-AB.
L’OTG sert pour relier deux appareils USB-OTG seulement.
GIF-1001
Cours 19, p.16
Gestion de Puissance
• L’USB 2.0 gère la puissance des appareils connectés sur
le bus de plusieurs manières:
– L’appareil doit négocier de la puissance en se connectant
– En cours d’opération, l’hôte peut débrancher un appareil.
– Des états envoyés du D+ et D- peut demander la réduction, le
reset ou la mise en veille des appareils.
• USB 3.0 offre davantage de souplesse dans la gestion
de la puissance parce que certains éléments du
protocole ne sont plus requis. Par exemple, le polling
pour détecter les interruptions n’est plus nécessaire et un
appareil avec interruption peut être “débrancher” plus
facilement.
GIF-1001
Cours 19, p.17
Différences entre USB 2.0 et USB 3.0
•
La table suivante résume les différences entre USB 2.0 et USB 3.0
Caractéristique
Vitesse maximum
USB3
5Gbps (SuperSpeed)(4Gbps effectif)
Nombre de fils
8 fils + Drain (9 broches sur le connecteur)
Même que USB2 + 2 liens différentiels
Non spécifié (~3 mètres)
8/10bits
FULL-DUPLEX
Master Slave, messages asynchrones des slaves
possibles, messages avec routes distinctes
Résistance de polarisation
Longueur Max de câble
Encodage des octets
Direction
Protocole de transaction
Détection d’appareil
(Énumération)
Gestion de puissance
Fournit 150mA de base et 900mA lors de
configuration
Peut débrancher un périphérique pour limiter la
consommation de puissance
Supporte la gestion de puissance à plusieurs
niveaux (exemple: peut couper le transmetteur et
le receveur seulement d'un appareil)
USB2
1.5 Mbps (low-speed), 12Mbps (full-speed)
480Mbps (high-speed)
4 fils
5V, D+, D-, GND
5 mètres
NZRI
HALF-DUPLEX
Master Slave, interruptions par polling,
messages diffusés à tous
Résistances de polarisation et machine d'états
de port pour HI-SPEED
Fournit 100mA de base et 500mA lors de
configuration
Peut débrancher un périphérique pour limiter la
consommation de puissance
GIF-1001
Cours 19, p.18
Conception d’un périphérique sur le port USB
•
•
Au niveau matériel, concevoir un appareil communiquant par USB est
relativement simple: l’alimentation peut être fournie par le port et il n’y a que
deux lignes de communication à brancher. En faisant attention aux niveaux
de tensions requis sur D+ et D- en fonction de l’état de l’appareil et des bits
transmis/reçus, concevoir le matériel n’est pas très difficile. Cependant,
utiliser un microprocesseur est presque obligatoire: les bits sont transmis en
série (il faut l’équivalent d’un registre à décalage), il faut décoder l’adresse
des messages transmis, il faut permettre la détection automatique de
l’appareil, il faut implémenter les descripteurs USB, il faut… Notez que
certains microprocesseurs comme le PIC16C745 gèrent les pins D+/D- et
l’ensemble des fonctionnalités requises pour communiquer sur le port USB.
Veuillez communiquer avec le professeur pour plus d’info!
Pour communiquer avec un périphérique sur le port USB à partir d’un PC, il
faut, idéalement, créer un pilote de périphérique générique pour l’appareil.
Ensuite, il faudra créer modifier le pilote pour y introduire du code spécifique
à l’appareil. Veuillez communiquer avec le professeur pour plus d’info!
GIF-1001
Cours 19, p.19
Références et exercices
• Références
– http://www.usb.org/developers/
– Irv Englander: p.258, 260-261
– Writing Windows WDM Device Drivers, Chris Cant, CMP Books, 1999,
ISBN 0-87930-565-7, Chapitre 20
– http://membres.lycos.fr/grandzebu/electronique/usb/usb_resume.htm
•
Exercices
– De quelle manière est détectée le branchement d’un nouvel appareil
USB?
– Donnez les états de D+ et D- pour la séquence binaire suivante:
00110101.
– Un jeton OUT est-il toujours suivi d’un jeton DATA?
– Comment sont détectées les interruptions d’un appareil USB?
– Qu’est qu’un descripteur? Donnez 3 exemples d’utilisation des
descripteurs.
– Décrivez les quatres types de transfert USB.
– Discutez du problème de synchronisation pour les transfert isochrones.
– À quoi servent les requêtes standards du JETON SETUP?
GIF-1001
Cours 19, p.20
Téléchargement