P. 1
COMUNICACIÓN SERIAL CON LABVIEW

COMUNICACIÓN SERIAL CON LABVIEW

|Views: 271|Likes:
Publicado porsergiobedoya_240

More info:

Published by: sergiobedoya_240 on Apr 29, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/11/2013

pdf

text

original

COMUNICACIÓN SERIAL CON LABVIEW ING. ESP.

JOSE ANTONIO ARAQUE GALLARDO

La comunicación serial es uno de los métodos de comunicación más empleados a la hora de adquirir datos desde un PC. Normalmente la adquisición se realiza utilizando un microcontrolador que soporte comunicación serial (UART). Los detalles técnicos del protocolo serial no se discuten en este documento ya que se asume que el estudiante los domina correctamente.

A nivel de hardware la comunicación se establece mediante un cable adaptado para tal fin, usando además un adaptador de niveles:

Normalmente se utiliza comunicación serie asíncrona, por la facilidad de implementación y su versatilidad. Labview brinda mucha facilidad a la hora de implementar comunicaciones seriales, haciendo bastante transparente la capa física y lógica del protocolo permitiendo desarrollar aplicaciones en menos tiempo. Para realizar una comunicación serial efectiva con labview hay que realizar unas tareas o pasos que en términos generales siempre son los mismos: -Configuración del puerto -acceso al puerto -cierre del puerto. La gestión del puerto serial se hace a través de VISA (Arquitectura de Software para Instrumentos Virtuales). VISA es una librería de interfaz simple para controlar protocolos como RS232, GPIB, USB entre otros, esto implica que habrá que instalar VISA para poder acceder al puerto serie. El acceso a las múltiples funciones VISA para el puerto serie se pueden ubicar como se muestra en la figura (en el diagrama de bloques):

CONFIGURACIÓN: Visa resource name: Indica el nombre del puerto. generalmente se coloca aquí un control Baud rate: tasa de baudios Data bits: longitud del dato Parity: paridad ACCESO: El acceso al puerto serie puede ser de escritura del puerto o de lectura .

Byte count: es el número de bytes a ser leidos Read buffer: contiene el dato leído del dispositivo Return count: contiene el número actual de bytes leído CIERRE DEL PUERTO: En algunas aplicaciones puede ser de utilidad la función set buffer size: . Lectura: Lee el número de bytes especificados y lo entrega en read buffer.Escritura: Escribe un dato desde el buffer de escritura al dispositivo especificado por Visa resource name. Write buffer: contiene el dato a ser escrito en el dispositivo Return count: contiene el número actualizado de los bytes escritos.

observe la forma como se hacen las operaciones sobre el puerto y el tratamiento realizado a los datos a enviar y a los datos leídos. Mask: Se utiliza para seleccionar cual buffer (de Tx o de Rx) se va a ajustar el tamaño. EJEMPLO PRÁCTICO: Para entender de forma básica la comunicación serial en labview vamos a desarrollar un ejemplo de LECTURA-ESCRITURA del puerto. Nuestro sistema DAQ leerá el dato analógico a través del puerto serial (en formato de 8 bits) y lo visualizará en una gráfica. sume estos valores antes de cablearlos a esta terminal. Además desde el panel frontal se enviará un número que será visualizado en los 8 leds a la salida. Esto es necesario ya que labview así como cualquier otro software que trabaje puerto serie solo puede transmitir y recibir caracteres ASCII. Realicemos un diagrama de bloques como el que se muestra en la figura de las siguientes páginas (se muestran las conexiones para ambos casos en las estructuras case). Para el buffer de transmisión se utiliza un mask de 16 y para el de recepción un mask de 32. . por defecto es 4096.SET BUFFER SIZE Ajusta el tamaño del buffer de entrada-salida. Usted debe tener el hardware requerido (microcontrolador con una entrada análoga y 8 salidas digitales. Indica la cantidad de bytes que se desea recibir o transmitir. Size: especifica el tamaño del buffer I/O. Si desea ajustar los dos buffers al tiempo. programado con el firmware proporcionado en la carpeta).

.

.

Si el PC en el que está trabajando presenta fallas en el puerto serie instale el emulador de puerto serial y cree un nuevo COM e inicie la emulación. habilita la ' Ajusta la resolución a 10 bits ' Selecciona el oscilador interno RC ' Tiempo de adquisición de 100us 'variable de entrada de la lectura ' Ajustamos el bit 0 de porta como entrada ' Ajustamos RA0 como entrada analógica y ' leemos el canal 0 'ajustamos por software la resolución a 8 bits 'envia directamente el dato al puerto Dim CONVER as Word Dim escala as byte TRISA.0 = 1 ADCON1 = %10000010 justificamos a la derecha LOOP: CONVER = ADIN 0 ESCALA = CONVER / 4 HRSOUT ESCALA gosub esperar if b1=0 then goto loop else portb=b1 end if. . Se anexa el código del microcontrolador hecho en PICBASIC: device=16f877 xtal=4 DIM B1 AS BYTE trisb = 0 TRISC = %10111111 SPBRG = 25 RCSTA = %10010000 TXSTA = %00100100 transmisión y BRgh=1(alta velocidad) ADIN_RES ADIN_TAD ADIN_STIME 10 FRC 100 ' Set TX (PortC.6) como salida ' Set baud rate a 9600 baudios 'habilita recepción contínua por USART ' habilita modo asincrono. Escriba y lea datos del puerto serie usando el emulador y verificando los datos en el monitor de puerto serial. Para comprobar la comunicación utilice el ejecutable del monitor de puerto serial suministrado.

delayms 50 GOTO LOOP esperar: B1 = 0 If PIR1.5 = 1 Then B1 = hrsin dato disponible Return 'si se levanta la bandera de recepción hay un 'en el buffer .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->