LES BUS NUMERIQUES Bus série
description
Transcript of LES BUS NUMERIQUES Bus série
1
LES BUS NUMERIQUES
Bus série
Introduction au bus USB
Cours_USB_02
2
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)
3
INTRODUCTION AU BUS USB1iè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
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
4
INTRODUCTION AU BUS USB1iè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
5
INTRODUCTION AU BUS USB2ième partie: L ’architectureSommaire - Repère
Première partie:
L ’architecture
Définitions
Les aspects physiques
La topologie
Le protocole: Introduction
Configuration système
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
6
INTRODUCTION AU BUS USB2ième partie: L ’architectureDé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
7
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes 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
8
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes 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
9
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes 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+
10
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes aspects physiques
Full Speed Device
Low Speed Device
11
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes 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
12
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes 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/3unité: périodes d ’horloge
avec:Data: Nb d ’octets dans
la transaction
13
INTRODUCTION AU BUS USB2ième partie: L ’architectureLes 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
14
INTRODUCTION AU BUS USB2ième partie: L ’architectureLa 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 dansla couche 7 mais seulementdes fonctions
H ub 2Fonction
Fonction
FonctionH ub 3
FonctionH ub 4
Fonction H ub 5 Fonction
H ub 6 H ub 7
Fonction
H ub 1
H O STroot hub
E tage 1: H ost
E tage 2
E tage 3
E tage 4
E tage 5
E tage 6
E tage 7
C om posant
15
INTRODUCTION AU BUS USB2ième partie: L ’architectureLa topologie
Mixage d ’éléments High speed et Full / Low speed
HOSTUSB 2.0
HUBHigh Speed
FonctionHigh Speed
HUBUSB 1.1
FonctionFull / Low speed
FonctionFull / Low speed
Portions de bus High speedseulement
Portions de bus Full / Low speedseulement
2 domainesde capacité 12 Mb/s
16
INTRODUCTION AU BUS USB2ième partie: L ’architectureLe 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.2Nb (micro)trames/s Trames: 1000 Microtrames: 8000Octets/trames High Speed NA 7500
Full Speed: 1500Low Speed 187,5
17
INTRODUCTION AU BUS USB2ième partie: L ’architectureLe 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 »
HandshakeHandshakeData TransferData TransferTokenToken
Data TransferData TransferTokenToken
18
INTRODUCTION AU BUS USB2ième partie: L ’architectureLe 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.
19
INTRODUCTION AU BUS USB2ième partie: L ’architectureConfiguration 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
20
INTRODUCTION AU BUS USB3ième partie: Les paquetsSommaire - 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
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
21
INTRODUCTION AU BUS USB3ième partie: Les paquetsPrincipes 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
22
INTRODUCTION AU BUS USB3ième partie: Les paquetsLes Champs communs
SYNCH: Tout paquet commence par un champ de synchronisation pourpermettre 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 1 iers bits
Indique: Type de paquet Format du paquet Type de détection d ’erreur
23
INTRODUCTION AU BUS USB3ième partie: Les paquetsLes 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
24
INTRODUCTION AU BUS USB3ième partie: Les paquetsLes 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
PID Adresse ENDP CRCIN / OUT / SETUP
25
INTRODUCTION AU BUS USB3ième partie: Les paquetsLes 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 bandepassante, 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
26
INTRODUCTION AU BUS USB3ième partie: Les paquetsLes 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
27
INTRODUCTION AU BUS USB3ième partie: Les paquetsLes paquets Spéciaux
4 Identificateurs PID ont été définis:
PRE Jeton Initialise une transaction à faible débit
SPLIT Jeton 4 octetsInitialise 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
28
INTRODUCTION AU BUS USB4ième partie: Les transactionsSommaire - 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
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
29
INTRODUCTION AU BUS USB4ième partie: Les transactionsPrincipes communs, différents types
4 types de transaction
Bulk
Contrôle
Interrupt
Isochronous
Un endpoint ne supporte qu ’un type de transaction uniquement
30
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
HandshakeHandshakeData TransferData TransferTokenToken
31
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes transactions Bulk
Synthèse des transactions Bulk:
IN OUT PING (*)
DATA0/
DATA 1
NAK STALL
ACK
Idle
ACK NAK
Idle
NYET (*) STALL
DATA0/
DATA 1
ACK
Idle
HostNœud
Jeton
Data
Handshake
Erreu
r
Erreu
r
NAK STALL
Idle
(*) Transaction OUT à haut débit uniquement
Erreu
r
32
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
33
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
34
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
Transfert SETUPStatutEcriture
(envoyé durant la phase de données)Lecture
(envoyé durant la phase d’handshake)
Commande bien exécutée Paquet données de longueur nulle Handshake « ACK »
Erreur Paquet de données correspondantau code handshake « STALL »
Handshake « STALL »
En cours d’exécution Paquet de données correspondantau code handshake « NAK »
Handshake « NAK »
35
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Transferts Contrôle
Phase de Statut: Synthèse
OUT INPING (*)
ACK NAK
Idle
STALL
DATA 1Longueur
= 0
Idle
Jeton
DataE
rreur
NAK STALL
Idle
Erreu
r
Handshake
TransactionContrôle Écriture
TransactionContrôle Lecture
HostNœudNYET (*)
(*) Transaction OUT à haut débit uniquement
DATA1Longueur
= 0
36
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Transferts Contrôle
SETUP(0) OUT(1) OUT(0) OUT(0/1) IN(1)
DATA0 DATA1 DATA0 DATA0/1 DATA1
SETUP(0) IN(1) IN(0) IN(0/1) OUT(1)
DATA0 DATA1 DATA0 DATA0/1 DATA1
SETUP(0)
DATA0 DATA1
Transfert contrôle en Écriture
Transfert contrôle en Lecture
Transfert contrôle sans data
PhaseSETUP
Phasestatut
Synthèse des transactions Contrôle
Phase de données
PhaseSETUP
Phasestatut
Host
NœudIN(1)
37
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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 « NAK » ou « STALL » dans le cas contraire
Nombre maximum de données: 64 octets (High speed: 1024)
38
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes transactions Interruption
Transactions Interruption: Synthèse
IN OUT
DATA0/
DATA 1
NAK STALL
ACK
Idle
ACK NAK
Idle
STALL
DATA0/
DATA 1
Jeton
Data
Handshake
Erreu
r
Erreu
r
Idle Host
Nœud
39
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
40
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes transactions Isochrones
Séquences Transactions IsochronesHigh Speed IN
Device HOST
Séquences Transactions IsochronesHigh Speed OUT
HOST Device
41
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes transactions Isochrones
Transactions Isochrones: Synthèse
IN OUT
DATAx
Idle
DATAx
Jeton
Data Erreu
r
Idle Host
Nœud
Erreu
r
42
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
43
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Split transactions
2 split transactions:
Start-split transaction, jeton « SSPLIT »
8 bits 7 bits 1 5 bits
PID Adresse Hub CRC
7 bits 1 1 2 bits
SC Port S E ET
Type de endpoint00: Contrôle01: Isochronous10: Bulk11: Interrupt
Indiquent le type de transaction,l ’état de celle ci (OUT) et la vitesse
= 0
SSPLIT:
44
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Split transactions
Complete-split transaction, jeton « CSPLIT »
8 bits 7 bits 1 5 bits
PID Adresse Hub CRC
7 bits 1 1 2 bits
SC Port S U ET
Type de endpoint00: Contrôle01: Isochronous10: Bulk11: Interrupt
Vitesse
= 1
Réserve=0
CSPLIT:
45
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Split transactions
Exemple: Split transaction en relation avec une transaction d ’interruptions IN
46
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Split transactions
Exemple: Split transaction en relation avec une transaction d ’interruptions OUT
47
INTRODUCTION AU BUS USB4ième partie: Les transactionsLes 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
Jeton Données HSTransaction OUT ou SETUP
Attente dunœud adressé Attente du Host
Jeton Données HSTransaction IN
Attente dunœud adresséAttente du Host
48
INTRODUCTION AU BUS USB5ième partie: Les tramesSommaire - Repère
Cinquième partie:
Les trames
Principe général
Format du Jeton SOF
End Of Frame
Organisation des trames
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
49
INTRODUCTION AU BUS USB5ième partie: Les tramesPrincipe 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
50
INTRODUCTION AU BUS USB5ième partie: Les tramesFormat 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
PID N° de trame CRCSOF
51
INTRODUCTION AU BUS USB5ième partie: Les tramesEnd 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
52
INTRODUCTION AU BUS USB5ième partie: Les tramesOrganisation 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 Bulk
Messages isochrones
Bulk
SOF Interrupt Contrôle Bulk BulkBulkBulk
SOF Interrupt Contrôle Bulk BulkBulkBulk
SOF Interrupt Contrôle BulkBulkBulk
Trame: 1 ms _ Microtrame: 125 µs
53
INTRODUCTION AU BUS USB6iè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
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
54
INTRODUCTION AU BUS USB6ième partie: Les éléments connectés au busLes 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 »
55
INTRODUCTION AU BUS USB6ième partie: Les éléments connectés au busPipes et interfaces
Pipes:
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 lescommunications d ’une fonction complète
56
INTRODUCTION AU BUS USB6ième partie: Les éléments connectés au busLe 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 »
57
INTRODUCTION AU BUS USB6ième partie: Les éléments connectés au busLe 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é
58
INTRODUCTION AU BUS USB6ième partie: Les éléments connectés au busProprié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
59
INTRODUCTION AU BUS USB7iè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
1ière partie: Objet et caractéristiques
2ième partie: L ’architecture
3ième partie: Les paquets
4ième partie: Les transactions
5ième partie: Les trames
6ième partie: Les éléments connectés au bus
7ième partie: USB On-The-Go (OTG)
60
INTRODUCTION AU BUS USB7iè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
61
INTRODUCTION AU BUS USB7iè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 »
62
INTRODUCTION AU BUS USB7iè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
63
INTRODUCTION AU BUS USB7iè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
64
INTRODUCTION AU BUS USB7iè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