Модуль ECAN для dsPIC. Типичная сеть ECAN. 16 приемных фильтров для фильтрования сообщения, страница 18

7.5 Фильтрация DeviceNet.

DeviceNet фильтрование основывается на протоколе CAN 2.0A, в котором может быть до 18 бит поля данных по сравнению с Расширенным Идентификатором (EID) приёмного фильтра сообщения в дополнение к Стандартному Идентификатору (SID).

Особенность DeviceNet активизируется или отключается битами фильтра DeviceNet (DNCNT <4:0>)  в регистре управления 2 ECAN (CiCTRL2 <4:0>). Значение указанное с помощью битов DNCNT определяет число битов данных, которые используются для сравнения с EID битами фильтра принятого сообщения. Если биты CiCTRL2 <DNCNT> сброшены, то режим DeviceNet отключён.

Для сообщения, которое будет принято, 11 битов SID должны соответствовать битам SID<10:0> в фильтре принятых сообщений и первых 'n' битов данных, биты в сообщении должны соответствовать битам EID <17:0> в фильтре принятого сообщения. Например, как показано на рисунке 16, первые 18 битов данных полученного сообщения - по сравнению с соответствующими битами идентификатора (EID <17:0>) фильтра принятого сообщения.

Рисунок 16. Работа с DeviceNet фильтрацией

Примечание: настройка DeviceNet фильтрации, показана для битов EID  - DNCNT <4:0> = 10010

7.5.1. Сравнения фильтра

В таблице 2 приведено сравнение фильтра, формируемое битами управления CiCTRL2 (DNCNT <4:0>). Например, если DNCNT <4:0> = 00011, то только сообщение, в котором 11 бит стандартного идентификатора соответствует фильтру принятого SID (SID <10:0>) и биты 7, 6 и 5 из нулевого байта данных соответствуют расширенному идентификатору фильтра (EID <0:2>) то принимается.

Таблица 2. Биты конфигурации DeviceNet фильтра

Конфигурация DeviceNet фильтра

(DNCNT <4:0>)

Биты данных полученного сообщения, которые будут сравниваться

(Byte<bits>)

EID биты, используемые для приёмного фильтра

00000

Нет сравнения

Нет сравнения

00001

Байт данных 0<7>

EID<17>

00010

Байт данных 0<7:6>

EID<17:16>

00011

Байт данных 0<7:5>

EID<17:15>

00100

Байт данных 0<7:4>

EID<17:14>

00101

Байт данных 0<7:3>

EID<17:13>

00110

Байт данных 0<7:2>

EID<17:12>

00111

Байт данных 0<7:1>

EID<17:11>

01000

Байт данных 0<7:0>

EID<17:10>

01001

Байт данных 0<7:0> и байт данных 1<7>

EID<17:9>

01010

Байт данных 0<7:0> и байт данных 1<7:6>

EID<17:8>

01011

Байт данных 0<7:0> и байт данных 1<7:5>

EID<17:7>

01100

Байт данных 0<7:0> и байт данных 1<7:4>

EID<17:6>

01101

Байт данных 0<7:0> и байт данных 1<7:3>

EID<17:5>

01110

Байт данных 0<7:0> и байт данных 1<7:2>

EID<17:4>

01111

Байт данных 0<7:0> и байт данных 1<7:1>

EID<17:3>

10000

Байт данных 0<7:0> и байт данных 1<7:0>

EID<17:2>

10001

Байт 0<7:0> и байт 1<7:0> и байт 2<7>

EID<17:1>

10010

Байт 0<7:0> и байт 1<7:0> и байт 2<7:6>

EID<17:0>

10011 - 11111

Неверный выбор

Неверный выбор

7.5.2 Специальные случаи