Вопрос
CAN-шина считывает только один повторяющийся кадр
Я пытаюсь считать данные с CAN-шины через порт OBD с помощью PiCAN, и на одном из наших автомобилей это работает нормально. Но на другом (Mini One 2007 года выпуска) я получаю один и тот же кадр, повторяющийся до тех пор, пока шина не будет заполнена на 97%:
can0 130 [5] 45 FF FD FF FF
can0 130 [5] 45 FF FD FF FF
can0 130 [5] 45 FF FD FF FF
can0 130 [5] 45 FF FD FF FF
can0 130 [5] 45 FF FD FF FF
При изменении битрейта возвращаются только мусорные данные, и в списке здесь всё равно указана поддержка CAN 11 бит 500 кбит. Запуск двигателя, остановка двигателя — ничего, кроме этого кадра...
Если у кого-то есть идеи о том, что происходит, мы будем очень признательны!
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/39123/can-bus-only-reading-one-repeating-frame
1
Порт OBD в некоторых новых автомобилях подключен к «шлюзу». Иногда это отдельное устройство (например, (VW), а иногда оно находится в комбинации приборов или в другом узле CAN.
Это связано с тем, что в одном транспортном средстве может быть несколько шин CAN.
Похоже, что BMW также подключён к шлюзу, а не напрямую к шине CAN, но я проверю это и отредактирую пост.
В зависимости от того, к какой информации вы хотите получить доступ, лучше всего подключиться напрямую к витой паре CAN-шины. Например, если вам нужны данные о работе двигателя, подключитесь к CAN-проводам, которые, как известно, подключены к электронному блоку управления двигателем. Обычно лучше всего начать с комбинации приборов. Или найдите устройство, которое является шлюзом CAN, и вы сможете получить доступ ко всем CAN-шинам.
Вам также необходимо убедиться, что все настройки, такие как скорость передачи данных и подключение, верны. Я никогда не пользовался PiCAN, но ранее сталкивался с тем, что более дешёвые анализаторы зависали и отключали шину при большом количестве идентификаторов.