Вопрос

Какова связь между идентификатором CAN и ЭБУ в стандарте OBD-II

Сценарий



При получении наборов данных об автомобилях, собранных путем регистрации трафика CAN через порт OBD-II в реальном автомобиле, для обнаружения вторжений я получил несколько кадров CAN с 11-битным идентификатором CAN, например 0x00a0.



Вопрос



Все мы знаем, что идентификатор CAN определяет приоритет и значение сообщения, но какова связь между идентификатором CAN и ЭБУ? Есть ли у каждого ЭБУ свой уникальный идентификатор CAN, или разные ЭБУ (например, ЭБУ, управляющий подушкой безопасности, и другие) могут при определенных обстоятельствах отправлять кадр CAN с одним и тем же идентификатором CAN?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/59738/whats-the-relationship-between-can-identifier-and-ecu-in-obd-ii-standard

2 Комментария

  1. Между адресом CAN и модулем на шине нет сильной связи. Чем меньше значение идентификатора, тем выше приоритет на шине. Насколько я помню, это работает на аппаратном уровне, поскольку меньшее число занижает приоритет шины и подавляет идентификатор с более высоким значением.



    По шине CAN можно передавать различные сообщения, используя их уникальный идентификатор и следующие за ним 8 байт для передачи сигнальных данных.



    Например, у модуля ABS, скорее всего, будет низкий идентификатор для отправки сообщения всем подключённым узлам о том, что в автомобиле активирован противооткатный режим. Сообщение с низким приоритетом (более высокий идентификатор CAN), например, от модуля топливного бака будет сообщать комбинации приборов об уровне топлива в баке.



    Протокол OBD работает аналогичным образом: сканер подключается к шине как узел с адресом, например, 0x7DF, и отправляет запрос на получение данных, используя 8 байт данных, следующих за идентификатором. Любой узел на шине (например, ECU) может ответить соответствующими данными, которые запрашивает инструмент сканирования, он делает это, используя адрес в диапазоне 0x7E8-> 0x7EF (диапазон позволяет отвечать нескольким узлам, 0x7E8 является довольно типичным - страница wiki объясняет протокол здесь https://en.wikipedia.org/wiki/OBD-II_PIDs


  1. Добро пожаловать в раздел «Техническое обслуживание и ремонт автомобилей»! Небольшое уточнение, чтобы люди не путались. ECU — это блок управления двигателем, то есть компьютер, который управляет двигателем. Он подключен к шине CAN и выдает коды, соответствующие спецификации OBDII, когда происходит что-то, о чем он должен сообщить. Другие блоки управления, такие как компьютеры SRS и ABS (в большинстве автомобилей они отделены от ECU), работают по-своему. Судя по тому, что вы пишете в первом абзаце своего вопроса, вы либо не понимаете этого, либо не осознаёте, что ЭБУ — это не общий термин для обозначения бортового компьютера.
Вы уже ответили на этот вопрос