Вопрос

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

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

  1. Порт OBD в некоторых новых автомобилях подключен к «шлюзу». Иногда это отдельное устройство (например, (VW), а иногда оно находится в комбинации приборов или в другом узле CAN.



    Это связано с тем, что в одном транспортном средстве может быть несколько шин CAN.



    Похоже, что BMW также подключён к шлюзу, а не напрямую к шине CAN, но я проверю это и отредактирую пост.



    В зависимости от того, к какой информации вы хотите получить доступ, лучше всего подключиться напрямую к витой паре CAN-шины. Например, если вам нужны данные о работе двигателя, подключитесь к CAN-проводам, которые, как известно, подключены к электронному блоку управления двигателем. Обычно лучше всего начать с комбинации приборов. Или найдите устройство, которое является шлюзом CAN, и вы сможете получить доступ ко всем CAN-шинам.



    Вам также необходимо убедиться, что все настройки, такие как скорость передачи данных и подключение, верны. Я никогда не пользовался PiCAN, но ранее сталкивался с тем, что более дешёвые анализаторы зависали и отключали шину при большом количестве идентификаторов.


  1. В зависимости от того, какая информация мне нужна и к скольким шинам у меня есть доступ, я бы создал собственный многоканальный CAN-экран/интерфейс. Я создал собственное 3-канальное устройство, но для моих целей оно слишком сложное. Преимущество в том, что вам нужно только проанализировать необработанные данные CAN для каждой шины, а не протоколы шлюза, которые обычно представляют собой систему запросов и получения. Недостаток в том, что это не будет работать по принципу «подключи и работай»
  1. Похоже, что шлюз действительно существует. Судя по всему, некоторым людям удалось пройти через него, используя коды, о которых там говорилось. Я получил ответ, но ничего полезного в нём не было. Пора браться за кусачки!
  1. Возможно, это не лучший форум для такого вопроса. Как специалисты по обслуживанию автомобилей, мы редко сталкиваемся с шиной CAN. Мы покупаем инструменты, которые берут на себя коммуникацию. В лучшем случае нам приходится выяснять, почему шина может быть короче или разомкнутой.
Вы уже ответили на этот вопрос