Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo:
O objetivo deste programa é gerar um código verificador (CRC) de uma sequência de 14 bits ou
menos conforme algoritmo mostrado abaixo.
Motivação:
Os bits que trafegam por uma rede de comunicação de dados podem sofrer alterações ou perdas
devido a problemas como interferências no meio físico.
Para verificação da integridade dos bits quando estes são recebidos na máquina de destino foram
desenvolvidos muitos algoritmos matemáticos como o que está descrito abaixo.
Descrição do algoritmo:
Neste exemplo serão codificados 14 bits e será gerado um CRC de 3 bits, usando o polinômio
x3 + x + 1.
Este polinômio está escrito com coeficientes binários. É um polinômio de terceira ordem com
quatro coeficientes (1x3 + 0x2 + 1x + 1). Neste caso, os coeficientes são 1,0,1 e 1. O resultado do
cálculo CRC será de 3 bits.
Começamos com a sequência de bits:
11010011101100
O algoritmo realiza a operação booleana .XOR entre os bits originais e os bits do CRC e o divisor.
Caso não haja bits para realizar a operação simplesmente copia-se os bits.
O divisor é movido para direita a próxima casa que tenha o bit 1 (ou se for o caso a mesma casa em
que esteja parado) e realiza-se de novo a operação .XOR. Realiza-se esta mesma operação até que
todos os bits do dividendo sejam o bit 0.
01100011101100 000 <--- resultado anterior
1011 <--- divisor foi empurrado 1 casa para a direita
00111011101100 000 < --- resultado da operação .XOR.
1011
00010111101100 000 <--- resultado da operação .XOR.
1011
00000001101100 000 <--- note que o dividor moveu para a próxima casa com o bit
1. Não necessariamente deve mover para a próxima casa.
1011
00000000110100 000 <--- resultado da operação .XOR.
1011
00000000011000 000 <--- resultado da operação .XOR.
1011
00000000001110 000 <--- resultado da operação .XOR.
1011
00000000000101 000 <--- resultado da operação .XOR.
101 1
-----------------
00000000000000 100 <--- Os 3 bits do CRC. O cálculo termina aqui pois o
dividendo possui todos os bits igual a 0.
NOTAS IMPORTANTES: