in

Existe-t-il un protocole de communication USB réel?

La plupart d’entre nous ne pensons jamais beaucoup à nos périphériques USB, nous les branchons simplement et les oublions. Mais que faire si vous êtes du genre curieux qui veut en savoir plus sur le fonctionnement de l’USB? Le post de questions-réponses des super-utilisateurs d’aujourd’hui contient les réponses aux questions d’un lecteur curieux.

La question

Le lecteur SuperUser smeeb veut savoir s’il existe réellement un protocole de communication USB:

Selon Wikipedia, USB:

  • Définit les câbles, les connecteurs et les protocoles de communication utilisés dans un bus pour la connexion, la communication et l’alimentation électrique entre les ordinateurs et les appareils électroniques.

Mais y a-t-il un réel? Ma compréhension est que:

  1. Vous connectez un périphérique USB à une machine (Ubuntu ou tout type de Linux par exemple).
  2. Linux trouve le pilote de périphérique pour ce périphérique d’une manière ou d’une autre () et le charge.
  3. L’appareil est maintenant connecté sous.
  4. Les applications de l’espace utilisateur peuvent désormais lire et écrire et le pilote gère l’entrée et la sortie de bas niveau vers le périphérique / matériel sous-jacent.

Pour autant que je sache, a n’apparaît nulle part dans ce flux. Si je comprends bien, l’USB n’est que le câble et la connexion électrique entre le PC et l’appareil.

Ai-je tort ici? L’USB met-il réellement en œuvre une sorte de protocole de bas niveau qui souligne le flux ci-dessus? Si oui, de quoi s’agit-il et comment cela fonctionne-t-il à une vue de 30 000 pieds?

Existe-t-il un véritable protocole de communication USB?

La réponse

Les contributeurs SuperUser RedGrittyBrick et projectdp ont la réponse pour nous. Tout d’abord, RedGrittyBrick:

Oui (voir les protocoles USB).

Si je comprends bien, la spécification USB définit un ensemble complexe de protocoles en couches et de profils de périphériques.

Par exemple, les périphériques USB peuvent se conformer à des modèles de haut niveau tels que le stockage de masse, le clavier, le périphérique d’interface humaine, etc. et être gérés par un pilote de périphérique générique. Certains périphériques USB peuvent communiquer à un niveau inférieur de sorte que la prise en charge USB de bas niveau du système d’exploitation puisse reconnaître que des pilotes de niveau supérieur spécifiques au périphérique sont nécessaires.

Suivi de la réponse de projectdp:

Question

Existe-t-il un protocole de communication USB de bas niveau en action et de quoi s’agit-il?

Répondre

Oui il y a. La spécification USB inclut le protocole USB qui définit la façon dont le bus est utilisé au niveau du bit. Ce serait le protocole de bas niveau qui sous-tend les protocoles de niveau supérieur (c’est-à-dire stockage de masse, HID, etc.).

Pour plus de détails sur le fonctionnement du protocole USB, ce Wiki OSDev est utile. En voici un autre description intéressante en utilisant des diagrammes de séquence pour décrire les différentes transactions de données selon le protocole USB.

Question bonus

Comment Linux trouve-t-il et charge-t-il le pilote de périphérique pour ce périphérique?

Réponse bonus

Sous Linux, lors de l’utilisation d’un noyau compatible USB, un périphérique USB fonctionnel sera détecté via le matériel et le noyau en raison de la spécification USB. Côté matériel, la détection est effectuée par le contrôleur hôte USB. Ensuite, dans le noyau, le pilote du contrôleur hôte prend le relais et traduit les bits de bas niveau sur le câble en informations formatées par le protocole USB. Ces informations sont ensuite renseignées dans le pilote usbcore du noyau.

J’ai paraphrasé cet excellent Article OpenSourceforu, qui a beaucoup plus de détails et de clarté sur votre question dans le contexte Linux.

Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.

Laisser un commentaire

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

Effacer l’historique de navigation dans Firefox avec un raccourci clavier

Les 20 meilleurs sujets explicatifs How-To Geek pour 2010

Les 20 meilleurs sujets explicatifs How-To Geek pour 2010