Цитата(denwill @ Mar 24 2006, 16:10)

Как например, раздать идентификаторы устройствам (приоритеты данных от этих устройств одинаковые)?
Читай доки на протоколы высокого уровня, там все в картинках.
Пример на пальцах:
В общем виде
- все могут передавать всем
- узел может иметь несколько CANID
Узел 1 -- номер 2: BIN:0010
Узел 2 -- номер 6: BIN:0110
Узел 3 -- номер 7: BIN:0111
Разделим CANID(11бит) на 3 секции :
- Команда, номер данных или т.п. 5 бит
- Адрес назначения 4 бита
- Адрес источника 4 бита
CANID при передаче команды 0x00110 от первого узла второму примет вид
Код
00110/0110/0010
CANID при передаче команды 0x00110 от второго узла первому примет вид
Код
00110/0010/0110
У каждого узла необходимо настроить фильтр, какие биты CANID всех принимаемых кадров с чем сравнивать.
Код
00000/1111/0000 Биты (адрес назначения)
Код
00000/0010/0000 С чем(узел 1)
Будут приняты пакеты от всех блоков, предназначенных первому.
Если есть несколько фильтров то можно сделать фильтры на команды:
Команда 00110 от всех блоков
Код
11111/1111/0000
00110/0010/0000
Команда 01010 от всех блоков
Код
11111/1111/0000
01010/0010/0000
Все остальные
Код
00000/1111/0000
00000/0010/0000