USB Map

Cartographier les ports USB et les appareils connectés

USBMap est une fonction de SerialTool qui répertorie les informations de base sur les contrôleurs hôtes USB, les concentrateurs USB et les périphériques USB connectés.

Elle interroge également des informations sur les appareils du registre système et via des requêtes USB aux appareils eux-mêmes. La fenêtre principale de USBMap est divisée en deux panneaux : le panneau de gauche affiche une vue en arborescence orientée vers la connexion, permettant de sélectionner tout périphérique USB ; le panneau de droite affiche les structures de données USB relatives au périphérique USB sélectionné.
Ces structures incluent les descripteurs de dispositif, de configuration, d'interface et d'endpoint, ainsi que la configuration actuelle de l'appareil.

USBMap est compatible avec Windows, macOS et Linux, et il est très utile pour visualiser les périphériques USB connectés aux différents ports du PC. Il permet de distinguer entre Interface de Contrôleur Hôte (USB, Firewire), Concentrateur USB, Concentrateurs USB Externes, périphériques génériques et Ports Série. En ce qui concerne les ports série, USBMap montre également quels ports série sont disponibles pour un adaptateur USB spécifique, un aspect particulièrement utile lorsqu'un seul périphérique USB-série peut créer plusieurs ports série, qui seraient autrement difficiles à identifier.

Les informations détaillées fournies par USBMap sont essentielles pour les développeurs et les techniciens, leur permettant d'analyser les caractéristiques spécifiques des périphériques USB connectés. Le niveau de détail des informations peut varier selon le système d'exploitation, mais USBMap garantit toujours une analyse exhaustive et précise des appareils.

Un aspect distinctif de USBMap est que cette fonctionnalité, généralement réservée aux développeurs dans divers systèmes d'exploitation, est intégrée dans SerialTool sans besoin d'installer de paquets ou d'outils supplémentaires, offrant un accès direct et simplifié.

Les informations affichées peuvent être copiées directement dans le presse-papiers et la carte des ports USB peut être exportée au format ASCII, facilitant le partage et la documentation de l'analyse réalisée.

Note 1 : USBMap affiche les périphériques USB connectés et non les ports série virtuels s'ils sont présents.
Note 2 : Certaines fonctionnalités de cet utilitaire peuvent être limitées dans la version GRATUITE de SerialTool. Obtenez la version PRO de SerialTool dès maintenant !



USBMap - Analyse des ports USB connectés

Exemple de convertisseur USB Série avec ports série multiples.

Voici un exemple de convertisseur USB Série CH 347, fabriqué par Nanjing Qinherg Electronics Co., qui crée deux ports série dans une seule connexion USB.

USBMap - Détails du Convertisseur USB Série avec ports série multiples


[Port12] : USB Composite Device
Type: Serial Port
[Multiple Serial Port 1]Serial Port Number: COM9
[Multiple Serial Port 1]Device Description: USB-HiSpeed-SERIAL-B CH347
[Multiple Serial Port 1]Friendly Name: USB-HiSpeed-SERIAL-B CH347 (COM9)
[Multiple Serial Port 1]Manufacturer: wch.cn
[Multiple Serial Port 1]Location Path: PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(12)#USBMI(2)
[Multiple Serial Port 1]USB Parent: USB\VID_1A86&PID_55DA\0123456789
[Multiple Serial Port 1]Driver Key: {4d36e978-e325-11ce-bfc1-08002be10318}\0011
[Multiple Serial Port 1]Hardware ID: USB\VID_1A86&PID_55DA&REV_0441&MI_02
Type: Serial Port
[Multiple Serial Port 2]Serial Port Number: COM10
[Multiple Serial Port 2]Device Description: USB-HiSpeed-SERIAL-A CH347
[Multiple Serial Port 2]Friendly Name: USB-HiSpeed-SERIAL-A CH347 (COM10)
[Multiple Serial Port 2]Manufacturer: wch.cn
[Multiple Serial Port 2]Location Path: PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(12)#USBMI(0)
[Multiple Serial Port 2]USB Parent: USB\VID_1A86&PID_55DA\0123456789
[Multiple Serial Port 2]Driver Key: {4d36e978-e325-11ce-bfc1-08002be10318}\0012
[Multiple Serial Port 2]Hardware ID: USB\VID_1A86&PID_55DA&REV_0441&MI_00

Is Port User Connectable: yes
Is Port Debug Capable: no
Companion Port Number: 22
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&3783c1a5&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
USB 1.1: yes
USB 2.0: yes
USB 3.0: no

---===>Device Information<===---
English product name: "USB Dual_Serial"

ConnectionStatus:
Current Config Value: 0x01
-> Device Bus Speed: High
(is not SuperSpeed or higher capable)
Device Address: 0x29
Open Pipes: 6

===>Device Descriptor<===
bLength: 0x12
bDescriptorType: 0x01
bcdUSB: 0x0200
bDeviceClass: 0xEF
-> This is a Multi-interface Function Code Device
bDeviceSubClass: 0x02
-> This is the Common Class Sub Class
bDeviceProtocol: 0x01
-> This is the Interface Association Descriptor protocol
bMaxPacketSize0: 0x40
= (64) Bytes
idVendor: 0x1A86
= Nanjing Qinherg Electronics Co., Ltd.
idProduct: 0x55DA
bcdDevice: 0x0441
iManufacturer: 0x01
English (United States) "wch.cn"
iProduct: 0x02
English (United States) "USB Dual_Serial"
iSerialNumber: 0x03
English (United States) "0123456789"
bNumConfigurations: 0x01

---===>Open Pipes<===---

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x81
-> Direction: IN - EndpointID: 1
bmAttributes: 0x03
-> Interrupt Transfer Type
wMaxPacketSize: 0x0040
= 1 transactions per microframe, 0x40 max bytes
bInterval: 0x01

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x02
-> Direction: OUT - EndpointID: 2
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x82
-> Direction: IN - EndpointID: 2
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x83
-> Direction: IN - EndpointID: 3
bmAttributes: 0x03
-> Interrupt Transfer Type
wMaxPacketSize: 0x0040
= 1 transactions per microframe, 0x40 max bytes
bInterval: 0x01

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x04
-> Direction: OUT - EndpointID: 4
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x84
-> Direction: IN - EndpointID: 4
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

---===>Full Configuration Descriptor<===---

===>Configuration Descriptor<===
bLength: 0x09
bDescriptorType: 0x02
wTotalLength: 0x008D
-> Validated
bNumInterfaces: 0x04
bConfigurationValue: 0x01
iConfiguration: 0x00
bmAttributes: 0x80
-> Bus Powered
MaxPower: 0x64
= 200 mA

===>IAD Descriptor<===
bLength: 0x08
bDescriptorType: 0x0B
bFirstInterface: 0x00
bInterfaceCount: 0x02
bFunctionClass: 0x02
-> This is Communications (CDC Control) USB Device Interface Class
bFunctionSubClass: 0x02
bFunctionProtocol: 0x01
iFunction: 0x00

===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x01
bInterfaceClass: 0x02
-> This is Communications (CDC Control) USB Device Interface Class
bInterfaceSubClass: 0x02
bInterfaceProtocol: 0x01
iInterface: 0x00
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x05
bDescriptorType: 0x24
05
24
00
10
01
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x05
bDescriptorType: 0x24
05
24
01
00
01
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x04
bDescriptorType: 0x24
04
24
02
02
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x05
bDescriptorType: 0x24
05
24
06
00
01

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x81
-> Direction: IN - EndpointID: 1
bmAttributes: 0x03
-> Interrupt Transfer Type
wMaxPacketSize: 0x0040
= 1 transactions per microframe, 0x40 max bytes
bInterval: 0x01

===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x01
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x0A
-> This is a CDC Data USB Device Interface Class
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x02
-> Direction: OUT - EndpointID: 2
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x82
-> Direction: IN - EndpointID: 2
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>IAD Descriptor<===
bLength: 0x08
bDescriptorType: 0x0B
bFirstInterface: 0x02
bInterfaceCount: 0x02
bFunctionClass: 0x02
-> This is Communications (CDC Control) USB Device Interface Class
bFunctionSubClass: 0x02
bFunctionProtocol: 0x01
iFunction: 0x00

===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x02
bAlternateSetting: 0x00
bNumEndpoints: 0x01
bInterfaceClass: 0x02
-> This is Communications (CDC Control) USB Device Interface Class
bInterfaceSubClass: 0x02
bInterfaceProtocol: 0x01
iInterface: 0x00
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x05
bDescriptorType: 0x24
05
24
00
10
01
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x05
bDescriptorType: 0x24
05
24
01
00
01
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x04
bDescriptorType: 0x24
04
24
02
02
-> This is a Communications (CDC Control) USB Device Interface Class

===>Descriptor Hex Dump<===
bLength: 0x05
bDescriptorType: 0x24
05
24
06
02
03

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x83
-> Direction: IN - EndpointID: 3
bmAttributes: 0x03
-> Interrupt Transfer Type
wMaxPacketSize: 0x0040
= 1 transactions per microframe, 0x40 max bytes
bInterval: 0x01

===>Interface Descriptor<===
bLength: 0x09
bDescriptorType: 0x04
bInterfaceNumber: 0x03
bAlternateSetting: 0x00
bNumEndpoints: 0x02
bInterfaceClass: 0x0A
-> This is a CDC Data USB Device Interface Class
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x04
-> Direction: OUT - EndpointID: 4
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

===>Endpoint Descriptor<===
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x84
-> Direction: IN - EndpointID: 4
bmAttributes: 0x02
-> Bulk Transfer Type
wMaxPacketSize: 0x0200
= 0x200 max bytes
bInterval: 0x00

Structure des informations fournies par Windows

Détails des Ports Série :

Le port USB (Port12) est utilisé pour gérer le périphérique comme un périphérique composite USB, ce qui signifie qu'il a plusieurs interfaces et peut gérer divers canaux de communication.
Chaque port série virtuel créé par le périphérique a sa propre désignation :

- COM9 avec le nom "USB-HiSpeed-SERIAL-B CH347"
- COM10 avec le nom "USB-HiSpeed-SERIAL-A CH347"

Chaque port série a :

un Nom Amical qui permet d'identifier le port dans le système.
un Chemin de Localisation (Location Path) qui indique où se trouve physiquement la connexion du périphérique.
une Clé de Pilote et ID de Matériel, qui sont des informations uniques du périphérique et aident le système d'exploitation à identifier correctement le type de matériel et le pilote requis.

Connexion et Type de Transfert :

Ce périphérique prend en charge USB 1.1 et USB 2.0, mais n'est pas compatible avec USB 3.0. Cela est spécifié dans la section "Protocoles Prise en Charge". Chaque port utilise à la fois des endpoints de type Bulk (pour de grandes quantités de données) et Interrupt (pour des signaux plus rapides et constants) pour le transfert de données, ce qui permet une transmission efficace des données série.

Descripteurs de Périphérique :

La section des descripteurs fournit des détails sur le type de périphérique USB, ses classes de fonction (par exemple, Communications (Contrôle CDC - Classe de périphérique de communication USB) ) pour les périphériques de communication et l'organisation des interfaces. La description complète de la configuration est également affichée, incluant des informations comme la puissance maximale requise par le périphérique (200 mA dans ce cas) et les valeurs associées aux diverses interfaces et endpoints.

Capacité de Créer Plusieurs Ports Série :

Ce périphérique a la capacité de créer plusieurs ports série à l'aide d'une seule connexion physique USB. Cela est particulièrement utile lorsqu'on dispose d'un appareil avec plusieurs canaux série, comme dans le cas d'une interface de contrôle multiple ou pour les équipements nécessitant plusieurs connexions de communication.

Utilité dans USBMap :

Avec USBMap, il est possible d'afficher des informations précises pour chaque port créé, en associant facilement chaque port série virtuel au périphérique physique qui le fournit. Cela est particulièrement utile pour distinguer les différents convertisseurs et ports série dans des systèmes complexes. USBMap permet également de vérifier quel port (ou quels ports) est associé à chaque périphérique et d'exporter ces informations pour la documentation ou le diagnostic.

Cet exemple démontre comment un convertisseur USB-série multi-port peut gérer plusieurs connexions via un seul port USB. Avec l'aide d'outils comme USBMap, on peut obtenir une vue détaillée et approfondie des connexions, facilitant le suivi, la configuration et le dépannage des connexions USB-série. C'est un grand avantage pour les développeurs, les techniciens et les intégrateurs de systèmes qui travaillent avec des dispositifs de communication complexes.