Отправленный протокол CRC Calaculation

Я генерирую отправленный импульс в моем проекте. Для реализации протокола SENT клочки данных равны 6. Таким образом, 24-битные данные, включая клев состояния, крэш CRC и импульс паузы. Мне нужно рассчитать CRC для 6 клев данных. Первое значение для расчета CRC - 5, как я знаю. Но когда я декодирую сигнал с помощью Оз. У меня есть ошибка в сообщении, потому что я посылаю случайное значение для CRC и для состояния клев. Итак, на мои вопросы: как я могу рассчитать значение CRC и клев статуса? ОТПРАВЛЕННАЯ РАМА

uint8_t calculatedCRC, i;
const uint8_t CrcLookup[16] = {0, 13, 7, 10, 14, 3, 9, 4, 1, 12, 6, 11, 15, 2, 8, 5};
calculatedCRC = 5; // initialize checksum with seed "0101"

for (i = 0; i < 6; i++)
{
calculatedCRC = CrcLookup[calculatedCRC];
calculatedCRC = (calculatedCRC ^ Data[i]) & 0x0F;
}
// One more round with 0 as input
calculatedCRC = CrcLookup[calculatedCRC];

Я видел этот код, но я действительно не понимаю, как мы получаем эту таблицу поиска. Код расчета CRC

я пытался следовать за циклом for, но после первой итерации это невозможно, потому что рассчитанный Crc будет в 11^11. Пожалуйста, мне нужна твоя помощь!

1)  i=0 >>> calculatedCRC== 11
2)  i=1 >>> calculatedCRC== 
3)  i=2 >>> calculatedCRC
4)  i=3 >>> calculatedCRC
5)  i=4 >>> calculatedCRC
6)  i=5 >>> calculatedCRC 

0 ответов

Другие вопросы по тегам