LES BUS NUMERIQUES Bus série

64
1 LES BUS NUMERIQUES Bus série Introduction au bus USB Cours_USB_02

description

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 - PowerPoint PPT Presentation

Transcript of LES BUS NUMERIQUES Bus série

Page 1: LES BUS NUMERIQUES Bus série

1

LES BUS NUMERIQUES

Bus série

Introduction au bus USB

Cours_USB_02

Page 2: LES BUS NUMERIQUES Bus série

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)

Page 3: LES BUS NUMERIQUES Bus série

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)

Page 4: LES BUS NUMERIQUES Bus série

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

Page 5: LES BUS NUMERIQUES Bus série

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)

Page 6: LES BUS NUMERIQUES Bus série

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

Page 7: LES BUS NUMERIQUES Bus série

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

Page 8: LES BUS NUMERIQUES Bus série

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

Page 9: LES BUS NUMERIQUES Bus série

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+

Page 10: LES BUS NUMERIQUES Bus série

10

INTRODUCTION AU BUS USB2ième partie: L ’architectureLes aspects physiques

Full Speed Device

Low Speed Device

Page 11: LES BUS NUMERIQUES Bus série

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

Page 12: LES BUS NUMERIQUES Bus série

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

Page 13: LES BUS NUMERIQUES Bus série

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

Page 14: LES BUS NUMERIQUES Bus série

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

Page 15: LES BUS NUMERIQUES Bus série

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

Page 16: LES BUS NUMERIQUES Bus série

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

Page 17: LES BUS NUMERIQUES Bus série

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

Page 18: LES BUS NUMERIQUES Bus série

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.

Page 19: LES BUS NUMERIQUES Bus série

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

Page 20: LES BUS NUMERIQUES Bus série

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)

Page 21: LES BUS NUMERIQUES Bus série

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

Page 22: LES BUS NUMERIQUES Bus série

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

Page 23: LES BUS NUMERIQUES Bus série

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

Page 24: LES BUS NUMERIQUES Bus série

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

Page 25: LES BUS NUMERIQUES Bus série

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

Page 26: LES BUS NUMERIQUES Bus série

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

Page 27: LES BUS NUMERIQUES Bus série

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

Page 28: LES BUS NUMERIQUES Bus série

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)

Page 29: LES BUS NUMERIQUES Bus série

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

Page 30: LES BUS NUMERIQUES Bus série

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

Page 31: LES BUS NUMERIQUES Bus série

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

Page 32: LES BUS NUMERIQUES Bus série

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

Page 33: LES BUS NUMERIQUES Bus série

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

Page 34: LES BUS NUMERIQUES Bus série

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 »

Page 35: LES BUS NUMERIQUES Bus série

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

Page 36: LES BUS NUMERIQUES Bus série

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)

Page 37: LES BUS NUMERIQUES Bus série

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)

Page 38: LES BUS NUMERIQUES Bus série

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

Page 39: LES BUS NUMERIQUES Bus série

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

Page 40: LES BUS NUMERIQUES Bus série

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

Page 41: LES BUS NUMERIQUES Bus série

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

Page 42: LES BUS NUMERIQUES Bus série

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

Page 43: LES BUS NUMERIQUES Bus série

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:

Page 44: LES BUS NUMERIQUES Bus série

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:

Page 45: LES BUS NUMERIQUES Bus série

45

INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Split transactions

Exemple: Split transaction en relation avec une transaction d ’interruptions IN

Page 46: LES BUS NUMERIQUES Bus série

46

INTRODUCTION AU BUS USB4ième partie: Les transactionsLes Split transactions

Exemple: Split transaction en relation avec une transaction d ’interruptions OUT

Page 47: LES BUS NUMERIQUES Bus série

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

Page 48: LES BUS NUMERIQUES Bus série

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)

Page 49: LES BUS NUMERIQUES Bus série

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

Page 50: LES BUS NUMERIQUES Bus série

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

Page 51: LES BUS NUMERIQUES Bus série

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

Page 52: LES BUS NUMERIQUES Bus série

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

Page 53: LES BUS NUMERIQUES Bus série

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)

Page 54: LES BUS NUMERIQUES Bus série

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 »

Page 55: LES BUS NUMERIQUES Bus série

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

Page 56: LES BUS NUMERIQUES Bus série

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 »

Page 57: LES BUS NUMERIQUES Bus série

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é

Page 58: LES BUS NUMERIQUES Bus série

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

Page 59: LES BUS NUMERIQUES Bus série

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)

Page 60: LES BUS NUMERIQUES Bus série

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

Page 61: LES BUS NUMERIQUES Bus série

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 »

Page 62: LES BUS NUMERIQUES Bus série

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

Page 63: LES BUS NUMERIQUES Bus série

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

Page 64: LES BUS NUMERIQUES Bus série

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