interfaz labview serial

5
COMUNICACIONES II 1 RESUMEN 1 La comunicación serial no hace otra cosa que enviar datos de información en forma de bytes, pero un bit a la vez (recordando que un byte está compuesto por ocho bits), que pueden provenir de sensores, transductores, etc., hacia equipos que monitorean tales valores como los computadores. Por otra parte también puede existir un control u órdenes provenientes desde los ordenadores hacia otros elementos, tales elementos de enlace pueden ser los micro-controladores o PLCs. El presente documento expone en la Sección II, lo referente a la comunicación serial sincrónica, en la Sección III se habla de la comunicación serial asincrónica, en la Sección IV se indica la comunicación serial paralela y por último en la Sección V se indica cómo realizar la comunicación serial en LabVIEW empleando los bloques VISA. PALABRAS CLAVES Interfaz, comunicación serial, asincrónica, byte, bit, full duplex, interfaz RS-232 DESARROLLO I. INTRODUCCIÓN El concepto de comunicación serial es sencillo. El puerto serial envía y recibe bytes de información un bit a la vez. Aún y cuando esto es más lento que la comunicación en paralelo, que permite la transmisión de un byte completo por vez, este método de comunicación es más sencillo y puede alcanzar mayores distancias, por ejemplo empleando comunicación serial RS-422 o RS-485 el largo del cable puede llegar a los 1200 metros. La comunicación serial es un protocolo de comunicación muy usado entre dispositivos de instrumentación, el interfaz empleado en esta práctica es el RS-232, cuya longitud máxima de cableado es de 15 m 1 . La direccionalidad empleada en la práctica fue la full-duplex, la cual se detalla a continuación. 1 COMUNICACIONES II, CONSULTA # 1, 2013/04/16 Full duplex Se utilizan dos líneas más una línea de referencia y el flujo de información es en ambos sentidos. La ventaja de este método es que se puede transmitir y recibir información de manera simultánea. En la Fig. 1, se observa cómo el transmisor (Tx) de un dispositivo se conecta al receptor (Rx) del otro. Fig. 1. Comunicación serial full duplex El tipo de comunicación serial empleada en la práctica es la serial asincrónica, esto debido a que el conector DB-9 permite sólo este tipo de comunicación. Se la detalla a continuación. II. COMUNICACIÓN SERIAL ASINCRÓNICA Al byte enviado (8 bits) siempre se le agregan dos bits más, uno al inicio y otro al final, esto con la finalidad de indicarle al receptor cuando inicia el dato (bit de start) y cuando termina (bit de stop), es decir, el bit de start va al inicio de la trama de bits y el bit de stop, va al final de la trama de bits, esto se puede ver en la Fig. 2. Fig. 2. Comunicación serial asincrónica El bit de inicio es un 0 y el bit de paro es un 1, siempre que se envíen datos seriales generalmente llevan este formato, por INTERFAZ LABVIEW - MICROCONTROLADOR CON COMUNICACIÓN SERIAL RS-232 José A. Quintana, Estudiante UPS, [email protected]

Upload: jotaqu77

Post on 03-Jan-2016

148 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Interfaz Labview Serial

COMUNICACIONES II 1

RESUMEN1

La comunicación serial no hace otra cosa que enviar datos de

información en forma de bytes, pero un bit a la vez (recordando que

un byte está compuesto por ocho bits), que pueden provenir de

sensores, transductores, etc., hacia equipos que monitorean tales

valores como los computadores. Por otra parte también puede

existir un control u órdenes provenientes desde los ordenadores

hacia otros elementos, tales elementos de enlace pueden ser los

micro-controladores o PLCs.

El presente documento expone en la Sección II, lo referente a la

comunicación serial sincrónica, en la Sección III se habla de la

comunicación serial asincrónica, en la Sección IV se indica la

comunicación serial paralela y por último en la Sección V se indica

cómo realizar la comunicación serial en LabVIEW empleando los

bloques VISA.

PALABRAS CLAVES

Interfaz, comunicación serial, asincrónica, byte, bit, full duplex,

interfaz RS-232

DESARROLLO

I. INTRODUCCIÓN

El concepto de comunicación serial es sencillo. El puerto

serial envía y recibe bytes de información un bit a la vez. Aún

y cuando esto es más lento que la comunicación en paralelo,

que permite la transmisión de un byte completo por vez, este

método de comunicación es más sencillo y puede alcanzar

mayores distancias, por ejemplo empleando comunicación

serial RS-422 o RS-485 el largo del cable puede llegar a los

1200 metros.

La comunicación serial es un protocolo de comunicación muy

usado entre dispositivos de instrumentación, el interfaz

empleado en esta práctica es el RS-232, cuya longitud máxima

de cableado es de 15 m1.

La direccionalidad empleada en la práctica fue la full-duplex,

la cual se detalla a continuación.

1 COMUNICACIONES II, CONSULTA # 1, 2013/04/16

Full duplex

Se utilizan dos líneas más una línea de referencia y el flujo de

información es en ambos sentidos. La ventaja de este método

es que se puede transmitir y recibir información de manera

simultánea.

En la Fig. 1, se observa cómo el transmisor (Tx) de un

dispositivo se conecta al receptor (Rx) del otro.

Fig. 1. Comunicación serial full duplex

El tipo de comunicación serial empleada en la práctica es la

serial asincrónica, esto debido a que el conector DB-9 permite

sólo este tipo de comunicación. Se la detalla a continuación.

II. COMUNICACIÓN SERIAL ASINCRÓNICA

Al byte enviado (8 bits) siempre se le agregan dos bits más,

uno al inicio y otro al final, esto con la finalidad de indicarle al

receptor cuando inicia el dato (bit de start) y cuando termina

(bit de stop), es decir, el bit de start va al inicio de la trama de

bits y el bit de stop, va al final de la trama de bits, esto se

puede ver en la Fig. 2.

Fig. 2. Comunicación serial asincrónica

El bit de inicio es un 0 y el bit de paro es un 1, siempre que se

envíen datos seriales generalmente llevan este formato, por

INTERFAZ LABVIEW - MICROCONTROLADOR

CON COMUNICACIÓN SERIAL RS-232

José A. Quintana, Estudiante UPS, [email protected]

Page 2: Interfaz Labview Serial

COMUNICACIONES II 2

ejemplo si se envía la palabra HOLA de forma serial, la trama

de bits se verá como en la Fig. 3, donde por simplicidad se

usaran bloques representando datos y bits de inicio y paro.

Fig. 3. Bit de inicio y de parada

La transmisión asíncrona que vamos a ver es la definida por la

norma RS232, que se basa en las siguientes reglas:

- Cuando no se envían datos por la línea, ésta se mantiene en

estado alto (1).

-Cuando se desea transmitir un carácter, se envía primero un

bit de inicio que pone la línea ha estado bajo (0) durante el

tiempo de un bit.

-Durante la transmisión, si la línea está a nivel bajo, se envía

un 0 y si está a nivel alto se envía un 1.

-A continuación se envían todos los bits del mensaje a

transmitir con los intervalos que marca el reloj de transmisión.

Por convenio se transmiten entre 5 y 8 bits.

-Se envía primero el bit menos significativo, siendo el más

significativo el último en enviarse.

-A continuación del último bit del mensaje se envía el bit (o

los bits) del final que hace que la línea se ponga a 1 por lo

menos durante el tiempo mínimo de un bit. Estos bits pueden

ser un bit de paridad para detectar errores y el bit o bits de

stop, que indican el fin de la transmisión de un carácter.

Los datos codificados por esta regla, pueden ser recibidos

siguiendo los pasos siguientes2:

-Esperar la transición 1 a 0 en la señal recibida.

-Activar el reloj con una frecuencia igual a la del transmisor.

-Muestrear la señal recibida al ritmo de ese reloj para formar

el mensaje.

-Leer un bit más de la línea y comprobar si es 1 para confirmar

que no ha habido error en la sincronización.

Por último se debe tener en cuenta la velocidad a la que se

envían los bits, es de suma importancia ya que ambos

dispositivos deben estar a la misma velocidad para transmitir y

recibir bits, si no lo están, simplemente la transmisión serial

no sería correcta.

Para la práctica se eligió una velocidad de transmisión de 9200

bps.

III. SOFTWARE Y HARDWARE EMPLEADOS

PIC16F877A

Se utilizó el módulo de conversión análogo digital A/D, el

cual es un conversor de 10 bits. De los ocho puertos análogos

disponibles se utilizó tres puertos, en los cuales se colocó un

potenciómetro, un sensor de temperatura LM35 y una LDR

(light dependent resistor).

Para la utilización del puerto serial se lo configuró a una

velocidad de transmisión de 9600 baudios. El pin de

transmisión del microcontrolador es el pin 25 y el de

recepción el pin 26

La programación del microcontrolador se la realizó en

MikroBasic, se la indica en la Fig. 4:

Fig. 4. Firmware del microcontrolador.

Al colocar (adcon1=130) lo que se está haciendo es configurar

el puerto análogo del micro, donde se pone los voltajes de

referencia en Vdd y Vss, el número de entradas analógicas,

que pueden ser hasta ocho, en este caso aunque solo se

necesitaba tres se le configuró con cinco entradas analógicas,

por seguridad.

Las tres entradas analógicas están denominadas como xo, x1 y

x2. En la Tabla 1, se puede ver a que ítem corresponde los

valores de diez, veinte y treinta (10, 20, 30). Esto quiere decir

que cuando en LabVIEW elijamos un ítem (que puede ser

POTENCIÓMETRO, TEMPERATURA O LDR), ingresará

por el puerto serial uno de los tres valores dados, entonces el

microcontrolador comparará si coincide con los números

preestablecidos, haciendo que salga por el pin de transmisión

la entrada analógica correspondiente.

Page 3: Interfaz Labview Serial

COMUNICACIONES II 3

LabVIEW

Para la comunicación serial en LabVIEW se empleó los

bloques VISA (Virtual Instrument Software Arquitecture). El

puerto fue configurado a una velocidad de 9600 baudios, que

es la misma del microcontrolador.

En la programación se empleó un Combo Box, el cual permite

elegir cuál de las tres señales analógicas se desea visualizar,

para lo cual se empleó un indicador numérico.

Dentro de la configuración del puerto se eligió un bit de

parada, no se optó por el bit de paridad y se enviaron ocho

bits, esto se lo puede ver en la Fig. 5.

Fig. 5. Panel de Control y Frontal en LabVIEW.

En la Tabla 1, se puede ver el valor asignado a cada ítem del

Combo Box.

Ítem Valor dado

(Decimal)

Valor de salida por puerto serial

POTENCIÓMETRO 10 10

TEMPERATURA 20 20

LDR 30 30

Tabla. Valores de cada ítem del Combo Box en decimal, el cual

sale por el puerto serial.

Módulo USB-232

El módulo USB-232 es el enlace de comunicación entre el

computador y el microcontrolador, el cual brinda muchas

ventajas, al eliminar cableado, espacio, ya que en su interior

está integrado el circuito MAX232 que se lo aprecia en la

Fig. 6.

Fig. 6. Circuito de enlace Serial RS-232 a nivel TTL.

El módulo, que se lo puede ver en la Fig. 7, convierte un

puerto USB en un interfaz RS-232 con niveles de voltaje TTL.

Fig. 7. Módulo USB-232TTL.

IV. COMUNICACIÓN CON PUERTO DE SALIDA

La variación necesaria a la programación ya realizada sería la

siguiente:

En el Combo Box empleando, agregaría las entradas

numéricas con los distintos números a tomar por el puerto de

salida, ver Fig. 8.

Page 4: Interfaz Labview Serial

COMUNICACIONES II 4

Fig. 8. Números agregados al Combo Box.

En el Case Structure utilizado, a través del Knob 2, daría

valores correspondientes al código ASCII, a cada ítem que se

encuentra en el Combo Box, los cuales irían al write buffer del

VISA Write, para lo cual se tendría que modificar la

programación de entrada al write buffer, tal como se ve en la

Fig. 9.

Fig. 9. Variación de Programación de entrada al write buffer.

Por lo tanto a cada ítem le corresponderá un valor del código

ASCII3. Una tabla de valores dados a cada ítem del Combo

Box se ve en la Tabla 2, en la misma se visualiza solo hasta el

número 14.

Ítem Valor string asignado

(HEXADECIMAL)

VALOR DE

SALIDA POR

PUERTO SERIAL

(ASCII)

POTENCIÓMETRO FD 253 ILUMINACIÓN FE 254

TEMPERATURA FF 255

0 0 0

1 1 1

2 2 2

3 3 3

4 4 4

5 5 5

6 6 6

7 7 7

8 8 8

9 9 9

10 A 10

11 B 11

12 C 12

13 D 13

14 E 14

Tabla. Valores de cada ítem del Combo Box en código ASCII, el

cual sale por el puerto serial.

Hay que indicar que el dato de salida que se halla en knob 2,

es el valor que estará saliendo por el puerto serial hacia el

microcontrolador. Por lo que sería de también variar la

programación del microcontrolador, se lo visualiza en la

Fig. 10.

Fig. 10. Variación del firmware del microcontrolador.

Se puede ver que por el puerto de salida (d), se visualizará el

dato de la variable (y) que es el valor que ingresa por el pin de

recepción del micro, este dato irá del cero (0) al doscientos

cincuenta y dos (252) ya que del doscientos cincuenta y tres al

doscientos cincuenta y cinco (253 – 255) lo empleamos para

el envío de la entrada analógica. Una vez más hay que

mencionar que la variable (d) tomará valores del código

ASCII, es decir, del cero al doscientos cincuenta y cinco

(0 – 255).

Page 5: Interfaz Labview Serial

COMUNICACIONES II 5

CONCLUSIONES

El tipo de comunicación serial empleada en la

práctica es la es la full-duplex, en la cual se puede

enviar y recibir información al mismo tiempo.

Dado que en la serial asincrónica se avisa al receptor

cuando se va a enviar los datos y cuando se termina

de enviar el dato, para ello, al byte enviado se le

agregan dos bits más, uno al inicio y otro al final, con

la finalidad de indicarle al receptor cuando inicia el

dato (bit de inicio) y cuando termina (bit de parada),

es por esto que en la configuración del puerto serial

en LabVIEW se puede elegir el número de bits de

parada, que pueden ser uno, uno y medio, o dos. Para

la práctica elegimos un bit.

En LabVIEW, cuando a un indicador numérico le

asigno un valor con una constante, teniendo presente

que el valor de este indicador numérico será el dato

de salida por el puerto serial, el valor de salida por el

puerto será el mismo valor de la constante asignada.

Ahora, cuando al indicador numérico le asignamos

un valor string (que para propósitos de la

programación es un string hexadecimal), el valor de

salida por el puerto serial, será el valor que le

corresponde en código ASCII al string de ingreso.

Es importante en la programación del

microcontrolador, configurar correctamente el puerto

serial, el cual debe tener la misma velocidad de envío

de datos del otro dispositivo, en este caso LabVIEW,

por medio de la PC.

Es recomendable el uso de módulos que facilitan el

armado del circuito y nos ahorran tiempo, como el

módulo usb-232ttl, en el cual ya viene incorporado el

MAX-232.

REFERENCIAS

[1]digital.ni.com/public.nsf/allkb/039001258CEF8FB686256E

0F005888D1

[2]http://perso.wanadoo.es/pictob/comserie.htm

[3]http://www.elcodigoascii.com.ar/