Técnicas de comunicación de datos digitales
Sitio: | Facultad de Ingeniería U.Na.M. |
Curso: | REDES I - IC412 |
Libro: | Técnicas de comunicación de datos digitales |
Imprimido por: | Invitado |
Día: | miércoles, 4 de diciembre de 2024, 23:33 |
1. Transmisión asíncrona y síncrona
En este texto se estudia fundamentalmente la transmisión serie de datos, es decir, la transmisión de datos a través de un único camino, en lugar de utilizar un conjunto de líneas en paralelo, como es habitual en los dispositivos de E/S y en los buses internos de los computadores.
En la transmisión serie, los elementos de señalización se envían a través de la línea de transmisión de uno en uno.
Cada elemento puede ser:
- Menor que un bit: como en el caso de la codificación Manchester.
- Un bit: NRZ-L es un ejemplo digital y FSK es un ejemplo analógico.
- Mayor que un bit
Para simplificar, en el razonamiento que sigue, mientras no se especifique lo contrario, supondremos que se usa un bit por elemento de señalización.
Esta simplificación no va a influir en el tratamiento llevado a cabo y las conclusiones son igualmente válidas.
Tengamos presente que el receptor para determinar el valor recibido debe realizar un muestreo de la señal, un muestreo por cada bit, esto implica detectar donde comienza el bit y luego muestrear en el momento donde hay menor posibilidad de error.
Si el receptor delimita las duraciones basándose en su propio reloj, se puede presentar un problema si los dos relojes (el del emisor y el del receptor) no están sincronizados con precisión.
Solo para entender la importancia , imaginemos una transmisión de 1Mbps => cada bit demora 1/106 = 1 microsegundos, un error de 1% en la sincronización=> 0,01 microsegundo. Si se transmiten 100 bits.. se podría producir un desplazamiento del momento del muestreo en:
100 x 0.01 microsegundo=1 microsegundo => el tiempo de un bit time!
En cualquier caso, si se emite un número suficiente de bits, dicho error aparecerá irremediablemente si no se adoptan medidas para sincronizar al transmisor y al receptor.
Hay dos enfoques habituales para resolver el problema de la sincronización.
TRANSMISIÓN ASÍNCRONA
El primero se denomina, de una manera no muy acertada, transmisión asíncrona. En esta aproximación, el problema de la temporización se evita no enviando cadenas de bits largas de forma ininterrumpida. En su lugar, los datos se transmiten enviándolos carácter a carácter. Normalmente, cada carácter tiene una lon-
gitud de 5 a 8 bits. La temporización o sincronización se debe mantener solamente durante caracter
Figura 1
Si la eficiencia se mide con la razón de cantidad de bits de datos sobre la cantidad total. ¿Cuales serían las eficiencias para 5 y 8 bits de datos?
TRANSMISIÓN SÍNCRONA
En la transmisión síncrona, cada bloque de bits se transmite como una cadena estacionaria sin utilizar códigos de comienzo o parada (trama o frame)
El bloque puede tener una longitud de muchos bits. Para prevenir la pérdida de sincronismo entre el emisor y el receptor, sus relojes se deberán sincronizar de
alguna manera.
Posibilidad 1) Linea de reloj independiente que vincule el reloj del Tx y de Rx. Se puede implementar en distancias cortas, el largas distancias adolece del mismo tipo de errores.
Posibilidad 2) Incluir la información relativa a la sincronización en la propia señal de datos.
Este escenario es el que realmente se impone. Notar que como se transmiten grandes cantidades de bits a grandes velocidades se debería implementar partes en el conjunto de bloques de bits ( trama / frame ) para que se pueda identificar el inicio y fin de cada trama o bloque de bits, estos son conocidos como preámbulo , flag o delimitador de inicio . El finalizar la trama también se puede llegar a encontrar un campo conocido como delimitador simplemente. A modo de ejemplo:
Figura 2: Trama genérica
Figura 3 : Trama Ethernet
Normalmente, la trama comienza con un preámbulo de 8 bits llamado delimitador ( flag). El mismo delimitador se utiliza igualmente como indicador del final de la trama. El receptor buscará la aparición del delimitador que determina el comienzo de la trama. Este delimitador estará seguido por algunos campos de control, el campo de datos (de longitud variable para la mayoría de los protocolos), más campos de control y, por último, se repetirá el delimitador indicando el final de la trama.
En un sistema punto-multipunto o bus compartido:
¿Como determino el destinatario?
¿Como determino el remitente?
¿Como sabe el destinatario que tan largo es el mensaje?
¿Como podemos determinar si es el inicio o fin de una secuencia de mensaje?
Si la eficiencia se mide con la razón de cantidad de bits de datos sobre la cantidad total. ¿Cuales serían las eficiencias para la trama Ehternet con 46 y 1500 bytes? Utilice la figura 3, y suma que el preámbulo tiene 8 bits. Las longitudes indicadas en la figura son en Bytes.
2. Tipos de errores
En los sistemas de transmisión digital, se dice que ha habido un error cuando se altera un bit. Es decir, cuando se transmite un 1 binario y se recibe un 0, o cuando se transmite un 0 binario y se recibe un 1.
Existen dos tipos de errores:
- errores aislados : error que afecta un bit.
- errores a ráfagas. error que afectan varios bits, mas difíciles de tratar.
Estos últimos tipos de errores son frecuentes cunado existe ruido impulsivo o ruido por desvaneciemiento.
El ruido por desvanecimiento es causado por la interferencia entre dos o más versiones de la señal transmitida que llega al receptor en tiempos ligeramente deferentes suele ser frecuente en telefonía.
La señal recibida denominada onda multitrayecto puede entonces variar significativamente en sus características.
Ráfaga de errores o Brust error:
Grupo de bits en el que dos bits erróneos sucesivos estarán siempre separados por menos de un número x de bits correctos. El último bit erróneo en la ráfaga y el primer bit erróneo de la siguiente estarán, consecuentemente, separados por x bits correctos o mas.
Si el ruido tipo ráfaga es de 1µ y transmito a 10 Mbps esto quiere decir que esta ráfaga afectaría a 10 bits.
Por regla de 3 simple:
Figura 1
Si el ruido tipo ráfaga es de 1µ y transmito a 100 Mbps esto quiere decir que esta ráfaga afectaría a 100 bits.
Figura 2
En la figura precedente el Stallings representan ambos tipos de errores mencionados.
3. Detección de errores
Definiremos las siguientes probabilidades para los posibles errores en las tramas transmitidas:
- Pb : Probabilidad de que un bit recibido sea erróneo, también se denomina tasa de error por bit (BER, Bit Error Rate).
- P1 : probabilidad de que una trama llegue sin errores.
- P2 : probabilidad de que, utilizando un algoritmo para la detección de errores, una trama llegue con uno o más errores detectados.
- P3 : probabilidad de que, utilizando un algoritmo para la detección de errores, una trama llegue con uno o más errores detectados pero sin errores no detectados.
Caso 1: Sin medidas para detectar errores.
P1 = (1- Pb)F , donde F es el nro. de bits de una trama. La probabilidad de que no tenga errores, es la probabilidad de que cada bit de los F llegue sin errores (1- Pb)
P2= 1 -P1 , como no se usa ningún algoritmo, la probabilidad de detectar un error lo que resta a la probabilidad de que llegue sin errores, es decir la probabilidad de que llegue con errores.
P3 = 0 ,por que como no implemento nada para detectar errores diría que no existen errores.
Ver que si Pb aumenta.. la probabilidad de que la trama llegue sin errores P1 disminuye , y cuantos mas bits tenga la trama, es mas probable que haya errores P2 disminuye.
Ejemplo:
Supongamos una conexión RDSI ( Red digital de Servicios Integrados , veremos algo sobre esto mas adelante) .
La RDSI tiene canales digitales, uno de ellos es de 64kbps. La BER en un canal a 64 kbps debe ser menor que 10 -6 para, por lo menos, el 90% de los intervalos observados de 1 minuto de duración.
Supóngase ahora que se tiene un usuario con requisitos menos exigentes para el que, en el mejor de los casos, una trama con un bit erróneo no detectable ocurriera por cada día de funcionamiento continuo en una canal a 64 kbps.
Si suponemos que la longitud de la trama es de 1.000 bit, calculemos el número de tramas que se pueden transmitir por día :
La cantidad de segundos en un día es: 24*60*60 [s]= 86400 s
La tasa de transferencia es de 64Kbps => 64000 bits/s * 86400 s = 5529,6 106 bits en un día.
Si divido por el lago de la trama que son 1000 bits, obtengo la cantidad de tramas 5,529*10 6 tramas en un día
Según nuestra suposición de trama errónea no detectable es una en un día => una en todas las que se transmiten en un día =>
P 2 = 1/Cantidad de tramas en un día = 1/(5,529 *10 6 ) => P2= 0,18 * 10 -6 [1]
Pero si se supone un valor de Pb (BER) igual a 10-6 , entonces:
P1 = (0,999999) * 1000 = 0,999
P 2 = 10 -3
lo que está tres órdenes de magnitud por encima de lo requerido en la expresión [1] !!
Vemos que un pequeño valor de BER produce probabilidades de errores muy grandes, es por eso que se trabaja en técnicas que permitan disminuir el BER. Vemos el principio de como se procura conseguir esto.
Figura 1
Generalmente, para un bloque de datos de k bits, el algoritmo de detección de errores utiliza un código de n-k bits, siendo (n . k) a k. El código de detección de errores, también llamado bits de comprobación, se añade al bloque de datos para generar la trama de n bits de longitud, la cual será posteriormente transmitida. Ver que aquí hay bits que NO SON DATOS, esto se conoce con el término de overhead, y apunta a los bits que no son propiamente datos pero que forman parte de la trama para conseguir que los datos puedan convertirse en información, en otras palabras un exceso necesario.
El receptor separará la trama recibida en los k bits de datos y los (n-k) bits correspondientes al código de detección de errores. El receptor realizará el mismo cálculo sobre los bits de datos recibidos y comparará el resultado con los bits recibidos en el código de detección de
errores. Se detectará un error si, y solamente si, los dos resultados mencionados no coinciden.
Por tanto, P3 es la probabilidad de que la trama contenga errores y el sistema los detecte. P2 se denomina tasa de error residual y se define como la probabilidad de que no se detecte un error aunque se esté usando un esquema de detección de errores (Error indetectable) .
Veamos algunas técnicas que utilizan este principio.
3.1. Chequeo de Paridad.
Paridad de bit.
El esquema más sencillo para detectar errores consiste en añadir un bit de paridad al final de cada bloque de datos. Un ejemplo típico es la transmisión de caracteres en la que se añade un bit de paridad por cada carácter ( 5 o 8 bits).
El valor de este bit se determina de tal forma que el carácter resultante tenga un número impar de unos (paridad impar) o un número par (paridad par)
Figura 1
¿Que pasa si hay errores en 1 bits?
¿Que pasa si hay errores un mas de un bit?
¿Importa si se envía el bit mas significativo primero o el menos significativo?
¿Como diría que es la electrónica que se necesita para implementar este método?
Paridad en dos dimensiones.
El esquema de paridad bi-dimensional, ilustrado en la Figura 2, es más robusto que el bit de paridad único. La cadena de bits de datos que se van a comprobar se organiza en dos
matriz dimensional. Junto a cada fila i hay un bit de paridad para esa fila, y adjunto a cada columna j hay un bit de paridad para esa columna.
El bit de paridad p completa la matriz. Por lo tanto, el código de detección de errores consta de i + j + 1 bits suplementarios al dato original.
bits de paridad. En este esquema, cada bit participa en dos controles de paridad. Como con un simple bit de paridad, se detecta cualquier número impar de errores de bit.
Observación: El transmisor y el receptor eligen el mismo modo de paridad par o paridad impar!
Figura 2
3.2. Internet Checksum
Uno de los códigos para la detección de errores más habitual y más potente son los de comprobación de redundancia cíclica (CRC, Cyclic Redundancy Check), que se pueden explicar de la siguiente manera.
Dado un bloque o mensaje de k-bits, el transmisor genera una secuencia de (n-k) bits, denominada secuencia de comprobación de la trama (FCS, Frame Check Sequence), de tal manera que la trama resultante, con n bits, sea divisible por algún número predeterminado.
Figura 1
El receptor dividirá la trama recibida entre ese número y si no hay resto en la división, supondrá que no ha habido errores.
Para explicar el por que vamos a asumir que podemos representar una secuencia de bits como un polinomio, por ejemplo:
Figura 2
En ese caso:
=> el orden de R es menor que P, Q es la parte entera de la división. RTx es el FCS que es lo se transmite luego del mensaje de orden n-k
Entonces la trama enviada es:
En extremo del Receptor :
Si realizamos la misma Operación de dividir por P.
En el caso de que R y R' sean iguales, si se suman con una XOR daría cero, esto indicaría que el Q sobre el que se calculó el cociente es el mismo y el mensaje llegó sin errores.
El polinomio expresado en la Figura 2, de manera general se puede escribir como:
Figura 3
Donde Ai vale 1 para el primer y último termino, y los valores intermedios pueden estar o no presentes dependiendo si son 1 o 0. Este es el polinomio utilizado para dividir y la división se puede realizar con un circuito de compuertas y registros de desplazamientos de manera que cuando vaya ingresando el Mensaje con los datos se pueda ir calculando el FCS y al finalizar se "acopla" al tren de bits del mensaje el del FCS.
Figura 4
Se deja al alumno interpretar el siguiente caso para el polinomio: X5 + X4 + X2 + 1 => 110100 serían los coeficientes del Polinomio.
La secuencia a transmitir es: 1010001101. En nuestro caso el orden de Mensaje es: 9. El orden del Polinomio es 5. El largo de la Trama será : 9+(5-1)=14.
Si personalizamos el circuito genérico para nuestro polinomio quedaría:
Figura 5
Figura 6
4. Corrección de errores
Corrección de errores ≠ Detección de errores
La detección de errores es una técnica útil, incorporada en la mayoría de los protocolos de control del enlace, como por ejemplo HDLC, al igual que en los protocolos de transporte, como por ejemplo TCP.
No obstante, la corrección de errores mediante el uso de códigos para la detección de errores exige retransmitir (como se explicará posteriormente), bloques de datos.
Este enfoque puede no ser del todo apropiado en aplicaciones inalámbricas por las dos razones siguientes:
- La tasa de errores por bit en un enlace inalámbrico puede ser bastante elevada, lo que resultará en un gran número de retransmisiones.
- En algunos casos, especialmente en enlaces satelitales, el retardo de propagación es muy elevado, comparado con el tiempo de transmisión de la trama. Como consecuencia, se obtiene un sistema muy poco eficaz.
Como se estudiará mas adelante en la materia, la aproximación más habitual es retransmitir la trama errónea además de las tramas siguientes.
En enlaces de datos de gran longitud, un error en una trama aislada requerirá, por tanto, la retransmisión de muchas tramas.
En su lugar, sería deseable habilitar al receptor para que fuera capaz de corregir errores usando exclusivamente los bits recibidos en la transmisión.
En la Figura 1 se muestra, en términos genéricos, cómo llevar a cabo este procedimiento.
En el extremo del emisor, usando un codificador con corrección de errores hacia delante FEC (Forward Error Correction), para cada bloque de datos de k bits se genera uno de n bits (n> k) denominado palabra-código, que es transmitido. Durante la transmisión, la señal es susceptible de ser afectada por diversos contratiempos, los cuales pueden producir errores en los bits de la señal. En el receptor, la señal de entrada se demodula para obtener una cadena de bits similar a la palabra-código original, pero posiblemente con errores. => REDUNDANCIA!
Figura 1
- Si no ha habido errores, la entrada al decodificador FEC es idéntica a la palabra-código original, por lo que el decodificador generará el bloque de datos original.
- Para ciertos patrones de error, es posible que el decodificador detecte y corrija esos errores. por tanto, aunque los bloques de datos recibidos difieran de la palabra-código transmitida, el decodificador FEC será capaz de asociar el bloque recibido al bloque de datos original.
-
Para ciertos patrones de error, el decodificador podrá detectarlos pero no corregirlos. En este caso, el decodificador simplemente informará sobre la detección de un error irrecuperable.
- Para ciertos, aunque raros, patrones de error, el decodificador no detectará la ocurrencia de dichos errores y asignará el bloque de datos recibido, de n bits, a un bloque de k bits que será distinto al bloque original de k bits.
4.1. Código de Bloque o Codeword
En la sección anterior vimos que si se agrega algo ( codeword => Redundancia ) a un mensaje es posible recuperar pese a la existencia de errores el mensaje correcto.
En Teoría de la Información se denomina distancia de Hamming a la efectividad de los códigos de bloque y depende de la diferencia entre una palabra de código válida y otra.
Cuanto mayor sea esta diferencia, menor es la posibilidad de que un código válido se transforme en otro código válido por una serie de errores.
A esta diferencia se le llama distancia de Hamming, y se define como el número de bits que tienen que cambiarse para transformar una palabra de código válida en otra palabra de código válida.
Figura 1
- d: Distancia de Hamming.
- v1: secuencia de bits 1.
- v2: secuencia de bits 2.
La distancia de Hamming es igual a 3 es este caso por que son 3 los bit distintos entre el conjunto v1 y v2.
Considérese ahora una técnica de código de bloque para corregir errores. Supóngase que se quiere transmitir un bloque de datos con longitud k bits.
En lugar de transmitir cada bloque de k bits, se asigna cada secuencia de entrada a una única palabra-código de n bits.
Veamos como sería:
Figura 2
Vemos que para la figura 2 la longitud de los bits a transmitir k=2 y la palábra código es n=5.
Ahora, supóngase que se recibe una palabra-código con el patrón de bits 00100. Ésta no es una palabra-código válida, por lo que el receptor detecta un error. ¿Puede ese error ser corregido?. No es posible asegurar qué bloque de datos fue transmitido ya que el ruido puede haber corrompido 1, 2, 3, 4, o incluso los 5 bits. ( Ver que esto sería el código de Hamming)
Para transformar
- 00111 en 00100 se necesitarían dos cambios
- tres para transformar 11110 en 00100
- cuatro para transformar 11001 en 00100.
d(00000, 00100) = 1; d(00111, 00100) = 2; d(11110, 00100) = 3; d(11001, 00100) = 4;
Por tanto, la regla a imponer sería que si se recibe una palabra-código inválida, entonces se selecciona la palabra-código válida más cercana (a distancia mínima). Esto funcionará sólo si hay una única palabra-código a la distancia mínima para cada palabra inválida.
Hay 25 = 32 posibles palabras-código de las que sólo 4 son válidas, quedando 28 palabras-código inválidas. Para las palabras-código in-
válidas, se tiene lo siguiente:
Figura 3
Vemos que hay 8 posibles candidatas cuando se produce un error en 2 bits en dos palabras de código diferentes .En estos caso no sería posible decidir cual es la palabra original, pero si detectaríamos un error.
Si se tiene un código de bloque (n, k), habrá 2k palabras-código válidas de un total de 2n posibles.
Se define la redundancia del código como el cociente del número de bits redundantes entre el número de bits de datos
(n-k)/k
y se define la tasa del código como el cociente del número de bits de datos entre el número de bits totales, k/n.
La tasa del código es una medida del ancho de banda adicional que se necesita para transmitir los datos a la misma velocidad que si no hubiera código.
La tasa del código es una medida del ancho de banda adicional que se necesita para transmitir los datos a la misma velocidad que si no hubiera código. Por ejemplo, para transmitir a la misma velocidad, un código cuya tasa sea 1/2 necesitará el doble de capacidad de transmisión que un sistema que no utilice código.
En el código de nuestro ejemplo, la tasa es igual a 2/5 y, por tanto, necesita una capacidad 2,5 veces la de un sistema sin
codificación.
Por ejemplo, si la velocidad de transmisión de los datos a la entrada del codificador es de 1 Mbps, entonces la salida del codificador debe ser igual a 2,5 Mbps para poder trasmitir, ver que si es menor se acumulan bits en el Tx.
Generalizando lo que vimos, para un código constituido por s palabras-código w1 , w 2 , ..., w s ( donde s=2n , n cantidad de bits) se define la distancia mínima del código, d min como:
Figura 4
Esto no es ni mas ni menos que la mínima distancia de Hamming de dos codeword.
Se puede demostrar ( no lo hacemos aquí ) que si existe un t que cumpla:
[Exp 1]
el código puede corregir todos los errores de hasta t bits => (dmin-1)/2 >=t , con t mayor valor entero
[Epx 2]
el código corregirá todos los errores de hasta t -1 bits y detectará los de t bits => dmin/2 >=t
Es más, si lo que interesa es sólo detectar errores y no corregirlos, entonces, el número de errores t que se pueden detectar, verifica que:
t = dmin -1 => de esta expresión podemos concluir:
- Si se dan dmin errores, cualquier palabra-código puede convertirse en otra válida.( ver d=2 en figura 3)
- Cualquier número menor que dmin errores nunca convertirá una palabra-código válida en otra válida. ( ver d=1 en figura 3)
Conclusiones.
El diseño de los códigos de bloque implica las siguientes consideraciones:
- Dados unos valores n y k, sería deseable obtener el valor mayor posible de dmin .
- El código debería ser relativamente fácil de codificar y decodificar, con requisitos mínimos de memoria y tiempo de procesamiento.
- Sería deseable que el número de bits redundantes, (n-k), sea pequeño para reducir el ancho de banda.
- Sería deseable que el número de bits redundantes, (n-k), sea grande para reducir la tasa de errores.
Ver que 3 y 4 son contradictorias, por lo que es una situación de compromiso.
Figura 4
5. Análisis Voyager 1
¿Cómo es posible recibir información desde la sonda Voyager 1?
Haga clic en el enlace https://space.stackexchange.com/questions/24338/how-to-calculate-data-rate-of-voyager-1 para abrir el recurso original.
- : potencia recibida en la tierra
- : potencia transmitida por Voyager = 13,4 dBW
- : ganancia de la antena de Voyager = (X-band, 8,4 GHz) 48 dBi (relativa a la emisión isotrópica)
- : pérdida de potencia en el espacio = 317 dB
- : ganancia de la antena terrestre (comparada con emisión isotrópica) = 73 dB (relativa a la emisión isotrópica)
Otros datos
- En 2020 la señal de la Voyager 1 tarda 19 horas y 35 minutos en llegar a la tierra. (analizar control de flujo)
- En teoría los sistemas terrestres son capaces de seguir detectando las señales de Voyager por 100 años más.
- Pero, se estima que, a partir del 2025 la unidad de potencia de la Voyager 1 ya no tendrá suficiente potencia para transmitir.
6. Ejercicios
- Supóngase que se envía un fichero de 10.000 bytes por una línea a 2.400 bps.
- Calcule el overhead, en términos de los bits suplementarios y tiempos introducidos, si se utiliza transmisión asíncrona. Suponga un bit de comienzo y un bit de parada con longitudes iguales a la de un bit de datos y suponga que por cada carácter se transmiten 8 bits sin paridad.
- Calcule el overhead, en términos de los bits suplementarios y tiempos introducidos, si se utiliza transmisión síncrona. Suponga que los datos se envían en tramas. Cada trama tiene 1.000 caracteres = 8.000 bits, con una cabecera de 48 bits de control por cada trama.
- Una fuente generadora de datos produce caracteres IRA (International Reference Alphabet) de 7 bits. Obtenga una expresión para la velocidad de transmisión efectiva (velocidad de transmisión de los bits de los datos IRA) para una línea de x bps en las siguientes configuraciones:
- Transmisión asíncrona, orientada al caracter, con 1,5 bits de parada y un bit de paridad.
- Transmisión síncrona, con una trama con 48 bits de control y 128 bits de información. El campo de información contiene caracteres IRA de 8 bits (con la paridad incluida).
- Igual que en b pero con un campo de información de 1.024 bits.
- Supóngase que la temporización en una línea serie con transmisión síncrona está controlada por dos relojes (uno en el emisor y otro en el receptor) cada uno de los cuales tiene una variación de un minuto cada año. ¿Cuál es la longitud máxima
de una secuencia de bits sin que ocurra ningún problema de sincronización? Supóngase que un bit será correcto si se muestrea dentro del 40% en torno a su instante central y que el emisor y el receptor se sincronizan al principio de cada
trama. Obsérvese que la velocidad de transmisión no es un factor a tener en cuenta, ya que tanto el periodo de un bit como el error absoluto de la temporización decrecen proporcionalmente al aumentar la velocidad de transmisión.