Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAurore Couture Modifié depuis plus de 9 années
1
GESTION DU BUS Hugo Descoubes - Octobre 2012 Universal Serial Bus
2
Gestion Erreurs – Ajout Nœud – Suppression Nœud 2 – copyleft GESTION DU BUS détection d’un grand nombre de sources d’erreur mais à aucun moment la correction Le protocole USB, toutes couches confondues, supporte la détection d’un grand nombre de sources d’erreur mais à aucun moment la correction. Citons quelques-unes de ces sources : Contenu de paquet erroné (CRC) Erreur de bit bascule (alternance DATA1/DATA0) Absence d’activité sur le bus Fin de paquet erroné (EOP) Collision sur le bus Bit stuffing ou bit de bourrage ID de paquet erroné …
3
Gestion Erreurs – Ajout Nœud – Suppression Nœud GESTION DU BUS Observons les principales techniques de gestion des erreurs : récepteur doit rester muet De façon générale, si une erreur est détectée le récepteur doit rester muet. L’émetteur devra alors retransmettre le paquet. Au bout de 3 transactions sans réponse, le host peut déconnecter le device du bus. Selon la nature du défaut, un hub est capable de condamner une branche du réseau. 3 – copyleft
4
Gestion Erreurs – Ajout Nœud – Suppression Nœud Détection Enumération Exemple GESTION DU BUS Le détection d’un nouveau nœud ne se fait pas par échange de transactions mais de façon purement électronique par détection de la résistance de tirage présente sur la broche D+ ou D-. Le host scrute périodiquement l’état des différents hub via envoi d’une commande standard: 4 – copyleft
5
Gestion Erreurs – Ajout Nœud – Suppression Nœud Détection Enumération Exemple GESTION DU BUS récupération des caractéristiques de celui-ci afin de mettre en œuvre le driver ou pilote approprié L’énumération d’un device a pour objectif la récupération des caractéristiques de celui-ci afin de mettre en œuvre le driver ou pilote approprié. Observons maintenant les différentes étapes rencontrées durant l’énumération d’un device. La procédure présentée est celle réalisée par les systèmes Windows : Connexion physique Connexion physique Alimentation Alimentation du device. Par le bus si nécessaire. Détection Détection du device par le hub Identification Identification de la vitesse de travail (basse ou pleine) POWERED ATTACHED 5 – copyleft
6
Gestion Erreurs – Ajout Nœud – Suppression Nœud Détection Enumération Exemple GESTION DU BUS Le hub, interrogé périodiquement, prévient le host Le hub, interrogé périodiquement, prévient le host d’une nouvelle connexion. Le host envoie la commande standard GET_STATUS (supportée par tout hub) afin d’obtenir des compléments d’information. host demande au hub d’effectuer un RESET Le host demande au hub d’effectuer un RESET du device via l’envoi de la commande standard SET_FEATURE. Le hub impose le RESET du device. Etat SE0 durant au moins 10ms POWERED 6 – copyleft
7
Gestion Erreurs – Ajout Nœud – Suppression Nœud Détection Enumération Exemple GESTION DU BUS le device supporte la vitesse haute Durant le RESET, si le device supporte la vitesse haute il doit imposer un état spécifique sur le Bus. Si le hub supporte quant à lui la vitesse haute, il répondra par une séquence CHIRP. Le device déconnecte alors sa résistance de tirage. défaut Le host vérifie la bonne réalisation du RESET via envoie de la commande GET_STATUS au hub. Le device passe à l’état défaut et les premiers échanges débuteront par l’adresse 0. bMaxPaquetSize0 Le host envoi la commande GET_DESCRIPTOR au device via l’adresse 0 afin de récupérer les 8 premiers octets du device descriptor. Seul le champ bMaxPaquetSize0 intéresse le host, taille maximale des payloads pour les transferts de contrôle. Astuce permettant d’accélérer ultérieurement l’énumération du device. Le host effectue à nouveau un RESET du device. DEFAULT POWERED 7 – copyleft
8
Gestion Erreurs – Ajout Nœud – Suppression Nœud Détection Enumération Exemple GESTION DU BUS Le host attribue une adresse Le host attribue une adresse parmi 127 au device via l’envoi de la commande SET_ADDRESS. Récupération des différents descripteurs Récupération des différents descripteurs via les envois successifs de commandes GET_DESCRITOR (device, configuration, string, endpoint …). recherche le pilote Le système d’exploitation recherche le pilote le mieux adapté au device en s’aidant notamment des champs identifiant vendeur, identifiant produit, codes de classe des descripteurs d’interface … de valider la configuration Le driver émet la commande SET_CONFIGURATION afin de valider la configuration à utiliser. Tout device en possède au moins une. l’application peut alors utiliser les pipes de communication Le device passe à l’état configuré, l’application peut alors utiliser les pipes de communication. ADDRESS CONFIGURERD DEFAULT 8 – copyleft
9
Gestion Erreurs – Ajout Nœud – Suppression Nœud Détection Enumération Exemple GESTION DU BUS Effectuons l’énumération d’une souris USB via le tracker matériel USB EXPLORER de la société ELLISYS. Interprétons les transactions capturées sur le bus : 9 – copyleft
10
Gestion Erreurs – Ajout Nœud – Suppression Nœud GESTION DU BUS Le host interroge périodiquement les différents hubs afin de détecter notamment l’insertion ou la suppression de nouveau nœud. En cas de déconnexion d’un device, voici les principales actions sur le bus et côté machine host : Détection de la déconnexion par le hub Détection par le host après interrogation du hub Le host notifie au driver la déconnexion du device Désallocation des ressources logicielles (côté machine host) et matérielles (côté hub) 10 – copyleft
11
Merci de votre attention !
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.