Polinomio generador de CRC para almacenamiento de datos en memoria flash

Me he enfrentado a un problema sobre cómo implementar un sistema de gestión de parámetros de configuración de software integrado. Significa cómo implementar un módulo de software que será responsable del almacenamiento de, por ejemplo, las ganancias del controlador PI o algunos niveles de protección de comparación en la memoria flash externa y recuperarlos de la memoria flash externa. Una de las preguntas con respecto a este problema es qué polinomio generador debo usar para el cálculo de CRC. Los parámetros serán sin excepción valores de 16 bits. Es el polinomio CRC16 es decir X dieciséis + X 15 + X 2 + 1 buena eleccion para eso? Gracias por cualquier idea.

Respuestas (1)

El tamaño/tipo de los datos y el tamaño de la palabra CRC realmente no tienen nada que ver entre sí. Al calcular el CRC, serializa los datos (conviértelos en un flujo de bits o bytes) de todos modos.

Un CRC más grande es mejor para detectar una clase más grande de errores, especialmente errores multibit. Pero, por supuesto, requiere más memoria para almacenar CRC más grandes. Consideraciones como esta deberían guiar su decisión.

También debe pensar en cuándo y cómo cambian los datos, y qué debe hacer para actualizar el CRC cuando eso suceda. En un sistema integrado, también debe pensar en lo que sucede si alguno de los pasos del proceso se interrumpe, por ejemplo, por una pérdida inesperada de energía.

Si puede agregar más detalles sobre su aplicación específica a su pregunta, puedo escribir una respuesta más específica.

Gracias por tu reacción Dave Tweed. En cuanto a los detalles de implementación, estoy pensando en seguir el enlace