Este documento describe el método CRC (Cyclic Redundancy Check) para la detección de errores en la transmisión de datos. El método CRC involucra calcular un valor residual cíclico agregado al final de la trama de datos transmitida, permitiendo al receptor verificar la integridad de los datos recibidos comparando su propio cálculo CRC con el valor recibido. El documento explica específicamente cómo se realiza el cálculo CRC utilizando registros y puertas lógicas OR exclusivas, y provee un ejemplo numérico para ilustrar el proceso
0 calificaciones0% encontró este documento útil (0 votos)
627 vistas6 páginas
Este documento describe el método CRC (Cyclic Redundancy Check) para la detección de errores en la transmisión de datos. El método CRC involucra calcular un valor residual cíclico agregado al final de la trama de datos transmitida, permitiendo al receptor verificar la integridad de los datos recibidos comparando su propio cálculo CRC con el valor recibido. El documento explica específicamente cómo se realiza el cálculo CRC utilizando registros y puertas lógicas OR exclusivas, y provee un ejemplo numérico para ilustrar el proceso
Este documento describe el método CRC (Cyclic Redundancy Check) para la detección de errores en la transmisión de datos. El método CRC involucra calcular un valor residual cíclico agregado al final de la trama de datos transmitida, permitiendo al receptor verificar la integridad de los datos recibidos comparando su propio cálculo CRC con el valor recibido. El documento explica específicamente cómo se realiza el cálculo CRC utilizando registros y puertas lógicas OR exclusivas, y provee un ejemplo numérico para ilustrar el proceso
Este documento describe el método CRC (Cyclic Redundancy Check) para la detección de errores en la transmisión de datos. El método CRC involucra calcular un valor residual cíclico agregado al final de la trama de datos transmitida, permitiendo al receptor verificar la integridad de los datos recibidos comparando su propio cálculo CRC con el valor recibido. El documento explica específicamente cómo se realiza el cálculo CRC utilizando registros y puertas lógicas OR exclusivas, y provee un ejemplo numérico para ilustrar el proceso
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 6
MTODO DE COMPROBACIN DE ERRORES POR REDUNDANCIA CCLICA
CRC: Cyclic Redundancy Check
Por ING. J os de J ess J imnez Medina
1. Introduccin
La integridad de los datos, es uno de los asuntos ms importantes y prioritarios, de todo sistema que involucre en su concepto, el intercambio de informacin entre las entidades que lo componen. El transporte de datos entre los dispositivos inteligentes de un sistema, debe tener un alto grado de transparencia, para que el sistema cumpla con los estndares de eficiencia ofrecidos por sus diseadores.
A travs de los aos, se han elaborado diferentes mtodos para detectar los inevitables errores que suceden, al llevar informacin de un lugar a otro. La paridad y el checksum son mtodos sencillos utilizados para detectar errores, pero su probabilidad de xito es baja y el mtodo en s tiene una gran posibilidad de generar errores. Sin embargo, los algoritmos de estas formas simples, dieron la pauta para disear frmulas complejas que permiten por una parte, tener un alto porcentaje de confiabilidad, y por otra, una baja probabilidad de insercin de errores por el mtodo mismo.
Uno de los mtodos ms confiables, por su alta sensibilidad para detectar errores, y que se ha convertido en la referencia obligada de los sistemas de telecomunicaciones contemporneos, es el mtodo conocido como Cyclic Redundancy Check, CRC por sus siglas en ingls, que permite mantener tasas de error extremadamente bajas. Existen varios modelos del mtodo CRC, y dependiendo de la mtrica de las tramas que manejan, son conocidos como: CRC-8, CRC-16, CRC-32, CRC-CCITT, etc.
En el sistema de procesamiento radar, utilizado por SENEAM para el control de trnsito areo, la tasa de error permisible de los canales de comunicacin de datos, es de uno entre cien millones de bits. Es decir que, los datos enviados por los sensores de radar hacia los centros de procesamiento, deben llegar con una rgimen de error no mayor a 1 x 10 -8 . El modelo que se utiliza es el CRC-CCITT de 16 bits.
2. Descripcin del mtodo del CRC
El mtodo del CRC, consiste bsicamente en aplicar un procesamiento a la trama de bits que son enviados por un canal, y el resultado de ese procesamiento, es agregado a la misma trama, colocndolo al final. En la parte de recepcin, se aplica el mismo procesamiento a toda la trama, incluido el resultado del CRC agregado por el emisor, y si el resultado es igual a cero, lo ms probable es que la transferencia de informacin fue hecha sin errores.
Todos los mtodos de CRC tienen la misma mecnica, la diferencia est solamente en las variables que intervienen en el procesamiento de la informacin. En las figuras 1 y 2, se muestra el algoritmo que sigue un mtodo de CRC. Informacin
Emisor t0 CRC-tx Informacin CRC-tx t0
Receptor CRC-rx = 0 El Rx aplica el procesamiento a toda la trama incluido el CRC agregado por el tx, si los datos llegan sin errores, el CRC calculado por el rx debe ser igual a cero. Fig. 1: Mecnica de comprobacin de errores por redundancia cclica 1 2
En al figura 3 se presenta un ejercicio sencillo, que incluye una trama de 8 bits y el polinomio x 2 +1, la mtrica es igual a 2. En el ejemplo se muestra la divisin de la trama formada por los 8 bits de informacin ms el relleno de ceros igual a la mtrica, por el polinomio generador. El resultado del CRC es igual a 01. En la
figura 4 se muestra el procesamiento de la trama original, ms el resultado del CRC que se muestra en la figura 3, ms el relleno de ceros segn la mtrica. Como se puede observar el resultado de aplicar el mtodo, es que se tiene un residuo igual a cero. La operacin de la figura 3 es realizada por el emisor, el residuo se enva al final de la trama. La operacin de la figura 4 es realizada por el receptor, si todos los bits llegaron sin error y el CRC enviado es correcto, el resultado del clculo debe ser cero, si no, es que hubo errores en el envo-recepcin de la trama. figura 4 se muestra el procesamiento de la trama original, ms el resultado del CRC que se muestra en la figura 3, ms el relleno de ceros segn la mtrica. Como se puede observar el resultado de aplicar el mtodo, es que se tiene un residuo igual a cero. La operacin de la figura 3 es realizada por el emisor, el residuo se enva al final de la trama. La operacin de la figura 4 es realizada por el receptor, si todos los bits llegaron sin error y el CRC enviado es correcto, el resultado del clculo debe ser cero, si no, es que hubo errores en el envo-recepcin de la trama. Informacin CRC Fig. 2: Algoritmo de clculo del CRC Polinomio CCITT Cociente relleno El residuo de la divisin es el resultado del clculo del CRC que es agregado al final de la trama El dividendo se forma con todos los bits de la trama ms un nmero de 0 1 segn la mtrica del polinomio Nmero binario con una longitud y valor fijos. El cociente se descarta 16 12 Polinomio CCITT-16 bits: x + x + x 5 +1
El polinomio CCITT-16 es un nmero binario formado por 17 bits, donde x n representa la posicin donde un bit es 1.
El polinomio CCITT-16 =10001000000100001 2 =11021 hex
En algunos textos se menciona como el polinomio 1021 Fig.3. Clculo del CRC por el emisor Fig.4. Clculo del CRC por el receptor 3. El mtodo del CRC a base de registros
Como se conoce, la divisin binaria se puede realizar haciendo corrimientos de los bits del dividendo, segn sea la potencia n de la base 2 del divisor, 2 n .
En el caso de un polinomio, como el del ejemplo anterior, dado que el residuo es del mismo tamao que el polinomio (2 bits), se utiliza un registro de corrimiento, para introducir los bits del dividendo, pero se inserta una operacin OR exclusiva, a la salida del registro n, donde el polinomio presenta una potencia de x. Las entradas de cada OR exclusiva, son la salida del registro correspondiente y la salida del registro de x n , donde n es mxima. En la figura 5 se muestra el arreglo para la operacin de las figuras 3 y 4. Resultado del CRC (LSB-MSB) Or exclusiva X 2 +x 0 Bits de entrada LSB MSB (01011011) Fig.5. Clculo del CRC en base a registros
En la figura 6 se muestra un ejemplo utilizando un entero de 16 bits, al que se le calcula un CRC con el polinomio CCITT-16 =x 16 + x 12 + x 5 + 1. El nmero de 16 bits transmitido es 400C hex ,
3 X 16 + X 12 + X 5 + 1 Secuencia de entrada
4 0 0 C 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 MSB LSB
El CRC de 400C =EBA4 Fig. 6. Clculo del CRC del nmero 400C hex LSB MSB 4 Como se observa en ambos ejemplos, los bits de la trama sometida al clculo ms el relleno de 0 segn la mtrica del polinomio, son introducidos uno tras otro al arreglo de registros, empezando por el bit menos significativo. Despus de aplicar el nmero de corrimientos segn el nmero de bits de la trama, ms el nmero de 0 de relleno, el nmero que quede en el grupo de registros, arreglados del MSB al LSB segn se observa en la figura, ser el resultado del CRC. Segn el arreglo de registros y compuertas OR exclusiva, se advierte que un valor de 1 en la salida del registro x 16 , provocar la inversin de los bits de la otra entrada de cada compuerta OR exclusiva, mientras que un 0, en la salida del mismo registro, permitir un corrimiento transparente de los bits.
Por lo tanto, a partir de este modelo, se puede hacer el clculo del CRC de cualquier nmero, utilizando registros y compuertas (hardware), -de hecho, los controladores de comunicaciones incluyen en su lgica el clculo del CRC- y a travs de un algoritmo de software, con operaciones de rotacin y OR-X.
Es importante sealar, que el primer modelo del clculo del CRC no precisaba si el relleno debiera ser de 0 o de 1, ni tampoco si los bits debieran entrar por el registro de menos peso o por el de ms peso. Como consecuencia de esto, surgieron dos vertientes, que aplicando el mismo mtodo, arrojan resultados de CRC diferentes para un mismo nmero de entrada. En todo caso, no importa que forma se use, siempre y cuando tanto el emisor como el receptor apliquen la misma, sin embargo es necesario conocer cul de las dos se aplica, cuando se trate de acoplar un receptor y/o monitor a un enlace establecido. Al final del documento, se agregan las direcciones de las pginas web donde se puede estudiar con ms detalle, cada una de las formas.
5 4. Aplicando la teora
En este tema se aplica una prueba de escritorio, para explicar el clculo del CRC del nmero del ejemplo de la figura 6.
En el siguiente listado se muestra el estado de los registros que forman el modelo del CRC. El registro inicia con ceros y los bits de la trama, iniciando con el LSB, son introducidos en cada corrimiento. Los corrimientos estn numerados del 0 al 31, que corresponden a 32 bits, 16 para los bits de la trama y 16 del relleno de ceros.
Cuando el bit del registro 16 (x 16 ) es 1, entonces se ejecuta una operacin OR exclusiva entre el valor del grupo de registros y el valor del polinomio. El CRC es el valor que queda en los registros, al finalizar el corrimiento de todos los bits, incluyendo los 16 ceros de relleno al final. Los bits del CRC son ordenados de acuerdo a la figura 6.
Cl cul o del CRC- CCI TT de 16 bi t s de l a t r ama: 0c40
Una aplicacin, conocida como calculadora de CRC para el polinomio CCITT-16, acompaa a este documento para ayudar en el clculo rpido de cualquier trama de datos.
En la figura 7 se muestra la interfaz grfica de la calculadora. Esta pequea aplicacin, funciona en una plataforma de W9x, W2K WXP.
La ventana de datos permite ingresar un mximo de 256 caracteres, en formato hexadecimal o en formato ASCII. La trama de datos se forma a partir del primer byte ingresado, el cual es el byte menos significativo, y al final del clculo, el CRC formado de 16 bits es ordenado con el mismo criterio, es decir, el byte de menos peso es puesto primero, de izquierda a derecha, en la ventana del resultado CRC: .
Al activar la caja de la opcin Archivo CRC, la calculadora genera un archivo con la prueba detallada del CRC de la trama de datos.
Fig. 7. Calculadora de CRC, CCITT-16 Ventana para ingresar datos (mximo 256) Permite generar un archivo de texto con el clculo del CRC Botn para calcular el CRC de la trama ingresada Limpia la ventana de datos y de resultado Ventana de resultado Selecciona el formato de datos en ASCII Selecciona el formato de datos en HEX