Virtuele COM-poort (VCP)
Aanmaken van paren van virtuele COM-poorten (VCP)
Video-tutorial beschikbaar
Een video-tutorial is beschikbaar via deze link.
SerialTool - VCP (Virtual COM Port)
De afbeeldingen op deze pagina kunnen afwijken van nieuwere versies van SerialTool.Dankzij de implementatie van een krachtige kernel-driver is het mogelijk om paren van virtuele COM-poorten te maken – en meer dan dat: SerialTool biedt kant-en-klare hulpprogramma’s zoals COM Splitter, COM Sniffer en COM to Network.
Sinds versie 2.2.0 kunnen Windows-gebruikers met de functie Virtual COM Port snel, flexibel en betrouwbaar paren van virtuele COM-poorten aanmaken.
Deze functie (met enkele beperkingen in de GRATIS versie) is ideaal voor wie experimenteert met embedded toepassingen of moet samenwerken met legacy-apparaten waarvan de software niet langer wordt onderhouden.
Dankzij de implementatie van een krachtige kernel-driver is het mogelijk virtuele COM-poortparen te creëren, en bovendien biedt SerialTool gebruiksklare hulpprogramma’s zoals COM Splitter, COM Sniffer en COM to Network.
Wat is een virtuele COM-poort onder Windows?
Een virtuele COM-poort (VCP) is een software-interface die het gedrag van een klassieke RS-232 seriële poort emuleert, zodat applicaties met elkaar of met gesimuleerde apparaten kunnen communiceren zonder fysieke hardware. Onder Windows worden deze poorten door het besturingssysteem gezien als echte COM-poorten, waardoor ze compatibel zijn met software die seriële verbindingen vereist.
De virtuele COM-poort bootst een null-modem verbinding na, die je ook fysiek kunt simuleren door de TX- en RX-lijnen van een seriële poort (bijvoorbeeld COM10) te kruisen met die van een andere seriële poort (bijvoorbeeld COM11). Wanneer TX van COM10 is verbonden met RX van COM11 en omgekeerd, wordt alles wat door de ene poort wordt verzonden door de andere ontvangen. Daarom spreekt men over een COM-poortpaar.
Virtuele COM-poorten verwijzen altijd naar een paar dat intern in het besturingssysteem door een kernel-driver wordt aangemaakt en virtueel met elkaar wordt verbonden.
Een virtuele COM-poort wordt vaak gebruikt in onder andere amateur-radio (HAM)-opstellingen, GPS-signaalsplitters, debugging van embedded systemen of prototyping met Arduino. In sommige gevallen kan oudere software, die alleen met vaste COM-poorten of niet-ondersteunde baudrates werkt, op moderne systemen blijven functioneren dankzij virtuele COM-poorten.
Voordelen van virtuele COM-poorten
Enkele voordelen van virtuele COM-poorten:
- Ontwikkeling en testen: Ideaal voor ontwikkelaars die seriële communicatie tussen apparaten willen simuleren tijdens ontwikkel- en debugfasen.
- Integratie van legacy-apparatuur: Maakt het mogelijk om software voor traditionele seriële poorten te gebruiken op moderne hardware zonder fysieke seriële poorten.
- Netwerkcommunicatie: Laat seriële data over TCP/IP-netwerken lopen en doorbreekt zo de fysieke beperkingen van seriële verbindingen.
Beheer van virtuele COM-poorten
Virtual COM Port Manager
Via het menu Virtual COM Port Manager kun je virtuele COM-poorten beheren.
- Add Pair: Een nieuw paar virtuele COM-poorten toevoegen.
- Remove all Pairs: Alle virtuele COM-poorten in één keer verwijderen.
- Disable all Pairs en Enable all Pairs: Alle virtuele COM-poorten uitschakelen of inschakelen. De poorten blijven geïnstalleerd maar zijn tijdelijk niet beschikbaar.
Elk paar virtuele COM-poorten kan worden geconfigureerd door de logische signaalverbindingen te wijzigen met de knop Change.
Configuratie van virtuele COM-poorten
Hier zie je hoe het configuratiemenu voor virtuele COM-poorten eruitziet.
Virtual COM Port Configuration
In dit configuratiescherm kun je het nummer van elke COM-poort wijzigen ten opzichte van de oorspronkelijke waarde. Zo kan COM10 bijvoorbeeld worden hernoemd naar COM21 of een andere waarde die door het OS is toegestaan, zolang deze nog niet in gebruik is — zie de officiële documentatie van Microsoft.
Je kunt ook het logische gedrag van de signalen van de virtuele COM-poort aanpassen.
Standaard is de configuratie een klassieke null-modem-verbinding, waarbij rode signalen (DTR en RTS) uitgangen zijn en groene signalen (DSR, DCD, CTS en RI) ingangen.
Ingangssignalen kunnen slechts met één uitgangssignaal worden verbonden, terwijl een uitgangssignaal met meerdere ingangen kan worden gekoppeld.
Ingangssignalen kunnen logisch worden geïnverteerd door dubbel op hun vakje te klikken. Er verschijnt dan een “!” aan het begin van de signaalnaam om aan te geven dat het signaal logisch wordt geïnverteerd ten opzichte van de uitgang.
TX- en RX-signalen worden, hoewel niet weergegeven of aanpasbaar, altijd gekruist tussen de poorten.
Hieronder volgen meer specifieke beschrijvingen van de COM-poortsignalen:
In een null-modemconfiguratie wordt DTR vaak met DCD verbonden zodat het apparaat een carrier detect kan simuleren en kan aangeven dat de lijn “actief” is.
RTS/CTS – Request To Send / Clear To Send
Dit signaalpaar implementeert een hardware-flowcontrolprotocol:
- RTS (Request To Send): Wordt door de DTE gestuurd om toestemming te vragen om data te verzenden.
- CTS (Clear To Send): Wordt door de DCE gestuurd om de verzending toe te staan.
Dit signaal geeft aan de terminal aan: “Er is een echte verbinding met een ander apparaat gedetecteerd.”
In null-modemconfiguraties wordt DCD vaak gesimuleerd door het met DTR of andere signalen te verbinden om de carrier detect te forceren.
DSR is min of meer symmetrisch aan DTR en geeft aan dat het communicatietoestel actief en klaar voor gebruik is.
Dit signaal geeft aan dat de telefoon, die aan de modem is gekoppeld, overgaat. Bij een inkomende oproep wordt het tijdelijk geactiveerd (typisch op –15V).
Bij echte modems is het met de telefoonlijn verbonden; in null-modemconfiguraties blijft dit signaal vaak onbezet, omdat het niet relevant is.
Voor standaard testscenario’s wordt aangeraden de standaardconfiguratie van de signaalverbindingen niet te wijzigen, tenzij dit echt nodig is of je precies weet wat de gevolgen zijn.