Вопрос

Доступны ли все текущие данные OBD на шине CAN без запроса?

Я анализирую данные CAN-шины моего мотоцикла.



Я записал весь трафик CAN-шины. Один раз с подключённым адаптером ELM327 и один раз без него.



Я ищу значение температуры всасываемого воздуха. При подключении ELM327 я вижу сообщения OBD 7DF Request и 7E8 Response. Запрос: 02010F0000000000, ответ: 03410F4E00000000 = 38 градусов по Цельсию



Но я не могу найти это значение или что-то похожее в «обычном» трафике CAN-шины, а не в данных ответа OBD.



Что касается других значений, таких как частота вращения коленчатого вала, я могу увидеть их в сообщениях OBD, например 04410C21A0000000 = 2152 об/мин, а также в CAN-ID 540 и сообщениях типа «02 08 68 .. ..»



У меня такой вопрос: должны ли все значения, которые можно запросить через OBD, передаваться по CAN-шине, даже если запросы через OBD не поступают? Или мне нужно запрашивать это значение, если я хочу увидеть его на CAN-шине?



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



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



Примечание: в настоящее время я работаю над KTM Duke 390 (2017), в котором используется современная электроника, например электронная дроссельная заслонка. У него есть диагностический разъем с выходом CAN-BUS 500 кбит/с. Я не упомянул об этом в исходном посте, потому что мой вопрос не зависит от конкретного транспортного средства. Скорее всего, позже я буду работать над другим мотоциклом, и, возможно, у меня возникнет тот же вопрос.



Правка 2. Чтобы прояснить, что я имею в виду: я хочу создать устройство, которое будет подключаться к шине CAN и анализировать данные. Одна из задач — создать дополнительный стоп-сигнал, который будет срабатывать при более резком торможении. Я могу сделать это сейчас, потому что нашёл в данных шины CAN информацию о давлении в тормозной системе, которая представляет собой 16-битное значение давления в передних тормозах. У меня есть ещё одна идея, для которой мне нужна температура всасываемого воздуха. Сейчас я уже могу запросить эти данные в стиле OBD и использовать ответное сообщение OBD. Но если возможно, я бы хотел прослушивать только эту шину CAN. Поэтому было бы лучше, если бы я мог получать это значение без запроса (через сообщение OBD). Я также мог бы измерять напряжение на проводах NTC (резистора, сопротивление которого меняется в зависимости от температуры) и использовать аналого-цифровой преобразователь. Но зачем мне это делать, если это значение уже измерено и доступно на шине CAN? В этом и заключается идея.



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/68148/are-all-obd-current-data-available-on-the-can-bus-without-request

17 Комментариев

  1. Отвечая на свой вопрос: я на 99 % уверен, что некоторые данные, доступные по запросу OBD, не передаются по шине CAN без запроса.



    Я проанализировал множество данных со своего мотоцикла, но температура всасываемого воздуха не отображается.



    Полагаю, причина в том, что эта информация «важна» только для двигателя. Нет смысла передавать её «всем». Информация о давлении в тормозной системе или скорости вращения колёс передаётся — полагаю, потому, что она используется несколькими компонентами автомобиля.



    Чтобы избежать недопонимания: я не знаю, какие параметры транслируются в разных транспортных средствах, а какие нет. Я спрашивал, могут ли некоторые параметры быть доступны только по запросу (независимо от транспортного средства), и я подтверждаю, что это так. Некоторые параметры необходимо запрашивать, иначе они будут недоступны на шине CAN.


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


  1. Я бы, наверное, написал это в комментариях. Но у меня пока нет «прав» для комментирования на этом форуме.
    Тем не менее вы можете легко определить, есть ли данные, которые вы ищете, найдя соответствующий датчик для этих данных.



    Но на входе почти всегда только воздух поток.



    HTH


  1. Ещё один хороший пример — передняя фара. У светодиодной передней фары нет проводов или разъёмов для ближнего и дальнего света и т. д. У неё есть разъём питания и разъём CAN-шины. Я уже нашёл широковещательные кадры CAN для ближнего и дальнего света. Они доступны в широковещательном трафике, но недоступны (насколько мне известно) в OBD.
  1. На моём мотоцикле передаётся около 20 000 кадров CAN в минуту. Я могу видеть данные о давлении в тормозной системе, данные о двигателе, включая температуру воды, число оборотов в минуту, передачу и т. д. Некоторые из этих данных, например число оборотов в минуту, также доступны в ODB, но другие данные, такие как передача, давление в тормозной системе и многие другие, недоступны в OBD. Я только начал анализировать необработанные данные, и мне потребуется некоторое время, чтобы найти все подробности. Это очень современный мотоцикл...
  1. В данном случае датчик температуры находится в корпусе воздушного фильтра.
  1. Насколько я помню (когда задействован датчик массового расхода воздуха). Воздух нагревается, и вычисления производятся на проводе. Компьютер вычисляет температуру на основе расхода воздуха и напряжения на нагревателе после «обнюхивания» выхлопных газов.
  1. Есть ли у него датчик MAF?
  1. Датчик есть. Это датчик температуры охлаждающей жидкости, который подключен к блоку управления двигателем. Я вижу температуру на впуске в файлах журнала OBD и в кадрах CAN, предназначенных для OBD (7E8). Но пока я не вижу их в широковещательном трафике CAN (20 000 кадров в минуту). Я поищу ещё немного.
  1. @GdD: я добавил информацию...
  1. @Эдгар, ответ может зависеть от производителя и модели. Если вы отредактируете вопрос, указав марку, модель и год выпуска, это поможет получить более точные ответы.
  1. У меня есть автомобиль с разъёмом OBDII, и я анализирую данные в режиме реального времени... Но удачи вам...
  1. Но быстрый поиск выдал следующее: mechanics.stackexchange.com/a/32096/10976
  1. Obd или obdII или obd2 — это один поиск, can bus или canbus — другой. Здесь есть несколько вопросов, которые я прочитал и прокомментировал...
  1. @SolarMike: я искал пользователя 10976 в сочетании с OBD и CAN-BUS, а также выполнил несколько других поисковых запросов, но не нашёл ни одного вопроса или ответа, похожего на мой. Я понимаю, что нужно провести небольшое исследование, прежде чем задавать вопрос. Я так и сделал. Но я не собираюсь читать сотни вопросов, в которых есть только слово OBD, потому что большинство из них точно не связаны с моей проблемой. Если вы считаете, что вы или кто-то другой уже ответили на мой вопрос, пожалуйста, отметьте его как дубликат и добавьте ссылку на ответ. Спасибо.
  1. Я искал. Но не нашёл похожего вопроса. Но иногда пользователи (как и я) просто не знают, как лучше сформулировать запрос...
  1. Здесь стоит поискать, много вопросов про OBD и данные...
Вы уже ответили на этот вопрос