USB-Serial-COM-Port verschwindet: Re-Enumeration, Treiberbindung, Port-Nummern und CDC-Bridges debuggen

So troubleshooten Sie verschwindende USB-Serial-COM-Ports, sich ändernde Nummern, Re-Enumeration, CDC-ACM-Bridge-Resets, Treiberbindungs-Fehler und Apps mit stale Handles.

USB-Serial-COM-Port-verschwindet, COM-Port-fehlt, CDC-ACM, USB-Serial-Bridge, Re-Enumeration, Treiberbindung, USB-Diagnose

USB-Serial-Devices sind überall: "Arduino-Boards, industrielle Controller, Modems, GPS-Empfänger, Test-Fixtures, Debug-Probes, PLC-Tools, Barcode-Devices und Custom-CDC-ACM-Firmware. Wenn der COM-Port verschwindet, suchen Nutzer nach "USB serial COM port disappears", "COM port missing Device Manager", "USB serial re-enumerates", "CDC ACM device disconnects" und "COM port changes after reconnect", weil die App meist nur sagt, sie könne den Port nicht öffnen." Bus Scope hilft, weil ein fehlender COM-Port durch sehr unterschiedliche Layer verursacht sein kann: "USB-Enumeration, Deskriptor-Probleme, Treiberbindung, Device-Reset, stale App-Handle, Line-Coding-Request-Fehler oder Windows, das eine neue COM-Nummer zuweist."

COM-Port ist nicht das USB-Device

Der COM-Port ist eine OS-Abstraktion, die erstellt wird, nachdem das USB-Device enumeriert und der Serial-Treiber gebunden hat. Enumeriert das USB-Device nie, kann kein COM-Port erscheinen. Enumeriert das USB-Device, aber das CDC-Interface scheitert, kann der COM-Port trotzdem fehlen.

Trennen Sie die Layer:

  • Ist das USB-Device angehängt?
  • Wurden Deskriptoren korrekt gelesen?
  • Wurde die Konfiguration abgeschlossen?
  • Sind CDC-Interfaces erschienen?
  • Hat der Treiber gebunden?
  • Hat das OS einen COM-Port zugewiesen?
  • Öffnet die App den korrekten aktuellen Port?

Re-Enumeration ändert Port-Nummern

Windows kann eine neue COM-Nummer zuweisen, wenn ein Device mit anderer Serial-Number, anderem USB-Pfad, anderer VID/PID oder anderer Interface-Identität erscheint. Ein Device, das in den Bootloader-Mode resettet, kann einen anderen COM-Port oder gar keinen COM-Port exponieren.

Symptome:

  • Device war COM8, jetzt COM11.
  • App merkt sich alten COM-Port.
  • Anstecken an anderen USB-Port ändert Zuweisung.
  • Bootloader nutzt anderen Port.
  • Device erscheint nach Firmware-Update als unknown.

Der Bus-Trace identifiziert, ob sich die Device-Identität geändert hat.

CDC-ACM-Control-Requests

CDC-Serial-Devices empfangen oft Klassen-Requests:

  • SET_LINE_CODING
  • GET_LINE_CODING
  • SET_CONTROL_LINE_STATE
  • SEND_BREAK

Stallt oder mishandelt die Firmware diese, kann der Port sich öffnen, aber Daten fließen nie, oder die Treiberbindung kann scheitern.

Capturen Sie Open-Port-Verhalten, nicht nur Anstecken. Viele Fehler passieren, wenn die App den COM-Port öffnet und der Treiber Line-Coding- oder DTR/RTS-State-Änderungen sendet.

Stale App-Handles

Manchmal re-enumeriert USB korrekt, aber die App hält einen alten Handle oder eine gecachte COM-Port-Liste. Der Bus zeigt, dass das neue Device vorhanden ist. Die App scheitert trotzdem, weil sie den Port nicht freigegeben oder refreshed hat.

Das ist kein USB-Bus-Fehler. Es ist App-/Device-Management-Verhalten.

Debug-Checkliste

Nutzen Sie diesen Workflow:

  1. Ab Anstecken capturen.
  2. Device- und Configuration-Deskriptor bestätigen.
  3. CDC-Interface-Deskriptoren inspizieren.
  4. App-Öffnung des COM-Ports capturen.
  5. CDC-Klassen-Requests inspizieren.
  6. Auf Reset oder Disconnect nach Line-Coding prüfen.
  7. Device-Identität vor und nach Reconnect vergleichen.
  8. Prüfen, ob sich die COM-Nummer geändert hat.
  9. Prüfen, ob die App einen stale Port-Namen nutzt.
  10. USB-Evidence und OS-Port-Zuweisungs-Notizen bewahren.

Enddiagnose

Ein verschwindender USB-Serial-COM-Port kann Enumeration-Fehler, CDC-Deskriptor-Fehler, Treiberbindungs-Fehler, Re-Enumeration mit neuer Identität, Line-Coding-Request-Fehler, Reset unter Last oder stale App-State sein.

Bus Scope hilft, indem es die USB-Seite der Geschichte zeigt, sodass COM-Port-Symptome an Attach, Deskriptoren, CDC-Requests, Resets und tatsächliche Device-Identität gebunden werden können.