Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.
Я действовал поэтапно:
Разработка CAN шилда для Raspberry Pi Установка ПО для работы с CAN шиной Подключение к CAN шине авто Разработка сниффера и изучение протокола CAN шины Разработка приложения для телефона Голосовое управление с помощью Homekit и Siri
В конце видео голосового управления стеклоподъемником.
Разработка CAN шилда для Raspberry Pi
Схему шилда взял здесь , там же и описание выводов, для общения с CAN используются 2 микросхемы MCP2515 и MCP2551. К шилду подключаются 2 провода CAN-High и CAN-Low. В SprintLayout 6 развел плату, может кому пригодится (на заглавном фото прототип шилда на макетке).
Установка ПО для работы с CAN шиной
На Raspbian 2-x годичной давность мне потребовалось пропатчить bcm2708.c, чтобы добавить поддержку CAN (возможно сейчас это не требуется). Для работы с CAN шиной нужно установить пакет утилит can-utils с , после этого подгрузить модули и поднять can интерфейс: Проверяем, что интерфейс CAN поднялся командой ifconfig: Проверить, что все работает можно отправив команду и получив ее.
В одном терминале слушаем: В другом терминале отправляем: Более подробный процесс установки описан здесь .
Подключение к CAN шине авто
Немного изучив я выяснил, что у меня используется 2 шины.
Шина CAN силового агрегата, передающая данные со скоростью 500 кбит/с, связывает все обслуживающие этот агрегат блоки управления.
Например, к шине CAN силового агрегата могут быть подключены следующие приборы:
блок управления двигателем, блок управления АБС, блок управления системой курсовой стабилизации, блок управления коробкой передач, блок управления подушками безопасности, комбинация приборов.
Шина CAN системы «Комфорт» и информационнокомандной системы, позволяющая передавать данные со скоростью 100 кбит/с между обслуживающими эти системы блоками управления.
Например, к шине CAN системы «Комфорт» и информационно