В схеме 7-ми байтное слово и его CRC-8 к которому я стремился
Этот топик читают: Гость
|
Ответов: 8974
Рейтинг: 824
|
|||
|
Пытался посчитать CRC-8 по полиному X^8+X^5+X^4+1 и никак не сходится с примером
В схеме 7-ми байтное слово и его CRC-8 к которому я стремился |
|||
| карма: 19 |
| ||
| файлы: 1 | code_36909.txt [2.8KB] [1019] |
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
Не вникал, но 0х28 это не 28.
0;0;7;67;116;128;28 0;0;7;67;116;128;40 В 0:12 спать надо. |
|||
| карма: 25 |
|
|
Ответов: 8974
Рейтинг: 824
|
|||
|
Tad, ой, и правда (и что 40, и что спать надо)
Но, зараза, всё равно не сходится |
|||
| карма: 19 |
|
|
Ответов: 9906
Рейтинг: 351
|
|||
|
Если честно, мне не удалось смекнуть, откуда ты, Леонид, сей алгоритм срисовал
По моему -- полная фигня Я считал так: Загрузим регистр нулевыми битами Дополним хвостовую часть сообщения W нулевыми битами While (пока еще есть необработанные биты) Begin Сдвинем регистр на 1 бит влево и поместим очередной еще не обработанный бит из сообщения в 0 позицию регистра. If (из регистра был выдвинут бит со значением "1") Регистр = Регистр XOR Полином End Теперь в регистре содержится остаток |
|||
| карма: 9 |
| ||
| файлы: 1 | crc_example.png [33.1KB] [1370] |
|
Ответов: 8974
Рейтинг: 824
|
|||
|
Galkov писал(а): По моему -- полная фигня(Я располагал принятые биты по описанию из datasheet-а, по коду семейства продукции 28h, но кто же мог предположить, что они читают по-Tadски! Думаю Galkov не мог ошибиться, начал крутить сначала байты, потом биты, вот методом тыка и пришла удача |
|||
| карма: 19 |
| ||
| файлы: 1 | ВсёНаоборот.jpg [53.8KB] [1333] |
|
Ответов: 9906
Рейтинг: 351
|
|||
|
Кстати, вот небольшая книжка по CRC и магические полиномы (не помню где скачивал)
|
|||
| карма: 9 |
| ||
| файлы: 1 | crcbook.rar [162.6KB] [838] | ||
| Голосовали: | Леонид, Tad |
|
Ответов: 203
Рейтинг: 5
|
|||
|
fix
Редактировалось 2 раз(а), последний 2025-09-16 14:30:48 |
|||
| карма: 1 |
|
|
Ответов: 203
Рейтинг: 5
|
|||
|
Проверенный на надежность модуль подсчета контрольной суммы CRC8:
Версия на языке C/C++ (STM32) где 0x31 (49) - полином. Можно использовать другой Init = 0xFF. Проверить подсчет можно тут: https://crccalc.com/?crc=00112233445566778899AABBCCDDEEFF&method=CRC-8&datatype=hex&outtype=hex Редактировалось 4 раз(а), последний 2025-11-12 09:26:07 |
|||
| карма: 1 |
|
|
Ответов: 4671
Рейтинг: 767
|
|||
|
Существующий компонент, вероятно, то же самое делает. Только реализация более быстрая - на базе предварительно рассчитанной таблицы. В базовом алгоритме те же значения таблицы постоянно пересчитываются.
|
|||
| карма: 26 |
|
|
Ответов: 203
Рейтинг: 5
|
|||
|
Netspirit, а такой компонент разве есть? там только CRC16, CRC32.
|
|||
| карма: 1 |
|
|
Ответов: 4671
Рейтинг: 767
|
|||
|
А, не заметил что речь о CRC8
|
|||
| карма: 26 |
|
11



Поиск
Друзья
Администрация