J’ai déjà eu l’occasion de parler de normes qui ont disparu pour des raisons techniques (DMI) ou politique (LsAPI), ou bien de normes qui, tirées vers le bas pour conserver leur rétrocompatibilité n’ont jamais su évoluer (SMTP ou SNMP).

Certaines normes se sont tout de même imposées pour devenir des standards universels reconnus. C’est le cas de l’Ethernet sous la forme RJ45, du wifi pour les réseaux ou bien encore de l’USB pour la connectique bas débit.  

Dans cet article je m’attarderai sur ce qui a fait le succès de l’USB.  

 

Le besoin 

On a toujours eu besoin d’attacher des équipements à un ordinateur, les ports séries ou parallèles en sont les ancêtres, mais leur conception a très vite montré ses limites.

L’un comme l’autre était lent et physiquement gros. Leur paramétrage et leur pilotage depuis un logiciel était complexe, puisqu’il fallait deviner les caractéristiques de l’équipement que l’on s’apprêtait à utiliser. 

Une première norme s’est imposée au début des années 90 : la connectique mini-DIN ou plus précisément ps/2 pour les ordinateurs. Cette norme avait remplacé le connecteur DIN, mais était en fait sans rapport avec l’organisme de normalisation allemand DIN.

Dédiée aux claviers et souris, elle était relativement lente et ne laissait pas de liberté au concepteur de l’équipement. Accessoirement le connecteur physique était fragile, complexe à brancher et ne supportait pas l’ajout ou le retrait à chaud. 

Ainsi donc au milieu des années 90, l’on était toujours à la recherche d’une norme de connectique souple et évolutive. 

 

Comment construire une norme qui marche ? 

Pour cela il faut un organisme de normalisation, en l’espèce le consortium USB : USB.ORG, qui définisse les éléments nécessaires, mais pas plus. 

Dans un schéma de connexion, il y a 3 parties : 

  • Le périphérique 
  • Le système de connexion qui inclut le dispositif physique, son contrôleur et le protocole de gestion 
  • Le logiciel qui pilote le périphérique 

La norme porte donc sur le système de connexion, les deux autres étant issus de la même source autant laisser les constructeurs gérer le problème.  

Le système de connexion doit bien sûr traiter la physique du connecteur, le partage éventuel du système entre plusieurs périphériques et le moyen d’associer l’équipement à son logiciel de pilotage.

 

La physique du connecteur

Le premier point fort de l’USB fut de trouver un connecteur qui ne laissait que peu de place à l’erreur de manipulation : un connecteur plat (USB-A) donc avec uniquement 2 positions possibles. 

Le connecteur était robuste (tellement d’ailleurs qu’on ne compte plus le nombre de prises HDMI détruites par l’introduction d’un connecteur USB).  

Le connecteur actuel (USB-C) résout ce problème par la symétrie du matériel et ajoute aussi la symétrie de l’alimentation. Tout cela permet non seulement d‘alimenter le périphérique, mais aussi à l’inverse d’alimenter l’ordinateur avec le périphérique (un bloc d’alimentation secteur) et d’éviter un connecteur spécifique.  

Il est donc désormais le connecteur universel que l’on trouve sur les portables et les smartphones. Il s’est donc depuis peu imposé en Europe même au constructeur Apple au détriment de sa technologie Lightning et du connecteur spécifique de celle-ci.  

 

Le protocole de connexion

Vous vous rappelez sans doute du « Plug&Play » de Windows 95. Ce concept amusant consistait à brancher un périphérique pour déclencher le chargement de tous les pilotes connus par Windows en espérant que l’un d’entre eux reconnaitrait son périphérique.  

Autant dire qu’il fut rapidement renommé « plug and pray » tellement la probabilité de ne rien trouver, voire de tout planter, était élevée.  

Le consortium USB a résolu ce problème en attribuant un ID unique aux constructeurs leur donnant la possibilité de définir jusqu’à 65535 ID de périphériques chacun.  

Moralité, quand un périphérique est branché, la norme lui impose de communiquer ces informations au système qui trouve alors instantanément le pilote fourni par le constructeur pour ce périphérique spécifique (ou au pire ne trouve rien). 

Chaque périphérique branché sur un port USB se voit attribuer un numéro d’ordre et peut éventuellement lui-même être aussi fournisseur de port (un Hub USB) et mettre à disposition de nouveaux ports.  

En théorie donc on peut atteindre 127 périphériques, mais en pratique une dizaine seront suffisants et techniquement raisonnables. 

Côté vitesse, le protocole USB a aussi pris soin de croître en débit (version 1 : 1.5Mb/s, 2 :  50Mb/s et pour les dernières versions 3 :  5Gb/s) tout en conservant la possibilité de fonctionner avec les périphériques des générations précédentes. 

l’USB mérite bien son U pour Universal  !!

Une prochaine fois je vous parlerai d’un autre consortium de normalisation, le VESA qui n’a pas forcément été aussi clairvoyant dans ses choix.  

 

Ces articles pourraient vous intéresser :

Les normes déchues

Les normes déchues : LsAPI

Normes logicielles : progrès, frein ou lobbying ?

 

Olivier Piochaud, PDG d’Apsynet

 

Newsletter

Categories: Développement & Web