Está en la página 1de 7

Verificacin de redundancia cclica (CRC)

La tercera y ms potente tcnica de verificacin de redundancia es la verificacin de redundancia


cclica (CRC). A diferencia de VRC y LRC, que se basan en la suma, la
CRC se basa en la divisin binaria. Con la CRC, en lugar de sumar los bits juntos para conseguir una
paridad determinada, se aade una secuencia de bits redundantes, denominados CRC o residuo
CRC, al final de la unidad de datos de forma que los datos resultantes sean divisibles exactamente
por un nmero binario predeterminado. En el destino, la unidad de datos que se recibe es dividida
por este mismo nmero. Si en este paso no hay residuo, se asume que la unidad de datos es
intacta y se acepta. La existencia de un residuo indica que la unidad de datos ha sufrido daos
durante el trnsito y que debe ser rechazada.
Los bits de redundancia usados en la CRC se obtienen dividiendo la unidad de datos por un divisor
determinado; el residuo es la CRC. Para que sea vlida, una CRC debe tener dos cualidades: debe
tener exactamente un bit menos que el divisor y aadirlo al final de la tira de datos debe hacer
que el resultado sea exactamente divisible por el divisor.

Tanto la teora como la aplicacin de la deteccin de error con CRC son inmediatas. Su nica
complejidad es la obtencin de la CRC. Comenzaremos con una introduccin para clarificar este
proceso e iremos aadiendo complejidad a medida que se avanza. La figura
4.48 muestra un esquema con los tres pasos bsicos.
1. En primer lugar, se aade una tira de n ceros a la unidad de datos. El nmero n es uno menos
que el nmero de bits en el divisor predefinido, que tiene n + 1 bits.
2. En segundo lugar, la nueva unidad de datos se divide por el divisor usando un proceso
denominado divisin binaria. El residuo resultante de esta divisin es la CRC.
3. En tercer lugar, la CRC de n bits obtenida en el paso 2 sustituye a los ceros aadidos al final de la
unidad de datos. Observe que la CRC puede estar formada por ceros.




Figura 4.48 Generador y comprobador de CRC
La unidad de datos llega al receptor en primer lugar, seguida por la CRC. El receptor trata toda la
tira como una unidad y la divide por el mismo divisor que se us para hallar el residuo de la CRC.
Si la tira llega sin error, el comprobador de CRC obtiene un residuo 0 y la unidad de datos se
acepta. Si la tira ha cambiado durante la transmisin, la divisin "arroja un residuo no nulo y la
unidad de datos no se acepta.
El generador de la CRC
Un generador de la CRC usa divisin mdulo 2. La figura 4.49 muestra este proceso. En el primer
paso, el divisor de cuatro bits se resta de los primeros cuatro bits del dividendo.
Cada bit del divisor se resta del bit correspondiente del dividendo sin afectar al bit que hay a
continuacin. En el ejemplo, el divisor 1101 se resta de los cuatro primeros bits del dividendo,
1001, arrojando 100 (el 0 inicial del residuo se descarta).
A continuacin se arrastra el siguiente bit sin usar del dividendo para hacer que el nmero de bits
del residuo sea igual al nmero de bits del divisor. Por tanto, el paso siguiente es
1000 - 1101, lo que arroja 101, continuando el proceso de esta misma forma.
Figura 4.49 Divisin binaria en un generador de CRC
En este proceso, el divisor siempre comienza con 1; el divisor se resta de una porcin de la divisin
dividendo/residuo anterior que sea igual en longitud; el divisor solamente se puede restar de las
divisiones dividendo/residuo cuyo bit ms a la izquierda es 1. Siempre que el bit ms a la izquierda
de la divisin dividendo/residuo es 0, una tira de ceros de la misma longitud que el divisor
reemplaza al divisor en ese paso del proceso. Por ejemplo, si el divisor tiene cuatro bits, se
sustituye por cuatro ceros. (Recuerde que estamos trabajando con patrones de bits, no con
valores cuantitativos; 0000 no es lo mismo que 0.) Esta restriccin significa que, en cualquier paso,
la resta ms a la izquierda ser 0 - 0 o 1 - 1, ambas igual a 0. Por tanto, despus de la resta, el bit
ms a la izquierda del residuo ser siempre 0, por lo que se descarta, y se arrastra el siguiente bit
sin usar del dividendo para completar el residuo. Observe que nicamente se descarta el primer
bit del residuo: si el segundo bit es tambin 0, se mantiene, y el siguiente paso de la divisin
dividendo/residuo comenzar con un 0. Este proceso se repite hasta que se ha utilizado todo el
dividendo.

El comprobador de CRC
Un comprobador de CRC funciona igual que el generador. Despus de recibir los datos y la
CRC, hace la siguiente divisin mdulo 2. Si todo el residuo son ceros, la CRC se descarta y se
aceptan los datos; en cualquier otro caso, el flujo de bits recibido se descarta y se retransmiten los
datos. La figura 4.50 muestra el proceso de divisin en el receptor. Se asume que no hay error. Por
tanto, todo el residuo son ceros y se aceptan los datos.

Figura 4.50 Divisin binaria en el comprobador de CRC
Polinomios
El generador de la CRC (el divisor) no se suele representar a menudo como una tira de unos y
ceros, sino como un polinomio algebraico (vase la figura 4.51). El formato polinomial es til por
dos razones: es corto y se puede usar para demostrar conceptos matemticamente



Figura 4.51 Un polinomio
La relacin de un polinomio con su correspondiente representacin binaria se muestra en la
figura 4.52.


Figura 4.52 Un polinomio que representa un divisor
Se debera seleccionar un polinomio que tenga al menos las siguientes propiedades:
No debera ser divisible por x.
Debera ser divisible por (x + 1).
La primera condicin garantiza que se pueden detectar todos los errores de rfaga de una longitud
igual al grado del polinomio. La segunda condicin garantiza que se detectan todos los errores de
rfaga que afectan a un nmero impar de bits (la demostracin est fuera del mbito de este libro.


Prestaciones

CRC es un mtodo de deteccin de errores muy efectivo. Si se elige el divisor de acuerdo a las
reglas mencionadas anteriormente,
1. CRC puede detectar todos los errores de rfaga que afectan a un nmero impar de bits.
2. CRC puede detectar todos los errores de rfaga de longitud menor que o igual que el grado del
polinomio.
3. CRC puede detectar con probabilidad muy alta errores de rfaga con longitud mayor que el
grado del polinomio.






CDIGO HAMMING
Es un cdigo que se utiliza en la deteccin y correccin de errores que se producen
en la transmisin de cdigos binarios, la palabra de cdigo se conforma por los bits de
comprobacin y los bits de informacin.
5.1. CONCEPTOS BSICOS:
Para poder continuar con el desarrollo del cdigo es necesario tener en cuenta
algunas generalidades y conceptos bsicos:
a cada una de stas se le asigna una combinacin de smbolos binarios.
hay que cambiar en una de ellas para obtener la otra.
combinaciones binarias cualesquiera pertenecientes a dicho cdigo.
5.2. DISTANCIA DE HAMMING
El cdigo Hamming se genera a partir de una distancia mnima de 3, ya que una
distancia de 1 o 2 es inconveniente para poder generar un cdigo para detectar un
error.
La distancia mnima de Hamming est dada por la siguiente ecuacin:
Dm= 2X+1
Donde Dm es la distancia mnima de un cdigo para permitir la correccin de datos y X
es las lneas de datos.
Si se tuviese una distancia de 1 no tendramos valores para saber si hay o no un
error.
Si se tienen una distancia de 2 se podra lograr un sistema de correccin de error con un bit de
paridad pero el problema que esto lleva es que un sistema con distancia 2 puede tener datos
errneos que pueden pasar como datos correctos.
5.3. VARIABLES PARA GENERACIN HAMMING
Para la generacin del cdigo Hamming se deben tener en cuenta tres variables que
mencionaremos a continuacin:
n: nmero de bits del cdigo original que se pretende transmitir.
p: nmero de bits de paridad par generados en el transmisor, o sea, nmero de lneas
que aadimos al cdigo inicial.
c: nmero de bits detectores de paridad par generados por el receptor.
El valor de p = c, ya que los bits de paridad generados tanto en el transmisor como en
el receptor debe ser la misma.
El nmero de combinaciones que se pueden formar con los c bits detectores de paridad tiene
que ser mayor o igual que el nmero de lneas del cdigo original (n) ms el nmero de lneas
de paridad aadidas (p) ms uno, este ltimo para contemplar el caso de no error.

Esta ecuacin nos muestra que existen unas combinaciones, estas no pueden ser
asignadas de forma aleatoria a un evento, para asignar estas combinaciones a un
evento especfico este debe estar en uno de los tres grupos diferenciados.
1. Combinacin asignada a la situacin en que no haya error en la transmisin.
2. Combinaciones asignadas a los bits de paridad generados en el transmisor.
3. Combinaciones asignadas a los bits de datos del cdigo original.
Podemos tener un manejo de esta ecuacin para poder obtener la cantidad mnima de bits de
informacin que nosotros podemos enviar.
Si se despeja n

Teniendo en cuenta que p =c
Si contamos con los valores de bits de paridad podemos encontrar los bits de
informacin que se pueden manejar.
Para obtener el nmero de bits total de la cadena del mensaje (s) se debe realizar la siguiente
operacin:

GENERACIN DEL CDIGO DE HAMMING
El cdigo Hamming plantea la generacin de una tabla para poder asignar los valores
de las posibles combinaciones que generen los bits de paridad.
A continuacin manejaremos un cdigo ASCII de 7 bits
Si se tienen 7 bits de informacin se necesitan entonces que c = 4, esto nos conlleva a que se
generan 2c combinaciones y es igual a 24 = 16 combinaciones a continuacin se establece una
tabla de 16 combinaciones con un rango de 0 a 15

Para la asignacin de los eventos se realiza lo siguiente:
1. Contar Nmero de unos en las combinaciones
2. Si el nmero de unos es cero es una situacin de no error y no se utiliza para enviar
dato.


3. Si el nmero de unos es 1, debemos empezar a organizar los bits de paridad desde
el primero hasta el ltimo y darles su respectiva asignacin.
4. Si el nmero de unos es 2 en estos deben colocarse para los datos, si las
combinaciones de 2 unos no son suficientes para los datos debemos empezar con los
de 3 y luego los de 4 as sucesivamente, se prefiere que se coloquen los datos
primero en los grupos de 2.
5. Si no se tienen ms datos esas lneas no son vlidas y se omiten en el sistema de
verificacin.

Los bits de paridad b1, b2, b4, b8, no tienen un valor fijo este valor se encuentra por
las siguientes relaciones:
b1 = b3 b5 b7 b9 b11 b13 b15;
b2 = b3 b6 b7 b10 b11 b14 b15;
b4 = b5 b6 b7 b12 b13 b14 b15;
b8 = b9 b10 b11 b12 b13 b14 b15;
Esto se debe a que los bits de paridad se conforman de las combinaciones en donde
el bit de paridad es uno, por ejemplo el bit1 es el bit de paridad para las
combinaciones impares, se conforman de las combinaciones impares b3, b5, b7, b9,
b11, b13, b15.
A continuacin se muestra una tabla para ver cmo se realiza la operacin de EXOR.
En la tabla se organizan y se suma para obtener los valores de b1, b2, b4, b8.

Terminada la tabla se procede a enviar el dato o la trama de datos
La cual sera
00100011000100
Los datos que no se utilizan por lo general se envan en cero.
Para saber si existe un error en la transmisin o si el mensaje de transmiti
correctamente se deber realizar una comprobacin del sistema para esto se realiza
con una codificacin de los componentes c1, c2, c3, c4 de la siguiente manera:
c1 = b1 b3 b5 b7 b9 b11 b13 b15;
c2 = b2 b3 b6 b7 b10 b11 b14 b15;
c3 = b4 b5 b6 b7 b12 b13 b14 b15;
c4 = b8 b9 b10 b11 b12 b13 b14 b15;
Los resultados que vemos aqu son calculados con los datos que llegan al receptor, si
los datos de c1, c2, c3, c4 nos dan cero en todos el mensaje se transmiti sin error
pero si uno o varios de estos elementos se convierten en 1 quiere decir que hay un
error, por ejemplo si el resultado de los indicadores ci son: c1 = 0, c2=1, c3=1, c4=0,
esto quiere decir que hay un error en la combinacin b6 por ende si hay un uno en
esta posicin quiere decir que el verdadero valor es cero, entonces podemos cambiar
el valor de este y corregir de esta manera el error presentado.
5.5. EL SNDROME

También podría gustarte