Fingir un puerto serie RS232

82

Estoy desarrollando un proyecto que tiene varios sensores de hardware que se conectan a la máquina de implementación a través de puertos seriales RS232.

Pero ... estoy desarrollando en una máquina sin puertos seriales RS232 físicos, pero me gustaría hacer puertos seriales falsos a los que pueda conectarme y sacar datos con el objetivo de falsificar la entrada de sensores de hardware.

¿Alguien conoce alguna forma de crear un puerto serie falso y controlarlo en Windows XP?

Teorema apropiado
fuente
2
¿Ha probado máquinas virtuales con puertos serie instalados?
Restuta
4
No lo he probado. Parece que debe ser una respuesta completa en lugar de un comentario :)
BefittingTheorem
1
Pude usar com0com y Com Port Serial Emulator en Windows 7 de 64 bits sin problemas, funcionó muy bien.
JWiley
para aquellos que terminan aquí, he escrito una breve instrucción para com0com aquí
Foad

Respuestas:

68

Si está desarrollando para Windows, el proyecto com0com podría ser lo que está buscando.

Proporciona pares de puertos COM virtuales que están vinculados mediante una conexión de módem nulo. A continuación, puede utilizar su aplicación de terminal favorita o lo que desee para enviar datos a un puerto COM y recibir desde el otro.

EDITAR:

Como señaló Thomas , el proyecto carece de un controlador firmado, lo que es especialmente problemático en ciertas versiones de Windows (por ejemplo, Windows 7 x64).

Hay un par de versiones de com0com no oficiales que contienen un controlador firmado. Se puede descargar una versión reciente (3.0.0.0), por ejemplo, desde aquí .

Frank Bollack
fuente
4
Aunque el com0comproyecto es un excelente proyecto de código abierto, ya que debería instalar el controlador del dispositivo sin firma digital, algunos sistemas Windows que verifican el controlador firmado digitalmente no funcionarán con su puerto serie virtual. Solo quiero que la gente sepa.
Tae-Sung Shin
5
@Thomas: Buscar en la red revela que hay algunas versiones no oficiales firmadas del controlador. Puede descargar una versión reciente (3.0.0.0) desde aquí .
Frank Bollack
¡Muchas gracias, te mereces una cerveza!
Pale Ale
¿Cómo se hace esto realmente? ¿Cuáles son los conceptos básicos de Windows?
Nacht
@Nacht Cada conductor hace alguna abstracción, incluso si hay un puerto serie real "conectado" a ellos. Esto significa que si escribe controlador, notará que no tiene que comunicarse con lo real. De lo que puede usar el búfer de transmisión como desee. En este caso virtual, en lugar de enviar un flujo a algo real, envía datos a otro "puerto". Ese puerto es un par con el primero. Todo parece reflejar el flujo de datos. Espero que ahora esté claro.
MrHIDEn
63

Sé que esta es una publicación antigua, pero en caso de que alguien más responda a esta pregunta, una buena opción es Virtual Serial Port Emulator (VSPE) de Eterlogic.Proporciona una API para crear dispositivos de comportamiento virtual en modo kernel, es decir, conectores, mapeadores, divisores, etc. .
sin embargo , algunas de las capacidades anunciadas eran realmente no capacidades en absoluto .

EDITAR
Una elección mucho mejor , Eltima . Este producto está completamente horneado. Buen soporte técnico para desarrolladores. El producto hizo todo lo que pretendía hacer. Las opciones de productos incluyen tanto aplicaciones de escritorio como kits de desarrollo de software con API.

Ninguno de estos productos es de código abierto o gratuito. Sin embargo, como han señalado otras publicaciones aquí, hay otras opciones. Aquí hay una lista de varias utilidades en serie:

com0com (actual)
com0com - Con controlador firmado (versión anterior)
Otro lugar más para com0com con controlador firmado (Blog de Pete)
Tactical Software
Termite
COM Port Serial Emulator
Kermit (obsoleto, pero aún descargable)
HWVSP3
HHD Software (edición gratuita)

Ryyker
fuente
34

Yo uso com0com - Con controlador firmado , en Windows 7 x64 para emular COM3 Y COM4 como un par.

Luego utilizo COM Dataport Emulator para recibir de COM4.

Luego abro COM3 con la aplicación que estoy desarrollando (c #) y envío datos a COM3.

Los datos enviados a través de COM3 son recibidos por COM4 y mostrados por 'COM Dataport Emulator' que también puede enviar una respuesta (no automatizada).

Así que con estos 2 grandes programas logré emular la comunicación serial RS-232.

Espero eso ayude.

Ambos programas son gratis !!!!!

Jhollman Cutcsa
fuente
1
Fantástico. Esto me ha ayudado, eso es seguro. ¿Conoce alguna forma en la que pueda hacer que el emulador de datos de puerto COM espere mi entrada y luego la envíe de vuelta?
bunggo
3

Otra alternativa, aunque el OP no la solicitó:

Existen adaptadores de usb a serie. Dependiendo del tipo de adaptador, es posible que también necesite un cable de módem nulo.

Son extremadamente fáciles de usar en Linux, también funcionan en Windows, si tiene instalados controladores que funcionen.

De esa manera, puede trabajar directamente con los sensores y no tiene que intentar emular datos. De esa manera, tal vez incluso se salve de la construcción de un sistema anémico. (Debido a que sus entradas de datos emuladas no cubren todos los casos, lo que lo lleva a un sistema frágil).

A menudo es mejor trabajar con cosas reales.

sjas
fuente
¿Es posible tener un nombre para un adaptador de USB a serie de software? :) Gracias
alcor
1
screen /dev/ttyUSB0 9600o utilícelo minicomsi necesita software para dicho hardware.
sjas
3

Siempre existe la ruta del hardware. Compre dos convertidores de USB a serie y conéctelos a través de un módem NULL.

Consejos profesionales: 1) Windows puede asignar nuevos puertos COM a los adaptadores después de cada dispositivo en reposo o reinicio. 2) Los líderes del mercado en chips para USB a serie son Prolific y FTDI. Ambas compañías están luchando contra las imitaciones y es posible que se bloqueen en futuros controladores oficiales de Windows. Sin embargo, los controladores de Linux funcionan bien con los clones.

Bryce
fuente
3
Tenga en cuenta que los adaptadores de serie USB tienen un comportamiento de agrupación / sincronización diferente de los UART tradicionales. Sin embargo, probar con uno no es una mala idea si existe alguna posibilidad de que se use uno. Cuando se hicieron populares por primera vez, los protocolos mal diseñados o implementados a veces se rompían o se ralentizaban cuando se usaban con uno. Hoy en día es menos probable que algo salga por la puerta sin haber sido probado con un UART conectado a USB en desarrollo; de hecho, probarse en un UART tradicional en una PC es lo que ahora es poco probable.
Chris Stratton
1

Usé eltima make virtual serial port para el trabajo de depuración de mi aplicación modbus. Es una aplicación realmente muy buena en la etapa de desarrollo para verificar el programa del puerto serie sin conectar el hardware.

Nileshkumar koladiya
fuente