1

Тема: Не работает шлюз CAN

Добрый день всем!
При попытке создания простейшего шлюза, аналогично примеру №2, размещенному на сайте, возникла проблема: шлюз перебрасывает все сообщения, но не работает отбор по установленным значениям. Перепробовал различные вариации и выяснил, что не работает еще на стадии отбора по значениям IDL и IDH.
Для справки, задача следующая: пропускать все сообщения в обоих направлениях, а в одном сообщении, отправляемом из CAN0 в CAN1, изменять значение байта D1 с 0х28 на 0х27. Изменяемое сообщение детектируем не только по IDшнику, но и значениям байтов D6:D5, потому что это часть мультипакета и с таким же IDшником, но с другими значениям байтов D6:D5 могут приходить сообщения и от других пакетов. Но в данном случае это не имеет значения, потому что алгоритм не работает и на обычных сообщениях, проверял. То есть, даже если, к примеру, я ставлю отбор по IDL и IDH и "запрет ретрансляции" - я вижу "запрещенное" сообщение в обеих шинах. В чем может быть проблема?

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

Иконка вложения Logging.blf 46.77 кб, скачивался 147 раз, последний раз 2020-11-11 

Иконка вложения Шлюз CAN.cfd 2.56 кб, скачивался 159 раз, последний раз 2020-11-11 

Иконка вложения шлюз.PNG 92.89 кб, скачивался 69 раз, последний раз 2020-11-11 

2

Re: Не работает шлюз CAN

При работе с расширенными ID в регистрах отбор-значение CAN ERL/отбор-маска CAN ERL нужно указать признак EXT ID (добавить отбор по старшему биту ERL).
Исправленная диаграмма во вложении.

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

Иконка вложения c72duo_Шлюз CAN_2x_RevA.cfd 3.42 кб, скачивался 176 раз, последний раз 2020-11-11 

3

Re: Не работает шлюз CAN

Проверил, почему-то и это не помогло. Прокидывает без изменения.

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

Иконка вложения Шлюз_RevA.PNG 76.64 кб, скачивался 76 раз, последний раз 2020-11-11 

4

Re: Не работает шлюз CAN

Проверили на столе. С исправленной диаграммой при пересылке из CAN0 в CAN1 фильтрация выполняется. Может интерфейсы поменяны местами?

5

Re: Не работает шлюз CAN

Да, в этом-то и была причина. Поменял номер интерфейса - заработало. Хотя физически соединено правильно. Возможно, в конфигурации CANalyzer'a перепутаны интерфейсы, и поэтому вместо CAN2 было CAN1, и не работало.
Благодарю за помощь!

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

Иконка вложения Шлюз_RevB.PNG 107.05 кб, скачивался 57 раз, последний раз 2020-11-11 

6

Re: Не работает шлюз CAN

Не обратили внимание сразу и , соответственно, не исправили в измененной диаграмме: в данном случае шлюз статический, использование регистра обновления конфигурации шлюза не требуется. Более того это может даже быть вредным, т.к. обновление конфигурации драйвера шлюза в диаграмме выполняется на каждом проходе диаграммы замедляя работу контроллера.
Использование обновления конфигурации драйвера шлюза требуется только если в процессе работы диаграммы происходит перенастройка драйвера (отборы, замены и т.п.) в момент применения этих настроек. В остальное время значение этого регистра должно быть равно "0". Подробнее см. документацию: https://canny.ru/docs/c72duo/cangateway … y-drajvera

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

c72duo_Тестовая передача в UART в 1.0_2x_RevA.PNG, 7.29 кб, 395 x 79
c72duo_Тестовая передача в UART в 1.0_2x_RevA.PNG 7.29 кб, скачивался 143 раз, последний раз 2020-11-11 

7

Re: Не работает шлюз CAN

Понятно. Исправил.