Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MARTÍNEZ DE LA TORRE
Docente:
Francisco Javier Gutiérrez Hernández
En todas las transmisiones digitales sobre un canal real, los niveles eléctricos de la
señal pueden variar levemente debido a interferencias, ruidos o mal funcionamiento
de los equipos que forman el canal. La suma de estos factores puede cambiar la
interpretación de los bits y cambiar el significado de los datos que se transmiten.
Las redes deben poder transferir datos de un dispositivo a otro con total precisión,
si los datos recibidos no son idénticos a los datos enviados, el sistema de
comunicación es inútil. Sin embargo, cuando se transmiten de origen a destino,
pueden corromperse en el camino. Los sistemas de comunicación deben contar con
mecanismos para detectar y corregir errores que alteran los datos recibidos debido
a múltiples factores de transmisión.
De acuerdo con esto, el receptor puede determinar de forma bastante fiable si los
bits recibidos corresponden a los realmente enviados. La detección de errores
consiste en monitorear los datos recibidos y utilizar técnicas ya descritas en el
codificador de canales para determinar si un carácter, un evento asíncrono, o un
grupo de datos, contienen uno o más errores.
Redundancia
Codificación de cuenta exacta
Chequeo de paridad vertical (VRC)
Chequeo de paridad horizontal (LRC)
Chequeo de paridad bidimensional
Checksum
Chequeo de redundancia cíclica (CRC)
Detección y corrección de errores.
1.-Tipos de errores.
Interferencias, calor, magnetismo, etc., influyen en una señal electromagnética,
esos factores pueden alterar la forma o temporalidad de una señal. Si la señal
transporta datos digitales, los cambios pueden modificar el significado de los datos.
Los errores posibles son:
Error de bit
Un error de bit altera el significado del dato. Son el tipo de error menos probable en
una transmisión de datos serie, puesto que el intervalo de bit es muy breve
(1/frecuencia) el ruido tiene que tener una duración muy breve. Sin embargo si
puede ocurrir en una transmisión paralela, en que un cable puede sufrir una
perturbación y alterar un bit de cada byte.
Error de ráfaga.
El error de ráfaga significa que dos o más bits de la unidad de datos han cambiado.
Los errores de ráfaga no significan necesariamente que los errores se produzcan
en bits consecutivos. La longitud de la ráfaga se mide desde el primero hasta el
último bit correcto, algunos bits intermedios pueden estar bien.
2.- Detección.
Redundancia.
La redundancia consiste en enviar dos veces cada unidad de datos, de forma que
el dispositivo receptor puede hacer una comparación bit a bit entre ambos datos y
detectar si ha habido errores, para corregirlos con el mecanismo apropiado. Esta
técnica es muy exacta pero enlentece la transmisión.
Sin embargo el concepto es aplicable añadiendo al flujo de datos un grupo pequeño
de bits al final de cada unidad, siendo estos bits redundantes con una parte de la
información, esos bits redundantes se descartan una vez comprobada la integridad
de la transmisión.
Esta técnica permite reconocer un error de un único bit, y también de ráfaga siempre
que el número total de bits cambiados sea impar. La función de paridad (par o impar)
suma el dato y devuelve la cantidad de unos que tiene el dato, comparando la
paridad real (par o impar) con la esperada (par o impar).
Típicamente los datos se agrupa en unidades de múltiplos de 8 -1 byte- (8, 16, 24,32
bits) la función coloca los octetos uno debajo de otro y calcula la paridad de los bits
primeros, de los segundos, etc., generando otro octeto cuyo primer bit es el de
paridad de todos los primeros bits, etc.
A diferencia de las técnicas VRC y LRC, que se basan en la suma (para calcular la
paridad), la técnica CRC se basa en la división binaria. En esta técnica, se añaden
bits redundantes en la unidad de datos de forma que los todo el conjunto sea
divisible exactamente por un número binario determinado, en el destino los datos
recibidos son divididos por ese mismo número, si en ese caso no hay resto de la
operación, el dato es aceptado, si apareciera un resto de la división, el dato se
entendería que se ha corrompido y se rechazará.
La técnica añade unos bits de CRC, de la siguiente manera en tres pasos básicos:
en primer lugar se añade una tira de n ceros, siendo n el número inmediatamente
menor al número de bits del divisor predefinido (que tiene n+1 bits), el segundo paso
es dividir la nueva unidad de datos por el divisor predefinido usando un proceso de
división binaria, el resto que quedara sería los bits de CRC a añadir, el tercer paso
es sustituir los n bits añadidos en el paso primero por los n bits del resto de la
operación del segundo paso, el dato final será divisible exactamente por el divisor
predefinido. La imagen muestra el esquema del proceso.
Los mecanismos explicados detectan errores pero no los corrigen. La corrección del
error se puede conseguir de dos formas, en la primera, cuando de descubre un error
el receptor puede pedir al emisor que retransmita toda la unidad de datos, con la
segunda, el receptor puede usar un código de corrección de errores que corrija
automáticamente determinados errores. En teoría es posible corregir
automáticamente cualquier error en un código binario, sin embargo los códigos de
corrección son más sofisticados que los de detección y necesitan más bits de
redundancia, el número de bits necesarios es tan alto que su uso no es eficiente,
por esa razón la mayoría de la corrección se limita a errores de tres bits o menos.
*Código Hamming
El receptor recibe la transmisión, toma los datos y recalcula cuatro nuevos VRC
usando el mismo conjunto de bits usados en el cálculo en el emisor, a continuación
reensambla los nuevos valores de paridad siguiendo el orden de la posición (r8, r4,
r2, r1) la cifra resultante indica si ha habido error y en qué bit se ha producido. Si el
resultado es 0000 no ha habido error, cualquier otro resultado indica error y bit
erróneo. Una vez identificado el bit erróneo, el receptor puede cambiar el valor de
ese bit para corregir el error.
Se puede diseñar un código Hamming para corregir errores de ráfaga de una cierta
longitud, sin embargo el número de bits de redundancia necesarios es muy elevado,
porque los errores pueden ser de tantos bits pero pueden estar en cualquiera de los
bits de la cadena transmitida.
Conclusión