Crear puerto COM virtual: solución de software de Eltima


Los puertos seriales virtuales son esenciales cuando los programas de software heredados necesitan conectarse a dispositivos de puerto COM que no pueden conectarse a la computadora con el software debido a la falta de puertos seriales físicos. El dispositivo también puede enviar datos en serie a la aplicación a través de Internet o LAN a través de una conexión TCP/IP, sin importar cuán remotos estén unos de otros.

En este artículo, encontrará un breve tutorial de emulador de puerto serie virtual que le dirá cómo crear interfaces seriales virtuales en su computadora con la ayuda de un software controlador de puerto virtual simple pero eficiente. Y espero que la información proporcionada en este artículo lo coloque por delante de las formas más tradicionales de prueba y depuración de aplicaciones en serie.

Tabla de contenido:

  1. FAQ
  2. ¿Cómo crear un puerto serie virtual?
  3. Usando VSPD con lenguajes de programación
  4. Sobre el puerto COM y la comunicación serial
  5. ¿Para qué se utiliza un puerto COM virtual?
  6. Conclusión

Virtual COM Port Driver de Eltima Software le permite crear un número ilimitado de pares de puertos serie conectados por un cable de módem virtual nulo.
VSPD logo

Virtual Serial Port Driver

Crear pares de puertos COM virtuales en Windows
5 Ranking basado en 86+ usuarios, Comentario(97)
Descargar Prueba totalmente funcional por 14 días
Virtual Serial Port Driver


Para aclarar lo que estamos describiendo en el artículo, lea la sección de preguntas frecuentes.

Preguntas frecuentes

Una comunicación en serie significa que los bits de datos se organizan en un orden específico y se transportan a través de un cable en serie uno tras otro, lo que garantiza la integridad de los datos. Algunas otras ventajas de este tipo de conexión incluyen cableado simple y transmisión de datos confiable sobre conexiones de larga distancia.
Para crear un puerto serie virtual en Windows 10, necesita una solución de software profesional Virtual Serial Port Driver. No requiere hardware ni cables adicionales. Para crear un puerto serie virtual, lea las instrucciones paso a paso a continuación.
Un puerto serie virtual es un paquete de software que emula completamente los reales. Por lo tanto, su sistema operativo y todas las utilidades lo reconocen e interactúan con él como si fuera una interfaz COM real.
A menudo sucede que cuando se trabaja, el usuario se enfrenta al problema de la falta física de un puerto de comunicaciones. Entonces, una gran ventaja de las interfaces seriales virtuales es que pueden usarse para probar y depurar software cuando no hay un puerto COM físico disponible en el sistema.
1. El software conecta los puertos seriales virtuales con un cable virtual de módem nulo para que los puertos COM se puedan usar para comunicar datos entre diferentes aplicaciones a través de la interfaz RS232. Configurados para este propósito, los puertos virtuales no usan la configuración predeterminada de la velocidad de transferencia de datos.

2. Gracias a un simulador de puerto serie, es posible intercambiar datos entre dos o más aplicaciones sin utilizar la compleja tecnología de software de comunicación entre procesos y uso compartido de recursos. De esa forma, para proporcionar intercambio de datos, un programador se basa en puertos COM virtuales en lugar de físicos. Como regla general, la velocidad de transferencia de datos a través de puertos COM virtuales es mayor en comparación con la transmisión de datos a través de puertos seriales reales.

3. Además, una ventaja importante de las interfaces seriales virtuales es que pueden usarse para probar y depurar software cuando no hay un puerto COM físico disponible en el sistema.

¿Cómo crear un puerto serie virtual y usarlo?


La mayoría de las computadoras ya no tienen conectores DB9 que solían conectarlos directamente a hardware industrial o comercial, sin embargo, ahora puede crear un puerto COM virtual y usarlo para transmitir datos a través de la red. El puerto COM virtual ayuda a ahorrar tiempo y reducir los gastos mediante el uso de software heredado no modificado.

Entonces, si se pregunta cómo crear un puerto serie virtual y usarlo a cualquier distancia, use la aplicación Virtual Serial Port Driver app to create virtual serial port pairs connected via virtual null-modem cable. para crear pares de puertos serie virtuales conectados a través de un cable de módem nulo virtual. Si está buscando una solución para agregar un puerto COM en Windows 10, nuestro tutorial lo ayudará a resolver los problemas del puerto COM de Windows 10 con dos métodos.

Crear puerto serie virtual ahora
Prueba gratuita de 14 días

Para crear un par de puertos serie virtuales, siga los pasos:

  1. Abra la ventana principal de la aplicación y vaya a la pestaña "Administrar puertos". blank
  2. Elija los puertos de la lista o ingrese sus nombres manualmente. Con los nombres, tiene opciones ilimitadas para nombrar sus puertos según sus preferencias. Sin embargo, esté atento a las aplicaciones que pueden no admitir nombres personalizados para puertos. Para las sesiones RDP, es conveniente utilizar la opción "Crear puertos solo para esta sesión de usuario" para que la próxima sesión le permita los mismos nombres. Virtual Serial Port Emulator
  3. Haga clic en el botón "Agregar par" y tendrá los puertos COM virtuales listos para usar. blank
  4. Repita los pasos anteriores tantas veces como sea necesario para crear un número requerido de puertos. blank

Las ventajas de Virtual Serial Port de Eltima


  • Con un Virtual Serial Port Driver, podrá agregar una cantidad ilimitada de pares de puertos COM virtuales vinculados a través de un cable de módem nulo virtual. Además, el software ofrece una forma de eliminar todos los pares creados con un solo clic.

  • Una vez creados y configurados, los puertos seriales virtuales se volverán a crear automáticamente al reiniciar el sistema antes del inicio de sesión del usuario. Además, no necesitará cerrar puertos si necesita cambiar la configuración de un par virtual o eliminar un par por completo.

  • La aplicación hace posible no solo crear puertos COM virtuales sino también darles los nombres deseados, incluidos los que ya utilizan los puertos físicos existentes. Los usuarios podrán encontrar fácilmente una interfaz virtual requerida en el grupo "Puertos" del Administrador de dispositivos.

  • Los controladores de software han superado con éxito las pruebas de Laboratorios de calidad de hardware de Microsoft Windows (WHQL) y están firmados digitalmente por Microsoft. Esto significa que no recibirá advertencias al crear puertos COM virtuales en Windows 10, Windows Server 16, Windows XP, etc.

  • Virtual Serial Port Driver es totalmente compatible con líneas de señal de hardware estándar, incluidas DTR / DSR / CTS / RTS / DCD / RI, etc. y control de flujo de software (Xon / Xoff).

  • La emulación de módem nulo es otra ventaja que obtienes con esta utilidad. Virtual Serial Port Driver permite emular una conexión de línea serie virtual y su interrupción. Además, el software ofrece varios esquemas virtuales de módem nulo, que se pueden guardar como una plantilla.

  • Además de eso, Virtual Serial Port Driver viene con vspdctl.dll, que le permite controlar su funcionalidad directamente desde su propia aplicación. Al usar esta biblioteca de enlaces dinámicos, podrá crear y eliminar pares de puertos COM virtuales sobre la marcha, sin necesidad de confiar en la utilidad de configuración estándar y su GUI.

Usando VSPD con lenguajes de programación


★ VSPD con C/C++

Para usar la funcionalidad del emulador de puerto virtual en C y C++, es necesario cargar dinámicamente el archivo DLL, seleccionar las funciones requeridas y llamarlas. Aquí hay un ejemplo de cómo puede hacer esto en Visual C++:

También puede ver un gran ejemplo de cómo programar un puerto COM virtual usando Visual Basic y Visual C ++ para la comunicación entre AVR y PC usando Virtual Serial Port Driver.

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);

Ejemplo de código:

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;
};

★ VSPD con Visual Basic

La instalación de funciones VSPD es mucho más fácil para los usuarios de Visual Basic. Todo lo que necesita hacer es pegar las siguientes líneas en el archivo fuente 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

Coloque VSPDCTL.DLL en el directorio de su programa. Ahora la función se puede llamar directamente.


★ VSPD con Delphi

Aquí están las declaraciones de funciones para 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 puede cargar ArmAccess de forma dinámica o estática. Aquí hay un código de muestra para la carga dinámica:

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;

Sobre el puerto COM y la comunicación serial


La comunicación en serie hace aproximadamente una década, fue una de las formas más populares de conectar varios equipos y dispositivos a una computadora. Hoy, sin embargo, el puerto COM no es tan común como lo era antes. Pero a pesar de que un buen puerto de comunicaciones antiguo ha sido reemplazado en cierta medida por una interfaz USB, miles de dispositivos industriales modernos, instrumentos de laboratorio, equipos médicos, etc., todavía usan RS-232 como puerto de entrada / salida estándar.


Al mismo tiempo, a pesar de los muchos beneficios que ofrecen los puertos serie, las nuevas PC dejaron de enviarse con una interfaz RS-232. Esto causa grandes inconvenientes cuando se trata de probar y depurar software basado en serie, usando aplicaciones seriales heredadas, etc.

¿Para qué se utiliza un puerto COM virtual?


Debido a la falta física del puerto serie, la mejor opción posible será crear un puerto serie virtual que emule completamente la configuración y la configuración de un puerto COM verdadero y comunique datos con otras interfaces virtuales o reales a través de un cable virtual de módem nulo.

Una de las ventajas innegables de los puertos COM virtuales sigue siendo la velocidad de intercambio de datos. Cuando los datos se transmiten a través de un puerto virtual, la velocidad no está limitada por las características de la interfaz (como sucede con los puertos físicos), sino solo por los parámetros del sistema. Como resultado, el tráfico se transporta significativamente más rápido.

Conclusión


El método de prueba y diagnóstico de software que usa dispositivos virtuales hoy en día ha sido ampliamente aceptado por los desarrolladores del software para sistemas de comunicación. Un dispositivo virtual simula el comportamiento de uno real a nivel de software, lo que permite a un programador probar y depurar una aplicación en la etapa de desarrollo.

El método de emulación de puerto serie se aplica ampliamente en el desarrollo de los sistemas de comunicación más complejos, incluidos los dispositivos con interfaces RS232 y RS485. Actualmente, existe una amplia gama de herramientas de software que permiten crear múltiples puertos serie virtuales en los sistemas operativos (predominantemente el sistema operativo Windows).

Con la ayuda de puertos COM virtuales adicionales, los desarrolladores pueden probar el intercambio de datos entre las interfaces RS232 y RS485. Cuando se trata de funcionalidad avanzada y facilidad de uso, Virtual Serial Port Emulator parece ser el programa más poderoso disponible en la actualidad. La solución es totalmente compatible con varias versiones del sistema operativo Windows. Por encima de eso, el emulador de puerto serie para Windows 10 está firmado digitalmente con WHQL, lo que garantiza su rendimiento y estabilidad.

small logo Virtual Serial Port Driver
#1 en Software de Puerto Serie
Virtual Serial Port Driver
Emula completamente puerto serie real
5 ranking basado en 86+ usuarios
Obtenga un enlace de descarga para su escritorio
¡Registre su dirección de email para obtener un enlace de descarga rápida en su escritorio y empezar!
o