INTRODUCTION Hugo Descoubes - Octobre 2012 Universal Serial Bus
Réseaux – Présentation – Services – Topologie – Pile USB 2 – copyleft INTRODUCTION Panorama des Réseaux et Bus de communication:
INTRODUCTION Les bus informatiques (computer bus) servent d’interface de communication avec un ordinateur Les bus informatiques (computer bus) servent d’interface de communication avec un ordinateur. Ils s’adaptent donc le plus souvent aux standards rencontrés sur les ordinateurs grand public. Les protocoles filaires dédiés aux applications vidéos (HDMI, DisplayPort, DVI, VGA …) restent spécifiques aux contraintes imposées par les applications vidéos et n’ont pas vocation à être polyvalents. Réseaux – Présentation – Services – Topologie – Pile USB 3 – copyleft
INTRODUCTION En 2000, avant l’arrivée de la norme USB 2.0 : Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents 4 – copyleft
INTRODUCTION Le bus USB a vocation à être universel … d’où son nom ! Universal Serial Bus Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents 5 – copyleft
INTRODUCTION Principaux avantages du bus USB : Polyvalence Polyvalence, supporte un grand nombre de périphériques imposant des contraintes différentes (clé USB, souris, imprimante..) Connexion et déconnexion à chaud Alimentation Alimentation par le bus et gestion d’énergie. Alimentation 5V et jusqu’à 500mA en fonction du type de Hub. Mode veille après 3ms d’inactivité sur le bus. Connecteur unique Connecteur unique. Standardisation des connectiques si respecté par les sociétés implémentant des solutions USB. Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents 6 – copyleft
INTRODUCTION Réseaux Réseaux. Plusieurs périphériques sur un même réseau de communication Faible coût Faible coût, en 2012 nous pouvons trouver des solutions intégrées sur MCU à moins de 1€ Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents L’inconvénient : Complexité Complexité. Tous les avantages précédemment présentés se payent par une complexité du protocole et un manque de compétences en milieu industriel 7 – copyleft
INTRODUCTION Les spécifications et normes autour du bus USB sont posées par un consortium, USB-IF (Implementers Forum). Entreprises partenaires en 2012 ( : Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents 8 – copyleft
INTRODUCTION L’USB est décliné en plusieurs normes spécifiées par le consortium USB-IF. Observons quelques dates clés : Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents 9 – copyleft
INTRODUCTION Attention, les différentes normes précédemment présentées proposent plus qu’une simple amélioration des débits. Néanmoins, elles offrent des évolutions des débits théoriques et définissent des vitesses de travail : Norme USB 1.1 Norme USB 1.1 : Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents Vitesse Basse Low Speed Vitesse Basse ou Low Speed : 1,5Mbps Vitesse Pleine Full Speed Vitesse Pleine ou Full Speed : 12Mbps Logo officiel : 10 – copyleft
INTRODUCTION Norme USB 2.0 Norme USB 2.0 : Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents Vitesse Haute High Speed Vitesse Haute ou High Speed : 480Mbps Logo officiel : Norme USB 3.0 Norme USB 3.0 : Super Vitesse Super Speed Super Vitesse ou Super Speed : 5Gbps Logo officiel : 11 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents La parution des spécifications de la norme USB 2.0 en 2000 marque l’arrivée d’un très grand nombre d’applications USB sur le marché : 12 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents Prenons un exemple d’application USB qui travaille autour de SoC Multi-cœurs OMAP de chez TI. Par exemple le Galaxy SII de Samsung : 13 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents Prenons un exemple d’application USB travaillant autour de SoC Multi-cœurs OMAP de chez TI. Par exemple le Galaxy SII de Samsung : 14 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Pourquoi l’USB ? Normes Applications Concurrents i.Link Lynx Le principale bus de communication concurrent de l’USB est le FireWire ou IEEE Il est nommé i.Link par Sony et Lynx par Texas Instruments. Ce standard a été normalisé par Apple en 1995 : FireWire FireWire offre un débit théorique de 400Mbps. Logo officiel : FireWire2FireWire Gigabit FireWire 800 IEEE-1394b FireWire2 ou FireWire Gigabit ou FireWire 800 ou IEEE-1394b a été adopté en 2008 et offre un débit théorique de 3,2Gbps. 15 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave Le bus USB a vocation à être universel (souris, imprimante, disque dur, clavier, webcam …). Pour arriver à ses fins, la spécification définit 4 grands modes de connexion ou services de transfert : interruptioninterrupt Transferts de type interruption ou interrupt blocbulk Transferts de type bloc ou bulk isochrone isochronous Transferts de type isochrone ou isochronous contrôlecontrol Transferts de type contrôle ou control 16 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave interruptioninterrupt Transferts de type interruption ou interrupt. Adaptés aux applications ayant peu de données à transférer mais devant respecter des contraintes temporelles. 17 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave blocbulk Transferts de type bloc ou bulk. Adaptés aux applications ayant beaucoup de données à transférer avec pas ou peu de contraintes temporelles. 18 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave isochrone isochronous non critiques Transferts de type isochrone ou isochronous. Adaptés aux applications ayant beaucoup de données non critiques à transférer ainsi que des contraintes temporelles à respecter. Par exemple, toute application audio ou vidéo. 19 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave contrôlecontrol Transferts de type contrôle ou control. Supportés par tous les esclaves ou devices USB. Ils sont utilisés pour la configuration et la gestion du réseau ainsi que par les devices les supportant au niveau applicatif. La phase d’énumération des esclaves par le host utilise uniquement ce type de transfert. 20 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave Un cycle ou trame vaut 1ms en vitesses basse et pleine et nous parlons de microtrame de 125us en vitesse haute Les différents modes de connexion possèdent des niveaux de priorité. Respectivement isochrone, interruption, contrôle puis bloc par ordre de priorité. L’allocation de la bande passante est gérée par le host. Les transferts de type isochrone et interruption peuvent occuper jusqu’à 90% de la bande passante d’un cycle. Un cycle ou trame vaut 1ms en vitesses basse et pleine et nous parlons de microtrame de 125us en vitesse haute. 21 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave Host ? Esclave ? Device ? Maître ? 22 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Modes de connexion Priorités des modes Maître/Esclave Maître/Esclave Master/SlaveHost/device L’USB utilise un protocole de type Maître/Esclave ou Master/Slave ou Host/device. Le host est à l’initiative de toutes les communications sur le bus. Les devices ne font que lui répondre. 23 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint topologie de type bus qu’au niveau logique ou applicatif Le nom même de l’USB le définit comme un bus. Pour être rigoureux, l’USB ne possède une topologie de type bus qu’au niveau logique ou applicatif. Il s’utilise comme un bus mais n’en est pas un : 24 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint topologie en étoile Au niveau physique, l’USB possède une topologie en étoile (star topology). Les devices ne sont jamais physiquement reliés au host. Un hub racine est toujours associé au contrôleur maître : Jusqu’à 5 hub entre un device et le host Un hub est considéré comme un device 25 – copyleft
INTRODUCTION Prenons un exemple d’échange entre un host supportant la norme USB 2.0 et deux devices travaillant avec des vitesses de travail différentes : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 26 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 27 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 28 – copyleft
INTRODUCTION Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 29 – copyleft
INTRODUCTION chaque esclave possède une adresse sur le bus Comme tout bus de communication utilisant une connexion de type Maître/Esclave, chaque esclave possède une adresse sur le bus. Les adresses sont connues du host et peuvent l’être de la couche applicative. La norme fixe le nombre maximum de device à 127. L’adresse d’un device est allouée par le host à la connexion durant la phase d’énumération : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 30 – copyleft
INTRODUCTION Un endpoint (ou terminaison) est un buffer de réception ou de transmission (respectivement OUT ou IN) accueillant les payloads (ou données utiles) Chaque message du host est en fait adressé à un device via son adresse et un numéro de endpoint. Un endpoint (ou terminaison) est un buffer de réception ou de transmission (respectivement OUT ou IN) accueillant les payloads (ou données utiles) : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 31 – copyleft
INTRODUCTION Observons ensemble un exemple de contrôleur USB embarqué dans un MCU : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 32 – copyleft
INTRODUCTION Au niveau applicatif, après configuration du contrôleur et de la communication USB, le développeur n’aura qu’à écrire ou lire les payloads dans les endpoints de réception et/ou de transmission : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 33 – copyleft
INTRODUCTION Le rôle du contrôleur USB en mode device est alors de répondre aux requêtes du host en sérialisant les données et en y ajoutant les champs relatifs au protocole USB : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 34 – copyleft
INTRODUCTION Tous les devices possèdent au moins 2 endpoints Tous les devices possèdent au moins 2 endpoints (endpoint 0 IN et endpont 0 OUT). Ils sont notamment utilisés durant la phase d’énumération. Il s’agit de la phase d’identification du device par le host à la connexion. une direction (IN ou OUT). Un endpoint étant un buffer de réception ou de transmission, il lui est donc associé une direction (IN ou OUT). La direction est toujours vue du maître. mode de connexion A chaque endpoint est associé un mode de connexion (bloc, interruption, isochrone ou contrôle) Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 35 – copyleft
INTRODUCTION Les endpoints 0 possèdent toujours une taille de 8o La taille des autres endpoints dépend de la vitesse de travail et du mode de connexion supporté : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 36 – copyleft
INTRODUCTION Prenons l’exemple des MCU 32bits PIC32MX de Microchip et intéressons-nous au contrôleur USB embarqué : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 37 – copyleft
INTRODUCTION Observons le contrôleur USB : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint Endpoint en RAM, donc taille paramétrable Serial Interface Engine 38 – copyleft
INTRODUCTION Prenons l’exemple des MCU 32bits PIC32MX de Microchip et intéressons-nous au contrôleur USB embarqué : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint Endpoint en RAM, donc taille paramétrable 39 – copyleft
INTRODUCTION Prenons l’exemple des MCU 32bits PIC32MX de Microchip et intéressons-nous au contrôleur USB embarqué : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 40 – copyleft
INTRODUCTION vitesse basse En vitesse basse, un device peut posséder jusqu’à 2 endpoints supplémentaires. vitesse pleine et vitesse haute En vitesse pleine et vitesse haute, un device peut posséder jusqu’à 32 endpoints, 16 de type IN et 16 de type OUT (endpoints 0 compris). Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 41 – copyleft
INTRODUCTION Prenons l’exemple d’une souris USB. Une souris USB travaille la plupart du temps en vitesse basse : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 42 – copyleft
INTRODUCTION Prenons l’exemple d’une souris USB. La plupart des souris USB travaillent en vitesse basse : Réseaux – Présentation – Services – Topologie – Pile USB Niveau Logique Niveau Physique Adressage et endpoint 43 – copyleft
INTRODUCTION Le protocole USB n’est pas conforme au modèle OSI (Open Systems Interconnection), néanmoins sa description peut suivre une méthodologie standard dans le monde des réseaux : Réseaux – Présentation – Services – Topologie – Pile USB Modèle OSI Notion de Pipe 44 – copyleft
INTRODUCTION La suite du cours cherchera donc à suivre au mieux ce modèle d’interconnexion : Couche Physique Couche Physique. Description des caractéristiques mécaniques, physiques, électroniques et électriques associées aux normes. Cette couche décrit également les techniques de codage bit. Couche Protocole Couche Protocole. Description des mécanismes de gestion des erreurs, de synchronisation, d’accès au medium, de gestion des transactions et des services … Couche Application Couche Application. Illustration à l’aide d’une application USB Device développée sur PIC32MX de Microchip. Réseaux – Présentation – Services – Topologie – Pile USB Modèle OSI Notion de Pipe 45 – copyleft
INTRODUCTION Dernière notion abordée, avant la découverte de la couche Physique puis de la couche Protocole, est le concept de Pipe. Un pipe peut être assimilé à un tuyau de communication associé à un device et un endpoint. Il s’agit d’un outil logiciel : Réseaux – Présentation – Services – Topologie – Pile USB Modèle OSI Notion de Pipe 46 – copyleft
Merci de votre attention !