Vous êtes sur la page 1sur 38

Le bus USB

Universal Serial Bus


LUSB et sa norme

Patrick MONASSIER
INSAT - Tunis

Naissance de lUSB
1994, alliance de 7 partenaires industriels : Compaq, Dell, IBM, Intel,
Microsoft, NEC et Northern Telecom Ils commencent crer la norme USB
Objectif : connectique universelle, Plug&Play, 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 : spcifications de la norme USB 1.1 (celle utilise
actuellement) avec 2 vitesses de fonctionnement : 1,5Mbps (Low Speed) et
12Mbps (Full Speed)
Avril 2000 : spcification USB 2.0 compatible 1.1 - ajoute une vitesse de
480Mbps (High Speed) et optimise la bande passante

Avantages de lUSB
Les avantages de lUSB :
Faible cot de linterface
Indpendace vis--vis des machines htes
Hot Plug&Play (branchement/dbranchement sous-tension)
Jusqu 127 priphriques possibles
Fiable et scuris (dtection 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 dtrompages
Alimentation possible des appareils via le cble
Passage automatique en basse consommation (Power conservation - en 3ms : 500uA)
Lavantage du Hot Plug&Play :
l O.S. dtecte automatiquement le priphrique qui vient dtre connect
Il charge automatiquement le driver sil est disponible
Si non, il demande le CD driver de lappareil et facilite son installation
Pas de redmarrage ncessaire, lappareil est prt lemploi aprs reconnaissance
Au prochain branchement, la reconnaissance de lappareil est automatique
Pas dadresse de port configurer (affectation dynamique de 1 127, code sur 7 bits)

Dfinition des diffrentes vitesses


3 vitesses sont supportes :
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 rel est plus faible : le bus doit faire passer les bits de
status, de contrle, derreur et les donnes. Dautre part, plusieurs
priphriques doivent se partagent le bus
Dbits rels selon la norme USB, hors contraintes de lOS :
Low Speed : 64kbit/s en mode interrupt avec 1 interruption rglable 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

Domaine dutilisation des diffrentes vitesses


Les raisons des 3 vitesses de lUSB :
Low Speed : Faible cot, sorties souris pratiques, cbles souples car non blinds
Full Speed : remplacer les liaisons sries et parallles
High Speed : Pour mettre en valeurs les possibilits de lUSB
Low Speed : priphriques interactifs (claviers, souris, consoles) mais aussi des
afficheurs, des lecteurs (de carte puce) et des applications en automatisme
(mesure, capteurs) appels se dvelopper.
Full Speed : tlphonie, modems, disques, imprimants, fax, scanner, autres
cartes puce, multimdia (jeux, audio, vido limite)
High speed : multimdia, avec performances suprieures (vido)

Cble USB
Mme structure quelque soit la vitesse : 2 paires de fils
Donnes D+ et D Alimentation GND et VCC (+5V) - VBUS
Paire de fils de donnes non blinde en Low Speed (plus souple),
blinde en Full Speed et High Speed (protection accrue).
Longueur maxi selon la norme : 3 mtres en cble non blind, 5 mtres en cble blind

Composition dun cble USB

Brochage des connecteurs de type A et B

Aspect des connecteurs de type A et B

Norme USB
Norme USB 1.1 : 320 pages, Norme USB 2.0 : 650 pages

Principe du Bus USB :


Modle hirarchique Matre/Esclave, cest lhte qui dcide des transferts, les appareils ne
peuvent pas communiquer directement entre eux. Il ny a pas de gestion de collisions et
darbitrage des priphriques. Les paquets sont en diffusion gnrale avec adresse, seul le
priphrique concern rpondra.
Topologie du bus USB :
En Etoile Srie (tiered star) qui tolre jusqu 5 niveaux de concentrateurs, 127 appareils
maxi. Un priphrique norme 2.0 pourra tre connect un Hub 1.1, mais il hritera des
performances lies la norme 1.1
Hte : PC

Hubs

Priphriques :
appareils

Protocole USB
= =

==

Cest un protocole encapsulation.


Les units dialoguent selon le principe
expos sur le schma.
Lapplication hte dialogue avec le
priphrique (USB device)
principalement laide des drivers USB.
LUSB est compos de plusieurs
couches de protocoles bien dfines
Il y a 4 types de paquets (trames) :
Token (Jeton / en-tte)
SOF (Start Of Frame)
Data (Optionnel)
Acknowledge (Ack : Handshake)

Transfert 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 donnes uitiles
Les paquets Handshake sont utilis pour valider les donnes ou rapporter les erreurs
Lentit de transfert USB est appele Transaction, elle est gnralement compose de
paquets juxtaposs, la transition tant un paquet SOF qui indique le dbut dune autre
transaction. On dit alors quun transfert est compos dune succession de transactions

Transaction USB

Paquet Jeton
dbut

Paquet Data

Indique le dbut de la
transaction suivante
Paquet Ack

Paquet SOF

fin

Structure dun paquet


Transaction USB

Paquet Jeton

Paquet Ack

Structure dun Paquet

8 bits

Synchronisation

Paquet Data

ID

Informations spcifiques

CRC

SOF

2 bits

EOP

La structure des paquets tant identique, il faut prciser que le format est diffrent
selon la nature du paquet :
Token (Jeton / en-tte)
SOF (Start Of Frame)
Data (Optionnel)
Acknowledge (Ack : Handshake)
Les diffrents formats sont dtaills dans les pages qui suivent.
Certains champs spcifiques (Sync, PID, ADDR etc) sont dcrits aprs ces
pages.

10

Le paquet Jeton
3 sortes de paquets Jeton :
IN : Informe lappareil USB que lhte veut lire des informations
OUT : Informe lappareil USB que lhte 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 donnes pour la norme USB 1.1 : DATA0 et DATA1
2 sortes de paquets de donnes 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
PID

0 1023 bytes

16 bits

DATA

CRC

DATA0
DATA1
DATA2
MDATA

12

Le paquet Handshake
3 sortes de paquets Handshake :
ACK : validant le paquet reu correctement
NACK : Indique que lappareil ne peut temporariement ni envoyer ou recevoir des
donnes. Aussi utilis pendant les transactions dinterruptions pour avertir lhte quil
na pas de donnes envoyer.

STALL (Bloqu) : Lappareil se retrouve dans un tat qui va exiger lintervention de


lhte
8 bits
PID
ACK
NACK
STALL

13

Le paquet SOF
Compos de 11 bits :
Envoy par lhte toutes les 1ms +/- 500ns sur bus Full Speed
Envoy par lhte toutes les 125us +/- 62,5ns sur bus High Speed

8 bits
PID

11 bytes
Numro de trame

5 bits
CRC

SOF

14

Dtection des erreurs


Le standard USB assure une grande fiabilit des transferts par la dtection de
nombreuses erreurs au niveau du matriel (hardware) :
Liste des erreurs :
Erreurs de paquets
Paquet ID
Bit Stuff
CRC
Data Toggle
Time Out (absence de rponse)
Babling
LOA (Loss Of Activity)
Toute dtection dune erreur de paquet est traduit par la non rponse du
priphrique, cest dire un Time Out.

15

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 rcepteur avec celle de lmetteur. 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 reu correctement, les 4 bits sont
complments et rpts, faisant un PID de 8 bits au total.

16

Autres champs
SOF : Start Of Frame Dbut 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 dtermine 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 attribue, doit rpondre aux
paquets envoys ladresse 0.
ENDP : Champ de terminaison constitu de 4 bits, autorisant 16 terminaisons
possibles.
CRC : Contrle Redondance Cyclique sur les donnes lintrieur du paquet.
Paquets jetons : CRC sur 5 bits. Paquets de donnes : CRC sur 16 bits.
EOP : End Of Paquet Fin de Paquet

17

Autres spcifications
Le branchement chaud ou Hot Plug In
Lors du branchement dun appareil, un change dinformation a lieu avec lhte. Cet change est
dnomm numration . Il permet de reconnatre 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 lment, une nouvelle adresse est assigne par lhte, de 1 127
Chaque appareil est assign un driver qui lui est spcifique.
Choix Low Speed High Speed
Se fait par hard, en positionnant une rsistance de PullUp de 1.5Kohm sur D+ (high) ou sur D- (low) au
niveau de lappareil connect.
+3.0/3,6vdc

1,5Kohm

Hte
D+
D15Kohm

1,5Kohm

D+ ou
D15Kohm

Full Speed

D+
DLow Speed

Appareil connect

18

Temps
Temps de propagation : Quelques chiffres, selon la norme
- Temps de propagation le long du cble : 30 ns / mtre
- travers un hub : 40 ns par hub
- Temps de rponse de la fonction adresse : 700 ns maxi
- Temps de propagation aller-retour entre hte et la fonction adresse : 1300 ns maxi
Temps de connexion et de dconnexion :
Les pattes dalimentation sont plus longue sur les connecteurs, pour assurer lalimentation
linsertion, avant la transmission des donnes.
Cest la diffrence de potentiel sur le port qui dclenche la phase dnumration. Le soft
de lhte scanne continuellement les ports et les hubs

>2,5us

Courbe de dconnexion

19

Courbes

20

Codage bit : NRZI


USB utilise le codage bit NRZI (Non Retour Zro Invers)
1 logique = non changement dtat du bit
0 logique = changement dtat du bit
Bit stuffing insr aprs 6 bits conscutifs identiques (synchronisation dhorloge)

21

Consommation
Aucun appareil ou hub ne peut consommer plus de 100mA avant dtre numr. Aprs la
consommation peut aller jusqu :
- 500mA pour un High Power device
- 100mA pour un Low Power device
Gnralement, les Low USB consomment 1 unit (100mA) et les High USB 5 units(500mA)
Cest une commande soft, issue des descripteur, qui fait passer un appareil de 1 unit 5 units
aprs numration.
Diffrents types dalimentation du BUS USB
- La tension fournie varie de 4.4V 5.25V. La majorit des appareils fonctionnent en 3,3V et
doivent possder un rgulateur.
High-power bus-powered functions :
- Toute lnergie dalimentation passe par le Bus USB (VBUS), soit 500mA maxi aprs 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 aprs 3ms dinactivit du bus.
Le courant de veille standard est de 500uA

22

Les Hubs
Un hub est un boitier multi-connecteurs USB qui permet de multiplier les prises. La diffrence
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 lextrieur
et doit pouvoir fournir 100mA + 500mA par port aprs numration (avec protection 5A maxi).
On ne peut cascader directement que 2 Bus powered Hubs.

Alimentation port amont (500mA)

Logique

Switch

Bus-powered hub

Alimentation port
100mA/port
Low-power uniquement

Alimentation port amont (100mA)

Logique

Limiteur

Alimentation
extrieure

Self-powered hub

Alimentation port
500mA/port
High-power ou Low-power

23

Les Transferts
Il existe 4 modes de transfert :
Contrle : Utilis principalement pour les oprations 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 ncessitant un flux rgulier de
donnes comme le camrs, tlphones

Interrupt : destin des changes limits et priodiques, il garantit la frquence


des scrutations et des reprises sur erreurs. Utilis pour des transferts linitiative du
priphrique(asynchrone) et pour des transferts priodiques ou permanents comme
les claviers. Compatible Low et Full speed

Bulk : En Full speed seulement, pour les gros transferts de donnes. Le dbit est
variable et dpend de la disponibilit. Ce mode assure les reprises sur erreur.

24

Les diffrents types de transfert


Mode de transfert

Contrle

Isochrone

Interrupt

Bulk

25

Enumration et descripteurs
Enumration : Processus dynamique qui sert identifier un appareil USB et lui affecter une
adresse unique.

Principe : Le priphrique fournit un ensemble de descripteurs qui en permet lidentification,


ds son raccordement. Au dmarrage du PC, lhte scanne les appareils les uns aprs les autres,
dfinit les drivers puis affecte les adresses uniques. Le processus est le mme au raccordement
dun appareil en fonctionnement dynamique.

Les descripteurs : Ce sont des blocs dinformations pr-formats. Tous les appareils USB
doivent obligatoirement possder les descripteurs standard.

Rle des descripteurs : Permet la reconnaissance de chaque composant USB. Lorsque lon
connecte un appareil lhte (typiquement le PC), le dispositif Plug&Play utilise les informations des
descripteurs pour initialiser automatiquement la reconnaissance et le dialogue. Les descripteurs sont
rassembls dans un fichier texte .INF et fournissent des informations utiles telles que : type de
priphrique, puissance, dispositif de transfert des donnes ... etc.
Il y a 4 descripteurs standard qui sont indispensables. Il est possible dajouter des descripteurs
complmentaires pour affiner la reconnaissance et les conditions de fonctionnement de lappareil
USB.

26

Les descripteurs
Les 4 descripteurs standard indispensables
sont les suivants :
Dautres 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 des descripteurs

27

Hirarchie des descripteurs


Descripteur
Device
Config
Interface

Endpoint
Diagramme hirarchique des descripteurs

Il existe deux types dinformations dans les descripteurs :


Les informations standard tous les priphriques USB
Les informations spcifiques chaque priphrique

28

Device
Descriptor

18
01

Cest le premier
descripteur que
vient lire lhte :
il donne les
informations
gnrales sur
lappareil connect

VID
PID

29

Configuration
Descriptor
Ce descripteur
renseigne sur les
diffrents tats
dans lequel peut
se trouver le
composant USB

9
02

30

Interface
descriptor

9
04

Le descripteur
dinterface
communique une
information unique
tous ses
Endpoints

31

Endpoint
Descriptor

7
05

Un descripteur Endpoint
indique la direction et les
types de transferts, et
dautres informations
En fait, lordinateur hte
communique uniquement
avec ces Endpoints. Tous
les transferts de paquets
de donnes transitant sur
le bus proviennent dun
Endpoint ou sont envoys
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 bidirectionnel et prsent dans tous les dispoitifs. Il est
utilis par lhte pour contrler le systme. Il fonctionne
toujours en mode Control

32

HID
Descriptor

21

Ce descripteur trs utilis concerne toute la catgorie Human Interface


Device (HID), regroupant tous les appareils quutilisent directement des
personnes : souris, claviers, gamepads, crans
Les descripteurs relatifs aux HID sont envoys aprs les descripteurs
dinterface et avant les descripteurs dEndpoints.

33

VID 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 possde 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.

34

Les fichiers dinformation .INF


- Les fichier .INF (INFormation) sont des fichiers texte qui servent au Plug&Play.
Il existe un jeu de fichiers dinformation gnriques livrs avec le systme dexploitation
- Un fichier .INF est orgnais en plusieurs sections. Chaque section (il en existe une
vingtaine) possde une utilit particulire.
- Les fichiers .INF servent la dtection des appareils (installation driver), et leur installation
automatique.

Suite du tableau page suivante ..

35

Champs des fichiers .INF


suite de la page prcdente.

36

Rle des fichiers .INF


Lors du branchement dun appareil USB, le couple PID / VID est transmis lhte
(PC). Lhte 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 dmarche.
Les fichiers .INF standard peuvent suffire la reconnaissance complte de lappareil :
dans ce cas l, son installation est transparente pour lutilisateur. Il existe des
fichiers .INF qui nont pas de couples VID/PID prcis 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 dfinir le
driver (extension .SYS) adapt lappareil (C:/windows/system32/drivers)
Le driver assure le lien entre le systme dexploitation et le matriel.
Les fichiers .INF peuvent tre gnrs laide de logiciels tels que Infedit, Geninf,
ChkINF et InfCatReadyou des petits FreeWare accessibles par internet.

37

FIN de Prsentation

Patrick MONASSIER
Universit Lyon 1 France

38