interfaz labview serial
TRANSCRIPT
![Page 1: Interfaz Labview Serial](https://reader035.vdocuments.pub/reader035/viewer/2022081211/55cf9dd4550346d033af6a1c/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081211/55cf9dd4550346d033af6a1c/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081211/55cf9dd4550346d033af6a1c/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081211/55cf9dd4550346d033af6a1c/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081211/55cf9dd4550346d033af6a1c/html5/thumbnails/5.jpg)
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/