Title: Etienne Tremblay
1Etienne Tremblay
- Ordinateurs, Structure et Applications
GIF-16116
Cours 19, Le USB
Université Laval, Hiver 2007
2USB
- USB signifie Universal Serial Bus
- Le USB a été conçu afin de remplacer le port
série - Lutilisation 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 deux normes USB principales USB1.1
(1998) et USB2.0 (2000, révisé en 2002). Ce
document décrit USB2.0 qui est compatible avec
USB1.1.
3Vitesses de communication
- Le USB 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).
4Caractéristique générales
- Les transactions USB se font à laide de jetons
(voir plus loin), cest-à-dire à laide 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). Lhô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 lalimentation 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.
5Topologie dun réseau USB
- Un réseau USB a une topologie en étoile. Les
ports descendent de lhôte vers les appareils.
Ils montent vers lhô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 lhô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 lhub
racine. - Chaque hub contrôle ses ports afin de savoir si
un appareil sy connecte
6Classes de devices USBs
- Tous les appareils USB appartiennent à une
classe. Les classes dappareils 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
lappareil (voir plus loin) selon la classe de
lappareil.
7Composantes logiques dune device USB
- Chaque appareil USB contient une ou plusieurs
connections logiques appelées endpoints
(terminaisons en français). Lhôte envoie ou
reçoit des données dun endpoint. - Chaque appareil doit avoir au moins un endpoint,
le endpoint 0. Cest avec cet endpoint que lhôte
communique avec dobtenir des informations sur
les configurations dun appareil. - Un groupe de enpoints est appelé une interface.
Un groupe dinterfaces est appelé une
configuration. Un appareil peut avoir plusieurs
interfaces réparties dans plusieurs
configurations. Toutefois, la plupart des
appareils nont quune configuration avec une
unique interface. - Le lien entre lhôte et un endpoint est appelé
pipe (canal en français).
8USB Hardware
- Le câble USB est constitué de 4 fils Vbus, GND,
D et D-. Vbus et GND sont lalimentation 5Vdc
(entre 4.75V et 5.25V) et la référence
électrique. D et D- servent 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. dun câble USB est 5m. - La puissance maximum pouvant être tirée dune
connection USB est 5(5V100mA), soit 2.5W.
Lunité de courant de base est 100mA.
Tiré de usb_20.pdf (http//www.usb.org/developers/
) et http//www.networktechinc.com/technote.html
9Encodage 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-. D et D- sont dans
létat J lorsque D- gt D dau moins 200mV. D et
D- sont dans létat K lorsque D gt D- dau moins
200mV. Lorsque D et D- sont forcée près de la
masse par lhô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 labsence de
changement détat alors quun 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
lappareil. 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-.
10Types 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 dun appareil. Il se compose
dun jeton SETUP (voir plus loin) et de
lendpoint 0. - Le transfert isochrone est un mode de transfert
pour lequel les données sont transmises à
lintérieur dune 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 de la par de lhôte. La fréquence de
polling requise est donnée par les descripteurs
de lappareil. - Le transfert par bloc permet de transferer des
volumes importants de données lorsquil ny a pas
de contraintes temporelles (exemple imprimante).
11Protocole de bas niveau
Voir http//membres.lycos.fr/grandzebu/electroniqu
e/usb/usb_resume.htm
Branchement dun périphérique
Voir http//membres.lycos.fr/grandzebu/electroniqu
e/usb/usb_resume.htm
Requêtes du jeton SETUP
Voir http//membres.lycos.fr/grandzebu/electroniqu
e/usb/usb_resume.htm
Les descripteurs
Voir http//membres.lycos.fr/grandzebu/electroniqu
e/usb/usb_resume.htm
12Figures reliées au items précédents (1/2)
Trame USB
Exemples de paquets USB
13Figures reliées au items précédents (2/2)
Transactions USB
Descripteurs USB
14Identification dun 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 dappareil. - 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 dinterface. - Si Windows ne trouve pas de pilote compatible
encore une fois, il demande à lusager de fournir
le pilote.
15Conception dun périphérique sur le port USB
- Au niveau matériel, concevoir un appareil
communiquant par USB est relativement simple
lalimentation peut être fournie par le port et
il ny 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 lappareil et des bits transmis/reçus,
concevoir le matériel nest pas très difficile.
Cependant, utiliser un microprocesseur est
presque obligatoire les bits sont transmis en
série (il faut léquivalent dun registre à
décalage), il faut décoder ladresse des messages
transmis, il faut permettre la détection
automatique de lappareil, il faut implémenter
les descripteurs USB, il faut Notez que certains
microprocesseurs comme le PIC16C745 gèrent les
pins D/D- et lensemble des fonctionnalités
requises pour communiquer sur le port USB.
Veuillez communiquer avec le professeur pour plus
dinfo! - Pour communiquer avec un périphérique sur le port
USB à partir dun PC, il faut, idéalement, créer
un pilote de périphérique générique pour
lappareil. Ensuite, il faudra créer modifier le
pilote pour y introduire du code spécifique à
lappareil. Veuillez communiquer avec le
professeur pour plus dinfo!
16Références et exercices
- Références
- 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 - http//www.usb.org/developers/
- Exercices
- De quelle manière est détectée le branchement
dun nouvel appareil USB? - Donnez les états de D et D- pour la séquence
binaire suivante 00110101. - Un jeton OUT est-il toujours suivi dun jeton
DATA? - Comment sont détectées les interruptions dun
appareil USB? - Quest quun descripteur? Donnez 3 exemples
dutilisation 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?