You are on page 1of 39

COMUNICACIÓN SERIE CON

PUERTOS VIRTUALES
UTILIZANDO VIRTUAL SERIAL PORT

Realizado por: MSc. Ing. Rafael O Mendoza A.


Mayo 2018
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.

Cuando se desarrolla una aplicación con PIC que


hace uso del puerto serie, puede ser necesario
utilizar un puerto serie virtual.
VENTAJAS

Trabajar con programas para el Diseño Asistido por


Computadora (Computer Aided Design - CAD) y Electrónicos
ofrece muchas ventajas:

la más significativa es la disponibilidad de contar con un


grupo innumerable de instrumentos y dispositivos a los
que no se acceden fácilmente, Ya sea por su carencia en el
laboratorio, o la ausencia del producto dentro del mercado
local, sin mencionar la cantidad de recursos económicos
que demandarían su adquisición.
JUSTIFICACIÓN

Algunos proyectos requieren de dispositivos específicos y


en ocasiones, complica el desarrollo de estos debido a las
limitaciones técnicas y tecnológicas de los laboratorios.

Es por esta razón que, tanto estudiantes como docentes de


las carreras de Ingeniería Eléctrónica, Sistemas Electrónicos
Digitales, Telecomunicaciones, Mecatrónica y otras, realizan
los diseños de sus circuitos electrónicos empleando estos
programas informáticos, que hoy en día, alcanzaron una
mayor precisión y confiabilidad.
VIRTUAL SERIAL PORT DRIVER
(VSPD)
VIRTUAL SERIAL PORT DRIVER (VSPD)

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), se pueden activar 2 puertos virtuales y
conectarlos entre si, para hacer uso individualmente y conectar 2
aplicaciones todo en la misma computadora
SIMULADOR PROTEUS

Proteus dispone de un componente denominado COMPIM que conecta


la simulación con un puerto serie físico.

Mediante un par de puertos serie virtuales se pueden 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.
USO DEL VIRTUAL SERIAL PORT
Una vez instalado, debemos iniciarlo desde el menú de Inicio de Windows en:
Eltima Software / Virtual Serial Port Driver / Configure Virtual Serial Port Driver.
PASOS PARA AÑADIR UN PAR DE
PUERTOS SERIE VIRTUALES
• Seleccionar la pestaña "Manage ports" de la ventana
principal.
• En las listas desplegables de First port y Second port
seleccione el nombre de un par de puertos virtuales,
por ejemplo COM3 y COM4.
• Pulse el botón "Add pair".
• Si todo ha ido bien los nuevos puertos creados
aparecerán a la izquierda en "Virtual Ports "
• Debe quedar así:
PUERTOS VIRTUALES ACTIVOS
PUERTOS VIRTUALES EN EL
ADMINISTRADOR DE DISPOSITIVOS

En el administrador de
dispositivos del sistema (Inicio /
Panel de control / Sistema /
Hardware / Administrador de
dispositivos) deben aparecer
también los puertos agregados:
COMPROBANDO EL FUNCIONAMIENTO

En este ejemplo, Para comprobar el funcionamiento vamos


a abrir dos instancias de Hyperterminal, una utilizando
COM3 y otra COM4 con la misma configuración del puerto.

Las teclas que se pulsen en un terminal deben aparecer en


el otro:
INGRESANDO AL HYPERTERMINAL

• En Windows XP accedemos a Hyperterminal con el


menú Inicio de Windows / Programas /
Hyperterminal.
• En Windows Vista y Windows 7 no se ha incorporado
Hyperterminal, pero se puede descargar de aquí:
• https://www.hilgraeve.com/hyperterminal-trial/
• Si aparece un cuadro de diálogo que pregunta si
establecer Hyperterminal como programa Telnet
predeterminado pulse no.
• Si aparece un cuadro de diálogo sobre la ubicación
pulsar cancelar y confirmar la cancelación
COLOCANDO EL TITULO DE LA CONEXIÓN
AGREGANDO EL PUERTO COM3
SELECCIONE RESTAURAR PREDETERMINADOS
CONFIGURACION DEL PUERTO EN
FORMATO 8N1 A 9600 BAUDIOS
APLICACIÓN HYPERTERMINAL (2)

• Se pulsa en el botón aceptar y se abre otra instancia de


Hyperterminal que se llamará PruebaCOM4, que utilice
el puerto COM4 y con las mismas propiedades dadas a
COM3.
• Lo que escribamos en PruebaCOM4 se envía a
PruebaCOM3 y viceversa.
COMUNICACIÓN ENTRE 2 TERMINALES
CON HYPERTERMINAL
«ECO» CON HYPERTERMINAL

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.
CONFIGURANDO LAS PROPIEDADES
EN HYPERTERMINAL
RESULTADO DE LA APLICACIÓN ENTRE 2
TERMINALES
CABLEADO ENTRE PUERTOS VIRTUALES
COMPIM SERIAL PORT MODEL DE
PROTEUS
• 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 otras 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.
DISEÑO DEL DISPOSITIVO COMPIM

• COMPIM tiene ocho pines: 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.
COMPIM (Physical Interface Models )
• Esto significa que el COMPIM representa en el esquema un DCE
(Equipo para la Comunicación 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.
EJEMPLO DE CONFIGURACIÓN DEL
COMPIM EN PROTEUS A 4800 BAUDIOS
APLICACIÓN PROTEUS AL
HYPERTERMINAL

Realizar un contador con PIC16F877A utilizando PROTEUS

que transmita los datos por puerto serie a través del

puerto virtual COM3 y los reciba en el HYPERTERMINAL

configurado para 9600 Baudios en formato 8N1 y

conectado al puerto virtual COM4


CONEXIÓN COMPIM AL PIC EN PROTEUS

Nótese que en el esquema se conecta la salida RC6 TX al pin 3 TXD del conector,
dado que VSPD crea pares de cables hembra-hembra se utiliza el pin 3 del
conector DB9.
PROGRAMA EN CCS
APLICACIÓN TRANSMISION DE DATOS
DEL PIC AL HYPERTERMINAL
APLICACIÓN TERMOMETRO CON LM35
PROGRAMA EN CCS, SIMULACIÓN EN
PROTEUS Y EN LABVIEW
APLICACIÓN EN CCS

//Archivo vol_adc_877_alPC_bootloader.c
//Este programa lee el puerto A con el convertidor analogo digital 1 ch
//AN0 del pic 16f877, lo muestra en el display 16x2 y lo envia al PC a través
//del puerto Serial del Computador (solo envia el valor medido, sin textos.
//Realizado por: Ing Rafael O Mendoza A. MAYO 2018
/*************************************************************
**/
#include <16F877A.h> //pic a utilizar
#fuses HS,NOWDT,NOPROTECT,PUT, NODEBUG, BROWNOUT, NOLVP,
NOCPD, NOWRT //ordenes para el programador
#device ADC=10 //configura el convertidor ADC a 10 bits
#use delay (clock=20000000) //Fosc=20Mhz
#include <lcd.c>
#use rs232(baud=9600, parity=N, xmit=pin_C6, rcv=PIN_C7, bits=8)
Int16 q;
float v0; //v1,v2;
char grados=0b11011111;
FUNCIÓN CONFIGURAR

/**********************************************/
void configurar()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
}
/**********************************************/
FUNCIÓN PRINCIPAL

void main()
{
configurar();
set_adc_channel(0);//selecciona el canal 0
delay_us(100); //pausa de 100 uS
while (true)
{
q=read_adc(); //Realiza la lectura
v0=(5.0*q)/1023.0; //calcula el voltaje
printf(lcd_putc,"\fADC = %4Ld",q);//muestra el valor ADC en display
printf(lcd_putc,"\nT(%cC)=%2.2f",grados,v0*100);//muestra la temperatura en display
//printf("%3.1f\r\n",v0*100);
//printf("%lu\n\r",q);
printf("%lu\r",q); //envia el valor del ADC al puerto Serie
delay_ms(100);
}
}
DIAGRAMA ESQUEMATICO
PANEL FRONTAL EN LABVIEW
PROGRAMA EN LABVIEW

You might also like