Цитата(lead_seller @ May 6 2015, 21:36)

А чем проигрыш арбитража отличается от коллизии в CAN?
Хоть это и не относится к вопросу ТС... давайте разберемся)
Если адреса узлов разные и передача стартует одновременно, то узел с меньшим адресом выигрывает арбитраж и продолжает передавать.
Проигравший не просто отвалится, он еще и корректно примет эту посылку.
Но это только в поле адреса узла. Если при передаче данных и служебных полей будет обнаружен доминант при передаче рецессива, то
узел не перейдет в режим слушателя, а начнет активно действовать:
1) увеличит счетчик ошибок передачи (+8?);
2) если счетчик меньше определенного значения (<127?), то выставит несколько доминантов (6?) на шине - мол, ошибка (активная). Все кто принимал увидят эту ошибку и увеличат свои счетчики ошибок приема;
3) если счетчик больше определенного числа, то выставит несколько рецессивов (6?) - тоже ошибка, только пассивная;
4) если счетчик переполнился (255), то наступает bus-off на сколько-то idle-циклов шины (13?).
5) если счетчик не переполнился, то будет повторная передача (если она включена, зависит от протокола, настроек контроллера и т.п.). При этом bus-off гарантируется.
Итого: два одинаковых id узла на шине страшное зло! а не просто потеря арбитража.
PS. В деталях могу напутать, но общий смысл такой.