Debido a los numerosos problemas a la hora de realizar la transmisión,
es necesario utilizar técnicas que permitan detectar y corregir
los errores que se hayan producido. Estas técnicas se basan siempre
en la idea de añadir cierta información redundante a la
información que desee enviarse. A partir de ella el receptor
puede determinar, de forma bastante fiable, si los bits recibidos corresponden
realmente a los enviado. Algunos métodos son:
Paridad
Uno de los métodos más comúnmente empleados para
detectar errores, cuando el número de bits de información
a transmitir es pequeño y la probabilidad de que ocurra un error
es baja, es el uso de un bit adicional de paridad por elemento transmitido.
Puede conseguirse una importante mejora añadiendo un segundo
grupo de bits de paridad, como puede verse en la siguiente tabla. Para
ello deben agruparse los datos en bloques y aplicar el control de paridad
a dos dimensiones (filas y columnas). Para cada carácter se añade
un bit de paridad, como en el caso anterior. Además, se genera
un bit de paridad para cada posición de bit a través de
todos los caracteres. Es decir, se genera un carácter adicional
en que el i-ésimo bit del carácter es un bit de paridad
para el i-ésimo bit de todos los caracteres en el bloque.
Códigos de redundancia cíclica
Los códigos de redundancia cíclica, también conocidos
como códigos polinomiales constituyen el método de detección
de errores más empleado en comunicaciones. Se utiliza con esquemas
de transmisión orientados a tramas (o bloques). Permiten sustanciales
mejoras en fiabilidad respecto a los métodos anteriores, siendo
a la vez una técnica de fácil implementación. Imponiendo
condiciones bastante simples sobre los polinomios divisores es posible
detectar un gran número de errores. Existen tres polinomios G(x)
que se han convertido en estándares internacionales.
CRC-12 X12 + x11 + x3 + x2 + x +1
CRC-16 X16 + x15 + x2 + 1
CRC-CCITT X16 + x12 + x5 + 1
Con secuencias de control de 16 bits, utilizando los polinomios CRC-16
y CRC-CCITT es posible detectar todos los errores simples y los dobles,
todos los que afectan a un número impar de bits, todos los errores
tipo ráfaga de 16 bits o menores, el 99,997% de errores ráfaga
de 17 bits y el 99.998% de los de 18 bits y mayores.
|