IOT TELEMATIKA
ВПК ПОТОК телематические решения 21 в
Назад к списку

Чтение данных из CAN шины автомобиля

CAN шина автомобиля используется для передачи данных между управляющими блоками в автомобиле. В зависимости от производителя и года выпуска у CAN шин разная скорость работы : 100kb, 125kb, 250kb, 500kb, 1000kb. Что касается использования протоколов используют два основных для отправки данных по CAN шине и управления, для нас управление чревато поломкой, поэтому при посылании команд в CAN шину автомобиля вы берете всю ответственность на себя.


Для нашего использования предлагаются основные два протокола J1939, J1979 именно с ними и ведет работу терминал, считывая данные из CAN шины автомобиля. Для большей части функционала, нам достаточно считывание диагностических данных по протоколу J1939, подключившись в шине через OBD II или в любом другом месте, где она есть, мы сможем получать и анализировать данные из CAN шины автомобиля.

Так же хочу напомнить, что экономия заряда аккумулятора при без действии или выключенном зажигании CAN шина автомобиля засыпает. И для корректной работы вам будет требоваться будить ее в ручном режиме (За частую просто открыв, закрыв дверь или включив зажигание) или второй более сложный вариант, это посылка пакета в CAN шину, чтобы блоки проснулись и переслали пакеты о своем состоянии на CAN шине автомобиля.

Более технических данных о CAN шине не требуется знать. Далее идет работа по реверс-инженирингу данных из CAN шины автомобиля. Большая часть операций заключается в том, чтобы выполнять какое либо действие с машиной, например открыть дверь, и смотреть какие параметры меняются в CAN шине.

CAN шина автомобиля передает данные в двоичном и шестнадцатеричной системе счисления, поэтому при переводе данных будьте внимательны и переводите к привычной десятеричной системе счисления.

Пример, данных из CAN шины автомобиля:

Поиск бита открытия двери, есть два варианта, когда все двери в одном байте (Вариант 1) или каждая дверь отдельно (Вариант 2).

Вариант 1:IDx000003B1: 00001000 00101000 01001000 00001000 01000000 10100000 00000000 00000000

Вариант 2:IDx00000621: 00000001 00000100 00000000 00010000 00000100 00000001 00000000 00000000

В таком состоянии будет ID после открытия дверей, теперь закрываем двери и видим изменения, это и есть данные об изменении состояния дверей автомобиля.

Вариант 1: IDx000003B1: 00001000 00101000 01001000 00000000 01000000 10100000 00000000 00000000

Вариант 2: IDx00000621: 00000000 00000100 00000000 00010000 00000100 00000001 00000000 00000000

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

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

Пример поиска состояния дверей, багажника, капота в одном байте:

Все двери, багажник, капот закрыты:

IDx000004B2: 00010010 00010000 01000100 00000000 00000000 00000000 00000000 00000000

Открыл дверь водителя:

IDx000004B2: 00010010 00010000 01000100 00000001 00000000 00000000 00000000 00000000

Открыл дверь пассажира:

IDx000004B2: 00010010 00010000 01000100 00000011 00000000 00000000 00000000 00000000

Открыл заднюю левую дверь:

IDx000004B2: 00010010 00010000 01000100 00000111 00000000 00000000 00000000 00000000

Открыл заднюю правую дверь:

IDx000004B2: 00010010 00010000 01000100 00001111 00000000 00000000 00000000 00000000

Открыл багажник:

IDx000004B2: 00010010 00010000 01000100 00011111 00000000 00000000 00000000 00000000

Открыл капот:

IDx000004B2: 00010010 00010000 01000100 00111111 00000000 00000000 00000000 00000000

ВНИМАНИЕ! Чаще всего капота или нет или он находиться в отдельном IDТак же в таком ID в CAN шине встречается состояние есть ли ключ в замке зажигания или в зоне доступа определителя ключа, при без ключевом доступе, тогда данные из CAN шины автомобиля выглядят таким образом:

IDx000004B2: 00010010 00010000 01000100 10111111 00000000 00000000 00000000 00000000

Вот так и происходит поиск данных из CAN шины автомобиля. Выше приведенный пример действителен для автомобилей производства BMW и MECSEDES

Сделано на © 2018
Информация на сайте не является публичной офертой