Comunicacion Serial

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

G.

Comunicación por Puerto Serial


La comunicación serial es un medio popular de transferir datos entre un computador
y un dispositivo periférico tal como un instrumento programable o incluso otro
computador. La comunicación serial emplea un transmisor para enviar datos, un bit
a la vez, sobre una simple línea de comunicación hacia un receptor. Puede emplear
este método cuando las velocidades de transferencia de datos son lentas o usted
debe transferir datos sobre distancias largas. La comunicación serial es popular
debido a que la mayoría de los computadores poseen uno o más puertos seriales, por
lo que no se requiere hardware adicional a un cable para conectar el instrumento a
un computador o dos computadores juntos.

1 Instrumento RS-232 2 Cable RS-232 3 Puerto Serial

La comunicación serial requiere que usted especifique los cuatro parámetros


siguientes:

 la velocidad en baudios de la transmisión

 el número de bits de datos codificados a caracter

 la sensibilidad del bit opcional de paridad

 el número de bits de parada

Cada caracter transmitido es empaquetado en un marco de caracter que consiste de


un solo bit de inicio seguido por los bits de datos, el bit opcional de paridad y el bit
o bits de parada. La siguiente ilustración muestra un marco típico de caracter
codificando la letra m.

1
La velocidad en baudios es una medida de cuan rápido los datos son movidos entre
instrumentos que emplean comunicación serial. RS-232 emplea solo dos estados de
voltaje, denominados MARCA y ESPACIO. En un esquema de codificación como
el de dos estados, la velocidad en baudios es idéntica al máximo número de bits de
información, incluyendo bits de control, que son transmitidos por segundo.

La MARCA es un voltaje negativo y el ESPACIO es positivo. La ilustración previa


muestra como una señal idealizada luce en el osciloscopio.

La siguiente es la tabla de verdad para RS-232:

Señal> +3 V=0
Señal < -3 V=1

El nivel de señal de salida usualmente habita entre +12V y -12 V. El área muerta
entra +3 V y -3 V está designada para absorber ruido de línea.

Un bit de inicio indica el principio de cada marco de caracter. Esta es una transición
desde un voltaje negativo (MARCA) hasta uno positivo (ESPACIO). Su duración
en segundos es un recíproco de la velocidad en baudios. Si el instrumento está
transmitiendo a 9,600 baudios, la duración del bit de inicio y cada subsecuente bit
esta cerca de 0.104 ms. El marco total de caracter de once bits debe ser transmitido
en cerca de 1.146 ms.

Los bits de datos son transmitidos al revés y hacia atrás. Esto es, se emplea lógica
inversa y el orden de la transmisión es desde el bit menos significativo (LSB) hasta
el bit más significativo (MSB). Para interpretar los bits de datos en un marco de
caracteres, debe leer de derecha a izquierda y leer 1 para voltaje negativo y Opara
voltaje positivo. Esto produce 1101101 (binario) o 6D (hexadecimal). Una tabla de
conversión ASCII muestra que esta es la letra m.

Un bit de paridad opcional sigue los bits de datos en un marco de caracter. El bit de
paridad, si está presente, también sigue lógica inversa, 1 para voltaje negativo y 0
para voltaje positivo. Este bit es incluido como un simple medio de control de error.
Usted especifica el período de tiempo donde la paridad del instrumento debe ser par
o impar. Si la paridad se elige impar, entonces el transmisor fija el bit de paridad en
forma tal que se realice un número par de unos a través de los bits de datos y el bit
de paridad. Esta transmisión emplea paridad impar. Existen cinco unos a través de
los bits de datos, ya hay un número impar, así el bit de paridad se fija en 0.

2
La última parte del marco de caracteres consiste de 1, 1.5 o 2 bits de parada. Estos
bits están siempre representados por un voltaje negativo. Si no se adelantan más
transmisiones de caracteres, la línea permanece en condición negativa (MARCA).
La transmisión del siguiente marco de caracter, si hay, se anuncia por un bit de
inicio de voltaje positivo (ESPACIO).

Que tan Rápido Puedo Transmitir?


Sabiendo como se aplican a la comunicación serial una estructura de un marco de
caracteres y el significado de velocidad en baudios, usted puede calcular la máxima
velocidad de transmisión, en caracteres por segundo, para una configuración de
comunicación dada. Esta velocidad es justo la velocidad en baudios dividida entre
los bits por marco. En el ejemplo previo, existe un total de once bits por marco de
caracter. Si la velocidad de transmisión se fija a 9,600 baudios, usted obtiene
9,600/11 = 872 caracteres por segundo. Observe que esta es la máxima velocidad de
transmisión de caracteres. El hardware en un extremo o el otro del enlace serial
pueden no estar capacitados para alcanzar estas velocidades, por varias razones.

Descripción de Hardware
Existen muchos diferentes estándares recomendados para comunicación por puerto
serial, incluyendo los tipos más comunes siguientes.

RS-232
El RS-232 es un estándar desarrollado por Electronic Industries Association (EIA) y
otros colegas, especificando la interfaz serial entre el Equipo Terminal de Dato
(DTE) y el Equipo de Comunicaciones de Dato (DCE). El estándar RS-232 incluye
características de señal eléctrica (niveles de voltaje), características mecánicas de la
interfaz (conectores), descripción de funcionalidad de los circuitos de intercambio
(la función de cada señal eléctrica) y algunas recomendaciones para clases comunes
de conexiones terminal a modem. La revisión más frecuentemente encontrada de
este estándar es la denominada RS-232C. Parte de este estándar ha sido adoptado
(con varios grados de fidelidad) para uso en comunicación serial entre
computadores e impresoras, modems y otros equipos. Los puertos seriales en un
estándar de computadora personal compatible IBM siguen RS-232.

RS-449, RS-422, RS-423

Los RS-449, RS-422 y RS-423 son estándares de comunicación serial adicionales


de EIA relacionados al RS-232. RS-449 fue publicado en 1975 y se suponía que
reemplazaba al RS-232, pero pocos manufacturadores han adoptado el nuevo
estándar. RS-449 contiene dos subespecificaciones denominadas RS-422 y RS-423.
Mientras RS-232 modula una señal con respecto al común de tierra, o realiza una
transmisión de un solo fin, RS-422 modula dos señales contra cada una o realiza
transmisión diferencial. El receptor RS-232C sensa si la señal recibida es

3
suficientemente negativa con respecto a la tierra para ser un 1 lógico, donde el
receptor RS-422 sensa que línea es más negativa que otra. Esto hace a RS-422 más
inmune al ruido e interferencia y más versátil sobre distancias largas. El puerto
serial Macintosh sigue RS-422, el cual puede ser convertido a RS-423 mediante el
cable externo adecuado. RS-423 puede entonces comunicarse con más dispositivos
RS-232 sobre distancias de 15 m o similares.

Cableado RS-232
Los dispositivos que emplean cables seriales para sus comunicaciones se dividen en
dos categorías. Estas son DCE y DTE. Los DCE son dispositivos tales como un
modem, un adaptador TA, plotters y similares, mientras que DTE es un computador
a terminal. El puerto serial RS-232 viene en dos tamaños, el conector de 25 pines
Tipo D y el conector de 9 pines Tipo D. Ambos conectores son machos en la parte
trasera del PC. Así, usted requiere un conector hembra en el dispositivo. La
siguiente tabla muestra las conexiones de pines para los conectores de 9 y 25 pines
Tipo D.

Función Señal PIN DTE DCE

Dato TxD 3 Salida Entrada


RxD 2 Entrada Salida
Handshake RTS 7 Salida Entrada
CTS 8 Entrada Salida
DSR 6 Entrada Salida
DCD 1 Entrada Salida
DTR 4 Salida Entrada
Común Com 5 - -
Otro RI 9 Entrada Salida

El conector DB-9 es ocasionalmente encontrado en equipos pequeños de laboratorio


RS-232. Es compacto, aún posee pines suficientes para un conjunto principal de
pines serial (con un pin extra).

Nota Los números de pin DB-9 para transmitir y recibir (3 y 2) son opuestos a aquellos en
el conector DB-25 (2 Y3). Sea cuidadoso de esta diferencia cuando usted este determinando
si un dispositivo es DTE o DCE.

El conectar DB-25 es el conectar estándar RS-232, con suficientes pines para cubrir
todas las señales especificadas en el estándar. La siguiente tabla muestra solo el

4
conjunto principal de pines que son empleados en la mayoría de las interfaces RS-
232.

Función Señal PIN DTE DCE


Dato TxD 2 Salida Entrada
RxD 3 Entrada Salida
Handshake RTS 4 Salida Entrada
CTS 5 Entrada Salida
DSR 6 Entrada Salida
DCD 8 Entrada Salida
DTR 20 Salida Entrada
Común Com 7 - -

Descripción de Software
Emplee los VIs y funciones localizados en la paleta Functions»All
Functions»Instrument I/O»Serial para comunicación por puerto serial.

Usted empleó algunas de las funciones VISA de esta paleta para la comunicación
GPIB. Las funciones VISA Write y VISA Read trabajan con cualquier tipo de
comunicación de instrumentos y son las mismas independiente que realice
comunicación GPIB o serial. Sin embargo, debido a que la comunicación serial
requiere que configure parámetros extras, debe iniciar comunicación de puerto serial
con el VI VISA Configure Serial Port.

El VI VISA Configure Serial Port inicializa el puerto identificado por VISA


resource name con las configuraciones especificadas. timeout fija el valor de
tiempo fuera para la comunicación serial. baud rate, data bits, parity y flow
control determinan los parámetros específicos de puerto serial. Los c1ustersde
error in y error out den las condiciones de error para este VI.

El siguiente ejemplo muestra como enviar el comando de solicitud de identificación


*IDN? al instrumento conectado al puerto serial COM2. El VI VISA Configure
Serial Port abre la comunicación con COM2 y lo fija a 9,600 baudios, 8 bits de
datos, paridad impar, un bit de parada y software handshaking XON/XOFF.
Entonces la función VISA Write envía el comando. La función VISA Read lee el
retorno hasta 200 bytes en el buffer de lectura y el VI Simple Error Handler verifica
la condición de error.

5
Nota Los VIs y funciones localizadas en la paleta Functions»All Functions»Instrument
I/O»Serial también son empleadas para comunicación por puerto paralelo. Usted especifica
el nombre de recurso VISA para que sea uno de los puertos LPT. Por ejemplo, puede
emplear MAX para determinar que LPT 1 tiene un nombre de recurso VISA de ASRLl0: :
INSTR.

Ejercicio10-5 El VI Serial Write & Read


Objetivo: Construir un VI que se comunique con un dispositivo RS-232.

Realice los siguientes pasos para emplear el Asistente de E/S de Instrumentos y


construir un VI que se comunique con el Simulador de Instrumentos de NI.

Simulador de Instrumentos de NI
1. Apague el Simulador de Instrumentos de NI y configúrelo para comunicarse a
través del puerto serial estableciendo los siguientes interruptores en el lado de la
caja.

Estos interruptores determinan la configuración del instrumento como un


dispositivo serial con las siguientes características:

 Velocidad en baudios = 9,600


 Bits de datos = 8
 Paridad = no paridad
 Bits de parada = 1
 Parámetros de control de flujo = hardware handshaking

Handshaking es un medio de control de flujo de datos. El software handshaking


involucra caracteres de control embebido en los datos transmitidos. Por ejemplo,

6
el control de flujo XON/XOFF trabaja encerrando un mensaje transmitido entre
los dos caracteres de control XON y XOFF. El hardware handshaking emplea
voltajes en cables físicos para controlar el flujo de datos. Las líneas RTS y CTS
del dispositivo RS-232 son empleadas frecuentemente en este propósito.
Muchos equipos de laboratorio emplean hardware handshaking.

2. Asegúrese que el Simulador de Instrumentos de NI esté conectado a un puerto


serial en el computador con un cable serial. Tome nota de este número de
puerto.

3. Encienda el Simulador de Instrumentos de NI. Los LEDs Power, Ready y Listen


se iluminan para indicar que el dispositivo está en modo de comunicación serial.

Diagrama de Bloques
4. Abra un VI en blanco y construya el siguiente diagrama de bloques.

a. Coloque el VI Instrument I/O Express, localizado en la paleta


Functions»Input, en el diagrama de bloques. Realice los siguientes pasos
en la caja de diálogo Instrument I/O Assistant que aparece para configurar
el VI Express.

(1) Seleccione COMl (o COM2 dependiendo del puerto de conexión para el


Simulador de Instrumentos de NI) desde el menú desplegable Select an
instrument.

(2) Haga clic en el botón Add Step y luego en Write. En el campo


comando, digite *IDN? y seleccione \n como Termination character.

(3) Haga clic en el botón Add Step y luego en Read and Parse.

(4) Haga clic en el botón Add Step y luego en Read and Parse
nuevamente.

Nota El Simulador de Instrumentos retorna el tamaño de byte de respuesta, el carácter de


terminación, la respuesta, luego otro caracter de terminación. Por tanto, luego que *IDN? se
envía al instrumento, la respuesta debe ser leída dos veces.

7
(5) Haga clic en el botón Run (no el botón Run this step). El botón Run
corre toda la secuencia.

(6) Retorne al primer paso Read and Parse.

(7) Haga clic en el botón Auto parse. El valor retornado es el tamaño en


bytes de la respuesta solicitada.

(8) Renombre Token como String Length en la caja de texto Token name.

(9) Seleccione el segundo paso Read and Parse.

(10) Haga clic en el botón Auto parse. El valor retornado es la cadena de


identificación del Simulador de Instrumentos de NI.

(11) Renombre Token como String en la caja de texto Token name. La


ventana de configuración debe ser similar a la siguiente figura.

(12) Seleccione OK para regresar al diagrama de bloques.

b. Haga clic derecho en la salida String y seleccione Create» Indicator desde


el menú rápido.

8
c. Haga clic derecho en la salida String Length y seleccione
Create»Indicator desde el menú rápido.

Consejo Ya que LabVIEW está configurado para manipular errores automáticamente, no


es necesario conectar un VI Simple Error Handler a error out.

13. Muestre el panel frontal y corra el VI.

14. Guarde el VI como Serial communication. vi en el directorio C: \Exercises


\LabVIEW Basics I.

15. Cierre el VI cuando termine.

Fin del ejercicio10-5

H. Transferencia de Formas de Onda (Opcional)


Muchos instrumentos retornan una forma de onda como una cadena ASCII o una
binaria. Asumiendo la misma forma de onda. la transferencia de una cadena binaria
es más rápida y requiere menos memoria que transferir una cadena ASCII. La
codificación binaria requiere menos bytes que la codificación ASCII.

Forma de Onda ASCII


Como un ejemplo, considere una forma de onda compuesta de 1,024 puntos, cada
uno con un valor entre 0 y 255. Empleando la codificación ASCII, usted requeriría
un máximo de 4 bytes para representar cada punto (un máximo de 3 bytes para el
valor del punto y 1 byte para el separador. Tal como una coma). Usted necesitaría
un máximo de 4,096 (4 x 1.024) bytes más bytes de encabezado y de remolque para
representar la forma de onda como una cadena ASCII. El siguiente ejemplo es una
cadena de forma de onda ASCII.

Puede emplear el VI Extraet Numbers localizado en el directorio C:\Exercises\


LabVIEW Basics1 para convertir una forma de onda ASCII en un arreglo numérico.
como sigue. Este VI entrega la forma de onda como un arreglo de doble precisión.

Formas de Onda Binarias Codificadas como Enteros de 1-Byte

9
La misma onda empleada para codificación binaria requiere solo 1,024 bytes (1 x
1,024) más bytes de encabezado y de remolque para ser representada como una
cadena binaria. Empleando codificación binaria, usted solo requiere 1 byte para
representar el punto, asumiendo que cada número es un entero sin signo de 8-bits.
El siguiente ejemplo es una cadena de forma de onda binaria.

Convertir la cadena binaria a un arreglo numérico es un poco más complejo. Usted


debe convertir la cadena a un arreglo de enteros. Puede hacer esto empleando la
función String To Byte Array localizada en la paleta Functions»All
Functions»String»String/ Array/Path Conversion. Puede remover toda la
información de encabezado y remolque de la cadena antes de convertida a arreglo.
Por otro lado, esta información también es convertida.

Formas de Onda Binarias Codificadas como Enteros de 2-Bytes


Si cada punto en la cadena de forma de onda binaria es codificado como un entero
de 2 bytes, es más fácil y rápido emplear la función Type Cast localizada en la
paleta Functions»All Functions»Advanced»Data Manipulation.

Por ejemplo, considere un osciloscopio GPIB que transfiere datos de forma de onda
en notación binaria. La forma de onda está compuesta de 1,024 puntos de datos.
Cada punto de dato es un entero con signo de 2 bytes. Por consiguiente, la forma de
onda completa está constituida de 2,048 bytes. En el siguiente ejemplo,la forma de
onda posee el encabezado DATA de 4 bytes y un remolque de 2 bytes--como un
retorno de carro seguido por una alimentación de línea.

10
El siguiente diagrama de bloques muestra como usted puede emplear la función
Type Cast para cambiar la cadena de forma de onda binaria a un arreglo de enteros
de 16 bits.

Puede necesitar emplear la función Swap Bytes localizada en la paleta Functions»


All Functions» Advanced» Data Manipulation para intercambiar los 8 bits más
significativos con los 8 bits menos significativos para cada elemento. Recuerde,
GPIB es un bus a 8 bits. Este puede solo transferir un byte a la vez. Si el
instrumento primero envía el byte bajo y luego el byte alto, no necesita emplear la
función Swap Bytes.

En el ejemplo anterior, usted necesitó emplear la función SwapBytes ya que el


instrumento envío primero el byte más significativo. Ya que el byte más
significativo fue recibido de primero, este es colocado en una posición más baja de
memoria que el último byte significativo enviado luego del byte más significativo.

Ejercicio10-6 El VI Waveform Example (Opcional)


Objetivo: Graficar una forma de onda que un instrumento como un
osciloscopio retorna como una cadena ASCII o binaria.

Para una cadena de forma de onda ASCII, la forma de onda consiste de 128 puntos.
Hasta cuatro caracteres ASCII separados por coma representan cada punto. El
siguiente encabezado antecede los puntos de datos:

CURVE {12,28,63,...128 points in total.. .,}CR LF

Para la cadena de forma de onda binaria, la forma de onda consiste de 128 puntos.
Cada punto es representado como un entero sin signo de 1-byte. El siguiente
encabezado antecede los puntos de datos:

CURVE % {Bin Count MSB} {Bin Count LSB}{áánÁ...128 bytes in


total...} {Checksum} CR LF

11
Realice los siguientes pasos para examinar un VI que convierte la forma de onda en
un arreglo de números. El VI grafica el arreglo y lee la cadena de forma de onda
desde el Simulador de Instrumentos de NI o desde un arreglo almacenado
previamente.

Simulador de Instrumentos de NI
1. Apague el Simulador de Instrumentos de NI y configúrelo para comunicarse a
través de GPIB configurando los siguientes interruptores en el lado de la caja.

Estos interruptores establecen la configuración del instrumento como un


dispositivo GPIB con una dirección de 2.

2. Encienda el Simulador de Instrumentos de NI. Solo los LEDs Power y Ready


están encendidos para indicar que el Simulador de Instrumentos de NI está en el
modo de comunicación GPIB.

Panel Frontal
3. Abra el VI Waveform Example localizado en el directorio
C:\Exercises\LabVIEW Basics 1. El siguiente panel frontal ya se
encuentra listo.

Data Format especifica una forma de onda ASCII o binaria. Data Source
especifica si el dato es simulado o leído desde el Simulador de Instrumentos de
NI a través de GPIB.

12
Diagrama de Bloques

4. Muestre y examine el siguiente diagrama de bloques.

La función String Subset localizada en la paleta Functions»All


Functions»String entrega una subcadena de 128 elementos iniciando desde el
byte quinto de la cadena de forma de onda binaria, excluyendo el encabezado y
bytes de remolque.

La función String to Byte Array, localizada en la paleta Functions»All


Functions»String»String/Array/Path Conversion, convierte la cadena binaria
a un arreglo de enteros sin signo.

La función String Length, localizada en la paleta Functions»All


Functions»String, retorna el número de caracteres en la cadena de forma de
onda.

El VI Extract Numbers, localizado en el directorio Exercises, extrae


números desde una cadena de forma de onda ASCII y los coloca en un arreglo.
Los caracteres no numéricos, tal como comas, separan los números en la cadena.

Las funciones VISA Write y VISA Read, localizadas en las paletas


Functions»All Functions»Instrument I/O»VISA, solicitan del Simulador de
Instrumentos de NI una onda cuadrada en formato ASCII o binario de 1-byte.

13
El VI Simple Error Handler, localizado en la paleta Functions»All
Functions» Time & Dialog, reporta cualquier error.

5. Muestre el panel frontal y corra el VI.

El caso TRUE adquiere y convierte la cadena de forma de onda binaria a un


arreglo de valores numéricos. El caso FALSE adquiere y convierte la cadena de
forma de onda ASCII a un arreglo de valores numéricos.

6. Fije Data Format en ASCII y corra el VI. Se muestra la cadena de forma de


onda ASCII, el VI convierte los valores a un arreglo numérico y muestra la
longitud de cadena y el arreglo numérico.

7. Fije Data Format en Binary y corra el VI nuevamente. Se muestra la cadena de


forma de onda binaria y la longitud de la cadena, el VI convierte la cadena a un
arreglo numérico y lo muestra en la gráfica.

Nota La forma de onda binaria es similar a la forma de onda ASCII. Sin embargo, el
número de bytes en la cadena es significativamente menor. Es más eficiente transferir
formas de onda en cadenas binarias que como cadenas ASCII ya que la codificación binaria
requiere menos bytes para transmitir la misma información.

8. Cierre el VI. No guarde cambios.

Fin del ejercicio 10-6

Resumen, Consejos y Trucos

 LabVIEW puede comunicarse con un instrumento que conecta a un computador


siempre y cuando usted conozca que clase de interfaz posee y que cable es
requerido.

 Emplee MAX para configurar y probar tarjetas de interfaz GPIB, instrumentos


conectados, puertos seriales y puertos paralelos.

 Los controladores de instrumentos en LabVIEW eliminan la necesidad de


aprender los comandos de programación de bajo nivel y complejos para cada
instrumento.

 La librería de controladores de instrumentos en LabVIEW está localizada en el


CD LabVIEW. También puede descargar controladores desde el sitio Web de
NI en ni.com.

14
 Todos los controladores de instrumentos en la librería poseen la misma jerarquía
básica de VI.

 Emplee el Asistente de E/S de Instrumentos para construir rápida y fácilmente


un VI que se comunique con un instrumento. Puede controlar VXI, GPIB, RS-
232 y otros tipos de instrumentos.

 La comunicación serial es un medio popular de transmisión de datos entre un


computador y un dispositivo periférico tal como un instrumento programable o
incluso otro computador.

Ejercicios Adicionales
10-7 Abra el VI Voltage Monitor, el cual construyó en el Ejercicio 10-4.
Modifique el diagrama de bloques para que los datos sean escritos a un
archivo de hoja de cálculo denominado voltage. txt en el siguiente formato.

Seleccione File»Save As para guardar el VI como Voltaje Data to File. vi en


el directorio C:\Exercises \ LabVIEW Basics I.

15

También podría gustarte