Что такое can hacker
CAN-Hacker 3.2 Начало работы
Пожалуйста, прочитайте этот материал полностью!
Установка драйвера
Перед началом работы с устройством необходимо установить драйвер виртуального COM порта STM, если он не был установлен ранее.
Скачать
После установки драйвера и подключения интерфейса к компьютеру в диспетчере устройств в разделе Порты должно появиться устройство “STM Virtual Com Port”. Порту будет присвоен номер, например COM3, как на скриншоте ниже. Номер порта будет необходимо ввести в программе CARBUS Analyzer при подключении к интерфейсу, поэтому запомните этот номер.
Возможные проблемы при установки драйвера и методы их решения
Проблемы при установке драйвера могут возникать на старых версиях Windows XP и Windows 7. При этом в диспетчере интерфейс определяется как виртуальный COM порт, но при попытке соединиться с ним, программное обеспечение зависает, либо выдает ошибку. В этом случае обратите внимание на, что на нашем сайте доступны для загрузки два варианта драйверов, и необходимо попробовать установить версию драйвера отличную от той, которая была установлена в первую очередь. Как правило это помогает решить проблему.
Вторая проблема может заключаться в низкой скорости работы интерфейса. В этом случае принимаемые пакеты отображаются с явной задержкой. Это может является следствием того, что на компьютере устаревший контроллер USB. Решить проблему поможет использование внешнего USB хаба (разветвителя), который согласует размер пакетов интерфейса и USB контроллера материнской платы компьютера.
Для работы с интерфейсом CAN-Hacker 3.2 в качестве анализатора шин CAN и LIN необходимо скачать программное обеспечение CARBUS Analyzer на странице СКАЧАТЬ.
Затем распаковать скачанный архив.
В архиве находится как сама программа CARBUS Analyzer, так и утилита для обновления прошивок UBT (папка UBT) с папка с набором актуальных прошивок (UBT\Firmware files)
Настройка программы CARBUS Analyzer и интерфейса для работы с шиной CAN
Если Вы новичок в работе с шиной CAN, обязательно прочтите материал по ссылке.
В меню Settings, в выпадающем списке Device type выбрать CAN_Hacker v 3.x
В выпадающем списке Device mode необходимо выбрать режим работы интерфейса. Доступные режимы:
Настройка каналов CAN
Настройка каналов CAN осуществляется на вкладках Channel 1: CAN и Channel 2: CAN. Эти вкладки становятся видимой после выбора режима интерфейса для работы с шиной CAN.
Channel baudrate – задает скорость работы CAN шины.
Флаг Listen only mode – переводит интерфейс в режим Listen only, в котором теряется возможность отправки пакетов, но при приеме передаваемых по шине пакетов интерфейс не выставляет на шине флаг подтверждение приема ACK, что делает интерфейс невидимым для других устройств на шине.
В случае если тип интерфейса определен неверно или в него загружена устаревшая прошивка, то появится сообщение Invalid Device type
Подключение к CAN шине
Подключение к CAN шине осуществляется при помощи поставляемого с интерфейсом кабеля
Назначение проводов:
Желтый с черной полосой – CAN-Low канал 1
Желтый с белой полосой– CAN-High канал 1
Оранжевый с черной полосой – CAN-Low канал 2
Оранжевый с белой полосой – CAN-High канал 2
Назначение переключателей на плате
DIP переключатель на плате устройства служит для подключения резисторов терминаторов 120 Ом между линиями CAN-High и CAN-Low. В положении ON резисторы подключены.
При подключении к однопроводным шинам CAN (SWCAN – Single wire CAN, GMLAN) необходимо провод CAN-Low подключить на массу (GND) исследуемого автомобиля или блока управления, а провод CAN-High на линию SWCAN\GMLAN.
Если настройки CAN произведены верно, физическое подключение к шине верно и на шине присутствует обмен данными то после нажатия кнопки Connect в окне приема отобразятся данные передаваемые по шине CAN.
Подробное описание работы с программой CARBUS Analyzer в качестве анализатора CAN шины Вы найдете на отдельной странице – ссылка.
Работа с шиной LIN
(Должен быть установлен и активирован LIN адаптер )
Для работы с шиной LIN необходимо перевести интерфейс CAN-Hacker 3.2 в режим работы анализатора шины LIN. Для этого необходимо:
После выбора типа и режима интерфейса необходимо:
Параметр LIN CRC Type определяет тип используемой методики расчета контрольной суммы при работе с шиной LIN. На способность интерфейса принимать пакеты этот параметр не влияет. В случае если тип контрольной суммы определен неверно, то при передачи пакетов через интерфейс, принимающая сторона будет эти пакеты игнорировать.
Подключение к шине LIN осуществляется при помощи поставляемого с опцией анализатора LIN кабеля.
Назначение проводов LIN кабеля:
Красный – +12 В
Черный – Масса (GND)
Голубой – шина LIN
Либо по схеме:
Внимание! Подключение к шине LIN исследуемого устройства или автомобиля требует обязательного подключения массы (GND) и напряжения питания +12 В.
Если подключение и настройки сделаны верно и изучаемая шина LIN активна, т.е. происходит обмен данными между Master и Slave устройством, либо поступают запросы от Master узла, то в окне приема отобразятся передаваемые по шине LIN данные.
Подробное описание работы с программой CARBUS Analyzer в качестве анализатора LIN шины Вы найдете на отдельной странице – ссылка.
Новичку о подключении к CAN шине
Для работы с CAN шиной автомобиля необходимо знать:
В автомобиле может быть более одной CAN шины. Для каждого функционального сегмента автомобиля выделяется своя сеть CAN. Выделенные сети могут работать на разных скоростях.
Скорости работы CAN шины
CAN на разных автомобилях и в разных сегментах сети может работать на разных скоростях.
Названия сегментов сети: Мотор, Шасси, Комфорт, Салон – условны! У Каждого автопроизводителя свои названия этих участков сети!
Сегментация CAN шины по функциональному назначению
Схема ниже изображена в общем виде для упрощения понимания роли Гейтвея. Количество CAN шин и варианты включения блоков управления к тому или другому сегменту сети могут отличаться.
Реализации CAN на уровне электрических сигналов
CAN шина может быть реализована физически тремя способами:
1 ISO11898-2 или CAN-High Speed.
Классическая витая пара нагруженная с обоих концов резисторами 120 Ом.
В этом случае уровни на шине CAN выглядят так:
2 ISO11898-3 или CAN-Low Speed или Faut Tolerant CAN
В этом варианте используется та же витая пара, но линии CAN-Low и CAN-High подтянуты к напряжению питания и массе соответственно.
Подробное описание FT-CAN по ссылке Такой вариант CAN шины способен переключаться в однопроводный режим в случае повреждения одной из линий. Работает на скоростях до 250 кбит\с.Уровни сигнала на шине отличаются от High Speed CAN, при этом не теряется возможность работы с шиной FT-CAN используя трансиверы High-Speed CAN и соблюдая ряд условий.
Подробнее в нашей статье о FT-CAN – ссылка.
Fault tolerant CAN обычно используется для низкоскоростного обмена между блоками управления относящимися к сегменту сети Салон\Комфорт\Мультимедиа.
3 Single Wire CAN или SW-CAN
Однопроводный вариант шины CAN. Работает на скорости 33.333 кбит\с
Используется специальный тип трансиверов. Для того что бы подключиться к такому варианту шины CAN необходимо линию CAN-High анализатора подключить к шине SW-CAN а линию CAN-Low к массе\земле.
CAN Hacker 3.2
Универсальный двухканальный анализатор CAN шины
Технические характеристики:
Интерфейс CAN-Hacker 3.2 поставляется без корпуса, поэтому будьте аккуратны при работе с ним. Прибор может выйти из строя от воздействия статического электричества и при работе с компьютерами с неисправными источниками питания или зарядными устройствами. Гарантия на бескорпусные приборы не предоставляется, но содействие в ремонте оказывается.
Прилагаемый CAN кабель
Назначение контактов основного разъема

Назначение переключателей
DIP переключатель на плате устройства служит для подключения резисторов терминаторов 120 Ом между линиями CAN-High и CAN-Low. В положении ON резисторы подключены.
CAN-Hacker 3.2 поможет решать следующие задачи:
Все эти возможности окажут неоценимую поддержку в процессе ремонта автомобилей, а так же во время установки и разработки дополнительного охранного, телематического и навигационного оборудования для любой подвижной техники.
Поставляемое программное обеспечение:
CARBUS Analyzer – программа анализатор шины CAN и LIN.
UBT – программа для загрузки прошивок в интерфейс и активации опций.
Дополнительные опции:
Поддерживаются следующие дополнительные опции:
Активация доп. опций осуществляется при помощи программы UBT – инструкция
Меры предосторожности
Внимание! CAN-Hacker 3.2 – это устройство без корпуса! Следует избегать следующих условий использования:
Дополнительные опции для интерфейсов
Наши интерфейсы способны реализовывать не только свой базовый функционал связанный с анализом CAN сетей, но и позволяют решать другие задачи, например:
Базовый функционал интерфейса реализуется с помощью базовой прошивки. Базовая прошивка эта та прошивка которая поставляется при покупке выбранного интерфейса.
Часть опций предполагает использование дополнительного аппаратного обеспечения. а часть нет. Например, для работы с анализатором шины LIN и интерфейсом CAN-Hacker 3.x необходимо установить дополнительный модуль – адаптер LIN. Для интерфейса CH-OBD.M02 это не требуется, поскольку он уже имеет на борту интерфейс LIN.
CAN-Hacker 3.x с установленным модулем LIN
Каждая дополнительная опция представляет собой комплекс прошивки и программы верхнего уровня. Для работы с бесплатными опциями достаточно просто загрузить соответствующую ей опциональную прошивку в интерфейс и запустить программу. Для платных опций необходимо произвести активацию опцию при помощи ключа. Ключ предоставляется при покупке опции.
Загрузка прошивок и их активация производится с помощью утилиты UBT.
Все актуальные прошивки находятся как в архивах со скачиваемым программным обеспечением, так и в архиве с утилитой UBT.
На рисунке вы видите содержимое папки утилиты UBT, В подкаталоге Firmware files находятся все актуальные прошивки.
Хакаем CAN шину авто. Виртуальная панель приборов
В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.
В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).
Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.
В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.
CAN сниффер из Arduino Uno
Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.
Схема подключения следующая:
Для прослушивания трафика использовал анализатор CanHackerV2 и прошивку arduino-canhacker для Arduino, которая реализует API совместимое с этой программой. Прошивка в гите https://github.com/autowp/arduino-canhacker.
CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.
Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
Описание VCDS с официального сайта ru.ross-tech.com:
Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.
Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.
Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.
В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:
Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.
OBD2 штекер использовал от старого ELM327 адаптера.
Используются контакты: CAN_L, CAN_H, +12, GND.
Тесты в машине прошли успешно и теперь нужно было все собрать. Плату дисплея, Raspberry Pi и блок питания разместил на куске черного пластика, очень удачно подобрал пластмассовые втулки, с ними ничего не болтается и надежно закреплено.
Местом установки выбрал бардачок на торпедо, которым я не пользуюсь. По примеркам в него как раз помещается весь бутерброд.
Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.
Софт панели приборов на Python и Kivy (UI framework)
Параллельно со сборкой самой панели приборов я вел разработку приложения для отображения информации с датчиков. В самом начале я не планировал какой либо дизайн.
Первая версия панели приборов
По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.
Вторая версия панели приборов
Продолжив поиски более современного дизайна я обратил внимание какие цифровые приборки делают автопроизводители и постарался сделать что-то похожее.
Третья версия панели приборов
Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.
Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.
Алгоритм работы следующий, используется 3 потока:
Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!
Видео работы цифровой панели приборов на базе Raspberry Pi
Приложение на телефон Виртуальная панель приборов
Для телефона написал приложение — виртуальная панель приборов, данные от машины передаются через ELM327 Wi-Fi адаптер. Адаптер подключается в OBD2 разъем, делает запросы по CAN шине и возвращается ответы в приложение по Wi-Fi.
Приложение VAG Virtual Cockpit уже в AppStore. Пока, что только под iPhone/iPad, но Android версия планируется. Приложение решил сделать платным с минимальной символической стоимостью.
Если есть желание поддержать проект, то вот ссылка на приложение, принимаю любые замечания и предложения!
VAG Virtual Cockpit