Créer un port COM virtuel - solution logicielle de Eltima


Les ports série virtuels sont essentiels lorsque les logiciels existants doivent se connecter à des périphériques port COM qui ne peuvent pas être connectés à l'ordinateur avec le logiciel en raison de l'absence de ports série physiques. L'appareil peut également envoyer des données série à l'application via Internet ou via un réseau local via une connexion TCP/IP, quelle que soit leur distance.

Dans cet article, vous trouverez un bref didacticiel sur l'émulateur de port série virtuel qui vous expliquera comment créer des interfaces série virtuelles sur votre ordinateur à l'aide d'un logiciel de pilote de port virtuel simple mais efficace. Et j'espère que les informations fournies dans cet article vous permettront de devancer les formes plus traditionnelles de test et de débogage d'applications en série.

Contenu


  1. À propos du port COM et de la communication série
  2. A quoi sert un port COM virtuel?
  3. Comment créer un port série virtuel?
  4. Comment utiliser les ports COM virtuels pour tester et diagnostiquer?
  5. Utiliser VSPD avec les langages de programmation

Virtual COM Port Driver par Eltima Software vous permet de créer un nombre illimité de paires de ports série connectés par un câble null modem virtuel.
VSPD logo

Virtual Serial Port Driver

Créer des paires de ports COM virtuels sous Windows
5 Classement basé sur 86+ utilisateurs, Revue(97)
Télécharger 14-jours d’essai entièrement fonctionnel
Virtual Serial Port Driver

À propos du port COM et de la communication série


Qu'est-ce qu'une communication série? Si vous me l'aviez demandé il y a une dizaine d'années, je dirais que c'est l'un des moyens les plus populaires de connecter divers équipements et périphériques à un ordinateur. Aujourd'hui, cependant, le port COM n'est plus aussi répandu qu'avant. Cependant, même si un bon vieux port de communication a été remplacé dans une certaine mesure par une interface USB, des milliers d'appareils industriels modernes, d'instruments de laboratoire, d'équipements médicaux, etc.

Une communication série signifie que les bits de données sont organisés dans un ordre spécifique et sont transportés via un câble série les uns après les autres, ce qui garantit l'intégrité des données. Parmi les autres avantages de ce type de connexion, citons le câblage simple et la transmission fiable des données sur des connexions longue distance.

Parallèlement, malgré les nombreux avantages offerts par les ports série, les nouveaux PC ont cessé de fonctionner avec une interface RS-232. Cela cause de gros inconvénients quand il s’agit de test et débogage de logiciels en série, utiliser des applications série héritées, etc.

A quoi sert un port COM virtuel?


Lors du test ou du débogage de leurs applications en série ou de leurs pilotes, les développeurs peuvent être confrontés à un défi lorsque le périphérique ou le programme attend la connexion à un port COM, mais cela ne semble pas possible en raison du manque physique de ports série disponibles sur l'ordinateur.

La meilleure option, dans ce cas, sera de créer un port série virtuel émulant complètement la configuration et les paramètres d’un véritable port COM et de communiquer des données avec d’autres interfaces virtuelles ou réelles via câble null-modem virtuel.

L'un des avantages indéniables des ports COM virtuels reste la vitesse d'échange des données. Lorsque les données sont transmises via un port virtuel, la vitesse n'est pas limitée par les caractéristiques de l'interface (comme c'est le cas avec les ports physiques), mais uniquement par les paramètres système. En conséquence, le trafic est considérablement accéléré.

Comment créer un port série virtuel et l'utiliser?


La plupart des ordinateurs ne disposent plus de connecteurs DB9 permettant de les connecter directement à du matériel industriel ou commercial. Toutefois, vous pouvez désormais créer un port COM virtuel et l'utiliser pour transmettre des données via le réseau. Le port COM virtuel permet de gagner du temps et de réduire les dépenses en utilisant un logiciel hérité non modifié.

Donc, si vous vous demandez comment créer un port série virtuel et l'utiliser à n'importe quelle distance, utilisez l'application Pilote de port série virtuel pour créer des paires de ports série virtuels connectés via un câble null modem virtuel. Si vous recherchez une solution pour ajouter un port COM dans Windows 10, notre tutoriel vous aidera à résoudre les problèmes de port COM de Windows 10 à l'aide de deux méthodes.

Virtual Serial Port Driver

Pour créer une paire de ports série virtuels, procédez comme suit:


  1. Ouvrez la fenêtre principale de l'application et accédez à l'onglet «Gérer les ports».

  2. Choisissez les ports dans la liste ou entrez leurs noms manuellement. Avec les noms, vous avez des options illimitées pour nommer vos ports selon vos préférences. Cependant, gardez un œil sur les applications qui peuvent ne pas prendre en charge les noms personnalisés pour les ports. Pour les sessions RDP, il est pratique d’utiliser l’option «Créer des ports uniquement pour cette session utilisateur» afin que la session suivante vous autorise à utiliser les mêmes noms.

  3. Cliquez sur le bouton «Ajouter une paire» pour que les ports COM virtuels soient prêts à être utilisés.

  4. Répétez les étapes ci-dessus autant de fois que nécessaire pour créer le nombre de ports requis.

Les avantages dу Virtual Serial Port by d'Eltima


  • Avec un Virtual Serial Port Driver, vous devrez ajouter un nombre illimité de paires de ports COM virtuels reliés par un câble null-modem virtuel. De plus, le logiciel donne la possibilité de supprimer toutes les paires créées en un clic.

  • Une fois créés et configurés, les ports série virtuels sont automatiquement recréés lors du redémarrage du système avant la connexion de l'utilisateur. De plus, vous n’avez pas besoin de fermer les ports si vous devez modifier les paramètres de la paire virtuelle ou supprimer complètement une paire.

  • L'application permet non seulement de créer des ports COM virtuels, mais également de leur attribuer les noms souhaités, y compris ceux déjà utilisés par les ports physiques existants. Les utilisateurs pourront facilement trouver une interface virtuelle requise dans le groupe "Ports" du Gestionnaire de périphériques.

  • Les pilotes du logiciel ont passé avec succès les tests WHQL (Microsoft Windows Hardware Quality Labs) et sont signés numériquement par Microsoft. Cela signifie que vous ne recevrez aucun avertissement lors de la création de ports COM virtuels sous Windows 10, Windows Server 16, Windows XP, etc.

  • Virtual Serial Port Driver prend entièrement en charge les lignes de signaux matériels standard, notamment DTR/DSR/CTS/RTS/DCD/RI, etc. ainsi que le contrôle de flux logiciel (Xon/Xoff).

  • L'émulation de modem nul est un autre avantage de cet utilitaire. Le pilote de port série virtuel permet d'émuler une connexion de ligne série virtuelle et sa rupture. De plus, le logiciel propose divers schémas de null-modem virtuels, qui peuvent être enregistrés en tant que modèle.

  • En plus de cela, le pilote de port série virtuel est livré avec vspdctl.dll, qui vous permet de contrôler ses fonctionnalités directement à partir de votre propre application. En utilisant cette bibliothèque de liens dynamiques, vous pourrez créer et supprimer des paires de ports COM virtuels à la volée, sans avoir à compter sur l'utilitaire de configuration standard et son interface graphique.

Comment utiliser ports série virtuels pour tester et diagnostiquer?


Emulation de port série


La méthode de test et de diagnostic des logiciels utilisant des périphériques virtuels est aujourd'hui largement acceptée par les développeurs des logiciels pour les systèmes de communication. Un périphérique virtuel simule le comportement d'un réel au niveau logiciel, permettant ainsi à un programmeur de tester et de déboguer une application au stade du développement.

La méthode d'émulation de port série est largement appliquée dans le développement des systèmes de communication les plus complexes, y compris les périphériques dotés d'interfaces RS232 et RS485. Il existe actuellement un large éventail d’outils logiciels permettant de créer plusieurs ports série virtuels dans les systèmes d’exploitation (principalement le système d’exploitation Windows). À l'aide de ports COM virtuels supplémentaires, les développeurs peuvent tester l'échange de données entre les interfaces RS232 et RS485. En ce qui concerne les fonctionnalités avancées et la facilité d'utilisation, Virtual Serial Port Emulator semble être le programme le plus puissant disponible à ce jour. La solution est entièrement compatible avec les différentes versions du système d'exploitation Windows. Au-dessus, l'émulateur de port série pour Windows 10 est signé numériquement avec WHQL, ce qui garantit ses performances et sa stabilité.

Principes de base de l'émulation de port série


1. Un avantage majeur des interfaces série virtuelles est qu'elles peuvent être utilisées pour tester et déboguer des logiciels lorsqu'il n'y a pas de port COM physique disponible dans le système.

Par exemple, pour déboguer complètement un programme de communication série, il faut au moins deux ports série physiques. Étant donné que la plupart des ordinateurs modernes sont équipés d’un seul port COM, un programmeur peut avoir besoin de deux ordinateurs ou d’une carte d’extension PCI supplémentaire avec un port série pour déboguer une application.

Un développeur peut également recourir à un émulateur de port série efficace, le pilote de port série virtuel, capable de créer plusieurs ports COM virtuels sur le même ordinateur. Il convient également de mentionner que le développement d’applications de communication n’est pas le seul domaine où le concept de ports virtuels est largement utilisé. Le pilote de port série virtuel 64 bits est considéré comme particulièrement utile pour tester des applications de nombreux autres types.

2. Grâce à un simulateur de port série, il est possible d’échanger des données entre deux applications ou plus sans utiliser la technologie logicielle complexe de la communication interprocessus et du partage des ressources. Ainsi, pour assurer l'échange de données, un programmeur s'appuie sur des ports COM virtuels plutôt que sur des ports physiques. La vitesse de transfert des données entre les applications est donc déterminée par les paramètres du système (type de processeur, quantité de mémoire physique disponible, etc.). ) et non par les caractéristiques d’un port série. En règle générale, la vitesse de transfert des données via les ports COM virtuels est supérieure à celle des données via les ports série réels.

3. Le logiciel connecte les ports série virtuels avec un câble null-modem virtuel afin que les ports COM puissent être utilisés pour communiquer des données entre différentes applications via une interface RS232. Configurés à cette fin, les ports virtuels n'utilisent pas les paramètres par défaut de la vitesse de transfert des données.

Utiliser VSPD avec les langages de programmation


★ VSPD avec C/C++


Pour utiliser la fonctionnalité d’émulateur de port virtuel en C et C++, il est nécessaire de charger dynamiquement le fichier DLL, de sélectionner la ou les fonctions requises et de les appeler. Voici un exemple de la procédure à suivre dans Visual C++:

typedef bool (stdcall *CreatePairFn)(char *Port1, char *Port2);
typedef bool (stdcall *DeletePairFn)(char *Port);
typedef bool (stdcall *DeleteAllFn)(void);
typedef bool (stdcall *SetStrictBaudrateFn) (char *Port, bool StrictBaudrate);
typedef bool (stdcall *SetBreakFn) (char *Port, bool bBreak);
typedef bool (stdcall *QueryBusFn) (void* InBuffer, long sizeInBuffer, void* OutBuffer, long sizeOutBuffer);
typedef bool (stdcall *SetWiringFn) (char *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListFn) (char *Port, void *Buffer, long sizeBuffer);
 
typedef bool (stdcall *CreatePairExFn)(char *Port1, char *Port2, char * UserSession);
typedef bool (stdcall *CreatePairWFn)(WCHAR *Port1, WCHAR *Port2);
typedef bool (stdcall *CreatePairExWFn)(WCHAR *Port1, WCHAR *Port2, WCHAR * UserSession);
typedef bool (stdcall *DeletePairWFn)(WCHAR *Port);
typedef bool (stdcall *SetStrictBaudrateWFn) (WCHAR *Port, bool StrictBaudrate);
typedef bool (stdcall *SetBreakWFn) (WCHAR *Port, bool bBreak);
typedef bool (stdcall *SetWiringWFn) (WCHAR *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListWFn) (WCHAR *Port, void *Buffer, long sizeBuffer);
typedef bool (stdcall *DeletePairExFn)(char *Port, char * UserSession);
typedef bool (stdcall *DeletePairExWFn)(WCHAR *Port, WCHAR * UserSession);
 
typedef bool (stdcall *GetUserSessionFn)(char *Session, int &iSize);
typedef bool (stdcall *GetUserSessionWFn)(WCHAR *Session, int &iSize);
 
typedef bool (stdcall *SetStrictBaudrateExWFn) (WCHAR *Port, WCHAR * UserSession, bool StrictBaudrate);
typedef bool (stdcall *SetStrictBaudrateExFn) (char *Port, char * UserSession, bool StrictBaudrate);
typedef bool (stdcall *SetBreakExWFn) (WCHAR *Port, WCHAR * UserSession, bool bBreak);
typedef bool (stdcall *SetBreakExFn) (char *Port, char * UserSession, bool bBreak);
typedef bool (stdcall *SetAccessListExWFn) (WCHAR *Port, WCHAR * WCHAR, void *Buffer, long sizeBuffer);
typedef bool (stdcall *SetAccessListExFn) (char *Port, char * WCHAR, void *Buffer, long sizeBuffer);

bool CreateVSPair(char *Port1, char *Port2) {
OSVERSIONINFO VersionInfo;
HINSTANCE libInst;
libInst = LoadLibrary(VSPDCTL.DLL);
if (!libInst)
   return false; /* Couldn't load library */
/* Substitute the typedefs above for functions other than CreatePairFn */
CreatePairFn CreatePair=(CreatePairFn)GetProcAddress(libInst, CreatePair);
if (CreatePair==0) return false; /* Couldn`t find function */
returnvalue=CreatePair(Port1, Port2); /* For example, Port1 = COM5 and Port2 = COM6 */
FreeLibrary(libInst);
return returnvalue;
};

Vous pouvez également voir un excellent exemple de programmation d'un port COM virtuel à l'aide de Visual Basic et Visual C++ pour communication entre AVR et PC à l'aide du pilote de port série virtuel.


★ VSPD avec Visual Basic


L'installation des fonctions VSPD est beaucoup plus facile pour les utilisateurs de Visual Basic. Tout ce que vous avez à faire est de coller les lignes suivantes dans le fichier source de Visual Basic:

Declare Function CreatePair Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Port2$) As Boolean
Declare Function DeletePair Lib "VSPDCTL.DLL" (ByVal Port$) As Boolean
Declare Function DeleteAll Lib "VSPDCTL.DLL" () As Boolean
Declare Function SetStrictBaudrateName Lib "VSPDCTL.DLL" (ByVal Port$, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function SetStrictBaudrateHandle Lib "VSPDCTL.DLL" (ByVal Handle As Long, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function CreatePair Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Port2$) As Boolean
Declare Function DeletePair Lib "VSPDCTL.DLL" (ByVal Port$) As Boolean
Declare Function DeleteAll Lib "VSPDCTL.DLL" () As Boolean
Declare Function SetStrictBaudrate Lib "VSPDCTL.DLL" (ByVal Port$, ByVal StrictBaudrate As Boolean) As Boolean
Declare Function SetBreak Lib "VSPDCTL.DLL" (ByVal Port$, ByVal bBreak As Boolean) As Boolean
Declare Function QueryBus Lib "VSPDCTL.DLL" (ByVal InBuffer As String, sizeInBuffer As Long, ByVal OutBuffer As String, sizeOutBuffer As Long) As Boolean
Declare Function SetWiring Lib "VSPDCTL.DLL" (ByVal Port1$, ByVal Buffer As String, sizeBuffer As Long) As Boolean

Placez VSPDCTL.DLL dans le répertoire de votre programme. Maintenant, la fonction peut être appelée directement.

★ VSPD avec Delphi


Voici les déclarations de fonctions pour Delphi:

Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeletePair(Port : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeleteAll : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrateName(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrateHandle(hPort: THandle, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeletePair(Port : PChar) : Boolean; stdcall; external "VSPDCTL.DLL";
Function DeleteAll : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetStrictBaudrate(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetBreak (Port: PChar, bBreak: Boolean) : Boolean; stdcall; external "VSPDCTL.DLL";
Function QueryBus (InBuffer: Pointer, sizeInBuffer: Integer, OutBuffer: Pointer, sizeOutBuffer: Integer) : Boolean; stdcall; external "VSPDCTL.DLL";
Function SetWiring (Port: PChar Buffer: Pointer, sizeBuffer: Integer) : Boolean; stdcall; external "VSPDCTL.DLL";

Delphi peut charger ArmAccess de manière dynamique ou statique. Voici un exemple de code pour le chargement dynamique:

Function CreatePairFn(PortName1, PortName2 : String) : Boolean;
Type TCreatePair = function(Port1, Port2 : PChar) : Boolean; stdcall;
Var Handle : THandle;
CreatePair : TCreatePair;
Begin
 CreatePairFn := False;
 Handle := LoadLibrary("VSPDCTL.DLL");
 If (Handle <> 0) Then
  Begin
   @CreatePair:=GetProcAddress(Handle, "CreatePair");
   If (CreatePair <> Nil) Then
    CreatePairFn := CreatePair(PChar(PortName1), PChar(PortName2));
    FreeLibrary(Handle);
  End;
End;

Virtual Serial Port Driver

Requiert: Disponible sur Windows , 5.5MB taille
Version 9.0.575 (le 23 Mai, 2019) Notes de mise à jour
Catégorie: Communication Application