USB Map

USB-Ports und angeschlossene Geräte kartieren

USBMap ist eine Funktion von SerialTool, die grundlegende Informationen über USB-Host-Controller, USB-Hubs und angeschlossene USB-Geräte auflistet.

Es holt auch Informationen aus dem System-Register und über USB-Anfragen an die Geräte selbst. Das Hauptfenster von USBMap ist in zwei Bereiche unterteilt: Der linke Bereich zeigt eine verbindungsorientierte Baumansicht, die es ermöglicht, ein beliebiges USB-Gerät auszuwählen; der rechte Bereich zeigt die USB-Datenstrukturen des ausgewählten USB-Geräts.
Diese Strukturen umfassen Geräte-, Konfigurations-, Schnittstellen- und Endpunktbeschreibungen sowie die aktuelle Gerätekonfiguration.

USBMap ist kompatibel mit Windows, macOS und Linux und eignet sich hervorragend, um zu sehen, welche USB-Geräte an die verschiedenen Anschlüsse des PCs angeschlossen sind. Es ermöglicht die Unterscheidung zwischen Host Controller Interface (USB, Firewire), USB-Hub, externe USB-Hubs, allgemeine Geräte und serielle Anschlüsse. In Bezug auf serielle Anschlüsse zeigt USBMap auch an, welcher Anschluss oder welche Anschlüsse für einen bestimmten USB-Adapter verfügbar sind – besonders nützlich, wenn ein einzelnes USB-Serial-Gerät mehrere serielle Anschlüsse erstellen kann, die ansonsten schwer zu identifizieren wären.

Die detaillierten Informationen, die USBMap bietet, sind für Entwickler und Techniker von großem Nutzen, da sie eine genaue Analyse der Eigenschaften der angeschlossenen USB-Geräte ermöglichen. Der Detailgrad der Informationen kann je nach Betriebssystem variieren, aber USBMap bietet stets eine umfassende und präzise Analyse der Geräte.

Ein einzigartiges Merkmal von USBMap ist, dass diese Funktion, die normalerweise nur Entwicklern in den verschiedenen Betriebssystemen zur Verfügung steht, in SerialTool integriert ist, ohne dass zusätzliche Pakete oder Tools installiert werden müssen. Dies bietet einen direkten und unkomplizierten Zugang.

Die angezeigten Informationen können direkt in die Zwischenablage kopiert und die USB-Port-Karte im ASCII-Format exportiert werden, um die Analyseergebnisse einfach zu teilen und zu dokumentieren.

Hinweis 1: USBMap zeigt angeschlossene USB-Geräte und nicht virtuelle serielle Anschlüsse, falls vorhanden.
Hinweis 2: Einige Funktionen dieses Tools sind möglicherweise in der kostenlosen Version von SerialTool eingeschränkt. Holen Sie sich jetzt die PRO-Version von SerialTool!



USBMap - Scan der angeschlossenen USB-Ports

Beispiel für einen USB-Seriell-Adapter mit mehreren seriellen Anschlüssen.

Hier ist ein Beispiel für einen USB-Seriell-Adapter CH 347 von Nanjing Qinherg Electronics Co., der zwei serielle Anschlüsse über eine einzige USB-Verbindung erstellt.

Screenshot of USBMap displaying detailed information about a USB device

USBMap - Details des USB-Seriell-Adapters mit mehreren seriellen Anschlüssen


[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

Struktur der von Windows bereitgestellten Informationen

Details zu den seriellen Anschlüssen:

Der USB-Port (Port12) wird verwendet, um das Gerät als USB-Composite-Gerät zu verwalten, was bedeutet, dass er mehrere Schnittstellen hat und verschiedene Kommunikationskanäle verwalten kann.
Jeder vom Gerät erstellte virtuelle serielle Anschluss hat eine eigene Bezeichnung:

- COM9 mit dem Namen "USB-HiSpeed-SERIAL-B CH347"
- COM10 mit dem Namen "USB-HiSpeed-SERIAL-A CH347"

Jeder serielle Anschluss hat:

einen Friendly Name, der es ermöglicht, den Port im System zu identifizieren.
einen Positionspfad (Location Path), der anzeigt, wo sich die physische Verbindung des Geräts befindet.
einen Treiber-Schlüssel und eine Geräte-ID, die einzigartige Informationen über das Gerät darstellen und dem Betriebssystem helfen, den Gerätetyp und den benötigten Treiber richtig zu erkennen.

Verbindung und Übertragungsart:

Dieses Gerät unterstützt USB 1.1 und USB 2.0, ist jedoch nicht kompatibel mit USB 3.0. Dies ist im Abschnitt "Unterstützte Protokolle" aufgeführt. Jeder Port verwendet sowohl Bulk-Endpoints (für große Datenmengen) als auch Interrupt-Endpoints (für schnellere und beständige Signale), was eine effiziente Übertragung von seriellen Daten ermöglicht.

Gerätebeschreibungen:

Der Abschnitt der Beschreibungen liefert Details zum Typ des USB-Geräts, seinen Funktionsklassen (z. B. Kommunikation (CDC Control - USB-Kommunikationsgeräteklasse) ) für Kommunikationsgeräte und zur Organisation der Schnittstellen. Es wird auch die vollständige Konfigurationsbeschreibung angezeigt, einschließlich Informationen wie der maximalen Leistungsaufnahme des Geräts (200 mA in diesem Fall) und den Werten, die den verschiedenen Schnittstellen und Endpunkten zugeordnet sind.

Fähigkeit zur Erstellung mehrerer serieller Anschlüsse:

Dieses Gerät kann mehrere serielle Anschlüsse über eine einzige physische USB-Verbindung erstellen. Dies ist besonders nützlich, wenn Sie ein Gerät mit mehreren seriellen Kanälen haben, z. B. für eine Multi-Interface-Steuerung oder für Geräte, die mehrere Kommunikationsverbindungen benötigen.

Nützlichkeit in USBMap:

Mit USBMap können Sie für jeden erstellten Port detaillierte Informationen anzeigen, wodurch Sie jeden virtuellen seriellen Anschluss leicht mit dem physischen Gerät verknüpfen können, das ihn bereitstellt. Dies ist besonders nützlich, um verschiedene Konverter und serielle Ports in komplexen Systemen zu unterscheiden. USBMap ermöglicht es auch, zu überprüfen, welcher Port (oder welche Ports) mit jedem Gerät verbunden ist und diese Informationen für Dokumentations- oder Diagnosezwecke zu exportieren.

Dieses Beispiel zeigt, wie ein USB-Serial-Konverter mit mehreren Ports mehrere Verbindungen über einen einzigen USB-Port verwalten kann. Mit Tools wie USBMap können Sie einen detaillierten und umfassenden Einblick in die Verbindungen erhalten, was die Überwachung, Konfiguration und Fehlerbehebung bei USB-Serial-Verbindungen erleichtert. Dies ist ein großer Vorteil für Entwickler, Techniker und Systemintegratoren, die mit komplexen Kommunikationsgeräten arbeiten.