Le protocole USB est à base de divers autres types de protocole, de commandes ainsi que d’envoi et réception de données. Tout cela doit toutefois être géré afin que les informations soient stockées et manipulées correctement. C’est le rôle des contrôleurs USB de veiller à ce que tout ce qui se passe lors de l’utilisation d’un support se déroule bien. Il est entre autres le cerveau derrière les performances des clés USB.
Les contrôleurs USB : c’est quoi ?
Avant tout, un contrôleur USB est un matériel, qui plus est l’un des plus importants parmi les composants d’une clé USB. Il se présente sous la forme d’un petit microcontrôleur (c’est une sorte de puce électronique) dans lequel on retrouve divers mini-circuits.
Le rôle principal d’un contrôleur USB est de servir d’interface entre l’hôte et la clé USB. C’est à travers lui que le bus USB transmet les informations vers l’un ou l’autre. Il permet aussi de faire transiter les données vers le composant qui va se servir de ces dernières, soit pour de la lecture ou de l’écriture.
Un contrôleur possède aussi une partie logicielle, soit le driver qui doit être installé afin que chacun puisse se reconnaître. Ce driver sert notamment à interpréter les commandes envoyées lors d’une transaction.
Les types de contrôleurs USB
On peut catégoriser les contrôleurs en deux grandes parties : les contrôleurs USB hôtes et les contrôleurs USB de périphérique.
Les contrôleurs hôtes USB
Les contrôleurs hôtes sont les types de contrôleurs USB que l’on retrouve principalement sur les ordinateurs. Ils sont présents sur la plupart des PC, sinon, un emplacement prévu à cet effet est disponible sur la carte mère. C’est donc un élément matériel qui se connecte avec la mémoire et le processeur de l’ordinateur, mais aussi avec les contrôleurs des périphériques connectés à ce dernier.
Un seul contrôleur hôte suffit pour relier plusieurs périphériques à l’ordinateur. Ainsi, il peut ne pas être utile d’installer plusieurs pilotes pour que l’hôte puisse reconnaître la clé USB ou les autres périphériques. De la même manière, on peut utiliser le même port et le même contrôleur hôte pour de nombreux périphériques.
Sur un protocole USB, c’est l’hôte, donc le contrôleur hôte, qui initie les transactions, quelles qu’elles soient. C’est à lui de déterminer la manière dont chaque périphérique est alimenté et dont chaque information est traitée.
Il existe plusieurs types de contrôleurs hôte, mais celui que l’on retrouve majoritairement dans les clés USB est des contrôleurs de type SCSI. Il en va de même pour les interfaces de contrôleurs USB. On retrouve par exemple les interfaces OHCI, UHCI, EHCI ou encore xHCI.
Les contrôleurs de périphérique USB
Les contrôleurs USB de périphériques sont, quant à eux, les contrôleurs que l’on retrouve à l’intérieur même du périphérique, donc de la clé USB. Il sert de passerelle entre la mémoire flash et l’hôte, ou plus précisément le contrôleur hôte.
C’est lui qui traite les informations et demandes envoyées par le contrôleur hôte avant que les données soient écrites, lues ou effacées sur la mémoire flash. Les contrôleurs USB de périphérique ne communiquent qu’avec le contrôleur hôte et le circuit interne de la clé.
La plupart du temps, les fabricants de clés USB fournissent le driver que l’on installe sur le PC pour que la communication entre les deux contrôleurs puisse se faire. Dans le cas contraire, il est possible de retrouver sur le net des pilotes compatibles avec divers périphériques.
Côté matériel, on retrouve une petite quantité de RAM et de ROM à l’intérieur de ce contrôleur USB (on se base surtout sur celui d’une clé USB).
Une RAM est un type de mémoire volatile sur laquelle on effectue les tâches immédiates, de par leur rapidité de traitement. Par contre, ce dernier ne stocke pas les informations une fois le périphérique, à savoir la clé USB, connectée.
Une ROM, contrairement à la RAM, est une mémoire non volatile sur laquelle on peut donc stocker des données, même si la clé n’est pas alimentée.
À noter que parfois, un appareil est doté d’un contrôleur pouvant à la fois être l’hôte et le périphérique. C’est par exemple le cas d’un smartphone qui peut par exemple traiter les données et parfois ne faire que recevoir les instructions venant du PC.