Как расшифровать данные BMW CAN (через OBDII)
Я использую устройство типа ELM327.
Я пытаюсь опрашивать и расшифровывать данные на своём BMW i3. В качестве справочных материалов я использую следующие ресурсы:
- В этом посте рассказывается о том, что мне нужно сделать для инициализации.
- В этом посте показаны некоторые типы запросов
- Этот ответ объясняет некоторые аспекты декодирования.
Однако без какого-либо «разбора фрейма» я не могу понять, как расшифровать эти ответы. Я попытался применить что-то подобное этому со страницы вики CAN, но, похоже, мне не удаётся сопоставить ответы с данными, как описано в пункте 3.
Моя цель — понять формат фрейма ответа, чтобы я мог реализовать собственный декодер в своём инструменте, который я пишу. Для этого было бы полезно иметь возможность декодировать фреймы в сообщении, указанном в пункте 3. "607F1100762DD69FFFF 607F121FE44FFFFFFFF".
Чтобы было понятно, я понимаю, что в «полезной нагрузке» разных кадров содержатся разные типы данных. Я не спрашиваю об этом. Как только я пойму, как декодировать кадры и «выделить» полезную нагрузку, я смогу интерпретировать данные из других задокументированных источников.
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/83122/how-do-i-decode-bmw-can-data-over-obdii
Мне удалось получить действительно ценную информацию от легенд /r/CarHacking.
В той ветке я задал примерно тот же вопрос.
Cyrix2k ответил:
Это была очень хорошая отправная точка, поскольку я понятия не имел, что поверх CAN существуют транспортные протоколы.
Затем CitizenItza ответил, подробно разобрав рассматриваемые пакеты. Вот оно:
Используя приведённую выше информацию, я смог создать собственный базовый парсер пакетов для своего инструмента.