Está en la página 1de 12

1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

DISPOSITIVOS LÓGICOS MICROPROGRAMABLES Puerto serie virtual VSPD y COMPIM de Proteus 1

Índice / Introducción Ampliación de contenidos

Puerto serie virtual VSPD y COMPIM de Proteus


Índice de contenidos
Por terminar

Introducción
El avance de la tecnología informática proporciona cada vez con mas frecuencia herramientas de simulación que agilizan y simplifican los
proyectos electrónicos. Así cuando se desarrolla una aplicación con PIC que hace uso del puerto serie puede ser interesante utilizar un
puerto serie virtual.

Virtual Serial Port Driver (VSPD), de la empresa Eltima www.eltima.com/products/vspdxp, es un software que permite emular múltiples
puertos RS232 (hasta 254 pares), podemos activar 2 puertos virtuales y conectarlos entre si, para hacer uso individualmente y conectar 2
aplicaciones todo en el mismo ordenador.

Proteus dispone de un componente denominado COMPIM que conecta la simulación con un puerto serie físico. Ahora bien, mediante un
par de puertos serie virtuales podemos conectar una simulación realizada con Proteus a una aplicación en el mismo PC como si el circuito
con PIC fuera real y externo al PC y como si la simulación en Proteus estuviese conectada a un puerto serie físico..

Configurar VSPD
La versión 6.0 comprobada en Windows XP SP2.
La versión 6.9 comprobada en Windows 7 64bits.

Una vez instalado, podemos iniciarlo desde el menú de Inicio de Windows en Eltima Software / Virtual Serial Port Driver 6.0 /
Configure Virtual Serial Port Driver.

http://perso.wanadoo.es/pictob/rs232virtual.htm 1/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Para añadir un par de puertos serie virtuales hemos de seguir los siguientes pasos:

Seleccionamos la solapa "Manage ports" de la ventana principal.


En las listas desplegables de First port y Second port seleccionamos el nombre de un par de puertos virtuales, por ejemplo COM4 y
COM5.
Pulsamos el botón "Add pair".
Si todo ha ido bien los nuevos puertos creados aparecerán a la derecha en "Serial Ports Explorer".

Debe quedar así:

En el administrador de dispositivos del sistema (Inicio / Panel de control / Sistema / Hardware / Administrador de dispositivos) deben
también aparecer:

http://perso.wanadoo.es/pictob/rs232virtual.htm 2/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Con esto es suficiente, aunque existen muchas mas posibilidades, que pueden consultarse en la ayuda del programa (en inglés). Podemos
cerrar la ventana de configuración de VSPD.

Para comprobar su funcionamiento vamos a abrir dos instancias de Hyperterminal, una utilizando COM4 y otra COM5 con la misma
configuración del puerto. Las teclas que pulsemos en un terminal aparecerán en el otro:

En Windows XP accedemos a Hyperterminal con el menú Inicio de Windows / Accesorios / Comunicaciones / Hyperterminal.

En Windows Vista y Windows 7 no se ha incorporado Hyperterminal, pero podemos descargarlo de aquí: Hyperterminal.rar

Si aparece un cuadro de diálogo que pregunta si establecer Hyperterminal como programa Telnet predeterminado decir que no.
Si aparece un cuadro de diálogo sobre la ubicación pulsar Cancelar y confirmar la cancelación.

En cualquier caso hay que dar un nombre a la conexión.

http://perso.wanadoo.es/pictob/rs232virtual.htm 3/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Le damos a aceptar y abrimos otra instancia de Hyperterminal que llamaremos PruebaCOM5, que utilice el puerto COM5 y con las
mismas propiedades dadas a COM4.

Lo que escribamos en PruebaCOM5 se envía a PruebaCOM4 y viceversa. Por defecto no esta activo el "eco" en el terminal, es decir la
información que escribimos no aparece en la pantalla de terminal. Esto es así porque la pantalla de terminal muestra la información
enviada desde el equipo remoto, no la información introducida en el equipo local. Para poder ver lo que escribimos podemos establecer el
eco en los dos terminales en Archivo / Propiedades / Configuración / Configuración ASCII / Eco de los caracteres escritos localmente.

http://perso.wanadoo.es/pictob/rs232virtual.htm 4/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Pueden guardarse los archivos de sesión y luego volver a utilizarlo (sin tener que configurar de nuevo Hyperterminal) con Archivo /
Guardar como.... Los archivos se guardan con la extensión .ht.

Ver:

C:\Users\p\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accesorios\Comunicaciones\HyperTerminal

Cableado de patillas entre pares virtuales


La solapa "Custom pinout" permite establecer el cableado de líneas de los pares. Existen configuraciones prediseñadas y además se
pueden crear y guardar nuestras propias configuraciones fácilmente.

Preajustes personalizados:

1. Standard - Cableado de las líneas por defecto.


2. Loopback Mode (Modo de bucle invertido) - El objetivo principal de esta configuración es dejar que el software piense que el
handshaking (protocolo de enlace) está disponible, con un módem nulo que no tiene disposiciones al respecto.
3. Custom - Permite establecer y guardar nuestra propia configuración.

La configuración Standard utiliza un cableado de módem nulo RS232 con protocolo de enlace parcial:

Conector Conector
Función
1 2
CTS28 +
1 7+8 RTS27
DCD11
2 3 RXD12 TXD23
3 2 TXD13 RXD22
4 6 DTR14 DSR26
5 5 Tierra de señal
6 4 DSR16 DTR24
CTS18 +
7+8 1 RTS17
DCD21

Función: SEÑALconector-patilla
http://perso.wanadoo.es/pictob/rs232virtual.htm 5/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

La configuración Loopback Mode utiliza un cableado de módem nulo RS232 con protocolo de enlace de bucle invertido (loop back
handshaking):

Conector Conector
Función
1 2
2 3 RXD12 TXD23
3 2 TXD13 RXD22
5 5 Tierra de señal
DCD11 +
1+4+6 - DTR14
DSR16
DCD21 +
- 1+4+6 DTR24
DSR26
7+8 - RTS17 CTS18
- 7+8 RTS27 CTS28

Función: SEÑALconector-patilla

COMPIM Serial Port Model de Proteus


Introducción

Tradicionalmente, los sistemas de simulación no han tenido relación directa con el mundo físico que les rodea. Esto significa que si
queríamos simular parte de un sistema mucho más grande que las unidades interconectadas entre sí, había que crear simulaciones de las
otros unidades, o bien crear archivos con datos de prueba.

Las capacidades del Sistema Virtual de Modelización de Proteus VSM (Virtual System Modelling) permite la creación de modelos que
realmente puede interactuar con el mundo físico. Estos modelos se denominan Physical Interface Models o PIM, para abreviar.

El modelo de COMPIM:

Es un modelo de interfaz física de un puerto serie. Los datos de entrada serie se almacenan en un buffer y se presentan al circuito
como una señal digital, mientras que los datos digitales serie generados por una CPU o un modelo UART aparecen en el puerto serie
físico del PC.
Puede configurarse la velocidad en baudios y las opciones de handshaking por hardware, software o ambas tanto del aspecto físico
como virtual del dispositivo para que cualquier equipo del mundo real con un puerto serie pueda interactuar con una simulación de
VSM. Por ejemplo, podemos utilizar una simulación VSM para desarrollar un programa para una CPU o microcontrolador que
opere con un modem físico real o con periféricos de un sistema de automatización de seguridad, domótico o industrial.
Alternativamente, un sistema de monitorización funcionando en un PC puede utilizarse para depurar un diseño simulado
funcionando en VSM, para ello puede utilizarse el mismo PC gracias al uso de pares de puertos serie virtuales, como los que
proporciona Virtual Serial Port Driver antes comentado.
También pueden utilizarse algunas entrada-salidas simples. Las líneas CTS, DSR, DCD y RI del puerto serie físico pueden actuar
como rudimentarias entradas digitales de señales externas, tales como interruptores. Por otro lado las líneas RTS y DTR del puerto
serie físico pueden actuar como salidas rudimentarias. Hemos de tener en cuenta que estas señales pueden necesitar además de un
acondicionamiento para las señales físicas, dependiendo de la aplicación y el tipo de puerto.

Diseño del dispositivo COMPIM


COMPIM tiene ocho patillas: TXD, RXD, CTS, RTS, DSR, DTR, DCD y RI.

TXD, RTS y DTR son entradas para el COMPIM y se convierten en salidas en el puerto físico.
RXD, CTS, DSR, DCD y RI son salidas para el COMPIM y se convierten en entradas del puerto físico.

Esto significa que el COMPIM representa en el esquema un DCE (Equipo para la Comunicacion de Datos, como por ejemplo un ratón).
Por el contrario, el modelo VTERM (por ser un terminal) está conectado como un DTE (Equipo Terminal de Datos, por ejemplo un PC).
El puerto COM físico en sí mismo es como un cable DTE (TXD es una salida). Dicho de otra manera, COMPIM representa el conector
DB9 hembra en el circuito diseñado en Proteus que por ejemplo se conectaría al conector macho de un PC a través de un cable null
modem.

http://perso.wanadoo.es/pictob/rs232virtual.htm 6/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus
Para mas información ver la comunicación serie.

Patillaje y señales del conector RS232: Patillaje de COMPIM:


(Carrier
Detect)
Entrada
(Receive
Data)
1.
Entrada
CD
(Transmit
2.
Data)
RXD
Salida
3.
(Data
TXD
terminal
4.
Ready)
DTR
Salida
5.
(Ground)
GND
(Data Set
6.
Ready)
DSR
Entrada
7.
(Request
RTS
To Send)
8.
Salida
CTS
(Clear To
9. RI
Send)
Entrada
(Ring
Indicator)
Entrada

Cuando se inicia una simulación, los terminales del conector DB-9 dentro del símbolo de dispositivo COMPIM indicadores a ser. El TXD
y RXD terminales indicar la actividad en los correspondientes pines del puerto físico. Los indicadores de la CTS, RTS, DSR, DTR, DCD y
RI mostrar el estado de los pines del puerto físico.

Dos indicadores más cuadrados están presentes, a cada lado de la palabra 'ERROR'. Estos indicadores muestran roja cuando se comete un
error detectados en el puerto sea el virtual o el puerto físico. El indicador más cercano a la bandera pins un error en el puerto virtual.

El indicador en el DB-9 terminales de banderas que se produjo un error en el puerto físico. Los errores indicados incluyen el la
elaboración y errores de paridad. La ventana de registro de simulación puede dar más información sobre la naturaleza del error.

Traducción del inglés, por mejorar

El apretón de manos Modos de

Las señales de control de flujo, si está activo, no pasar directamente a través del puerto físico al virtual, o viceversa, en lugar interactuar
con los umbrales de alta y baja en el búfer de datos que se encuentran en COMPIM y el sistema operativo. Esto significa que aunque el
control de flujo puede ser la aceptación o el bloqueo de los datos en uno físico / puerto virtual, el puerto físico virtual / puede no
necesariamente se propagan este estado, a menos que los buffers se estrecha hasta los topes, o en corriente.

Dicho de otra manera, si está habilitado o Intercambio de hardware físico o virtual, el pin de entrada de la RTS COMPIM dejará de tener
ningún efecto directo sobre la línea RTS del puerto COM. Este comportamiento es correcto y por diseño.

Buffering

El modelo de COMPIM proporciona amortiguación para los datos entrantes y salientes. Además de abarcar la situación en la que el VSM
simulación de no mantener con el tiempo real, la memoria intermedia de entrada de obras, incluso cuando la simulación está en pausa.
Esta característica se puede ser muy útil, ya que las herramientas de depuración VSM puede ser utilizado para un solo paso de la
transformación de los datos mucho después de la dispositivo de hardware físico conectado al puerto COM realmente transmitida.

El búfer de salida es más importante donde la velocidad de transmisión en el circuito virtual supera al que se utiliza para comunicarse con
el el dispositivo físico.

http://perso.wanadoo.es/pictob/rs232virtual.htm 7/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Virtual Stop Bits a 2

flow por defecto a no

Propiedades

El modelo de COMPIM apoya las siguientes propiedades:

Nombre de la propiedad Default Descripción


Físico P_PORT puerto COM1 Especifica el dispositivo de serie físico del modelo consiste en conectarse.
Física Baud Rate P_BAUDRATE 9600 especifica la velocidad en baudios del puerto físico debe ser fijado en. Los límites para

Estos son los 50-1000000 baudios, aunque el hardware puede poner límites adicionales a los valores permitidos.

Bits de datos físicos P_DATABITS 8 Especifica el número de bits de datos utilizadas en el puerto físico. 7 y 8 de datos de bits están
actualmente soportados.

Físico paridad P_PARITY NINGUNA Especifica la paridad utilizada en el puerto físico. Esto no puede ser, par, impar, MARK y espacio.

Físico Stop Bits P_STOPBITS 1 Especifica el número de bits de parada utilizado en el puerto físico. 1 y 2, parada bits están actualmente
soportados.

Física XON / XOFF control de flujo P_SOFTFLOW 0 Especifica si XON / OFF control de flujo se va a utilizar en la física puerto serie.

Física RTS / CTS de control de flujo P_HARDFLOW 0 Especifica si el hardware RTS / CTS de control de flujo apretón de manos se va a
utilizar en el puerto serie físico.
Física P_XONCHAR carácter XON 17 Especifica el carácter XON utilizado en la interfaz física.
Física P_XOFFCHAR carácter XOFF 19 Especifica el carácter XOFF utilizados en la interfaz física.
Virtual V_BAUDRATE 9600 Baud Rate Especifica la velocidad en baudios del puerto virtual. Los límites de este valor se 50-1000000
baudios.
Virtual Data Bits V_DATABITS 8 Especifica el número de bits de datos en el puerto virtual. 7 y 8 bits de datos son actualmente
soportados.
La paridad virtual V_PARITY NINGUNA Especifica la paridad utilizada en el puerto serie virtual. Este valor no puede ser, ODD,
INCLUSO, Mark y SPACE.
Virtual Stop Bits V_STOPBITS 1 Especifica el número de bits de parada en el puerto serie virtual. 1 y 2, parada bits están actualmente
soportados.
Virtual XON / XOFF control de flujo V_SOFTSLOW 0 Especifica si XON / XOFF control de flujo se utiliza en la serie virtual puerto.
Virtual RTS / CTS de control de flujo V_HARDFLOW 0 Especifica que el hardware RTS / CTS apretón de manos se va a utilizar en el
puerto virtual.
Virtual XON carácter V_XONCHAR 17 Especifica el carácter XON utiliza la interfaz virtual.
Virtual V_XOFFCHAR carácter XOFF 19 Especifica el carácter XOFF utilizados en la interfaz virtual,
Tamaño de búfer de datos de entrada INPUT_BUFFER_SIZE 65536 Indica el límite superior para el tamaño de la entrada en serie de
amortiguamiento, de la interfaz física a la interfaz virtual, en bytes. El mínimo es 1, el máximo de 4.194.304.

http://perso.wanadoo.es/pictob/rs232virtual.htm 8/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus
Tamaño de búfer de datos de salida OUTPUT_BUFFER_SIZE 65536 Indica el límite superior para el tamaño de la salida serial de
amortiguamiento, desde la interfaz virtual a la interfaz física, en bytes. El mínimo es 1, el máximo de 4.194.304.

Notas adicionales

Un problema conocido con Windows 95/98/ME comportamiento de puerto de serie de la API causas funcionamiento incorrecto indicador
de llamada. Esto parece manifestarse como indicador de llamada de la línea de cómo realizar una transición de bajo a alto, pero nunca
realizar el alta a la transición bajo, por consiguiente, la línea de RI se atasca alta hasta que se detiene la simulación.

No importa lo que los valores de INPUT_BUFFER_SIZE y OUTPUT_BUFFER_SIZE el sistema operativo y hardware lleva a cabo
algunas amortiguación limitada.

Limitaciones en la forma en que el puerto serie de la API de Win32 informes de un salto de línea significa que la condición COMPIM ha
de suponer el final de un salto de línea por otra actividad que ocurre en el puerto serie físico. Esto significa que un salto de línea de
condición puede seguir ser activos en el puerto virtual una vez que la condición ha sido retirado del puerto físico.
Los indicadores en el dispositivo COMPIM tratan de reflejar el estado del puerto físico, sin embargo, el sistema operativo y el hardware
de almacenamiento en búfer antes de realizar alguna COMPIM.DLL tiene la oportunidad de examinar los datos, lo que significa la
mención podrá posiblemente lag el verdadero estado del puerto físico.

Pruebas de VSPD con Proteus


Empezaremos basándonos con el "Ejemplo 1. Enviar un mensaje ASCII del PIC al PC".

Primero debemos configurar VSPD tal y como se ha indicado mas arriba.

Luego montamos este esquema básico en Proteus. El componente COMPIM se introduce igual que cualquier otro, abriendo las librerías en
Component Mode :

Nótese que en el esquema se conecta la salida RA0 a la patilla 3, TXD del conector, mientras que en el "Ejemplo 1. Enviar un mensaje
ASCII del PIC al PC" la conexión se hace en la patilla 2 del conector puesto que se utiliza un conector hembra y un cable no cruzado
macho-hembra (como una especie de extensión del puerto del PC). Aquí, dado que VSPD crea pares de cables hembra-hembra se utiliza el
pin 3 del conector DB9.

http://perso.wanadoo.es/pictob/rs232virtual.htm 9/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Carga del programa .HEX del PIC en Proteus. El programa es el mismo que el del "Ejemplo 1. Enviar un mensaje ASCII del PIC al PC":

La configuración de COMPIM debe ser:

http://perso.wanadoo.es/pictob/rs232virtual.htm 10/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

Configuración de hyperterminal de Windows. Elegimos el puerto 5 y nos aseguramos de que se utilizan unos parámetros del puerto
compatibles con la establecida en el PIC.

Prueba en simulación:

http://perso.wanadoo.es/pictob/rs232virtual.htm 11/12
1/12/2018 Puerto serie virtual VSPD y COMPIM de Proteus

http://perso.wanadoo.es/pictob/rs232virtual.htm 12/12