- PVSM.RU - https://www.pvsm.ru -

CanHacker на базе Adruino (без глюков)

Приветствую всех!

Хочу поделиться своим опытом решения проблемы с включением электроусилителем руля (ЭУР) на Volkswagen Tiguan 2008 года «на столе».

Предыстория. Периодически на панели приборов появлялись индикаторы желтого и красного руля, что указывало на неполадки с ЭУР.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

Красный руль на щитке приборов

Диагностика показала, что на 30-й клемме (постоянный плюс от аккумулятора) пропадает питание.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

Ошибка в блоке ЭУР

Казалось бы, что может быть проще — проверить жгут проводов и найти причину. Однако жгут оказался целым, окислений на контактах не было, и питание присутствовало даже при возникновении ошибки.

В итоге я пришел к выводу, что проблема кроется в блоке управления ЭУР, который расположен на самой рулевой рейке. Добраться до него без подъемника крайне сложно, поэтому я решил заменить рейку на контрактную б/у.

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

Так возникла задача: подключить рулевую рейку Tiguan «на столе» без подключения к машине. Для этого нужно было имитировать активность в CAN‑шине.

Для решения задачи потребовался адаптер, совместимый с программой CanHacker, и трейс CAN‑пакетов с автомобиля.

В этой статье я расскажу о первом этапе — создании адаптера, совместимого с CanHacker.

CanHacker работает с адаптерами по протоколу Lawicel. Для создания адаптера мне понадобились микроконтроллер Arduino, CAN‑трансивер и модуль MCP2515 с трансивером TJA1050.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

Модуль MCP2515

Схема подключения проста: необходимо соединить питание и SPI‑интерфейс. На модуле MCP2515 есть джампер J1, который подключает резистор 120 Ом на шине. Для работы с автомобилем этот резистор обычно не нужен, но для тестирования на столе его лучше установить.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

Схема подключения CAN модуля к Arduino

Джампер J1 на модуле MCP2515 подключает резистор 120 Ом на шине. Для подключения к шине автомобиля он обычно не нужен, а вот для подключения устройства к модулю на столе его лучше установить.

После сборки модуля оставалось найти подходящую прошивку.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

Собранное "устройство" в корпусе, печатал когда-то на 3D принтере - завалялось...

Изначально я использовал проект arduino‑canhacker [1], но он оказался нестабильным — зависал даже на скорости 125 Кб/с. В итоге я нашел более надежное решение — библиотеку Seeed_Arduino_CAN [2]. В ней есть пример canbus‑monitor, который после прошивки работает стабильно на скорости 500 Кб/с и совместим с CanHacker.

Теперь, когда адаптер готов, можно проверить его работу. Подключаемся к CAN‑шине автомобиля (в моем случае — к блоку парковочного ассистента, так как на Volkswagen используется Gateway, разделяющий сети). Запускаем CanHacker, выбираем COM‑порт, скорость 115 200 для адаптера и 500 Кб/с для CAN‑шины.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

Настройки подключения

После подключения видим, что связь установлена, и версия прошивки отображается.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

CanHacker подключился к адаптеру

Следующий шаг — запись трейса CAN‑пакетов. Включаем зажигание, запускаем двигатель, глушим его и останавливаем запись. Теперь у нас есть трейс, который можно использовать для имитации работы автомобиля и включения рулевой рейки. Конечно, не все пакеты из трейса понадобятся, но они помогут определить, какие CAN ID и сообщения отвечают за активацию ЭУР.

CanHacker на базе Adruino (без глюков) Arduino, Can, Машина, Радиоэлектроника, Программа, Длиннопост

трейс, полученный с рабочего автомобиля

Это моя первая статья на Хабре, и если она окажется полезной, я с удовольствием поделюсь другими техническими решениями и опытом!

Автор: rsgrinko

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/arduino/410844

Ссылки в тексте:

[1] arduino‑canhacker: https://github.com/autowp/arduino-canhacker

[2] Seeed_Arduino_CAN: https://github.com/Seeed-Studio/Seeed_Arduino_CAN

[3] Источник: https://habr.com/ru/articles/882942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=882942