Вопрос

Написание CAN-сообщений

Я хочу знать, что нужно написать в CAN-идентификаторе, чтобы отправить его в ЭБУ. Я использую ELM327 и Raspberry Pi со всеми подключениями к OBD-II.



Изначально для отправки общих идентификаторов PID в ЭБУ через ELM327 и Raspberry Pi я использовал '010C\r' для PID 010C. Теперь я хочу узнать, что нужно написать и отправить в ЭБУ, чтобы идентификатор/сообщение CAN было записано в ЭБУ.



Кроме того, как мне прочитать сообщение CAN?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/8549/writing-can-messages

2 Комментария

  1. Я бы порекомендовал вам начать со спецификации Bosch CAN 2.0, а затем перейти к openXc. Если у вас есть доступ к более новому автомобилю Ford, они предоставят вам подробную информацию о том, как использовать некоторые интерфейсы CAN.



    Следует также отметить, что OBD — это стандарт, а реализация CAN — нет. В разных автомобилях шины CAN подключаются к разным контактам на разъёме, а также могут быть подключены к нескольким шинам.



    Но, как сказал MD, большая часть информации об автобусах является конфиденциальной, и вам придётся провести реверс-инжиниринг.



    Я с нетерпением жду новых вопросов от вас.



    Еще Одна Записка:

    Вы не отправляете сообщения конкретному ЭБУ. Сообщения CAN отправляются всем модулям на шине (или на все шины через шлюз). Вопрос, на который вам действительно нужно ответить, заключается в том, какие сообщения прослушивает ЭБУ конкретной детали.



    СПЕЦИФИКАЦИЯ BOSCH CAN:
    http://esd.cs.ucr.edu/webres/can20.pdf



    developer.ford.com
    https://developer.ford.com/pages/openxc


  1. Полное сообщение CAN состоит из идентификатора FRAME и сообщения MESSAGE. Скорее всего, вам придётся провести реверс-инжиниринг сообщений CAN, чтобы узнать, какое сообщение нужно отправить по шине. В ответе также рассказывается, как читать сообщения.



    Что касается непосредственного обращения к ЭБУ, то я не знаю, как это сделать без официальной документации или без реверс-инжиниринга и поиска сообщения, которое действительно адресовано ЭБУ. Сообщения CAN выполняют очень специфические функции, поэтому я бы не стал ничего отправлять, если не знаю, что делаю, так как это может серьезно повредить автомобиль. При этом у ЭБУ есть идентификатор CAN, как и у любого другого устройства в сети, поэтому он будет считывать все, что ему адресовано.



    К вашему сведению, шина CAN похожа на ячеистую сеть или подсеть Ethernet. Каждое устройство видит весь трафик, но реагирует только на тот трафик, который адресован ему или имеет определённый идентификатор.


Вы уже ответили на этот вопрос