Mot exact Résultats par page

Index des mots-clés

AGENDA PERSONNEL
ALBUM PHOTO (Script)
ANTI SPAM
APICULTURE
BAECKEOFFE
BREDELE
BUCHE DE NOEL
C++
CADRE
CASSOULET
CHARLOTTE AUX FRUITS
CODAGE ADRESSES MAIL
CODE 2 DE 5 ENTRELACE
CODE 3 DE 9
CODE 128
CODE PDF417
CODES BARRE
CODE POSTAL
CODES VIDEOTEXT
COLOMBO DE PORC
CONFITURES
CONGOLAIS
CORNICHONS AU VINAIGRE
COUARAIL
CREMES
CRUMBLE
CYBERMUT
DADANT
DATAMATRIX
DDE
DOMBRE
DOUBLE NAT
DYNDNSUPDATE
EAN 13
EAN 128
ELECTRONIQUE
ENVOI DE SMS
ESPACE MEMBRE
EURO
EXEMPLES VB6
FAR
FARCE
FAVORIS
FONCTIONS
FONCTIONS EN C++
GATEAU ROULE
GRATIN LORRAIN
GUACAMOLE
IMPRIMANTES RESEAUX
INSTANCE UNIQUE
KIT VB4
LANGSTROTH
LIQUEUR
MADELEINES
MAISONS
MAQUEREAUX AU VIN BLANC
MAQUEREAUX (Rillettes)
MARINADES
NMEA
NOUGATINE
PAIN
PATE A TARTE
PDF417
PHP
PIC
PLANS DE MAISON
PLANTEUR
POMMES
POULET COCO
PROCEDURES
PROGRAMMATION
RATATOUILLE
RECETTES DE CUISINE
RESSOURCES RESEAUX
RHUBARBE
R.I.B.
RILLETTE DE MAQUEREAUX
ROUTINES
RUCHE
SAUMON EN CROUTE
SCRIPTS
SITES
SLICE
SMS
SOUPE DE COURGE
TABLE PERIODIQUE
TARTE
TATIN (Tarte)
TARTIFLETTE
USB
VIDEOTEXT
VISUAL BASIC
VOIRNOT
WNTIPCFG

Mot exact Résultats par page
I
N
D
E
X


L'essentiel de la norme USB en résumé.

Il y a 2 versions de la norme USB : 1.1 et 2.0, la version 2.0 ajoute essentiellement la haute vitesse.

DESCRIPTION

Le bus USB est un bus série synchrone. Il est plug and play et supporte les connexions/déconnexions à chaud.
Il supporte 3 vitesses de transmissions qui peuvent cohabiter.
- Basse vitesse 1,5 Mb/s pour les appareils interactifs tels que clavier, souris, joystick,...
- Pleine vitesse 12 Mb/s pour des appareils à gros débits tels que modem, téléphone, ...
- Haute vitesse 480 Mb/s pour des appareils multimédia à très gros débits tels que camescope. Cette vitesse concurrence le bus FireWire.
(Par comparaison Ethernet "normal" est à 10 Mb/s et Ethernet rapide à 100 Mb/s)
Les transmissions se font à l'aide d'un protocole à jeton, il y a plus d'analogie avec un réseau Ethernet ou Token Ring qu'avec une liaison série RS232.
Les jetons et les paquets de données prennent place dans des trames d'une durée de 1 milliseconde. En haute vitesse les micro-trames durent 125 microsecondes.
Le bus USB assure une alimentation limitée de chaque appareil. Un hub V. 2.0 accepte des appareils basse et pleine vitesse sur ses ports descendants mais communique avec l'hôte en haute vitesse.
Un appareil peut contenir plusieurs périphériques, par exemple un télécopieur contient un scanner, une imprimante et un modem.
Les modes de transferts, qui peuvent cohabiter, sont les suivants : Contrôle, Interruptions, Bloc, Isochrone.

ARCHITECTURE

Le bus est entièrement contrôlé par un hôte unique, généralement le PC.
La topologie ressemble à celle d'Ethernet : plusieurs niveaux de hubs sur lesquels se connectent les appareils au nombre maximum de 127. Le hub racine est implémenté dans l'hôte, il peut avoir plusieurs ports. Il peut y avoir en cascade jusqu'à 5 hubs en plus du hub racine. Les ports dirigés vers les appareils sont appelés ports descendant et ceux dirigés vers l'hôte ports montants. Chaque hub contient un contrôleur qui surveille les différents ports et rends des comptes à l'hôte. Celui-ci interroge les contrôleurs de hubs afin de connaitre les connexions et déconnexions d'appareils.
A la connexion d'un appareil, l'hôte l'identifie et lui assigne une adresse unique : c'est la phase d'énumération. Lors de la connexion d'un hub, il y a énumération de tous les appareils en aval.
L'hôte attribue également la bande passante en fonction des types de transfert requis par les appareils.

FLUX DE DONNEES

Un appareil USB communique avec un logiciel client installé sur l'hôte.
Le système USB crée des canaux virtuels pour les différents flux de données. Les canaux de types "contrôles" sont bidirectionnels, les autres sont unidirectionnels. Il y a donc séparation des flux de données de chaque appareil; un canal aboutit dans l'appareil sur une "terminaison". Un appareil possède plusieurs terminaisons et est toujours reliés à l'hôte au moins par le "canal par défaut" aboutissant à la terminaison numéro zéro; cette terminaison est bi-directionnelle. Pour les autres terminaison il peut y avoir 2 canaux, l'un montant et l'autre descendant; la combinaison de l'adresse de l'appareil, du numéro de la terminaison et de la direction est unique. Les caractéristiques de fréquence, de bande passante, de taille de buffer, de type de transfert et de sens de flux déterminent les propriétés de chaque terminaison.
Un appareil basse vitesse est limité à deux terminaisons optionnelles en plus de la terminaison de numéro zéro obligatoire, un appareil pleine vitesse peut avoir, en plus de la terminaison de numéro 0, 15 terminaisons montantes et 15 descendantes.
Les données circulent dans les canaux soit sous forme de "Messages USB" soit sous forme de flux non-structuré. Un canal est caractérisé par sa terminaison, sa bande passante et son type de transfert.
Sauf pour les transferts isochrones, un système d'alternance entre deux types de paquet de données permet de détecter un paquet perdu et donc de le retransmettre. Les canaux de type "isochrones" et "interruptions" obtiennent une bande passante réservée.

Transfert de contrôle.
Destiné à la configuration et à la commande d'un appareil. Il se compose d'une transaction de "Setup", des transactions de données éventuelles dans le sens indiqué par le Setup et d'une transaction de statut. Le système USB utilise le canal par défaut pour configurer l'appareil par des transferts de contrôle. Ces transactions ont un format défini par la norme. La charge utile des paquets de données est de 8, 16, 32 ou 64 octets en pleine vitesse et de 8 octets en basse vitesse; la taille maximum est définie par les caractéristiques de la terminaison. Un système de retransmission en cas d'erreur assure la fiabilité du transfert.

Transfert isochrone.
C'est un transfert à débit constant tolérant aux erreurs destiné aux flux importants de données tels l'audio ou la vidéo. Le débit dans le canal est garantie, auncun format n'est imposé aux données. La charge utile des paquets peut atteindre 1023 octets en pleine vitesse et 1024 en haute vitesse; ce mode ne supporte pas la basse vitesse. Les erreurs sont signalés mais il n'y a pas de retransmission. La synchronisation peut se faire, entre autre, en détectant le paquet "SOF" qui est placé au début de chaque trame.

Transfert par interruption.
Il est destiné aux appareils transmettant peu de données mais dans un délai garanti. Il ne s'agit pas vraiment d'interruptions mais d'interrogations de l'appareil par l'hôte à une cadence fixe et garantie. Auncun format n'est imposé aux données. La charge utile des paquets de données est identique à celle des transferts de contrôle. En cas d'erreur il y a retransmission lors de l'interrogation suivante.

Transfert en bloc.
Il est destiné aux gros volumes de données sporadiques et sans contraintes temporelles, par exemple pour une imprimante. Le système peut retarder un transfert en bloc jusqu'à disposer de suffisament de bande passante. Auncun format n'est imposé aux données. La charge utile des paquets de données est de 8, 16, 32 ou 64 octets. Les transferts en bloc supportent la correction des erreurs; ils sont en pleine ou haute vitesse.

LA MECANIQUE

Le cable comprend 4 conducteurs : 2 pour l'alimentation 5 v. et une paire torsadée pour les données, ainsi qu'un blindage. Les données entrantes ou sortantes (De l'hôte) circulent sur la même paire de fils. En basse vitesse il n'y a pas besoin de blindage ni que les conducteurs pour les données soient torsadés. Il y a deux types de connecteurs. Le type A de forme plate se trouve sur les ports montant c'est à dire en sortie de l'hôte ou des hubs. Le type B de forme carrée se trouve sur les ports descendant c'est à dire en entrée des appareils. Un appareil basse vitesse n'a pas de connecteur B : le cable doit être fixé à demeure à l'appareil. La norme définie une atténuation maximale et des délais de transmission dans le cable donc une longueur maximum dépendant de sa qualité. Des considérations électriques font que la longueur des cables basse vitesse ne peut pas atteindre la longueur des cables pleine vitesse qui ne peut pas dépasser 5 mètres.

Couleurs des conducteurs et brochage prise femelle vue de face :

1 : Vbus
Rouge
2 : D -
Blanc
3 : D +
Vert
4 : Masse
Noir

Type A

Type B

L'ELECTRICITE

La signalisation
Les lignes de données D+ et D- fonctionnent en mode différentiel. Les circuits doivent avoir un état haute impédance; les lignes doivent résister à un court circuit avec Vbus ou la masse. Les ports des hubs doivent être compatible faible et pleine vitesse. Dans un appareil pleine vitesse, la ligne D+ est ramenée à une tension comprise entre 3 et 3,6 V par une résistance de 1,5kohm alors qu'en basse vitesse c'est la ligne D- qui est ainsi polarisée. On définit sur les lignes de données deux états : J et K.
En basse vitesse :
Etat J : D- > D+ d'au moins 200 mV
Etat K : D+ > D- d'au moins 200 mV
En pleine vitesse c'est le contraire.
Un état J avec certaines valeurs minimales et maximales de tension indique un état "innocupé".
De plus il existe une état où D+ et D- sont au potentiel bas appelé SE0. L'état SE0 pendant plus de 10 ms indique un reset, il est émis vers un appareil 100 ms après sa connexion. Dès qu'un appareil voit le signal de reset pendant plus de 2,5 microseconde, il doit faire son reset et le terminer avant la fin du signal(10 ms).
La polarisation de l'une des deux lignes permet de détecter la connexion d'un appareil et sa vitesse. Les appareils haute vitesse doivent pouvoir démarrer en pleine vitesse.
Un mode "veille" doit être supporté par tout appareil. Ce mode doit être activé dès qu'il n'y a plus d'activité sur le bus depuis plus de 3 ms; c'est à dire que les trames ne contiennent aucun paquet. (Rappel : une trame dure 1ms) Pendant le mode veille la consommation doit être réduite mais néanmoins la polarisation de D+ ou de D- doit être maintenue. La moindre activité sur le bus doit réveiller l'appareil. Un appareil peut avoir une fonction "réveil" destinée à avertir l'hôte par l'intermédiaire du hub.
L'encodage des donnés se fait selon la méthode NRZI. Un "1" est représenté par l'absence de changement d'état et un "0" par un changement d'état.

La période est la durée de transmission d'un bit selon la vitesse utilisée.
Pour éviter une désynchronisation, des changements d'états supplémentaires peuvent être insérés; ils sont retirés au décodage. Chaque paquet commence par une série de 7 transitions assurant la synchronisation. Le début d'un paquet est caractérisé par le passage de l'état "innocupé" (semblable à l'état J aux niveaux de tension près) à l'état K, puis vient la synchronisation. Les données viennent ensuite suivie par un état SE0 durant le temps de 2 périodes et enfin le retour à l'état J.
Un appareil doit laisser un temps d'une durée de 2 périodes après un paquet et avant d'envoyer son paquet de réponse; cette durée peut atteindre 7,5 périodes. Les durées inter-paquet de l'hôte sont identiques mais il n'y a pas de maximum pour des paquets de transactions différentes. Des durées inter-paquet de 16 à 18 périodes provoquent l'abandon d'une transaction.
L'intervale entre deux trames est compris entre 0,5 et 1,5 ms.
Les hubs ne retransmettent pas les paquets pleine vitesse vers les appareils basses vitesses.

L'alimentation.
On définit une unité de puissance correspondant à 100mA (500mW plus exactement). Par défaut un appareil est en basse puissance et consomme une unité au maximum jusqu'à sa configuration; par programmation il peut ensuite monter jusqu'à 5 unités.
Le système controle la disponibilité de la puissance demandée. Un port peut fournir jusqu'à 5 unités; les hubs peuvent avoir une alimentation externe leur évitant de devoir partager la puissance drainée sur leur port montant et ainsi fournir jusqu'à 5 unités sur chaque port descendant. Un hub alimenté par le bus ne peut avoir que 4 ports fournissant chacun une unité, la cinquième étant pour le hub lui-même.
Les appareils auto-alimentés peuvent consommer une unité permettant à l'interface de continuer à fonctionner sans alimentation externe. Le contrôleur de hub informe l'hôte des conditions d'alimentation.
Un appareil en état de veille ne peux pas consommer plus de 0,5mA., s'il est configuré comme une source de réveil il peut aller jusqu'à 2,5mA.

LE PROTOCOLE

La transmission des données se fait avec le bit le moins significatif en tête.
Chaque paquet contient un identificateur (PID) de 4 bits juste après la séquence de synchronisation; par sécurité ces 4 bits sont répétés après complémentation. Le PID indique le type de paquet.

Les différents PIDs :

Code

Nom

Type de paquet

Description

0001

OUT

Jeton

Données de l!'hôte pour l'appareil

1001

IN

Jeton

Données de l'appareil pour l'hôte

0101

SOF

Jeton

Début de trame

1101

SETUP

Jeton

Initialisation de transaction de contrôle

0011

DATA0

Données

Paquet de données pair

1011

DATA1

Données

Paquet de données impair

0111

DATA2

Données

Paquet de données haute vitesse

1111

MDATA

Données

Paquet de données haute vitesse pour transactions "Split"

0010

ACK

Acquittement

Acquittement positif

1010

NAK

Acquittement

Acquittement négatif, appareil occupé

1110

STALL

Acquittement

Terminaison ou canal hors service

0110

NYET

Acquittement

Acquittement négatif haute vitesse

1100

PREP

Jeton

Trafic vers un appareil basse vitesse

1100

ERR

Acquittement

Erreur transmisse par un hub haute vitesse dans une transaction "Split"

1000

SPLIT

Jeton

Transaction avec un hub haute vitesse

0100

PING

Jeton

Vérification de liaison

Ensuite les autres champs dépendent du PID.
Les champs "Adresse" contiennent l'adresse de l'appareil sur 7 bits, le champ "Terminaison" le numéro de la terminaison au sein de l'appareil sur 4 bits.
Les paquets SOF contiennent un numéro de trame sur 11 bits qui s'incrémente de 0 à 7FF.
Les paquets de données contiennent de 0 à 1024 octets.
Une CRC (Somme de contrôle) de 5 bits protège les champs adresse et terminaison des paquets jeton et une CRC de 16 bits protège les paquet de données.
La transaction "Split" permet une liaison haute vitesse avec un hub qui a sur ses ports descendants des appareils basse ou pleine vitesse. Les transactions basse ou pleine vitesse sont transportées en haute vitesse entre l'hôte et le hub par les transactions "Split". La transaction "Split" apparue avec USB 2.0 est très complexe, elle possède de nombreuses fonctionnalitées.
Il existe deux paquets de données DATA0 et DATA1 qui étant émis en alternance permettront la détection d'un paquet manquant. Le jeton NAK ne veut pas dire qu'il y a erreur mais simplement qu'il faut retransmettre plus tard.

Format des paquets et nombre de bits.

Paquets

Champs et taille (en bits)

OUT, IN, SETUP, PING

PID (8)

Adresse (7)

Terminaison (4)

CRC (5)

SPLIT

PID (8)

Adresse hub (7)

Sous-type (1)

Port (7)

Indicateurs (4)

CRC (5)

SOF

PID (8)

Numéro de trame (11)

CRC (5)

DATA0, DATA1, DATA2, MDATA

PID (8)

Données (0 à 8192, multiple de 8)

CRC (16)

ACK, NAK, STALL, NYET, ERR

PID (8)

Transaction IN.
Réponse au jeton :
- Si jeton reçu corrompu : pas de réponse
- Si terminaison bloquée : réponse STALL
- Si terminaison incapable d'envoyer des données : réponse NAK
- Si terminaison capable d'envoyer des données : réponse DATA
Acquittement :
- Si données corrompues ou l'hôte ne peut pas accepter les données : pas de réponse
- Si données acceptées : réponse ACK

Transaction OUT.
Réponse après réception du jeton et des données :
- Si paquet reçu corrompu : pas de réponse
- Si terminaison bloquée : réponse STALL
- Si terminaison accepte les données : réponse ACK
- Si terminaison incapable d'accepter les données : réponse NAK

Transaction SETUP.
L'appareil doit accepter le paquet DATA0 qui suit un paquet SETUP puis répondre par ACK si les paquets ne sont pas corrompus.

Transfert EN BLOC.
C'est une suite de transactions OUT ou IN selon le sens du canal.
L'alternance des paquets DATA0 et DATA1 permet de controler l'intégrité des données.

Transfert DE CONTROLE.
- Le transfert commence par une transaction SETUP
- C'est ensuite une série de transactions OUT ou IN selon le sens de transmission indiqué par le SETUP.
- Une transaction IN ou OUT inverse au sens de transmission précédent termine le transfert en donnant le statut de celle-ci.
Il y a aussi alternance des paquets DATA0 et DATA1.

Transfert INTERRUPTION.
A interval régulier et négocié lors de l'établissement du canal, l'hôte execute une transaction IN ou OUT selon le sens du canal.
Il y a aussi alternance des paquets DATA0 et DATA1.

Transfert ISOCHRONE.
Ce sont des jetons IN ou OUT selon le sens du canal suivis de paquets DATA0. Il n'y a pas de réponse ni de controle du séquencement des données.

FONCTIONNEMENT DU PERIPHERIQUE

Après sa mise sous tension, un appareil ne répond à aucune transaction avant d'avoir reçu un reset du bus. Après cela l'appareil est adressable à son adresse par défaut.
Après raccordement d'un appareil, le systèmeUSB procède à "l'énumération" qui réalise les actions suivantes :
- Le hub informe l'hôte d'un changement dans son statut.
- L'hôte interroge le hub sur la nature de ce changement.
- L'hôte attend 100 ms la stabilisation des tensions puis demande au hub de faire un reset sur le port concerné.
- Le hub réalise le reset après quoi le port est actif et l'appareil peut soutirer 100mA de Vbus.
- Après avoir lu le descripteur d'appareil l'hôte lui assigne une adresse unique. (Windows demande un reset pendant la lecture du descripteur et recommence l'opération au début)
- L'hôte lit les informations de configuration et assigne à l'appareil l'une de ses configurations. La puissance fournie par Vbus peut alors augmenter; l'appareil est prêt à être utilisé.
Tous les appareils supportent un jeu de requêtes communes. A l'exception de la requête "SetAdress" et de certaines requêtes longues, le traitement de la requête doit être terminée avant que l'appareil ne renvoie l'acquittement. Ces requêtes se font par transfert de contrôle sur le canal par défaut; elles sont envoyées dans les 8 octets du paquet de donnée d'une transaction SETUP et doivent en général être terminée en moins de 5 secondes.

Les requêtes

Les champs et leur longueur sont les suivants :
Les jetons SETUP ont 8 octets de données divisés en 5 champs :

Nom du champ

Taille en octets

bmRequestType

1

bRequest

1

wValue

2

wIndex

2

wLength

2

Pour wIndex : Si numéro de terminaison : bits 0 à 3 et direction dans le bit 7; si numéro d'interface : bits 0 à 7

Liste des requêtes standards :

bmRequestType

bRequest + valeur

wValue

wIndex

wLength

Données

00000000
00000001
00000010

CLEAR_FEATURE (1)

Sélecteur

0
Interface
Terminaison

0

10000000

GET_CONFIGURATION (8)

0

0

1

Valeur configuration

10000000

GET_DESCRIPTOR (6)

Type descripteur
et index

0 ou Id de
langue

Longueur max.
descripteur

Descripteur

10000001

GET_INTERFACE (10)

0

Interface

1

Configuration alternative

10000000
10000001
10000010

GET_STATUS (0)

0

0
Interface
Terminaison

2

Statut

00000000

SET_ADDRESS (5)

Adresse

0

0

00000000

SET_CONFIGURATION (9)

Valeur de
configuration

0

0

00000000

SET_DESCRIPTOR (7)

Type descripteur
et index

0 ou Id de
langue

Longueur max.
descripteur

Descripteur

00000000

SET_FEATURE (3)

Sélecteur

0
Interface
Terminaison

0

00000001

SET_INTERFACE (11)

Configuration
alternative

Interface

0

10000010

SYNCH_FRAME (12)

0

Terminaison

2

Numéro de trame


Sélecteurs standards pour les requêtes GET_FEATURE et SET-FEATURE :

 Nom

Valeur

Désignation

Domaine d'application

0

ENDPOINT_HALT

Arrêt de la terminaison

Terminaison

1

DEVICE_REMOTE_WAKEUP

Télécommande de réveil de l'hôte

Appareil

2

TEST_MODE

Mode test

Appareil

Etats pouvant être retournés par la requête GET_STATUT adressée à un appareil :

Désignation

Numéro du bit

Télécommande de réveil de l'hôte active

1

Auto alimentation

0

Les descripteurs

De nombreuses requêtes vont demander à l'appareil un "descripteur"; il s'agit d'un bloc de données organisées en champs bien définis. On rencontreta essentiellement les descripteurs d'appareil, de configuration, de chaines, d'interface et de terminaison.
Le premier octet contient la longueur du descripteur et le second octet le type de descripteur.
Types de descripteur :

Type

Valeur

Appareil

1

Configuration

2

Chaine de caractères

3

Interface

4

Terminaison

5

Qualificateur d'appareil

6

Autre configuration de vitesse

7

Interface de puissance

8

Classe

21


Descripteur d'appareil :
Chaque appareil doit avoir un numéro de fabriquant (VID) et un numéro de produit (PID) Le VID est vendu très cher par le trust USB. Les fabricants de C.I. ont souvent un VID et certains peuvent fournir un PID à utiliser avec leur VID. Tous les appareils ne sont pas rattachés à une classe.

Champ

Taille

Description

bLength

1

Taille du descripteur en octets

bDescriptorType

1

Type du descripteur = 1

bcdUSB

2

Version USB codée en BCD

bDeviceClass

1

Code de classe assigné par l'USB-IF

bDeviceSubClass

1

Code de sous-classe dépendant de la classe

bDeviceProtocol

1

Code de protocole dépendant de la classe

bMaxPacketSize0

1

Taille maximum des paquets pour la terminaison 0

idVendor

2

Code fabricant assigné par l'USB-IF (VID)

idProduct

2

Code produit assigné par le fabricant (PID)

bcdDevice

2

Version d'appareil codé en BCD

iManufacturer

1

Index du descripteur de chaine du fabricant

iProduct

1

Index du descripteur de chaine de l'appareil

iSerialNumber

1

Index du descripteur de chaine du numéro de série

bNumConfigurations

1

Nombre de configurations possibles

 Descripteur de configuration :

Champ

Taille

Description

bLength

1

Taille du descripteur en octets

bDescriptorType

1

Type du descripteur = 2

wTotalLength

2

Taille totale de tous les descripteurs pour cette configuration

bNumInterfaces

1

Nombre d'interfaces supportées par cette configuration

bConfigurationValue

1

Numéro de cette configuration (A utiliser par SET_CONFIGURATION)

iConfiguration

1

Index du descripteur de chaine décrivant cette configuration

bmAttributes

1

Bit 6 : auto-alimentation, bit 5 : commande de réveil, bit 7 = 1

bMaxPower

2

Consommation maximum en unités de 2 mA.

Descripteur d'interface :

Champ

Taille

Description

bLength

1

Taille du descripteur en octets

bDescriptorType

1

Type du descripteur = 4

bInterfaceNumber

1

Numéro de cette interface (Base 0)

bAlternateSetting

1

Numéro de l'interface alternative

bNumEndpoints

1

Nombre de terminaisons excluant les terminaisons zéro

bInterfaceClass

1

Code de classe assigné par l'USB-IF

bInterfaceSubClass

1

Code de sous-classe dépendant de la classe

bInterfaceProtocol

1

Code de protocole dépendant de la classe

iInterface

1

Index du descripteur de chaine décrivant cette interface

Descripteur de terminaison :

Champ

Taille

Description

bLength

1

Taille du descripteur en octets

bDescriptorType

1

Type du descripteur = 4

bEndpointAddress

1

Adresse de cette terminaison
Bits 0 à 3 : Numéro de terminaison
Bit 7 : direction (O=OUT, 1=IN) - Ignoré pour canal de contrôle

bmAttributes

1

Propiétés de la terminaison.
Bit 0 et 1 : Type de transfert
- 00 Contrôle
- 01 Isochrone
- 10 Bloc
- 11 Interruption
Bit 2 à 5 : Paramètres pour transfert isochrone

wMaxPacketSize

2

Taille maximum des paquets de données en octets

bInterval

1

Intervalle entre chaque demande de données de l'hôte en nombre de trames.
- Transfert isochrone pleine et haute vitesse : 1 à 16
- Transfert par interruption pleine et basse vitesse : 1 à 255
- Transfert par interruption haute vitesse : 1 à 16
- Transfert en bloc OUT haute vitesse : 1 à 255

Descripteur de chaine :
Ces descripteurs sont facultatifs; si un appareil ne les supporte pas les références à des descripteurs de chaine doivent être à 0. Ils sont en UNICODE et peuvent supporter plusieurs langues. Chaque langue possède un identificateur sur 2 octets. Le descripteur de chaine d'index 0 contient un tableau des identificateurs des langues supportées. Les 10 derniers bits identifient la langue, les 6 premiers le pays d'application.
- Quelques identificateurs de langues courantes :

Langue

Identificateur (Hexa)

Français

040c

Anglais

0409

Allemand

0407

Italien

0410

Espagnol

040a


- Descripteur de chaine d'index 0 :

Champ

Taille

Description

bLength

1

Taille du descripteur en octets

bDescriptorType

1

Type du descripteur = 3

wLANGID[0]

2

Identificateur de langue d'index 0

...

2

...

wLANGID[N]

2

Identificateur de langue d'index N

- Descripteur de chaine d'index supérieur à 0 :

Champ

Taille

Description

bLength

1

Taille du descripteur en octets

bDescriptorType

1

Type du descripteur = 3

bString

X

Chaine UNICODE

L'HOTE ET LES HUBS

La norme décrit en détails le comportement de l'hôte et des hubs. Ces deux chapitres ne concernent que les fabricants de système d'exploitation et de hubs.