digitales paper

6
ESCUELA POLITÉCNICA DEL EJÉRCITO EXTENSIÓN LATACUNGA Méndez Hurtado María Gabriela Ingeniería Mecatrónica, Sexto A, Escuela Politécnica del Ejército Extensión Latacunga, Marquéz de Maenza S/N Latacunga, Ecuador Email: [email protected] Fecha de Presentación: 02/09/2013 TÍTULO: El Código CRC y el Código Hamming RESUMEN En el presente documento describiremos dos códigos que nos permiten detectar y corregir errores dentro de una palabra binaria de datos; estos son el código CRC creado por W. Wesley Peterson en 1961 y el código Hamming creado por el profesor Richard Wesley Hamming en 1950; en esta consulta definimos conceptos básicos para entender de qué se trata estos dos códigos, funcionamiento de cada código, también indicaremos los pasos necesarios para calcular el código CRC y el código Hamming en el extremo emisor y en el extremo receptor; a continuación se describe el comportamiento de los códigos ya mencionados y por último se colocarán ejemplos prácticos de su aplicación a manera de refuerzo. Palabras Clave Código CRC, Código Hamming, Funcionamiento del código CRC, Funcionamiento del código Hamming, DESARROLLO 1. Historia El código CRC hace referencia a cyclic redundancy check, también llamado polynomial code checksum. En español, control de redundancia cíclica o comprobación de redundancia cíclica. El CRC es una función diseñada para detectar cambios accidentales en datos de computadora y es comúnmente 1

Upload: teban-espinosa

Post on 27-Sep-2015

214 views

Category:

Documents


1 download

DESCRIPTION

Digitales Paper

TRANSCRIPT

ESCUELA POLITCNICA DEL EJRCITO EXTENSIN LATACUNGAMndez Hurtado Mara GabrielaIngeniera Mecatrnica, Sexto A, Escuela Politcnica del Ejrcito Extensin Latacunga, Marquz de Maenza S/N Latacunga, EcuadorEmail: [email protected] de Presentacin: 02/09/2013TTULO: El Cdigo CRC y el Cdigo HammingRESUMENEn el presente documento describiremos dos cdigos que nos permiten detectar y corregir errores dentro de una palabra binaria de datos; estos son el cdigo CRC creado por W. Wesley Peterson en 1961 y el cdigo Hamming creado por el profesor Richard Wesley Hamming en 1950; en esta consulta definimos conceptos bsicos para entender de qu se trata estos dos cdigos, funcionamiento de cada cdigo, tambin indicaremos los pasos necesarios para calcular el cdigo CRC y el cdigo Hamming en el extremo emisor y en el extremo receptor; a continuacin se describe el comportamiento de los cdigos ya mencionados y por ltimo se colocarn ejemplos prcticos de su aplicacin a manera de refuerzo.Palabras ClaveCdigo CRC, Cdigo Hamming, Funcionamiento del cdigo CRC, Funcionamiento del cdigo Hamming,DESARROLLO

1. 1

2. HistoriaEl cdigo CRC hace referencia a cyclic redundancy check, tambin llamado polynomial code checksum. En espaol, control de redundancia cclica o comprobacin de redundancia cclica.El CRC es una funcin diseada para detectar cambios accidentales en datos de computadora y es comnmente usada en redes digitales y dispositivos de almacenamiento (como discos duros).

El CRC fue creado por W. Wesley Peterson en 1961; el polinomio de 32 bits usado en funciones CRC de Ethernet (y otros estndares) fue publicado en 1975.

El CRC es muy popular por su simpleza de implementacin, fcil de analizar matemticamente y es muy bueno detectando errores causados por ruidos en los canales de transmisin.

Por otra parte en el ao 1950, el profesor Richard W. Hamming public un artculo sobre deteccin y correccin de errores. Este trabajo supuso el comienzo de una nueva rea de investigacin dentro de la teora de la informacin. Actualmente, los cdigos de Hamming son fundamentales en la teora de la codificacin y tienen una gran cantidad de aplicaciones prcticas. En concreto, los cdigos correctores de errores tienen un papel esencial en la vida cotidiana y son usados por mdems, memorias e incluso en comunicaciones va satlite.El nombre "control/comprobacin de redundancia cclica" se debe a que se "controla" (verificacin de datos) un cdigo redundante (no agrega nueva informacin, el cdigo CRC representa el mismo bloque de datos) y el algoritmo est basado en cdigos cclicos.

Control de redundancia cclica Laverificacin de redundancia cclicaconsiste en la proteccin de los datos en bloques, denominadostramas. A cada trama se le asigna un segmento de datos denominadocdigo de control(al que se denomina a vecesFCS,secuencia de verificacin de trama, en el caso de una secuencia de 32 bits, y que en ocasiones se identifica errneamente comoCRC). Elcdigo CRCcontiene datos redundantes con la trama, de manera que los errores no slo se pueden detectar sino que adems se pueden solucionar.

2.1. FuncionamientoEl emisor que tiene unos datos preparados para enviar calcula el CRC de esos datos y los anexa a los datos. El mensaje se compone por tanto de datos+crc.

El receptor recibe el mensaje y separa datos de crc. Luego calcula el crc y lo compara con el crc que el emisor envi. Si ambos son iguales la informacin es correcta. Si no lo es entonces el mensaje es corrupto y hay que volverlo a pedir.

2.2 Polinomio generadorEl polinomio generador es el polinomio que se utiliza para calcular el CRC. Hay una serie de polinomios estndares aunque nosotros podemos emplear en nuestro software el que nos convenga.Los cdigos polinmicos se basan en el tratamiento de series de bits como si fueran representaciones de polinomios. Una trama de k bits se ve como una lista de coeficientes de un polinomio con k trminos, cubriendo un rango desde xk-1 hasta x0. El bit de orden ms alto (el ms a la izquierda) es el coeficiente del trmino xk-1; el siguiente bit es el coeficiente del trmino xk-2, y as sucesivamente. Por ejemplo, el cdigo 110001 tiene 6 bits y, por consiguiente, representa a un polinomio de tres trminos, que contienen los siguientes coeficientes 1, 1, 0, 0, 0 y 1, es decir: x5 +x4 + x0.Cuando se emplea el mtodo del cdigo polinmico, el emisor y el receptor debern estar de acuerdo respecto a un polinomio generador, G(x), en forma anticipada. Los bits de orden superior e inferior del generador deben ser 1. Para calcular el cdigo de redundancia de alguna trama con m bits, correspondiente al polinomio M(x), la trama deber ser ms grande que el polinomio generador. La idea bsica consiste en incluir un cdigo de redundancia al final de la trama, de tal manera que, el polinomio representado por la trama con el cdigo de redundancia sea divisible por G(x). Cuando el receptor recibe la trama de suma comprobada, intenta dividirla entre G(x). Si existe un resto, habr ocurrido un error de transmisin.El algoritmo para calcular la redundancia es el siguiente:1. Sea r el grado de G(x). Agregar r bits a cero al extremo de orden inferior de la trama, de tal manera que ahora contenga m + r bits, y corresponda al polinomio xrM(x).2. Dividir la serie de bits correspondientes a xrM(x) entre la serie de bits correspondientes a G(x), empleando la divisin en mdulo 2.3. Restar el resto (que siempre tiene r o menos bits) de la serie de bits correspondientes a xrM(x), empleando la resta en mdulo 2. El resultado es la trama lista para trasmitir. Llmese T(x) a este polinomio.Ejemplo: Calculo para la trama 1101011011 y G(x) = x4+x+1Fig 1. Clculo de la Redundancia Cclica

Una rfaga de error de longitud k puede representarse por la expresin:xi(xk-1+...+1)Expresin para la rfaga de errorDonde i determina qu tan lejos del extremo derecho de la trama recibida, queda localizada la rfaga. Si G(x) contiene un trmino x0, no tendr a xi como factor, por lo cual, si el grado de la expresin entre parntesis es menor que el grado de G(x), el resto nunca podr ser cero.Tambin se puede demostrar que, cuando ocurre una rfaga de error mayor que r + 1 bits, o bien, que ocurren varias rfagas cortas, la probabilidad de que una trama mala pase inadvertida es de r, suponiendo que todos los conjuntos de bits son semejantes.3. Cdigo HammingCon este mtodo, por cada enteromexiste un cdigo de hamming de 2m-1 bits que contienembits de paridad y 2m-1-m bits de informacin. En este cdigo, los bits de paridad y los bits de paridad se encuentran entremezclados de la siguiente forma: Si se numeran las posiciones de los bits desde 1 hasta 2m-1, los bits en la posicin 2k, donde0km-1, son los bits de paridad y los bits restantes son bits de informacin.Para cada bit de paridad en la posicin2k, sugrupo de bits de informacin correspondienteincluye todos esos bits de informacin correspondiente cuya representacin binaria tenga un uno en la posicin2k. La siguiente tabla muestra los grupos de paridad para un cdigo de hamming de 7 bits o sea de la forma2m-1 conm= 3. En este ejemplo, los bits de informacin son 4 y los bits de paridad son 3. Los bits de informacin estn en las posiciones 7, 6, 5 ,3. Los bits de paridad estn en las posiciones 1, 2, 4.Tabla 1. Posicin de los bits7654321

XXXX

XXXX

XXXX

3.1 FuncionamientoEste Componente obtiene el valor de cdigo Hamming mediante operaciones internas del tipo xor, este cdigo nicamente sirve para saber si el envio es correcto. Es importante darse cuenta que para estos bits es imprescindible enviarlos junto al cdigo a verificar.Antes de calcular el cdigo Hamming es necesario saber cuntos bits de redundancia sern necesarios para la palabra de datos a corregir. Si el nmero total de bits en una unidad transmisible es m + r, entonces r debe ser capaz de indicar al menos m + r + 1 estados distintos. En la Tabla se muestran algunos valores posibles de m y sus correspondientes valores de r:mrm+r

123

235

336

437

549

6410

7411

Tabla 2. Relacin entre los bits de datos3.2 Deteccin y correccin de errores en el receptorSe tiene el siguiente ejemplo:

Fig 2. Correccin de errores con CdigoEl receptor toma los datos y recalcula cuatro nuevos bits de paridad usando el mismo conjunto de bits usados por el emisor, ms el bit de paridad relevante (r) de cada conjunto. A continuacin reensamblan los nuevos valores de paridad en un nmero binario siguiendo el orden de la posicin de r (r8, r4, r2 y r1). En el ejemplo de la figura, este paso proporciona el nmero binario 0111 (7 en decimal), que es la posicin precisa del bit con error. Una vez que se ha identificado el bit, el receptor puede invertir su valor y corregir el error.

CONCLUSIONES Estos cdigos de correccin tienen su grado de dificultad para resolver pero su ventaja es que son muy tiles a la hora de encontrar y corregir errores. Su aplicacin es muy usual al enviar informacin por medio de dispositivos bluetooth y en diferentes redes de comunicacin.BIBLIOGRAFA GOUPILLE. P. Introduction to Computer Hardware and Data Communications. (Prentice Hall, 1993). Cap. 5. STALLINGS W., Prentice Hall. , Comunicaciones y Redes de Computadores. 7 ed. 2004 http://es.kioskea.net/contents/base/control.php3 http://www.ciens.ucv.ve/comdatos/codigoHamming.pdf http://docencia.udea.edu.co/SistemasDiscretos/contenido/cod_hamming.html