Страница 1 из 1
Как расчитать CRC?
Добавлено: Пн апр 27, 2015 20:48:55
ipiter
Здравствуйте!
Я для микроконтроллера пишу реализацию расчёта контрольной суммы.
Составил два алгоритма для расчёта CRC8.
подскажите пожалуйста, какой алгоритм из двух правильный?
с уважением, Питер.
Re: Как расчитать CRC?
Добавлено: Пт май 01, 2015 06:14:45
misyachniy
Ищется в интернете онлайн калькулятор CRC проганяется несколько последовательностей и сравнивается с предложенными алгоритмами.
Re: Как расчитать CRC?
Добавлено: Пт май 01, 2015 08:17:08
uldemir
Спойлер
Зачем так сложно? В ПЛИС есть логические элементы и CRC считается сдвиговыми регистрами. Например в моём термометре считается CRC для далласовского датчика:Код: Выделить всё
crc <= (crc(0) xor datain) & crc (7 downto 5) & (crc(4) xor crc(0) xor datain) & (crc(3) xor crc(0) xor datain) & crc(2 downto 1);
Может, не изящно написано, зато работает. Данные подаются последовательно, побитно (с термодатчика они так и считываются).
Тфу ты блин!
ipiter писал(а):Я для микроконтроллера пишу реализацию расчёта
Ничего у вас не получится, если даже раздел для темы правильный выбрать не можете.
Re: Как расчитать CRC?
Добавлено: Вс май 17, 2015 08:56:09
Jack_A
"Правильного", "стандартного" нет. Они разные, и все правильные
https://ru.wikipedia.org/wiki/Циклическ ... точный_код
Как советует
misyachniy, если есть CRC от конкретного устройства, нужно проанализировать его на совпадение с предполагаемым алгоритмом.
В свое время я использовал генерацию CRC16 табличным методом, памяти ха'вает чуть больше, но работает мгновенно. Правда, у меня связывались мои блоки с моими же, так что друг друга они понимали по любому. Слизанное с Вики описание алгоритма с блеском прошло в научный отчет, добавляя ему наукообразности .

Для отладки сделал
куркулятор CRC. Но это все для СRС16.
Noch einmal :
https://ru.wikibooks.org/wiki/Реализаци ... _код#CRC-8