LES BUS NUMERIQUES Bus série Introduction au bus USB Cours_USB_02
INTRODUCTION AU BUS USB Sommaire Première partie: Objet et caractéristiques Deuxième partie: L ’architecture Troisième partie: Les paquets Quatrième partie: Les transactions Cinquième partie: Les trames Sixième partie: Les éléments connectés au bus Septième partie: USB On-The-Go (OTG)
INTRODUCTION AU BUS USB 1ière partie: Objet et caractéristiques Standard Initiative INTEL Développé par les industriels du monde PC: Compaq, HP, Intel, Lucent, Microsoft, Nec, Philips Vitesses de transmission: Versions 1.0 et 1.1 (1997): 12 Mbits/s € 100 - € 200 Canaux limités à 1,5 Mbps € 20 Version 2.0 (Avril 2000): 480 Mbits/s € 200 - € 800 USB On-The-Go (Décembre 2001) Échanges point à point Caractéristiques de base: Plug and play Jusqu ’à 127 périphériques
INTRODUCTION AU BUS USB 1ière partie: Objet et caractéristiques Le standard définit Les aspects mécaniques Les aspects électriques Le protocole Les différents types de transaction La gestion du bus La couche d ’interface de programmation
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Sommaire - Repère Première partie: L ’architecture Définitions Les aspects physiques La topologie Le protocole: Introduction Configuration système
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Définitions Interconnexion: Définit la manière dont les différents composants communiquent La topologie Les relations entre les différentes couches du protocole Les flux de données L ’organisation des transactions dans le domaine temporel Nœuds Le hôte (Host ou Root) Dispositif unique chargé d ’organiser le séquencement des échanges sur le bus Détecte la modification de la configuration du bus Gère les flux de données vers et en provenance des éléments USB Les Hubs: Points de regroupement et de connexion au bus (concentrateurs) 4 ou 7 ports d ’extension Les fonctions (Functions, Devices): Ne fait que répondre aux demandes du host 2 fonctions ne peuvent pas être connectées directement par un lien USB
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques 3 vitesses: V2.0: 480 Mbits/s High speed V1.1 & V2.0: 12 Mbits/s Full speed V1.1 & V2.0: 1,5 Mbits/s Low speed Câble: 1 paire torsadée blindée [D+, D-] Adaptée 45 par rapport à la masse, 90 en différentiel Tension différentielle: 400 mV 1 paire d ’alimentation: 5V à la source Ports « High power »: fournissent 500 mA minimum Ports « Low power »: fournissent 100 mA minimum Les hubs doivent fournir 100 mA par port au minimum Les ports On-The-Go doivent fournir 8 mA minimum Longueur max: 5 m Les câbles utilisables pour les vitesses 12 et 480 Mbits/s peuvent être différents
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques USB 1.1: 3 états possibles sur la paire différentielle État « J » D+ forcée à l ’état haut D- forcée à l ’état bas État par défaut du mode repos d ’un Device / Hub « Full Speed » Lorsque l ’émetteur est inhibé, les lignes de données sont forcées par des résistances État « K » D+ forcée à l ’état bas D- forcée à l ’état haut État par défaut du mode repos d ’un Device / Hub « Low Speed » Lorsque l ’émetteur est inhibé, les lignes de données sont forcées par des résistances État « SE0 » D+ et D- forcées à l ’état bas Indique qu ’il n’y a pas de Device connecté Aussi utilisé à la fin de chaque paquet sur une durée équivalente à la transmission de 2 bits (+ 1 bit état « J »): EOP Permet aussi d ’initialiser un RESET
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques USB 1.1: Identification Par défaut, pas de Device connecté: État du bus SE0 La connexion d ’un Device est indiquée par la transition de l ’état SE0 à l ’état J ou K J: Full Speed Device K: Low Speed Device SE0 J: Device Full Speed D+ D- SE0 K: Device Low Speed D- D+
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques Full Speed Device Low Speed Device
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques USB 2.0: États possibles État « J »: D+ forcée à Haut et D- forcée à Bas État « K »: D+ forcée à Bas et D- forcée à Haut État « Repos » (idle): D+ et D- forcées à Bas Pas d ’état « SE0 » Remplacé par l ’état « repos » Pas de condition EOP (End of Packet) La fin du paquet est indiquée par la transition des états J/K à l ’état « Repos » USB 2.0: Identification Le Device se connecte en tant que Device Full Speed (J) Le Host initialise un reset du Device Protocole dédié (« Chirp ») Le Device fait osciller les lignes D+/D- de « J » à « K » Le hub ou le host - s ’il en est capable - répond de la même manière
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques Codage: Non retour à 0 inversé (NRZI) 1 est représenté par « pas de changement » 0 est représenté par « un changement de niveau » Bit stuffing: Ajout d ’un « 0 » après 6 « 1 » consécutifs Pénalisation en temps maximum: = Data * 8 * 7/6 = Data * 28/3 unité: périodes d ’horloge avec: Data: Nb d ’octets dans la transaction
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Les aspects physiques Enumération La connexion d ’un device est détectée par le Hub Le Hub renvoie l ’information vers le Host lorsqu ’il est interrogé par ce dernier (polling) Un Reset est initialisé pour le nouveau Device Un nouveau Device a toujours l ’adresse « réseau » 0 après un Reset Le Host requière les caractéristiques fonctionnelles via le endpoint « 0 » Le Host assigne une adresse réseau Le Host peut ensuite autoriser le fonctionnement du Device
INTRODUCTION AU BUS USB 2ième partie: L ’architecture La topologie En étoile et étagée, avec 1 hub au centre de chaque étoile Maximum 7 étages (« Tiers ») Chaque connexion est du type point à point Maximum 5 connexions entre le Root et le Hub le plus loin Un composant occupant 2 étages, il ne peut y avoir de hub dans la couche 7 mais seulement des fonctions
INTRODUCTION AU BUS USB 2ième partie: L ’architecture La topologie Mixage d ’éléments High speed et Full / Low speed Portions de bus Full / Low speed seulement HOST USB 2.0 HUB High Speed Fonction Full / Low speed 2 domaines de capacité 12 Mb/s Fonction High Speed HUB USB 1.1 Fonction Full / Low speed Portions de bus High speed seulement
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Le protocole: Introduction Bus de type Maître / Esclave: Le Host initialise et gère toutes les transmissions Pas d ’échange entre 2 nœuds autres que le host et un des nœuds Les échanges sont basés sur: des paquets: Ensembles d ’informations protocolaires et/ou de données des transactions, composées d ’un ou plusieurs paquets des trames ou microtrames: Consiste à organiser et à regrouper, dans le temps, l ’ensemble des transactions d ’une structure USB en fonction des priorités Les priorités sont essentiellement fonction des différents types de transactions USB 1.1 USB 2.2 Nb (micro)trames/s Trames: 1000 Microtrames: 8000 Octets/trames High Speed NA 7500 Full Speed: 1500 Low Speed 187,5
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Le protocole: Introduction Principe des transactions Jetons émis par le Host Données échangées Host/Fonctions et Fonctions/Host Transactions asynchrones Control des échanges de données par Handshake et Acknowledge Bit error rate < 10-10 CRC et possibilités de « Retry » Séquences Data0/Data1 Transactions isochrones Pas de mécanisme de « Retry » Handshake Data Transfer Token Data Transfer Token
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Le protocole: Introduction 1 transaction: Chaque transaction commence lorsque le Host émet un paquet appelé « Token Packet » ou jeton décrivant la transaction à suivre Échange d ’un paquet de données Entre le nœud et le Host dans le sens spécifié par le jeton Éventuellement, la source de la transaction répond qu ’il n ’a pas de données à émettre Émission, par le récepteur, d ’un paquet de handshake Les nœuds USB décodent eux mêmes leur adresse Endpoint: Sous-adresse d ’un élément USB Pipe: Canal entre le host (émission ou réception) et un endpoint d ’un nœud USB. Caractéristiques d ’un pipe (bande passante, services supportés…) transmises vers le hub dans le message « Default Control Pipe » dès la mise sous tension.
INTRODUCTION AU BUS USB 2ième partie: L ’architecture Configuration système Possibilité de raccorder ou de retirer un nœud « Fonction » n ’importe quand Les Hubs ont des bits dans un registre de statut dédiés à cet usage et envoyés vers le host En cas de détection d ’un nouveau nœud: 1iers échanges via le default pipe qui relie le host au default endpoint d ’adresse « 0 » Validation physique du port Détection du type de nœud (Hub ou Fonction) Attribution, par le Host d ’une adresse Si l ’élément connecté est un Hub associé à plusieurs fonctions: Même procédure pour chacune des fonctions En cas de suppression d ’un élément Même mécanisme de détection Inhibition du port
INTRODUCTION AU BUS USB 3ième partie: Les paquets Sommaire - Repère Troisième partie: Les paquets Principes communs, les différents types Les Champs communs Les Jetons ou Tokens Les paquets de données Les paquets de Handshake Les paquets spéciaux
INTRODUCTION AU BUS USB 3ième partie: Les paquets Principes communs, les différents types Toute transaction sur le bus implique de 1 à 3 paquets 4 types de paquets: Jeton (token) Données Handshake Spécial Les données sont émises sur le bus poids faibles (bits et octets) en 1ier
INTRODUCTION AU BUS USB 3ième partie: Les paquets Les Champs communs SYNCH: Tout paquet commence par un champ de synchronisation pour permettre au récepteur de se synchroniser Durée: - High Speed: 32 périodes d ’horloge - Low / Full Speed: 8 périodes d ’horloge EOP: - Low / Full Speed: Bus en état SEO pendant 3 périodes d ’horloge - High speed: Bus en mode « Idle » pendant 8 périodes d ’horloge Nota: - Ces 2 champs sont systématiquement présents même si, pour plus de clarté, ils n ’apparaissent pas dans les graphiques suivants - Lors des calculs des performances, il ne faut pas l ’oublier! PID: SYNCH est suivi par un Identificateur 4 bits + 4 bits de contrôle Les 4 bits de contrôle correspondent au complément à 1 des 4 1iers bits Indique: Type de paquet Format du paquet Type de détection d ’erreur
INTRODUCTION AU BUS USB 3ième partie: Les paquets Les Jetons ou Tokens 1ier paquet de toute transaction Le Host envoie des jetons à intervalle régulier Précise: Le type de la transaction à suivre Le sens de l ’échange L ’adresse et le endpoint de l ’élément USB concerné Les jetons sont émis en mode broadcast
INTRODUCTION AU BUS USB 3ième partie: Les paquets Les Jetons ou Tokens Composition d ’un jeton PID: Identificateur IN: Lecture d ’un nœud OUT: Écriture d ’un nœud SOF: Start of frame SETUP: Un paquet de données de commande / contrôle va être émis Il ne peut être ignoré Adresse: Maximum 127 nœuds adressables ENDP: Endpoint CRC: Détection d ’erreur 8 bits 7 bits 4 bits 5 bits IN / OUT / SETUP PID Adresse ENDP CRC
INTRODUCTION AU BUS USB 3ième partie: Les paquets Les paquets de Données Ils suivent les jetons de type IN, OUT, SETUP L ’émetteur d ’un paquet de données OUT ou SETUP est le host L ’émetteur d ’un paquet de données IN est un périphérique 4 Identificateurs PID ont été définis: DATA0: Paquet de données pair DATA1: Paquet de données impair DATA2: Paquet de données High speed, transaction isochrone à grande bande passante, trame de 125µs (microtrame) MDATA: Paquet de données High speed, transaction isochrone éclatée à grande bande passante Nombre maximum d ’octets: 1023 (High speed: 1024) 8 bits 0 à 1023 octets 16 bits PID Données CRC
INTRODUCTION AU BUS USB 3ième partie: Les paquets Les paquets de Handshake Consistent uniquement en un champ PID sur 8 bits Pas de CRC 5 Identificateurs ont été définis: ACK: Fin normal d ’un échange NAK Le Endpoint adressé n ’est pas en mesure d ’accepter les données ou de les transmettre 1 host ne peut jamais émettre de NAK: Il doit toujours être en état d ’émettre ou de recevoir des données STALL: Erreur, nécessite l ’envoi d ’un SETUP pour réinitialiser le nœud NYET: High speed transactions Utilisé avec les transactions PING et SPLIT ERR: Permet à un hub type High Speed de signaler une erreur sur un bus Low / Full speed
INTRODUCTION AU BUS USB 3ième partie: Les paquets Les paquets Spéciaux 4 Identificateurs PID ont été définis: PRE Jeton Initialise une transaction à faible débit SPLIT Jeton 4 octets Initialise une transaction éclatée (split transaction) PING Jeton Transaction High Speed. Permet de savoir si un endpoint peut accepter une transaction données OUT de taille max en entier Si oui Le endpoint renvoie un ACK Le host initialise une transaction donnée Si non, le endpoint renvoie un NAK Si le endpoint renvoie NYET, il a accepté toutes les données mais ne peut en recevoir d ’autres. Le host renvoie un jeton PING ERR Handshake Erreur signalée dans un paquet de handshake lors d ’une Split Transaction
INTRODUCTION AU BUS USB 4ième partie: Les transactions Sommaire - Repère Quatrième partie: Les transactions Principes communs, différents types Les transactions Bulk Les Transferts Contrôle Les transactions Interruption Les transactions Isochrones Les Split transactions Les aspects dynamiques
INTRODUCTION AU BUS USB 4ième partie: Les transactions Principes communs, différents types 4 types de transaction Bulk Contrôle Interrupt Isochronous Un endpoint ne supporte qu ’un type de transaction uniquement
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Bulk Transmission asynchrone Le host émet un jeton IN ou OUT Jeton « OUT »: Host Device Le Host émet un jeton « OUT », suivi d ’un paquet avec un PID « DATA0 » Si le Endpoint a correctement reçu les données, il répond avec « ACK » Le Host envoie la donnée suivante (si besoin) avec un PID « DATA1 » Si le Endpoint n ’a pas correctement reçu les données: CRC est mauvais, erreur DATA0/DATA1, pas de réponse Endpoint Génération d ’un timeout Le Host retransmet les données en utilisant le même « DATAx » Jeton « IN »: Device Host Même principe
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Bulk Nœud Host Synthèse des transactions Bulk: (*) Transaction OUT à haut débit uniquement Idle Jeton IN OUT PING (*) Data DATA0 / DATA 1 NAK STALL DATA0 / DATA 1 ACK NAK STALL Erreur Idle Idle Erreur Erreur Handshake ACK NYET (*) ACK NAK STALL Idle
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Transferts Contrôle Messages de commande ou de contrôle courts entre le host et un nœud Composées de: Phase Setup, utilisée pour transmettre les informations à la logique de contrôle du Endpoint Phase de données, non obligatoire Phase de Statut Phase Setup Similaire à une transaction Bulk de type « OUT » Paquet de donnée de type « DATA0 » Transmission OK: Handshake « ACK » Transmission non OK: Refus du jeton / des données Timeout
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Transferts Contrôle En cas de phase de données Transfert Contrôle Écriture: 1 ou + transactions similaires Bulk type « OUT » Transfert Contrôle Lecture: 1 ou + transactions similaires Bulk type « IN » Les données d ’une transaction Contrôle sont transmises dans un seul sens Le nombre de données est spécifié dans la phase Setup Le premier paquet de données est de type « DATA1 » Si le nœud ne peut pas accepter la commande, il répond avec « NAK » ou « STALL » Phase de Statut Dernière transaction de la séquence Permet de renvoyer au Host le résultat des phases précédentes. 3 possibilités: Commande exécutée correctement Commande mal exécutée ou non prise en compte Fonction adressée encore en cours d ’exécution de la commande
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Transferts Contrôle Phase de Statut (suite) Similaire au protocole d ’une transaction Bulk Phase signalée par un changement de direction des échanges de données Paquet de donnée de type « DATA1 » Transfert Contrôle Écriture: Token « IN » Statut renvoyé dans la phase Donnée Transfert Contrôle Lecture: Token « OUT » La Phase de données est constituée d ’un paquet « DATA1 » de longueur nulle Le Statut est renvoyé dans le Handshake
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Transferts Contrôle Phase de Statut: Synthèse Transaction Contrôle Lecture Transaction Contrôle Écriture Idle Jeton OUT IN PING (*) Data DATA 1 Longueur = 0 DATA1 Longueur = 0 NAK STALL Erreur Idle Erreur Handshake ACK NAK STALL NYET (*) Nœud Host Idle (*) Transaction OUT à haut débit uniquement
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Transferts Contrôle Synthèse des transactions Contrôle Phase SETUP Phase statut Phase de données Transfert contrôle en Écriture SETUP(0) OUT(1) OUT(0) OUT(0/1) IN(1) DATA0 DATA1 DATA0 DATA0/1 DATA1 Transfert contrôle en Lecture SETUP(0) IN(1) IN(0) IN(0/1) OUT(1) DATA0 DATA1 DATA0 DATA0/1 DATA1 Phase SETUP Phase statut Host Nœud Transfert contrôle sans data SETUP(0) IN(1) DATA0 DATA1
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Interruption Transactions initialisées par le Host uniquement Un nœud ne peut que émettre une requête de polling La fréquence est spécifiée pendant la phase d ’initialisation du pipe La taille des paquets est spécifiée pendant la phase d ’initialisation du pipe Une transaction Interruption peut être en lecture ou en écriture Transaction Interruption en Lecture: Le host émet un jeton « IN » Le nœud répond par un paquet de données si disponible « NAK » ou « STALL » dans le cas contraire Transaction Interruption en Écriture Le host émet un jeton « OUT » et les paquets de données Le nœud termine la transaction par « ACK » s ’il était prêt à recevoir les données et si elles sont bien reçues Nombre maximum de données: 64 octets (High speed: 1024)
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Interruption Transactions Interruption: Synthèse Idle Host Nœud Jeton IN OUT Data DATA0 / DATA 1 NAK STALL DATA0 / DATA 1 Idle Erreur Erreur ACK ACK NAK STALL Handshake Idle
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Isochrones Lectures ou écritures en fonction Nombre maximum de données: 1023 octets (High speed: 1024) Protocole similaire aux transactions Bulk mais Pas d ’accusés de réception (ACK) Pas de moyen de retransmissions des données erronées Paquets de données: Full speed endpoint: Réception: Peut accepter les types « DATA0 » et « DATA1 » Émission: N ’émet que des types « DATA0 » High speed endpoint: Existence d ’un CRC
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Isochrones Séquences Transactions Isochrones High Speed IN Device HOST Séquences Transactions Isochrones High Speed OUT HOST Device
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les transactions Isochrones Transactions Isochrones: Synthèse Idle Host Nœud Jeton IN OUT Data DATAx DATAx Erreur Erreur Idle
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Split transactions Permet de connecter des éléments Full et Low Speed à des Hubs de type High Speed Ces transactions ne concernent que les Hubs et le Host Elles sont transparentes pour les autres éléments connectés au Hub Le host commence une transaction vers une fonction Low / Full Speed via une transaction Host / Hub High Speed et ensuite continue d ’autres transactions High Speed sans avoir à attendre la fin de la transaction vers la fonction Low / Full Speed
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Split transactions Start-split transaction, jeton « SSPLIT » SSPLIT: 8 bits 7 bits 1 7 bits 1 1 2 bits 5 bits PID Adresse Hub SC Port S E ET CRC = 0 Type de endpoint 00: Contrôle 01: Isochronous 10: Bulk 11: Interrupt Indiquent le type de transaction, l ’état de celle ci (OUT) et la vitesse
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Split transactions Complete-split transaction, jeton « CSPLIT » CSPLIT: 8 bits 7 bits 1 7 bits 1 1 2 bits 5 bits PID Adresse Hub SC Port S U ET CRC = 1 Type de endpoint 00: Contrôle 01: Isochronous 10: Bulk 11: Interrupt Réserve =0 Vitesse
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Split transactions Exemple: Split transaction en relation avec une transaction d ’interruptions IN
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les Split transactions Exemple: Split transaction en relation avec une transaction d ’interruptions OUT
INTRODUCTION AU BUS USB 4ième partie: Les transactions Les aspects dynamiques Les temps d ’attente s ’appellent des End Of Paquet: EOP Durée maximum: Elle prend en compte: Le durée des temps de propagation Les temps de transfert dans le Hub 16 périodes d ’horloge bus Au delà de ce délai: Timeout Le host renvoie un jeton Transaction OUT ou SETUP Jeton Données HS Attente du nœud adressé Attente du Host Transaction IN Jeton Données HS Attente du nœud adressé Attente du Host
INTRODUCTION AU BUS USB 5ième partie: Les trames Sommaire - Repère Cinquième partie: Les trames Principe général Format du Jeton SOF End Of Frame Organisation des trames
INTRODUCTION AU BUS USB 5ième partie: Les trames Principe général Les trames et microtrames permettent d ’agencer les transactions dans le temps Elles sont gérées par le Host Il génère les jetons SOF Cadence 1 ms si uniquement fonctions Full Speed Cadence 125 µs si fonction High Speed
INTRODUCTION AU BUS USB 5ième partie: Les trames Format du Jeton SOF Format d ’un jeton SOF N° de trame Trames Adresse sur 11 bits Transmission de 11 LSB Microtrames: Adresse sur 14 bits Transmission des bits 13 à 3 Le jeton SOF sera identique durant 8 microtrames consécutives 8 bits 7 bits 4 bits 5 bits SOF PID N° de trame CRC
INTRODUCTION AU BUS USB 5ième partie: Les trames End Of Frame EOF: End of Frame Le Host n ’initialise aucune transaction durant le EOF Les Hubs disposent d ’un circuits permettant de supprimer tout trafic sur le bus avant l ’envoi du SOF Après l ’émission du SOF, le Host peut émettre des jetons correspondant à des échanges de la trame précédente si nécessaire Génération des EOF Les Hubs disposent d ’un timer Microtrames: Plage: 59 904 à 60 096 high speed bits Trames: Plage: 11 958 à 12 042 full speed bits Synchronisation Microtrames / Trames: Avec la réception des jetons SOF
INTRODUCTION AU BUS USB 5ième partie: Les trames Organisation des trames Allocation des transactions, par ordre de priorité: Transactions isochrones: La durée allouée pour ces transactions est fixe Transactions « Interruption » Transferts « Contrôle » Transactions « Bulk » SOF Interrupt Contrôle Bulk Messages isochrones Trame: 1 ms _ Microtrame: 125 µs
INTRODUCTION AU BUS USB 6ième partie: Les éléments connectés au bus Sommaire - Repère Sixième partie: Les éléments connectés au bus Les endpoints (sous-adresses) Pipes et interfaces Le contrôle du bus: La machine d ’état Propriétés générales des nœuds et opérations
INTRODUCTION AU BUS USB 6ième partie: Les éléments connectés au bus Les endpoints (sous-adresses) Définition Sources et récepteurs de toutes les communications via USB Caractérisés par: Le type de transferts supportés Le besoin en bande passante (en cas de transactions isochrones) La fréquence des transactions interruptions (en cas de besoin) La taille maximum des paquets Note: Un Endpoint ne peut avoir qu ’un seul type de transaction Un nœud peut comporter jusqu ’à 16 Endpoints en entrée, et 16 en sortie Les nœuds à faible débit ont un nombre d ’Endpoints limité à 3 Les nœuds doivent avoir au moins un Endpoints. Il a le Numéro « 0 » Endpoint « 0 » est utilisé lors de la phase d ’initialisation pour fournir les informations de configuration Il est toujours défini comme un Endpoint pour les transferts de type « contrôle »
INTRODUCTION AU BUS USB 6ième partie: Les éléments connectés au bus Pipes et interfaces Canaux entre un Endpoint et le Host Ils sont crées pendant la phase de configuration Ils présentent les mêmes caractéristiques que le Endpoint auquel ils sont rattachés: Bande passante, Type de transaction, Taille des buffers... 2 types: Stream: Données sans structure particulière Message: Données qui correspondent à une structure définie Ex: commandes de configuration Tous les nœuds disposant d ’au moins 1 Endpoint (N°0), ils ont aussi au moins 1 pipe, appelé le « Default Pipe ». Il sert lors des phases d ’initialisation. Interface: Ensemble de Endpoints qui permettent de gérer les communications d ’une fonction complète
INTRODUCTION AU BUS USB 6ième partie: Les éléments connectés au bus Le contrôle du bus: La machine d ’état Définition des états Attached: Le nœud est relié au bus, L ’interface n ’est pas sous tension Powered: Le nœud est relié au bus et alimenté via un Hub Le nœud n ’a pas été initialisé Note: Les nœuds peuvent être alimentés extérieurement Default: Nœud relié au bus, alimenté et initialisé Pas encore d ’adresse, répond à l ’adresse par défaut « 0 » Address assigned: Nœud relié au bus, alimenté et initialisé, adresse unique sur 7 bits Configuration non faite, le nœud répond sur son « Default Pipe »
INTRODUCTION AU BUS USB 6ième partie: Les éléments connectés au bus Le contrôle du bus: La machine d ’état Configured: Le nœud est entièrement configuré par le host Il est entièrement opérationnel Suspended: État prévu pour limiter la consommation Les nœuds entrent dans cet état automatiquement La configuration reste vraie Cet état se termine dès la détection d ’une activité
INTRODUCTION AU BUS USB 6ième partie: Les éléments connectés au bus Propriétés générales des nœuds et opérations Hot swapping: Insertion et désinsertion sous tension Address assignement: Tous les nœuds doivent accepter de changer leur adresse sur demande du host Configuration: Tous les nœuds doivent répondre à une requête du host faite via le Default Pipe Les nœuds doivent pouvoir être configurés de manière à ce que le host puisse les mettre en œuvre Pendant cette phase, le host demande des paramètres descriptifs aux nœuds Ces paramètres sont des structures contenant des informations décrivant les fonctions du nœud Rappel: Le Default Pipe utilise les transferts contrôle
INTRODUCTION AU BUS USB 7ième partie: USB On-The-Go (OTG) Sommaire - Repère Septième partie: USB On-The-Go (OTG) Spécifications OTG Principe général de l ’OTG Devices capables de 2 rôles SRP: Protocole Session Request HNP: Protocole Host Negotiation
INTRODUCTION AU BUS USB 7ième partie: USB On-The-Go (OTG) Spécifications OTG Supporte toutes les vitesses Low Speed (1,5 Mbps) Full Speed (12 Mbps) En option High Speed (480 Mbps) Note: Les devices High Speed OTG ne sont pas actuellement supportés Fonction dual Host / Device Mini host, pilote 1 Device Se conduit comme une Fonction standard de Contrôleur Protocole dédié Host Negotiation Protocol (HNP) Session Request Protocol (SRP) Nouveau mini-connecteur
INTRODUCTION AU BUS USB 7ième partie: USB On-The-Go (OTG) Principe général de l ’OTG Topologie: Connection directe 2 devices maximum 1 device OTG peut se comporter comme un Host vis à vis de tout device Full Speed Transactions 12Mbps, 1.5Mbps Transactions types Toutes celles définies dans la norme 2.0 Protocole « Host Negotiation » Protocole « Session Request »
INTRODUCTION AU BUS USB 7ième partie: USB On-The-Go (OTG) Devices capables de 2 rôles 100% compatible Device Dispose aussi de capacités (limitées) Host Alimentation: 4 mA Support de la fonction Host optionnel Initialement pour un Device unique vers un autre Device Peut disposer des fonctionnalités Host complètes Protocole USB: L ’un des Devices doit agir comme un Host
INTRODUCTION AU BUS USB 7ième partie: USB On-The-Go (OTG) SRP: Protocole Session Request Autorise le Host OTG à couper le bus USB pour limiter la consommation Le Device Esclave peut demander une nouvelle session en utilisant 1 des 2 méthodes Le Host OTG peut aussi initialiser une session en ré-appliquant l’alimentation Data Line Pulsing L’Esclave attend que le bus USB devienne inactif (L’alimentation tombe sous une valeur pré-déterminée) L’esclave force la ligne D+ à l’état haut Le Host détecte ce forçage et ré-applique l’alimentation VBUS Pulsing Similaire au cas précédent mais utilise la ligne d’alimentation du bus USB L’esclave attend que l’alimentation tombe sous un seuil pré-déterminé L’esclave force un courant dans le câble VBUS USB Ce courant a une valeur pré-déterminée et génère une tension telle qu’un Host non compatible de ce protocole ne soit pas détérioré Un Host détecte la tension et ré-alimente le bus
INTRODUCTION AU BUS USB 7ième partie: USB On-The-Go (OTG) HNP: Protocole Host Negotiation Basé sur les caractéristiques physique du câble 2 Devices capable des fonctionnalités Maître / Esclave Câble Mini-A / mini-B L’esclave par défaut (mini-B) cherche à initialiser un échange L’Esclave se déconnecte L’Esclave effectue un Reset et émet un SOF Le Device initialement Esclave devient Maître Le nouveau Maître entame une phase d’énumération et initialise l’activité sur le bus Lorsque terminé, le nouveau Maître suspend l’activité sur le bus Le Maître initial reprend son rôle de Maître