Подключение к can шине газель

Добавил пользователь Валентин П.
Обновлено: 20.09.2024

CAN С (Привод и ходовая часть)
К12 — Выключатель зажигания (EZS)
К13 — Приборная доска (KI)
К24 — Электронное управление коробки передач (EGS или KGS)
К25 — Блок управления двигателя (MSG)
К26 — Электронный блок селектора передач (EMW)
К27 — Распределитель CAN Класс-C RBA левый
К28 — Электронная противозаносная система (ESP)

Не включённые в сеть SG
К29 — Автоматическая регулировка дальности света (ALWR)
К30 — TV-тюнер

D2B — (Аудио/Связь/Навигация)
Оптоволоконный кабель
К14 — COMMAND/аудио 10/аудио 30/аудио 30 APS
К31 — Телефонная система (MINNA, аварийный вызов)
К32 — Устройство голосового управления Linguatronic (SBS)
К33 — Контроллер мобильного телефона (интерфейс)
К34 — Усилитель звука
К35 — CD-чейнджер

Показаны не все

A2 — Радиоприёмник или магнитола
A2/6 — CD чейнджер
A40/3 — Дисплей и блок управления функционирования системы COMAND

Отдельные блоки управления объединены друг с другом в общую сеть и могут обмениваться данными.

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

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

Преимущества

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

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

По сравнению со стандартной кабельной разводкой шина данных обеспечивает:

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

Передача данных осуществляется с дублированием по обоим проводам, причём логические уровни шины данных имеют зеркальное отображение (то есть, если по одному проводу передаётся уровень логического нуля (0), то по другому проводу передаётся уровень логической единицы (1), и наоборот).

Двухпроводная схема передачи используется по двум причинам: для выявления ошибок и как основа надёжности.

Если пик напряжения возникает только на одном проводе (например, вследствие проблем с ЭМС (электромагнитная совместимость)), то блоки-приёмники могут идентифицировать это как ошибку и проигнорировать этот пик напряжения.

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

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

Формат пакета данных

В обычном режиме передачи пакеты данных имеют следующие конфигурации блоков (фреймы):

- стандартный формат;
- расширенный формат.

В настоящее время DaimlerChrysler использует только стандартный формат.

Приоритеты

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

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

Идентификатор, соответствующий меньшему двоичному числу, имеет более высокий приоритет, и наоборот.

Если передаваемый первым блоком-передатчиком рецессивный бит перезаписывается доминантным битом другого блока-передатчика, то первый блок-передатчик теряет своё право передачи (арбитраж) и становится блоком-приёмником.

Первый блок управления (N I) утрачивает арбитраж с 3-го бита.

Третий блок управления (N III) утрачивает арбитраж с 7-го бита.

Распознавание ошибок

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

Механизмы на уровне Data Frame

Frame Check

Этот механизм проверяет структуру передаваемого блока (фрейма), то есть перепроверяются битовые поля с заданным фиксированным форматом и длина фрейма.

Распознанные функцией Frame Check ошибки маркируются как ошибки формата.

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

Типы шин CAN

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

Интерфейс двух шин данных CAN расположен в блоке управления электронного замка зажигания (N73). Этот блок управления также представляет интерфейс между блоками управления шины данных CAN и диагностическим разъемом DLC (X11/4).

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

Шина данных CAN двигательного отсека активирована только при включённом зажигании.

К шине CAN-С подключено 7 блоков управления.

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

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

Так почему бы не использовать эти данные, раз уж они уже существуют в электронном виде в системе мониторинга? Разумеется, в зависимости от автомобиля, набор параметров может быть довольно ограничен.

Это вторая статья по подключению дополнительного оборудования к трекеру Локарус в цикле. В первой мы рассказывали про контроль топлива автомобиля с газовым оборудованием.

Статья дополняют друг друга, на Газели мы пошли дальше и кроме ГБО подключили ещё и CAN шину.

Трекер который мы используем в этой статье: Locarus 702x

Подключение спутникового трекера и его настройка

Первым делом подключаем ГБО, так как было описано в предыдущей статье. Для полноты картинки напомним настройки подключения.

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

Настройки подключения газового оборудования к спутниковому трекеру

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

Теперь подключаемся к CAN шине. Само подключение простое, тем более что Газель работает по стандарту FMS. Базовый набор параметров на следующей картинке.

Параметры: обороты двигателя, скорость, температура двигателя, круиз-контроль текущий расход топлива

Настрой CAN шины для автомобиля Газель в спутниковом трекере

Раскидываем имеющиеся параметры по свободным виртуальным входам для того чтобы обработать их в диспетчерской программе.

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

Текущий расход топлива, не уровень. Но это то что поможет настроить нас учет расхода газа или бензина ГЛОНАСС-трекером через CAN шину.

Настройка нестандартных пакетов CAN шины для расхода газа

Какие-то из этих байтов могут соответствовать стандарту, а какие-то нет. На первой странице настройки трекера перечислены значения которые задаются стандартом FMS. Мы изучили заранее снятый дамп, нашли там значения которые есть именно в этой машине, и передаём только то, что реально есть в шине.

Но при изучении дампа мы увидели ещё одно значение, которое не прописано в стандарте, но тем не менее передается в шине. Было предположение, что это уровень топлива. Предположение не подтвердилось, но для своих коллег и полноты изложения, я покажу как мы его настраивали.

Настройка чтения отдельного PGN в CAN шине

Настройка чтения отдельного PGN не по стандарту

Прибор настроен. Для упрощения экспериментов коллег прикладываем образец настроек трекера. Настройки сделаны для следующих физических входов:

A_IN1: клапан ГБО

A_IN3: уровень газа в баллоне с оптического датчика

Настройка подключения газового оборудования в диспетчерской программе

Переходим к настройке Locarus Informer. Посмотрите сколько данных мы получим в результате подключения всего лишь двух дополнительных проводов!

Бортовое напряжение. Аналоговый в дискретный. Обороты двигателя с CAN. Температура двигателя с CAN. Расход топлива с CAN. Скорость с CAN. Уровень газа. Включение ГБО. Расход бензина и расход газа.

Общий список данных в программе спутникового мониторинга

Для начала пробежимся про теме прошлой статьи, быстренько настроим подключение ГБО.

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

Отделяем работу на газе от работы на бензине

Настройка контроля газового клапана

Уровень газа в баллоне ГЛОНАСС трекер передает на третий вход.

Настройка датчика уровня газа

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

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

Отсечка бортового напряжение 13 вольт

Настройка датчика бортового напряжения

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

Настройка CAN для контроля расхода газа в программе

Переходим к самому интересному. Для начала просто добавляем все имеющиеся входы с данными.

Скорость

Скорость с CAN-шины

Обращаем внимание что это не скорость с системы мониторинга, а скорость с CAN шины. То есть та скорость которая будет показываться на спидометре. Можно например посмотреть как различается приборная и реальная скорость на 100 км/ч.

Показания температуры двигателя

Температура двигателя

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

Обороты двигателя из CAN шины

Обороты двигателя

А вот гораздо более интересные данные — показания оборотов двигателя. Можно смотреть как эксплуатируется машина, сколько она работает на холостых оборотах, насколько экономично ездит по трассе.

Обратите внимания что все эти параметры задаются сразу же в настройках датчика и появляются в интерфейсе сразу после его добавления. Ставим значения холостого хода — и получаем время работы на холостых за каждый рейс или день.

Внешний вид программы и данных по оборотам двигателя. Автоматически посчитано время работы на холостых оборотах.

Пример данных при подключенном датчике оборотов двигателя

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

Расход топлива по CAN шине

Датчик потребленного количества топлива

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

Учет расхода газа и бензина ГЛОНАСС-трекером через CAN шину

Но у нас же автомобиль работает на двух видах топлива, вспомнит тут внимательный читатель! Да, для этого мы и подключали клапан газового оборудования, ведь благодаря ему мы знаем на чём именно сейчас работает автомобиль. И можем подключить другой, чуть более сложный расчёт.

Счетчик расхода газа и бензина работающий на показаниях CAN шины и клапана включения ГБО

Автоматический подсчет расхода газа и бензина

Смотрите что в итоге получается! Благодаря клапану мы знаем на каком виде топлива работает автомобиль, поэтому всего-лишь два хронометража для замера норм, и мы будем знать сколько и какого топлива реально потребил автомобиль. И это достигается простым подключением всего трёх проводов.

Итоги подключения ГЛОНАСС трекера для работы с CAN

Ну и покажем итоговую картинку. Часть входных данных мы получаем с аналоговых входов, часть с CAN.

График изменения уровня газа в баллона автомобиля

Итоговый вид Locarus Informer с подключенными входами.

Маленькое пояснение. Мы не использовали для отчетов или виртуальных датчиков уровень газа с баллона, потому что он идет с ощутимыми дискретными уровнями. Это светлая кривая на графике. Но как вы видите по нему можно определять моменты заправки автомобиля и то, насколько был заправлен бак. С большими погрешностями, но тем не менее это работает. Это единственный недостаток.

Все остальное пригодно для целей автоматического учета. В результате подключения CAN шины к трекеру ГЛОНАСС мы получили большое количество параметров, которые можно использовать для дальнейшей автоматизации и построения интересных отчетов. Учет расхода газа ГЛОНАСС-трекером через CAN шину реален и вполне работает.

Для коллег выкладываем файл шаблона настроек подобного автомобиля для диспетчерской программы Locarus Informer.

На современных автомобилях применяются несколько сетевых шин обмена данными CAN (Controller Area Network) между модулями/блоками управления различных систем и контроллерами исполнительных устройств автомобиля.

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

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

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

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

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

Передача данных осуществляется с дублированием по обоим проводам, причем логические уровни шины данных имеют зеркальное отображение (то есть, если по одному проводу передается уровень логического нуля (0), то по другому проводу - уровень логической единицы (1), и наоборот).

Двухпроводная схема передачи используется по двум причинам: для контроля ошибок и как основа надежности.

Если пик напряжения возникает только на одном проводе, - например, вследствие проблем, связанных с электромагнитной совместимостью (ЭМС), - то блоки-приемники могут идентифицировать это как ошибку и проигнорировать данный пик.

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

Формат передачи данных

  • Стандартный формат;
  • Расширенный формат.

В настоящее время в системах обмена данными систем управления автомобилей компании Daimler Chrysler используется только стандартный формат.

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

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

Идентификатор, соответствующий меньшему двоичному числу, имеет более высокий приоритет, и наоборот.

Если передаваемый первым блоком-передатчиком рецессивный бит перезаписывается доминантным битом другого блока-передатчика, то первый блок-передатчик теряет свое право передачи (арбитраж) и становится блоком-приемником.

  • Механизмы на уровне Data Frame (кадр данных);
  • Механизмы на уровне битов.

Механизмы на уровне Data Frame

Этот механизм проверяет структуру передаваемого блока (кадра), то есть перепроверяются битовые поля с заданным фиксированным форматом и длина кадра.

Распознанные функцией Frame Check ошибки маркируются как ошибки формата.

Механизмы на уровне битов

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

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

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

Шина данных CAN двигательного отсека активирована только при включенном зажигании.

К шине CAN-С может быть подключено более 7 блоков управления.

Некоторые блоки управления, подключенные к шине данных CAN салона, активируются независимо от включения зажигания (например: система единого замка).

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

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

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

Диагностический разъем

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

Зачем нужна в машине CAN-шина

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

Далее наращивать объём оборудования простым добавлением управляющих и исполнительных устройств стало невозможно:

  • количество проводов в жгутах, их масса, объёмы и расход дорогостоящей меди стали превышать разумные пределы;
  • многие узлы, особенно датчики и первичные преобразователи, многократно дублировались, что необоснованно увеличивало затраты;
  • сложнейшие автомобили, особенно премиального класса, стали совершенно неподъёмными в обслуживании и диагностике даже для профильных сервисов из-за отсутствия стандартизации технических решений;
  • надёжность машин падала по мере роста количества заключённого в них оборудования, как по чисто объективным законам связи сложности и безотказности, так и из-за отсутствия времени на отработку многочисленных уникальных систем.


Решение должно было быть радикальным, и этот качественный скачок в развитии автомобильной электроники произошёл.

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


Автомобиль стал представлять собой сеть из микрокомпьютеров, каждый из которых обслуживал свою систему или отдельный узел.

Например, двигатель, коробку передач, узлы трансмиссии, блок климата и даже отдельные фонари наружного освещения или стеклоподъёмники. Уже не надо было тянуть к каждому устройству медные провода в огромном количестве через весь автомобиль.

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

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

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


Более того, системе не нужен единый обрабатывающий и управляющий сервер, все ресурсы распределены по микроконтроллерам.

Схема и место расположения КАН-интерфейса

Сеть имеет выход наружу через диагностический OBD разъём, где на этот счёт стандартом чётко определена пара контактов.


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


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

Принцип работы

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

Физически это витая пара, каждый из проводов которой является сигнальным. Работают они в противофазе, один поэтому называется CAN-High, второй – CAN-Low.

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

На концах витой пары имеется волновое согласование двумя терминальными резисторами по 120 Ом. Хотя встречаются и другие номиналы, но редко.

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

Далее идёт идентификация приоритетного устройства, которое должно передать свою информацию первым в случае конфликта во времени. Протокол стандартный, каждый бит посылки расписан в даташитах ISO.

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

Виды CAN-шин

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

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

Это не значит, что системы автономны. Они связаны между собой через шлюз, обычно находящийся в приборной панели. Низкоскоростная линия также имеет свои контакты в диагностическом разъёме, записанные в стандарт.

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

На низшем уровне могут работать ещё более простые шины, однопроводные и низкоскоростные. Они подключаются к общей CAN через свой контроллер.

Например, в двери могут стоять стеклоподъёмники, блок кнопок управления, различные датчики, всё это нет необходимости выводить на общую шину. Но и плодить множество проводов тоже. Используются простейшие контроллеры и однопроводная сеть.

Как подключиться и сделать диагностику автомобиля

Сканеры могут внедряться в протокол шины и анализировать её состояние, а также проходящую информацию. Можно использовать виртуальные устройства, эмулирующие отдельные блоки, а также создавать и передавать тестовые команды отдельным участникам сети.

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


До появления профессиональных CAN-анализаторов и тестеров пользовались скоростным запоминающим осциллографом и логическим анализатором.

Эти приборы тоже способны сохранять и предоставлять для изучения отдельные фреймы CAN, но в работе неудобны, требуют больших затрат времени.

Неисправности

Отказы шины обычно сводятся к нескольким типовым случаям:

  • пропадание питания отдельных устройств;
  • повреждения проводки и разъёмов;
  • отказ контроллеров.

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

Плюсы и минусы встроенных шин

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

CAN-шина всё это обеспечивает:

  • имеется автоматический контроль проходящей информации на ошибки;
  • дифференциальная передача сигналов и использование витой пары даёт хорошую скорость и защиту от помех;
  • стандартизация протоколов упрощает диагностику и поиск неисправностей;
  • построение системы приоритетов упрощает проектирование;
  • все устройства функционально закончены и универсальны.

Но со временем усугубляются и недостатки. Так, усложнение автомобилей привело к тому, что быстродействия даже самых последних версий уже не хватает.

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


Цель этой статьи — рассказать о моём опыте модификации автомобиля и экспериментах с шиной CAN.

Сначала я решил добавить фронтальную камеру в свой 2017 Chevrolet Cruze. Поскольку у автомобиля уже есть заводская камера заднего вида, то на высоком уровне нужно было выяснить две вещи:

  1. Способ передачи видео с фронтальной камеры, которую я добавлю.
  2. Способ отображения на экране картинки с камеры заднего вида в любое время.

Запуск на экране оказался более сложным, и после некоторого расследования я пришёл к выводу, что машина должна подавать сигнал от камеры заднего вида на экран через какую-то шину данных.

У Chevrolet две разные шины данных. Первая — это стандартная CAN, быстрая (500 Кбит/с) и надёжная, она используется для критических данных. Вторая — то, что GM называет LAN (GMLAN), более старая и медленная шина (33,3 Кбит/с), которая используется для данных, не связанных с безопасностью.

Мне нужен был способ прослушивать трафик по CAN, то есть снифер. Для этой цели невероятно полезно устройство PCAN.



Peak Can

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

Самая простая точка доступа — разъём OBD2. Я подключил Peak Can к шине GMLAN, запустил программное обеспечение — и сразу началось прослушивание трафика.

Впрочем, я не планировал постоянно ездить с ноутбуком. Нужен был способ автоматизировать эти функции — и здесь пригодилась Arduino. Возможность напрямую получать питание 12V в сочетании с большим количеством ресурсов и поддержки в интернете сделала этот выбор очевидным.

В дополнение к Arduino для завершения проекта мне понадобилось два компонента: модуль CAN и модуль реле. По сути, Arduino — это мозг, запускающий и выполняющий код. Модуль CAN предоставляет возможность взаимодействовать с шиной данных, а реле обеспечивает питание фронтальной камеры, а также действует как видеомикшер между ней и камерой заднего вида.



Модуль mcp2515 (сверху), Arduino Uno (посередине), модуль реле (снизу)

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

Прослушивание трафика через Arduino

Распознавание однократного нажатия кнопки

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

Распознавание двойного нажатия

И когда я привязал его к своим командам для управления дисплеем, у меня собралась довольно крутая небольшая утилита.

Двойное нажатие + команды

Теперь у меня была возможность включать и выключать дисплей, но оставалась одна проблема — что насчёт камеры заднего вида? Мне нужно было, чтобы они с фронтальной камерой работали вместе, словно их так настроили на заводе.

На блок-схеме я изобразил, как я это представляю.


Я быстро понял, что для такой системы нужно в любой момент времени знать состояние трёх переменных:

  • Модуль передней камеры: водитель включил или выключил его?
  • Дисплей камеры: изображение на дисплее включено или выключено?
  • Задний ход: автомобиль в реверсе или нет?

В конце концов, я добился успеха!

Активный мониторинг

Теперь я смог реализовать операционную логику, которая контролирует реле.

Управление через реле

На протяжении всего процесса я всё больше узнавал об Arduino и заметил, что версия Nano способна делать всё, что нужно, при этом у неё меньший размер и более низкая цена. Она идеально подходит для постоянной установки в автомобиль. Я разработал модель и распечатал на 3D-принтере корпус для размещения компонентов в качестве компактного блока для установки.



3D корпус


Наконец настал день, когда я увидел результаты. Хотя нужно ещё повозиться с таймингом, но было приятно видеть, что модуль корректно работает.

Включение/выключение режима парковки, включение/выключение фронтальной камеры, автоматическое переключение на камеру заднего вида и автоматическое переключение обратно

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


В будущем я планирую написать углублённый учебник о том, как добавить дополнительную функциональность к существующим кнопкам в вашем автомобиле, используя бесплатное программное обеспечение и компоненты.

Читайте также: