Electronique > Réalisations > USB - Identifiants VID et PID

Dernière mise à jour : 02/04/2023

Identification unique d'un périphérique USB

Afin d'éviter tout conflit entre divers périphériques USB utilisées simultanément sur une même machine, la norme USB (usb.org) impose que chaque périphériques USB possède un numéro d'identification de vendeur (VENDOR_ID) et un numéro d'identification de produit (PRODUCT_ID) unique. 

Deux périphériques identiques (par exemple deux souris du même fabricant et de même modèle) peuvent être utilisés en même temps sur une machine s'ils possèdent le même numéro d'identification de vendeur (VENDOR_ID) et le même numéro d'identification de produit (PRODUCT_ID). En revanche, deux produits différents (par exemple deux souris du même fabricant mais de modèles différents) ne doivent pas posséder le même numéro d'identification de produit (PRODUCT_ID).

   

Coût d'une licence USB

L'enregistrement d'un numéro d'identification de vendeur (VENDOR_ID) auprès de l'organisme usb.org est payant, il nécessite d'être adhérent à l'USB-IF (USB Implementers Forum). A l'écriture de ces lignes (mars 2023) le coût annuel de la licence est d'environ 5000 €.

Pour pouvoir apposer le logo USB à un produit, il faut que ce dernier ait été approuvé par l'USB-IF. Une fois approuvé (compliance testing), le coût de la licence est d'environ 3500 € pour deux ans.

https://www.usb.org/getting-vendor-id

Sans licence, il est strictement interdit d'utiliser un numéro d'identification de vendeur (VENDOR_ID) dans ses propres développements, qu'il s'agisse d'un numéro déjà assigné à un organisme ou qu'il s'agisse d'un numéro libre (pas encore assigné).

On comprend bien la rigueur dont on doit faire preuve pour que les différents périphériques USB du commerce cohabitent en bonne intelligence. Mais Il est évident que le coût de ces licences est prohibitif pour le particulier qui veut simplement expérimenter. On peut en outre considérer que l'utilisation d'un numéro non licencié à son nom est à la limite tolérable tant qu'on reste chez nous et qu'on ne distribue pas le fruit de son travail. Dans ce cas de figure en effet, on ne risque pas de compromettre le bon fonctionnement des ordinateurs de la planète, seul notre installation est susceptible de connaître d'éventuels désagréments.

En résumé, vous devez payer une licence USB annuelle si vous voulez exploiter à large échelle un périphérique USB de votre cru.

Heureusement, pour un usage "amateur" et en acceptant certaines limitations dans l'usage de votre périphérique USB, vous pouvez obtenir gratuitement un numéro d'identification, voir ci-après. 

   

Identifiants VIP et PID gratuits ou à bas coût

Il existe plusieurs solutions pour obtenir un identifiant PID (PRODUCT_ID) gratuit ou à coût modéré. 

La première solution consiste à utiliser un identifiant de vendeur "inactivé", telle que VID = 0x1209, avec un PID attribué sur demande (attention, cette solution s'adresse uniquement aux produits OpenSource) :

PIDcodes Github - PIDcodes Hackaday 

La seconde solution consiste à faire une demande d'attribution d'un PID à un fabricant qui le propose, tel que ceux listés ci-après :

Notez que si vous demandez un numéro PID à NXP, vous ne pourrez l'utiliser qu'avec des produits basés sur un système NXP, ce qui est bien compréhensible...

   

En ce qui concerne mes réalisations...

Certains montages proposés sur mon site sonelec-musique.com font usage d'une liaison USB, comme par exemple mon interface USB 007.

   

Avant d'utiliser les montages possédant une liaison USB que je propose sur mon site et limiter les risques de conflits logiciels avec d'autres interfaces USB, merci de prendre connaissance du texte qui suit.

   

Pour mes premières interfaces USB, j'ai utilisé des identifiants VID et PID arbitraires, ce qui bien sûr n'est pas bien même si ces derniers n'ont pas posé de problème de conflit (dans le cas contraire, je n'aurais pas publié les logiciels en question !). Les choses sont plus claires désormais, voici les numéros de VID et PID officiellement attribués à mes réalisations :

Réalisation Officiel VID PID Remarque
Interface USB 001 check_nok - - Montage d'initiation décrit dans mon livre PIC et MikroPascal
Interface USB 002 check_nok - - Montage d'initiation décrit dans mon livre PIC et MikroPascal
Interface USB 003 check_ok 0x04D8 (Microchip) 0xE68B Montage pouvant être déployé sans risque de conflit
Interface USB 004 check_ok 0x04D8 (Microchip) 0xE68A Montage pouvant être déployé sans risque de conflit
Interface USB 005 - - - Demande Pro, VID et PID à la charge du demandeur
Interface USB 006 - - - Projet abandonné - sans objet
Interface USB 007 check_ok 0x04D8 (Microchip) 0xE68C Montage pouvant être déployé sans risque de conflit
   

Pour ce qui est de mes autres réalisations mettant en oeuvre un convertisseur USB/RS232, pas de soucis, les identifiants sont ceux du fabricant (FTDI, Prolific ou autres).