USB (bus série universel). Universal Serial Bus Quels sont les avantages de l'USB

bus USB ( U universel S série B us - bus série universel) est apparu par les normes informatiques il y a assez longtemps - une version de la première version approuvée de la norme est apparue le 15 janvier 1996. Le développement de la norme a été initié par des entreprises très respectées - Intel, DEC, IBM, NEC, Northen Telecom et Compaq.

L'objectif principal de l'ensemble de normes pour ses développeurs est de créer une réelle opportunité pour les utilisateurs de travailler en mode Plug & Play avec des périphériques. Cela signifie qu'il doit être prévu de connecter l'appareil à un ordinateur en marche, de le reconnaître automatiquement immédiatement après la connexion, puis d'installer les pilotes appropriés. De plus, il est souhaitable d'alimenter les dispositifs de faible puissance à partir du bus lui-même. La vitesse du bus devrait être suffisante pour la grande majorité des périphériques. En cours de route, le problème historique du manque de ressources sur les bus internes d'un PC IBM d'un ordinateur compatible est en train d'être résolu - le contrôleur USB ne prend qu'une seule interruption, quel que soit le nombre de périphériques connectés au bus.

Presque toutes les tâches ont été résolues dans la norme USB et, au printemps 1997, des ordinateurs équipés de connecteurs pour connecter des périphériques USB ont commencé à apparaître (voir photo de gauche), mais les périphériques avec connexion USB n'ont pratiquement fait leur apparition qu'à la mi-1998. Quel est le problème? Pourquoi ce n'est qu'à la fin de 1998 que les fabricants d'équipements ont commencé à proposer plus activement des périphériques USB sur le marché ? Il y a plusieurs explications à ce sujet:

    Éliminez le besoin critique pour les utilisateurs de bureau d'appareils entièrement Plug & Play. Les périphériques d'un ordinateur de bureau sont généralement connectés sérieusement et pendant une longue période, et la grande majorité des utilisateurs n'ont pas un besoin particulier de remplacement fréquent des périphériques.

    coût plus élevé des périphériques USB par rapport aux périphériques similaires dotés d'interfaces standard

    manque de soutien des fabricants Logiciel et principalement Microsoft, bien qu'il soit l'un des auteurs de la norme. Ce n'est que sous Windows 98 qu'il y avait un Prise en charge USB, et dans Windows NT, cela ne devrait être qu'en 1999.

Désormais, l'USB est activement mis en œuvre par les fabricants de périphériques informatiques. La sensation était la présence uniquement de l'USB en tant que bus externe dans l'iMAC d'Apple Computers.

Caractéristiques

Les capacités USB découlent de ses spécifications techniques :

    Haut débit d'échange (débit de signalisation pleine vitesse) - 12 Mb/s

    Longueur de câble maximale pour un débit en bauds élevé - 5 m

    Débit binaire de signalisation à faible vitesse - 1,5 Mb / s

    Longueur de câble maximale pour un faible débit en bauds - 3 m

    Le nombre maximum d'appareils connectés (y compris les multiplicateurs) - 127

    Il est possible de connecter des appareils avec différents débits en bauds

    Pas besoin pour l'utilisateur d'installer des éléments supplémentaires tels que des terminateurs pour SCSI

    Tension d'alimentation pour périphériques - 5 V

    La consommation de courant maximale par appareil est de 500 mA (cela ne signifie pas que les appareils avec un courant de consommation total de 127 x 500 mA = 63,5 A peuvent être alimentés via USB)

Par conséquent, il est conseillé de connecter presque tous les périphériques à l'USB, à l'exception des caméscopes numériques et des disques durs haute vitesse. Cette interface est particulièrement pratique pour connecter des appareils fréquemment connectés/déconnectés tels que des appareils photo numériques. Les connecteurs USB sont conçus pour l'accouplement/le fractionnement.
La possibilité de n'utiliser que deux débits en bauds limite l'utilisation du bus, mais réduit considérablement le nombre de lignes d'interface et simplifie la mise en œuvre matérielle.
L'alimentation directe par USB n'est possible que pour les appareils à faible consommation tels que les claviers, les souris, les joysticks, etc.

Topologie

Cette icône est officiellement désignée le bus USB à la fois dans Windows 98 et sur les murs arrière des ordinateurs (malheureusement pas tous), ainsi que sur tous les connecteurs USB. Cette icône représente en fait correctement l'idée de la topologie USB. La topologie de l'USB est presque identique à celle d'un réseau local à paires torsadées typique, communément appelé « étoile ». Même la terminologie est similaire - les sélectionneurs de pneus sont également appelés HUB.

Classiquement, l'arborescence pour connecter des périphériques USB à un ordinateur peut être représentée comme suit (les chiffres indiquent les périphériques avec une interface USB) :

Un HUB peut également se tenir à la place de n'importe quel appareil. La principale différence avec la topologie d'un réseau local conventionnel est qu'il ne peut y avoir qu'un seul ordinateur (ou périphérique hôte). Le HUB peut être soit un appareil autonome avec son propre bloc d'alimentation, soit intégré à un périphérique. Le plus souvent, les HUB sont intégrés aux moniteurs et aux claviers

L'image ci-dessus montre un exemple connexion correcte périphériques dans un réseau USB conventionnel. Étant donné que l'échange de données via USB se produit uniquement entre un ordinateur et un périphérique (il n'y a pas d'échange entre les appareils), les appareils avec de gros volumes de réception et/ou de transmission de données doivent être connectés soit à l'ordinateur lui-même, soit au nœud libre le plus proche. Dans ce cas, les haut-parleurs ont le trafic le plus élevé (~ 1,3 Mb/s), suivis d'un modem et d'un scanner connectés au HUB dans le moniteur et le clavier, le joystick et la souris, dont le trafic est proche de zéro, complètent le circuit .
La question peut se poser : pourquoi les colonnes ont-elles un trafic si élevé ? Le fait est que les haut-parleurs avec interface USB diffèrent considérablement des habituels. PAS REQUIS pour utiliser ces enceintes carte son... Le pilote de haut-parleur envoie le son numérisé directement aux haut-parleurs, où il est converti en un signal analogique à l'aide d'un CAN et transmis aux haut-parleurs.

Câbles et connecteurs

Les signaux USB sont transmis via un câble à 4 fils, schématisé dans la figure ci-dessous :

Ici GND est le circuit "boîtier" pour l'alimentation des périphériques, VBus - + 5V également pour les circuits d'alimentation. Le bus D+ sert à transmettre des données sur le bus et le bus D- à recevoir des données.
Le câble pour prendre en charge le bus pleine vitesse est exécuté comme paire torsadée, est blindé et peut également être utilisé pour un fonctionnement à basse vitesse. Le câble pour un fonctionnement uniquement à la vitesse minimale (par exemple, pour connecter une souris) peut être n'importe quel câble et peut être non blindé.
Les connecteurs utilisés pour connecter les périphériques sont illustrés dans la figure ci-dessous.

Connecteurs série "A"

Connecteurs série "B"

    sont destinés UNIQUEMENT à être connectés à une source, c'est-à-dire ordinateur ou HUB "à.

    conçu pour se connecter UNIQUEMENT à un périphérique

Fiche type "A".

Fiche type "B".

Type de prise "A"

Type de prise "B"

Comme vous pouvez le voir sur la figure, il est impossible de connecter l'appareil de manière incorrecte, car le connecteur de la série "A" ne peut être connecté qu'à un périphérique actif sur l'USB - HUB ou un ordinateur, et la série "B" uniquement à la périphérique réel.

Les connecteurs USB ont la numérotation de broches suivante :

Numéro de contact

Rendez-vous

Couleur du fil

Brochage du connecteur USB

Développement USB

En 1999, le même consortium de sociétés informatiques, qui a lancé le développement de la première version de la norme pour le bus USB, a commencé à développer activement la version 2.0 USB, qui diffère en ce que la bande passante du bus est augmentée 20 (!) Fois, jusqu'à à 250 Mbits/s, ce qui permet de transférer des données vidéo sur USB et en fait un concurrent direct de l'IEEE-1394 (FireWire).
La compatibilité de tous les périphériques et câbles haute vitesse précédemment commercialisés est entièrement préservée et l'un des principaux avantages de l'USB est conservé - le faible coût du contrôleur. Le contrôleur standard 2.0 est également censé être intégré au chipset.
Tout va bien, mais il y a une chose : le bus IEEE-1394 est déjà très activement utilisé même dans les caméscopes numériques grand public, il existe des cartes de montage vidéo pour cela, et avec la baisse constante des prix des caméscopes numériques, il sera utilisé de plus en plus largement. La nouvelle version USB ne devrait être finalement développée que vers le milieu de l'année 2000, et les premiers appareils prenant en charge la nouvelle version USB ne devraient pas apparaître avant la fin de l'année 2000. C'est un laps de temps très long pour l'industrie informatique. Déjà en juillet 1999, par exemple, ASUSTeK Computers a sorti la première carte mère (P3B-1394) avec un contrôleur IEEE-1394 intégré. Cela ne passera certainement pas inaperçu et d'autres fabricants commenceront également à produire des cartes similaires. Par conséquent, au moment où les appareils sont libérés sur USB 2.0, la place sous le soleil peut déjà être prise.

USB (bus série universel) est une extension d'architecture PC standard axée sur l'intégration avec la téléphonie et les appareils électroniques grand public.

Avantages du bus :

  • Le périphérique USB peut être connecté à l'ordinateur à tout moment, même lorsqu'il est allumé ;
  • lorsque l'ordinateur détecte un périphérique USB connecté, il l'interroge automatiquement pour connaître ses capacités et ses exigences ;
  • charge le pilote, et lorsque l'appareil est déconnecté, le pilote est automatiquement déchargé ;
  • Le périphérique USB n'utilise pas de cavaliers, de commutateurs DIP, ne provoque jamais de conflits d'interruptions, de DMA, de mémoire ;
  • les concentrateurs USB extensibles permettent de connecter un grand nombre d'appareils (jusqu'à 127 appareils) à un bus ;
  • faible coût des périphériques USB.

L'avènement de l'USB a permis de créer Clé USB Lecteur (stockage USB).

Historique de la création et du développement de l'interface USB

La première version de l'interface informatique USB est apparue le 15 janvier 1996. Alliance 7 a été l'initiatrice du projet. grandes entreprises fabricants Intel, DEC, IBM, Northen Telecom, Compaq.

La raison de l'émergence d'une nouvelle norme pour le transfert d'informations était le désir de simplifier la connexion des PC avec des périphériques. L'objectif principal de la norme était de créer une opportunité pour les utilisateurs d'utiliser une telle interface qui aurait le maximum de simplicité, de polyvalence et utilise le principe du Plug & Play ou du branchement à chaud.

Cela permettrait de connecter différents périphériques d'entrées-sorties au PC en cours de fonctionnement, à condition de reconnaître immédiatement et automatiquement le type et le modèle de l'appareil connecté. En outre, l'objectif a été fixé - se débarrasser du problème de manque de ressources internes d'interruptions sur le bus système.

Toutes ces tâches ont été résolues avec succès à la fin de 1996, et au printemps 1997, les premiers PC équipés de connecteurs USB ont commencé à apparaître. La prise en charge complète des périphériques USB n'a été réalisée qu'à la fin de 1998, dans le système d'exploitation Windows 98, et ce n'est qu'à partir de ce stade qu'un développement et une sortie particulièrement rapides d'équipements périphériques équipés de cette interface ont commencé.

La véritable adoption massive de l'USB a commencé avec l'adoption généralisée des boîtiers ATX et des cartes mères vers 1997-1998. Apple n'a pas manqué l'occasion de profiter des progrès réalisés, et a dévoilé son premier iMac, également équipé du support USB, le 6 mai 1998.

Cette norme est née à une époque où il existait déjà une interface de transfert de données série similaire développée par Apple Computer et s'appelait FireWare ou IEE1394. L'interface USB a été créée comme une alternative à IEE1394, et n'avait pas pour but de la remplacer, mais d'exister en parallèle avec le type de connexion déjà existant.

La première version de l'USB avait quelques problèmes de compatibilité et plusieurs bugs d'implémentation. En conséquence, en novembre 1998, la spécification USB 1.1 est sortie.

La spécification USB 2.0 a été introduite en avril 2000. Mais plus d'un an s'est écoulé avant qu'il ne soit adopté comme norme. Après cela, l'introduction massive de la deuxième version du bus série universel a commencé. Son principal avantage était une augmentation de 40 fois de la vitesse de transfert de données. Mais à côté de cela, il y avait d'autres innovations. C'est ainsi que de nouveaux types de connecteurs Mini-B et Micro-USB sont apparus, la prise en charge de la technologie USB On-The-Go a été ajoutée (permet aux périphériques USB d'échanger des données entre eux sans la participation d'un hôte USB), il est devenu possible de utilisez la tension fournie via USB pour charger les appareils connectés.

Comment fonctionne le bus USB

L'USB permet l'échange de données entre un ordinateur hôte et une variété de périphériques (CP). Selon la spécification USB, les périphériques (périphériques) peuvent être des concentrateurs, des fonctions ou une combinaison des deux. Un concentrateur fournit uniquement des points supplémentaires pour connecter des appareils au bus. Le dispositif de fonction USB fournit au système des Fonctionnalité Par exemple, connexion RNIS, joystick numérique, haut-parleurs avec interface numérique, etc. Un périphérique composé qui implémente plusieurs fonctions apparaît comme un concentrateur auquel plusieurs périphériques sont connectés.

L'ensemble du système USB est contrôlé par le contrôleur hôte, qui est le sous-système matériel et logiciel de l'ordinateur. Le bus vous permet de connecter, configurer, utiliser et déconnecter des appareils pendant que l'hôte et les appareils eux-mêmes sont en cours d'exécution.

Le bus USB est centré sur l'hôte : le seul maître qui contrôle l'échange est l'ordinateur hôte, et tous les périphériques qui y sont connectés sont exclusivement des esclaves. La topologie physique du bus USB est une étoile à plusieurs niveaux. Au sommet se trouve le contrôleur hôte combiné au concentrateur racine. Un hub est un répartiteur ; de plus, il peut être une source d'alimentation pour les appareils qui y sont connectés. Chaque port de concentrateur peut être directement connecté à un périphérique ou à un concentrateur intermédiaire ; le bus permet jusqu'à 5 niveaux de mise en cascade du hub (sans compter la racine). Chaque concentrateur intermédiaire possède plusieurs ports en aval pour connecter des périphériques (ou concentrateurs en aval) et un port en amont pour se connecter au concentrateur racine ou au port en aval d'un concentrateur en amont.

Les données des appareils connectés convergent vers l'hôte USB et permettent également une interaction avec l'ordinateur. Tous les appareils sont connectés dans une topologie en étoile. Vous pouvez utiliser des concentrateurs USB pour augmenter le nombre de ports USB actifs. Ainsi, vous obtenez un analogue de la structure logique "arbre". Une telle arborescence peut avoir jusqu'à 127 branches par contrôleur hôte, et le niveau d'imbrication des hubs USB ne doit pas dépasser cinq. De plus, un seul hôte USB peut avoir plusieurs contrôleurs hôtes, ce qui augmente proportionnellement le nombre maximum d'appareils connectés.

Les hubs sont de deux types. Certains augmentent simplement le nombre de ports USB dans un ordinateur, tandis que d'autres vous permettent de connecter plusieurs ordinateurs. La deuxième option permet à plusieurs systèmes d'utiliser les mêmes appareils. Selon le hub, la commutation peut être effectuée manuellement ou automatiquement.

Un périphérique physique connecté via USB peut être logiquement subdivisé en "sous-périphériques" qui remplissent certaines fonctions spécifiques. Par exemple, une webcam peut avoir un microphone intégré - il s'avère qu'elle possède deux sous-dispositifs : pour la transmission audio et vidéo.

Le transfert de données s'effectue via des canaux logiques spéciaux. Chaque périphérique USB peut se voir attribuer jusqu'à 32 canaux (16 en réception et 16 en transmission). Chaque canal se connecte à un "point d'extrémité" appelé conventionnellement. Un point de terminaison peut soit recevoir des données, soit les transmettre, mais ne peut pas le faire en même temps. Le groupe de points de terminaison requis pour qu'une fonction fonctionne s'appelle une interface. Une exception est le point de terminaison « null », qui est destiné à la configuration de l'appareil.

Lorsqu'un nouveau périphérique est connecté à l'hôte USB, le processus d'attribution d'un identifiant commence. Tout d'abord, un signal de réinitialisation est envoyé à l'appareil. En même temps, la détermination de la vitesse à laquelle l'échange de données peut être effectué se produit. Après cela, les informations de configuration sont lues à partir de l'appareil et une adresse unique de sept bits lui est attribuée. Si le périphérique est pris en charge par l'hôte, tous les pilotes nécessaires sont chargés pour fonctionner avec, après quoi le processus est terminé. Le redémarrage d'un hôte USB réaffectera toujours les identifiants et les adresses à tous les appareils connectés.

Contrairement aux bus d'extension (ISA / EISA, PCI, PC Card), où le programme interagit avec les périphériques en accédant aux adresses physiques des cellules mémoire, aux ports E/S, aux interruptions et aux canaux DMA, les applications n'interagissent avec les périphériques USB que via l'interface du programme. Cette interface indépendante de l'appareil est fournie par le logiciel système du contrôleur USB.

Un câble à quatre fils est utilisé pour connecter les périphériques au bus USB, avec deux fils (paire torsadée) en connexion différentielle utilisés pour recevoir et transmettre des données, et deux fils pour alimenter le périphérique. Grâce aux lignes d'alimentation intégrées, le bus USB vous permet de connecter des périphériques sans sa propre source d'alimentation (le courant maximum consommé par l'appareil via les lignes d'alimentation du bus USB ne doit pas dépasser 500 mA).

Encodage des données

Le bus utilise une méthode différentielle de transmission des signaux D + et D- sur deux fils. Toutes les données sont codées à l'aide d'une méthode appelée NRZI avec bourrage de bits (NRZI - Non Return to Zero Invert).

Au lieu de coder les niveaux logiques en tant que niveaux de tension, l'USB définit la logique 0 comme un changement de tension et la logique 1 comme une tension constante. Cette méthode est une modification de la méthode de codage du potentiel normal NRZ (Non Return to Zero), où des potentiels de deux niveaux sont utilisés pour représenter 1 et 0, mais dans la méthode NRZI, le potentiel utilisé pour coder le bit actuel dépend du potentiel qui a été utilisé pour coder le bit précédent. Si le bit courant est 0, alors le potentiel courant est l'inverse du potentiel du bit précédent, quelle que soit sa valeur. Si le bit courant a la valeur 1, alors le potentiel courant répète le précédent. De toute évidence, si les données contiennent des zéros, il est alors assez facile pour le récepteur et l'émetteur de maintenir la synchronisation - le niveau du signal changera constamment. Mais si les données contiennent une longue séquence de uns, alors le niveau du signal changera et la désynchronisation est possible. Par conséquent, pour une transmission de données fiable, il est nécessaire d'exclure des séquences de uns trop longues des codes. Cette action est appelée Bit stuffing : toutes les six unités, un 0 est automatiquement ajouté.

Il n'y a que trois octets possibles avec six consécutifs : 00111111, 01111110, 111111100.

Le bourrage peut augmenter le nombre de bits transmis jusqu'à 17 %, mais en pratique, cette valeur est bien inférieure. Pour les appareils connectés au bus USB, l'encodage est transparent : les contrôleurs USB effectuent l'encodage et le décodage automatiquement.

Modes d'autobus

  • Faible vitesse pris en charge par les normes 1.1 et 2.0. Taux de transfert de données maximal - 1,5 Mbit / s (187,5 Kb / s). Le plus souvent utilisé pour les appareils HID (claviers, souris, joysticks).
  • Pleine vitesse pris en charge par les normes 1.1 et 2.0. Taux de transfert de données maximal - 12 Mbps (1,5 Mbps). Avant la sortie, l'USB 2.0 était le mode de fonctionnement le plus rapide.
  • Haute vitesse pris en charge par les normes 2.0 et 3.0. Taux de transfert de données maximal - 480 Mbps (60 Mbps).
  • Très rapide pris en charge par la norme 3.0. Taux de transfert de données maximal - 4,8 Gb / s (600 Mo / s).

Transfert de données

Le mécanisme de transfert de données est asynchrone et basé sur des blocs. Le bloc de données transmises est appelé trame USB ou trame USB et est transmis dans un intervalle de temps fixe. Les opérations avec des commandes et des blocs de données sont implémentées à l'aide d'une abstraction logique appelée canal. Le périphérique externe est également divisé en abstractions logiques appelées points de terminaison. Ainsi, un canal est un lien logique entre le contrôleur hôte et le point de terminaison d'un périphérique externe. Un canal peut être comparé à un fichier ouvert.

Le canal par défaut est utilisé pour transmettre les commandes (et les données incluses dans les commandes), et les canaux de diffusion ou les canaux de messages sont ouverts pour le transfert de données.

Les informations sur le canal sont transmises sous forme de paquets (Packet). Chaque paquet commence par un champ SYNC (SYNChronisation) suivi d'un PID (Packet IDentifier).

Le système USB doit être divisé en trois niveaux logiques avec des règles d'interaction spécifiques. Un périphérique USB contient une interface, des parties logiques et fonctionnelles. L'hôte est également divisé en trois parties - interface, système et logiciel. Chaque partie n'est responsable que d'un certain nombre de tâches.

L'opération d'échange de données entre le programme d'application et le bus USB s'effectue en transférant des tampons mémoire à travers les niveaux suivants : Niveau du logiciel client dans l'hôte :

  • généralement représenté par un pilote de périphérique USB ;
  • assure l'interaction de l'utilisateur avec système opérateur d'une part et le pilote système d'autre part.

Niveau du système USB hôte (USBD, pilote de bus série universel) :

  • contrôle la numérotation des appareils sur le bus ;
  • contrôle la distribution de la bande passante du bus et de l'alimentation électrique ;
  • gère les demandes de pilotes personnalisés.

Contrôleur hôte d'interface de bus USB(HCD, pilote de contrôleur hôte) :

  • transforme les requêtes d'E/S en structures de données sur lesquelles le contrôleur hôte effectue des transactions physiques ;
  • fonctionne avec les registres du contrôleur hôte.

La couche logicielle cliente détermine le type de transfert de données requis pour effectuer l'opération demandée par l'application. Après avoir déterminé le type de transfert de données, cette couche transfère les éléments suivants à la couche système :

  • un tampon mémoire appelé tampon client ;
  • un Paquet de Requête d'Entrée/Sortie (IRP) indiquant le type d'opération requis.
  • L'IRP ne contient que des informations sur la requête (adresse et longueur du buffer en RAM). Le pilote système USB gère directement la demande.

Niveau pilote système USB est requis pour gérer les ressources USB. Il est chargé de faire ce qui suit :

  • allocation de bande passante du bus USB ;
  • attribuer des adresses de périphériques logiques à chaque périphérique USB physique ;
  • planification des opérations.

Logiquement, le transfert de données entre le point de terminaison et le logiciel se fait en allouant un canal et en échangeant des données sur ce canal.Le logiciel client envoie des requêtes IPR à la couche USBD. Le pilote USBD décompose les demandes en transactions selon les règles suivantes :

  • l'exécution de la demande est considérée comme terminée lorsque toutes les transactions qui la composent ont été effectuées avec succès ;
  • tous les détails du traitement de la transaction (tels que l'attente de la préparation, la retransaction en cas d'erreur, l'indisponibilité du destinataire, etc.) ne sont pas communiqués au logiciel client ;
  • Le logiciel peut uniquement lancer une demande et attendre que la demande soit terminée ou dépassée ;
  • le dispositif peut signaler des erreurs graves, entraînant une fin anormale de la demande, qui est notifiée à l'auteur de la demande.

Le pilote du contrôleur hôte reçoit une liste de transactions du pilote du système de bus et effectue les actions suivantes :

  • programme l'exécution des transactions reçues en les ajoutant à la liste des transactions ;
  • récupère la transaction suivante de la liste et la transfère à la couche de contrôleur hôte de l'interface de bus USB ;
  • garde une trace de l'état de chaque transaction jusqu'à ce qu'elle soit terminée.

Le contrôleur hôte de l'interface de bus USB restitue les trames. Les trames sont transmises par transfert de bits série en utilisant la méthode NRZI.

Ainsi:

  • chaque trame est constituée des messages de priorité la plus élevée, dont la composition est constituée par le pilote hôte ;
  • chaque transfert consiste en une ou plusieurs transactions ;
  • chaque transaction est constituée de lots ;
  • chaque paquet se compose d'un identifiant de paquet, de données (le cas échéant) et d'une somme de contrôle.


Types de transfert de données

La spécification du bus définit quatre types de transfert différents pour les points d'extrémité.

Transferts de contrôle- sont utilisés par l'hôte pour configurer l'appareil pendant la connexion, pour contrôler l'appareil et obtenir des informations d'état pendant le fonctionnement. Le protocole garantit la livraison de ces colis. La longueur du champ de données du message de contrôle ne peut pas dépasser 64 octets à pleine vitesse et 8 octets à faible vitesse. Pour de tels forfaits, l'hébergeur est assuré d'allouer 10 % de la bande passante.

Transferts de données en masse- sont utilisés lorsqu'il est nécessaire d'assurer une livraison garantie des données de l'hôte à la fonction ou de la fonction à l'hôte, mais le délai de livraison n'est pas limité. Cette transmission occupe toute la bande passante disponible du bus. Les paquets ont un champ de données de 8, 16, 32 ou 64 octets. Ces engrenages ont la priorité la plus basse, ils peuvent être suspendus lorsque le bus est fortement chargé. Uniquement autorisé à pleine vitesse de transmission. De tels emballages sont utilisés, par exemple, par des imprimantes ou des scanners.

Interrompre les transferts- sont utilisés lorsqu'il est nécessaire de transmettre de petits paquets de données uniques. Chaque paquet doit être transmis dans un temps limité. Les transferts sont spontanés et ne doivent pas être effectués plus lentement que l'appareil ne l'exige. Le champ de données peut contenir jusqu'à 64 octets à pleine vitesse et jusqu'à 8 octets à faible vitesse. La limite de temps de service est définie dans la plage de 1 à 255 ms pour la pleine vitesse et de 10 à 255 ms pour la basse vitesse. De tels transferts sont utilisés dans les périphériques d'entrée tels que la souris et le clavier.

Transferts isochrones- sont utilisés pour l'échange de données en « temps réel », lorsqu'une quantité de données strictement définie doit être transmise à chaque intervalle de temps, mais que la livraison des informations n'est pas garantie (la transmission des données s'effectue sans répétition en cas d'échec, de perte de paquets est autorisée). De tels transferts occupent une partie pré-négociée de la bande passante du bus et ont un délai de livraison prédéterminé. Les transferts isochrones sont couramment utilisés dans les appareils multimédias pour transférer des données audio et vidéo, telles que la transmission vocale numérique. Les transferts isochrones sont séparés de la manière dont les points de terminaison - sources ou destinataires de données - sont synchronisés avec le système. Distinguez les classes de périphériques asynchrones, synchrones et adaptatives, chacune correspondant à son propre type de canal USB.

Toutes les opérations de transfert de données sont initiées uniquement par l'hôte, qu'il reçoive des données ou les envoie à un périphérique. Toutes les transactions en cours sont stockées dans quatre listes par type de transfert. Les listes sont constamment mises à jour avec de nouvelles demandes. L'ordonnancement des opérations de transfert d'informations en fonction des requêtes ordonnées sous forme de listes est effectuée par l'hôte à un intervalle d'une trame. Le traitement des demandes s'effectue selon les règles suivantes :

  • Les transferts isochrones ont la priorité la plus élevée ;
  • une fois que toutes les transmissions isochrones ont été traitées, le système passe au service des transmissions d'interruption ;
  • au dernier tour, les demandes de transfert de tableaux de données sont traitées ;
  • une fois que 90 % de l'intervalle spécifié se sont écoulés, l'hôte passe automatiquement au service des demandes de transmission de commandes de contrôle, qu'il ait réussi ou non à desservir complètement les trois autres listes.

Le respect de ces règles garantit qu'au moins 10 % de la bande passante du bus USB sont toujours alloués au contrôle des transferts. Si la transmission de tous les paquets de contrôle est terminée avant l'expiration de leur fraction allouée de l'intervalle de planification, alors le temps restant sera utilisé par l'hôte pour les transmissions de données.

Versions de spécifications

L'élaboration des spécifications du bus USB est réalisée dans le cadre de l'association internationale à but non lucratif USB Implementers Forum (USB-IF) qui réunit développeurs et fabricants d'équipements avec bus USB.

Depuis la mi-1996, les PC sont fabriqués avec un contrôleur USB intégré mis en œuvre par le chipset de la carte mère.

La première version de la spécification USB 1.0 prend en charge deux modes de débit en bauds entre l'appareil et l'ordinateur :

  • Faible vitesse (1,5 Mbits/sec), pour les appareils tels que les souris, les claviers et les joysticks ;
  • Full Speed ​​(12 Mbits/sec), pour modems et scanners.

À l'automne 1998, la version 1.1 a été publiée - elle a corrigé les problèmes découverts de la première édition.

Principales caractéristiques techniques de l'USB 1.1 :

  • Taux de change maximum suffisamment élevé - jusqu'à 12 Mbit / s.
  • La longueur de câble maximale pour un débit en bauds élevé est de 4,5 m.
  • Le nombre maximum d'appareils connectés (y compris les multiplicateurs) est de 127.
  • Il est possible de connecter des appareils avec des taux de change différents.
  • L'utilisation de dispositifs supplémentaires et de terminaisons n'est pas requise.
  • La tension d'alimentation des périphériques est de 5 V.
  • La consommation de courant maximale par appareil est de 500 mA.

Au printemps 2000, la spécification USB 2.0 a été publiée, qui permet de multiplier par 40 la bande passante du bus (jusqu'à 480 Mbps en mode haut débit). Cependant, les périphériques USB 2.0 sont entrés sur le marché grand public en 2002 lorsque nouvelle interface a enfin pu s'imposer.

La deuxième version de la spécification USB 2.0 vous permet d'utiliser un autre mode High Speed ​​(480 Mbit/sec) pour des appareils tels que disques durs, CD-ROM, appareils photo numériques. La bande passante de 480 Mbps est suffisante pour les disques externes, lecteurs MP3, smartphones et Caméras digitales qui avait besoin de transférer une grande quantité de données. De plus, la spécification USB 2.0 prend entièrement en charge les appareils développés pour la première version. Les contrôleurs et les concentrateurs détectent automatiquement la version de la spécification prise en charge par l'appareil. Le bus permet de connecter jusqu'à 127 appareils distants de l'ordinateur à une distance allant jusqu'à 25 m (à l'aide de hubs intermédiaires).

Depuis son adoption généralisée, l'USB 2.0 a réussi à remplacer complètement les interfaces série et parallèle.

Actuellement, les appareils fabriqués conformément à la spécification USB 2.0 sont largement utilisés.

USB 3.0

Prise en charge de l'USB 3.0 vitesse maximum Transmission 5 Gbit/s.

Connecteur USB 3.0 type A

L'objectif principal de l'interface USB 3.0 est d'augmenter la bande passante disponible, cependant nouvelle norme optimise efficacement la consommation d'énergie. L'USB 3.0 a quatre états de connexion appelés U0-U3. L'état de connexion U0 correspond à un transfert de données actif, et U3 met l'appareil en « veille ». Si la connexion est inactive, alors dans l'état U1, les capacités de réception et de transmission de données seront désactivées. L'état U2 va encore plus loin en désactivant l'horloge interne.

Connecteur USB 3.0 de type B

Par conséquent, les appareils connectés peuvent passer à l'état U1 immédiatement après la fin du transfert de données, ce qui devrait offrir des avantages tangibles en termes de consommation d'énergie par rapport à l'USB 2.0.

sauf différents états la norme de consommation d'énergie USB 3.0 diffère de l'USB 2.0 et des courants supérieurs pris en charge. Si la version USB 2.0 prévoyait un seuil de courant de 500 mA, alors dans le cas de la nouvelle norme, la limitation a été déplacée à la barre des 900 mA. Le courant lors de l'initiation de la connexion a été augmenté de 100 mA pour USB 2.0 à 150 mA pour USB 3.0. Ces deux paramètres sont très importants pour les disques durs portables, qui nécessitent généralement des courants légèrement plus élevés. Auparavant, le problème était résolu en utilisant une prise USB supplémentaire, alimentée par deux ports, mais n'en utilisant qu'un seul pour le transfert de données.

Câbles et connecteurs USB

Contrairement aux boucles de bus ATA parallèles encombrantes et coûteuses et en particulier au bus SCSI avec sa variété de connecteurs et ses règles de connexion complexes, le câblage USB simple et gracieux.

Existe cinq types de connecteurs USB:

De gauche à droite : micro USB, mini USB, type B, connecteur de type A, connecteur de type A

  • micro USB- utilisé dans les plus petits appareils tels que les lecteurs et les téléphones portables ;
  • mini-USB- également souvent présent sur les lecteurs, les téléphones portables et en même temps sur les appareils photo numériques, les PDA et les appareils similaires ;
  • type B- connecteur pleine taille, installé dans les imprimantes, scanners et autres appareils où la taille n'est pas très importante ;
  • Type A (récepteur)- un connecteur installé dans les ordinateurs (ou sur les rallonges USB), où est branché un connecteur de type A ;
  • Type A (prise)- un connecteur branché directement sur l'ordinateur dans le connecteur approprié.

Le système de câbles et de connecteurs USB ne permet pas de se tromper lors de la connexion des appareils. Les prises de type « A » conviennent uniquement aux ports de concentrateur en aval, les fiches de type « A » aux cordons de concentrateur périphériques ou en amont. Les prises et fiches de type B ne sont utilisées que pour les cordons déconnectés des périphériques et des ports en amont des concentrateurs (des "petits" périphériques - souris, claviers, etc., les câbles ne sont généralement pas déconnectés). Les concentrateurs et les appareils offrent des capacités de connexion et de déconnexion à chaud.

La longueur maximale du câble USB peut être de 5 mètres. Cette limitation a été introduite pour réduire le temps de réponse de l'appareil. Le contrôleur hôte attend l'arrivée des données pendant un temps limité, et s'il est retardé, la connexion peut être perdue.

Le câble pour prendre en charge le bus pleine vitesse est à paire torsadée, blindé et peut également être utilisé pour un fonctionnement à faible vitesse. Le câble pour un fonctionnement uniquement à la vitesse minimale (par exemple, pour connecter une souris) peut être n'importe quel câble et peut être non blindé.

Littérature

  1. A. Kostsov, V. Kostsov, PC Fer. Manuel d'utilisation. - M. : Martin, 2006 .-- 480 p.

Le bus USB est conçu pour interfacer un PC avec divers appareils type de téléphone, fax, modem, scanner, répondeur, clavier, souris, etc. Ce bus de bureau plug-and-play est un bus à vitesse moyenne, bidirectionnel et à faible coût qui augmente la connectivité et l'architecture du PC.

Les principales propriétés du bus USB :

Possibilité de connecter jusqu'à 127 appareils physiques ;

Reconnaissance automatique des périphériques ;

Formation de diverses configurations;

Mise en œuvre de types de transmission isochrones et synchrones avec une large gamme de vitesses ;

La présence d'un mécanisme de gestion des erreurs ;

Gestion de l'alimentation, etc.

La technologie de bus USB est illustrée à la Figure 7.1 et a une structure en étoile à plusieurs niveaux (configuration en arborescence).

Graphique 7.1. Topologie de bus USB

Chaque étoile est formée par un hub (point de connexion), qui permet la connexion d'un ou plusieurs fonctionnaires (func), périphériques. Le bus USB contient un hôte (contrôleur), qui forme le niveau racine et contrôle le travail des fonctionnaires. Le hub est un élément clé de l'architecture USB, prenant en charge la connexion de plusieurs hubs. Le hub comprend un port de streaming supérieur de la piste, qui est nécessaire pour connecter le hub à la « queue », et plusieurs ports de streaming inférieurs (NPP), le connectant avec d'autres hubs et/ou fonctionnaires (Figure 7.2).

Graphique 7.2. Vue générale du hub

Le hub remplit les fonctions suivantes : détecter la connexion (déconnexion) d'un autre hub ou fonctionnaire ; gestion de l'alimentation et configuration des appareils connectés à la centrale nucléaire correspondante. Le hub contient un contrôleur et un répéteur (commutateur de port contrôlé par protocole entre VFP et NPP1-NPP7). Le contrôleur utilise des registres d'interface pour communiquer avec l'hôte, qui utilise des commandes de contrôle pour configurer le concentrateur et surveiller ses partenaires. La figure 7.3 montre un système de bureau contenant des concentrateurs et des fonctionnaires.

Le fonctionnel est un périphérique USB séparé qui est connecté avec un câble à un port sur le concentrateur. Le hub/fonctionnaire fonctionne comme un appareil contenant un hub intégré. Chaque fonctionnaire doit être configuré par l'hôte avant de l'utiliser, ce qui inclut l'attribution de la plage de fréquence et la sélection d'options spécifiques pour la configuration.

Graphique 7.3. Système de bureau contenant des hubs et des fonctionnaires

L'hôte USB (ordinateur central) accède aux périphériques USB à l'aide du contrôleur hôte, qui effectue les opérations suivantes :

Coordination du contrôle et des flux de données entre l'hôte et les appareils ;

Détection des appareils connectés (déconnectés) ;

Collecter des informations sur l'état du système ;

Gestion de l'alimentation.

Le protocole de bus est exécuté comme suit. L'hôte envoie un paquet relais sur le bus USB, qui indique le type de paquet, le sens de la transaction (action sur le bus), l'adresse de l'appareil et le numéro du point de terminaison. Un point de terminaison est une partie identifiable de manière unique d'un périphérique USB qui contient plusieurs de ces points (points de terminaison de communication). La combinaison de l'adresse de l'appareil et du numéro de point de terminaison dans cet appareil vous permet de sélectionner chaque point individuellement. Tout point de terminaison doit être configuré avant utilisation et est caractérisé par la fréquence, la latence du bus, la bande passante, la taille maximale des paquets, le type et le sens de transmission. Les appareils à faible vitesse contiennent jusqu'à deux points de terminaison et les appareils à grande vitesse ont jusqu'à 16 points de sortie.

Une fois le transfert de données terminé, le périphérique USB (récepteur) répond avec un paquet d'accusé de réception indiquant que le transfert a réussi.

Les signaux de données D + et D- et la puissance (V et G - masse) dans le bus USB sont transmis de point à point le long de quatre fils d'un câble de 90 ohms (Fig. 7.4.) D'une longueur maximale de 5 m. La tension d'alimentation nominale est de 5v.

Graphique 7.4. cable USB

L'hôte (hub) alimente les périphériques USB qui y sont connectés. De plus, les périphériques USB peuvent être auto-alimentés. La puissance du bus USB est limitée.

Le bus USB propose deux plages de taux de transfert de données : faible vitesse(1,5 Mbps) et grande vitesse(12 Mbit/s). Le mode bas débit est utilisé pour interagir avec des appareils interactifs (souris, trackball, etc.) et le mode haut débit est utilisé avec un adaptateur téléphonique, des appareils audio ou vidéo. Chaque paquet de données est précédé d'un champ de synchronisation qui permet aux récepteurs d'aligner temporellement leurs temporisateurs (oscillateurs) pour recevoir des données. Le champ de synchronisation contient des impulsions de synchronisation codées NRZI à remplissage binaire.

Le lien entre l'hôte et le point de terminaison forme un canal. Un périphérique USB peut avoir un point de terminaison qui ne prend en charge qu'un canal de contrôle ou un point de terminaison qui utilise un canal pour la transmission de données.

L'USB effectue les types de transferts suivants sur les canaux correspondants dans un ou les deux sens :

Contrôle de la transmission spontanée (non périodique) des requêtes/réponses, utilisé pour transférer des commandes/états et est généralement utilisé pour configurer l'appareil au moment de sa connexion ;

Transfert de conteneur, se produisant aléatoirement dans le temps, consistant en un grand nombre sortie de données, par exemple, vers une imprimante ou un scanner ;

Interruption de transmission (transmission de données non périodique à basse fréquence depuis l'appareil à tout moment, constituée d'un ou plusieurs octets envoyés à l'ordinateur principal et nécessitant une maintenance de l'appareil) ;

Transmission isochrone (streaming périodique), assurant une communication continue entre l'hôte et l'appareil, en temps réel avec une vitesse et une latence prédéfinies.

Tous les périphériques USB contiennent un point de terminaison O auquel le canal de contrôle a accès par défaut. Les informations du point de terminaison O décrivent un périphérique USB et se composent des éléments suivants : une norme utilisant des descripteurs pour le périphérique, sa structure, son interface et ses points de terminaison ; la classe de l'appareil et les informations sur le fournisseur. Le point de terminaison O est utilisé pour initialiser et configurer le périphérique USB.

Les canaux déplacent les informations entre l'hôte et le point de terminaison à l'aide de la mémoire tampon. Il existe deux modes de fonctionnement du canal : un flux - des données qui n'ont pas de structure spécifique, et un message - des données transmises selon un ordre donné. Le logiciel système (logiciel) possède exclusivement le canal et l'expose à d'autres logiciels. L'utilisateur du logiciel demande des transferts sur le canal, les attend, puis est informé de la fin des transferts de données. Un point de terminaison peut signaler à l'hôte qu'il est occupé par NAK.

Les canaux de streaming transfèrent les paquets de données non USB dans un sens ou dans l'autre (transfert unidirectionnel). Les canaux de diffusion prennent en charge les transferts de conteneur, isochrones et d'interruption.

Le transfert de contrôle permet d'accéder à n'importe quelle partie de l'appareil et est destiné à l'échange d'informations, telles que configuration/commande/état, entre le logiciel utilisateur et le fonctionnaire. La transmission de contrôle contient généralement des informations de demande (package d'installation), des données et des informations d'état fonctionnel renvoyées à l'hôte. Le package d'installation a une structure spécifique consistant en un ensemble de commandes nécessaires pour établir la communication entre un hôte et un périphérique USB. La description de l'état de l'appareil a également une structure spécifique, et les données de contrôle suivant le package d'installation n'ont aucune structure et contiennent des informations sur l'accès demandé. La transmission de contrôle est effectuée sous la forme d'un flux d'informations bidirectionnel sur les canaux de messages. La norme de bus USB limite la taille des paquets de données pour les périphériques haut débit à 8, 16, 32 ou 64 octets, tandis que les périphériques bas débit peuvent avoir un paquet de données ne dépassant pas 8 octets. Le package d'installation contient toujours 8 octets. Initialement (après une réinitialisation), l'hôte utilise un paquet de données de 8 octets, ce qui est suffisant pour les opérations standard, et après avoir déterminé le type de point de terminaison à partir de ses informations de configuration, un gros paquet peut être utilisé pour effectuer des opérations spécifiques. Ainsi, toutes les données lors de la transmission sont divisées en parties égales (paquets), à l'exception de la dernière partie, qui contient les données restantes.

Dans le cas où le point de terminaison est occupé pendant un certain temps, l'hôte réessayera d'y accéder après un certain temps. Si l'hôte détecte une erreur, il retransmet.

La figure 7.5 montre un schéma général de la façon dont les composants du bus USB interagissent.

Graphique 7.5. Schéma général d'interaction des composants du bus USB

L'hôte (centre de coordination) contient : un logiciel système USB qui prend en charge l'interface USB dans un système d'exploitation spécifique et qui est fourni avec celui-ci ; Logiciel utilisateur requis pour contrôler le fonctionnement d'un périphérique USB spécifique qui est inclus avec le système d'exploitation ou fourni avec le périphérique, et un contrôleur qui permet aux périphériques de se connecter à un hôte. Un périphérique USB possède également plusieurs niveaux de mise en œuvre : interface bus, logique de périphérique (collecte de points) et fonctionnelle (niveau fonctionnel de périphérique).

Le bus USB utilise la méthode d'encodage NRZI (pas de retour à zéro avec inversion). Dans ce cas, la méthode de codage NRZI est que si le bit de données transmis est égal à 0, alors le niveau de tension change, et s'il est égal à 1, alors le niveau de tension est conservé. La figure 7.6 montre un exemple de codage de données utilisant la méthode NRZI.

Graphique 7.6. Exemple d'encodage NRZI

Ainsi, la chaîne de zéros provoque la commutation des niveaux de signal, et la chaîne de uns forme de longs segments de niveaux sans aucune transition, ce qui peut violer la condition de synchronisation lors de la sélection de chaque bit. Par conséquent, lors de la transmission de données, un zéro est inséré tous les six uns consécutifs pour garantir que chaque intervalle de bit est détecté de manière fiable à la réception dans le pire des cas lorsque les bits de données sont un contre un. Le récepteur décode le code NRZI et supprime les bits zéro insérés. La figure 7.7 montre un chronogramme des étapes de codage des données.

Le diagramme montre d'abord des données brutes contenant un champ de synchronisation et un paquet de données, le modèle de synchronisation ayant 7 zéros et se terminant par un bit 1, après quoi le paquet de données commence. Ensuite, le diagramme montre les données remplies, qui contiennent en plus le bit inséré 0 après six uns. Les six uns incluent également le dernier bit de synchronisation. Après cela, les données remplies sont codées à l'aide de la méthode NRZI, en tenant compte du champ de synchronisation. La règle de remplissage requiert que le bit 0 soit inséré, même si ce bit est le dernier, avant le signal EOP (fin de paquet).

Graphique 7.7. Chronogramme des étapes de codage des données

Examinons quelques-unes des exigences électriques du bus USB. La figure 7.8 montre un schéma d'un pilote de bus USB symétrique (pilote) contenant deux tampons CMOS identiques.

Graphique 7.8. Circuit de mise en forme différentiel

Le pilote différentiel équilibré contient deux sorties polarisées de manière opposée, D + et D-, avec trois états pour réaliser un fonctionnement bidirectionnel en semi-duplex. L'une des sorties représente le répéteur d'entrée tamponné et l'autre son complément. Ces sorties sont reliées par une paire de fils croisés aux entrées du récepteur différentiel. Ainsi, les fils transportent deux signaux qui sont également affectés par le bruit de mode commun éliminé par le récepteur différentiel.

Étant donné que les sorties du pilote ont des polarités différentes, lors de la transmission de données à haute fréquence, des signaux bipolaires réfléchis apparaissent, qui ne sont pas du bruit de mode commun. Par conséquent, la possibilité d'apparition de signaux réfléchis du côté réception de l'interface doit être éliminée.

L'application du principe de transmission différentielle augmente son immunité au bruit et, par conséquent, permet d'augmenter le débit de transmission des données.

La figure 7.9 montre un schéma des signaux aux sorties du shaper pour un débit de transmission de 12 Mbit/s (a) et 1,5 Mbit/s (b).

Graphique 7.9. Diagrammes de signaux aux sorties des shapers pour des débits de transmission de données de 12 Mbit/s (a) et 1,5 Mbit/s (b)

Un câble blindé à paire torsadée est utilisé à 12 Mbps, et un câble non blindé avec une paire de conducteurs non torsadée est utilisé pour 1,5 Mbps. Le couplage d'émetteurs-récepteurs (PP) à l'aide d'un câble USB dans le cas de transmissions à haute vitesse (a) et à basse vitesse (b) est illustré à la Figure 7.10.

On peut voir sur les schémas que les appareils à grande vitesse contiennent une résistance de charge (R H) sur la ligne D + et des appareils à faible vitesse sur la ligne D-, ce qui vous permet de déterminer le type de périphérique USB connecté. Lorsque le périphérique USB ne pilote pas les lignes D + et D-, la ligne RH a une tension d'environ 3V et l'autre est proche de 0V. Cet état du bus est dit passif.

Graphique 7.10. Schémas d'interface de l'hôte (hub) et du fonctionnel (hub) pour les transmissions à grande vitesse (a) et à faible vitesse (b)

Si l'appareil n'est pas connecté au port inférieur de l'hôte (hub) (ou s'il n'y a pas d'alimentation), alors l'asymétrie est définie sur les lignes D + et D-. niveau faible tension (0,6 V), qui est utilisée pour déterminer la condition de déconnexion ou le message de fin de rafale (EOP). Pour les transmissions à grande vitesse, la condition de déconnexion est un zéro asymétrique pendant 2,5 ms (unités de temps de 30 bits).

La communication avec l'appareil est considérée comme établie si la tension sur l'une des lignes D + (D-) dépasse un seuil haut asymétrique de 1,5 V en 2,5 ms.

Voir la Figure 7.11 pour déterminer si un périphérique USB est déconnecté et connecté.

Figure 7.11. Constatation du fait de déconnexion (a) et de connexion du périphérique USB (b)

Le temps de transfert de données total est estimé par le nombre de bits de données multiplié par la période (T) déterminée par le taux de transfert de données. La figure 7.12 montre le chronogramme des lignes de données différentielles D+ et D-.

Graphique 7.12. Délai de transfert de données

Selon le code NRZI, le bit 0 provoque la commutation des niveaux de tension et le bit 1 conserve les niveaux de tension correspondants sur les lignes D + et D-. La durée du zéro asymétrique dans l'EOP est de 2T, hors temps de retard.

Le début du paquet (SOF) est déterminé par le premier bit du champ de synchronisation lorsque l'état passif des lignes D+ et D- devient actif. Les périphériques USB prennent en charge le mode suspension, qui est causé par l'état passif des lignes D + et D- maintenu pendant plus de 3 ms.

La commande hôte peut définir un signal de réinitialisation qui se propage à travers tous les concentrateurs et ramène les périphériques connectés à leur état initial. Le signal de réinitialisation est un zéro asymétrique maintenu sur le bus pendant 10 ms.

Selon la source de consommation d'énergie, on distingue les types d'appareils suivants :

Des concentrateurs qui tirent l'alimentation du bus et alimentent les périphériques fonctionnels internes et les ports inférieurs ;

Des concentrateurs auto-alimentés qui vous permettent d'alimenter cinq modules, chacun consommant 100 mA, ce qui correspond à la charge du module ;

Appareils basse consommation (avec une charge d'un module) et haute puissance (avec une charge de cinq modules) qui consomment de l'énergie du bus ;

Appareils fonctionnels qui disposent d'une alimentation externe et supportent la charge d'un module alimenté par le bus.

Jetons un coup d'œil aux formats de paquets définis par la norme de bus USB. Une distinction est faite entre les paquets d'authentification, d'information et d'accusé de réception. Chaque paquet est précédé de la transmission d'un champ de synchronisation de 8 bits. Le format du paquet d'identification est illustré à la Fig. 7.13.

Graphique 7.13. Format du paquet d'identification

Après le champ de synchronisation pour chaque paquet, un identifiant (ID) de 8 bits est transmis, le bit le moins significatif en premier. Les bits D0-D3 du champ ID précisent le type de paquet (format et méthode de détection des erreurs du paquet correspondant), et les bits D4-D7 sont les valeurs inverses des quatre bits les moins significatifs et servent de champ de vérification la transmission correcte du champ ID, qui est divisé en identification, information, accusé de réception et spécial.

Il utilise une adresse de périphérique à 7 bits et un numéro CT à 4 bits pour sélectionner un périphérique et un point de terminaison (CT). Le champ d'adresse est destiné à l'entrée (sortie) de données et aux identifiants de réglage. Lors de la réinitialisation ou de la mise hors tension, l'adresse de l'appareil est définie sur 0, puis programmée par l'hôte. Les périphériques à faible vitesse contiennent jusqu'à deux points de terminaison et les périphériques à haute vitesse contiennent jusqu'à 16 points de terminaison. Le champ d'adresse et les numéros CT sont protégés par un code de contrôle cyclique (CCC) à 5 bits. La vérification de redondance cyclique est que les bits du champ KCC sont les coefficients d'un polynôme binaire (équivalent à 5 bits), et les octets de contrôle d'erreur sont obtenus en divisant ce polynôme par un polynôme de 16 bits donné. La présence ou l'absence d'une erreur est déterminée par le code binaire du reste.

Le paquet de champ de données se compose d'un champ ID de 8 bits, d'un champ de données (0 à 1023 octets) et d'un champ KCC de 16 bits (Figure 7.14).

Graphique 7.14. Format de paquet de données

Il existe deux paquets de données (Données (0) et Données (1)) avec des identifiants différents nécessaires pour maintenir une synchronisation correcte. Les données du paquet sont représentées sous la forme d'une séquence d'octets.

Le paquet de poignée de main contient uniquement le champ ID et est destiné à vérifier le succès du transfert de données. Il existe trois types de ce paquet : ACK (accusé de réception) - le paquet de données a été reçu sans erreur et le paquet ID est correct (le paquet est utilisé pour la transmission de données) ; NAK (non reconnu) - un paquet indiquant l'incapacité de l'appareil à recevoir des données de l'hôte (échec temporaire) ou l'appareil n'a aucune donnée à transmettre à l'hôte (en outre, le paquet est utilisé pour signaler une pause temporaire dans la transmission ou la réception de données par l'appareil) ; STALL est un paquet de réponse indiquant une défaillance permanente et la nécessité d'une intervention du programme hôte.

Le paquet d'identification SOF (Start of Frame) permet aux concentrateurs ou aux périphériques d'identifier le début d'une trame et de synchroniser leurs temporisateurs internes avec le temporisateur de l'ordinateur hôte. Le format du paquet d'authentification est illustré à la Figure 7.15.

Graphique 7.15. Format du paquet d'identification

Une trame consiste en une série de transactions (actions de bus) commençant à un jeton SOF et se poursuivant jusqu'au début du jeton SOF suivant. Le périphérique ou le concentrateur identifie le début d'une trame par l'ID de paquet SOF à 8 bits.

Il existe les transactions suivantes : tableau de données, contrôle, interruption et type isochrone.

Une transaction d'ensemble de données lors de la saisie de données dans un hôte se compose d'un paquet d'authentification avec une demande d'entrée, d'un paquet de données (Données (0/1)) de l'appareil et d'un paquet d'accusé de réception (NAK ou STALL) envoyé par l'appareil à la suite des données . Si le paquet de données est reçu valide, alors l'hôte répond au périphérique avec un paquet ACK.

Lors de la saisie de données d'un hôte vers un périphérique, l'hôte envoie un paquet d'authentification avec une demande de sortie, suivi d'un paquet de données. L'appareil répond à l'hôte avec l'un des trois paquets d'établissement de liaison (ACK, NAK ou STALL).

La séquence d'actions de l'hôte et du périphérique lors du transfert de baies de données est illustrée à la Figure 7.16.

Graphique 7.16. Séquence hôte et périphérique

La figure 7.17 montre la séquence d'identifiants lors de l'écriture et de la lecture d'un tableau de données.

Graphique 7.17. Séquence d'identifiants lors de l'écriture et de la lecture d'un tableau de données

Afin de synchroniser les composants du bus USB, les paquets avec l'identifiant Data (0) et les paquets avec l'identifiant Data (1) sont entrelacés. La commutation des paquets de données dans l'émetteur est effectuée après réception du paquet ACK et dans le récepteur - après réception du paquet suivant.

Les transitions de contrôle contiennent deux étapes : Installation et État, entre lesquelles il peut y avoir une étape d'information. Pendant la phase d'installation, seules les données au format du champ Data ID (0) sont transférées au point de terminaison de contrôle de l'appareil.

La transaction d'installation est illustrée à la figure 7.18.

Graphique 7.18. Opération d'installation

L'ACK n'est pas émis si les données sont invalides. S'il y a une étape de données, elles sont transférées dans un sens conformément aux exigences du protocole. Cette étape peut consister en plusieurs transactions d'entrée et de sortie et la taille du tableau de données est spécifiée dans le package d'installation.

L'étape d'état est la dernière de la séquence considérée et utilise l'identifiant Data 0.

La figure 7.19 montre l'ordre des transactions et des ID de données pour le contrôle de lecture ou d'écriture.

Graphique 7.19. Séquence de transaction et ID de données

Dans la phase Status, les informations suivantes sont transmises de l'appareil à l'hôte : l'appareil a terminé la tâche (ACK), l'appareil ne contient pas d'erreurs (STALL) et l'appareil est occupé (NACK).

Les transactions d'interruption contiennent des identifiants d'entrée. La figure 7.20 montre la séquence des transactions d'interruption.

Graphique 7.20. Interrompre les séquences de transactions

Si l'appareil reçoit un identifiant d'entrée, alors il émet les données d'interruption sous la forme d'un paquet et reçoit un ACK ou envoie un NACK/STALL. Un paquet NAK est envoyé par un périphérique lorsqu'il ne contient pas d'informations pour une nouvelle interruption, et un paquet STALL est envoyé par un périphérique s'il a temporairement suspendu son fonctionnement.

Les transactions isochrones n'ont pas d'étape d'acquittement. La figure 7.21 montre les étapes des transactions isochrones.

Graphique 7.21. Étapes de transaction isochrones

Lorsque le mode isochrone est exécuté, les paquets de données avec les identifiants correspondants sont modifiés à leur tour, c'est-à-dire le paquet de données Data (0) suit en premier, suivi du paquet de données (1), et ainsi de suite.

Précédent


Normes USB 1.1 et 2.0

Le bus série universel (USB) est une autre interface série. Puisqu'il s'agit de l'interface série la plus populaire, elle mérite son propre chapitre.

Le bus USB permet de connecter en série jusqu'à 127 appareils (vous pouvez connecter un appareil à un appareil si le fabricant de l'appareil a prévu cette possibilité). Comme dans le cas de l'IEEE, le branchement/branchement à chaud des périphériques est pris en charge, c'est-à-dire que vous n'avez pas besoin d'éteindre l'ordinateur pour brancher/débrancher un périphérique. De plus, comme avec l'IEEE, les appareils peuvent être alimentés via USB, éliminant ainsi le besoin d'alimentations supplémentaires.

Le bus USB est apparu en janvier 1996 - puis la version USB 1.0 a été annoncée. Deux ans plus tard, en 1998, le bus USB 1.1 fait son apparition. Presque tous les appareils de la version 1.0 sont compatibles avec USB 1.1, et vice versa - il n'y a eu que des changements mineurs.

Le bus USB 2.0 est apparu en 2003. Il est rétrocompatible avec les versions 1.0 et 1.1. Cela signifie que vous pouvez connecter des appareils versions 1.0 et 1.1 au bus USB 2.0. Il est très facile de déterminer la version de l'appareil - par le logo USB. En figue. 10.1 montre le logo des versions USB 1.0 et 1.1 (maintenant la version 1.1 de l'appareil est plus courante), et sur la fig. 10.2 - Logo USB 2.0.

Riz. 10.1. Logo Usb 1.1 : ancien (gauche) et nouveau (droite)

Riz. 10.2. Logo USB 2.0

Caractéristiques Les bus USB 1.1 sont indiqués dans le tableau. 10.1.
// - Tableau 10.1. Spécifications du bus USB1.1 - //


Veuillez noter que le bus USB 1.1 peut fonctionner selon deux modes : bas débit et haut débit. Dans le premier, le taux de change est de 1,5 Mbit/s, dans le second de 12 Mbit/s.
Les spécifications du bus USB 2.0 sont presque les mêmes, mais il existe trois modes de vitesse pour l'USB 2.0 :
Basse vitesse (vitesse 10-1500 Kbps) - pour les périphériques d'entrée (clavier, souris, joysticks);
Pleine vitesse (0,5 à 12 Mbit / s) - divers appareils à vitesse moyenne;
Hi-speed (5-480 Mbit / s) - supports de données, appareils vidéo.

Connexion de périphériques USB

Au dos de l'unité centrale, vous pouvez généralement trouver quatre ports USB (parfois 6 ou même 8). Ces ports (Figure 10.3) appartiennent à des concentrateurs USB racine. Chaque Root Hub dispose de deux ports USB. Par conséquent, si vous avez quatre ports USB sur la carte mère, alors il y a deux hubs racine dans le système, s'il y a huit ports, alors il y a quatre hubs racine dans le système.

//-- Riz. 10.3. Ports USB - //
Ouvrez le Gestionnaire de périphériques (pour ce faire, exécutez la commande Démarrer, Paramètres, Panneau de configuration, Système, accédez à l'onglet Matériel et cliquez sur le bouton Gestionnaire de périphériques). Dans la fenêtre Gestionnaire de périphériques, développez le groupe Contrôleurs de bus série universels (Figure 10.4).

//-- Riz. 10.4. Gestionnaire de périphériques --//
Cliquez avec le bouton droit sur n'importe quel hub racine et sélectionnez Propriétés. Dans la fenêtre qui apparaît, allez dans l'onglet Alimentation. Vous verrez les informations suivantes (Figure 10.5) :
le type d'alimentation du concentrateur est notre concentrateur racine, il a donc sa propre alimentation ;
des informations sur les appareils connectés aux ports du hub et sur leur alimentation - dans notre cas, un appareil est connecté et il nécessite une alimentation de 100 mA. Le maximum que notre hub peut transmettre jusqu'à 500mA par port ;
nombre de ports libres - le hub racine n'a que deux ports, l'un d'eux est occupé (un périphérique de stockage est connecté - un disque USB), donc un port est libre.

//-- Riz. 10.5. Détails du hub - //
Si vous n'avez que deux hubs et que vous ne pouvez connecter que deux appareils à chacun, alors comment, demandez-vous, pouvez-vous connecter jusqu'à 127 appareils USB à votre ordinateur ? Tout d'abord, vous pouvez connecter des concentrateurs USB supplémentaires aux ports du concentrateur racine (Figure 10.6). Un concentrateur USB se connecte à un port USB, mais fournit à la place au moins trois ports USB libres. Il existe deux types de hubs USB : auto-alimentés et alimentés par le port parent. Mieux vaut acheter des hubs avec leur propre alimentation. Pourquoi? Comme on le sait, un courant maximum de 500 mA est transmis par port ; 100mA seront nécessaires pour alimenter le hub lui-même, il restera donc 400mA pour les appareils. Il s'avère que vous ne pourrez plus connecter aucun périphérique USB puissant à chaque port d'un tel concentrateur, mais vous pourrez connecter des périphériques tels que des disques USB qui ne nécessitent que 100 mA.

//-- Riz. 10.6. Concentrateur USB - //
Si le hub dispose de sa propre alimentation, il sera alors possible de fournir 500 mA pour chaque port, c'est-à-dire que les ports USB seront à part entière, comme sur les hubs racine.
De plus, certains appareils, comme un clavier, peuvent faire office de concentrateur USB (ces appareils doivent être des appareils USB). Vous branchez le clavier sur un port USB et vous pouvez y brancher plus d'appareils. Habituellement, des souris USB et parfois des disques USB sont connectés au clavier. Il est clair que ces appareils ne doivent pas être "gloutons", car au total les mêmes 500 mA sont fournis au port; 100 mA alimentent le clavier et le reste est réparti entre les appareils connectés au clavier. Compte tenu d'une telle connexion hiérarchique d'appareils, il est facile d'imaginer seulement 127 appareils connectés à un ordinateur. Ce n'est pas 63 000, comme c'est le cas avec IEEE-1394 !
Maintenant sur les connecteurs USB. Les connecteurs à l'arrière de l'unité centrale (les connecteurs USB les plus courants) sont appelés Type USB A. Le câble pour connecteur de type A est illustré à la fig. 10.7.

//-- Riz. 10.7. Câble de type A - //
Le connecteur et le câble de type B sont illustrés à la fig. 10.8. Généralement, un connecteur de type B est utilisé sur les périphériques (imprimantes, scanners). Le câble USB pour connecter un périphérique à un ordinateur (Fig. 10.9) est équipé d'un connecteur de type B (pour se connecter à une imprimante / scanner) et d'un connecteur de type A (pour se connecter à un ordinateur).

//-- Riz. 10.8. Connecteur (femelle) et câble de type B - //
//-- Riz. 10.9. Câble d'imprimante USB - //
En plus des connecteurs de type A et B, il existe également un mini-connecteur, appelé mini-USB (Fig.10.10). Il est généralement utilisé pour connecter un câble USB à un appareil photo numérique, un téléphone portable. Dans ce cas, une extrémité du câble est mini-USB et l'autre est de type A.

//-- Riz. 10.10. Câble mini-USB - //

Mise à niveau d'anciens ordinateurs

Les ordinateurs plus anciens n'ont pas de ports USB, mais vous pouvez installer un contrôleur USB conçu comme une carte d'extension PCI (Figure 10.11) ou comme une carte PC (pour les ordinateurs portables). Lors de l'achat d'un contrôleur, assurez-vous qu'il prend en charge USB 2.0 (Fig. 10.12) - s'il est installé, le plus récent.

//-- Riz. 10.11. Contrôleur USB sous forme de carte PCI (4 ports USB) - //

//-- Riz. 10.12. Carte PC double port (ajoute la prise en charge USB à l'ancien ordinateur portable) - //
Parfois, l'ordinateur n'est pas très ancien - il existe un support USB, mais la version 1.1, mais vous devez connecter un périphérique USB 2.0. Dans ce cas, un contrôleur PCI sera également utile. Je le répète encore une fois : lors de l'achat, vous devez vous assurer que vous achetez exactement le contrôleur USB 2.0.

Actuellement, la norme USB 3.0 n'a pas encore été adoptée, mais est déjà en cours de développement. Il est censé transmettre des signaux à l'aide d'un câble à fibre optique. L'USB 3.0 sera rétrocompatible avec les versions 2.0 et 1.1.
Les sociétés suivantes travaillent actuellement à la création de l'USB 3.0 : Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC et NXP Semiconductors. Taux de transfert de données prévu (crête) - 4,8 Gbit/s.

Votre système prend-il en charge l'USB

Il semblerait que s'il y a des ports USB, il devrait également y avoir un support USB. Mais ce n'est pas toujours le cas. Par exemple, Windows 2000 et Windows XP SP1 n'ont pas de pilote USB 2.0. Même si vous disposez d'un contrôleur USB 2.0, sans installer de pilote pour USB 2.0, le bus USB fonctionnera comme USB 1.1.
Téléchargez le programme USB Ready sur http://www.usb.org/about/faq/ans3/usbready.exe, qui testera votre système pour la prise en charge USB (Figure 10.13).

//-- Riz. 10.13. Programme prêt pour l'usb - //
Que doivent faire ceux qui ont un nouveau contrôleur USB ? Il y a plusieurs options :
installez une nouvelle version du système d'exploitation - Windows Vista, mais ce n'est pas bon marché ;
mettre à niveau la version du système d'exploitation vers Windows XP SP2 ; installez le pilote USB 2.0.

Vous ne voulez pas toujours réinstaller un système qui fonctionne bien. Ensuite, nous chercherons un chauffeur. Parfois, il est livré avec la carte mère - alors vous avez de la chance. Mais s'il n'est pas inclus dans le kit, nous le chercherons sur Internet. Le plus intéressant, c'est qu'il n'est plus sur le site de Microsoft. J'ai trouvé le pilote dont j'avais besoin sur softodrom.ru :
http://soft.softodrom.ru/ap/p4515.shtml.
Si au moment où le livre est épuisé, il n'est plus là, veuillez me contacter - je le partagerai avec vous.

La première spécification USB (version 1.0) a été publiée au début de 1996, et la spécification 1.1 est apparue à l'automne 1998, corrigeant les problèmes rencontrés dans la première édition. Au printemps 2000, la version 2.0 a été publiée, qui prévoyait une augmentation de 40 fois de la bande passante du bus. Ainsi, les spécifications 1.0 et 1.1 assurent un fonctionnement à des vitesses de 12 Mbit/s et 1,5 Mbit/s, et la spécification 2.0 - à des vitesses de 480 Mbit/s. Cela assure la rétrocompatibilité de l'USB 2.0 avec l'USB 1.x.

La spécification USB 3.0 finale est apparue en 2008. L'USB 3.0 a été créé par Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC, etc. NXP Semiconductors Dans la spécification USB 3.0, les connecteurs et câbles standard mis à jour sont physiquement et fonctionnellement compatibles avec l'USB 2.0. En plus des quatre lignes USB 2.0, l'USB 3.0 ajoute quatre lignes de communication supplémentaires (deux paires torsadées). Les nouveaux contacts dans les connecteurs USB 3.0 sont situés séparément des anciens sur une rangée de contacts différente. La spécification USB 3.0 augmente le taux de transfert de données maximal à 4,8 Gb/s, ainsi, la vitesse de transfert passe de 60 Mo/s à 600 Mo/s et vous permet de transférer 1 To non pas en 8 à 10 heures, mais en 40 minutes -1 heure. La version 3.0 bénéficie également d'une intensité de courant accrue de 500 mA à 900 mA, de sorte que l'utilisateur peut non seulement alimenter plus d'appareils à partir d'un seul concentrateur, mais les appareils eux-mêmes pourront dans de nombreux cas se débarrasser d'alimentations séparées.

Architecture USB commune

L'architecture physique de l'USB est régie par les règles suivantes :

  • les appareils se connectent à l'hôte ;
  • la connexion physique des appareils entre eux est effectuée selon la topologie d'une étoile à plusieurs niveaux, dont le sommet est le concentrateur racine;
  • le centre de chaque étoile est un moyeu ;
  • chaque segment de câble relie deux points entre eux : hôte à concentrateur ou fonction , un hub avec une fonction ou un autre hub ;
  • Un périphérique USB ou un autre hub peut être connecté à chaque port du hub, tandis que jusqu'à 5 niveaux de cascade de hubs, sans compter la racine, sont autorisés.

La couche la plus élevée est le concentrateur racine, qui est généralement partagé avec le contrôleur USB.

Des périphériques ou d'autres concentrateurs peuvent être connectés au concentrateur racine pour augmenter le nombre de ports disponibles. Le concentrateur peut être conçu comme un appareil séparé ou être intégré à un autre, c'est-à-dire Les périphériques USB peuvent être classés en tant que périphériques fonctionnels, c'est-à-dire ceux qui exécutent une fonction spécifique (par exemple, des souris), les périphériques concentrateurs qui exécutent uniquement une fonction de déploiement et les périphériques co-localisés qui incluent un concentrateur qui étend l'ensemble de ports (par exemple, des moniteurs avec des ports pour connecter d'autres).


Au cinquième niveau, l'appareil combo ne peut pas être utilisé. De plus, il convient de mentionner séparément l'hôte, qui est plus un complexe logiciel et matériel qu'un simple appareil.


Les détails de l'architecture physique sont cachés des programmes d'application dans le logiciel système (logiciel), de sorte que l'architecture logique ressemble à une étoile normale, avec le logiciel d'application en son centre et un ensemble d'extrémités comme sommets. L'application communique avec chaque point de terminaison.

Composants USB

Le bus USB se compose des éléments suivants :


Propriétés du périphérique USB

  • adressage - l'appareil doit répondre à l'adresse unique qui lui est attribuée et uniquement à lui ;
  • configuration - après la mise sous tension ou la réinitialisation, l'appareil doit fournir une adresse zéro pour pouvoir configurer ses ports ;
  • transfert de données - l'appareil dispose d'un ensemble de points de terminaison pour communiquer avec l'hôte. Pour les points de terminaison qui acceptent différents types de transfert, un seul d'entre eux est disponible après la configuration ;
  • gestion de l'alimentation - aucun appareil lorsqu'il est connecté ne doit tirer du bus un courant supérieur à 100 mA. Lors de la configuration, l'appareil déclare ses besoins en courant, mais pas plus de 500 mA. Si le concentrateur ne peut pas fournir à l'appareil le courant déclaré, l'appareil ne sera pas utilisé ;
  • suspend - Le périphérique USB doit prendre en charge le mode suspendu afin que sa consommation de courant ne dépasse pas 500 A. Le périphérique USB devrait se suspendre automatiquement lorsque le bus n'est plus actif ;
  • réveil à distance - La fonction de réveil à distance permet à un périphérique USB suspendu de signaler un hôte, qui peut également être dans un état suspendu. La capacité de réveil à distance est décrite dans la configuration du périphérique USB. Cette fonction peut être désactivée lors de la configuration.

Niveaux logiques d'échange de données

La spécification USB définit trois niveau logique avec certaines règles d'interaction. Le périphérique USB contient des parties d'interface, logiques et fonctionnelles. L'hôte est également divisé en trois parties - interface, système et logiciel. Chaque partie n'est responsable que d'un certain nombre de tâches.

Ainsi, l'opération d'échange de données entre le programme applicatif et le bus USB s'effectue en faisant passer des tampons mémoire à travers les couches suivantes :

  • niveau du logiciel client dans l'hôte :
    • généralement représenté par un pilote de périphérique USB ;
    • permet à l'utilisateur d'interagir avec le système d'exploitation d'une part et le pilote système d'autre part ;
  • niveau du système pilote USB dans l'hôte (USB, pilote de bus série universel) :
    • contrôle la numérotation des appareils sur le bus ;
    • contrôle la distribution de la bande passante du bus et de l'alimentation électrique ;
    • gère les demandes des pilotes personnalisés ;
  • Niveau du pilote de contrôleur hôte (HCD) :
    • transforme les requêtes d'E/S en structures de données sur lesquelles des transactions physiques sont effectuées ;
    • fonctionne avec les registres d'hôtes.

Relation entre le logiciel client et les périphériques USB : l'USB fournit une interface de programmation et uniquement celle-ci pour l'interaction, permettant au logiciel client d'exister isolément d'un périphérique spécifique connecté au bus et de sa configuration. Pour le client programmes USB est juste un ensemble de fonctions.

L'interaction des composants USB est illustrée dans le schéma ci-dessous :

La structure considérée comprend les éléments suivants :

Périphérique USB physique- un dispositif sur le bus qui exécute des fonctions d'intérêt pour l'utilisateur final.

Logiciel client- Logiciel spécifique à l'appareil exécuté sur l'ordinateur hôte. Peut-être partie de OS ou produit spécial.

Logiciel du système USB- Prise en charge du système USB, indépendamment des appareils spécifiques et du logiciel client.

Contrôleur hôte USB- matériel et logiciel pour connecter des périphériques USB à l'ordinateur hôte.

Principes de transfert de données

Le mécanisme de transfert de données est asynchrone et basé sur des blocs. Le bloc de données transmis est appelé Cadre USB ou Cadre USB et est transmis dans un intervalle de temps fixe. Le fonctionnement des commandes et des blocs de données est implémenté à l'aide d'une abstraction logique appelée canaliser. Un canal est un lien logique entre un hôte et un point de terminaison de périphérique externe.

Pour transmettre des commandes (et des données incluses dans les commandes), le canal par défaut est utilisé, et pour transmettre des données, soit Diffusion chaînes, ou canaux de messages.

Le flux délivre des données d'un bout à l'autre du canal, il est toujours unidirectionnel. Le même numéro de point de terminaison peut être utilisé pour deux canaux de diffusion en continu, d'entrée et de sortie. Un flux peut mettre en œuvre les types d'échanges suivants : continu, isochrone et interruptions. La livraison s'effectue toujours dans l'ordre premier entré, premier sorti (FIFO) ; du point de vue USB, les données de flux ne sont pas structurées. Les messages sont au format défini par la spécification USB. L'hôte envoie une demande au point de terminaison, suivie d'un paquet de message (reçu), suivi d'un paquet d'informations sur l'état du point de terminaison. Un message suivant ne peut normalement pas être envoyé avant le traitement du précédent, mais lors de la gestion des erreurs, il est possible de rejeter les messages non gérés. La messagerie bidirectionnelle s'adresse au même point de terminaison. Seul l'échange de contrôle est utilisé pour la remise des messages.

Les canaux sont associés à des caractéristiques correspondant au point final. Les canaux sont organisés lors de la configuration des périphériques USB. Pour chaque appareil allumé, il existe un canal de message (Control Pipe 0) qui transporte les informations de configuration, de contrôle et d'état.

Tout échange sur le bus USB est initié par le contrôleur hôte. Il organise les échanges avec les appareils selon son plan d'allocation des ressources.

Le contrôleur forme cycliquement (avec une période de 1,0 ± 0,0005 ms) des trames (trames) dans lesquelles s'insèrent toutes les transmissions programmées.

Chaque trame commence par l'envoi d'un paquet marqueur de début de trame (SOF), qui est un signal d'horloge pour tous les périphériques, y compris les concentrateurs. A la fin de chaque trame, un intervalle de temps EOF (End Of Frame) est alloué, pendant lequel les hubs interdisent la transmission vers le contrôleur. Si le concentrateur détecte que des données sont transmises depuis un port à ce moment-là, ce port est désactivé.

En mode de transmission haut débit, les paquets SOF sont transmis au début de chaque micro-trame (période 125 ± 0,0625 µs).

L'hôte programme le téléchargement des trames de sorte qu'il y ait toujours de la place pour les transmissions les plus prioritaires, et endroit libre les trames sont remplies de transmissions de faible priorité de grandes quantités de données. La spécification USB permet d'emprunter jusqu'à 90 % de la bande passante du bus pour les transactions périodiques (isochrones et interruptions).

Chaque cadre a son propre numéro. Le contrôleur hôte fonctionne avec un compteur de 32 bits, mais seuls les 11 bits les moins significatifs sont transmis dans le jeton SOF. Le numéro de bloc augmente cycliquement pendant EOF.

La synchronisation des appareils et du contrôleur est importante pour le transfert isochrone. Il existe trois options de synchronisation :

  • synchronisation du générateur interne de l'appareil avec les marqueurs SOF ;
  • ajuster la fréquence d'images à la fréquence de l'appareil ;
  • faire correspondre le taux de transmission (réception) de l'appareil avec la fréquence d'images.

Dans chaque trame, plusieurs transactions peuvent être effectuées, leur nombre autorisé dépend de la vitesse, de la longueur du champ de données de chacune d'entre elles, ainsi que des délais introduits par les câbles, les concentrateurs et les appareils. Toutes les transactions de trame doivent être terminées avant l'heure EOF. La fréquence d'images peut être légèrement modifiée à l'aide d'un registre spécial dans le contrôleur hôte, qui permet d'ajuster la fréquence pour les transferts isochrones. La fréquence d'images du contrôleur peut être ajustée à la fréquence d'horloge interne d'un seul appareil.

Les informations sur le canal sont transmises sous forme de paquets (Packet). Chaque paquet commence par un champ SYNC (SYNChronisation) suivi d'un PID (Packet IDentifier). Le champ Check est l'inverse au niveau du bit du PID.

La structure de données d'un paquet dépend du groupe auquel il appartient.

1. Le logiciel client envoie des requêtes IPR à la couche USBD.

2. Le pilote USBD divise les demandes en transactions selon les règles suivantes :

  • l'exécution de la demande est considérée comme terminée lorsque toutes les transactions qui la composent ont été effectuées avec succès ;
  • tous les détails du traitement de la transaction (tels que l'attente de la préparation, la retransaction en cas d'erreur, l'indisponibilité du destinataire, etc.) ne sont pas communiqués au logiciel client ;
  • Le logiciel peut uniquement lancer une demande et attendre que la demande soit terminée ou dépassée ;
  • le dispositif peut signaler des erreurs graves, entraînant une fin anormale de la demande, qui est notifiée à l'auteur de la demande.

3. Le pilote du contrôleur hôte reçoit la liste des transactions du pilote du système de bus et exécute les actions suivantes :

  • programme l'exécution des transactions reçues en les ajoutant à la liste des transactions ;
  • récupère la transaction suivante de la liste et la transfère à la couche de contrôleur hôte de l'interface de bus USB ;

4. Le contrôleur hôte de l'interface de bus USB forme des trames ;

5. Les trames sont transmises par transmission séquentielle de bits en utilisant la méthode NRZI

Ainsi, le schéma simplifié suivant peut être formé :

1. chaque trame est constituée des messages de priorité la plus élevée, dont la composition est constituée par le pilote hôte ;

2. chaque transfert consiste en une ou plusieurs transactions ;

3. chaque transaction est constituée de packages ;

4. Chaque paquet se compose d'un identifiant de paquet, de données (le cas échéant) et d'une somme de contrôle.

Types de messages USB

La spécification du bus définit quatre types de transfert différents pour les points de terminaison :

  • engrenages de contrôle (Transferts de contrôle) - sont utilisés par l'hôte pour configurer l'appareil pendant la connexion, pour contrôler l'appareil et obtenir des informations d'état pendant le fonctionnement. Le protocole garantit la livraison de ces colis. La longueur du champ de données du message de contrôle ne peut pas dépasser 64 octets à pleine vitesse et 8 octets à faible vitesse. Pour de tels forfaits, l'hébergeur est assuré d'allouer 10 % de la bande passante ;
  • transfert de tableaux de données (Transferts de données en masse) - sont utilisés lorsqu'il est nécessaire d'assurer la livraison garantie des données de l'hôte à la fonction ou de la fonction à l'hôte, mais le délai de livraison n'est pas limité. Ce transfert occupe toute la bande passante disponible du bus. Les paquets ont un champ de données de 8, 16, 32 ou 64 octets. Ces engrenages ont la priorité la plus basse, ils peuvent être suspendus lorsque le bus est fortement chargé. Uniquement autorisé à pleine vitesse de transmission. De tels colis sont utilisés, par exemple, par des imprimantes ou des scanners ;
  • interrompre la transmission (Interrompre les transferts) - sont utilisés lorsqu'il est nécessaire de transmettre de petits paquets de données uniques. Chaque paquet doit être transmis dans un temps limité. Les transferts sont spontanés et ne doivent pas être effectués plus lentement que l'appareil ne l'exige. Le champ de données peut contenir jusqu'à 64 octets à pleine vitesse et jusqu'à 8 octets à faible vitesse. La limite de temps de service est définie dans la plage de 1 à 255 ms pour la pleine vitesse et de 10 à 255 ms pour la basse vitesse. De tels transferts sont utilisés dans les périphériques d'entrée tels que la souris et le clavier ;
  • transferts isochrones (Transferts isochrones) - sont utilisés pour l'échange de données en « temps réel », lorsqu'une quantité de données strictement définie doit être transmise à chaque intervalle de temps, mais que la livraison des informations n'est pas garantie (la transmission des données est effectuée sans répétition en cas d'échec, de paquet la perte est autorisée). De tels transferts occupent une partie pré-négociée de la bande passante du bus et ont un délai de livraison prédéterminé. Les transferts isochrones sont couramment utilisés dans les appareils multimédias pour transférer des données audio et vidéo, telles que la transmission vocale numérique. Les transferts isochrones sont répartis selon le mode de synchronisation des terminaux - sources ou destinataires des données - avec le système : ils distinguent les classes d'appareils asynchrones, synchrones et adaptatives, chacune correspondant à son propre type de canal USB.

Mécanisme d'interruption

Il n'y a pas de véritable mécanisme d'interruption pour le bus USB. Au lieu de cela, l'hôte interroge les périphériques connectés pour les données d'interruption. L'interrogation se produit à intervalles fixes, généralement toutes les 1 à 32 ms. L'appareil est autorisé à envoyer jusqu'à 64 octets de données.

Du point de vue du pilote, les capacités d'interruption sont en fait déterminées par l'hôte, qui prend en charge l'implémentation physique de l'interface USB.

Modes de transfert de données

Le bus USB dispose de trois modes de transfert de données :

  • bas débit (LS, bas débit) 1,5 Mbit/s ;
  • pleine vitesse (LF, pleine vitesse) 12 Mbit/s;
  • haut débit (HS, haut débit, uniquement pour USB 2.0) 480 Mbps.

Connexion de périphériques au bus USB

Un câble à quatre fils est utilisé pour connecter les périphériques au bus USB, avec deux fils (paire torsadée) en connexion différentielle utilisés pour recevoir et transmettre des données, et deux fils pour alimenter le périphérique.

La spécification 1.0 spécifiait deux types de connecteurs :


Par la suite, des connecteurs miniatures ont été développés pour l'utilisation de l'USB dans des appareils portables et mobiles, appelés Mini-USB.

Il existe également des connecteurs Mini AB et Micro AB auxquels sont connectés les connecteurs A et B correspondants.

Il existe également des connecteurs miniatures - Micro USB.

Type USB 2.0Le sens des contactsCouleur du fil

Connexion de l'appareil à pleine vitesse

Connexion de l'appareil à faible vitesse

Les signaux de synchronisation sont codés avec les données à l'aide de la méthode NRZI (Non Return to Zero Invert). Chaque paquet est précédé d'un champ SYNC qui permet au récepteur de s'accorder sur la fréquence de l'émetteur.

Le câble possède également des lignes VBus et GND pour acheminer la tension d'alimentation de 5 V aux appareils. La section des conducteurs est choisie en fonction de la longueur du segment pour garantir le niveau de signal et la tension d'alimentation garantis.