viernes, 24 de febrero de 2017

Tema 8. Codigo CRC

Codigo CRC

Al código CRC (Verificación de Redundancia Cíclica) se lo usa para la detección de errores esta es una práctica importante para la integridad de los datos enviados a través de los diferentes medios y dispositivos.
Los bloques de datos ingresados en estos sistemas contienen un valor de verificación adjunto, basado en el residuo de una división de polinomios

Redundancia

Es la parte del mensaje que sería innecesaria en ausencia de errores.

El código CRC o de comprobación de redundancia cíclica tiene como finalidad agregar bits redundantes al final de la transmisión.
Los n bits que se transmitirán se toman como los coeficientes de un polinomio de grado n-1.
Calculo del CRC

Ejemplo

Data(x) = x^9+x^7+x^3+x^2+1 = 1010001101
P(x) = x^5+x^4+x^2+1 = 110101
Para resolver este ejercicio se debe dividir la Data para la P y se deben añadir ceros a la data según el grado del polinomio.


Para realizar esta división en lugar de usar la resta binaria común se debe operar con el xor

El resto de la división se aplica igual que en la división binaria normal.

Al realizar la división se obtiene el FCS que seria el modulo de la division.
FCS: 01110

El dato enviado seria la Data junto con el FCS

Dato enviado: 101000110101110

Circuito CRC

Diseñar sel circuito CRC es sirve para generar la tabla del proceso que llevan los bits hasta llegar a su resultado final que seria el FCS.
Si el FCS encontrado en la tabla es igual al encontrado con la división significa que los ejercicios han sido resueltos correctamente.

Ejemplo

Continuando con el ejercicio anterior
Para diseñar el circuito primero se debe agregar al polinomio P(x) las x con las potencias que no están incluidas y multiplicarlas por cero.

1x^5+1x^4+0x^3+1x^2+0x^1+1

En todos los que estén multiplicados por cero se pasa el dato directamente y los que estén multiplicados por 1 se agrega el operador exclusivo.

Una vez diseñado el circuito se debe llenar los datos.
En la entrada se coloca la Data incluyendo los 5 ceros por grado de P(x), y los bits iniciales de c4, c3, c2, c1, c0 serán ceros tal como se muestra en la imagen

Luego empezamos a realizar las operaciones XOR para llenar los bits de la derecha de la tabla

Luego movemos los bits de la tabla en la forma que se ve en el circuito diseñado anteriormente.

c4 = (c4+c3)
c2 = (c4+c1)
c0 = (c4+in)
c3 = c2
c1 = c0

Se debe repetir este proceso hasta completar la tabla

El FCS obtenido es 01110
Como se puede observar el FCS obtenido es el mismo de la división realizada en el Tema 8 lo que significa que el ejercicio a sido resuelto correctamente.

No hay comentarios:

Publicar un comentario