http://www.forum.getchip.net/ |
|
CRC16 в Algoitithm Builder http://www.forum.getchip.net/viewtopic.php?f=16&t=774 |
Страница 1 из 1 |
Автор: | Plant [ 07 ноя 2016, 10:47 ] |
Заголовок сообщения: | CRC16 в Algoitithm Builder |
Необходимо посчитать CRC16 посылки. Полином X16+X15+X2+1. Подсмотрел здесь в теме алгоритм побитовой CRC8. По аналогии сделал так. sshot-2.png [ 4.36 КБ | Просмотров: 11006 ] Но приёмник не пропускает посылку. Дело именно в CRC. Подскажите, правильно ли организован алгоритм подсчёта. |
Автор: | SVN [ 07 ноя 2016, 11:55 ] |
Заголовок сообщения: | Re: CRC16 в Algoitithm Builder |
Я плохо разбираюсь в подсчёте CRC, но мне что-то подсказывает, что ошибка может быть здесь… sshot-2.png [ 8.97 КБ | Просмотров: 11001 ] Ну и биты засылаются начиная с младшего разряда принятого кода? |
Автор: | Plant [ 07 ноя 2016, 13:52 ] |
Заголовок сообщения: | Re: CRC16 в Algoitithm Builder |
Вот откуда подсмотрел viewtopic.php?f=18&t=162 sshot-2.png [ 6.05 КБ | Просмотров: 10998 ] Тут такая- же конструкция...и работает Не совсем понимаю, почему CRC_Value ! #b10000000 CRC_Value ^ #b00001100 нельзя заменить на CRC_Value ^ #b10001100 ибо после команды CRC_Value>> в старшем бите все равно "0" ..... Но это уже 2й вопрос У меня тоже биты засылаются с младшего |
Автор: | GetChiper [ 07 ноя 2016, 22:57 ] | |||
Заголовок сообщения: | Re: CRC16 в Algoitithm Builder | |||
Я для хеширования ИК-посылки использую CRC16 (полином 8005) Зайдите в шаблоны http://www.getchip.net/templates/ модуль IR-Detect - по аналогии сделаете для своего полинома.
|
Автор: | Plant [ 08 ноя 2016, 00:09 ] |
Заголовок сообщения: | Re: CRC16 в Algoitithm Builder |
Спасибо. "Конструкция" из первого поста тоже заработала. Дело было в том, что несколько туманно описан порядок передачи CRC в тело сообщения. Но последний предложенный вариант весьма прост, надо попробовать |
Автор: | SVN [ 08 ноя 2016, 01:33 ] |
Заголовок сообщения: | Re: CRC16 в Algoitithm Builder |
Что изменил? |
Автор: | Plant [ 08 ноя 2016, 09:33 ] |
Заголовок сообщения: | Re: CRC16 в Algoitithm Builder |
Да ничего не изменил (в плане алгоритма побитного вычисления ). Согласно http://www.owen.ru/forum/showthread.php?t=15588 (3й пост) для каждого полинома есть "обратный" , в зависимости от того, куда "двигаем". Основные мои изыскания были порождены тем, что 1. В литературе по моему проекту ( пакет AX.25) ,были разные сведения о полиноме . Были варианты x16+x15+X2+1 и x16+x12+x5+1. Верным оказался второй вариант, согласно ISO 3309-98 2. В конце подсчёта CRC16 я не делалX ^ $FFFF 3. В букваре по протоколу указывалось, что CRC16 вводится в тело сообщения старшим битом вперёд. Так и делал. Но оказалось, что в конце вычисления CRC в Xl лежит старший байт, а в Xh- младший.Причём если в конце расчёта получилось CRC=$0965, то передачу CRC надо начиать с младшего бита пятёрки. Разбираться где идёт "переворот" не стал, подкорректировал вывод , всё заработало. Рабочий вариант sshot-3.png [ 5.47 КБ | Просмотров: 10981 ] |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |