======Фильтрация кадров CAN в 1886ВЕ5У====== Контроллера CAN имеет 6 буферов (приём или передача) и 2 набора фильтров (FLTR1(2)/MASK1(2)). В общее пространство единовременно отображён лишь 1 буфер и 1 фильтр/маска. Выбор осуществляется в регистре CAN_BSR. Выбор используемого фильтра для текущего буфера задаётся в регистре CAN_RXCS, поле MASKACTID: * 001 – используется фильтр FLTR1/MASK1; * 010 – используется фильтр FLTR2/MASK2; * 011 – используются фильтры FLTR1/MASK1 и FLTR2/MASK2. Фильтрация фреймов по ID осуществляется по следующей формуле: **ID & FLTR1(2) == FLTR1(2) & MASK1(2)** , где ID это значения 4 регистров CAN_ID0-3: ^ ID ^^^^ | 31:24 | 23:16 | 15:8 | 7:0 | |CAN_ID3|CAN_ID2|CAN_ID1|CAN_ID0| FLTR1(2) – значения 4 регистров CAN_FLTR11-14(21-24): ^ FLTR1(2) ^^^^ | 31:24 | 23:16 | 15:8 | 7:0 | |CAN_FLTR14(24)|CAN_FLTR13(23)|CAN_FLTR12(22)|CAN_FLTR11(21)| MASK1(2) – значения 4 регистров CAN_MASK11-14(21-24): ^ MASK1(2) ^^^^ | 31:24 | 23:16 | 15:8 | 7:0 | |CAN_MASK14(24)|CAN_MASK13(23)|CAN_MASK12(22)|CAN_MASK11(21)| Значение FLTR ответственно за выделение бит ID, участвующих в фильтрации. Значение MASK определяет конкретное значение бит, участвующих в фильтрации. В фильтрации участвуют все биты ID. При использовании аппаратной фильтрации необходимо установить бит ROP (приём своих и чужих сообщений) в регистре CAN_CNTR.