Vous êtes sur la page 1sur 4

UNIVERSISDAD DE LAS FUERZAS ARMAS- ESPEL

ESCOLA CARLOS

Ingeniera Automotriz, Quinto Nivel A, Escuela Politcnica del Ejrcito Extensin Latacunga,
Mrquez de Maeza S/N Latacunga, Ecuador.
Email: davidescola18@hotmail.es
Fecha de presentacin: 04 de septiembre de 2013
error producen diferentes resultados, entonces
los bits errneos podran ser identificados. En
un conjunto de siete bits, hay slo siete posibles
RESUMEN: Los algoritmos se diferencian en su
forma de procesar el mensaje es decir se puede
tomar la informacin por byts o de bit en bit lo
que determina su velocidad1

Palabras Claves: Cdigos de deteccin de


errores, cdigo Hamming, cdigo CRC

Cdigos de Deteccin de Errores


La deteccin y correccin de errores es una
importante prctica para el mantenimiento e
integridad de los datos a travs de diferentes
procedimientos y dispositivos como medios de
almacenamiento confiables.2
La comunicacin entrevarias computadoras
produce continuamente un movimiento de datos,
generalmente por canales no diseados para
este propsito (lnea telefnica), y que
introducen un ruido externo que produce
errores en la transmisin. Por lo tanto, debemos
asegurarnos que si dicho movimiento causa
errores, stos puedan ser detectados. El mtodo
para detectar y corregir errores es incluir en los
bloques de datos transmitidos bits adicionales
denominados redundancia

Cdigo Hamming
En informtica, el cdigo de Hamming es
un cdigo detector y corrector de errores que
lleva el nombre de su inventor, Richard
Hamming. Se pueden detectar errores en un bit
y corregirlos, sin embargo no se distingue entre
errores de dos bits y de un bit (para lo que se
usa codigo Hamming . Esto representa una
mejora respecto a los cdigos con bit de
prioridad, que pueden detectar errores en slo
un bit, pero no pueden corregirlo.
Si se aaden junto al mensaje ms bits
detectores-correctores de error y si esos bits se
pueden ordenar de modo que diferentes bits de

1 (LLORIS-PRIETO-PARRILA, 2006)
2 (THOMAS, 2000)

errores de bit, por lo que con tres bits de control


de error se podra especificar, adems de que
ocurri un error, en qu bit fue.
El algoritmo de Hamming (7.4) puede corregir
cualquier error de un solo bit, pero cuando hay
errores en ms de un bit, la palabra transmitida
se confunde con otra con error en un slo bit,
siendo corregida, pero de forma incorrecta, es
decir que la palabra que se corrige es otra
distinta a la original, y el mensaje final ser
incorrecto sin saberlo. Para poder detectar
errores de dos bits, se debe aadir un bit ms, y
el cdigo se llama Hamming extendido. El
procedimiento para esto se explica al final.
El algoritmo es el siguiente:
1. Todos los bits cuya posicin es potencia de
dos se utilizan como bits de paridad (posiciones
1, 2, 4, 8, 16, 32, 64, 128,etc.).
2. Los bits del resto de posiciones son utilizados
como bits de datos (posiciones 3, 5, 6, 7, 9, 10,
11, 12, 13, 14, 15, 17, etc.).
3. Cada bit de paridad se obtiene calculando la
paridad de alguno de los bits de datos. La
posicin del bit de paridad determina la
secuencia de los bits que alternativamente
comprueba y salta, a partir de ste, tal y como
se explica a continuacin.
Posicin 1: salta 0, comprueba 1, salta 1,
comprueba 1, etc.
Posicin 2: salta 1, comprueba 2, salta 2,
comprueba 2, etc.
Posicin 4: salta 3, comprueba 4, salta 4,
comprueba 4, etc.
Posicin 8: salta 7, comprueba 8, salta 8,
comprueba 8, etc.
Posicin 16: salta 15, comprueba 16, salta 16,
comprueba 16, etc.
Regla general para la posicin n es: salta n-1
bits, comprueba n bits, salta n bits, comprueba n
bits. Y as sucesivamente.
En otras palabras, el bit de paridad de la
posicin 2k comprueba los bits en las posiciones

que tengan al bit k en su representacin binaria.


Dicho a la inversa, el bit 4, chequea los bits 4, 5,
6, 7, al ser estos los de su representacin
binaria: 4=1002, 5=1012, 6=1102 y 7=1112.
Por el contrario, el mismo bit de paridad no
comprueba el bit 8, debido a que en su
representacin binaria el bit nmero 3 (2^3=4)
es igual a 0 (8=10002). As, por ejemplo, para los
primeros trminos se tiene:

Con errores
Tabla 3 Comprobacin de los bits de paridad
(con primer bit de la derecha cambiado)

En la Posicin 1 (2^0 = 1), comprobaramos los


bits: 1, 3, 5, 7, 9, 11, 13...
En la Posicin 2 (2^1 = 2), los bits: 2, 3, 6, 7, 10,
11, 14, 15...
En la Posicin 4 (2^2 = 4), los bits: 4, 5, 6, 7, 12,
13, 14, 15, 20, 21, 22, 23...
En la Posicin 8 (2^3 = 8) tendramos: 8, 9, 10,
11, 12, 13, 14, 15, 24-31...
Siguiendo el algoritmo hasta completar la nueva
cadena.

Consideremos la palabra de datos de 7 bits


"0110101". Para ver cmo se generan y utilizan
los cdigos Hamming para detectar un error,
observe las tablas siguientes. Se utiliza
la d para indicar los bits de datos y la p para los
de paridad.
En primer lugar los bits de datos se insertan en
las posiciones apropiadas y los bits de paridad
calculados en cada caso usando la paridad par.

Si se analiza en la tabla 3 la paridad que se


debe obtener a la derecha tras la llegada
del mensaje sin errores debe ser siempre 0
(por cada fila), pero en el momento en que
ocurre un error esta paridad cambia a 1, de
all el nombre de la columna "prueba de
paridad 1". Se observa que en la fila en que
el cambio no afect la paridad es cero y
llega sin errores.
El paso final es evaluar los bits de paridad
(recuerde que el fallo se encuentra en d7).
El valor entero que representan los bits de
paridad es 11 (si no hubieran ocurrido
errores este valor seria 0), lo que significa
que el bit dcimo primero de la palabra de
datos (bits de paridad incluidos) es el
errneo y necesita ser cambiado.
Tabla 4

Tabla 1 Clculo de los bits de paridad en el


cdigo Hamming

P1 = D1 exor D2 exor D4 exor D5 exor D7


P2 = D1 exor D3 exor D4 exor D6 exor D7
P3 =
D2
exor
D3
exor
D4
P4 = D5 exor D6 exor D7
La nueva palabra de datos (con los bits de
paridad)
es
ahora
"10001100101".
Consideremos ahora que el bit de la derecha,
por error, cambia de 1 a 0. La nueva palabra de
datos ser ahora "10001100100".
Sin errores
Tabla 2 Comprobacin de los bits de paridad
(con primer bit de la derecha sin cambiar)

Cambiando
el
bit
dcimo
primero
10001100100 se
obtiene
de
nuevo
10001100101. Eliminando los bits de patrn de
la paridad no se tienen en cuenta los bits de
paridad. Si el error se produjera en uno de ellos,
en la comprobacin slo se detectara un error,
justo el correspondiente al bit de paridad
causante del mismo.

Cdigo Cclico o CRC


El CRC es un cdigo de deteccin de error cuyo
clculo es una larga divisin de computacin en
el que se descarta el cociente y el resto se
convierte en el resultado, con la importante
diferencia de que la aritmtica que usamos
conforma que el clculo utilizado es el arrastre
de un campo, en este caso los bits. El tamao
del resto es siempre menor que la longitud del
divisor, que, por lo tanto, determina el tamao
del resultado. La definicin de un CRC
especifica el divisor que se utilizar, entre otras

cosas. Aunque un CRC se puede construir


utilizando cualquier tipo de regla finita, todos los
CRC de uso comn emplean una base
finita binaria, esta base consta de dos
elementos, generalmente el 0 y 1.
El concepto de CRC consiste en tratar a las
secuencias binarias como polinomios binarios,
denotando polinomios cuyos coeficientes se
correspondan con la secuencia binaria. Por
ejemplo, la secuencia binaria 0110101001 se
puede representar como un polinomio, como se
muestra a continuacin:
0*X9 + 1*X8 + 1*X7 + 0*X6 + 1*X5 +
0*X4 + 1*X3 + 0*X2 + 0*X1 + 1*X0
siendo
X8 + X7 + X5 + X3 + X0
o
X8 + X7 + X5 + X3 + 1

Debemos ahora especificar la clave para


efectuar la divisin. La seleccin de esta clave
es esencial para la capacidad de respuesta del
cdigo frente a los diversos tipos de errores. El
CCITT especifica algunas claves, que como se
van a emplear para dividir un polinomio sern
tambin polinomios, denominados polinomio
generador. En el CRC denominado CRC-16
correspondiente a la norma CCITT V.41, se
utiliza el siguiente polinomio generador:

S el primer bit del resto parcial es 1 y queda


uno ms bits del dividendo se baja el primer
bit de la izquierda no usado y se hace el XOR.
En caso contrario se bajan bits de la izquierda
del dividendo hasta que este resto con los bits
bajados est encabezado por un 1 y tenga la
misma longitud del divisor. De no lograrse el
resto con todos los bits bajados ser el resto
final de la divisin
Ejemplo:
Determine el BSC(Block Character Sequence),
para los siguientes polinomios generadores de
datos y CRC.
datos P(x) = x7 + x5 + x4 + x2 + x1 + x0
10110111
CRC G(x) = x5 + x4 + x1 + x0
110011
Solucin
Primero P(x) es multiplicado por el nmero de
bits en el cdigo CRC, 5.
x5(x7 + x5 + x4 + x2 + x1 + x0) = x12 + x10 + x9 + x7 +
x6 + x5= 1011011100000
Al dividir este polinomio por G(x) obtenemos
R(x) BCS que resulta:

G(x) = x16 + x12 + x5 + x0


donde x0= 1.
El procedimiento es el siguiente: se toma el
polinomio de datos P(x) y se multiplica por x k
donde k es el exponente ms alto de G(x), este
polinomio as construido se divide por G(x) y se
obtiene un polinomio resto R(x),llamado BCS
(Block Character Sequence), luego se procede a
enviar el polinomio T(x) construido as:
T(x) = xk P(x) + R(x)
En el extremo receptor se proceder a extraer lo
que suponemos es xk P(x), lo dividimos por G(x)
y calculamos un polinomio resto que si coincide
con el R(x) recibido indicar que no hay errores.
La longitud de P(x) es variable,algunos autores
hablan de 4 bytes para CRC-16 y otros dicen
que se aplica a la trama bloque paquete.

Resto 01001 significa R(x) = 0x4 + 1x3 + 0x2 + 0x


+1
Se transmite entoces T(x) = x kP(x) + R(x) o sea
1011011101001

La operacin de divisin empleada en CRC se


denomina de mdulo 2. Esta divisin es
diferente de la que estamos acostumbrados y
funciona as:

Bibliografa

La restas durante la divisin (o sea la


obtencin del resto parcial final) no son
aritmticas sino mdulo 2, lo que significa una
operacin XOR entre los dgitos binarios que se
estn restando( 1 y 0 da 1, 0 y 1 da 1, 0 y 0 d
0, 1 y 1 d 0).

RONALD,

LLORIS-PRIETO-PARRILA.
(2006).
SISTEMAS
DIGITALES.
ARAVACA(MADRID):
Concepcion Fernadez Madrid.
T. (2000). SISTEMAS DIGITALES
PRINCIPIOS Y APLICACIONES . Prentice
Hall.

THOMAS, F. (2000). FUNDAMENTOS DE SISTEMAS


DIGITALES . Pearson education .
VALLEJO, A. M. (2013, septiembre 02). UN Virtual.
Retrieved
from

http://es.kioskea.net/contents/59verificacion-de-errores

Vous aimerez peut-être aussi