Как получить коды OBD2 через "сырую" шину Can (выводы CanHi и CanLo)?

Я пытаюсь подключиться к CAN-шине автомобиля напрямую через такие продукты, как Usb2Can. Это в основном предполагает непосредственное подключение к контактам CanHigh и CanLow (контакты № 6 и № 14 порта OBD2) и работу с сообщениями шины CAN, например, с 11-битными идентификаторами и 8-байтовыми данными. Я планирую использовать SocketCan & can-utils для этого.

То, что я не могу понять, - как я могу "говорить" протокол OBD2 на этой шине CAN. Т.е. я хочу прослушивать / прослушивать / отправлять "сырые" сообщения CAN, НО я также хочу сохранить способность, например, считывать диагностические коды (Pxxxx), сбрасывать контрольную лампу и т. Д., Как это делают адаптеры Elm327. Те адаптеры, которые продаются менее чем за 20 долларов, обеспечивают последовательную связь, но я предполагаю, что они просто абстрагируют низкоуровневые CAN-сообщения.

В статье Википедии упоминается, что в протоколе связи OBD2 есть 10 режимов работы. Но я не могу найти более подробную информацию о том, как реализовать все это только с помощью шины CAN и SocketCan. Может быть, некоторые библиотеки уже существуют для этого?

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

Просто: как я могу подключиться к шине CAN (порт OBD2 в целом) и одновременно иметь возможности ОБА: отправлять / получать необработанные сообщения CAN, а также "говорить" по протоколу связи OBD2 более высокого уровня, аналогичному тому, который используется в USB-канале Elm327 Кабели -obd2 обеспечивают.

0 ответов

Другие вопросы по тегам