Documentation for CRC-16. The cyclic redundancy check, or CRC, is a technique for detecting errors in digital data, but not for making corrections when errors are detected. It is used primar…Full description
Un mensaje de n + 1 bits puede ser considerado como un polinomio de grado n donde los coeficientes son 0 o 1 [31 31]. ]. Por ejemplo, el 5 mensaje 00100011 equivaldría al polinomio x + x + 1. x ) el mensaje (polinomio de grado n) de n + 1 bits que el emisor quiere enviar al receptor, y sea G ( x x ) el polinomio generador usado Sea M ( x n
k
para crear el CRC. El CRC se calcula realizando
l
El emisor concatena a M ( x x ) los k bits del CRC y los env ía. Matemáticamente: n
x ) debe ser divisible entre Nótese que T + ( x n k
l
G ( x x ). k
El receptor recibe T + ( x x ) y comprueba si es divisible entre G ( x x ). Si así es supone que no se han producido errores de transmisión. n k
Ejemplo 5 2 Trama a transmitir: M 5( x x ) = x + x . 3 2 x ) = x + x + 1. Polinomio CRC: G3( x
x ) = 1. Residuo: R2( x
Trama finalmente transmitida: 100100 001 8 5 x ) = x + x + 1). (T 8( x
k
Errores detectados l
Una trama con errores sería T + ( x ) + E ( x ), donde E ( x ) es el polinomio formado por todos los bits de n k
i
i
T ( x ) n+ k
que han sido invertidos. Para no
detectar el error tiene que ocurrir que
o lo que es lo mismo, que
ya que por definición
l
Por tanto, los mejores polinomios generadores son aquellos que dif ícimente son factor de otro posible polinomio error. Por ello los polinomios de CRC deben: (1) tener un grado lo m ás alto posible y (2) no ser factorizables. Ejemplos: Denominación CRC-8 CRC-10 CRC-12 CRC-16 CRC-CCITT CRC-32
l
G( x ) x
8
2
1
x
10
+ x 9 + x 5 + x 4 + x 1 + 1
x
12
+ x + x + x + 1
x
16
+ x 15 + x 2 + 1
x
16
+ x + x + 1
x
32
+ x 26 + x 23 + x 16 + x 11+
x
10
+ x + x + x + x + x + 1
+ x + x + 1 11
3
12
8
2
5
7
5
4
2
Nótese, por ejemplo, que el CRC -32 detectará todos aquellos errores tipo ráfaga * que afecte a menos de 32 bits ya que ningún polinomio error de grado menor que 32 ser á divisible entre él.