![Page 1: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/1.jpg)
Bus Universel en Série(USB – Universal Serial Bus)
27 / 05 / 2014
![Page 2: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/2.jpg)
La communication USB La communication entre le AT91SAM9G45 et
le PC se fait via un port USB.
Le port USB est configuré en HID (Human Interface Device) Cette configuration est celle utilisée pour les
souris et les claviers USB. Elle est utilisé par certains capteurs USB.
![Page 3: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/3.jpg)
USB Ce port a été introduit dans la dernière moitié
de la décennie 1990. Il permet de connecter jusqu’à 127
périphériques. Son architecture est de type maitre/esclave.
L’hôte est le maitre.
Le standard USB 2.0 existe en 3 vitesses: USB 2.0 LS (low speed équivalent au USB 1.1 à
1.5 Mbits/s); USB 2.0 FS (fast speed équivalent au USB 1.1 à
12 Mbits/s); USB 2.0 HS (high speed 480 Mbits/sec);
Le USB 3.0 transmet à 5 Gbits/s.
![Page 4: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/4.jpg)
USB – Gestion de l’alimentation Un périphérique peut avoir sa propre
alimentation ou peut être alimenté via le port USB. Il faut indiquer ce fait dans la configuration.
La tension d’alimentation sur le bus USB est garantie être au dessus de 4.35 V (car on annonce cette tension à 5 V). L’alimentation est la responsabilité de l’hôte.
La consommation normale prévue pour le périphérique est de 100 mA. Ce peut être jusqu’à 500 mA, après négociation
avec l’hôte. L’hôte est en droit de retirer l’alimentation à un
périphérique ayant un comportement anormal.
![Page 5: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/5.jpg)
USB – Transactions Une transaction comporte 3 composants.
Jeton : Adresse du périphérique Numéro du point dans le périphérique Type de transfert
Données (optionnel): Données à transférer
Handshake : Confirmation du transfert
![Page 6: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/6.jpg)
USB – Transactions
![Page 7: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/7.jpg)
Détection du périphérique USB L’équipement qui est l’hôte du réseau est
équipé de deux résistances « pull-down » (de 15 kOhms) connectant les broches D+ et D- à la masse. En fait, cette tâche est faite par le concentrateur
(hub) de l’hôte.
L’élément que l’on connectera au port USB comporte une résistance en « pull-up » (de 1.5 kOhms) entre la broche D+ et l’alimentation à 3.3 volts. (full speed)
… une résistance en « pull-up » (de 1.5 kOhms) entre la broche D- et l’alimentation à 3.3 volts. (low speed)
![Page 8: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/8.jpg)
Détection du périphérique USB Lorsque rien n’est branché au port USB de
l’hôte, la tension aux broches D+ et D- est à 0 volt. L’état du port est identifié SE0.
En branchant un équipement sur le port USB, la broche DP+ est forcée à une tension de 3.3 V et le port passe à l’état « idle ».
L’hôte détecte donc ce changement et force le port à faire une remise à 0 de l’équipement en envoyant 0 V sur les broches D+ et D-.
![Page 9: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/9.jpg)
Détection du périphérique USB Ensuite, l’hôte envoie une requête à
l’équipement au travers de l’adresse de contrôle défini par défaut (adresse #0), car un nouvel équipement détecté sur le port USB se voit attribuer l’adresse 0.
On passe alors à la phase d’énumération.
![Page 10: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/10.jpg)
Énumération La requête de l’hôte lançant l’énumération
assigne une adresse au périphérique.
En réponse à la requête de l’hôte, l’équipement connecté sur le USB doit répondre par des données décrivant cet équipement à l’hôte.
L’hôte fait la lecture des informations de configuration de l’équipement branché. Enfin, il configure et assigne une valeur à cette configuration.
![Page 11: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/11.jpg)
Transactions lors de l’énumération
![Page 12: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/12.jpg)
Configuration du périphérique USB
![Page 13: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/13.jpg)
Description de l’équipement (device descriptor) Le descripteur de l’équipement du
périphérique USB donne des informations sur le périphérique telles: Version USB supportée; Taille maximale de paquet; Codes identifiants le constructeur et les produits
et le nombre de configurations possibles que peut avoir le périphérique.
![Page 14: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/14.jpg)
Description de l’équipement
![Page 15: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/15.jpg)
Description des configurations (configurations descriptor) Un périphérique USB peut avoir plusieurs
configurations différentes. La description des configurations précise:
La façon dont l'appareil est alimenté consommation électrique maximale,
Le nombre d'interfaces qu'il possède.
Note: Une seule configuration à la fois est active.
![Page 16: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/16.jpg)
Description des configurations (configurations descriptor)
![Page 17: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/17.jpg)
Description des interfaces (interfaces descriptor) Un périphérique USB peut avoir plusieurs
interfaces différentes, associées chacune à des terminaisons.
Un bon exemple: J’ai un périphérique qui rempli 3 fonctions : fax /
scanner / imprimante. Interface 1 – les terminaisons de la fonction fax ; Interface 2 – les terminaisons de la fonction scanner; Interface 3 – les terminaisons de la fonction imprimante.
![Page 18: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/18.jpg)
Description des interfaces (interfaces descriptor)
![Page 19: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/19.jpg)
Description des terminaisons (endpoints descriptor) Pour chaque terminaison il faut donner:
Son adresse; Si c’est une entrée/sortie; Type de transfert de données; Taille maximale à transmettre par paquet (charge
utile); Intervalle de temps pour interroger les
terminaison.
![Page 20: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/20.jpg)
Description des terminaisons (endpoints descriptor)
![Page 21: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/21.jpg)
Canaux logiques (terminaisons) Chaque canal logique correspond à un type de
transfert. Un canal logique correspond à une terminaison.
Le canal 0 est généralement utilisé pour la configuration.
![Page 22: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/22.jpg)
Canaux logiques (terminaisons) Un canal logique peut être une source ou un
drain de données.
Par exemple, supposons que la police du périphérique envoie des données à l’entrée EP1 du périphérique. Comme la source des données est l’hôte, ces données arriveront à la mémoire tampon EP1 OUT.
![Page 23: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/23.jpg)
Canaux logiques (terminaisons) Le logiciel du périphérique peut alors lire et
traiter les données reçues. Toutefois, le périphérique ne peut pas écrire de lui même des données sur le fort USB, car il n’en a pas le contrôle. Il écrit simplement les données dans la mémoire tampon EP1 IN. Ces données attendront que l’hôte envoi une requête de lecture à EPI IN.
![Page 24: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/24.jpg)
Canaux logiques (terminaisons) Un canal logique est donc une interface entre
le matériel et le logiciel tournant sur le périphérique.
Tous les périphériques doivent prévoir un canal 0, car c’est ce canal qui reçoit les requêtes de commande et d’état durant la phase d’énumération et tout le temps ou le périphérique est branché.
![Page 25: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/25.jpg)
Canaux Logiques (terminaisons)
![Page 26: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/26.jpg)
Transactions Une transaction USB comprend 3 paquets.
1) Un jeton: Adresse du périphérique, adresse du point et type
de transfert Envoyé par l’hôte
2) Les données: Envoyé par l’hôte ou le périphérique
3) Le Handshake: Pour avoir la confirmation que le transfert s’est
bien passé (ou non) Envoyé par le périphérique
![Page 27: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/27.jpg)
Transactions USB 1) Jeton 0- trame
SYNC : Champ de 8 bits sur USB 1 ou 32 bits sur USB 2. Synchronisation de l’horloge du périphérique sur
l’horloge de l’hôte. PID : Identification du type de paquet de donnée.
4 bits plus les même 4 bits inversés = 8 bits ADDR : Adresse du périphérique (7 bits) ENDP : Adresse de la terminaison (4 bits) CRC5 : Cycling redundancy check (5 bits) EOP : Fin du paquet
![Page 28: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/28.jpg)
Transactions USB 1) Jeton – types
IN : demande de lecture de données du périphérique par l’hôte. PID = 1001
OUT : demande d’écriture de données sur le périphérique par l’hôte. PID = 0001
SETUP : Pour commande ou demande d’état PID = 1101
![Page 29: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/29.jpg)
Transactions USB 2) Données (si nécessaire)
SYNC : Champ de 8 bits sur USB 1 ou 32 bits sur USB 2. Synchronisation de l’horloge du périphérique sur
l’horloge de l’hôte. PID : Identification du type de paquet de donnée.
4 bits plus les même 4 bits inversés = 8 bits DATA : Données (charge utile)
Maximum de 8 octets sur USB low speed Maximum de 1023 octets sur USB high speed Maximum de 1024 octets sur USB very high speed
CRC16 : Cycling redundancy check (16 bits) EOP : Fin du paquet
![Page 30: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/30.jpg)
Transactions USB 3) Handshake - trames
SYNC : Champ de 8 bits sur USB 1 ou 32 bits sur USB 2. Synchronisation de l’horloge du périphérique sur
l’horloge de l’hôte. PID : Identification du type de « handshake ».
4 bits plus les même 4 bits inversés = 8 bits EOP : Fin du paquet
![Page 31: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/31.jpg)
Transactions USB 3) Handshake - types
ACK : Confirmation que la donnée à bien été reçue PID = 0010
NAK : Le périphérique n’est pas prêt à recevoir ou envoyer des sonnées PID = 1010
STALL : Le périphérique est bloqué. Une intervention de l’hôte est nécessaire pour le débloquer. PID = 1110
![Page 32: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/32.jpg)
Transactions USB 4) Paquets de début de trame
SYNC : Champ de 8 bits sur USB 1 ou 32 bits sur USB 2. Synchronisation de l’horloge du périphérique sur
l’horloge de l’hôte. PID : Identification du type de trame.
4 bits plus les même 4 bits inversés = 8 bits FN : Numéro de trame CRC5 : Cycling redundancy check (5 bits) EOP : Fin du paquet
Envoyé tout les 1ms sur
un bus pleine vitesse
![Page 33: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/33.jpg)
Type de transferts Commande:
Pour la configuration, la commande et l’état Bidirectionnel Plusieurs paquets, jusqu’à 64 octets chacun Livraison garantie (renvoi des paquets erronés)
En masse (Bulk): Pour le transfert d’un grand nombre de données Unidirectionnel Plusieurs paquets, jusqu’à 64 octets chacun Acheminement garanti (bande passante pas garantie) Périphériques de stockage
![Page 34: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/34.jpg)
Type de transferts Isochrone:
Cadence constante, transferts tolérants aux erreurs. Unidirectionnel Un seul paquet, jusqu’à 1024 octets Acheminement non garanti (bande passante garantie
et en temps réel) Périphériques audio et vidéo
Interruption (pas au sens habituel du terme): Pour envoi et réception de données Unidirectionnel Un seul paquet, jusqu’à 64 octets Souris et clavier
![Page 35: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/35.jpg)
Installation Requête:
Échange de données:
![Page 36: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/36.jpg)
Transfert en bloc (bulk transfert)
![Page 37: Bus Universel en Série (USB – Universal Serial Bus) 27 / 05 / 2014](https://reader035.vdocuments.site/reader035/viewer/2022062219/551d9de1497959293b8ea701/html5/thumbnails/37.jpg)