Comunicación Asincrónica
Es la comunicación que ocurre cuando no se toma en cuenta el tiempo en la comunicación. Por ejemplo, es la comunicación de un terminal a una computadora central: el usuario puede enviar los datos en intervalos impredecibles.
Conceptos Generales:
- Los datos se guardan en forma binaria (ejemplo: la letra S se guarda 1010011)
- Los datos se transmiten en forma serial, bit por bit, en 0 y 1.
- Un “mark” es cuando se transmite el 1.
- Un “space” es cuando se transmite el 0.
- Tanto el DTE que transmite como el que recibe deben hacerlo a la misma velocidad de línea o velocidad de canal (line speed).
- La velocidad de una línea asincrónica se mide en bits per second (bps). Las velocidades más comunes son 1200 bps, 2400 bps y 9600 bps.
Cómo se realiza la comunicación:
- Todos los DTE se mantienen en el estado “mark”.
- Para avisar que comienza la comunicación se envía un “start bit”:
o Cambia el canal de “mark” a “space”.
o El tiempo de transmisión del start bit es igual al tiempo de transmisión de cada bit de dato.
o Cuando se recibe el start bit, ambos DTE son sincronizados para el tiempo que toma enviar el byte de dato.
- Una vez el byte de datos es recibido, el DTE que lo recibe lo debe procesar, o sea convertirlo de serial a paralelo.
- Si el DTE que envía sigue enviando bytes mientras el DTE que recibe está procesando, se van a perder algunos bytes.
- Por eso se envía uno o varios “stop bits” al final de cada byte de dato.
- El stop bit es el tiempo que el DTE que transmite debe esperar antes de enviar el próximo byte.
-
Stop bits
comunes: 1 bit, 1 ½ bits, 2 bits
- El stop y el start bit crean el “frame” del byte de dato.
Errores en la comunicación:
A veces los bits pueden cambiar de 1 a 0 o viceversa por alguna interferencia en el canal (como noise). El DTE que envía o recibe no tiene forma de saber si un bit fue transmitido correctamente. Se puede trasmitir el bit dos veces, pero si son diferentes no se sabe cuál es el correcto; y si son iguales no se sabe si el error ocurrió en los dos. Retransmitir todo el byte es muy costoso y tampoco asegura evitar errores.
Una alternativa para detectar errores es sumar todos los bits y determinar si la suma es par o impar. Este resultado se puede transmitir en un solo bit, llamado “parity bit”, transmitido junto al frame, después del último bit de datos y antes del “stop bit”. Los dos tipos de parity más conocidos son:
- Odd parity (impar) – la suma de todos los bits, incluyendo el parity bit, es impar.
à Si la suma de los datos es par, el parity bit es 1. (letra S 1010011, parity bit 1)
à Si la suma de los datos es impar, el parity bit es 0. (letra L 1001100, parity 0)
- Even parity (par) – la suma de todos los bits, incluyendo el parity bit, es par.
à Si la suma de los datos es par, el parity bit es 0. (letra S 1010011, parity bit 0)
à Si la suma de los datos es impar, el parity bit es 1. (letra L 1001100, parity 1)
El DTE que recibe sabe que hay un error si la suma de los bits es incorrecta. Este error se conoce como “parity error”. El DTE que transmite y el que recibe deben usar el mismo parity.
Otros tipos de parity:
- None – no se transmite ningún parity bit. Se usa para enviar grandes cantidades de datos.
- Mark parity – El parity bit siempre se transmite con valor de 1 (mark). Si no tiene ese valor, ocurre un error.
- Space parity – El parity bit siempre se transmite con valor de 0 (space). Si el parity no tiene ese valor, hay error en la comunicación.
Otros errores en un canal asincrónico:
- Overrun error – Ocurre cuando el DTE que recibe no procesa los datos con la rapidez necesaria. Se puede evitar reduciendo la carga de procesamiento o reduciendo la velocidad del canal.
- Framing error – Ocurre cuando el DTE que recibe no puede detectar el fin del frame. Este error puede ser causado por ruido (noise), que haya invertido el stop bit o el start bit.
Condición de Break – Sucede cuando el usuario oprime la tecla Break del teclado, interrumpiendo la transmisión.
Cuando se transmite datos, se usa un equipo para convertir el byte de paralelo a serial. Este equipo se llama Universal Asynchronous Receiver/Transmitter (UART). Las computadoras personales tienen por lo menos un UART, llamado interfase serial, puerto o salida serial (serial port) o asynchronous communication adapter. Cuando dos DTE se conectan, necesitan que la información sea convertida a una señal que pueda alcanzar al DTE que recibe. Este proceso es realizado por un convertidor de niveles (level converter), que codifica la información en señal eléctrica.