Доступны ли все текущие данные 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
Отвечая на свой вопрос: я на 99 % уверен, что некоторые данные, доступные по запросу OBD, не передаются по шине CAN без запроса.
Я проанализировал множество данных со своего мотоцикла, но температура всасываемого воздуха не отображается.
Полагаю, причина в том, что эта информация «важна» только для двигателя. Нет смысла передавать её «всем». Информация о давлении в тормозной системе или скорости вращения колёс передаётся — полагаю, потому, что она используется несколькими компонентами автомобиля.
Чтобы избежать недопонимания: я не знаю, какие параметры транслируются в разных транспортных средствах, а какие нет. Я спрашивал, могут ли некоторые параметры быть доступны только по запросу (независимо от транспортного средства), и я подтверждаю, что это так. Некоторые параметры необходимо запрашивать, иначе они будут недоступны на шине CAN.