Estoy usando el protocolo SENT en mi proyecto.
En mi implementación de SENT, los datos de los nibbles son 3. Por lo tanto, los datos de 12 bits, incluido un nibble de estado y el nibble CRC.
Necesito calcular el CRC para 3 nibbles de datos.
El valor semilla para el cálculo de CRC es 5 y el polinomio es
\ $ x ^ {4} + x ^ {3} + x ^ 2 + 1 \ $
He hecho lo siguiente para el cálculo de CRC:
char CheckSum, i;
char CrcLookup[16] = {0, 13, 7, 10, 14, 3, 9, 4, 1, 12, 6, 11, 15, 2, 8, 5};
CheckSum= 5; // initialize checksum with seed "0101"
for (i=0; i<3; i++) {
CheckSum = CheckSum ^ Data[i];
CheckSum = CrcLookup[CheckSum];
}
En el analizador SENT, pude ver un error de CRC. El registro es el siguiente
¿Alguien puede decirme cómo calcular el CRC para el protocolo SENT?
Nota: Tengo 0XABC como datos de datos y 3 es el estado de elementos.