CRC-16 Cálculo

1

Estoy tratando de calcular el CRC-16 en forma hexadecimal usando una semilla de 0x0000. Para su comodidad, aquí está el polinomio para CRC-16

  

\ $ x ^ {16} + x ^ {15} + x ^ 2 + 1 \ $

Tengo la siguiente secuencia de paquetes para la que deseo calcular el CRC-16:

f0 f0 03 01 b4 04 01 67 40 17

El CRC se calcula como 7a 8b por el hardware con el que estoy trabajando. Tengo problemas para conectar los puntos entre la secuencia de bytes de datos, el polinomio y los resultados finales, incluso después de leer algunos resultados de búsqueda relacionados con el CRC-16. También he notado la comunidad OpenCores , y me pregunto si alguno de ustedes utilizó las bibliotecas para calcular las sumas de comprobación.

    
pregunta stanigator

1 respuesta

5

Parece que lo entendiste bien en realidad, solo intercambia los bytes. Cuando ejecuto tu secuencia de datos

F0F00301B40401674017

a través de esta calculadora de CRC en línea obtengo un CRC-16 calculado de:

0x8B7A

que es solo tu respuesta calculada con los bytes intercambiados. ¡Felicidades amigo, parece que tienes un módulo CRC-16 reutilizable!

    
respondido por el Joel B

Lea otras preguntas en las etiquetas