1

Тема: Canny 5 nano фильтрация сообщений CAN

Здравствуйте.
Скажите в чем будет отличие в фильтрации can пакетов:
1. через регистры фильтрации
2. сравнением IDL по маске

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

Снимок.JPG, 51.79 кб, 891 x 379
Снимок.JPG 51.79 кб, скачивался 210 раз, последний раз 2020-04-10 

2

Re: Canny 5 nano фильтрация сообщений CAN

Ни один из вариантов не является примером фильтрации CAN.
Фильтрация - процесс пропускания для обработки в функциональной диаграмме сообщения, чьи ID указаны в регистрах установки фильтра CAN. Остальные сообщения при этом отбрасываются. У CANNY 5 nano имеются 8 фильтров CAN-сообщений.
Подробнее о регистрах CAN можно прочитать в wiki.
Пример диаграммы с установкой фильтра во вложении. В диаграмму для обработки попадают только сообщения с ID=0x100.

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

filter.png, 21.01 кб, 817 x 350
filter.png 21.01 кб, скачивался 189 раз, последний раз 2020-04-10 

3

Re: Canny 5 nano фильтрация сообщений CAN

Поставлю вопрос так (не фильтрация как таковая, а анализ нужных пакетов):

1 вариант использую регистры установки фильтра CAN на ID=0x100. Далее естественно диаграмма выполняет действия анализируя остальные биты в пакете, взятые из регистров чтения D0-D7, которые заполняются из буфера приема.
Вот в данном случае, в буфер приема и далее в регистры чтения попадают только пакеты с ID=0x100 ?

2. вариант сравнением IDL из регистра чтения с константой 0x100, далее аналогично в диаграмме анализ остальных битов D0-D7.
В этом случае в буфере приема по факту все пакеты шины, а диаграмма работает на блоках операции сравнения.

Еще вытекает вопрос - во втором случае на фильтрацию с нужным ID тратиться 1 такт, а первом ?

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

Снимок.JPG, 70.54 кб, 731 x 368
Снимок.JPG 70.54 кб, скачивался 191 раз, последний раз 2020-04-11 

4

Re: Canny 5 nano фильтрация сообщений CAN

Здесь дело не в тактах. Фильтрация, разумеется, позволяет сократить диаграмму и как следствие время ее исполнения. Однако, необходимость фильтрации обуславливается не этим, а тем что при большом трафике в CAN сообщений с различными ID диаграмма просто не будет успевать обрабатывать все поступающие сообщения что вызовет переполнение и как следствие потерю (пропуск) сообщений. Ограничив входящий трафик фильтрами, вы в подавляющем большинстве случаев можете этого избежать.

PS: На диаграмме в первом сообщении у вас ошибка, фильтры конфигурируются не так, выше вам привели ссылку на документацию.