Можно ли получить доступ к нескольким шинам CAN через порт OBD-II?
Как обычно, прошу прощения, если этот вопрос уже задавали и на него где-то ответили. Я стараюсь задавать вопросы только в том случае, если не могу найти ответ или не удовлетворён полученным ответом.
Насколько я понимаю, порт OBD-II на автомобилях либо подключен к специальному контроллеру-шлюзу, либо напрямую подключен к основной шине CAN, узлом которой является ЭБУ, выполняющий функцию шлюза. Диагностические устройства, подключенные к OBD-II, могут получать доступ к узлам на вторичных или третичных шинах CAN, отправляя запросы через шлюз. Таким образом, в любом случае, если вы хотите отслеживать сообщения на нескольких шинах CAN, вам придется иметь дело со шлюзом.
Правильно ли я понимаю? Можно ли отслеживать несколько шин CAN через порт OBD-II?
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/26757/is-it-possible-to-access-multiple-can-buses-through-the-obd-ii-port
Я разобрался. Ответ зависит от производителя. Диагностический порт OBD-II имеет несколько контактов, которые обозначены как «опция производителя». Производитель может подключить один или несколько таких контактов напрямую к шине CAN средней скорости или шине CAN низкой скорости. Это обеспечит прямой доступ к трафику сообщений по этим шинам в режиме реального времени. Если используется шлюз, есть два основных подхода.
A) Это более популярный вариант. Порт OBD-II подключается напрямую к высокоскоростной шине CAN. Порт может напрямую отслеживать трафик на высокоскоростной шине CAN. Один из узлов на высокоскоростной шине CAN (обычно это модуль управления кузовом или что-то подобное) выступает в качестве шлюза для среднескоростной шины CAN. Для доступа к данным на среднескоростной шине по высокоскоростной шине передаётся диагностическая удалённая рамка (IAW CAN Spec 2.0), предназначенная для узла-шлюза. После получения данных шлюзовой узел генерирует дополнительный удалённый кадр на шине MS, предназначенный для целевого узла на этой шине. После получения данных целевой узел передаёт запрошенные данные по шине MS. Шлюзовой узел получает их, а затем, когда шина HS свободна, передаёт эти данные по шине HS.
B) Порт OBD-II может быть подключен к выделенному шлюзу, который будет передавать данные с определенной шины только в том случае, если через порт будет отправлен диагностический запрос. Если запрос не будет отправлен, трафик не будет передаваться. Если вы хотите получить данные с определенного узла на определенной шине, вам всегда нужно отправлять диагностическое сообщение с запросом удаленного кадра.