Подключение панели с can шиной

Подключение панели с can шиной

В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!

Подключение панели с can шиной

Водительская дверь открыта

CAN сниффер из Arduino Uno

Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.

Подключение панели с can шиной

Схема подключения следующая:

Для прослушивания трафика использовал анализатор CanHackerV2 и прошивку arduino-canhacker для Arduino, которая реализует API совместимое с этой программой. Прошивка в гите https://github.com/autowp/arduino-canhacker.

CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.

Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)

Описание VCDS с официального сайта ru.ross-tech.com:

Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.

Подключение панели с can шиной

Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.

Подключение панели с can шиной

Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.

В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:

  • температура масла
  • какая именно дверь открыта

Читайте также: Сузуки гранд витара износ задних шин

Скорость, обороты, температура ОЖ, пробег, расход, место в баке и другие запросы я тоже получил, для справки размещу.

Разработка панели приборов на основе Raspberry Pi и 7″ дисплея

В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.

Подключение панели с can шиной

OBD2 штекер использовал от старого ELM327 адаптера.

Подключение панели с can шиной

Используются контакты: CAN_L, CAN_H, +12, GND.

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

Подключение панели с can шиной

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

Подключение панели с can шиной

Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.

Подключение панели с can шиной

Софт панели приборов на Python и Kivy (UI framework)

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

Первая версия панели приборов

По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.

Вторая версия панели приборов

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

Третья версия панели приборов

Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.

Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.

Алгоритм работы следующий, используется 3 потока:

  1. В главном потоке работаем с графическими элементы (спидометр, тахометр, часы, температуры и др) на экране
  2. Во втором потоке каждые 5 мс делаем опрос следующего датчика
  3. В третьем потоке слушаем CAN шину, получив ответ парсим его и обновляем соответствующий графический элемент

Читайте также: Чем хороши шины мишлен

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

Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!

Видео работы цифровой панели приборов на базе Raspberry Pi

Приложение на телефон Виртуальная панель приборов

Для телефона написал приложение — виртуальная панель приборов, данные от машины передаются через ELM327 Wi-Fi адаптер. Адаптер подключается в OBD2 разъем, делает запросы по CAN шине и возвращается ответы в приложение по Wi-Fi.

Приложение VAG Virtual Cockpit уже в AppStore. Пока, что только под iPhone/iPad, но Android версия планируется. Приложение решил сделать платным с минимальной символической стоимостью.
Если есть желание поддержать проект, то вот ссылка на приложение, принимаю любые замечания и предложения!
VAG Virtual Cockpit

Видео:CAN шина👏 Как это работаетСкачать

CAN шина👏 Как это работает

Новичку о подключении к CAN шине

Видео:Магия CAN-шиныСкачать

Магия CAN-шины

Для работы с CAN шиной автомобиля необходимо знать:

CAN шина – это сеть обмена данными определенная в стандарте ISO 11898. Другие каналы обмена данными в автомобиле не могут быть названы CAN шиной. AVC-LAN, BEAN, J1708, VAN и другие старые протоколы это НЕ CAN !

В автомобиле может быть более одной CAN шины. Для каждого функционального сегмента автомобиля выделяется своя сеть CAN. Выделенные сети могут работать на разных скоростях.

Видео:Включение панели приборов VW / Audi / Skoda на столе. VAG instrument cluster Switch-ON by CAN busСкачать

Включение панели приборов VW / Audi / Skoda на столе. VAG instrument cluster Switch-ON by CAN bus

Скорости работы CAN шины

CAN на разных автомобилях и в разных сегментах сети может работать на разных скоростях.

Названия сегментов сети: Мотор, Шасси, Комфорт, Салон – условны! У Каждого автопроизводителя свои названия этих участков сети!

  • Группа VAG: Мотор\шасси – 500 кбит\с, Комфорт – 100 кбит\с и с 2018 года шина Комфорт может иметь скорость 500 кбит\с., Диагностика: 500 кбит\с.
  • BMW : Мотор\Шасси – 500кбит\с, Комфорт – 100 кбит\с и с 2018 года шина Комфорт может иметь скорость 500 кбит\с., Диагностика: 500 кбит\с.
  • Mercedes-Benz : Мотор\Шасси – 500 кбит\с, Комфорт 83.333 кбит\с, 250 кбит\с, Диагностика: 500 кбит\с.
  • Ford, Mazda : Мотор\Шасси – 500 кбит\с, Комфорт 125 кбит\с. (Для Ford может быть больше вариантов)
  • KIA\Hyundai : Мотор\Шасси – 500 кбит\с, Комфорт 125 кбит\с, 500 кбит\с, Мультимедиа: 125 кбит\с, 500 кбит\с., Диагностика: 500 кбит\с.
  • GM : Мотор\Шасси – 500 кбит\с, Комфорт: 33.333 кбит\с, 95.2 кбит\с, Диагностика: 500 кбит\с.
  • Toyota, Nissan, Honda, Subaru, Suzuki : 500 кбит\с (может использоваться гейтвей)
  • Mitsubishi : Мотор\Шасси: 500 кбит\с, Салон\Комфорт – 83.333 кбит\с, 250 кбит\с, Диагностика: 500 кбит\с.
  • Volvo : Мотор\Шасси: 500 кбит\с, Салон\Комфорт – 500 кбит\с, 125 кбит\с, Диагностика: 500 кбит\с.
  • Renault : 500 кбит\с
  • Peugeot : Мотор\Шасси – 500 кбит\с, Комфорт 125 кбит\с.
  • Lada : 500 кбит\с
  • Коммерческая и специальная техника : Стандарт J1939 250 или 500 кбит\с.

Читайте также: Зимние шины липучка рейтинг для suv

Видео:установил ЩИТОК приборов ПРИОРА 2 с КАН ШИНОЙ на ПРИОРУ 1 БЕЗ КАН ШИНЫ! салон мечты!Скачать

установил ЩИТОК приборов ПРИОРА 2 с КАН ШИНОЙ на ПРИОРУ 1 БЕЗ КАН ШИНЫ! салон мечты!

Сегментация CAN шины по функциональному назначению

  • Как правило разные, сегменты сети разделены специальным устройством, которое называется Гейтвей (Gateway, ZGW, ETACS, ICU) .
  • В роли гейтвея может выступать панель приборов (для простых автомобилей) или отдельный специальный модуль межсетевого интерфейса.
  • Гейтвей разделяет потоки данных в разных сегментах сети и обеспечивает связь сегментов сети работающих на разных скоростях.
  • ВАЖНО: На многих автомобилях (особенно VAG, MB, BMW) CAN шина в диагностическом разъеме OBD2 отделена от других участков сети при помощи гейтвея, поэтому подключившись к CAN шине OBD разъема невозможно увидеть поток данных. В этом случае можно увидеть только обмен между диагностическим инструментом и автомобилем во время процесса диагностики! Так же модулем гейтвеем оборудованы автомобили японских марок с 2016..2018 годов в зависимости от модели.
  • ОБЯЗАТЕЛЬНО изучайте схемы на исследуемый автомобиль, чтобы знать к какому сегменту сети Вы подключаетесь!

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

Подключение панели с can шиной

Видео:Как настроить Canbus на Android магнитоле . Правильное подключение .Скачать

Как настроить Canbus  на Android магнитоле . Правильное подключение .

Реализации CAN на уровне электрических сигналов

CAN шина может быть реализована физически тремя способами:

1 ISO11898-2 или CAN-High Speed.

Классическая витая пара нагруженная с обоих концов резисторами 120 Ом.
Подключение панели с can шиной
В этом случае уровни на шине CAN выглядят так:
Подключение панели с can шиной

Для такой реализации сети используются как правило обычные CAN трансиверы в 8 выводном корпусе, аналоги PCA82C250, TJA1050 и им подобные. Работает такая конфигурация на скоростях 500 кбит\с и выше. (Но могут быть исключения) .

2 ISO11898-3 или CAN-Low Speed или Faut Tolerant CAN

Подключение панели с can шиной

В этом варианте используется та же витая пара, но линии CAN-Low и CAN-High подтянуты к напряжению питания и массе соответственно.
Подробное описание FT-CAN по ссылке
Такой вариант CAN шины способен переключаться в однопроводный режим в случае повреждения одной из линий. Работает на скоростях до 250 кбит\с.Уровни сигнала на шине отличаются от High Speed CAN, при этом не теряется возможность работы с шиной FT-CAN используя трансиверы High-Speed CAN и соблюдая ряд условий.
Подробнее в нашей статье о FT-CAN – ссылка.

Fault tolerant CAN обычно используется для низкоскоростного обмена между блоками управления относящимися к сегменту сети Салон\Комфорт\Мультимедиа.

ВАЖНО: При подключении к шине Faul tolerant CAN, подключать терминальный резистор 120 Ом между линиями CAN-High и CAN-Low НЕ НУЖНО !

3 Single Wire CAN или SW-CAN

Однопроводный вариант шины CAN. Работает на скорости 33.333 кбит\с

Подключение панели с can шиной

Используется специальный тип трансиверов. Для того что бы подключиться к такому варианту шины CAN необходимо линию CAN-High анализатора подключить к шине SW-CAN а линию CAN-Low к массе\земле.

  • Свежие записи
    • Нужно ли менять пружины при замене амортизаторов
    • Скрипят амортизаторы на машине что делать
    • Из чего состоит стойка амортизатора передняя
    • Чем стянуть пружину амортизатора без стяжек
    • Для чего нужны амортизаторы в автомобиле


    🎬 Видео

    Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать

    Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.

    Кан шина, что это? Поймет школьник! принцип работыСкачать

    Кан шина, что это? Поймет школьник! принцип работы

    Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать

    Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus network

    поиск нерабочей can шины, часть дваСкачать

    поиск нерабочей can шины, часть два

    Урок №18. Цифровые интерфейсы современного автомобиля: шины данных CAN и LINСкачать

    Урок №18. Цифровые интерфейсы современного автомобиля: шины данных CAN и LIN

    Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать

    Поиск уровня топлива в CAN шине Toyota Camry 2017

    Can Bus - что это такое ? Зачем нужен ? Как настроить ?Скачать

    Can Bus - что это такое ? Зачем нужен ? Как настроить ?

    MCP2515, контроллер CAN шины с интерфейсом SPIСкачать

    MCP2515, контроллер CAN шины с интерфейсом SPI

    Панель приборов с навигацией CAN на Калину 1Скачать

    Панель приборов с навигацией CAN на Калину 1

    CAN ШИНА || КАК ПОДКЛЮЧИТСЯ К АВТО? || КАК ОТПРАВЛЯТЬ ПАКЕТЫ? || ЧТО МОЖНО ПРОЧИТАТЬ? || RM3Скачать

    CAN ШИНА || КАК ПОДКЛЮЧИТСЯ К АВТО? || КАК ОТПРАВЛЯТЬ ПАКЕТЫ? || ЧТО МОЖНО ПРОЧИТАТЬ? || RM3

    LIN шина - пример работы. LIN bus exampleСкачать

    LIN шина - пример работы. LIN bus example

    Как управлять автомобилем через CAN-шину?Скачать

    Как управлять автомобилем через CAN-шину?

    Панель приборов Приора2 на Приору1 без Кан ШиныСкачать

    Панель приборов Приора2 на Приору1 без Кан Шины

    Панели приборов ИТЕЛМА с навигацией Калина, Приора, Приора CAN, ElladaСкачать

    Панели приборов ИТЕЛМА с навигацией Калина, Приора, Приора CAN, Ellada

    CAN. Подключение к CAN-шинеСкачать

    CAN. Подключение к CAN-шине
Поделиться или сохранить к себе:
Технарь знаток