2
29/6/2014 Cálculo do CRC http://www.zorc.breitbandkatze.de/crc.html 1/2 Ordem CRC (1 .. 64) 16 CRC polynom (hex) 1021 reverter! Valor inicial (hex) FFFF converter! nondirect direto XOR valor final (hex) 0 reverter bytes de dados reverter resultado CRC antes de final XOR claro CRC-CCITT CRC-16 CRC-32 123456789 claro E07E661E (hex), 9 data bytes computar! Parâmetros CRC Seqüência de dados Resultado Atualizações de versão: 21th de Juli 2003: Pergunta # 1: como é que um polinômio CRC refletido corretamente se a LSB não é um (mas o alto-bit do polynom é sempre assumida como 1)? dia 21 de Juli 2003: pergunta n º 2 : em c-código, tenha cuidado usando polynoms ter um LSB de 0 (por exemplo XMODEM 0x8408) ... código não funciona para esses casos! Alguma idéia de como converter direto aos valores nondirect com polynoms com LSB = 0? dia 21 de Juli 2003:! bug removido em refletir () no código javascript, afetando crc final, refletindo de ordens de CRC com ordem de 7% = 0 04 de fevereiro de 2003: outcommented o "LSB = 1 test" em JavaScript e C código 18 jan 2003: incluído mascaramento CRC após a conversão de não-direta para dirigir crc inicial (c-código só, javascript-code é e foi correto) 17 jan 2003: incluído comentário sobre os valores definidos parâmetro padrão (como CRC-CCITT), veja abaixo; incluiu novos links para páginas CRC 13 de janeiro, 2003: em crctester.c: a maior parte do int de substituídos por longs não assinados para evitar erros de compilação (especialmente em máquinas de 16 bits) Esta calculadora CRC apoia os designers de hardware e software para verificar a sua rotina CRC específico . A maior parte da teoria para a JavaScript eo código C abaixo é retirado do GUIA INDOLOR bem conhecido do artigo CRC ERROR Algoritmos de Detecção escrito por Ross N. Williams. A calculadora tem as seguintes características: Polynoms CRC com ordens de 1 ... 64 (contados sem bit principais '1 '). polynoms CRC invertidos pode ser facilmente determinada. Os valores iniciais e finais XOR pode ser definido. valores iniciais CRC de algoritmos com (clique em "nondirect ') ou sem (clique" direta ") aumentada zero bits pode ser convertida de uma em outra. normal e refletida CRC (refino, REFOUT). conjuntos de parâmetros comuns de CRC são dadas pelos botões abaixo a tabela de parâmetros. (favor verificar os valores, existem por exemplo, valores de inicialização diferentes para o cálculo do CRC-CCITT, dependendo se o algoritmo é direto ou indireto. Para atribuir um valor inicial para a direta ou algoritmo nondirect, você pode clicar no botão apropriado no lado direito.) seqüência de dados pode ser NULL ou uma seqüência de caracteres e valores hexadecimais entre 00% ...% FF, então é '% 31% 32% 33' o mesmo que '123 '. Além disso, aqui é o completo livre C CÓDIGO de um simples teste de CRC Programm que oferecem avaliação de diferentes algoritmos CRC (bit-por-bit e orientada para a mesa, cada um com e sem aumentada de zero bytes). Para ver o código JavaScript HTML ;-) Eu verifiquei o CRC resultante com esses valores computados por algumas calculadoras simples CRC que eu encontrei na internet (ver links) e os valores indicados no GUIA indolor para CRC artigo ALGORITMOS DE DETECÇÃO DE ERROS. De qualquer forma, se houver algum erro no cálculo do CRC, ou na calculadora JAVASCRIPT acima ou no programa C, por favor contacte-me sob [email protected] . seguinte é uma lista de polynoms CRC que eu poderia encontrar: CCITT-32: 0x04C11DB7 = x 32 x + 26 + x 23 x + 22 + x 16 x + 12 + x 11 x + 10 + x 8 + x 7 x + 5 + x 4 + x 2 + x + 1 CRC-16: 0x8005 = x 16 x + 15 + x 2 + 1 CRC-CCITT: 0x1021 = x 16 x + 12 + x 5 + 1 CRC-XMODEM: 0x8408 = x 16 x + 15 + x 10 + x 3

Cálculo do CRC.pdf

Embed Size (px)

Citation preview

Page 1: Cálculo do CRC.pdf

29/6/2014 Cálculo do CRC

http://www.zorc.breitbandkatze.de/crc.html 1/2

Ordem CRC (1 .. 64) 16

CRC polynom (hex) 1021 reverter!

Valor inicial (hex) FFFF converter! nondirect direto

XOR valor final (hex) 0

reverter bytes de dados reverter resultado CRC antes de final XOR

claro CRC-CCITT CRC-16 CRC-32

123456789 claro

E07E661E (hex), 9 data bytes computar!

Parâmetros CRC

Seqüência de dados

Resultado

Atualizações de versão:21th de Juli 2003: Pergunta # 1: como é que um polinômio CRC refletido corretamente se a LSB não é um (mas o alto-bit do polynomé sempre assumida como 1)? dia 21 de Juli 2003: pergunta n º 2 : em c-código, tenha cuidado usando polynoms ter um LSB de 0 (por exemplo XMODEM 0x8408)... código não funciona para esses casos! Alguma idéia de como converter direto aos valores nondirect com polynoms com LSB = 0? dia 21 de Juli 2003:! bug removido em refletir () no código javascript, afetando crc final, refletindo de ordens de CRC com ordem de7% = 0 04 de fevereiro de 2003: outcommented o "LSB = 1 test" em JavaScript e C código 18 jan 2003: incluído mascaramento CRC após a conversão de não-direta para dirigir crc inicial (c-código só, javascript-code é e foicorreto) 17 jan 2003: incluído comentário sobre os valores definidos parâmetro padrão (como CRC-CCITT), veja abaixo; incluiu novos linkspara páginas CRC 13 de janeiro, 2003: em crctester.c: a maior parte do int de substituídos por longs não assinados para evitar erros de compilação(especialmente em máquinas de 16 bits) Esta calculadora CRC apoia os designers de hardware e software para verificar a sua rotinaCRC específico . A maior parte da teoria para a JavaScript eo código C abaixo é retirado do GUIA INDOLOR bem conhecido doartigo CRC ERROR Algoritmos de Detecção escrito por Ross N. Williams. A calculadora tem as seguintes características:

Polynoms CRC com ordens de 1 ... 64 (contados sem bit principais '1 ').polynoms CRC invertidos pode ser facilmente determinada.Os valores iniciais e finais XOR pode ser definido.valores iniciais CRC de algoritmos com (clique em "nondirect ') ou sem (clique" direta ") aumentada zero bits pode ser convertidade uma em outra.normal e refletida CRC (refino, REFOUT).conjuntos de parâmetros comuns de CRC são dadas pelos botões abaixo a tabela de parâmetros. (favor verificar os valores, existem por exemplo, valores de inicialização diferentes para o cálculo do CRC-CCITT, dependendose o algoritmo é direto ou indireto. Para atribuir um valor inicial para a direta ou algoritmo nondirect, você pode clicar no botãoapropriado no lado direito.)seqüência de dados pode ser NULL ou uma seqüência de caracteres e valores hexadecimais entre 00% ...% FF, então é '%31% 32% 33' o mesmo que '123 '.

Além disso, aqui é o completo livre C CÓDIGO de um simples teste de CRC Programm que oferecem avaliação de diferentesalgoritmos CRC (bit-por-bit e orientada para a mesa, cada um com e sem aumentada de zero bytes). Para ver o código JavaScriptHTML ;-) Eu verifiquei o CRC resultante com esses valores computados por algumas calculadoras simples CRC que eu encontrei nainternet (ver links) e os valores indicados no GUIA indolor para CRC artigo ALGORITMOS DE DETECÇÃO DE ERROS. De qualquerforma, se houver algum erro no cálculo do CRC, ou na calculadora JAVASCRIPT acima ou no programa C, por favor contacte-mesob [email protected] . seguinte é uma lista de polynoms CRC que eu poderia encontrar:

CCITT-32: 0x04C11DB7 = x 32 x + 26 + x 23 x + 22 + x 16 x + 12 +

x 11 x + 10 + x 8 + x 7 x + 5 + x 4 + x 2 + x + 1

CRC-16: 0x8005 = x 16 x + 15 + x 2 + 1

CRC-CCITT: 0x1021 = x 16 x + 12 + x 5 + 1

CRC-XMODEM: 0x8408 = x 16 x + 15 + x 10 + x 3

Page 2: Cálculo do CRC.pdf

29/6/2014 Cálculo do CRC

http://www.zorc.breitbandkatze.de/crc.html 2/2

12bit-CRC: 0x80f x = 12 + x 11 x + 3 + x 2 + x + 1

10bit-CRC: 0x233 = x 10 x + 9 + x 5 + x 4 + x + 1

8bit-CRC: 0x07 = x 8 + x 2 + x + 1

Finalmente, aqui estão alguns links para sites de CRC e JavaScript relavant:

www.cs.waikato.ac.nz/ ~ 312/crc.txt (Painless CRC-8 calculadora) hyperarchive.lcs.mit.edu/HyperArchive/Archive/per/csmp/csmp-digest-v3-028.txt CRC-CCITT discussão mais valores caso de teste

www.teamone.com / selfhtml (JavaScript) www.netzwelt.com / selfhtml (JavaScript) www.rabich.de (JavaScript)

Então, ter um bom tempo, mesmo em um mundo refletido :-) Sven Reifegerste