Как найти кан шину в автомобиле. CAN-шина автомобиля: что это такое и её принцип работы

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

История возникновения

Впервые понятие CAN-шина появилось в 80-х годах прошлого века. Тогда известная немецкая компания «БОШ» совместно с фирмой «Интел» разработала новый цифровой прибор для передачи данных, который назывался

Что она может?

Данная шина может соединить между собой все датчики, блоки и контроллеры, которые находятся в автомобиле. CAN может соединяться с иммоблайзером, системой SRS, ESP, электронным блоком управления двигателем, коробкой передач и даже подушками безопасности. Помимо этого, шина контактирует с датчиками подвески, и климат-контроля. Соединяются все эти механизмы в дуплексном режиме со до 1 Мбит/ с.

CAN-шина: описание и особенности прибора

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

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

Немаловажным является то, что данный инструмент может предопределять неполадки в функционировании оборудования машины и в некоторых случаях устранять их. Он практически не поддается воздействиям помех и имеет хорошую изоляцию контактов. CAN-шина имеет очень непростой алгоритм работы. Данные, которые передаются через нее битами, мгновенно превращаются в кадры. В качестве проводника информации служит 2-проводная витковая пара. Также существуют изделия из оптоволокна, однако они менее эффективны в эксплуатации, поэтому не так сильно распространены, как первые варианты. Реже всего встречается CAN-шина, передающая информацию через радиоканал или

Функциональность и быстродействие

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

Количество установленных датчиков на современных моделях автомобилей зачастую позволяет называть их «компьютерами на колесах». Дабы привести в порядок управление многочисленными электронными системами, была создана CAN-шина. Что это и каковы принципы ее работы, рассмотрим в данной статье.

Историческая справка

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

Однако постепенно машины все больше опутывались проводами, и в 1970-м году по степени напичканности различными датчиками они соперничали с самолетами. И чем больше приборов размещалось в автомобиле, тем очевиднее становилась необходимость рационализации цепей электропроводки.

Решение проблемы стало возможным с микропроцессорной революцией и проходило в несколько этапов:

  • В 1983 году немецкий концерн «Bosch» начал разработку нового протокола передачи данных для применения в автомобилестроительной отрасли;
  • Три года спустя на конференции в Детройте данный протокол был официально представлен широкой публике под названием «Сеть пространства датчиков» (Controller Area Network), или сокращенно по-английски CAN;
  • Практической реализацией германского изобретения занялись компании «Интел» и «Филипс». Первые прототипы датируются 1987 годом;
  • В 1988 году автомобиль БМВ 8-й серии стал первой сошедшей с конвейера машиной, на котором все датчики были организованы по технологии «КАН»;
  • Через три года «Бош» обновила стандарт и добавила новые характеристики;
  • В 1993 году стандарт «КАН» стал международным и получил классификатор ИСО;
  • В 2001 году каждое четырехколесное средство передвижения в Европе в обязательном порядке стало оснащаться КАН-шиной;
  • В 2012 году вышла новая версия шины: была повышена скорость передачи информации, а также организована совместимость с рядом новых устройств.

CAN-шина: принцип работы

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

Работу технологии можно разбить на несколько этапов:

  1. Фоновый режим - все узлы системы выключены, но на КАН-микрочип продолжает поступать электропитание. Уровень потребления энергии крайне мал и составляет крошечные доли миллиампер;
  2. Запуск - как только водитель поворачивает ключ зажигания (или нажимает на кнопку «Старт» для запуска двигателя - на некоторых моделях автомобилей), система буквально «просыпается». Включается режим стабилизации питания, поступающего на датчики;
  3. Активная работа - все контроллеры обмениваются необходимой (как диагностической, так и текущей) информацией. Уровень потребления электроэнергии возрастает на пиковых нагрузках до рекордных 85 миллиампер;
  4. Засыпание - как только выключается двигатель машины, датчики «КАН» мгновенно перестают работать. Каждый из узлов системы самостоятельно отключается от электрической сети и переходит в режим сна.

Что такое CAN-шина в автомобиле?

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

В современных автомобилях в единую сеть объединены датчики со следующих устройств:

  • Мотор;
  • Коробка переключения передач;
  • Эирбэги (подушки безопасности);
  • Антиблокировочная система;
  • Усилитель рулевого управления;
  • Зажигание;
  • Приборная панель;
  • Шины (контроллеры, определяющие уровень давления);
  • «Дворники» на лобовом стекле;
  • Мультимедийная система;
  • Навигация (ГЛОНАСС, GPS);
  • Бортовой компьютер.

Применение в других отраслях

Легкость и простота технологии «CAN» раскрывают возможности ее применения не только для «железных коней». Шина используется также в таких областях:

  • Производство велосипедов. Японская марка «Симано» анонсировала в 2009 году велосипед с многоуровневой системой управления механизма переключения скоростей на базе CAN. Эффективность этого шага была настолько очевидной, что по стопам «Симано» решили пойти и другие фирмы - «Маранц» и «Байон-икс». Последний производитель использует шину для системы прямого привода;
  • Известна реализация так называемого «умного дома» по принципу CAN-шины. Множество устройств, которые могут решать определенные задачи без участия людей (автоматический полив травы на газоне, термостат, система видеонаблюдения, управление освещением, климат-контроль и т. д.) объединены в единую систему передачи данных. Правда, специалисты находят применение сугубо автомобильной технологии в человеческом жилище достаточно сомнительным. В числе слабых сторон такого шага - отсутствие единого международного стандарта КАН для «умных домов».

Преимущества и недостатки

«КАН-шина» ценится в машиностроении за такие положительные качества:

  • Быстродействие: система приспособлена к работе в условиях жесткого цейтнота;
  • Относительная простота встраивания в машину и небольшой уровень затрат на проведение монтажных работ;
  • Повышенная толерантность к помехам;
  • Многоуровневая система контроля, позволяющая избежать многих ошибок в процессе выхода-входа данных;
  • Разброс скоростей работы позволяет приспособиться к практически любой ситуации;
  • Повышенный уровень безопасности: блокировка неавторизованного доступа извне;
  • Многообразие стандартов, а также компаний-производителей. Палитра имеющихся на рынке шин позволяет найти вариант даже для самой дешевой машины.

Несмотря на обилие преимуществ, технология CAN не лишена и ряда слабых сторон:

  • Объем информации, который доступен для одновременной передачи в «пакете данных», достаточно ограничен для современных требований;
  • Значительная часть передаваемых данных имеет служебное и техническое назначение. На собственно полезные данные приходится мизерная часть трафика в сети;
  • Протокол высшего уровня совершенно не стандартизирован.

Компания «Бош» изобрела не только свечу зажигания и топливный фильтр, но и своеобразный «интернет» для датчиков автомобиля под названием CAN-шина. Что это за стандарт в области связывания воедино всех контроллеров в единую нейросеть , стало известно около 30 лет назад.

Видео: как работает can-шина в авто

В данном ролике механик Артур Камалян расскажет, для чего используется can-шина в автомобиле и как к ней подключиться:

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

Can шина – имеет ли она что-то общее с обычными шинами и для чего нужна

ВНИМАНИЕ! Найден совершенно простой способ сократить расход топлива! Не верите? Автомеханик с 15-летним стажем тоже не верил, пока не попробовал. А теперь он экономит на бензине 35 000 рублей в год!

Услышав такое определение, как «CAN шина», неопытный водитель подумает что это ещё один вид автомобильной резины. Но на самом деле, к обычным шинам это устройство не имеет никакого отношения. Это устройство создавалось для того, чтобы не было необходимости устанавливать в машине кучу проводов, ведь управление всеми системами машин должно вестись из одного места. Can шина даёт возможность сделать салон автомобиля комфортным для водителя и пассажиров, ведь при её наличии не будет большого количества проводов, позволяет вести управление всеми системами машины и подключать в удобный способ дополнительное оборудование – трекеры, сигнализации, маяки, секретки и другое. В машина старого образца ещё нет такого приспособления, это доставляет много неудобств. Цифровая шина лучше справляется с поставленными на неё задачами, а стандартная система – с кучей проводов, является сложной и неудобной.

Когда была разработана цифровая CAN шина и какое её назначение

Разработка цифровой шины началась ещё в двадцатом веке. Ответственность за этот проект взяли на себя две компании – INTEL и BOSCH.
После некоторых совместных усилий, специалистами этих компаний был разработан сетевой индикатор – CAN. Это была проводная система нового образца, по которой передаются данные. Такую разработку назвали шиной. Она являет собой два витых провода достаточно крупной толщины и по ним передаётся вся необходимая информация для каждой из систем автомобиля. Есть и шина, которая представляет из себя жгут проводов – её называют параллельной.

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

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

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

Can шина – параметры скорости и особенности передачи данных

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

  • общая скорость передачи информационных потоков по цифровой шине –1 мб/с;
  • скорость передачи переработанной информации между блоками управления автомобиля – 500 кб/с;
  • скорость поступления информации к системе «Комфорт» — 100 кб/с.

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

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

Могут ли возникать проблемы в работе кан шины

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

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

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

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

Какие системы входят в современную Can шину автомобиля

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

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

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

CAN шина, как подключается автосигнализация к цифровой шине

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

  1. Автосигнализация по стандартной схеме подключается ко всем точкам автомобиля.
  2. Владелец транспортного средства ищет оранжевый, толстый провод – он ведёт к цифровой шине.
  3. Адаптер сигнализации подключается к проводу цифровой шины автомобиля.
  4. Производятся необходимые закрепляющие действия –установка системы в надёжном месте, изоляция проводов, проверка правильности произведённого процесса.
  5. Настраиваются каналы для работы с системой, задаётся функциональный ряд.

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

Устал платить за штрафы? Выход есть!

Забудьте о штрафах с камер! Абсолютно легальная новинка - НАНОПЛЁНКА, которая скрывает ваши номера от ИК камер (которые стоят по всем городам). Подробнее

  • Абсолютно легально (статья 12.2.4).
  • Скрывает от фото-видеофиксации.
  • Устанавливается самостоятельно за 2 минуты.
  • Не видна человеческому глазу, не портится из-за погоды.
  • Гарантия 2 года,

Администратор

14600

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

Одним из подобных источников, который, как нам показалось, вполне подходящим образом иллюстрирует принципы работы CAN-шины, стал видеоролик-презентация учебного продукта CANBASIC компании Igendi Engineering (http://canbasic.com) .

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

Мы начнем с основ построения сети CAN-шины. На схеме приведен автомобиль с его системой освещения.



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



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



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

Автомобиль на указанном виде содержит четыре модуля управления и четко отражает построение учебной системы (платы) CANBASIC



В вышеописанном указано четыре узла шины (CAN-узла).

Передний модуль контролирует передние световые приборы.

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

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

Задний узел контролирует задние световые приборы.

На тренировочной доске CANBASIC вы можете увидеть маршрутизацию (расположение) трех сигналов: «Питание», «CAN-Hi» и «земли», соединяющихся в контрольном модуле.



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



Плата CANBASIC уже содержит в себе OBD-USB конвертер и может быть напрямую подключена к ПК.

Питается плата от интерфейса USB, поэтому дополнительные кабели не нужны.



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

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

Эти данные передаются последовательно. Вот пример.

Человек с лампой, передатчик, хочет отправить какую-то информацию человеку с телескопом, получателю (приемнику). Он хочет передать данные.



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



Это выглядит так:







Спустя 80 секунд:



Теперь 8 бит данных были переданы со скоростью 0,1 бит в секунду (т.е. 1 бит в 10 секунд). Это называется последовательной передачей данных.



Для использования этого подхода в автомобильном приложении интервал времени сокращается с 10 секунд до 0,000006 секунды. Для передачи информации посредством изменения уровня напряжения на шине данных.



Для измерения электрических сигналов шины КАН используется осциллограф. Две измерительных площадки на плате CANBASIC позволяют измерить этот сигнал.



Чтобы показать полное CAN-сообщение разрешение осциллографа уменьшается.



В результате одиночные CAN-биты больше не могут быть распознаны. Для решения этой проблемы CANBASIC-модуль оснащен цифровым запоминающим осциллографом.

Мы вставляем модуль CANBASIC в свободный разъем USB, после чего он будет автоматически обнаружен. Программное обеспечение CANBASIC можно запустить прямо сейчас.



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

Чтобы объяснить другие части CAN-сообщения мы раскрашиваем CAN-кадр и прикрепляем на него подписи с описанием.



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

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

Синяя область позволяет задать CAN-сообщение для удаленного запроса. Это означает, что будет ожидаться ответ от другого CAN-узла. (Разработчики системы сами рекомендуют не пользоваться удаленными запросами по ряду причин приводящих к глюкам системы, но об этом будет другая статья.)

Многие системы с шиной CAN защищены от помех вторым каналом CAN-LO для передачи данных, который является инвертированным относительно сигнала CAN-HI (т.е. идет тот же сигнал, только с обратным знаком).



Шесть последовательных битов с одинаковым уровнем определяют конец CAN-кадра.



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



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



С помощью полей ввода могут быть заданы все данные КАН-кадра и поэтому каждое КАН-сообщение может быть отправлено.

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



Текст описания показывает, что сигнал поворота будет управляться с помощью идентификатора «2С1» и бит данных 0 и 1. Все биты данных сбрасываются на 0.



Идентификатор установлен в значение «»2С1». Для активации сигнала поворотов бит данных должен быть установлен с 0 на 1.



В режиме «в салоне» вы можете управлять всем модулем с помощью простых щелчков мыши. Данные CAN устанавливаются автоматически в соответствии с желаемым действием.

Лампы поворотников могут быть установлены на ближний свет для работы в качестве ДХО. Яркостью будет управлять широтно-импульсная модуляция (ШИМ), в соответствии с возможностями современной диодной техники.

Теперь мы можем активировать фары ближнего света, противотуманные фары, стоп-сигналы и фары дальнего.



С отключением ближнего света противотуманные фары также отключаются. Логика управления световой системой CANBASIC соответствует автомобилям марки Volkswagen. Особенности зажигания и «возвращения домой» также включены.

С сигнальным узлом вы можете считывать сигнал датчика после инициирующего удаленного запроса.

В режиме удаленного запроса второй CAN-кадр будет принят и показан ниже отправленного CAN-кадра.



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



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

Как уже было показано, различные части CAN-кадра могут быть скрыты.



Кроме того поддерживается скрытие каждого бита в КАН-кадре.

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

Изменение температуры кондиционера Ford Fusion при помощи команд через шину CAN.

Ariel Nuñez
Изменение температуры кондиционера Ford Fusion при помощи команд через шину CAN.


Рисунок 1: Как при помощи приложения управлять ключевыми функциями автомобиля?
Недавно я вместе со своими друзьями из компании Voyage работал над реализацией программного управления системой кондиционирования в Ford Fusion. На данный момент Voyage занимается разработкой бюджетных самоуправляемых автомобилей. Конечная цель: чтобы каждый смог вызвать автомобиль к своей входной двери и безопасно путешествовать туда, куда вздумается. В компании Voyage считают крайне важной возможностью предоставление доступа к ключевым функциям автомобиля с заднего кресла, поскольку не за горами тот день, когда работа водителя будет полностью автоматизирована.
Зачем нужна шина CAN
Современные автомобили используют множество систем управления, которые во многих случаях функционируют подобно микро-службам в веб-разработке. Например, подушки безопасности, тормозные системы, регулирование скорости движения (круиз контроль), электроусилитель руля, аудиосистемы, управление окнами и дверями, подстройка стекл, системы зарядки для электрических автомобилей и т. д. Эти системы должны уметь осуществлять коммуникацию и считывать параметры друг друга. В 1983 в компании Bosch началась разработка шины CAN (Controller Area Network; Локальная сеть контролеров) для решения этой сложной задачи.
Можно сказать, что шина CAN представляет собой простую сеть, где каждая система автомобиля может считывать и отсылать команды. Эта шина интегрируется все сложные компоненты элегантным образом, что дает возможность реализовать всеми любимые функции автомобиля, которыми мы пользуемся.


Рисунок 2: Впервые шина CAN стала использоваться в 1988 году в БМВ 8 серии
Самоуправляемые автомобили и шина CAN
Поскольку интерес к разработке самоуправляемых автомобилей серьезно вырос, соответственно, словосочетание «шина CAN» также становится популярным. Почему? Большинство компаний, создающих самоуправляемых автомобилей, не занимаются производством с нуля, а пытаются научиться программно управлять машинами после выхода с конвейера фабрики.
Понимание внутреннего устройства шины CAN, используемой в автомобиле, позволяет инженеру формировать команды при помощи программного обеспечения. Самые нужные команды, как вы можете догадаться, связаны с управлением рулем, ускорением и торможением.


Рисунок 3: Введение в LIDAR (ключевой сенсор самоуправляемого автомобиля)
При помощи сенсоров наподобие LIDAR (light detecting and ranging; оптическая локационная система) машина способна смотреть на мир как суперчеловек. Затем компьютер внутри автомобиля на базе полученной информации принимает решения и посылается команды в шину CAN для управления рулем, ускорение и торможением.
Не каждый автомобиль способен стать самоуправляемым. И по некоторым причинам компания Voyage выбрала модель Ford Fusion (подробнее о причинах можно почитать в этой статье).
Исследование шины CAN в Ford Fusion
Перед началом исследования систем кондиционирования воздуха в Ford Fusion я открыл мою любимую книгу The Car Hacker’s Handbook . Перед погружением в суть вопроса заглянем в Главу 2 , где описываются три важные концепции: протоколы шины, шина CAN и CAN-фреймы.
Шина CAN
Шина CAN начала использоваться в американских легковых машинах и небольших грузовиках с 1994 года и с 2008 года в обязательном порядке (в европейских автомобилях с 2001 года). В этой шине предусмотрено два провода: CAN high (CANH) и CAN low (CANL). Шина CAN использует дифференциальный сигналинг, суть которого заключается в том, что при поступлении сигнала на одном проводе вольтаж повышается, а на другом понижается на одну и ту же величину. Дифференциальный сигналинг используется в средах, которые должны быть малочувствительны к шуму, например, в автомобильных системах или при производстве.


Рисунок 4: Необработанный сигнал шины CAN, отображаемый на осциллографе
С другой стороны, пакеты, передаваемые по шине CAN, не стандартизированы . Каждый пакет содержит 4 ключевых элемента:

  • Арбитражный ID (Arbitration ID ) представляет собой широковещательно сообщение, идентифицирующее устройство, которое пытается начать коммуникацию. Любое устройство может отсылать несколько арбитражных ID. Если в единицу времени по шине отсылаются два CAN-пакета, пропускается тот, у которого ниже арбитражный ID.
  • Расширение идентификатора (Identifier extension ; IDE ) – в случае с шиной CAN стандартной конфигурации этот бит всегда равен 0.
  • Код длины данных (Data length code ; DLC ) определяет размер данных, который варьируется от 0 до 8 байт.
  • Данные. Максимальный размер данных, переносимых стандартной шиной CAN, может быть до 8 байт. В некоторых системах происходит принудительное дополнение пакета до размера 8 байт.


Рисунок 5: Формат стандартных CAN-пакетов
CAN фреймы
Для того чтобы включить / выключить климатическую систему мы должны найти нужную шину CAN (в автомобиле таких шин несколько). В Ford Fusion есть как минимум 4 задокументированные шины. 3 шины работают на высокой скорости 500 кбит/с (High Speed CAN; HS) и 1 шина на средней скорости 125 кбит/с (Medium Speed CAN; MS).
К порту OBD-II подключено две высокоскоростные шины HS1 и HS2, однако там стоит защита, которая не позволяет подделывать команды. Вместе с Аланом из компании Voyage мы вынули порт OBD-II и нашли места соединения со всеми шинами (HS1, HS2, HS3 и MS). На задней стенке OBD-II все шины подключались к модулю шлюза (Gateway Module).


Рисунок 6: Homer – первое самоуправляемое такси от компании Voyage
Поскольку климатическая система управляется через медиа-интерфейс (SYNC), нам придется отсылать команды через среднескоростную шину (MS).
Чтение и запись CAN-пакетов осуществляется при помощи драйвера и сетевого стека SocketCAN , созданного исследовательским отделом компании Volkswagen для ядра в Linux .
Мы будем подсоединять три провода от машины (GND, MSCANH, MSCANL) к переходнику Kvaser Leaf Light HSv2 (можно купить за 300$ на Амазоне) или к CANable (продается за 25$ на Tindie) и загружать на компьютере со свежим Linux-ядром шину CAN в качестве сетевого устройства.

Modprobe can
modprobe kvaser_usb
ip link set can0 type can bitrate 1250000
ifconfig can0 up

После загрузки запускаем команду candump can0 и начинаем отслеживать трафик:

Can0 33A 00 00 00 00 00 00 00 00 can0 415 00 00 C4 FB 0F FE 0F FE can0 346 00 00 00 03 03 00 C0 00 can0 348 00 00 00 00 00 00 00 00 can0 167 72 7F FF 10 00 19 F8 00 can0 3E0 00 00 00 00 80 00 00 00 can0 167 72 7F FF 10 00 19 F7 00 can0 34E 00 00 00 00 00 00 00 00 can0 358 00 00 00 00 00 00 00 00 can0 3A4 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 3AC FF FF FF FF FF FF FF FF can0 415 00 00 C8 FA 0F FE 0F FE can0 083 00 00 00 00 00 01 7E F4 can0 2FD D4 00 E3 C1 08 52 00 00 can0 3BC 0C 00 08 96 01 BB 27 00 can0 167 72 7F FF 10 00 19 F7 00 can0 3BE 00 20 AE EC D2 03 54 00 can0 333 00 00 00 00 00 00 00 00 can0 42A D6 5B 70 E0 00 00 00 00 can0 42C 05 51 54 00 90 46 A4 00 can0 33B 00 00 00 00 00 00 00 00 can0 42E 93 00 00 E1 78 03 CD 40 can0 42F 7D 04 00 2E 66 04 01 77 can0 167 72 7F FF 10 00 19 F7 00 can0 3E7 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 415 00 00 CC F9 0F FE 0F FE can0 3A5 00 00 00 00 00 00 00 00 can0 3AD FF FF FF FF FF FF FF FF can0 50B 1E 12 00 00 00 00 00 00

Несмотря на то, что вышеуказанная информация эквивалентна амплитуде звукового сигнала, довольно трудно понять, что происходит, и обнаружить какие-либо закономерности. Нам нужно нечто похожее на частотный анализатор, и такой эквивалент есть в виде утилиты cansniffer. Cansniffer показывает список идентификаторов и позволяет отслеживать изменения в секции данных внутри CAN-фрейма. По мере того как мы будем изучать определенные идентификаторы, мы можем установить фильтр нужных ID, которые имеют отношение к нашей задаче.
На рисунке ниже показан пример информации, снятой при помощи cansniffer с шины MS. Мы отфильтровали все, что имеет отношение к идентификаторам 355, 356 и 358. После нажатия и отпускания кнопок, связанных с подстройкой температуры, в самом конце появляется значение 001C00000000.


Рисунок 7: Информация с шины MS, снятая при помощи утилиты cansniffer
Далее необходимо объединить функционал для управления климатической системой с компьютером, работающим внутри автомобиля. Компьютер работает на операционной системе ROS (Robot Operating System; Операционная система для роботов). Поскольку мы используем SocketCAN, то модуль socketcan_bridge серьезно упрощает задачу по преобразованию CAN-фрейма в блок информации, понимаемый операционной системой ROS.
Ниже показан пример алгоритма декодирования:

If frame.id == 0x356:
raw_data = unpack("BBBBBBBB", frame.data)
fan_speed = raw_data / 4
driver_temp = parse_temperature(raw_data)
passenger_temp = parse_temperature(raw_data)

Полученные данные хранятся в CelsiusReport.msg:

Bool auto
bool system_on
bool unit_on
bool dual
bool max_cool
bool max_defrost
bool recirculation
bool head_fan
bool feet_fan
bool front_defrost
bool rear_defrost string driver_temp
string passenger_temp

После нажатия всех нужных кнопок в машине, у нас появляется следующий список:

CONTROL_CODES = {
"ac_toggle": 0x5C,
"ac_unit_toggle": 0x14,
"max_ac_toggle": 0x38,
"recirculation_toggle": 0x3C,
"dual_temperature_toggle": 0x18,
"passenger_temp_up": 0x24,
"passenger_temp_down": 0x28,
"driver_temp_up": 0x1C,
"driver_temp_down": 0x20,
"auto": 0x34,
"wheel_heat_toggle": 0x78,
"defrost_max_toggle": 0x64,
"defrost_toggle": 0x4C,
"rear_defrost_toggle": 0x58,
"body_fan_toggle": 0x04,
"feet_fan_toggle": 0x0C,
"fan_up": 0x2C,
"fan_down": 0x30,
}

Затем эти строки отсылаются на узел под управлением операционной системы ROS и далее происходит трансляция в коды, понимаемые автомобилем:

Rostopic pub /celsius_control celsius/CelsiusControl ac_toggle

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


Рисунок 8: Удаленное управление климатической системой автомобиля
Это лишь небольшой шаг при создании самоуправляемого такси вместе со специалистами компании Voyage . Я получил массу положительных эмоций во время работы над этим проектом. Если вы тоже интересуетесь этой темой, можете ознакомиться со списком вакансий в компании Voyage.