CRC PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Recordarán que vimos este ejemplo para calcular el CRC

Ejemplo:
1. Sean:
mensaje D % 1010001101 (10 bits)
patrón P % 110101 (6 bits)
FCS R % a calcular (5 bits)

Por tanto, n % 15, k % 10 y (n . k) % 5.


2. El mensaje se multiplica por 25, resultando 101000110100000.

3. El resultado anterior se divide entre P:

1 1 0 1 0 1 0 1 1 0 <Q
P; 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 < 2n–kD
1 1 0 1 0 1
1 1 1 0 1 1
1 1 0 1 0 1
1 1 1 0 1 0
1 1 0 1 0 1
1 1 1 1 1 0
1 1 0 1 0 1
1 0 1 1 0 0
1 1 0 1 0 1
1 1 0 0 1 0
1 1 0 1 0 1
0 1 1 1 0 <R

4. El residuo se suma a 25 D para dar T % 101000110101110, que es lo que se transmite.

Ya en el receptor

5. Si no hay errores, el receptor recibe T intacto. La trama recibida se divide entre P:


1 1 0 1 0 1 0 1 1 0<Q
P; 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 <T
1 1 0 1 0 1
1 1 1 0 1 1
1 1 0 1 0 1
1 1 1 0 1 0
1 1 0 1 0 1
1 1 1 1 1 0
1 1 0 1 0 1
1 0 1 1 1 1
1 1 0 1 0 1
1 1 0 1 0 1
1 1 0 1 0 1
0 <R

Ya que el residuo es cero, se supone que no ha habido errores.

Después vimos el mismo ejemplo pero en forma de polinomios:


Ahora veremos un método utilizando un registro de corrimientos.
En la siguiente figura se muestra un registro de corrimientos que representa el polinomio:

Este registro de corrimientos (Polinomio) es el Patrón.

En el ejemplo es:

Los coeficientes del Polinomios son 0 o 1, (desconectado o conectado) dependiendo del


valor del Patrón. En el ejemplo quedaría así:

Los cuadros en el diagrama representan elementos de memoria que almacenarán temporalmente un valor de 0 o
1 dependiendo del valor que se calcule en las sumas o del valor que entregue el elemento de memoria a la
derecha.
Inicialmente se establecen en 0 todos los elementos de memoria y los datos se desplazarán de derecha a
izquierda en cada tiempo de bit.
Los bits de entrada son los datos del mensaje.
Las sumas son operaciones XOR.

Así, en el ejemplo tenemos que inicialmente c4=0, c3=0, c2=0, c1=0 y c0=0
Como el mensaje es 25D = 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 (el mensaje con los cinco ceros adicionales),
entonces el primer dato que entrará al registro de corrimientos es un 1.
Al entrar ese 1 todos los elementos de memoria se actualizan de la siguiente manera:
c4 = c4 + c3
c3 = c2
c2 = c4 + c1
c1=c0
c0=c4 + Dato en la entrada

Nota: Antes de actualizar los elementos de memoria se realizan los calculos a la derecha de las asignaciones
anteriores con los datos que se encuentran en los elementos de memoria. Una vez realizados los cálculos se
realiza la asignación.
En la siguiente tabla se muestra el procedimiento en cada instante de tiempo de bit.

En el último paso, se para el proceso y los bits que quedan en el registro de corrimientos son el CRC.
Es frecuente utilizar alguna de las cuatro definiciones siguientes para P(X):

CRC-12 % X12 ! X11 ! X3 ! X2 ! X ! 1


CRC-16 % X16 ! X15 ! X2 ! 1
CRC-CCITT % X16 ! X12 ! X5 ! 1
CRC-32 % X32 ! X26 ! X23 ! X22 ! X16 ! X12 ! X11
! X10 ! X8 ! X7 ! X5 ! X4 ! X2 ! X ! 1

CRC-12 se utiliza para la transmisión de secuencias de caracteres de 6 bits y generará una FCS de
12 bits. Tanto CRC-16 como CRC-CCITT son habituales para los caracteres de 8 bits. Se utilizan,
respectivamente, en los Estados Unidos y en Europa, si bien ambas generan una FCS de 16 bits.
Esto podría parecer adecuado para la mayoría de las aplicaciones, no obstante, en algunas normas
de transmisión síncrona sobre enlaces punto a punto se ha especificado CRC-32 como opcional.
Además, esta misma CRC se utiliza en normas IEEE 802 para LAN.

El procedimiento CRC se puede representar, y de hecho implementar, con un circuito divisor for-
mado por puertas exclusive-or y un registro de desplazamiento. El registro de desplazamiento es
una cadena de elementos de memoria de 1 bit. Cada elemento tiene una línea de salida que conten-
drá el valor actualmente almacenado, además de una línea de entrada. A instantes discretos de
tiempo, establecidos por una señal de reloj, el valor almacenado en el elemento de memoria se
reemplaza por el valor que se encuentre en la línea de entrada. Todo el registro utiliza una señal de
reloj común, que provoca un desplazamiento de un bit a lo largo de todo el registro.

También podría gustarte