Je connais la réponse de google et celle de wikipedia pour la question ci-dessus. Mais jai une question plus précise sous la main. Les concentrateurs USB ont de nombreux ports entrants et sortants et un seul port sortant, je suis en mesure dutiliser ensemble un nombre n de périphériques à cause de cela. Mais je ne comprends pas comment un port USB peut-il effectuer des transferts de données avec un nombre n de ports USB?
comment peut-il envoyer différentes données à tous les ports USB en même temps?

*

schéma

simuler ce circuit – Schéma créé à laide de CircuitLab

*.

Commentaires

  • À peu près de la même manière que votre routeur réseau peut connecter un port LAN (Internet) à plusieurs appareils. Une adresse est attribuée à chaque point de terminaison (périphérique USB) et les concentrateurs acheminent simplement les demandes de lhôte vers le périphérique approprié en gardant une trace de quelle adresse se trouve sur quel port. Cest ' beaucoup plus simple pour lUSB dans le sens où il ny a quun seul maître (le port hôte) qui initie toutes les transactions.
  • @TomCarpenter Then How le port USB enverrait-il des données différentes ' s ensemble?
  • Le port hôte demande à un terminal spécifique de parler. Les terminaux ne répondent quà la demande de lhôte.
  • @TomCarpenter Mais ils sont tous utilisés simultanément et non pas un par un, mais tous ensemble.
  • Noubliez pas que le bus USB peut fonctionne jusquà 480 Mbps sur USB 2.0. Lhôte ne parle quavec un seul point final à la fois, mais il parle à tous de manière séquentielle et passe de lun à lautre si vite que vous ne pouvez pas ' le dire. Les réseaux font la même chose. " Hé, souris sur le port 1, dites-moi si vous ' avez déménagé. Ok maintenant le clavier sur le port 2 avez-vous des touches pour signaler? Maintenant, vous y êtes sur le port 3, lecteur flash, stockez ces données pour moi. Quelquun dautre à qui jai besoin de parler? non, ok alors, souris sur le port 1, dites-moi si vous ' avez déménagé … "

Réponse

Tout dépend de larbitrage. Tout système qui nécessite la connexion de plusieurs appareils a besoin dun moyen de déterminer qui doit parler quand. Il existe différents schémas selon lapplication.

Un exemple courant – en réseau, nous avons de nombreux nœuds qui se parlent tous. Ceci est fait par chaque nœud ayant une adresse (par exemple, IP adresse), et lorsquun nœud veut parler à un autre nœud, il envoie un paquet à cette adresse. Vous disposez alors de périphériques tels que des routeurs qui prennent les paquets arrivant sur plusieurs ports et les transmettent au port approprié. Larbitrage est fait en utilisant la mémoire pour stocker les paquets jusquà ce que le port de destination soit libre.


Maintenant sur USB. Cest en fait beaucoup plus simple que la mise en réseau car tous les nœuds ne sont pas égaux. Vous avez deux types, un hôte et un point de terminaison. Il ny a quun seul hôte, mais il peut y avoir plusieurs points de terminaison. Dans ce cas, larbitrage est beaucoup plus facile car seul le port hôte est autorisé à parler à volonté. Les points de terminaison ne sont autorisés à parler que sur demande de lhôte , et lhôte ne parle quavec un seul point de terminaison à la fois.

Pour les paquets de point de terminaison hôte- >, les concentrateurs USB transmettent simplement la demande de lhôte à tous les points de terminaison. Étant donné que tous les points de terminaison ont une adresse, seul celui auquel la demande a été adressée fera quoi que ce soit (par exemple, répondre), tous les autres ignoreront le paquet.

Pour le point de terminaison- > paquets hôte, lhôte envoie dabord un paquet à un point final spécifique par adresse pour dire " vous pouvez parler maintenant " , puis ce point de terminaison doit immédiatement envoyer une réponse. Étant donné quun seul point de terminaison est autorisé à parler à un moment donné, le concentrateur USB acheminera simplement le paquet à partir du port qui répondra à une demande de lhôte.


En termes de fonctionnement de lhôte pour savoir quels périphériques sont connectés et comment les terminaux obtiennent leur adresse, ceci est réalisé grâce à lénumération.

Tous les ports hôte et concentrateur ont des résistances pull-down (15kOhm) sur les lignes D + et D-. Celles-ci mettent les lignes de données de ce port dans un état connu lorsquil ny a pas de périphérique connecté, un état dans lequel le port nenverra aucune donnée sur les lignes D + / D-.

Quand un périphérique est attaché, il se fait connaître en connectant la ligne de données D + (pleine vitesse) ou D- (basse vitesse) à VCC à laide dune résistance de 1,5 kOhm. Cela déclenche un événement dénumération. Le port commencera alors le processus de configuration de lappareil et dattribution dune adresse.Si vous branchez deux appareils simultanément, ils seront énumérés un à la fois .

Sil ny a pas de concentrateurs, lhôte parle simplement au nouveau périphérique et le configure. Sil y a des hubs dans le système, cest le hub qui signale que le nouveau périphérique est connecté . Si un concentrateur signale quun nouveau périphérique est connecté, lhôte demandera au concentrateur de réinitialiser le nouveau périphérique et de démarrer les communications. Lors de la réinitialisation, le terminal reçoit une adresse par défaut de 0 (*). Lhôte peut alors parler au point de terminaison en utilisant ladresse par défaut, et le configurer avec une adresse unique différente de zéro qui lui permettra de savoir quand on lui parle.

(*) Parce quun seul appareil est toujours énuméré à la fois, ladresse 0 sera toujours unique à lappareil nouvellement connecté.


Vous pourriez alors demander, " bien comment puis-je avoir plusieurs appareils qui parlent tous en même temps? ". Supposons que vous ayez une souris, un clavier et un lecteur flash tous connectés au même concentrateur USB. Nous savons tous que vous pouvez utiliser votre souris et votre clavier en même temps tout en copiant des fichiers vers / depuis votre clé USB, mais si un seul appareil peut parler à la fois, comment est-ce possible?

Eh bien , tout se résume au fait que les quelques centaines de millisecondes quil faut à votre cerveau pour remarquer que vous avez appuyé sur une touche et que vous vous attendez à ce que lécran se mette à jour sont une éternité pour lordinateur. Une interface USB 2.0 peut fonctionner jusquà 480 Mbps (lUSB 3.1 peut fonctionner jusquà 10 Gbps!), Ce qui signifie que même si lhôte ne parle quà un seul point de terminaison à un moment donné, il passe entre eux si rapidement que vous pouvez « T tell it » est en train de le faire.

Hôte USB: " Hé, souris sur le port 1, dites-moi si vous avez déménagé. Ok maintenant clavier sur le port 2 avez-vous des touches pour signaler? Maintenant vous y êtes sur le port 3, lecteur flash, stockez ces données pour moi. Quelquun dautre à qui jai besoin de parler? Non, daccord, souris sur le port 1, dites-moi si vous « avez déménagé … "

Humain: " Oh regarde , lordinateur a remarqué que je venais de déplacer ma souris, dappuyer sur une touche de mon clavier et de copier une image sur le lecteur flash, tout cela en même temps! "

Le périphérique hôte garde une trace des e Les adresses ndpoint sont utilisées et enverront des paquets à chacun séquentiellement ou selon les besoins (c.-à-d. lorsque le système dexploitation demande laccès à un périphérique spécifique). Ainsi, bien que tout ne se passe pas simultanément, larbitrage est si rapide que les ordinateurs familiers des humains ne peuvent « pas faire la différence.

Commentaires

  • À ajouter: les périphériques USB (seuls les points de terminaison «dinterruption», pour être précis) peuvent demander à être interrogés à un certain intervalle jusquà 1 ms. Tant que vous ne disposez pas de centaines de périphériques dentrée, vous ne remarquerez jamais de retard.
  • Comment lhôte sait-il quels points de terminaison sont connectés? De plus, cela ne semble pas ' répondre à la question initiale sur les hubs. Comment interagissent-ils dans ce processus ? Comment linteraction dans lénumération?
  • Énumération @YonaAppletree. Les hôtes et les concentrateurs analysent tous leurs ports pour les connexions de périphériques – ils détectent une résistance de rappel de 1,5 kOhm sur D + (pleine vitesse) ou D- (Basse vitesse). Je ' Je vais ajouter des informations sur la façon dont les points de terminaison se voient attribuer une adresse.
  • @YonaAppletree en termes de concentrateurs pendant le fonctionnement, la réponse parle à ce sujet déjà. hôte au point de terminaison: " les concentrateurs USB transmettent simplement la requête de lhôte à tous les points de terminaison ". Pour le point de terminaison vers lhôte: " Comme un seul point de terminaison est autorisé à parler à un moment donné, le concentrateur USB acheminera simplement le paquet depuis le port qui répond "

Réponse

Réponse plus courte: lhôte envoie des données qui sont adressées à un appareil particulier ( qui était préliminaire « énuméré »), une transaction à la fois, séquentiellement. Le hub diffuse tous les paquets vers tous les appareils. Un appareil ne répond quaux transactions qui lui sont adressées. Cest tout, vrai pour les appareils HS.

Pour les appareils FS et LS, le processus est un peu plus compliqué. Il utilise des «traducteurs de transaction» intégrés à chaque hub pour chaque port, qui traduisent ainsi -appelées « transactions fractionnées » en trafic LS ou FS.

Commentaires

  • Quen est-il de lUSB 3?
  • Les concentrateurs USB3 sont plus intelligent pour la liaison ultra-rapide et utiliser le routage explicite vers le périphérique / les points finaux. La section USB2 reste la même. Voir la section 3.1 " Résumé architectural " des spécifications USB3.1 les plus récentes, usb.org/developers/docs/usb_31_052016.zip

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *