вычислить 3-байтовый CRC с помощью блока вычисления CRC Nucleo L053R8 - PullRequest
0 голосов
/ 09 мая 2019

Я хотел бы рассчитать 3-байтовое значение CRC, используя единицу вычисления crc Nucleo L053R8. Генератор Полином является следующим: г (Х) = х ^ 24 + х ^ 10 + х ^ 9 + х ^ 6 + х ^ 4 + х ^ 3 + х + 1

Кажется, что с помощью этого блока вычисления CRC я могу генерировать только CRC длиной 32 бита, а меньшие значения - это всего лишь LSBS из 32-битного результата. Я также знаю, что младший бит CRC32 не равен CRC16.

Есть идеи о том, какие операции я должен выполнять с данными ввода / вывода, чтобы получить нужный CRC24, который я хочу?

1 Ответ

0 голосов
/ 09 мая 2019

Умножьте полином генератора на x ^ 8, сдвинув его влево на 8 бит. Если у вас есть начальное значение, также умножьте его на x ^ 8, сдвинув его влево на 8 бит. Используйте 32-битный код CRC со смещенным полиномом и начальным значением, затем сдвиньте полученный 32-битный CRC вправо на 8 бит.

g(X)*x^8 = x^32 + x^18 + x^17+ x^14 + x^12 + x^11 + x^9 + x^8
...