SlideShare una empresa de Scribd logo
1 de 8
COMUNICACIONES EN SERIE
La comunicación serial es un protocolo muy común para comunicación entre
dispositivos que se incluye de manera estándar en prácticamente cualquier
computadora. La mayoría de las computadoras incluyen dos puertos seriales RS-232.
La comunicación serial es también un protocolo común utilizado por varios dispositivos
para instrumentación; existen varios dispositivos compatibles con GPIB que incluyen
un puerto RS232. Además, la comunicación serial puede ser utilizada para adquisición
de datos si se usa en conjunto con un dispositivo remoto de muestreo.

La comunicación serial consiste en el envío de un bit de información de manera
secuencial, esto es, un bit a la vez y a un ritmo acordado entre el emisor y el receptor.

El concepto de comunicación serial es sencillo. El puerto serial envía y recibe bytes de
información un bit a la vez. Aun 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, la
especificación IEEE 488para la comunicación en paralelo determina que el largo del
cable para el equipo no puede ser mayor a 20 metros, con no más de 2 metros entre
cualesquier dos dispositivos; por el otro lado, utilizando comunicación serial el largo
del cable puede llegar a los 1200 metros.

En primer lugar, nos concentraremos en la comunicación serie a través de la
interpretación de dos niveles lógicos de tensión o corriente denominado formato
marca/espacio. Este formato se debe al señor Morse, ya que, invento un dispositivo
que enviaba sonidos y largos, que representan los caracteres. En el código Morse, los
sonidos cortos se llaman espacios y los sonidos largos se denominan marcas. Por lo
tanto, esto es un código binario, porque usa solo 2 valores posibles: espacio y marca.
En el caso de las computadoras se diría que trabaja con los números 0 y 1,
dependiendo de cada bit.

El nivel lógico "1" representa un estado de tensión o corriente denominado marca, el
nivel lógico "0" representa un estado de tensión o corriente denominado espacio.

Existen varios estándares que usan el formato marca/espacio, de los que nos
interesan:

       TTL
       Lazo de corriente de 20mA
       RS232
Niveles para cada estándar.

              Nivel Lógico "1" (Marca) Nivel Lógico "0" (Espacio)
    TTL                  5V                           0
Lazo 20 mA             20 mA                        0 mA
 RS 232C             -3V a -15V                 +3V a +15V

Enlace TTL




Lazo de corriente 20mA

El lazo de corriente de 20 mA es usado para transmitir datos hasta 1609m (1 milla).
Para este tipo de interfaz la señal del sistema de datos debe ser convertida a 20mA
para ser aceptada por el periférico.

Una forma barata de convertir TTL a 20 mA es usando optoacopladores. Un
optoacoplador consiste en un led y un fototransistor los cuales, unidos, trabajan como
un réle. Cuando la señal de entrada polariza en directo al led, la luz emitida por el
diodo provoca que el transistor conduzca. Como no existe conexión eléctrica entre el
diodo y el transistor, se obtiene un aislamiento eléctrico entre el transmisor y el
receptor, que es otra ventaja de este tipo de interfaz.

Interfaz TTL/20mA

En la siguiente figura se muestra como obtener la interfaz TTL/20mA a través de un
optoacoplador con una línea transmisora y otra receptora. La línea transmisora TXD
provee los niveles TTL (0/5V). Un nivel lógico "1" (5V) en TXD será invertido a 0V por
el 7414 (un inversor trigger schmitt usado para proveer mejor inmunidad al ruido en el
circuito); este nivel, aplicado al cátodo del led provoca que conduzca, emitiendo luz
infrarroja a la base del fototransistor. Ello provoca que el fototransistor pueda conducir.
Si un "0" lógico aparece en TXD se aplicarán 5 voltios al cátodo del led y no conducirá,
manteniendo el fototransistor en corte y comportándose como un circuito abierto (se
abre el lazo de corriente). Es importante notar que el fototransistor no suministra los
20mA, este se comporta solo como un interruptor que cerrado permite que la corriente
fluya y abierto impide el paso de corriente.

Cuando 20 mA, o un "1" lógico, es aplicado al optoacoplador de la parte inferior de la
figura, el fototransistor conduce y aplica un nivel "0" a la entrada inversora, el cual
colocará un "1" lógico en la entrada de la línea receptora RXD. Si no fluye corriente en
el lazo, el fototransistor estará al corte y +5V se aplicarán a la entrada inversora por la
resistencia de 470 ohm a positivo (en pull-up). El inversor colocará en "0" lógico en
RXD, la entrada a la línea receptora.

Cuando se transmite información a través de una línea serie es necesario utilizar un
sistema de codificación que permita resolver los siguientes problemas:

   1. Sincronización de bits: El receptor necesita saber donde comienza y donde
      termina cada bit en la señal recibida para efectuar el muestreo de la misma en
      el centro del intervalo de cada símbolo (bit para señales binarias).
   2. Sincronización del carácter: La información serie se transmite por definición
      bit a bit, pero la misma tiene sentido en palabras o bytes.
   3. Sincronización del mensaje: Es necesario conocer el inicio y fin de una
      cadena de caracteres por parte del receptor para, por ejemplo, detectar algún
      error en la comunicación de un mensaje.

Típicamente, la comunicación serial se utiliza para transmitir datos en formato ASCII.
Para realizar la comunicación se utilizan 3 líneas de transmisión: Tierra (o referencia),
Transmitir, Recibir. Debido a que la transmisión es asincrónica, es posible enviar datos
por una línea mientras se reciben datos por otra. Existen otras líneas disponibles para
realizar handshaking, o intercambio de pulsos de sincronización, pero no son
requeridas. Las características más importantes de la comunicación serial son la
velocidad de transmisión, la base de reloj, líneas o canales de comunicación, los
bits de datos, los bits de parada, y la paridad. Para que dos puertos se puedan
comunicar, es necesario que las características sean iguales.

Velocidad de transmisión: La velocidad de transmisión de datos es expresada en
bits por segundo o baudios. El baudio es un concepto más general que bit por
segundo. El primero queda definido como el número de estados de la señal por
segundo, si sólo existe dos estados (que pueden ser representados por un bit, que
identifica dos unidades de información) entonces baudio es equivalente a bit por
segundo. Baudio y bit por segundo se diferencian cuando es necesario más de un bit
para representar más de dos estados de la señal.

La velocidad de transmisión queda limitada por el ancho de banda, potencia de señal y
ruido en el conductor de señal. La velocidad de transmisión queda básicamente
establecida por el reloj. Su función es examinar o muestrear continuamente la línea
para detectar la presencia o ausencia de los niveles de señal ya predefinidos. El reloj
sincroniza además todos los componentes internos.

La base de reloj: Cuando se establece la comunicación es necesario implementar
una base de tiempo que controle la velocidad. En un microcontrolador, se utilizaría la
base de tiempos del reloj del sistema, en términos generales se utilizaría uno de los
siguientes métodos:

   a. Mediante la división de la base de reloj del sistema. por ejemplo mediante un
      contador temporizador programable.
   b. A través de un oscilador TTL. Para cambiar frecuencia hay que cambiar el
      cristal.
   c. Generador de razón de baudios. Existen diferentes dispositivos especializados
      que generan diferentes frecuencias de reloj.

Líneas o canales de comunicación: Se pueden establecer canales para la
comunicación de acuerdo a tres técnicas, siempre tomando al microprocesador o
microcontrolador como referencia (transmisor) y al periférico como destino (receptor):
Simplex: En ella la comunicación serie usa una dirección y una línea de
comunicación. Siempre existirá un transmisor y un receptor, no ambos.

La ventaja de este sistema consiste en que es necesario sólo un enlace a dos hilos.

La desventaja radica en que el extremo receptor no tiene ninguna forma de avisar al
extremo transmisor sobre su estado y sobre la calidad de la información que se recibe.
Esta es la razón por la cual, generalmente, no se utiliza.

Semi dúplex: La comunicación serie se establece a través de una sola línea, pero en
ambos sentidos. En un momento el transmisor enviará información y en otro recibirá,
por lo que no se puede transferir información en ambos sentidos de forma simultánea.

Este modo permite la transmisión desde el extremo receptor de la información, sobre
el estado de dicho receptor y sobre la calidad de la información recibida por lo que
permite así la realización de procedimientos de detección y corrección de errores.

Full dúplex: Se utilizan dos líneas (una transmisora y otra receptora) y se transfiere
información en ambos sentidos. La ventaja de este método es que se puede transmitir
y recibir información de manera simultánea.

La mayoría de los dispositivos especializados para la comunicación pueden transferir
información tanto en full dúplex como en half dúplex (el modo simplex es un caso
especial dentro de half dúplex).

Existen dos modos básicos para realizar la transmisión de datos y son: modo
asíncrono y modo síncrono, pero en este caso no es necesario tener en cuenta el
modo síncrono.

Las transmisiones asíncronas son aquellas en que los bits que constituyen el código
de un carácter se emiten con la ayuda de impulsos suplementarios que permiten
mantener en sincronismo los dos extremos.

En las transmisiones síncronas los caracteres se transmiten consecutivamente, no
existiendo ni bit de inicio ni bit de parada entre los caracteres, estando dividida la
corriente de caracteres en bloques, enviándose una secuencia de sincronización al
inicio de cada bloque.

La transmisión asíncrona

Cuando se opera en modo asíncrono no existe una línea de reloj común que
establezca la duración de un bit y el caracter puede ser enviado en cualquier
momento. Esto conlleva que cada dispositivo tiene su propio reloj y que previamente
se ha acordado que ambos dispositivos transmitirán datos a la misma velocidad.

No obstante, en un sistema digital, un reloj es normalmente utilizado para sincronizar
la transferencia de datos entre las diferentes partes del sistema. El reloj definirá el
inicio y fin de cada unidad de información así como la velocidad de transmisión. Si no
existe reloj común, algún modo debe ser utilizado para sincronizar el mensaje.

En realidad, la frecuencia con que el reloj muestrea la línea de comunicación es
mucho mayor que la cadencia con que llegan los datos. La gran rapidez con que el
reloj muestrea la línea, permite al dispositivo receptor detectar una transmisión de 1 a
0 o de 0 a 1 muy rápidamente, y mantener así la mejor sincronización entre los
dispositivos emisor y receptor.

Bit de inicio y bit de parada

En la transmisión asíncrona un caracter a transmitir es encuadrado con un indicador
de inicio y fin de carácter, de la misma forma que se separa una palabra con una letra
mayúscula y un espacio en una oración. La forma estándar de encuadrar un carácter
es a través de un bit de inicio y un bit de parada.

Durante el intervalo de tiempo en que no son transferidos caracteres, el canal debe
poseer un "1" lógico. Al bit de parada se le asigna también un "1". Al bit de inicio del
carácter a transmitir se le asigna un "0". Por todo lo anterior, un cambio de nivel de "1"
a "0" lógico le indicará al receptor que un nuevo carácter será transmitido.

Reglas de transmisión asíncrona

La transmisión asíncrona que vamos a ver es la definida por la norma RS232, que se
basa en las siguientes reglas:

   a. Cuando no se envían datos por la línea, ésta se mantiene en estado alto (1).
   b. Cuando se desea transmitir un carácter, se envía primero un bit de inicio que
      pone la línea en un estado bajo (0) durante el tiempo de un bit.
   c. 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.
   d. 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.
   e. Se envía primero el bit menos significativo, siendo el más significativo el último
      en enviarse.
   f. 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
siguientes:

   a.   Esperar la transición 1 a 0 en la señal recibida.
   b.   Activar el reloj con una frecuencia igual a la del transmisor.
   c.   Muestrear la señal recibida al ritmo de ese reloj para formar el mensaje.
   d.   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.

Velocidad de transmisión

En la transmisión asíncrona por cada caracter se envía al menos 1 bit de inicio y 1 bit
de parada así como opcionalmente 1 bit de paridad. Esta es la razón de que los
baudios no se correspondan con el número de bits de datos que son transmitidos.
Detectar errores en la comunicación

Cuando se escriben o se envían datos, pueden producirse errores, entre otras cosas,
por ruidos inducidos en las líneas de transmisión de datos. Es por tanto necesario
comprobar la integridad de los datos transmitidos mediante algún método que permita
determina si se ha producido un error.

En un caso típico, si al transmitirse un mensaje se determina que se ha producido un
error, el receptor solicita de nuevo el mensaje al emisor.

Se pueden detectar errores de acuerdo a la forma de transmisión:

   1. Transmisión asíncrona:
         a. Paridad.
         b. Sobre escritura.
         c. Error de encuadre (framing).
   2. Transmisión síncrona:
         a. Paridad.
         b. Sobre escritura.

Generadores y detectores de paridad: Como un error en una transmisión serie
solamente suele afectar a un bit, uno de los métodos más comunes para detectar
errores es el control de la paridad.

El control de paridad consiste en añadir un bit, denominado de paridad, a los datos
que se envían o escriben. La paridad puede ser par o impar.

Paridad par: El bit de paridad será cero, cuando el número de bit "unos" que
contienen los datos a transmitir sea un número par, y el bit de paridad será uno
cuando los datos que se mandan contienen un número impar de unos. La suma de los
bits que son unos, contando datos y bit de paridad dará siempre como resultado un
número par de unos.

En las siguientes figuras se muestra como se puede realizar un generador de paridad
y un detector de paridad con puertas lógicas or-exclusivas (XOR).



Paridad impar: En el sistema de paridad impar, el número de unos (datos + paridad)
siempre debe ser impar.

Por último, definiremos handshaking (o intercambio de pulsos de
sincronización), que es El método de comunicación usado por RS-232 requiere de
una conexión muy simple, utilizando sólo tres líneas: Tx, Rx, y GND. Sin embargo,
para que los datos puedan ser transmitidos correctamente ambos extremos deben
estar sincronizados a la misma velocidad. Aun y cuando este método es más que
suficiente para la mayoría de las aplicaciones, es limitado en su respuesta a posibles
problemas que puedan surgir durante la comunicación; por ejemplo, si el receptor se
comienza a sobrecargar de información. Es en estos casos cuando handshaking, es
útil.

Handshaking por software: Ésta será la primera forma de handshaking. Esta forma
de sincronización utiliza bytes de datos como caracteres de control, de manera similar
a como GPIB utiliza las cadenas de caracteres como comandos. Las líneas necesarias
para la comunicación siguen siendo Tx, Rx, y GND, ya que los caracteres de control
se envían a través de las líneas de transmisión como si fueran datos. La función
SetXMode permite al usuario habilitar o deshabilitar el uso de dos caracteres de
control: XON y XOFF. Estos caracteres son enviados por el receptor para pausar al
transmisor durante la comunicación.

La mayor desventaja de este método es además lo más importante a considerar: los
números decimales 17 y 19 son ahora los límites para la transmisión. Cuando se
transmite en ASCII, esto no importa mucho ya que estos valores no representan
caracter alguno. Sin embargo, si la transmisión de datos es en binario, lo más probable
es que estos valores sean transmitidos como datos regulares y falle la comunicación.

Handshaking por hardware: El segundo método de handshaking utiliza líneas de
hardware. De manera similar a las líneas Tx y Rx, las líneas RTS/CTS y DTR/DSR
trabajan de manera conjunta siendo un par la entrada y el otro par la salida. El primer
par de líneas es RTS (por sus siglas en inglés, Request to Send) y CTS (Clear to
Send). Cuando el receptor está listo para recibir datos, cambia la línea RTS a estado
alto; este valor será leído por el transmisor en la línea CTS, indicando que está libre
para enviar datos. El siguiente par de líneas es DTR (por sus siglas en inglés, Data
Terminal Ready) y DSR (Data Set Ready). Estas líneas se utilizan principalmente para
comunicación por modem, permiten al puerto serial y modem indicarse mutuamente su
estado. Por ejemplo, cuando el modem se encuentra preparado para que la PC envíe
datos, cambia la línea DTR a estado alto indicando que se ha realizado una conexión
por la línea de teléfono. Este valor se lee a través de la línea DSR y la PC comienza a
enviar datos. Como regla general, las líneas DTR/DSR se utilizan para indicar que el
sistema está listo para la comunicación, mientras que las líneas RTS/CTS se utilizan
para paquetes individuales de datos.

COMPLEMENTO DE TIPOS DE COMUNICACIONES EN SERIE

La transmisión síncrona

Es un método más eficiente de comunicación en cuanto a velocidad de transmisión.
Ello viene dado porque no existe ningún tipo de información adicional entre los
caracteres a ser transmitidos.

Cuando se transmite de manera síncrona lo primero que se envía es un octeto de
sincronismo ("sync"). El octeto de sincronismo realiza la misma función que el bit de
inicio en la transmisión asíncrona, indicando al receptor que va ha ser enviado un
mensaje. Este carater, además, utiliza la señal local de reloj para determinar cuándo y
con qué frecuencia será muestreada la señal, es decir, permite sincronizar los relojes
de los dispositivos transmisor y receptor. La mayoría de los dispositivos de
comunicación llevan a cabo una resincronización contra posibles desviaciones del
reloj, cada uno o dos segundos, insertando para ello caracteres del tipo "sync"
periódicamente dentro del mensaje.

Los carácteres de sincronismo deben diferenciarse de los datos del usuario para
permitir al receptor detectar los caracteres "sync". Por ejemplo, el código ASCII utiliza
el octeto 10010110.
Existen ocasiones en que son definidos dos caracteres de sincronismo, ello puede ser
necesario si, por cualquier motivo el caracter "sync" original se desvirtuara, el siguiente
permitirá la reinicialización del receptor. En segundo lugar, puede ocurrir que el equipo
receptor necesite un tiempo adicional para adaptarse a la señal entrante.

Cuando se transmite de forma síncrona, es necesario mantener el sincronismo entre el
trasnmisor y el receptor cuando no se envían caracteres, para ello son insertados
caracteres de sincronismo de manera automática por el dispositivo que realiza la
comunicación.

El receptor/transmisor síncrono debe indicar además cuándo el sincronismo ha sido
logrado por parte del receptor.

Detectar errores en la comunicación

Cuando se escriben o se envían datos, pueden producirse errores, entre otras cosas,
por ruidos inducidos en las líneas de transmisión de datos. Es por tanto necesario
comprobar la integridad de los datos transmitidos mediante algún método que permita
determina sis se ha producido un error.

En un caso típico, si al transmitirse un mensaje se determina que se ha producido un
error, el receptor solicita de nuevo el mensaje al emisor.



Por esas razones la comunicación serial es utilizada en casi todas las comunicaciones
y redes de computadores, porque las dificultades de sincronización hacen a la
comunicación paralela poco práctica, y está siendo obstaculizada por la comunicación
vía USB.



Bibliografía

http://es.scribd.com/doc/2176033/Morse

http://galaxi0.wordpress.com/el-puerto-serial/

Sistemas de comunicaciones electrónicas: Wayne Tomasi.

Más contenido relacionado

La actualidad más candente

Bus i2 c de arduino
Bus i2 c de arduinoBus i2 c de arduino
Bus i2 c de arduinoFabio Sierra
 
Comunicación Serial entre un microcontrolador y un PC
Comunicación Serial entre un microcontrolador y un PCComunicación Serial entre un microcontrolador y un PC
Comunicación Serial entre un microcontrolador y un PCFernando Cahueñas
 
Modulacion Y Demodulacion
Modulacion Y DemodulacionModulacion Y Demodulacion
Modulacion Y Demodulacionmariagupena
 
Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)Laura
 
Sistema de transmision banda base
Sistema de transmision banda baseSistema de transmision banda base
Sistema de transmision banda baseDouglas
 
Codificación y protocolos en telecomunicaciones
Codificación y protocolos en telecomunicacionesCodificación y protocolos en telecomunicaciones
Codificación y protocolos en telecomunicacionesgizaclub
 
Modulacion De Banda Base
Modulacion De Banda BaseModulacion De Banda Base
Modulacion De Banda Basealdomayra
 
Guia 4 modos de transmisión
Guia 4   modos de transmisiónGuia 4   modos de transmisión
Guia 4 modos de transmisiónJuan Acosta
 
Codificacion de una señal en banda base
Codificacion de una señal en banda baseCodificacion de una señal en banda base
Codificacion de una señal en banda basereichiano
 

La actualidad más candente (20)

Conceptos
ConceptosConceptos
Conceptos
 
Bus i2 c de arduino
Bus i2 c de arduinoBus i2 c de arduino
Bus i2 c de arduino
 
Unidad V
Unidad VUnidad V
Unidad V
 
Transmision pasa banda
Transmision  pasa bandaTransmision  pasa banda
Transmision pasa banda
 
Comunicación Serial entre un microcontrolador y un PC
Comunicación Serial entre un microcontrolador y un PCComunicación Serial entre un microcontrolador y un PC
Comunicación Serial entre un microcontrolador y un PC
 
Modulacion Y Demodulacion
Modulacion Y DemodulacionModulacion Y Demodulacion
Modulacion Y Demodulacion
 
Modo de transferencia asíncrona (atm)
Modo de transferencia asíncrona (atm)Modo de transferencia asíncrona (atm)
Modo de transferencia asíncrona (atm)
 
Rs232
Rs232Rs232
Rs232
 
Comunicación I2C y SPI
Comunicación I2C y SPIComunicación I2C y SPI
Comunicación I2C y SPI
 
Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)
 
Sistema de transmision banda base
Sistema de transmision banda baseSistema de transmision banda base
Sistema de transmision banda base
 
Codificación y protocolos en telecomunicaciones
Codificación y protocolos en telecomunicacionesCodificación y protocolos en telecomunicaciones
Codificación y protocolos en telecomunicaciones
 
Codigo manchester
Codigo manchesterCodigo manchester
Codigo manchester
 
Codigos de linea
Codigos de lineaCodigos de linea
Codigos de linea
 
Modulacion De Banda Base
Modulacion De Banda BaseModulacion De Banda Base
Modulacion De Banda Base
 
Comunicación Serie
Comunicación SerieComunicación Serie
Comunicación Serie
 
Digitalización de las señales de abonado
Digitalización de las señales de abonadoDigitalización de las señales de abonado
Digitalización de las señales de abonado
 
Guia 4 modos de transmisión
Guia 4   modos de transmisiónGuia 4   modos de transmisión
Guia 4 modos de transmisión
 
motor paso a paso
 motor paso a paso motor paso a paso
motor paso a paso
 
Codificacion de una señal en banda base
Codificacion de una señal en banda baseCodificacion de una señal en banda base
Codificacion de una señal en banda base
 

Destacado

Безжични комуникационни устройства
Безжични комуникационни устройстваБезжични комуникационни устройства
Безжични комуникационни устройстваBoriana Yordanova
 
компютърна система с процесор Intel pentium
компютърна система с процесор Intel pentiumкомпютърна система с процесор Intel pentium
компютърна система с процесор Intel pentiumdnaidenowa
 
9 pentium pentium pro
9 pentium pentium pro9 pentium pentium pro
9 pentium pentium prodnaidenowa
 
Pentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme editionPentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme editiondnaidenowa
 

Destacado (7)

Pentium iii
Pentium iiiPentium iii
Pentium iii
 
Безжични комуникационни устройства
Безжични комуникационни устройстваБезжични комуникационни устройства
Безжични комуникационни устройства
 
Pentium ii
Pentium iiPentium ii
Pentium ii
 
компютърна система с процесор Intel pentium
компютърна система с процесор Intel pentiumкомпютърна система с процесор Intel pentium
компютърна система с процесор Intel pentium
 
9 pentium pentium pro
9 pentium pentium pro9 pentium pentium pro
9 pentium pentium pro
 
Pentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme editionPentium 4 pentium 4 extreme edition
Pentium 4 pentium 4 extreme edition
 
Celeron
CeleronCeleron
Celeron
 

Similar a COMUNICACIÓN SERIAL: PROTOCOLO, ESTÁNDARES Y CARACTERÍSTICAS

Similar a COMUNICACIÓN SERIAL: PROTOCOLO, ESTÁNDARES Y CARACTERÍSTICAS (20)

Arquitectura decomputadoras
Arquitectura decomputadorasArquitectura decomputadoras
Arquitectura decomputadoras
 
Norma RS232
Norma RS232Norma RS232
Norma RS232
 
pre4_2.2.docx
pre4_2.2.docxpre4_2.2.docx
pre4_2.2.docx
 
Modem 1
Modem 1Modem 1
Modem 1
 
Modem 1
Modem 1Modem 1
Modem 1
 
Banda ancha y banda base
Banda ancha y banda baseBanda ancha y banda base
Banda ancha y banda base
 
Sist. de Comunicacion
Sist. de ComunicacionSist. de Comunicacion
Sist. de Comunicacion
 
actividad 1
actividad 1actividad 1
actividad 1
 
Conceptos generales de redes
Conceptos generales de redesConceptos generales de redes
Conceptos generales de redes
 
interfaces y perifericos.pdf
interfaces y perifericos.pdfinterfaces y perifericos.pdf
interfaces y perifericos.pdf
 
Modem 1
Modem 1Modem 1
Modem 1
 
Conceptos Generales De Redes
Conceptos Generales De RedesConceptos Generales De Redes
Conceptos Generales De Redes
 
Modem 1
Modem 1Modem 1
Modem 1
 
Modem 1
Modem 1Modem 1
Modem 1
 
Capa 2
Capa 2Capa 2
Capa 2
 
Capa 2
Capa 2Capa 2
Capa 2
 
Ejemplos de simplex
Ejemplos de simplexEjemplos de simplex
Ejemplos de simplex
 
Construccion de una red local
Construccion de una red localConstruccion de una red local
Construccion de una red local
 
Modems
ModemsModems
Modems
 
Redes de datos
Redes de datosRedes de datos
Redes de datos
 

COMUNICACIÓN SERIAL: PROTOCOLO, ESTÁNDARES Y CARACTERÍSTICAS

  • 1. COMUNICACIONES EN SERIE La comunicación serial es un protocolo muy común para comunicación entre dispositivos que se incluye de manera estándar en prácticamente cualquier computadora. La mayoría de las computadoras incluyen dos puertos seriales RS-232. La comunicación serial es también un protocolo común utilizado por varios dispositivos para instrumentación; existen varios dispositivos compatibles con GPIB que incluyen un puerto RS232. Además, la comunicación serial puede ser utilizada para adquisición de datos si se usa en conjunto con un dispositivo remoto de muestreo. La comunicación serial consiste en el envío de un bit de información de manera secuencial, esto es, un bit a la vez y a un ritmo acordado entre el emisor y el receptor. El concepto de comunicación serial es sencillo. El puerto serial envía y recibe bytes de información un bit a la vez. Aun 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, la especificación IEEE 488para la comunicación en paralelo determina que el largo del cable para el equipo no puede ser mayor a 20 metros, con no más de 2 metros entre cualesquier dos dispositivos; por el otro lado, utilizando comunicación serial el largo del cable puede llegar a los 1200 metros. En primer lugar, nos concentraremos en la comunicación serie a través de la interpretación de dos niveles lógicos de tensión o corriente denominado formato marca/espacio. Este formato se debe al señor Morse, ya que, invento un dispositivo que enviaba sonidos y largos, que representan los caracteres. En el código Morse, los sonidos cortos se llaman espacios y los sonidos largos se denominan marcas. Por lo tanto, esto es un código binario, porque usa solo 2 valores posibles: espacio y marca. En el caso de las computadoras se diría que trabaja con los números 0 y 1, dependiendo de cada bit. El nivel lógico "1" representa un estado de tensión o corriente denominado marca, el nivel lógico "0" representa un estado de tensión o corriente denominado espacio. Existen varios estándares que usan el formato marca/espacio, de los que nos interesan: TTL Lazo de corriente de 20mA RS232
  • 2. Niveles para cada estándar. Nivel Lógico "1" (Marca) Nivel Lógico "0" (Espacio) TTL 5V 0 Lazo 20 mA 20 mA 0 mA RS 232C -3V a -15V +3V a +15V Enlace TTL Lazo de corriente 20mA El lazo de corriente de 20 mA es usado para transmitir datos hasta 1609m (1 milla). Para este tipo de interfaz la señal del sistema de datos debe ser convertida a 20mA para ser aceptada por el periférico. Una forma barata de convertir TTL a 20 mA es usando optoacopladores. Un optoacoplador consiste en un led y un fototransistor los cuales, unidos, trabajan como un réle. Cuando la señal de entrada polariza en directo al led, la luz emitida por el diodo provoca que el transistor conduzca. Como no existe conexión eléctrica entre el diodo y el transistor, se obtiene un aislamiento eléctrico entre el transmisor y el receptor, que es otra ventaja de este tipo de interfaz. Interfaz TTL/20mA En la siguiente figura se muestra como obtener la interfaz TTL/20mA a través de un optoacoplador con una línea transmisora y otra receptora. La línea transmisora TXD provee los niveles TTL (0/5V). Un nivel lógico "1" (5V) en TXD será invertido a 0V por el 7414 (un inversor trigger schmitt usado para proveer mejor inmunidad al ruido en el circuito); este nivel, aplicado al cátodo del led provoca que conduzca, emitiendo luz infrarroja a la base del fototransistor. Ello provoca que el fototransistor pueda conducir. Si un "0" lógico aparece en TXD se aplicarán 5 voltios al cátodo del led y no conducirá, manteniendo el fototransistor en corte y comportándose como un circuito abierto (se abre el lazo de corriente). Es importante notar que el fototransistor no suministra los 20mA, este se comporta solo como un interruptor que cerrado permite que la corriente fluya y abierto impide el paso de corriente. Cuando 20 mA, o un "1" lógico, es aplicado al optoacoplador de la parte inferior de la figura, el fototransistor conduce y aplica un nivel "0" a la entrada inversora, el cual colocará un "1" lógico en la entrada de la línea receptora RXD. Si no fluye corriente en el lazo, el fototransistor estará al corte y +5V se aplicarán a la entrada inversora por la
  • 3. resistencia de 470 ohm a positivo (en pull-up). El inversor colocará en "0" lógico en RXD, la entrada a la línea receptora. Cuando se transmite información a través de una línea serie es necesario utilizar un sistema de codificación que permita resolver los siguientes problemas: 1. Sincronización de bits: El receptor necesita saber donde comienza y donde termina cada bit en la señal recibida para efectuar el muestreo de la misma en el centro del intervalo de cada símbolo (bit para señales binarias). 2. Sincronización del carácter: La información serie se transmite por definición bit a bit, pero la misma tiene sentido en palabras o bytes. 3. Sincronización del mensaje: Es necesario conocer el inicio y fin de una cadena de caracteres por parte del receptor para, por ejemplo, detectar algún error en la comunicación de un mensaje. Típicamente, la comunicación serial se utiliza para transmitir datos en formato ASCII. Para realizar la comunicación se utilizan 3 líneas de transmisión: Tierra (o referencia), Transmitir, Recibir. Debido a que la transmisión es asincrónica, es posible enviar datos por una línea mientras se reciben datos por otra. Existen otras líneas disponibles para realizar handshaking, o intercambio de pulsos de sincronización, pero no son requeridas. Las características más importantes de la comunicación serial son la velocidad de transmisión, la base de reloj, líneas o canales de comunicación, los bits de datos, los bits de parada, y la paridad. Para que dos puertos se puedan comunicar, es necesario que las características sean iguales. Velocidad de transmisión: La velocidad de transmisión de datos es expresada en bits por segundo o baudios. El baudio es un concepto más general que bit por segundo. El primero queda definido como el número de estados de la señal por segundo, si sólo existe dos estados (que pueden ser representados por un bit, que identifica dos unidades de información) entonces baudio es equivalente a bit por segundo. Baudio y bit por segundo se diferencian cuando es necesario más de un bit para representar más de dos estados de la señal. La velocidad de transmisión queda limitada por el ancho de banda, potencia de señal y ruido en el conductor de señal. La velocidad de transmisión queda básicamente establecida por el reloj. Su función es examinar o muestrear continuamente la línea para detectar la presencia o ausencia de los niveles de señal ya predefinidos. El reloj sincroniza además todos los componentes internos. La base de reloj: Cuando se establece la comunicación es necesario implementar una base de tiempo que controle la velocidad. En un microcontrolador, se utilizaría la base de tiempos del reloj del sistema, en términos generales se utilizaría uno de los siguientes métodos: a. Mediante la división de la base de reloj del sistema. por ejemplo mediante un contador temporizador programable. b. A través de un oscilador TTL. Para cambiar frecuencia hay que cambiar el cristal. c. Generador de razón de baudios. Existen diferentes dispositivos especializados que generan diferentes frecuencias de reloj. Líneas o canales de comunicación: Se pueden establecer canales para la comunicación de acuerdo a tres técnicas, siempre tomando al microprocesador o microcontrolador como referencia (transmisor) y al periférico como destino (receptor):
  • 4. Simplex: En ella la comunicación serie usa una dirección y una línea de comunicación. Siempre existirá un transmisor y un receptor, no ambos. La ventaja de este sistema consiste en que es necesario sólo un enlace a dos hilos. La desventaja radica en que el extremo receptor no tiene ninguna forma de avisar al extremo transmisor sobre su estado y sobre la calidad de la información que se recibe. Esta es la razón por la cual, generalmente, no se utiliza. Semi dúplex: La comunicación serie se establece a través de una sola línea, pero en ambos sentidos. En un momento el transmisor enviará información y en otro recibirá, por lo que no se puede transferir información en ambos sentidos de forma simultánea. Este modo permite la transmisión desde el extremo receptor de la información, sobre el estado de dicho receptor y sobre la calidad de la información recibida por lo que permite así la realización de procedimientos de detección y corrección de errores. Full dúplex: Se utilizan dos líneas (una transmisora y otra receptora) y se transfiere información en ambos sentidos. La ventaja de este método es que se puede transmitir y recibir información de manera simultánea. La mayoría de los dispositivos especializados para la comunicación pueden transferir información tanto en full dúplex como en half dúplex (el modo simplex es un caso especial dentro de half dúplex). Existen dos modos básicos para realizar la transmisión de datos y son: modo asíncrono y modo síncrono, pero en este caso no es necesario tener en cuenta el modo síncrono. Las transmisiones asíncronas son aquellas en que los bits que constituyen el código de un carácter se emiten con la ayuda de impulsos suplementarios que permiten mantener en sincronismo los dos extremos. En las transmisiones síncronas los caracteres se transmiten consecutivamente, no existiendo ni bit de inicio ni bit de parada entre los caracteres, estando dividida la corriente de caracteres en bloques, enviándose una secuencia de sincronización al inicio de cada bloque. La transmisión asíncrona Cuando se opera en modo asíncrono no existe una línea de reloj común que establezca la duración de un bit y el caracter puede ser enviado en cualquier momento. Esto conlleva que cada dispositivo tiene su propio reloj y que previamente se ha acordado que ambos dispositivos transmitirán datos a la misma velocidad. No obstante, en un sistema digital, un reloj es normalmente utilizado para sincronizar la transferencia de datos entre las diferentes partes del sistema. El reloj definirá el inicio y fin de cada unidad de información así como la velocidad de transmisión. Si no existe reloj común, algún modo debe ser utilizado para sincronizar el mensaje. En realidad, la frecuencia con que el reloj muestrea la línea de comunicación es mucho mayor que la cadencia con que llegan los datos. La gran rapidez con que el reloj muestrea la línea, permite al dispositivo receptor detectar una transmisión de 1 a
  • 5. 0 o de 0 a 1 muy rápidamente, y mantener así la mejor sincronización entre los dispositivos emisor y receptor. Bit de inicio y bit de parada En la transmisión asíncrona un caracter a transmitir es encuadrado con un indicador de inicio y fin de carácter, de la misma forma que se separa una palabra con una letra mayúscula y un espacio en una oración. La forma estándar de encuadrar un carácter es a través de un bit de inicio y un bit de parada. Durante el intervalo de tiempo en que no son transferidos caracteres, el canal debe poseer un "1" lógico. Al bit de parada se le asigna también un "1". Al bit de inicio del carácter a transmitir se le asigna un "0". Por todo lo anterior, un cambio de nivel de "1" a "0" lógico le indicará al receptor que un nuevo carácter será transmitido. Reglas de transmisión asíncrona La transmisión asíncrona que vamos a ver es la definida por la norma RS232, que se basa en las siguientes reglas: a. Cuando no se envían datos por la línea, ésta se mantiene en estado alto (1). b. Cuando se desea transmitir un carácter, se envía primero un bit de inicio que pone la línea en un estado bajo (0) durante el tiempo de un bit. c. 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. d. 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. e. Se envía primero el bit menos significativo, siendo el más significativo el último en enviarse. f. 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 siguientes: a. Esperar la transición 1 a 0 en la señal recibida. b. Activar el reloj con una frecuencia igual a la del transmisor. c. Muestrear la señal recibida al ritmo de ese reloj para formar el mensaje. d. 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. Velocidad de transmisión En la transmisión asíncrona por cada caracter se envía al menos 1 bit de inicio y 1 bit de parada así como opcionalmente 1 bit de paridad. Esta es la razón de que los baudios no se correspondan con el número de bits de datos que son transmitidos.
  • 6. Detectar errores en la comunicación Cuando se escriben o se envían datos, pueden producirse errores, entre otras cosas, por ruidos inducidos en las líneas de transmisión de datos. Es por tanto necesario comprobar la integridad de los datos transmitidos mediante algún método que permita determina si se ha producido un error. En un caso típico, si al transmitirse un mensaje se determina que se ha producido un error, el receptor solicita de nuevo el mensaje al emisor. Se pueden detectar errores de acuerdo a la forma de transmisión: 1. Transmisión asíncrona: a. Paridad. b. Sobre escritura. c. Error de encuadre (framing). 2. Transmisión síncrona: a. Paridad. b. Sobre escritura. Generadores y detectores de paridad: Como un error en una transmisión serie solamente suele afectar a un bit, uno de los métodos más comunes para detectar errores es el control de la paridad. El control de paridad consiste en añadir un bit, denominado de paridad, a los datos que se envían o escriben. La paridad puede ser par o impar. Paridad par: El bit de paridad será cero, cuando el número de bit "unos" que contienen los datos a transmitir sea un número par, y el bit de paridad será uno cuando los datos que se mandan contienen un número impar de unos. La suma de los bits que son unos, contando datos y bit de paridad dará siempre como resultado un número par de unos. En las siguientes figuras se muestra como se puede realizar un generador de paridad y un detector de paridad con puertas lógicas or-exclusivas (XOR). Paridad impar: En el sistema de paridad impar, el número de unos (datos + paridad) siempre debe ser impar. Por último, definiremos handshaking (o intercambio de pulsos de sincronización), que es El método de comunicación usado por RS-232 requiere de una conexión muy simple, utilizando sólo tres líneas: Tx, Rx, y GND. Sin embargo, para que los datos puedan ser transmitidos correctamente ambos extremos deben estar sincronizados a la misma velocidad. Aun y cuando este método es más que suficiente para la mayoría de las aplicaciones, es limitado en su respuesta a posibles problemas que puedan surgir durante la comunicación; por ejemplo, si el receptor se comienza a sobrecargar de información. Es en estos casos cuando handshaking, es útil. Handshaking por software: Ésta será la primera forma de handshaking. Esta forma de sincronización utiliza bytes de datos como caracteres de control, de manera similar
  • 7. a como GPIB utiliza las cadenas de caracteres como comandos. Las líneas necesarias para la comunicación siguen siendo Tx, Rx, y GND, ya que los caracteres de control se envían a través de las líneas de transmisión como si fueran datos. La función SetXMode permite al usuario habilitar o deshabilitar el uso de dos caracteres de control: XON y XOFF. Estos caracteres son enviados por el receptor para pausar al transmisor durante la comunicación. La mayor desventaja de este método es además lo más importante a considerar: los números decimales 17 y 19 son ahora los límites para la transmisión. Cuando se transmite en ASCII, esto no importa mucho ya que estos valores no representan caracter alguno. Sin embargo, si la transmisión de datos es en binario, lo más probable es que estos valores sean transmitidos como datos regulares y falle la comunicación. Handshaking por hardware: El segundo método de handshaking utiliza líneas de hardware. De manera similar a las líneas Tx y Rx, las líneas RTS/CTS y DTR/DSR trabajan de manera conjunta siendo un par la entrada y el otro par la salida. El primer par de líneas es RTS (por sus siglas en inglés, Request to Send) y CTS (Clear to Send). Cuando el receptor está listo para recibir datos, cambia la línea RTS a estado alto; este valor será leído por el transmisor en la línea CTS, indicando que está libre para enviar datos. El siguiente par de líneas es DTR (por sus siglas en inglés, Data Terminal Ready) y DSR (Data Set Ready). Estas líneas se utilizan principalmente para comunicación por modem, permiten al puerto serial y modem indicarse mutuamente su estado. Por ejemplo, cuando el modem se encuentra preparado para que la PC envíe datos, cambia la línea DTR a estado alto indicando que se ha realizado una conexión por la línea de teléfono. Este valor se lee a través de la línea DSR y la PC comienza a enviar datos. Como regla general, las líneas DTR/DSR se utilizan para indicar que el sistema está listo para la comunicación, mientras que las líneas RTS/CTS se utilizan para paquetes individuales de datos. COMPLEMENTO DE TIPOS DE COMUNICACIONES EN SERIE La transmisión síncrona Es un método más eficiente de comunicación en cuanto a velocidad de transmisión. Ello viene dado porque no existe ningún tipo de información adicional entre los caracteres a ser transmitidos. Cuando se transmite de manera síncrona lo primero que se envía es un octeto de sincronismo ("sync"). El octeto de sincronismo realiza la misma función que el bit de inicio en la transmisión asíncrona, indicando al receptor que va ha ser enviado un mensaje. Este carater, además, utiliza la señal local de reloj para determinar cuándo y con qué frecuencia será muestreada la señal, es decir, permite sincronizar los relojes de los dispositivos transmisor y receptor. La mayoría de los dispositivos de comunicación llevan a cabo una resincronización contra posibles desviaciones del reloj, cada uno o dos segundos, insertando para ello caracteres del tipo "sync" periódicamente dentro del mensaje. Los carácteres de sincronismo deben diferenciarse de los datos del usuario para permitir al receptor detectar los caracteres "sync". Por ejemplo, el código ASCII utiliza el octeto 10010110.
  • 8. Existen ocasiones en que son definidos dos caracteres de sincronismo, ello puede ser necesario si, por cualquier motivo el caracter "sync" original se desvirtuara, el siguiente permitirá la reinicialización del receptor. En segundo lugar, puede ocurrir que el equipo receptor necesite un tiempo adicional para adaptarse a la señal entrante. Cuando se transmite de forma síncrona, es necesario mantener el sincronismo entre el trasnmisor y el receptor cuando no se envían caracteres, para ello son insertados caracteres de sincronismo de manera automática por el dispositivo que realiza la comunicación. El receptor/transmisor síncrono debe indicar además cuándo el sincronismo ha sido logrado por parte del receptor. Detectar errores en la comunicación Cuando se escriben o se envían datos, pueden producirse errores, entre otras cosas, por ruidos inducidos en las líneas de transmisión de datos. Es por tanto necesario comprobar la integridad de los datos transmitidos mediante algún método que permita determina sis se ha producido un error. En un caso típico, si al transmitirse un mensaje se determina que se ha producido un error, el receptor solicita de nuevo el mensaje al emisor. Por esas razones la comunicación serial es utilizada en casi todas las comunicaciones y redes de computadores, porque las dificultades de sincronización hacen a la comunicación paralela poco práctica, y está siendo obstaculizada por la comunicación vía USB. Bibliografía http://es.scribd.com/doc/2176033/Morse http://galaxi0.wordpress.com/el-puerto-serial/ Sistemas de comunicaciones electrónicas: Wayne Tomasi.