Вопрос
Как реконструировать протокол производителя на OBD2 для получения расширенных данных о транспортном средстве
Я понимаю, что универсальные считыватели OBD2 предоставляют ограниченный набор данных об автомобиле (PIDs). Расширенный набор данных об автомобиле можно получить с помощью протоколов, разработанных для конкретных производителей автомобилей (не публикуются). В связи с этим у меня возникли следующие вопросы:
Получаем ли мы в этой категории параметры транспортного средства, а не те, что отображаются в идентификаторах OBD-II (https://en.wikipedia.org/wiki/OBD-II_PIDs)
Как мы можем реконструировать протокол конкретного производителя, чтобы получить расширенный набор данных о транспортном средстве?
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/39093/how-to-reverse-engineer-the-manufacturer-specific-protocol-on-obd2-for-acquiring
1
Сразу оговорюсь, что я никогда не работал напрямую с автомобильной шиной CAN. Я долгое время был механиком, а потом занялся другими делами. Я работал со встроенными приложениями CAN.
Сначала вам понадобится инструмент для подключения к шине CAN. Чем гибче инструмент, тем лучше. При реверс-инжиниринге CAN возникают две проблемы. Во-первых, CAN работает на основе сообщений. Это значит, что два модуля никогда не взаимодействуют напрямую. Каждый модуль транслирует свои данные на всю шину, и эти данные кодируются идентификатором сообщения. Этот идентификатор сообщения позволяет всем заинтересованным в данных устройствам считывать их. В простейшей реализации CAN используется 2000 идентификаторов. В более продвинутых системах их сотни тысяч. Вторая проблема заключается в том, что все говорят в автобусе одновременно. Сложно отфильтровать нужные данные и отсеять ненужные.
Как только вы подключитесь к шине, начинайте прослушивание. Лучше всего будет записать данные, а затем проанализировать их в электронной таблице. Проще всего будет определить частоту вращения двигателя. Как только вы определите конкретный идентификатор сообщения и его значение, в игру вступит гибкость вашего инструмента. Укажите инструменту, какие идентификаторы сообщений вам уже известны.
Как только вы пассивно идентифицируете большую часть данных на шине, перед вами встанет выбор. Есть сложный и простой способы. CAN поддерживает запросы данных. Сложный способ заключается в том, чтобы отправлять запросы данных на автомобиль, прослушивать ответы, а затем пытаться проанализировать, что означают полученные данные. Простой способ заключается в том, чтобы взять сканер и прослушивать шину, пока сканер запрашивает данные у автомобиля. Затем нужно проанализировать, какие сообщения запроса получают какие данные и какие у них идентификаторы.