Tengo comunicación entre una EEPROM y un microprocesador sobre SPI y quiero cuidar la integridad de los datos.
¿Podría confirmar mi comprensión a continuación?
Tengo datos que quiero escribir en la EEPROM junto con un código CRC. Antes de escribir en EEPROM, usaré un polinomio CRC16 para generar un código CRC y lo agregaré a los datos y lo enviaré a través de SPI a EEPROM.
Cuando leo la EEPROM después del reinicio del sistema o ajuste el tiempo nuevamente a través de SPI desde el microcontrolador, se leen los datos junto con el código CRC (datos + CRC) y se divide por el mismo polinomio CRC16 para verificar con el resto cero. Si cero datos es bueno, de lo contrario no.
¿Podría confirmar si mi comprensión anterior es correcta?
Solo tengo que implementar la integridad de datos para un bloque de memoria y para eso estoy haciendo una verificación de CRC dual para un solo bloque de memoria implementando un bloque redundante.
El resto siempre será el mismo, pero si siempre es cero o algo más depende del algoritmo CRC exacto, es decir, el "xor final".
Si tiene que escribir, por ejemplo, 10 bytes de datos y ha calculado 2 bytes de CRC a partir de esos datos, escribe 12 bytes en la memoria.
Cuando lea si retrocede, lea los 12 bytes, calcule el CRC a partir de los primeros 10 bytes y verifique que el CRC calculado coincida con los 2 bytes de CRC leídos de la memoria.
También hay otro método para calcular el CRC de los 12 bytes leídos, se sumará a un valor de verificación constante si el CRC es correcto, pero dependiendo del algoritmo CRC que use, el resultado podría ser siempre cero, pero puede ser algo. más también
viejo contador de tiempo
Sólo yo
viejo contador de tiempo