La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

16 Octobre 2007JF VIENNELE BUS USB SLIDE 1 LE BUS USB B (Universal Serial Bus) DIAPORAMA EN LIGNE => www.ecole.ensicaen.fr/~viennewww.ecole.ensicaen.fr/~vienne.

Présentations similaires


Présentation au sujet: "16 Octobre 2007JF VIENNELE BUS USB SLIDE 1 LE BUS USB B (Universal Serial Bus) DIAPORAMA EN LIGNE => www.ecole.ensicaen.fr/~viennewww.ecole.ensicaen.fr/~vienne."— Transcription de la présentation:

1 16 Octobre 2007JF VIENNELE BUS USB SLIDE 1 LE BUS USB B (Universal Serial Bus) DIAPORAMA EN LIGNE =>

2 16 Octobre 2007JF VIENNELE BUS USB SLIDE 2 USB EST UN BUS "CONSTRUCTEURS" IF USB-IF : USB Implementers Forum A nonprofit corporation formed to facilitate the development of USB compliant products and promote technology COMPAQ HEWLETT-PACKARD INTEL LUCENT MICROSOFT NEC PHILIPS TOUTES LES INFORMATIONS OFFICIELLES SONT DISPONIBLES (EN ANGLAIS) SUR CE SITE ET NOTAMMENT LA SPÉCIFICATION DE USB 2.0 (650 pages …)

3 16 Octobre 2007JF VIENNELE BUS USB SLIDE 3 JANVIER 1996 Après plusieurs années de développement, parution de la release 1.0 SEPTEMBRE1998 Parution de la release 1.1 La vitesse du bus est limitée à : - la vitesse basse (low speed) : 1.5 Mbits/seconde. - la vitesse pleine (full speed) : 12 Mbits/seconde. AVRIL 2000 Parution de la release 2.0 Apparition de la vitesse haute (high speed) : 480 Mbits/seconde Avec cette nouvelle vitesse le bus USB prend enfin son essor pour connaître le succès que l'on connaît aujourd'hui. Concurrent de USB : IEEE-1394 (FireWire) 400 Mbits/sec IEEE-1394b => 3.2 Gbits/sec ATTENTION : USB 2.0 EST UNE NORME PAS UNE VITESSE ! SI VOTRE DEVICE SUPPORTE LA VITESSE HAUTE IL DOIT COMPORTER LE LOGO :

4 16 Octobre 2007JF VIENNELE BUS USB SLIDE 4 UN LIVRE QUI SEMBLE FAIRE RÉFÉRENCE : "USB Complete" par Jan Axelson (3ème Édition parue en Août 2005) Traduit en de multiples langues … mais pas en français! UN EXEMPLAIRE EST DISPONIBLE À LA BIBLIOTHEQUE DE L'ÉCOLE.

5 16 Octobre 2007JF VIENNELE BUS USB SLIDE 5 ARCHITECTURE DU BUS USB PC HOST CONTROLLER ROOT HUB Par ex. INTEL AB Par ex. INTEL AB (4 ports USB) LE BUS USB EST UN BUS EN ÉTOILE À PLUSIEURS NIVEAUX Fonction HUB Fonction HUB Fonction Fonction : une souris, une webcam, une imprimante, une clé USB … Device : C'est une Fonction ou un HUB.

6 16 Octobre 2007JF VIENNELE BUS USB SLIDE 6 ARCHITECTURE DU BUS USB LE NOMBRE DE NIVEAUX EST LIMITÉ À 7. (LE HOST CORRESPOND AU NIVEAU 1) CONFIGURATION MAXIMUM LE NOMBRE DE HUB ENTRE LE HOST ET UN DEVICE EST LIMITÉ À CINQ. LA LONGUEUR D'UN CÂBLE DE LIAISON EST LIMITÉE À 5 MÈTRES (3 MÈTRES POUR LA VITESSE BASSE). DE CE FAIT, LE BUS USB EST UN BUS DE BUREAU. IL N'A PAS, À PRIORI, LA VOCATION À ÊTRE UN BUS INDUSTRIEL.

7 16 Octobre 2007JF VIENNELE BUS USB SLIDE 7 LE RESTAURANT USB PC HOST CONTROLLER ROOT HUB Fonction HUB Fonction HUB Fonction VOICI LE RESTAURANT VOICI LA CUISINE ! VOICI LA SALLE DU RESTAURANT ! LA SALLE DU RESTAURANT A UNE CAPACITÉ DE 127 TABLES (127 DEVICES). IL PEUT Y AVOIR JUSQU'À 31 CLIENTS À UNE TABLE.

8 16 Octobre 2007JF VIENNELE BUS USB SLIDE 8 LES CLIENTS D'UN RESTAURANT USB EN FAIT, IL N'Y A PAS DE CLIENT INDIVIDUEL : CHAQUE FOIS QUE LA PORTE DU RESTAURANT EST FRANCHIE C'EST PAR UN GROUPE COMPOSÉ D'UN CERTAIN NOMBRE DE CLIENTS ACCOMPAGNÉS D'UN CHEF (ENDPOINT 0). UN GROUPE : AU MAXIMUM 31 CLIENTS (Y COMPRIS LE CHEF). LE GROUPE SE VOIT ATTRIBUER L'UNE DES 127 TABLES. ATTENTION : IL S'AGIT D'UN RESTAURANT D'ENTREPRISES : UNE FOIS LE GROUPE INSTALLÉ À TABLE, ON VA DEMANDER AU CHEF DE COMMUNIQUER CERTAINES INFORMATIONS (DESCRIPTEURS), ENTRE AUTRES : - DE QUELLE ENTREPRISE (VID) S'AGIT-IL ? - À L'INTÉRIEUR DE CETTE ENTREPRISE, DE QUEL SERVICE (PID) S'AGIT-IL ? CECI ÉTANT FAIT, IL SERA DEMANDÉ AU CHEF DE PRÉCISER LE NOMBRE DE CLIENTS QUI L'ACCOMPAGNENT ET QUEL SERVICE POUR CHACUN DES MEMBRES DU GROUPE. DEUX TYPES DE CLIENTS : - LE CLIENT QUI VIENT POUR MANGER. - LE CLIENT QUI AMÈNE DE LA NOURITURE POUR LA CUISINE. - SEUL LE CHEF EST LÀ POUR MANGER ET AMENER DE LA NOURITURE.

9 16 Octobre 2007JF VIENNELE BUS USB SLIDE 9 LES CLIENTS D'UN RESTAURANT USB (SUITE) EN FAIT, LA FONCTION ESSENTIELLE DU CHEF C'EST DE FAIRE L'INTERLOCUTEUR AVEC LA CUISINE POUR PRÉSENTER CHAQUE CLIENT EN PRÉCISANT LA NATURE DU SERVICE REQUIS POUR CHACUN. ACCESSOIREMENT, IL NE LUI EST PAS INTERDIT,PAR LA SUITE, DE PARTICIPER AU REPAS. LES CLIENTS QUI ACCOMPAGNENT LE CHEF SONT DE TROIS SORTES : LES CLIENTS HYPOGLYCÉMIQUES. LES CLIENTS BOULIMIQUES. LES CLIENTS "COOL".

10 16 Octobre 2007JF VIENNELE BUS USB SLIDE 10 LES CLIENTS HYPOGLYCÉMIQUES (INTERRUPT TRANSFERT) POUR CE TYPE DE CLIENT IL EST ESSENTIEL D'ASSURER QUE L'INTERVALLE DE TEMPS ENTRE DEUX PLATS NE DÉPASSE PAS UNE CERTAINE VALEUR FIXÉE PAR LE CLIENT. SI, PAR EXEMPLE, CET INTERVALLE DE TEMPS EST DEUX MINUTES CELA SIGNIFIE QUE LE CLIENT NE RESTERA JAMAIS PLUS DE DEUX MINUTES SANS VOIR LE SERVEUR S'OCCUPER DE LUI. IL EST TOUTEFOIS POSSIBLE QUE MOINS DE DEUX MINUTES S'ÉCOULENT ENTRE DEUX PASSAGES DU SERVEUR POUR CE CLIENT. IL NE S'AGIT DONC PAS D'UN SERVICE OBLIGATOIREMENT PÉRIODIQUE. EXEMPLES : SOURIS, CLAVIER …

11 16 Octobre 2007JF VIENNELE BUS USB SLIDE 11 LES CLIENTS "COOL" (BULK TRANSFERT) CES CLIENTS N'IMPOSENT AUCUNE CONTRAINTE TEMPORELLE : ILS ONT TOUT LE TEMPS QU'IL FAUDRA POUR MANGER! NATURELLEMENT, SI ON LEUR PRÉSENTE UN PLAT TROP VITE, CES CLIENTS ONT LA POSSIBILITÉ DE DIRE QU'ILS N'ONT PAS ENCORE TERMINÉ LE PLAT PRÉCÉDENT ET QUE DONC IL CONVIENDRA DE PRÉSENTER, À NOUVEAU, LE PLAT SUIVANT PLUS TARD (NAK). VU DE LA CUISINE CE SONT ÉVIDEMMENT LES CLIENTS LES PLUS FACILES À SATISFAIRE. EXEMPLES : IMPRIMANTE, SCANNER …

12 16 Octobre 2007JF VIENNELE BUS USB SLIDE 12 LES CLIENTS BOULIMIQUES (ISOCHRONOUS TRANSFERT) CES CLIENTS EXIGENT UN DÉBIT GARANTI DE NOURRITURE ! VU DE LA CUISINE CE SONT ÉVIDEMMENT LES CLIENTS LES PLUS DIFFICILES À SATISFAIRE. C'EST PAR EXEMPLE LE MANGEUR DE RACLETTE QUI EXIGE 50 GRAMMES DE FROMAGE À LA MINUTE … ET LA CUISINE EST TENUE DE RESPECTER CETTE EXIGENCE. À NOTER QUE CE TYPE DE CLIENT EST UN VÉRITABLE GLOUTON ET QUE MÊME SI IL Y A UN ASTICOT DANS SON ASSIETTE IL N'EST PAS QUESTION DE LUI RAMENER UNE ASSIETTE CORRECTE. TANT PIS : C'EST DÉJÀ AVALÉ! EXEMPLES : DEVICES AUDIO & VIDÉO

13 16 Octobre 2007JF VIENNELE BUS USB SLIDE 13 LES LIMITES DU RESTAURANT USB CERTES, LE RESTAURANT EST GRAND (127 TABLES). CERTES, UNE TABLE PEUT ACCUEILLIR JUSQU'À 31 CLIENTS. MAIS … SI BEAUCOUP DE CLIENTS COMMANDENT UNE RACLETTE : IL DEVIENT IMPOSSIBLE D'ASSURER UN SERVICE CORRECT ! DONC : LA CUISINE PEUT REFUSER DE S'OCCUPER D'UNE TABLE DANS LA MESURE OÙ ELLE SAIT QU'ELLE EST INCAPABLE D'ASSURER LE SERVICE DEMANDÉ. SOLUTION (?) : EXISTE T IL UN AUTRE RESTAURANT USB ?

14 16 Octobre 2007JF VIENNELE BUS USB SLIDE 14 LES RESTAURANTS USB PC HOST CONTROLLER 1 ROOT HUB 1 Fonction HUB Fonction HUB Fonction HOST CONTROLLER 2 ROOT HUB 2 Fonction HUB

15 16 Octobre 2007JF VIENNELE BUS USB SLIDE 15 LES RESTAURANTS USB (SUITE) COMBIEN DE CONTRÔLEURS USB DANS LE PC UTILISÉ POUR VISIONNER CE DIAPORAMA ? DEUX POSSIBILITÉS POUR OBTENIR LA RÉPONSE : -1- AVEC LE POSTE DE TRAVAIL. -2- AVEC LE LOGICIEL USBVIEW. USBVIEW EST UN PETIT LOGICIEL FREEWARE PROPOSÉ PAR MICROSOFT QUE L'ON PEUT FACILEMENT OBTENIR PAR INTERNET : Google => USBVIEW CE LOGICIEL NOUS SERA TRÈS UTILE EN TP.

16 16 Octobre 2007JF VIENNELE BUS USB SLIDE 16 LES CONTRÔLEURS USB DE CE PC VOICI L'INFORMATION FOURNIE PAR USBVIEW : IL Y A CINQ CONTRÔLEURS USB DANS CE PC.

17 16 Octobre 2007JF VIENNELE BUS USB SLIDE 17 LES CONTRÔLEURS USB DE CE PC VOICI L'INFORMATION FOURNIE PAR USBVIEW : IL S'AGIT D'UNE SOURIS

18 16 Octobre 2007JF VIENNELE BUS USB SLIDE 18 USB On-The-Go USB USB On-The-Go : INTRODUIT EN 2001 COMME UN COMPLÉMENT À LA SPÉCIFICATION 2.0. USB On-The-Go DÉFINIT UN "HOST COMPUTER" AVEC DES POSSIBILITÉS RÉDUITES POUR PERMETTRE UNE COMMUNICATION USB "PERR TO PEER" ENTRE DEUX APPAREILS. NB : À PROPOS DE USB On-The-Go => ARTICLE À NOTRE AVIS EXCELLENT (ET HUMOURISTIQUE !) REPRODUIT À LA PAGE 25 [USB (Présentation)] DE VOTRE POLYCOPIÉ.

19 16 Octobre 2007JF VIENNELE BUS USB SLIDE 19 WIRELESS USB (WUSB) USB SANS FIL : CELA EXISTE ! 480 MBits/sec jusqu'à 3 mètres et 110 Mbits/sec jusqu'à 10 mètres, pour une consommation de 100 à 300 mW. Bluetooth : 1 Mbits/sec jusqu'à 10 mètres… pour une consommation de à peine 1 mW. LES PREMIERS DEVICES WUSB SONT ATTENDUS POUR LE MILIEU DE L'ANNÉE PLUS D'INFORMATIONS :

20 16 Octobre 2007JF VIENNELE BUS USB SLIDE 20 BUS USB : ASPECT ÉLECTRIQUE UN CÂBLE USB COMPORTE 4 FILS : - DEUX FILS D+ ET D- (PAIRE DIFFÉRENTIELLE) POUR VÉHICULER LES DONNÉES. - DEUX FILS (ROUGE VBus, ET NOIR (Masse)) POUR L'ALIMENTATION (SI BESOIN) DU DEVICE. HORMIS POUR LA VITESSE BASSE OÙ CELA N'EST PAS OBLIGATOIRE CE CÂBLE EST BLINDÉ. VBus EST CAPABLE DE DÉLIVRER 500 mA SOUS 5V POUR ALIMENTER UN OU PLUSIEURS DEVICES. Volts +2,8V +0,3V État Haut État Bas ÉTAT DU BUS Differential "1"D+ à l'état hautD- à l'état bas Differential "0"D+ à l'état basD- à l'état haut J State (Low Speed) J State (Full Speed) K State (Low Speed) K State (Full Speed) Differential "0" Differential "1" Differential "0" SE0D+ et D- à l'état bas PLUS D'INFORMATIONS : NORME USB 2.0 CHAPTER 7

21 16 Octobre 2007JF VIENNELE BUS USB SLIDE 21 CODAGE DES INFORMATIONS LE BUS USB EST UN BUS SÉRIE SYNCHRONE QUI UTILISE LE CODAGE NRZI (Non Return to Zero Inverted). - LES 0 LOGIQUES PROVOQUENT UNE TRANSITION. - LES 1 LOGIQUES NE PROVOQUENT PAS DE TRANSITIONS. GRACE AU CODAGE NRZI LE RÉCEPTEUR PEUT RECONSTITUER L'HORLOGE DE L'ÉMETTEUR … À CONDITION QUE LA DONNÉE TRANSMISE COMPORTE SUFFISAMMENT DE BITS À 0. POUR PALLIER À CET INCONVÉNIENT USB UTILISE LA TECHNIQUE DU "BIT STUFFING".

22 16 Octobre 2007JF VIENNELE BUS USB SLIDE 22 CODAGE DES INFORMATIONS (SUITE) LE "BIT STUFFING" :

23 16 Octobre 2007JF VIENNELE BUS USB SLIDE 23 DÉTECTION DE LA VITESSE DE TRAVAIL D'UN DEVICE DANS UN DEVICE FONCTIONNANT À BASSE VITESSE (1,5 Mbits/Sec) LA LIGNE D- COMPORTE UNE RÉSISTANCE DE PULL UP RELIÉE À +3,3V. C'EST AINSI QUE, DÈS LA CONNEXION DU DEVICE AU HUB, CELUI-CI DÉTECTE LA PRÉSENCE D'UN DEVICE "LOW SPEED".

24 16 Octobre 2007JF VIENNELE BUS USB SLIDE 24 DÉTECTION DE LA VITESSE DE TRAVAIL D'UN DEVICE (SUITE) DANS UN DEVICE FONCTIONNANT À VITESSE PLEINE (12 Mbits/Sec) LA LIGNE D+ COMPORTE UNE RÉSISTANCE DE PULL UP RELIÉE À +3,3V. C'EST AINSI QUE, DÈS LA CONNEXION DU DEVICE AU HUB, CELUI-CI DÉTECTE LA PRÉSENCE D'UN DEVICE "FULL SPEED".

25 16 Octobre 2007JF VIENNELE BUS USB SLIDE 25 DÉTECTION DE LA VITESSE DE TRAVAIL D'UN DEVICE (SUITE ET FIN) QUID POUR UN DEVICE SUPPORTANT LA VITESSE HAUTE (480 Mbits/Sec) ? TOUS LES DEVICES SUPPORTANT LA VITESSE HAUTE SONT ÉGALEMENT CAPABLES DE TRAVAILLER À LA VITESSE PLEINE. LORS DE LA CONNEXION AVEC LE HUB CES DEVICES SE PRÉSENTENT COMME DES DEVICES VITESSE PLEINE (PULL UP SUR D+).

26 16 Octobre 2007JF VIENNELE BUS USB SLIDE 26 TRANSFERT QUAND, COTÉ HOST, UN DRIVER DÉSIRE COMMUNIQUER AVEC UN DEVICE IL INITIALISE UN TRANSFERT. LA NORME DÉFINIT UN TRANSFERT COMME "THE PROCESS OF MAKING AND CARRYING OUT A COMMUNICATION REQUEST". UN TRANSFERT PEUT SE LIMITER À L'ENVOI DE QUELQUES OCTETS (SOURIS…) OU À LA TRANSMISSION D'UN GROS FICHIER (IMPRIMANTE …). NOUS ALLONS VOIR QU'IL EXISTE QUATRE TYPES DE TRANSFERT ET SOUVENONS NOUS DU RESTAURANT USB : CONTRÔLE => POUR LES COMMUNICATIONS AVEC LE CHEF D'UNE TABLE. INTERRUPTION => POUR LES COMMUNICATIONS AVEC LES CLIENTS HYPOGLYCÉMIQUES. BLOC (BULK) => POUR LES COMMUNICATIONS AVEC LES CLIENTS "COOL". ISOCHRONES => POUR LES COMMUNICATIONS AVEC LES CLIENTS BOULIMIQUES.

27 16 Octobre 2007JF VIENNELE BUS USB SLIDE 27 QUATRE TYPES DE TRANSFERT (SUITE) TRANSFERT DE CONTRÔLE - Ce type de transfert est destiné à la configuration et la commande d'un Device. - Ces transferts sont notamment utilisés pour la phase d'énumération. - Un système de retransmission en cas d'erreur assure la fiabilité du transfert. - TOUS les devices USB supportent ce type de transfert. PHASE D'ÉNUMÉRATION : C'est l'installation à une table d'un Device (Un certain nombre de clients accompagnés d'un chef). Le host interroge le chef (endpoint 0) pour identifier le groupe de clients (Entreprise, service dans l'entreprise, vitesse, nombre de clients (endpoints) et pour chaque client (endpoint) quel type de service …). En fait, les transferts de contrôle sont avant tout destinés au dialogue entre la cuisine (le host) et un chef (endpoint 0 d'un device).

28 16 Octobre 2007JF VIENNELE BUS USB SLIDE 28 QUATRE TYPES DE TRANSFERT (SUITE) TRANSFERT PAR INTERRUPTION - Ces transferts sont utilisés pour les devices ayant peu de données à transmettre ou à recevoir, mais avec un délai garanti. - Il ne s'agit pas vraiment d'interruption (au sens microprocesseur du terme) mais d'interrogation du device par le host à une cadence minimum garantie. - Un système de retransmission en cas d'erreur assure la fiabilité du transfert. C'est ce type de transfert que l'on retiendra pour une souris, un clavier …

29 16 Octobre 2007JF VIENNELE BUS USB SLIDE 29 QUATRE TYPES DE TRANSFERT (SUITE) TRANSFERT PAR BLOC (BULK TRANSFERT) - Ces transferts, parfois appelés transferts asynchrones, sont adaptés aux gros volumes de données sporadiques et sans contrainte temporelle. - Le host peut retarder un transfert en bloc jusqu'à disposer de suffisamment de bande passante. - Un système de retransmission en cas d'erreur assure la fiabilité du transfert. - Ce type de transfert n'existe que pour les vitesses pleine et haute. C'est ce type de transfert que l'on retiendra pour une imprimante, un scanner, une clé USB …

30 16 Octobre 2007JF VIENNELE BUS USB SLIDE 30 QUATRE TYPES DE TRANSFERT (SUITE) TRANSFERT ISOCHRONE (ISOCHRONOUS TRANSFERT) - Ces transferts sont à débit constant et destinés aux flux de données importants. - Le débit du canal est garanti. - Les erreurs sont signalées mais il n'y a pas de retransmission. - Ce type de transfert n'existe que pour les vitesses pleine et haute. C'est ce type de transfert que l'on retiendra pour tous les devices audio & vidéo …

31 16 Octobre 2007JF VIENNELE BUS USB SLIDE 31 TERMINAISON (ENDPOINT) NOUS ALLONS SOUVENT ÊTRE AMENÉS À PARLER DE ENDPOINTS. DE QUOI S'AGIT-IL ? C'EST TRÈS SIMPLE SI L'ON SE SOUVIENT DU RESTAURANT USB … UNE TABLE C'EST UN CHEF ACCOMPAGNÉ DE PLUSIEURS CLIENTS. TRADUCTION : UN DEVICE EST OBLIGATOIREMENT COMPOSÉ DU ENDPOINT 0 (LE CHEF) ET D'UN CERTAIN NOMBRE D'AUTRES ENDPOINTS (LES CLIENTS). CES DERNIERS ENDPOINTS ONT UN NUMÉRO ENTRE 1 ET 15 (SAUF POUR LA VITESSE BASSE OU LE NOMBRE EST LIMITÉ À 3). DONC : CHAQUE CLIENT À UN NUMÉRO (ENTRE 1 ET 15; 0 POUR LE CHEF). MAIS (HORMIS POUR LE CHEF) IL Y A LE CLIENT QUI EST LÀ POUR MANGER, ET LE CLIENT QUI EST LÀ POUR APPORTER DE LA NOURRITURE. IL PEUT DONC Y AVOIR, PAR EXEMPLE, DEUX CLIENTS NUMÉRO 1 : LE CLIENT NUMÉRO 1 QUI AMÈNE DE LA NOURRITURE (ENDPOINT DE TYPE IN) ET LE CLIENT NUMÉRO 1 QUI EST LÀ POUR MANGER (ENDPOINT DE TYPE OUT).

32 16 Octobre 2007JF VIENNELE BUS USB SLIDE 32 CANAL (PIPE) UN CANAL (PIPE) USB N'EST PAS UN OBJET PHYSIQUE. C'EST JUSTE UNE ASSOCIATION ENTRE UN ENDPOINT D'UN DEVICE ET LE LOGICIEL DU CONTRÔLEUR USB DU HOST.

33 16 Octobre 2007JF VIENNELE BUS USB SLIDE 33 ORGANISATION DU TRAFIC SUR LE BUS LE HOST DOIT ESSAYER D'ASSURER UN MAXIMUM DE RAPIDITÉ POUR CHAQUE TRANSFERT ET CELA AVEC UNE SEULE PAIRE DIFFÉRENTIELLE (COMMUNICATION HALF DUPLEX). CETTE PAIRE DIFFÉRENTIELLE CONSTITUE UN CHEMIN PHYSIQUE PARTAGÉ PAR TOUS LES DEVICES. TRADUCTION : IL N'Y A QU'UN SEUL SERVEUR DANS LA SALLE DE RESTAURANT. CELUI-CI PEUT ÊTRE UTILISÉ SOIT : - POUR AMENER DE LA NOURRITURE À UN CLIENT (ENDPOINT DE TYPE OUT) - POUR PRÉLEVER DE LA NOURRITURE À UN CLIENT (ENDPOINT DE TYPE IN). ET CHAQUE CLIENT DOIT ÊTRE SERVI CONFORMÉMENT AUX SOUHAITS QU'IL A EXPRIMÉ EN S'INSTALLANT AU RESTAURANT.

34 16 Octobre 2007JF VIENNELE BUS USB SLIDE 34 ORGANISATION DU TRAFIC SUR LE BUS LE HOST DÉCOMPOSE LE TRAFIC SUR LE BUS EN TRAMES : - TRAMES DE 1 ms POUR LES VITESSES BASSE ET PLEINE. - TRAMES (MICRO TRAMES) de 125 μs POUR LA VITESSE HAUTE. Start of Frame Device 1, Endpoint 2Device 2, Endpoint 1Device 5, Endpoint 1Device 5, Endpoint 3 NON UTILISÉ Device 3, Endpoint 1 Start of Frame Device 1, Endpoint 2Device 2, Endpoint 2 Device 5, Endpoint 3 NON UTILISÉDevice 3, Endpoint 2 Start of Frame Device 1, Endpoint 2Device 2, Endpoint 3Device 5, Endpoint 2Device 5, Endpoint 3 NON UTILISÉ Device 3, Endpoint 3 TRAME : 1 MILLISECONDE LE HOST ATTRIBUE À CHAQUE TRANSFERT UNE PORTION DE TRAME. CETTE PORTION CORRESPOND À CE QUE L'ON APPELLE UNE TRANSACTION. LE HOST EST LIBRE D'ORGANISER LIBREMENT LES TRANSACTIONS À L'INTÉRIEUR D'UNE TRAME. TRANSACTIONS

35 16 Octobre 2007JF VIENNELE BUS USB SLIDE 35 ORGANISATION DU TRAFIC SUR LE BUS Start of Frame Device 1, Endpoint 2Device 2, Endpoint 1Device 5, Endpoint 1Device 5, Endpoint 3 NON UTILISÉ Device 3, Endpoint 1 Start of Frame Device 1, Endpoint 2Device 2, Endpoint 2 Device 5, Endpoint 3 NON UTILISÉDevice 3, Endpoint 2 Start of Frame Device 1, Endpoint 2Device 2, Endpoint 3Device 5, Endpoint 2Device 5, Endpoint 3 NON UTILISÉ Device 3, Endpoint 3 TRAME : 1 MILLISECONDE VITESSE LENTE ET VITESSE PLEINE : À L'INTÉRIEUR D'UNE TRAME, IL N'EST PAS POSSIBLE D'AVOIR PLUSIEURS TRANSACTIONS AVEC LE MÊME ENDPOINT. TRANSACTIONS VITESSE HAUTE : À L'INTÉRIEUR D'UNE (MICRO)TRAME, IL EST POSSIBLE D'AVOIR JUSQU'À TROIS TRANSACTIONS AVEC LE MÊME ENDPOINT. DE QUOI SATISFAIRE LES HYPER BOULIMIQUES …

36 16 Octobre 2007JF VIENNELE BUS USB SLIDE 36 TRANSFERT, TRANSACTIONS ET PAQUETS TRANSFERT TRANSACTION PAQUET JETON TOKEN PACKET SYNCPIDINFORMATION COMPLÉMENTAIRESCRCEOP TRANSACTION CHAQUE TRANSFERT CORRESPOND À UNE OU PLUSIEURS TRANSACTIONS. PAQUET DONNÉES DATA PACKET PAQUET D'ACQUITTEMENT HANDSHAKE PACKET CHAQUE TRANSACTION COMPORTE UN OU PLUSIEURS PAQUETS (PACKETS). IL Y A TROIS TYPES DE PAQUETS : - J : LE PAQUET JETON (TOKEN PACKET) - D : LE PAQUET DE DONNÉES (DATA PACKET) - A : LE PAQUET D'ACQUITTEMENT (HANDSHAKE PACKET) UN PAQUET CONTIENT PLUSIEURS CHAMPS : SYNC, SUIVI D'UN PID (PACKET IDENTIFIER) POUVANT ÊTRE SUIVI D'INFORMATIONS COMPLÉMENTAIRES ASSOCIÉES À UN CODE CORRECTEUR D'ERREUR (CRC). UN PAQUET SE TERMINE TOUJOURS PAR UN EOP (End Of Packet) LES COMBINAISONS POSSIBLES SONT : J JD JA JDA

37 16 Octobre 2007JF VIENNELE BUS USB SLIDE 37 COMPOSITION D'UN PAQUET LES PAQUETS SE COMPOSENT DE PLUSIEURS CHAMPS. TOUS LES PAQUETS COMPORTENT LES CHAMPS SYNC, PID ET EOP. LE CHAMP SYNC (OU SOP : Start Of Packet) TOUS LES PAQUETS DÉBUTENT PAR LE CHAMP SYNC (SYNCHRONISATION). CE CHAMP (8 BITS POUR LES VITESSES BASSE ET PLEINE, 32 BITS POUR LA VITESSE HAUTE) EST UTILISÉ POUR SYNCHRONISER L'HORLOGE DU RÉCEPTEUR AVEC L'HORLOGE DE L'ÉMETTEUR. POUR LES VITESSES BASSE ET PLEINE CE CHAMP CORRESPOND À LA SÉQUENCE BINAIRE : APRÈS CODAGE NRZI, LE SIGNAL SUR LE BUS EST LE SUIVANT :

38 16 Octobre 2007JF VIENNELE BUS USB SLIDE 38 COMPOSITION D'UN PAQUET (SUITE) LES PAQUETS SE COMPOSENT DE PLUSIEURS CHAMPS. TOUS LES PAQUETS COMPORTENT LES CHAMPS SYNC, PID ET EOP. LE CHAMP PID (Packet IDentifier) CE CHAMP QUI COMPORTE 8 BITS EST UTILISÉ POUR IDENTIFIER LE TYPE DE PAQUET ENVOYÉ. LES VALEURS POSSIBLES SONT LES SUIVANTES (USB 1.1) : LE PID EST CODÉ SUR 4 BITS : A B C D. TOUTEFOIS, POUR GARANTIR QU'IL A ÉTÉ REÇU CORRECTEMENT C'EST UN OCTET QUI EST TRANSMIS : A B C D A B C D

39 16 Octobre 2007JF VIENNELE BUS USB SLIDE 39 COMPOSITION D'UN PAQUET (SUITE ET FIN) LES PAQUETS SE COMPOSENT DE PLUSIEURS CHAMPS. TOUS LES PAQUETS COMPORTENT LES CHAMPS SYNC, PID ET EOP. LE CHAMP EOP (End Of Packet) CE CHAMP EST COMPOSÉ DE 3 BITS. IL EST DÉTECTÉ PAR LE PASSAGE DU BUS À L'ÉTAT SE0 (D+ ET D- À L'ÉTAT BAS) DURANT CES TROIS BITS.

40 16 Octobre 2007JF VIENNELE BUS USB SLIDE 40 TRANSFERT, TRANSACTIONS ET PAQUETS (RAPPEL) TRANSFERT TRANSACTION PAQUET JETON TOKEN PACKET SYNCPIDINFORMATION COMPLÉMENTAIRESCRCEOP TRANSACTION CHAQUE TRANSFERT CORRESPOND À UNE OU PLUSIEURS TRANSACTIONS. PAQUET DONNÉES DATA PACKET PAQUET D'ACQUITTEMENT HANDSHAKE PACKET CHAQUE TRANSACTION COMPORTE UN OU PLUSIEURS PAQUETS (PACKETS). IL Y A TROIS TYPES DE PAQUETS : - J : LE PAQUET JETON (TOKEN PACKET) - D : LE PAQUET DE DONNÉES (DATA PACKET) - A : LE PAQUET D'ACQUITTEMENT (HANDSHAKE PACKET) UN PAQUET CONTIENT PLUSIEURS CHAMPS : SYNC, SUIVI D'UN PID (PACKET IDENTIFIER) POUVANT ÊTRE SUIVI D'INFORMATIONS COMPLÉMENTAIRES ASSOCIÉES À UN CODE CORRECTEUR D'ERREUR (CRC). UN PAQUET SE TERMINE TOUJOURS PAR UN EOP (End Of Packet) LES COMBINAISONS POSSIBLES SONT : J JD JA JDA

41 16 Octobre 2007JF VIENNELE BUS USB SLIDE 41 COMPOSITION D'UN PAQUET JETON (TOKEN PACKET) TRANSFERT TRANSACTION PAQUET JETON TOKEN PACKET SYNCPIDINFORMATION COMPLÉMENTAIRESCRCEOP TRANSACTION CHAQUE TRANSFERT CORRESPOND À UNE OU PLUSIEURS TRANSACTIONS. PAQUET DONNÉES DATA PACKET PAQUET D'ACQUITTEMENT HANDSHAKE PACKET CHAQUE TRANSACTION COMPORTE UN OU PLUSIEURS PAQUETS (PACKETS). IL Y A TROIS TYPES DE PAQUETS : - J : LE PAQUET JETON (TOKEN PACKET) - D : LE PAQUET DE DONNÉES (DATA PACKET) - A : LE PAQUET D'ACQUITTEMENT (HANDSHAKE PACKET) UN PAQUET CONTIENT PLUSIEURS CHAMPS : SYNC, SUIVI D'UN PID (PACKET IDENTIFIER) POUVANT ÊTRE SUIVI D'INFORMATIONS COMPLÉMENTAIRES ASSOCIÉES À UN CODE CORRECTEUR D'ERREUR (CRC). UN PAQUET SE TERMINE TOUJOURS PAR UN EOP (End Of Packet) LES COMBINAISONS POSSIBLES SONT : J JD JA JDA

42 16 Octobre 2007JF VIENNELE BUS USB SLIDE 42 COMPOSITION D'UN PAQUET JETON (SUITE) IL Y A 4 TYPES DE PAQUET JETON : - OUT INFORME LE DEVICE QUE HOST VA LUI ENVOYER DES DONNÉES. - IN INFORME LE DEVICE QUE LE HOST VAT LUI DEMANDER DES DONNÉES. - SOF PAQUET ÉMIS PAR LE HOST AU DÉBUT DE CHAQUE TRAME ET CONTENANT LE NUMÉRO DE LA TRAME MODULO 7FFFH. - SETUP UTILISÉ POUR DÉBUTER UN TRANSFERT DE CONTRÔLE.

43 16 Octobre 2007JF VIENNELE BUS USB SLIDE 43 COMPOSITION D'UN PAQUET JETON (SUITE ET FIN) SYNCPIDADDRENDP CRC EOP 8/ PAQUET JETON IN, OUT OU SETUP ADDR ADRESSE DU DEVICE SUR 7 BITS. TANT QU'UN DEVICE N'A PAS ENCORE REÇU D'ADRESSE IL DOIT RÉPONDRE À L'ADRESSE 0. ENDP NUMÉRO DU ENDPOINT SUR 4 BITS. CRC CODE CORRECTEUR D'ERREUR 5 BITS CALCULÉ SUR [ADDR ENDP]. SYNCPID NUMÉRO DE TRAME CRC EOP 8/ PAQUET JETON SOF NUMÉRO DE TRAME LES TRAMES SONT NUMÉROTÉES SUR 11 BITS, MODULO 7FFFH. CRC CODE CORRECTEUR D'ERREUR 5 BITS CALCULÉ SUR NUMÉRO DE TRAME.

44 16 Octobre 2007JF VIENNELE BUS USB SLIDE 44 COMPOSITION D'UN PAQUET DE DONNÉES TRANSFERT TRANSACTION PAQUET JETON TOKEN PACKET SYNCPIDINFORMATION COMPLÉMENTAIRESCRCEOP TRANSACTION CHAQUE TRANSFERT CORRESPOND À UNE OU PLUSIEURS TRANSACTIONS. PAQUET DONNÉES DATA PACKET PAQUET D'ACQUITTEMENT HANDSHAKE PACKET CHAQUE TRANSACTION COMPORTE UN OU PLUSIEURS PAQUETS (PACKETS). IL Y A TROIS TYPES DE PAQUETS : - J : LE PAQUET JETON (TOKEN PACKET) - D : LE PAQUET DE DONNÉES (DATA PACKET) - A : LE PAQUET D'ACQUITTEMENT (HANDSHAKE PACKET) UN PAQUET CONTIENT PLUSIEURS CHAMPS : SYNC, SUIVI D'UN PID (PACKET IDENTIFIER) POUVANT ÊTRE SUIVI D'INFORMATIONS COMPLÉMENTAIRES ASSOCIÉES À UN CODE CORRECTEUR D'ERREUR (CRC). UN PAQUET SE TERMINE TOUJOURS PAR UN EOP (End Of Packet) LES COMBINAISONS POSSIBLES SONT : J JD JA JDA

45 16 Octobre 2007JF VIENNELE BUS USB SLIDE 45 COMPOSITION D'UN PAQUET DE DONNÉES (SUITE) PAQUET DE DONNÉES "PAIR" PAQUET DE DONNÉES "IMPAIR " LES PAQUETS DE DONNÉES SONT TOUJOURS TRANSMIS EN COMMENCANT PAR DATA0 (PAQUET PAIR) PUIS EN RESPECTANT LA COMMUTATION DATA1/DATA0 (PAQUET IMPAIR/PAQUET PAIR). AINSI, SI LE RÉCEPTEUR REÇOIT SUCCESSIVEMENT DEUX PAQUETS DE DONNÉES AVEC LA MÊME PARITÉ UNE ERREUR EST DÉTECTÉE ET PEUT ÊTRE CORRIGÉE.

46 16 Octobre 2007JF VIENNELE BUS USB SLIDE 46 COMPOSITION D'UN PAQUET DE DONNÉES (SUITE ET FIN) SYNCPID CRC EOP 8/ à 1023/1024 octets 163 PAQUET DE DONNÉES CRC CODE CORRECTEUR D'ERREUR 16 BITS CALCULÉ SUR DONNÉES. DONNÉES DONNÉES CE SONT LES DONNÉES "UTILES" (PAYLOAD). Taille maximale : 8 octets pour la vitesse basse. Selon le type de transfert, 1023 octets pour la vitesse pleine et 1024 octets pour la vitesse haute.

47 16 Octobre 2007JF VIENNELE BUS USB SLIDE 47 COMPOSITION D'UN PAQUET D'ACQUITTEMENT (HANDSHAKE PACKET). TRANSFERT TRANSACTION PAQUET JETON TOKEN PACKET SYNCPIDINFORMATION COMPLÉMENTAIRESCRCEOP TRANSACTION CHAQUE TRANSFERT CORRESPOND À UNE OU PLUSIEURS TRANSACTIONS. PAQUET DONNÉES DATA PACKET PAQUET D'ACQUITTEMENT HANDSHAKE PACKET CHAQUE TRANSACTION COMPORTE UN OU PLUSIEURS PAQUETS (PACKETS). UN PAQUET CONTIENT PLUSIEURS CHAMPS : SYNC, SUIVI D'UN PID (PACKET IDENTIFIER) POUVANT ÊTRE SUIVI D'INFORMATIONS COMPLÉMENTAIRES ASSOCIÉES À UN CODE CORRECTEUR D'ERREUR (CRC). UN PAQUET SE TERMINE TOUJOURS PAR UN EOP (End Of Packet)

48 16 Octobre 2007JF VIENNELE BUS USB SLIDE 48 COMPOSITION D'UN PAQUET D'ACQUITTEMENT SYNCPIDEOP 8/ PAQUET D'ACQUITTEMENT (ACK, NAK, STALL) IL Y A TROIS SORTES DE PAQUET D'ACQUITTEMENT. TOUTE L'INFORMATION EST CONTENUE DANS LE PID : ACK Acknowledge pour valider la réception sans erreur d'un paquet de données. NAK Rapporte que temporairement le device n'est pas prêt à recevoir ou transmettre des données. STALL Bloqué : le device se trouve dans un état qui va exiger une intervention du host.

49 16 Octobre 2007JF VIENNELE BUS USB SLIDE 49 IMPRIMANTE USB – VITESSE PLEINE (12 Mbits/sec) QUEL TYPE DE TRANSFERT ? => TRANSFERT PAR BLOC TRANSFERT PAR BLOC ET VITESSE PLEINE : LA NORME IMPOSE UN MAXIMUM DE 64 OCTETS "UTILES" PAR TRANSACTION. EN SUPPOSANT QUE LE BUS N'EST PAS SATURÉ, COMBIEN PEUT-ON TRANSMETTRE D'OCTETS À L'IMPRIMANTE PAR SECONDE ? => 64 OCTETS PAR TRAME, SOIT OCTETS /Sec (~64 Ko/sec). QUEL EST LE POURCENTAGE DE LA BANDE PASSANTE DU BUS ? => UNE TRANSACTION PAR TRAME : => PAQUET JETON : => 35 BITS => PAQUET DE DONNÉES : => 547 BITS => PAQUET D'ACQUITTEMENT : => 19 BITS => TOTAL : => 601 BITS => 601 BITS À BITS/ms => 0.05 ms => 5% DE LA BANDE PASSANTE.

50 16 Octobre 2007JF VIENNELE BUS USB SLIDE 50 TRANSFERT DE CONTRÔLE RAPPEL : IL EXISTE 4 TYPES DE TRANSFERT : - TRANSFERT DE TYPE CONTRÔLE. - TRANSFERT DE TYPE INTERRUPTION. - TRANSFERT DE TYPE BLOC (BULK TRANSFERT). - TRANSFERT DE TYPE ISOCHRONE. LES TRANSFERTS DE CONTRÔLE SONT DESTINÉS À LA CONFIGURATION ET LA COMMANDE D'UN DEVICE. NOTAMMENT, LA PHASE D'ÉNUMÉRATION UTILISE UNIQUEMENT DES TRANSFERTS DE CONTRÔLE. CECI IMPLIQUE QUE TOUS LES DEVICES SUPPORTENT CE TYPE DE TRANSFERT. BANDE PASSANTE RÉSERVÉE POUR CES TRANSFERTS : 10% (LS ET FS) 20% (HS).

51 16 Octobre 2007JF VIENNELE BUS USB SLIDE 51 TRANSFERT DE CONTRÔLE : TROIS PHASES UN TRANSFERT DE CONTRÔLE EST UN TRANSFERT ENTRE LE HOST ET LE ENDPOINT 0 D'UN DEVICE (LE CHEF D'UNE TABLE). TROIS PHASES (STAGES) DANS UN TRANSFERT DE CONTRÔLE : - PHASE D'INSTALLATION. - [PHASE DE DONNÉES] (SI BESOIN). - PHASE D'ÉTAT.

52 16 Octobre 2007JF VIENNELE BUS USB SLIDE 52 TRANSFERT DE CONTRÔLE : PHASE D'INSTALLATION (SETUP PHASE) CETTE PHASE CORRESPOND À UNE TRANSACTION COMPRENANT LES 3 PAQUETS SUIVANTS : JETONDATAACQUITTEMENT Device > Host Host > Device Idle Erreur =>Idle PID = SETUP PID = DATA0 PID = ACK LE PAQUET DE DONNÉES (TOUJOURS 8 OCTETS) SPÉCIFIE LE TYPE DE LA DEMANDE CORRESPONDANT À CE TRANSFERT DE CONTRÔLE. LE PAQUET D'ACQUITTEMENT EST ÉMIS PAR LE DEVICE. SI CELUI-CI N'A PAS DÉTECTÉ D'ERREUR (PID, CRC …), LE PID DU PAQUET D'ACQUITTEMENT EST ACK (NAK ET STALL INTERDITS). SINON LE DEVICE N'ENVOIE PAS DE PAQUET D'ACQUITTEMENT.

53 16 Octobre 2007JF VIENNELE BUS USB SLIDE 53 TRANSFERT DE CONTRÔLE : 2ème PHASE => PHASE DE DONNÉES

54 16 Octobre 2007JF VIENNELE BUS USB SLIDE 54 TRANSFERT DE CONTRÔLE : PHASE DE DONNÉES POUR UN TRANSFERT DE CONTRÔLE EN ÉCRITURE (OUT) JETONDATA ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = OUT PID = DATA1/DATA0 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle

55 16 Octobre 2007JF VIENNELE BUS USB SLIDE 55 TRANSFERT DE CONTRÔLE : PHASE DE DONNÉES POUR UN TRANSFERT DE CONTRÔLE EN LECTURE (IN) JETONDATA ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = IN PID = DATA1/DATA0 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle

56 16 Octobre 2007JF VIENNELE BUS USB SLIDE 56 TRANSFERT DE CONTRÔLE : 3ème PHASE => PHASE D'ÉTAT (STATUS) LA PHASE D'ÉTAT (STATUS STAGE) SE LIMITE À UNE SEULE TRANSACTION IN OU OUT, ENCORE APPELÉE TRANSACTION D'ÉTAT. CETTE DERNIÈRE PHASE VA PERMETTRE AU DEVICE DE SIGNIFIER LA RÉUSSITE OU L'ÉCHEC DES PHASES PRÉCÉDENTES.

57 16 Octobre 2007JF VIENNELE BUS USB SLIDE 57 TRANSFERT DE CONTRÔLE : PHASE D'ÉTAT POUR UN TRANSFERT DE CONTRÔLE EN ÉCRITURE (OUT) JETON DATA (0 OCTET) ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = IN PID = DATA1 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle

58 16 Octobre 2007JF VIENNELE BUS USB SLIDE 58 TRANSFERT DE CONTRÔLE : PHASE D'ÉTAT POUR UN TRANSFERT DE CONTRÔLE EN LECTURE (IN) JETON DATA (0 OCTET) ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = OUT PID = DATA1 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle

59 16 Octobre 2007JF VIENNELE BUS USB SLIDE 59 EXEMPLE DE TRANSFERT DE CONTRÔLE : Get Descriptor Device

60 16 Octobre 2007JF VIENNELE BUS USB SLIDE 60 Get Descriptor Device : PHASE D'INSTALLATION (SETUP STAGE) Device > Host Host > Device SYNC PID=SETUP ADDRENDP(0)CRC EOP PAQUET JETON SYNC PID=DATA0 DONNÉESCRC EOP PAQUET DONNÉES DANS LE PAQUET DE DONNÉES LE HOST INFORME LE DEVICE QU'IL VA LUI DEMANDER SON DEVICE DESCRIPTOR. SYNC PID=ACK EOP PAQUET D'ACQUITTEMENT

61 16 Octobre 2007JF VIENNELE BUS USB SLIDE 61 Get Descriptor Device : PHASE DE DONNÉES (DATA STAGE) SYNC PID=IN ADDRENDP(0)CRC EOP PAQUET JETON SYNC PID=DATA0 DONNÉES (8 OCTETS) CRC EOP PAQUET DONNÉES SYNC PID=ACK EOP PAQUET D'ACQUITTEMENT Device > Host Host > Device DANS LE PAQUET DE DONNÉES LE DEVICE TRANSMET LES 8 PREMIERS OCTETS DE SON DESCRIPTOR DEVICE. UN DESCRIPTOR DEVICECOMPREND 18 OCTETS. LA PHASE DE DONNÉES VA DONC COMPRENDRE TROIS TRANSACTIONS. POUR LES DEUX PREMIÈRES LE PAQUET DE DONNÉES CONTIENT 8 OCTETS. LA TROISIÈME SE LIMITE À 2 OCTETS.

62 16 Octobre 2007JF VIENNELE BUS USB SLIDE 62 Get Descriptor Device : PHASE D'ÉTAT (STATUS STAGE) Device > Host Host > Device SYNC PID=IN ADDRENDP(0)CRC EOP PAQUET JETON SYNC PID=DATA1 DONNÉES (0 OCTET) CRC EOP PAQUET DONNÉES SYNC PID=ACK EOP PAQUET D'ACQUITTEMENT

63 16 Octobre 2007JF VIENNELE BUS USB SLIDE 63 TRANSFERT DE TYPE INTERRUPTION

64 16 Octobre 2007JF VIENNELE BUS USB SLIDE 64 TRANSFERT DE TYPE INTERRUPTION (SUITE)

65 16 Octobre 2007JF VIENNELE BUS USB SLIDE 65 TRANSFERT EN ÉCRITURE DE TYPE INTERRUPTION JETONDATA ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = OUT PID = DATA0/DATA1 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle

66 16 Octobre 2007JF VIENNELE BUS USB SLIDE 66 TRANSFERT EN LECTURE DE TYPE INTERRUPTION JETONDATA ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = IN PID = DATA0/DATA1 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle

67 16 Octobre 2007JF VIENNELE BUS USB SLIDE 67 TRANSFERT DE TYPE BLOC (BULK TRANSFERT)

68 16 Octobre 2007JF VIENNELE BUS USB SLIDE 68 TRANSFERT EN ÉCRITURE DE TYPE BLOC JETONDATA ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = OUT PID = DATA0/DATA1 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle RIEN DE NOUVEAU (HORMIS LA TAILLE MAXIMUM DU PAQUET DATA) PAR RAPPORT AU TRANSFERT EN ÉCRITURE DE TYPE INTERRUPTION.

69 16 Octobre 2007JF VIENNELE BUS USB SLIDE 69 TRANSFERT EN LECTURE DE TYPE BLOC JETONDATA ACQUITTEMENT PID=ACK Device > Host Host > Device Idle Erreur =>Idle PID = IN PID = DATA0/DATA1 ACQUITTEMENT PID=NAK ACQUITTEMENT PID=STALL Idle RIEN DE NOUVEAU (HORMIS LA TAILLE MAXIMUM DU PAQUET DATA) PAR RAPPORT AU TRANSFERT EN LECTURE DE TYPE INTERRUPTION.

70 16 Octobre 2007JF VIENNELE BUS USB SLIDE 70 TRANSFERT DE TYPE ISOCHRONE (ISOCHRONOUS TRANSFERT)

71 16 Octobre 2007JF VIENNELE BUS USB SLIDE 71 TRANSFERT DE TYPE ISOCHRONE (SUITE)

72 16 Octobre 2007JF VIENNELE BUS USB SLIDE 72 TRANSFERT EN ÉCRITURE DE TYPE ISOCHRONE JETONDATA Device > Host Host > Device Idle PID = OUT PID = DATA0/DATA1

73 16 Octobre 2007JF VIENNELE BUS USB SLIDE 73 TRANSFERT EN LECTURE DE TYPE ISOCHRONE JETONDATA Device > Host Host > Device Idle PID = IN PID = DATA0/DATA1

74 16 Octobre 2007JF VIENNELE BUS USB SLIDE 74 LES 4 TYPES DE TRANSFERT : RÉCAPITULATION

75 16 Octobre 2007JF VIENNELE BUS USB SLIDE 75 L'ÉNUMÉRATION AVANT QU'UNE APPLICATION SOIT CAPABLE DE COMMUNIQUER AVEC UN DEVICE LE HOST DOIT : -1- FAIRE L'ACQUISITION DES CARACTÉRISTIQUES DU DEVICE. -2- METTRE EN ŒUVRE LE DRIVER APPROPRIÉ. L'ÉNUMÉRATION CORRESPOND À L'ENSEMBLE DES TRANSFERTS QUI VONT PERMETTRE D'EFFECTUER CES DEUX TÂCHES. Remarque préliminaire : La norme USB définit 6 états possibles pour un device. Durant la phase d'énumération un device va passer successivement par les états : - Alimenté (Powered). - Défaut (Default). - Adressé (Adressed). - Configuré (Configured). Les deux autres états sont : Attaché (Attached) et Suspendu (Suspend).

76 16 Octobre 2007JF VIENNELE BUS USB SLIDE 76 L'ÉNUMÉRATION (SUITE) L'ÉNUMÉRATION SE DÉCOMPOSE EN PLUSIEURS ÉTAPES. LA SUITE D'ÉTAPES QUE NOUS ALLONS DÉCRIRE CORRESPOND À LA SÉQUENCE TYPE DES ÉVENEMENTS QUI S'ENCHAÎNENT AVEC WINDOWS. CEPENDANT, LA NORME USB N'IMPOSE PAS UN ORDRE DÉFINI QUAND AUX DIFFÉRENTS ÉLÉMENTS QUI CONSTITUENT L'ÉNUMÉRATION. LE FIRMWARE D'UN DEVICE DOIT DONC ÊTRE CAPABLE DE RÉPONDRE À TOUT MOMENT À N'IMPORTE QUELLE REQUÊTE DE CONTRÔLE ÉMISE PAR LE HOST.

77 16 Octobre 2007JF VIENNELE BUS USB SLIDE 77 L'ÉNUMÉRATION (SUITE) -1- L'UTILISATEUR CONNECTE UN DEVICE SUR UN PORT D'UN HUB USB Le hub alimente le port. Le device est dans l'État Alimenté. -2- LE HUB DÉTECTE LE DEVICE. Le hub détecte la connexion d'un device par la modification de tension sur les lignes D+ ou D LE HOST DÉCOUVRE LA PRÉSENCE D'UN NOUVEAU DEVICE. Un hub possède, entre autres, un Endpoint utilisant des transferts de type interruption et qui sert à informer le host d'une éventuelle modification (connexion ou déconnexion) sur un port du hub. Donc, le hub a détecté une modification et le host qui interroge "pseudo périodiquement" le hub en est maintenant informé. Le host va demander au hub un supplément d'information en lui envoyant une requête "GET_PORT_STATUS". C'est une requête standard parmi d'autres qui est supportée par tous les hubs. -3- LE HUB DÉTECTE LA VITESSE DE FONCTIONNEMENT DU DEVICE. La tension sur les lignes D+ ou D- permet au hub d'identifier la vitesse de fonctionnement du nouveau device,

78 16 Octobre 2007JF VIENNELE BUS USB SLIDE 78 L'ÉNUMÉRATION (SUITE) -5- LE HUB EFFECTUE LE RESET DU NOUVEAU DEVICE. Le host sait maintenant qu'un nouveau device est connecté sur le port d'un hub. Il va demander au hub par une requête "SET_PORT_FEATURE" d'effectuer le reset du device. Pour cela le hub impose pendant au moins 10ms un niveau bas sur les lignes D+ et D- (État SE0). -7- PASSAGE À L'ÉTAT DÉFAUT. Le host vérifie que le device a terminé le reset en envoyant au hub une requête "GET_STATUS_PORT". La donnée renvoyée permet de connaître la réponse. Si nécessaire, le host répète la requête jusqu'à ce que le reset du device soit terminé. Lorsque le hub enlève le reset le device est dans l'état Défaut. Les registres USB du device sont initialisés avec leur valeur de reset et le device est maintenant prêt à répondre aux transferts de contrôle via son Endpoint 0. Le device peut consommer 100mA sur VBus. -6- VITESSE PLEINE OU VITESSE HAUTE ? Au cours du reset, si le nouveau device est capable de fonctionner à vitesse haute il impose momentanément un état bien défini sur les lignes D+ et D-. Si le hub supporte la vitesse haute, il envoie en réponse un "chearp" sur les lignes D+ et D-. Dès lors, le device déconnecte sa résistance de pull-up sur la ligne D+ et la vitesse haute peut-être utilisée. Sinon, le device continue à fonctionner à vitesse pleine.

79 16 Octobre 2007JF VIENNELE BUS USB SLIDE 79 L'ÉNUMÉRATION (SUITE) -8- LE HOST ÉMET UNE REQUÊTE "GET_DESCRIPTOR_DEVICE" POUR ACQUÉRIR LA TAILLE MAXIMUM DU PAQUET DE DONNÉES DU CANAL PAR DÉFAUT. Le host émet cette requête à l'adresse 0/ Endpoint 0. Le 8ème élément d'un descripteur de device contient la taille maximum des paquets de données supportés par le Endpoint 0. NB : Avec WINDOWS, le host se limite à l'acquisition des 8 premiers octets du descripteur qui en compte 18. Ensuite, toujours avec WINDOWS, le host demande au hub d'effectuer un nouveau reset du device. L'énumération recommence alors à l'étape 5. À noter que la norme n'impose nullement d'effectuer ce second reset au cours de la phase d'énumération. -9- LE HOST ATTRIBUE UNE ADRESSE AU NOUVEAU DEVICE. C'est en utilisant la commande "SET_ADDRESS" que le host attribue au nouveau device une adresse comprise entre 1 et 127. Le device est maintenant dans l'état Adressé. Désormais, toutes les transactions avec ce device vont utiliser cette adresse.

80 16 Octobre 2007JF VIENNELE BUS USB SLIDE 80 L'ÉNUMÉRATION (SUITE) -10- LE HOST FAIT L'ACQUISITION DES CARACTÉRISTIQUES DU NOUVEAU DEVICE. En utilisant la requête "GET_DEVICE_DESCRIPTOR" le host va maintenant faire l'acquisition complète du Device Descriptor. Ce descripteur est une structure contenant de nombreuses informations qui vont être utilisées par le host pour les requêtes qui suivent.

81 16 Octobre 2007JF VIENNELE BUS USB SLIDE 81 L'ÉNUMÉRATION (SUITE) -10- LE HOST FAIT L'ACQUISITION DES CARACTÉRISTIQUES DU NOUVEAU DEVICE (SUITE).

82 16 Octobre 2007JF VIENNELE BUS USB SLIDE 82 L'ÉNUMÉRATION (SUITE) -11- LE HOST ATTRIBUE ET CHARGE UN DEVICE DRIVER. POUR CHOISIR UN DRIVER, WINDOWS RECHERCHE LA MEILLEURE CORRESPONDANCE ENTRE LES FICHIERS.inf ET LE VID (Vendor IDentification product) ET LE PID (Product IDentification) LE DEVICE DRIVER SÉLECTIONNE UNE CONFIGURATION.

83 16 Octobre 2007JF VIENNELE BUS USB SLIDE 83 L'ÉNUMÉRATION (SUITE ET FIN) -13- CONSOMMATION SUR VBus

84 16 Octobre 2007JF VIENNELE BUS USB SLIDE 84 CONFIGURATION D'UN DEVICE : LES DESCRIPTEURS

85 16 Octobre 2007JF VIENNELE BUS USB SLIDE 85 LE DESCRIPTEUR DE DEVICE (DEVICE DESCRIPTOR)

86 16 Octobre 2007JF VIENNELE BUS USB SLIDE 86 EXEMPLE DE DESCRIPTEUR DE DEVICE (CLÉ USB) USB 1.1 LE ENDPOINT 0 ACCEPTE DES PAQUETS DE DONNÉES DE 64 OCTETS VID=08EC PID=0010 RÉVISION 2.0 INDEX DE LA CHAÎNE DE CARACTÈRES DÉCRIVANT LE CONSTRUCTEUR INDEX DE LA CHAÎNE DE CARACTÈRES DÉCRIVANT LE COMPOSANT INDEX DE LA CHAÎNE DE CARACTÈRES DÉCRIVANT LE NUMÉRO DE SÉRIE NOMBRE DE CONFIGURATIONS

87 16 Octobre 2007JF VIENNELE BUS USB SLIDE 87 LE DESCRIPTEUR DE CONFIGURATION (CONFIGURATION DESCRIPTOR)

88 16 Octobre 2007JF VIENNELE BUS USB SLIDE 88 LE DESCRIPTEUR DE CONFIGURATION (SUITE)

89 16 Octobre 2007JF VIENNELE BUS USB SLIDE 89 EXEMPLE DE DESCRIPTEUR DE CONFIGURATION (CLÉ USB) Desc. de configuration => 9 Desc. d'interface => 9 Desc. Endpoint => 7 TOTAL : 32 CETTE CONFIGURATION N'A QU'UNE SEULE INTERFACE DESCRIPTEUR DE CONFIGURATION POUR LA CONFIGURATION 1 PAS DE CHAÎNE DE CARACTÈRES POUR DÉCRIRE CETTE CONFIGURATION ALIMENTATION PAR VBus CONSOMMATION : 2FH => 47*2mA

90 16 Octobre 2007JF VIENNELE BUS USB SLIDE 90 LE DESCRIPTEUR D'INTERFACE (INTERFACE DESCRIPTOR)

91 16 Octobre 2007JF VIENNELE BUS USB SLIDE 91 LE DESCRIPTEUR D'INTERFACE (SUITE) IL S'AGIT DE L'INTERFACE NUMÉRO 0 VARIANTE NUMÉRO 0 2 ENDPOINTS, EN PLUS DU ENDPOINT 0 PAS DE CHAÎNE DE CARACTÈRES POUR DÉCRIRE CETTE INTERFACE.

92 16 Octobre 2007JF VIENNELE BUS USB SLIDE 92 LE DESCRIPTEUR DE ENDPOINT (ENDPOINT DESCRIPTOR)

93 16 Octobre 2007JF VIENNELE BUS USB SLIDE 93 LE DESCRIPTEUR DE ENDPOINT (SUITE)

94 16 Octobre 2007JF VIENNELE BUS USB SLIDE 94 EXEMPLES DE DESCRIPTEUR DE ENDPOINT (CLÉ USB) ENDPOINT DE TYPE IN À L'ADRESSE 0x81 UTILISE LES TRANSFERTS PAR BLOC. TAILLE MAXIMUM DES PAQUETS DE DONNÉES : 64 OCTETS ENDPOINT DE TYPE OUT À L'ADRESSE 0x01 UTILISE LES TRANSFERTS PAR BLOC. TAILLE MAXIMUM DES PAQUETS DE DONNÉES : 64 OCTETS POUR LIRE LA CLÉ USB POUR ÉCRIRE LA CLÉ USB

95 16 Octobre 2007JF VIENNELE BUS USB SLIDE 95 LE DESCRIPTEUR DE CHAÎNE DE CARACTÈRES (STRING DESCRIPTOR) UN DEVICE PEUT (CECI EST OPTIONNEL) TRANSMETTRE UN CERTAIN NOMBRE DE CHAÎNES DE CARACTÈRES AU HOST. CHAQUE CHAÎNE DE CARACTÈRES EST STOCKÉE DANS LA MÉMOIRE DU DEVICE ET CORRESPOND À UN NUMÉRO (ON DIT PLUTÔT UN INDICE). EXEMPLE : LE DESCRIPTEUR DE DEVICE COMPREND, ENTRE AUTRES, LES CHAMPS iManufacturer, iProduct ET iSerialNumber. LORSQUE LA VALEUR D'UN DE CES CHAMPS EST NULLE CELA SIGNIFIE QUE LE DEVICE NE POSSÈDE PAS DE CHAÎNE DE CARACTÈRES RELATIVE À CE CHAMP. SI LA VALEUR EST DIFFÉRENTE DE 0, CETTE VALEUR REPRÉSENTE "LE NUMÉRO" DE LA CHAÎNE DE CARACTÈRES RELATIVE À CE CHAMP.

96 16 Octobre 2007JF VIENNELE BUS USB SLIDE 96 LE DESCRIPTEUR DE CHAÎNE DE CARACTÈRES (SUITE) CHAQUE CHAÎNE DE CARACTÈRES PEUT ÊTRE CODÉE AVEC SA PROPRE LANGUE EN UTILISANT UN LANGAGE UNICODE (CHAQUE CARACTÈRE EST CODÉ SUR 16 BITS). CHAQUE LANGUE EST IDENTIFIÉE PAR SON "LANGAGE IDENTIFIER" : LANGID. C'EST UNE VALEUR 16 BITS. UNE VALEUR COURANTE EST 0X0409. C'EST LA VALEUR CORRESPONDANT AU LANGAGE "US ENGLISH"

97 16 Octobre 2007JF VIENNELE BUS USB SLIDE 97 LE DESCRIPTEUR DE CHAÎNE DE CARACTÈRES (SUITE) LE DESCRIPTEUR DE CHAÎNE DE CARACTÈRES NUMÉRO 0 INFORME LE HOST SUR L'ENSEMBLE DES LANGUES DISPONIBLES AU NIVEAU DU DEVICE. LA STRUCTURE DE CE DESCRIPTEUR EST LA SUIVANTE : POUR UN DEVICE DONT TOUTES LES CHAÎNES DE CARACTÈRES SONT CODÉES AVEC LE LANGID 0X0409 LE STRING DESCRIPTOR NUMÉRO 0 EST LE SUIVANT :

98 16 Octobre 2007JF VIENNELE BUS USB SLIDE 98 CONFIGURATION DES DEVICES : LES COMMANDES POUR CONFIGURER UN DEVICE LE HOST VA UTILISER DES TRANSFERTS DE CONTRÔLE AVEC LE ENDPOINT 0. COMME NOUS L'AVONS VU UN TRANSFERT DE CONTRÔLE CORRESPOND À PLUSIEURS PHASES : RAPPEL : LA PHASE DE DONNÉES EST OPTIONNELLE.

99 16 Octobre 2007JF VIENNELE BUS USB SLIDE 99 CONFIGURATION DES DEVICES : LES COMMANDES (SUITE)

100 16 Octobre 2007JF VIENNELE BUS USB SLIDE 100 CONFIGURATION DES DEVICES : LES COMMANDES (SUITE ET FIN) LES COMMANDES STANDARDS :

101 16 Octobre 2007JF VIENNELE BUS USB SLIDE 101 LE BUS USB B (Universal Serial Bus) FIN DIAPORAMA EN LIGNE =>


Télécharger ppt "16 Octobre 2007JF VIENNELE BUS USB SLIDE 1 LE BUS USB B (Universal Serial Bus) DIAPORAMA EN LIGNE => www.ecole.ensicaen.fr/~viennewww.ecole.ensicaen.fr/~vienne."

Présentations similaires


Annonces Google