Предположим, что регистры адресов приемного фильтра содержат значения, приведенные в шестнадцатеричном представлении в столбце «Значение» Табл. 14.34. В следующих двух столбцах таблицы в десятичном представлении указано, какие количества слов и входов CAN соответствуют такому содержимому регистров, а в последнем столбце приведены значения поля индекса идентификатора (ID) (см. Табл. 14.13). Значение поля индекса ID может возвращаться в младших битах регистра CANRFS для тех сообщений CAN, идентификаторы которых совпадают с идентификаторами входов CAN, содержащимися в таблице приемного фильтра.
Таблица 14.34. Пример таблицы приемного фильтра и значений индекса ID
Таблица |
Регистр |
Значение |
#слова |
#входы |
Индексы ID |
Стандартная индивидуальная |
SFF_sa |
0x040 |
8 |
16 |
0...15 |
Стандартная таблица диапазонов |
SFF_GRP_sa |
0x060 |
4 |
4 |
16...19 |
Расширенная индивидуальная |
EFF_sa |
0x070 |
36 |
36 |
20...55 |
Расширенная таблица диапазонов |
EFF_GRP_sa |
0x100 |
4 |
. 2 |
56...57 |
ENDofTable |
0x110 |
На Рис. 14.2 в графическом виде приведен подробный пример заполнения адресных регистров и соответствующего ему размещения таблиц и значений индексов ID. В этом примере представлены:
• стандартная индивидуальная таблица, которая размещена с начального адреса оперативной памяти приемного фильтра и содержит 26 идентификаторов;
• стандартная таблица диапазонов, содержащая 12 диапазонов идентификаторов;
• расширенная индивидуальная таблица, содержащая 3 идентификатора;
• расширенная таблица диапазонов, содержащая 2 диапазона идентификаторов.
Поисковая таблица в ОЗУ
нижний столбец верхний столбец
VPB6aaa + адрес
00d = 00h 04d = 04h 44d = 2Ch 48d = 30h |
0 |
1 |
Od 1 Id |
|
I SFF.sa | (M=00011=000000000b l_l * |
||||
2 |
3 |
2d 3d 22d 23d 24d 25d ' |
||
22 |
23 |
|||
24 |
25 |
|||
52d = 34h 84d = 54h 88d = 58h 92d = 5Ch |
1 QFP ftRP fia 1 KOH - MAh - П ПЛ11 ЩМ. | ' |
2 |
6 |
26d ' 34d 35d 36d |
1 wr_unr_5a | Qld-U34n -UUU11U1UUO 1 |
i |
|||
нижняя граница 3 |
4 верхняя граница |
|||
нижняя граница 3 |
5 верхняя граница |
|||
нижняя граница 3 |
6 верхняя граница |
|||
1 |
||||
100d = 64n 104d = 68h |
1 EFF.sa | 100d=64h = 001100100b 1=-► |
38 |
38d ' 39d |
|
39 |
||||
112d = 70h 116d = 74h 120d = 78h 124d = 7Ch |
I EFF_GRP_sa | 112d = 80h = 001110000b 1- |
нижняя граница 41 |
41 d 42d |
|
верхняя граница |
||||
нижняя граница 42 |
||||
1 ENDofTable 1128d = 080h = 010000000b f—, |
верхняя граница |
|||
Индекс ID #
Стандартная индивидуальная таблица(SFF)
Стандартная таблица диапазонов (SFF)
Расширенная индивидуальная таблица(EFF)
Расширенная таблица диапазонов (EFF)
Рис. 14.2. Пример заполнения адресных регистров приемного фильтра CAN
14.8. Режим «fullCAN»
Когда разрешен режим «fullCAN», приемный фильтр сам заботится о приеме и сохранении сообщений, которые соответствуют выбранным значениям стандартных идентификаторов на выбранной шине CAN, поддерживающей режим контроллеров «ftiHCAN». Чтобы использовать этот режим, необходимо выполнение следующих двух условий (это касается содержимого оперативной памяти приемного фильтра и регистров-указателей):
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |