Академический Документы
Профессиональный Документы
Культура Документы
Transmisin de Datos
Controles Disp. Fsico: formato BS: Backspace HT: Horizontal Tab LF: Line Feed VT: Vertical Tab FF: Form Feed CR: Carriage Return Controles Disp. Fsico: otros BEL: Bell DC1, DC2, DC3, DC4: No assigned meaning in ASCII, but DC1 and DC3 are used for XON and XOFF in most software handshaking schemes. Controles lgicos para comunicaciones SOH: Start of Header STX: Start of Text ETX: End of Text EOT: End of Transmission ENQ: Enquiry
ACK: Acknowledge DLE: Data Link Escape NAK: Negative Acknowledge SYN: Synchronous Idle ETB: End of Transmission Block Controles para comunicacin fsica NUL: Null DEL: Delete CAN: Cancel EM: End of Medium SUB: Substitute Separadores de Informacin FS: File Separator GS: Group Separator RS: Record Separator US: Unit Separator Controles para extensiones de cdigo SI: Shift In SO: Shift Out ESC: Escape
Figura 1. Tabla de cdigos ASCII y relacin de caracteres de control. Estos caracteres son de entrada/salida para la transmisin, pero una vez recibidos en una mquina, lo normal es que se conviertan y almacenen a un formato binario de longitud fija (de 8, 1, 32 o 64 bits). Llamaremos byte a un grupo de 8 bits y palabra a un patrn ms largo, que depender del tipo de mquina. La transmisin de datos se hace en mltiplos de 8 bits (en bytes) que pueden representar octetos imprimibles en cdigo binario o bien parte de una palabra del computador, en cuyo caso no tienen por qu representar caracteres imprimibles.
En estas tablas podemos distinguir dos tipos de caracteres: Caracteres imprimibles, correspondientes a los alfabticos, numricos y signos de puntuacin normales. Caracteres no imprimibles. Se trata de un conjunto de caracteres adicionales de control como: - Control de formato. - Separadores de informacin. - Control de transmisin.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
7 u 8 bits de datos
Bit de paridad
Para comprender mejor el funcionamiento de este modo de transmisin vamos a estudiar todo el proceso seguido desde la generacin de los caracteres en el DTE hasta su recepcin y procesamiento en el segundo dispositivo DTE (figura 3). Como se coment con anterioridad, en el enlace de datos los bits son transmitidos en serie agrupados en conjuntos de 8 bits (bytes o caracteres). Por el contrario, en el DTE los datos son tratados en paralelo (palabra interna del procesador), por lo que los circuitos de interfaz de la capa fsica debern realizar las siguientes funciones: Conversin paralelo a serie de cada carcter que se desee transmitir por el enlace de datos. Dicha conversin se realiza mediante un registro de desplazamiento de entrada en paralelo y salida serie (PISO: parallel-in, serial-out). Conversin serie a paralelo de cada carcter recibido por el enlace de datos. Dicha conversin se realiza mediante un registro de desplazamiento con entrada serie y salida paralelo (SIPO: serial-in, parallel-out). Generacin de los bits de inicio, parada y paridad, necesarios para la sincronizacin de bit y carcter, as como para la deteccin de errores. En inactividad, la lnea permanece en estado de marca (1 lgico), y el inicio de cada carcter se detecta por la transicin 10 provocada por el bit de inicio, que origina un flanco descendente para informar al receptor del comienzo de la transmisin de ese carcter. A continuacin el receptor muestrear lo ms cerca posible del centro de cada bit, para lo cual emplea un reloj interno N veces mayor (p.e. 16) a la velocidad de transmisin, previamente acordada. A continuacin, y mediante el empleo de un contador, se cuentan N/2 pulsos de reloj en el receptor para muestrear en el centro del primer bit, y para los siguientes se realizan conteos de N bits. Con ello se garantiza un muestreo que coincida aproximadamente con los centros de bits (hay que tener en cuenta que el receptor funciona de manera asncrona respecto del emisor). El bit de parada (siempre nivel lgico 1) garantiza el regreso de la lnea al estado de marca para que el bit de inicio del siguiente carcter vuelva a provocar un flanco descendente, de modo que se produzca de nuevo la sincronizacin y se repita todo el proceso. Al producirse sincronizacin al principio de cada carcter se evita que las posibles desviaciones entre los relojes del emisor y el receptor se acumulen durante la transmisin de tramas completas de datos.
Esto es lo que se conoce como sincronizacin de reloj o de bit, sincronizacin de byte o carcter y sincronizacin de bloque o trama respectivamente. La sincronizacin entre equipos se puede realizar de dos maneras, dependiendo que los relojes del emisor y el receptor sean independientes o estn sincronizados, de modo que la transmisin puede ser: Asncrona. Los relojes son independientes y el receptor se resincroniza al principio de cada carcter recibido para conseguir la sincrona de reloj o bit. Sncrona. Todo el mensaje o trama de datos se transmite como una cadena de bits contiguos, y el receptor debe mantener la sincrona en cada bit hasta el final de la trama.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Cuanto mayor sea la frecuencia del reloj del receptor, se podr muestrear con mayor precisin en el centro de cada bit. Este modo de operacin limita la velocidad de transmisin mxima, que no suele superar los 19,2 kbps.
Emisor
PISO
Receptor
SIPO
TxC
Contador + N
1 1
En el caso de transmisiones binarias, los caracteres de principio y fin de tarma van precedidos por el carcter de escape de enlace de datos DLE (Data Link Escape). As, como se muestra en la figura 4, el inicio de bloque se delimita por DLE-STX y el final por DLE-ETX. En el caso de que alguno de los bytes intermedios coincidiera con el cdigo correspondiente a DLE, el emisor insertara un segundo cdigo DLE, de modo que el receptor podr diferencial de manera unvoca entre cdigos de escape del enlace de datos, que irn seguidos por STX o ETX y datos que coinciden con un DLE, que llegarn de dos en dos (una vez identificado, el receptor eliminar el byte duplicado). Este esquema de sincronizacin de trama es el mismo que se emplea en transmisiones sncronas (suprimiendo, lgicamente, los bits de inicio y parada para cada byte).
RxC=NTxC
Por ello es muy frecuente el empleo de tcnicas de transmisin sncrona en redes de comunicacin de datos. En este caso el reloj del receptor funciona de manera sncrona con la seal recibida, al contrario que ocurra en modo asncrono. Para ello se utiliza una de las dos siguientes tcnicas: Bien el sistema de codificacin integra informacin de la seal de reloj, que el receptor extrae para generar su reloj de recepcin. Tal es el caso de la codificacin de tipo Manchester empleada en redes Ethernet. O bien el receptor tiene un reloj interno que se mantiene sincronizado mediante un dispositivo denominado lazo de fijacin de la fase digital (DPLL: Digital Phase lock loop), que aprovecha las transiciones de 10 y de 01 de la seal recibida para mantener la sincrona de bit.
(a)
Bit inicio
STX
(b)
Sincronizacin de Trama Para la sincronizacin de trama o bloque se utilizan tcnicas similares a las descritas en transmisin asncrona. El bloque se delimita por un carcter de inicio (STX) y un carcter de fin (ETX) en el caso de caracteres imprimibles. Si se transmiten datos binarios se inserta el carcter de escape de enlace de datos previamente a la utilizacin de STX o ETX.
Figura 4. Sincronizacin de trama en transmisin asncrona: (a) caracteres imprimibles; (b) datos binarios.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Trama transmitida 1 00 1 00 1 0
As, podemos obtener el coeficiente de redundancia (proporcin de datos de control) como: bits control 424 R= = = 0,35 bits control + bits datos 10212
es decir, un 35% de los datos enviados son de control. Por lo tanto, la velocidad de transferencia ser:
Caracteres o bytes de sincrona Carcter de inicio de trama
Contenido de la trama
Vtransf=Vt(1-R)=1200(1-0,53)=784 bps b) En este caso no hay bits para sincrona en cada carcter, con lo que los bits adicionales sern los correspondientes a los dos bytes de sincrona iniciales y los caracteres de inicio y fin de trama (STX y ETX). Por lo tanto, los bits adicionales sern: (2+1+1)8 = 32 bits Podemos obtener el coeficiente de redundancia: R= bits control 32 = = 0,04 bits control + bits datos 32 + 1008
Figura 5. Transmisin sncrona. Pero en el caso de transmisin sncrona es necesario mantener en todo momento la sincrona, de modo que es fundamental que antes del inicio de un bloque de datos los dispositivos se encuentren sincronizados. Para ello se puede emplear una de las dos siguientes tcnicas: Incluir, antes del inicio de trama, uno o dos bytes especiales de sincronizacin, para que el receptor recupere la sincrona de bit y de byte (figura 5). Realizar transmisin de caracteres continuamente en los periodos de inactividad entre las transmisiones para mantener la sincrona de bit y byte en el receptor. A esto se le conoce como inactividad sncrona.
es decir, tan slo un 4% de los datos enviados son de control. La velocidad de transferencia ser: Vtransf=Vt(1-R)=1200(1-0,04)=1152 bps En este ejemplo se puede apreciar la diferencia en cuanto a eficiencia en la transmisin entre ambos modos cuando los bloques de datos enviados son grandes. El modo sncrono requiere una cantidad de bits de control muy inferior, ya que no requiere la repeticin de los bits de sincrona (inicio y parada) para cada byte. Esto hace que el aprovechamiento del canal de comunicacin sea mucho ms eficiente.
Ejemplo 1: Calcular el nmero de bits adicionales requeridos para transmitir por un enlace de datos un mensaje compuesto por 100 caracteres de 8 bits en cada uno de los siguientes modos de transmisin. Si la velocidad de modulacin o transmisin es de 1200 bps, obtener la velocidad de transferencia (de informacin til) en cada uno de los casos: a) Modo asncrono con 1 bit de inicio, 1 bit de paridad y dos de parada por carcter. Adems de un carcter de inicio de trama y uno de fin (STX y ETX) para conseguir la sincrona de bloque. b) Modo sncrono con 2 bytes de sincrona, 1 carcter de inicio de trama y 1 carcter de fin de trama (STX y ETX). Solucin: a) Por cada carcter que se transmite tenemos: 1+1+2 = 4 bits adicionales, que estarn presentes para todos los caracteres transmitidos, puesto que se trata de transmisin asncrona y son necesarios para mantener la sincrona de bit y byte. Luego el total de bits adicionales ser: 4100 + 2(4+8) = 424 bits que corresponden a 4 bits por cada uno de los 100 datos enviados, ms los caracteres de inicio y fin que slo contienen datos adicionales (los 4 bits por ser transmisin asncrona ms los 8 de datos que son para sincronizacin de trama).
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Protocolos autodetectores. Se incluye informacin para que el receptor sea capaz de detectar que se ha producido un error. Estos protocolos se denominan tambin de correccin hacia atrs, puesto que en caso de error es necesario volver a transmitir los datos errneos. Tal es el caso del control de paridad, suma de comprobacin o cdigos de redundancia cclica (CRC). Protocolos autocorrectores. El receptor puede detectar y corregir el error automticamente. Para ello el mensaje debe contener informacin redundante que permita recuperar la informacin a pesar de los datos errneos. Estos protocolos son tambin denominados de correccin hacia delante, ya que no requieren la retransmisin del mensaje errneo para recuperar los datos (p.e. cdigos Hamming).
Los protocolos autocorrectores requieren una gran cantidad de informacin adicional para la correccin de errores. Este hecho, unido a que las tasas de error en redes de comunicacin de datos son muy pequeas, hace que este tipo de tcnicas sea muy poco utilizado frente a los protocolos autodetectores o de correccin hacia atrs. A continuacin vamos a revisar algunas de las tcnicas ms empleadas para correccin de errores.
Por ejemplo, para el carcter codificado en binario con el valor 0110 1111 la paridad par valdra 0 y la impar 1. Con este sistema el receptor slo detectar un error en la transmisin si el nmero de bits que cambia como consecuencia de dicho error es impar. Vemoslo con un ejemplo: Ejemplo 2: Si el emisor enva el carcter 01101111 1 (impar) veamos qu ocurre en diferentes situaciones de error: Error en 5 bit: se recibe 01100111 0 detecta el error (cambia un bit) Error en 1 y 5 bit: se recibe 11100111 1 no detecta el error (cambian dos bits) De este modo, si fallaran los ocho bits de un carcter el error no se detectara. Se trata por lo tanto de un sistema poco fiable que se suele relegar al nivel fsico. Sin embargo, en los sistemas actuales la fiabilidad de la transmisin es tan alta que es improbable que se produzca ms de un bit de error en el mismo byte, por lo que en muchos casos es una tcnica aplicable. Existen dos formas de aplicar el control de paridad, dependiendo de si se quiere obtener un bit de paridad por byte o un byte de comprobacin completo para un bloque de datos: Paridad vertical (VRC = Vertical Redundancy Check). Consiste en obtener un bit de paridad para cada byte o carcter retransmitido. Paridad longitudinal u horizontal (LRC = Longitudinal Redundancy Check). Obtiene un byte de comprobacin para un mensaje o bloque de datos completo. Cada bit se determina calculado la paridad de los bits de igual peso en cada uno de los bytes del mensaje.
Ejemplo 3: Supongamos que se transmite el mensaje HOLA. En la tabla adjunta se calcula la paridad vertical y longitudinal impar. La paridad vertical (VRC) se obtiene para cada carcter, y la longitudinal (LRC) se calcula para todo el mensaje:
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
10
Ejemplo 4: En paridad longitudinal (LRC) no se detectan errores por alteracin del orden de los bytes (HOLA tendr el mismo LRC que OHLA). b7 H O L A LRC 0 0 0 0 1 b6 1 1 1 1 1 b5 0 0 0 0 1 b4 0 1 0 0 0 b3 1 0 1 0 1 b2 0 0 1 0 0 b1 0 0 0 0 1 b0 0 1 0 1 1 VRC 1 1 0 1 0
Valida LRC frente a VRC
Vamos a obtener la suma de comprobacin de 8 bits para el mensaje ABCD. Para ello se sumarn los cdigos ASCII correspondientes a cada carcter, que en decimal son: 65+66+67+68 = 266 (en binario 1 0000 1010) 10 (en binario 0000 1010) Puesto que la suma supera el valor mximo para 8 bits (255) el resultado se trunca a 8 bits. Este sistema presenta tambin algunos inconvenientes. En primer lugar, no se detectan errores por alteracin de orden en los bytes de la trama (la suma de comprobacin para ABCD es la misma que para BADC). Y en segundo, si se produce un fallo sistemtico en un bit varios fallos lo pueden hacer parecer correcto, como se puede ver en el siguiente ejemplo: Ejemplo 5: Supongamos que calculamos la suma de comprobacin de 8 bits para la trama de dos bytes: 01001001 01110010 Suma comprobacin = 10111011 Si se producen dos fallos en b7, el receptor recibir:
Este sistema de deteccin es muy sencillo, el bit de paridad se puede obtener mediante la realizacin de operaciones XOR sobre los bits correspondientes (figura 6).
0 1 1 0 1 1 1 1
Que identificar como correcto. Esto se produce como consecuencia del efecto combinado de sumar dos errores en b7 (128+128=256) que producen un desbordamiento en el registro de 8 bits cuyo valor (truncado a 8) coincide con el del mensaje original. Lo mismo ocurrira con cuatro errores en b6, ocho en b5, etc.
0
No obstante, este sistema de deteccin es mucho ms fiable que el control de paridad, y es muy empleado en redes de comunicacin de datos por su simplicidad.
1
Los sistemas de deteccin anteriores son apropiados para aplicaciones en las que se producen errores aleatorios de un solo bit. Cuando se presentan rfagas de errores es necesario emplear tcnicas ms complejas. Una rfaga de errores se define como el nmero de bits entre dos bits errneos sucesivos, incluidos stos. Adems, para determinar la longitud de la rfaga, el ltimo bit errneo de una rfaga y el primero de la siguiente deben estar separados n bits, siendo n la longitud de la rfaga. Los cdigos de redundancia cclica utilizan polinomios generadores para la obtencin del campo de comprobacin. La teora matemtica en que se basan queda fuera del alcance de este libro, por lo que nos limitaremos a describir su funcionamiento, que se puede resumir en: Se emplea aritmtica de mdulo 2 para las operaciones, por lo que la resta de polinomios equivale a una operacin XOR. La obtencin del campo de comprobacin, denominado CRC o FCS (Frame Check Sequence) se puede realizar mediante operaciones XOR y desplazamientos.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
11
12
El mensaje de k bits a transmitir se representa por un polinomio M(x) de grado k-1, donde cada coeficiente representa un bit del mensaje: M(x) = bkxk-1 + bk-1xk-2 + + b0x0
La forma de representar el polinomio generador consiste en indicar las posiciones de los unos binarios como potencias de x. Algunos de los polinomios normalizados que se utilizan en comunicacin de datos son: CRC-16: x16 + x15 + x2 + 1 CRC-CCITT: x16 + x12 + x5 + 1 CRC-32: x32 + x26 + x23 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
Para generar el CRC se emplea un polinomio generador G(x) de grado n con los bits de mayor y menor peso a 1. G(x) tiene n+1 bits, siendo n el nmero de bits de CRC a generar, es decir, el polinomio generador tiene un bit ms que el nmero de bits del campo de CRC que queramos obtener.
Para el clculo del campo de comprobacin de CRC (o FCS) se realizan las siguientes operaciones: Aadir r ceros al final de del mensaje, representado por M(x), que equivale a multiplicar por xn: M(x) xn M(x)
x n M ( x) Dividir por el polinomio generador: R ( x ) , operacin de la que se G ( x) obtiene el resto R(x), que representa el campo de CRC.
CRC-16 y CRC-CCITT se utilizan mucho en redes de rea extensa (WAN), y el CRC-32 se emplea redes de rea local (LAN). La eleccin de este polinomio, puesto que determinar los tipos de errores que es posible detectar. A continuacin se ilustra un ejemplo de clculo del CRC siguiendo las indicaciones descritas con anterioridad: Ejemplo 6: Supongamos que se transmiten tramas de ocho bits por un enlace de datos empleando CRC como protocolo detector de errores. El polinomio generador es 11001 (G(x) = x4 + x3 + 1) , vamos a ver: (a) Cmo generar el FCS/CRC. (b) Cmo comprobar el FCS en caso de recepcin correcta y con rfaga de error. El mensaje a enviar ser: 10011001 (M(x) = x7 + x4 + x3 +1) (a) Para generar el FCS o CRC: 1. Aadimos cuatro ceros a M(x), que equivale a M(x) x4 10011001 0000 2. Dividimos por G(x): 1110 10011001 1 1 0 0 1 010100 1 1 0 0 1 011010 1 1 0 0 1 000111 0 0 0 0 0 00111 0 0 0 0 0111 1 1 0 001 0 0 01 1 0 0 1 0 1 = Cociente (se ignora) 0000 11001
El emisor transmite T(x) = xnM(x) R(x), que representa el mensaje de datos al que se ha aadido el campo de CRC:
o T(x) contiene el mensaje en su parte de mayor peso y o el CRC en los r bits de menor peso. o Al haber restado R(x), T(x) es divisible por el generador G(x).
Si no hay error se recibir el mensaje transmitido, T(x). Como dicho mensaje es divisible por G(x), el receptor slo tendr que realizar la operacin:
T ( x) R' ( x) G ( x) Si el resto obtenido es 0, la recepcin ha sido correcta, si no, se habr producido un error.
Si hay error, se recibe T(x) + E(x) (mensaje ms error), y como T(x) es divisible por G(x), el resto se debe a la componente de error E(x), por lo tanto, si E(x) es divisible por G(x) el error no se detecta. Por ejemplo, si el error es de un bit, E(x)=xi, y si G(x) tiene ms de un trmino no puede dividir a E(x) y se detectan todos los errores de un bit.
En general, un polinomio generador de n bits detectar: Todos los errores de 1 bit. Todos los errores de 2 bits. Todos los errores de bit en nmero impar. Todas las rfagas de errores de longitud menor de n. La mayor parte de las rfagas de errores mayor que n.
13
Trama = 10011001 Trama con ceros aadidos = 10011001 0000 Polinomio generador = 11001
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
14
Luego la trama transmitida ser T(x) = M(x)x4 R(x) 10011001 1101 (incluyendo el FCS). (b) A la recepcin dividimos la trama por el polinomio generador:
Recepcin correcta Recepcin con errores
Se define un tamao de ventana, normalmente potencia de 2, que determina el nmero de mensajes a enviar sin haber recibido reconocimiento (ACK) del primero. Una vez enviados los paquetes de la ventana, en el momento que se reciba ACK del primer envo se transmitir el siguiente paquete, cuando se reciba ACK del segundo se enviar el siguiente, y as sucesivamente, siempre manteniendo un mximo de n paquetes enviados en espera de confirmacin, siendo n el tamao de la ventana. En la figura 7 se ilustra este funcionamiento con una ventana de tamao 4.
0101 0100
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
15
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
16