1

Тема: Вычисление CRC8 для CAN

Добрый день!
Возникла необходимость реализации CAN-шлюза с динамической модифицкацией сообщений на основе одного из контроллеров CANNY 7.x. После модификации необходимых бит фрейма необходимо вычислить новое значение CRC8 (стандарт J1850) и также его модифицировать перед отправкой. Причём, начальное значение CRC8 зависит от идентификатора фрейма (зависимость установлена).
Вопрос: реализуем ли подсчёт CRC8 на борту CANNY? Или, может быть, у CANNY есть встроенное системное ПО (как для  Modbus), в автоматическом режиме определяющее параметры CRC8 в CAN-шине (в первую очередь, её начальное значение) и самостоятельно вычисляющее CRC8 для фрейма?

2

Re: Вычисление CRC8 для CAN

Системное ПО в настоящее время не поддерживает вычисление CRC с произвольными параметрами.
Расчет CRC в диаграмме, в общем виде, может быть довольно громоздким. Один из примеров см во вложении. Однако, при возможности фиксации отдельных параметров расчета, его можно существенно оптимизировать.

Вложений в сообщении

Иконка вложения CRC-8_J1850.cfd 156.47 кб, скачивался 81 раз, последний раз 2024-03-10 

3

Re: Вычисление CRC8 для CAN

Константин, CANNY пишет:

Системное ПО в настоящее время не поддерживает вычисление CRC с произвольными параметрами.
Расчет CRC в диаграмме, в общем виде, может быть довольно громоздким. Один из примеров см во вложении. Однако, при возможности фиксации отдельных параметров расчета, его можно существенно оптимизировать.

Нес совсем входах. Байты вроде как понятно, а вот что за вход lnitCRC, LEN.... (значение входа Polynom думаю должно быть 1D)...

Так же не понимаю куда вводить CAN ID

4

Re: Вычисление CRC8 для CAN

F-Roger пишет:

Нес совсем входах. Байты вроде как понятно, а вот что за вход lnitCRC, LEN.... (значение входа Polynom думаю должно быть 1D)...

Так же не понимаю куда вводить CAN ID

Для того чтобы понять, как вам параметризовать данную реализацию алгоритма под конкретную задачу, рекомендуем ознакомиться с его описанием и воспользоваться онлайн-инструментами для подбора параметров:

Общее описание алгоритма: https://ru.wikipedia.org/wiki/%D0%A6%D0 … 0%BE%D0%B4

Онлайн-калькулятор: https://crccalc.com/

5 (05-09-2024 21:20:47 отредактировано F-Roger)

Re: Вычисление CRC8 для CAN

Теория расчета, и наличие калькуляторов  - ОК! НО РЕЗУЛЬТАТ ДОЛЖЕН БЫТЬ 82 (скрин не добавляется с телефона! (завтра добавлю)

6

Re: Вычисление CRC8 для CAN

F-Roger пишет:

Теория расчета, и наличие калькуляторов  - ОК! НО РЕЗУЛЬТАТ ДОЛЖЕН БЫТЬ 82 (скрин не добавляется с телефона! (завтра добавлю)

Если вы не желаете самостоятельно выяснять, по какому алгоритму и с какими параметрами вычисляется контрольная сумма ваших сообщений, и как этот алгоритм реализовать в диаграмме, то я могу вынести это обсуждение в раздел форума "Предложение услуг / Поиск исполнителей". Возможно там на него обратит внимание кто-нибудь, кто пожелает сделать это вместо вас.

7 (06-09-2024 12:47:11 отредактировано F-Roger)

Re: Вычисление CRC8 для CAN

я разобрался с входящими данными. Не совсем понятно почему при расчете длинны сообщения состоящего из 8 байт нужно было вводить значение 10 (точнее понятно, но сильно не логично, это может сосчитать сама диаграма), так же значения байт удобнее видеть так же как вообщем принято их видеть в CANNY LAB.

Вложений в сообщении

Иконка вложения CRC-8_J1850 переделал.cfd 159.16 кб, скачивался 17 раз, последний раз 2024-09-06 

8

Re: Вычисление CRC8 для CAN

Вот калькулятор и диаграмма

Вложений в сообщении

Иконка вложения photo_2024-09-06_08-52-12.jpg 127.43 кб, скачивался 7 раз, последний раз 2024-09-06