1 (06-09-2019 12:43:06 отредактировано Finch)

Тема: CAN Filter из Canny7.2duo

Задача фильтровать сообщение с CAN id_240 и изменять исходящие данные в зависимости от расширенного идентификатора.
Например:
Если идентификатор 0x00F0001, то выходные 8 байт XXXX XXXX XXXX XXXX
Если идентификатор 0x00F0002, то выходные 8 байт YYYY YYYY YYYY YYYY
Если идентификатор 0x00F0003, то выходные 8 байт ZZZZ ZZZZ ZZZZ ZZZZ

Вроде получилось сделать логику на сумматорах, но выглядит костыльно.
Посоветуйте, насколько рабочая схема и как её можно оптимизировать.

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

Иконка вложения 240.png 216.85 кб, скачивался 86 раз, последний раз 2019-09-06 

Иконка вложения change240_message.cfd 4.42 кб, скачивался 240 раз, последний раз 2019-09-06 

2

Re: CAN Filter из Canny7.2duo

Приведена диаграмма для CANNY 7. Обработка данных в диаграмме, для подобной задачи, не оптимальное решение. Правильнее использовать драйвер шлюза в статическом варианте.
Пример диаграммы во вложении.
Обратите внимание на следование байт данных а регистрах.
Скорость обмена данными 500 кБод. Контроллер CANNY 7.2 duo не имеет терминирующих сопротивлений на своих CAN-интерфейсах. Возможно потребуется установка терминаторов снаружи или на специальные площадки на обороте платы контроллера.

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

Иконка вложения c72duo_static_brg.cfd 5.17 кб, скачивался 303 раз, последний раз 2019-09-06 

3

Re: CAN Filter из Canny7.2duo

Спасибо, документацию до шлюза не долистал, оказывается всё решается намного проще smile

4

Re: CAN Filter из Canny7.2duo

Не сразу увидел. Не совпадают номера идентификаторов в описании задачи (0x00F0001) и приведенных в диаграмме (0x00f00001). В диаграмме примера использовано значение из описания. Проверьте и подставьте правильные в соответствующие регистры.

5

Re: CAN Filter из Canny7.2duo

Вот что у меня получилось. Проверьте пожалуйста правильность диаграммы. Ничего не работает, даже через себя ничего не пропускает.

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

Иконка вложения IDH_c72duo_static_brg.cfd 7.85 кб, скачивался 228 раз, последний раз 2019-09-06 

6

Re: CAN Filter из Canny7.2duo

В отборах не проверяются IDL и признак расширенного идентификатора, не верно указано значение отбора ERL.
Исправленная диаграмма во вложении.

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

Иконка вложения c72duo_static_brg_1.cfd 8.69 кб, скачивался 300 раз, последний раз 2019-09-06 

7 (09-09-2019 18:47:47 отредактировано Finch)

Re: CAN Filter из Canny7.2duo

204 не модифицирует

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

Иконка вложения 333.cfd 7.01 кб, скачивался 278 раз, последний раз 2019-09-09 

8

Re: CAN Filter из Canny7.2duo

Finch пишет:

204 не модифицирует

Диаграмма проверена стенде - модификация сообщения с ID=0x204 (в стандартном формате) выполняется. В фильтре, в качестве одного из параметров отбора, указаны байты D0, которые равны 0x10, 0x20. Это действительно так? В предыдущих вариантах диаграммы D0 были равны 0x01 и 0x02.