4.3

Anuncio
Hernández
Unidad IV
Comunicación de datos
Entonces, si:
M ( x)(2 n )
R( x)
= Q( x) +
, donde Q(x) es el cociente,
G ( x)
G ( x)
4.4
M ( x)(2 n ) + R( x)
= Q( x) , suponiendo aritmética módulo 2.
G ( x)
4.5
Es fácil confirmar este resultado sustituyendo la expresión correspondiente a:
M(x)(2n)/G(x) en la segunda ecuación (4.5), lo que nos da:
M ( x)(2 n ) + R( x)
R ( x) R( x)
= Q( x) +
+
,
G ( x)
G ( x) G ( x)
4.6
Lo que es igual a Q(x), ya que en aritmética módulo 2 cualquier número sumado a si mismo
produce cero; es decir, el residuo es cero.
Para aprovechar esto, el contenido total de la trama, M(x), junto con un conjunto concatenado de
tantos ceros como dígitos de FCS que se van a generar (lo que es equivalente a multiplicar el
mensaje por 2n, donde n es el número de dígitos de la FCS), se divide módulo 2 por un segundo
número binario, G(x), el polinomio generador, que contiene un dígito más que la FCS.
La división equivale a realizar la operación de XOR bit por bit en paralelo conforme se procesa
cada bit de la trama. El residuo R(x) será entonces la FCS que se transmitirá al final de los dígitos
de información.
De manera similar, en el receptor, el flujo de bits de llegada, entre ellos los dígitos de la FCS, se
divide otra vez entre el mismo polinomio generador, esto es, M(x)(2n)+R(x)/G(x), y, si no se
presentan errores, el residuo sólo contendrá ceros. En cambio si hay un error, el residuo será
distinto de cero.
155
Hernández
Unidad IV
Comunicación de Datos
Ejemplo: se va a transmitir una serie de bloques de mensaje (tramas) de ocho bits por un enlace
de datos empleando CRC para detectar errores. El polinomio generado será 11001, encontrar lo
siguiente:
a).- El proceso de generación de la FCS.
b).- El proceso de verificación de la FCS.
En la figura 4.5 se ilustra la generación de la FCS para el mensaje 11100110. En primer lugar, se
concatenan cuatro ceros al mensaje, lo que equivale a multiplicar por 24, ya que la FCS tendrá
cuatro bits. Después, esto se divide (módulo 2) por el polinomio generador (número binario). La
operación de división módulo 2 es equivalente a efectuar la operación de XOR bit a bit en
paralelo conforme se procesa cada uno de los bits del dividendo (operación de resta en
complementos a 2).
Figura 4.5 Ejemplo de CRC.
156
Hernández
Unidad IV
Comunicación de datos
Así mismo, con aritmética módulo 2 podemos hacer una división en cada uno de los residuos
parciales, siempre que los dos números tengan la misma longitud, es decir, siempre que los dos
bits más significativos sean unos. No hay que considerar la magnitud relativa de los dos números,
el residuo de 4 bits resultante (0110) es la FCS, que entonces se añade al final del mensaje
original en el momento de su transmisión, el cociente es irrelevante.
Para resolver la parte b) del ejemplo; en el receptor, la secuencia completa de bits recibida se
divide por el mismo polinomio generador que se usó en el transmisor. En la figura 4.5b se
muestran dos ejemplos de ello. En el primero se supone que no se presentan errores, por lo que el
residuo es cero, y tampoco se usa el cociente.
En el segundo, en cambio, se supone que existió una ráfaga de errores de cuatro bits al final de la
secuencia transmitida. En consecuencia, el residuo obtenido no es cero, lo que indica que hubo un
error de transmisión.
Es importante la elección del polinomio generador porque éste determina los tipos de errores que
es posible detectar. Supongamos que la trama transmitida, T(x), es;
11010110 0110
Y que el patrón de error, E(x), es;
00000000 1001
Es decir, un 1 en una posición de bit indica un error. Entonces, con aritmética módulo 2:
Trama recibida = T(x) + E(x).
4.7
Ahora bien:
157
Hernández
Unidad IV
Comunicación de Datos
T ( x) + E ( x) T ( x) E ( x)
=
+
G ( x)
G ( x) G ( x)
4.8
Pero T(x)/G(x) no produce ningún residuo. Por tanto, sólo se detectará un error si E(x)/G(x)
produce un residuo. Todos los G(x) tienen al menos tres términos (bits 1) y E(x)/G(x) producirá
un residuo, con aritmética módulo 2, con todos los errores de un solo bit y de dos bits, que
entonces se podrán detectar. A la inversa, una ráfaga de errores con la misma longitud que G(x)
puede ser múltiplo de G(x); en tal caso, no producirá ningún residuo y pasará inadvertida.
En síntesis, un polinomio generador de R bits detectará:
∗ Todos los errores de un solo bit.
∗ Todos los errores de dos bits.
∗ Todos los errores de bit en número impar.
∗ Todas las ráfagas de errores < R.
∗ La mayor parte de las ráfagas de errores ≥ R.
La forma de representación regular de un polinomio generador consiste en indicar las posiciones
que sean 1´s binarios como potencias de X. Así, los siguientes son ejemplos de CRC que se
emplean en la práctica:
CRC - 16 = X16 + X15 + X2 + X0
CRC – CCITT = X16 + X12 + X5 + X0
CRC – 32 =X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2
X1 + X0
Así pues, CRC-16 en forma binaria es equivalente a:
1 1000 0000 0000 0101
158
Descargar